Files
speckle-server/packages/ui-components/src/lib.ts
T
Kristaps Fabians Geikins d8640bbdc9 feat(ui-components): tags input component (#1810)
* FormSelectBase converted to generic Vue component

* WIP tags w/ custom input box

* a11y works

* proper tags wrapping

* errors/validation/icon styling

* styling fixes

* autocomplete item resolution

* feat: configurable tags input

* various fixes

* moved avatar components to ui-components

* replaced avatar in frontend-2 w/ new ui-components exports

* new icon loader

* added validation support for avatar editor

* updated fe-2 to use new avatar editor api

* disabled support for avatar editor

* more fixes and improvements

* attempted preview-service fix

* attempted preview-service fix

* added story

* linting fix

* more fixes

* server test fix
2023-10-16 14:10:41 +03:00

148 lines
5.0 KiB
TypeScript

import 'tippy.js/dist/tippy.css'
import GlobalToastRenderer from '~~/src/components/global/ToastRenderer.vue'
import { ToastNotification, ToastNotificationType } from '~~/src/helpers/global/toast'
import FormButton from '~~/src/components/form/Button.vue'
import CommonTextLink from '~~/src/components/common/text/Link.vue'
import CommonBadge from '~~/src/components/common/Badge.vue'
import {
BulletStepType,
NumberStepType,
HorizontalOrVertical
} from '~~/src/helpers/common/components'
import { TailwindBreakpoints } from '~~/src/helpers/tailwind'
import CommonStepsNumber from '~~/src/components/common/steps/Number.vue'
import CommonStepsBullet from '~~/src/components/common/steps/Bullet.vue'
import FormCardButton from '~~/src/components/form/CardButton.vue'
import FormCheckbox from '~~/src/components/form/Checkbox.vue'
import FormTextArea from '~~/src/components/form/TextArea.vue'
import FormTextInput from '~~/src/components/form/TextInput.vue'
import * as ValidationHelpers from '~~/src/helpers/common/validation'
import { useWrappingContainerHiddenCount } from '~~/src/composables/layout/resize'
import { useFormSelectChildInternals } from '~~/src/composables/form/select'
import FormSelectSourceApps from '~~/src/components/form/select/SourceApps.vue'
import FormSelectBase from '~~/src/components/form/select/Base.vue'
import FormSelectBadges from '~~/src/components/form/select/Badges.vue'
import FormSwitch from '~~/src/components/form/Switch.vue'
import CommonLoadingBar from '~~/src/components/common/loading/Bar.vue'
import SourceAppBadge from '~~/src/components/SourceAppBadge.vue'
import { onKeyboardShortcut, useFormCheckboxModel } from '~~/src/composables/form/input'
import {
ModifierKeys,
getKeyboardShortcutTitle,
clientOs
} from '~~/src/helpers/form/input'
import LayoutDialog from '~~/src/components/layout/Dialog.vue'
import LayoutDisclosure from '~~/src/components/layout/Disclosure.vue'
import LayoutGridListToggle from '~~/src/components/layout/GridListToggle.vue'
import { GridListToggleValue } from '~~/src/helpers/layout/components'
import {
ThrottleOrDebounce,
HorizontalDirection,
useWindowResizeHandler,
useOnBeforeWindowUnload,
useResponsiveHorizontalDirectionCalculation
} from '~~/src/composables/common/window'
import LayoutMenu from '~~/src/components/layout/Menu.vue'
import { LayoutMenuItem, LayoutTabItem } from '~~/src/helpers/layout/components'
import LayoutTabs from '~~/src/components/layout/Tabs.vue'
import LayoutTable from '~~/src/components/layout/Table.vue'
import InfiniteLoading from '~~/src/components/InfiniteLoading.vue'
import { InfiniteLoaderState } from '~~/src/helpers/global/components'
import LayoutPanel from '~~/src/components/layout/Panel.vue'
import CommonAlert from '~~/src/components/common/Alert.vue'
import {
writableAsyncComputed,
AsyncWritableComputedOptions,
AsyncWritableComputedRef
} from '~~/src/composables/common/async'
import FormTags from '~~/src/components/form/Tags.vue'
import UserAvatar from '~~/src/components/user/Avatar.vue'
import UserAvatarGroup from '~~/src/components/user/AvatarGroup.vue'
import UserAvatarEditable from '~~/src/components/user/AvatarEditable.vue'
import FormFileUploadZone from '~~/src/components/form/file-upload/Zone.vue'
import {
UploadableFileItem,
UploadFileItem,
BlobUploadStatus,
BlobPostResultItem
} from '~~/src/composables/form/fileUpload'
import {
FileTypeSpecifier,
UniqueFileTypeSpecifier,
prettyFileSize
} from '~~/src/helpers/form/file'
export * from '~~/src/helpers/common/error'
import CommonLoadingIcon from '~~/src/components/common/loading/Icon.vue'
import { AvatarUser, AvatarUserWithId } from '~~/src/composables/user/avatar'
export {
CommonLoadingIcon,
UniqueFileTypeSpecifier,
prettyFileSize,
BlobUploadStatus,
FormFileUploadZone,
UserAvatar,
UserAvatarGroup,
UserAvatarEditable,
GlobalToastRenderer,
ToastNotificationType,
FormButton,
CommonTextLink,
CommonBadge,
TailwindBreakpoints,
CommonStepsBullet,
CommonStepsNumber,
FormCardButton,
FormCheckbox,
FormTextArea,
FormTextInput,
FormSwitch,
ValidationHelpers,
useWrappingContainerHiddenCount,
useFormSelectChildInternals,
FormSelectBase,
FormSelectBadges,
FormSelectSourceApps,
CommonLoadingBar,
SourceAppBadge,
onKeyboardShortcut,
ModifierKeys,
getKeyboardShortcutTitle,
clientOs,
LayoutDialog,
LayoutDisclosure,
LayoutGridListToggle,
GridListToggleValue,
ThrottleOrDebounce,
HorizontalDirection,
useWindowResizeHandler,
useOnBeforeWindowUnload,
useResponsiveHorizontalDirectionCalculation,
LayoutMenu,
LayoutTabs,
LayoutTable,
InfiniteLoading,
LayoutPanel,
CommonAlert,
writableAsyncComputed,
useFormCheckboxModel,
FormTags
}
export type {
ToastNotification,
BulletStepType,
NumberStepType,
HorizontalOrVertical,
LayoutMenuItem,
LayoutTabItem,
InfiniteLoaderState,
AsyncWritableComputedOptions,
AsyncWritableComputedRef,
UploadFileItem,
UploadableFileItem,
BlobPostResultItem,
FileTypeSpecifier,
AvatarUser,
AvatarUserWithId
}