@threadlabs/looma 0.32.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/shared/icons.js +1 -0
- package/components/shared/overlay.js +1 -1
- package/components/ui-action-bar/ui-action-bar.html +11 -11
- package/components/ui-affordance-scope/ui-affordance-scope.html +2 -2
- package/components/ui-avatar/ui-avatar.html +8 -8
- package/components/ui-avatar-group/ui-avatar-group.html +14 -14
- package/components/ui-avatar-group/ui-avatar-group.js +3 -2
- package/components/ui-badge/ui-badge.html +43 -43
- package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +13 -13
- package/components/ui-breadcrumbs/ui-breadcrumbs.html +8 -8
- package/components/ui-button/ui-button.html +32 -29
- package/components/ui-callout/ui-callout.html +9 -9
- package/components/ui-card/ui-card.html +11 -11
- package/components/ui-checkbox/ui-checkbox.html +52 -33
- package/components/ui-cluster/ui-cluster.html +21 -21
- package/components/ui-color-picker/ui-color-picker.html +135 -0
- package/components/ui-color-picker/ui-color-picker.js +76 -0
- package/components/ui-combobox/ui-combobox.html +43 -43
- package/components/ui-container/ui-container.html +7 -7
- package/components/ui-context-menu/ui-context-menu.html +9 -9
- package/components/ui-cover/ui-cover.html +8 -8
- package/components/ui-description-item/ui-description-item.html +7 -7
- package/components/ui-description-list/ui-description-list.html +4 -4
- package/components/ui-dialog/ui-dialog.html +26 -26
- package/components/ui-disclosure/ui-disclosure.html +23 -23
- package/components/ui-editable/ui-editable.html +16 -16
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +9 -9
- package/components/ui-editor-link-form/ui-editor-link-form.html +1 -2
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +23 -23
- package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +10 -10
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +29 -29
- package/components/ui-editor-slash-menu-group/ui-editor-slash-menu-group.html +5 -5
- package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +11 -11
- package/components/ui-editor-surface/ui-editor-surface.html +2 -2
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +25 -25
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +13 -13
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +31 -31
- package/components/ui-editor-toolbar/ui-editor-toolbar.html +13 -13
- package/components/ui-floating-action-button/ui-floating-action-button.html +8 -8
- package/components/ui-form-field/ui-form-field.html +15 -15
- package/components/ui-form-field/ui-form-field.js +12 -4
- package/components/ui-grid/ui-grid.html +4 -4
- package/components/ui-icon/ui-icon.html +3 -2
- package/components/ui-icon-button/ui-icon-button.html +15 -14
- package/components/ui-image/ui-image.html +14 -14
- package/components/ui-input/ui-input.html +8 -8
- package/components/ui-input-group/ui-input-group.html +18 -18
- package/components/ui-list/ui-list.html +11 -11
- package/components/ui-list-item/ui-list-item.html +18 -18
- package/components/ui-listbox/ui-listbox.html +10 -10
- package/components/ui-menu/ui-menu.html +18 -17
- package/components/ui-menu-group/ui-menu-group.html +4 -4
- package/components/ui-menu-item/ui-menu-item.html +20 -20
- package/components/ui-meter/ui-meter.html +5 -5
- package/components/ui-nav-item/ui-nav-item.html +20 -20
- package/components/ui-page-header/ui-page-header.html +18 -17
- package/components/ui-popover/ui-popover.html +8 -8
- package/components/ui-radio/ui-radio.html +25 -17
- package/components/ui-radio-group/ui-radio-group.html +10 -10
- package/components/ui-reel/ui-reel.html +5 -5
- package/components/ui-scroll-area/ui-scroll-area.html +10 -10
- package/components/ui-search-result-row/ui-search-result-row.html +19 -19
- package/components/ui-search-shell/ui-search-shell.html +22 -22
- package/components/ui-section/ui-section.html +24 -23
- package/components/ui-select/ui-select.html +10 -10
- package/components/ui-separator/ui-separator.html +2 -2
- package/components/ui-sidebar/ui-sidebar.html +8 -8
- package/components/ui-spinner/ui-spinner.html +6 -6
- package/components/ui-stack/ui-stack.html +12 -12
- package/components/ui-status-message/ui-status-message.html +17 -17
- package/components/ui-swatch/ui-swatch.html +2 -2
- package/components/ui-switch/ui-switch.html +36 -26
- package/components/ui-switcher/ui-switcher.html +7 -7
- package/components/ui-table/ui-table.html +6 -6
- package/components/ui-tabs/ui-tabs.html +16 -15
- package/components/ui-text/ui-text.html +3 -2
- package/components/ui-textarea/ui-textarea.html +10 -10
- package/components/ui-toast/ui-toast.html +9 -9
- package/components/ui-toast-region/ui-toast-region.html +12 -12
- package/components/ui-tooltip/ui-tooltip.html +15 -15
- package/components/ui-top-bar/ui-top-bar.html +11 -11
- package/components/ui-tree/ui-tree.html +5 -5
- package/components/ui-tree-item/ui-tree-item.html +36 -36
- package/dist/index.js +46 -45
- package/editor/chunks/extensions.js +17 -1
- package/editor/extensions/slash-command.d.ts +1 -1
- package/editor/file-uploads.d.ts +31 -0
- package/editor/icons.d.ts +1 -0
- package/editor/index.js +2 -1
- package/package.json +3 -2
- package/styles/ui-action-bar.css +11 -11
- package/styles/ui-affordance-scope.css +2 -2
- package/styles/ui-avatar-group.css +14 -14
- package/styles/ui-avatar.css +8 -8
- package/styles/ui-badge.css +41 -41
- package/styles/ui-breadcrumb-item.css +13 -13
- package/styles/ui-breadcrumbs.css +8 -8
- package/styles/ui-button.css +30 -28
- package/styles/ui-callout.css +9 -9
- package/styles/ui-card.css +11 -11
- package/styles/ui-checkbox.css +52 -33
- package/styles/ui-cluster.css +21 -21
- package/styles/ui-color-picker.css +120 -0
- package/styles/ui-combobox.css +86 -86
- package/styles/ui-container.css +7 -7
- package/styles/ui-context-menu.css +9 -9
- package/styles/ui-cover.css +8 -8
- package/styles/ui-description-item.css +7 -7
- package/styles/ui-description-list.css +4 -4
- package/styles/ui-dialog.css +52 -52
- package/styles/ui-disclosure.css +23 -23
- package/styles/ui-editable.css +16 -16
- package/styles/ui-editor-insert-table-grid.css +9 -9
- package/styles/ui-editor-mention-menu-item.css +10 -10
- package/styles/ui-editor-mention-menu.css +23 -23
- package/styles/ui-editor-slash-menu-group.css +5 -5
- package/styles/ui-editor-slash-menu-item.css +11 -11
- package/styles/ui-editor-slash-menu.css +29 -29
- package/styles/ui-editor-surface.css +2 -2
- package/styles/ui-editor-table-context-menu.css +25 -25
- package/styles/ui-editor-table-overlay.css +13 -13
- package/styles/ui-editor-table-toolbar.css +31 -31
- package/styles/ui-editor-toolbar.css +13 -13
- package/styles/ui-floating-action-button.css +8 -8
- package/styles/ui-form-field.css +13 -13
- package/styles/ui-grid.css +4 -4
- package/styles/ui-icon-button.css +13 -13
- package/styles/ui-icon.css +2 -2
- package/styles/ui-image.css +14 -14
- package/styles/ui-input-group.css +18 -18
- package/styles/ui-input.css +8 -8
- package/styles/ui-list-item.css +18 -18
- package/styles/ui-list.css +11 -11
- package/styles/ui-listbox.css +20 -20
- package/styles/ui-menu-group.css +4 -4
- package/styles/ui-menu-item.css +20 -20
- package/styles/ui-menu.css +16 -16
- package/styles/ui-meter.css +5 -5
- package/styles/ui-nav-item.css +20 -20
- package/styles/ui-page-header.css +18 -17
- package/styles/ui-popover.css +8 -8
- package/styles/ui-radio-group.css +10 -10
- package/styles/ui-radio.css +26 -18
- package/styles/ui-reel.css +5 -5
- package/styles/ui-scroll-area.css +10 -10
- package/styles/ui-search-result-row.css +19 -19
- package/styles/ui-search-shell.css +22 -22
- package/styles/ui-section.css +24 -23
- package/styles/ui-select.css +10 -10
- package/styles/ui-separator.css +2 -2
- package/styles/ui-sidebar.css +8 -8
- package/styles/ui-spinner.css +6 -6
- package/styles/ui-stack.css +12 -12
- package/styles/ui-status-message.css +17 -17
- package/styles/ui-swatch.css +2 -2
- package/styles/ui-switch.css +36 -28
- package/styles/ui-switcher.css +7 -7
- package/styles/ui-table.css +6 -6
- package/styles/ui-tabs.css +11 -11
- package/styles/ui-text.css +3 -2
- package/styles/ui-textarea.css +10 -10
- package/styles/ui-toast-region.css +24 -24
- package/styles/ui-toast.css +18 -18
- package/styles/ui-tooltip.css +15 -15
- package/styles/ui-top-bar.css +11 -11
- package/styles/ui-tree-item.css +71 -71
- package/styles/ui-tree.css +5 -5
- package/theme-system.css +80 -0
- package/tokens.css +14 -3
- package/vanilla/UiColorPicker.d.ts +30 -0
- package/vanilla/UiColorPicker.js +77 -0
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/index.js +1 -0
- package/vue/UiActionBar.vue +11 -11
- package/vue/UiAffordanceScope.vue +2 -2
- package/vue/UiAvatar.vue +8 -8
- package/vue/UiAvatarGroup.vue +14 -14
- package/vue/UiBadge.vue +43 -42
- package/vue/UiBreadcrumbItem.vue +13 -13
- package/vue/UiBreadcrumbs.vue +8 -8
- package/vue/UiButton.vue +34 -29
- package/vue/UiCallout.vue +9 -9
- package/vue/UiCard.vue +11 -11
- package/vue/UiCheckbox.vue +57 -34
- package/vue/UiCluster.vue +21 -21
- package/vue/UiColorPicker.d.ts +65 -0
- package/vue/UiColorPicker.js +2 -0
- package/vue/UiColorPicker.vue +422 -0
- package/vue/UiCombobox.vue +86 -86
- package/vue/UiContainer.vue +7 -7
- package/vue/UiContextMenu.vue +9 -9
- package/vue/UiCover.vue +8 -8
- package/vue/UiDescriptionItem.vue +7 -7
- package/vue/UiDescriptionList.vue +4 -4
- package/vue/UiDialog.vue +52 -52
- package/vue/UiDisclosure.vue +23 -23
- package/vue/UiEditable.vue +16 -16
- package/vue/UiEditorInsertTableGrid.vue +9 -9
- package/vue/UiEditorMentionMenu.vue +23 -23
- package/vue/UiEditorMentionMenuItem.vue +10 -10
- package/vue/UiEditorSlashMenu.vue +29 -29
- package/vue/UiEditorSlashMenuGroup.vue +5 -5
- package/vue/UiEditorSlashMenuItem.vue +11 -11
- package/vue/UiEditorSurface.vue +2 -2
- package/vue/UiEditorTableContextMenu.vue +25 -25
- package/vue/UiEditorTableOverlay.vue +13 -13
- package/vue/UiEditorTableToolbar.vue +31 -31
- package/vue/UiEditorToolbar.vue +13 -13
- package/vue/UiFloatingActionButton.vue +8 -8
- package/vue/UiFormField.vue +14 -14
- package/vue/UiGrid.vue +4 -4
- package/vue/UiIcon.vue +6 -2
- package/vue/UiIconButton.vue +14 -14
- package/vue/UiImage.vue +14 -14
- package/vue/UiInput.vue +9 -8
- package/vue/UiInputGroup.vue +18 -18
- package/vue/UiList.vue +11 -11
- package/vue/UiListItem.vue +18 -18
- package/vue/UiListbox.vue +20 -20
- package/vue/UiMenu.vue +16 -16
- package/vue/UiMenuGroup.vue +4 -4
- package/vue/UiMenuItem.vue +20 -20
- package/vue/UiMeter.vue +5 -5
- package/vue/UiNavItem.vue +20 -20
- package/vue/UiPageHeader.vue +18 -17
- package/vue/UiPopover.vue +8 -8
- package/vue/UiRadio.vue +28 -17
- package/vue/UiRadioGroup.vue +10 -10
- package/vue/UiReel.vue +5 -5
- package/vue/UiScrollArea.vue +10 -10
- package/vue/UiSearchResultRow.vue +19 -19
- package/vue/UiSearchShell.vue +22 -22
- package/vue/UiSection.vue +24 -23
- package/vue/UiSelect.vue +11 -10
- package/vue/UiSeparator.vue +2 -2
- package/vue/UiSidebar.vue +8 -8
- package/vue/UiSpinner.vue +6 -6
- package/vue/UiStack.vue +12 -12
- package/vue/UiStatusMessage.vue +17 -17
- package/vue/UiSwatch.vue +2 -2
- package/vue/UiSwitch.vue +38 -25
- package/vue/UiSwitcher.vue +7 -7
- package/vue/UiTable.vue +6 -6
- package/vue/UiTabs.vue +13 -13
- package/vue/UiText.vue +3 -2
- package/vue/UiTextarea.vue +10 -10
- package/vue/UiToast.vue +18 -18
- package/vue/UiToastRegion.vue +24 -24
- package/vue/UiTooltip.vue +15 -15
- package/vue/UiTopBar.vue +11 -11
- package/vue/UiTree.vue +5 -5
- package/vue/UiTreeItem.vue +73 -71
- package/vue/chunks/UiActionBar.js +1 -1
- package/vue/chunks/UiAffordanceScope.js +1 -1
- package/vue/chunks/UiAvatar.js +1 -1
- package/vue/chunks/UiAvatarGroup.js +1 -1
- package/vue/chunks/UiBadge.js +2 -2
- package/vue/chunks/UiBreadcrumbItem.js +1 -1
- package/vue/chunks/UiBreadcrumbs.js +1 -1
- package/vue/chunks/UiButton.js +2 -2
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCard.js +1 -1
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiCluster.js +1 -1
- package/vue/chunks/UiColorPicker.js +326 -0
- package/vue/chunks/UiCombobox.js +1 -1
- package/vue/chunks/UiContainer.js +1 -1
- package/vue/chunks/UiContextMenu.js +1 -1
- package/vue/chunks/UiCover.js +1 -1
- package/vue/chunks/UiDescriptionItem.js +1 -1
- package/vue/chunks/UiDescriptionList.js +1 -1
- package/vue/chunks/UiDialog.js +1 -1
- package/vue/chunks/UiDisclosure.js +1 -1
- package/vue/chunks/UiEditable.js +1 -1
- package/vue/chunks/UiEditorImageToolbar.js +1 -1
- package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
- package/vue/chunks/UiEditorLinkForm.js +1 -1
- package/vue/chunks/UiEditorMentionMenu.js +1 -1
- package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
- package/vue/chunks/UiEditorSlashMenu.js +1 -1
- package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
- package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
- package/vue/chunks/UiEditorSurface.js +1 -1
- package/vue/chunks/UiEditorTableContextMenu.js +1 -1
- package/vue/chunks/UiEditorTableOverlay.js +1 -1
- package/vue/chunks/UiEditorTableToolbar.js +1 -1
- package/vue/chunks/UiEditorToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiFormField.js +2 -2
- package/vue/chunks/UiGrid.js +1 -1
- package/vue/chunks/UiIcon.js +5 -1
- package/vue/chunks/UiIconButton.js +2 -2
- package/vue/chunks/UiImage.js +1 -1
- package/vue/chunks/UiInput.js +1 -1
- package/vue/chunks/UiInputGroup.js +1 -1
- package/vue/chunks/UiList.js +1 -1
- package/vue/chunks/UiListItem.js +1 -1
- package/vue/chunks/UiListbox.js +1 -1
- package/vue/chunks/UiMenu.js +1 -1
- package/vue/chunks/UiMenuGroup.js +1 -1
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiMeter.js +1 -1
- package/vue/chunks/UiNavItem.js +1 -1
- package/vue/chunks/UiPageHeader.js +1 -1
- package/vue/chunks/UiPopover.js +1 -1
- package/vue/chunks/UiRadio.js +1 -1
- package/vue/chunks/UiRadioGroup.js +1 -1
- package/vue/chunks/UiReel.js +1 -1
- package/vue/chunks/UiScrollArea.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSection.js +1 -1
- package/vue/chunks/UiSelect.js +1 -1
- package/vue/chunks/UiSeparator.js +1 -1
- package/vue/chunks/UiSidebar.js +1 -1
- package/vue/chunks/UiSpinner.js +1 -1
- package/vue/chunks/UiStack.js +1 -1
- package/vue/chunks/UiStatusMessage.js +1 -1
- package/vue/chunks/UiSwatch.js +1 -1
- package/vue/chunks/UiSwitch.js +1 -1
- package/vue/chunks/UiSwitcher.js +1 -1
- package/vue/chunks/UiTable.js +1 -1
- package/vue/chunks/UiTabs.js +3 -3
- package/vue/chunks/UiText.js +1 -1
- package/vue/chunks/UiTextarea.js +1 -1
- package/vue/chunks/UiToast.js +1 -1
- package/vue/chunks/UiToastRegion.js +1 -1
- package/vue/chunks/UiTooltip.js +1 -1
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +1 -1
- package/vue/chunks/UiTreeItem.js +1 -1
- package/vue/components.css +1857 -1654
- package/vue/editor/LoomaEditor.d.ts +18 -2
- package/vue/editor/index.d.ts +2 -1
- package/vue/editor/index.js +147 -16
- package/vue/index.d.ts +1 -0
- package/vue/index.js +3 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type LoomaFileDescriptor } from "../../editor/file-uploads.js";
|
|
1
2
|
import "../../components/ui-editor-surface/ui-editor-surface.css";
|
|
2
3
|
import "./looma-editor.css";
|
|
3
4
|
import { type AnyExtension, type Editor, type JSONContent } from "@tiptap/core";
|
|
@@ -77,6 +78,10 @@ export type LoomaMentionQuery = LoomaResponder<LoomaMentionQueryDetail, LoomaMen
|
|
|
77
78
|
* @failure A rejection leaves the document unchanged and emits `uploadError`.
|
|
78
79
|
*/
|
|
79
80
|
export type LoomaImageUploader = LoomaResponder<LoomaImageUploadDetail, LoomaImageDescriptor>;
|
|
81
|
+
/** Uploads a file and returns its retained link; rejection leaves authored content unchanged. */
|
|
82
|
+
export type LoomaFileUploader = LoomaResponder<{
|
|
83
|
+
file: File;
|
|
84
|
+
}, LoomaFileDescriptor>;
|
|
80
85
|
/**
|
|
81
86
|
* Turnkey Vue editor that composes Looma's framework-neutral Tiptap extensions
|
|
82
87
|
* with declarative menus, image delivery, and table interaction chrome.
|
|
@@ -174,7 +179,12 @@ export declare const LoomaEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
174
179
|
type: StringConstructor;
|
|
175
180
|
default: string;
|
|
176
181
|
};
|
|
177
|
-
/** Answers `
|
|
182
|
+
/** Answers `file-upload` with a retained ordinary file link. */
|
|
183
|
+
fileUpload: {
|
|
184
|
+
type: PropType<LoomaFileUploader | undefined>;
|
|
185
|
+
default: undefined;
|
|
186
|
+
};
|
|
187
|
+
/** Answers `image-upload` with the image to insert. */
|
|
178
188
|
imageUpload: {
|
|
179
189
|
type: PropType<LoomaImageUploader | undefined>;
|
|
180
190
|
default: undefined;
|
|
@@ -324,7 +334,12 @@ export declare const LoomaEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
324
334
|
type: StringConstructor;
|
|
325
335
|
default: string;
|
|
326
336
|
};
|
|
327
|
-
/** Answers `
|
|
337
|
+
/** Answers `file-upload` with a retained ordinary file link. */
|
|
338
|
+
fileUpload: {
|
|
339
|
+
type: PropType<LoomaFileUploader | undefined>;
|
|
340
|
+
default: undefined;
|
|
341
|
+
};
|
|
342
|
+
/** Answers `image-upload` with the image to insert. */
|
|
328
343
|
imageUpload: {
|
|
329
344
|
type: PropType<LoomaImageUploader | undefined>;
|
|
330
345
|
default: undefined;
|
|
@@ -402,6 +417,7 @@ export declare const LoomaEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
402
417
|
linkSearch: LoomaLinkSearch | undefined;
|
|
403
418
|
linkResolve: LoomaLinkResolve | undefined;
|
|
404
419
|
imageUpload: LoomaImageUploader | undefined;
|
|
420
|
+
fileUpload: LoomaFileUploader | undefined;
|
|
405
421
|
modelValue: JSONContent;
|
|
406
422
|
contentDensity: "comfortable" | "compact";
|
|
407
423
|
mentionItems: LoomaMentionItem[];
|
package/vue/editor/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "@threadlabs/looma/editor";
|
|
2
2
|
export * from "./primitives.js";
|
|
3
|
-
export { LoomaEditor, type LoomaEditorToolbarMode, type LoomaEditorSelectionAction, type LoomaEditorSelectionActionDetail, type LoomaEditorRangeAction, type LoomaEditorRangeActionDetail, type LoomaEditorExtensions, type LoomaEditorSlashCommands, type LoomaSlashCommandsDetail, type LoomaLinkTarget, type LoomaLinkSearch, type LoomaLinkSearchDetail, type LoomaLinkResolve, type LoomaLinkResolveDetail, type LoomaMentionQuery, type LoomaMentionQueryDetail, type LoomaImageUploader, type LoomaImageUploadDetail, type LoomaRequestInit, type LoomaResponder, } from "./LoomaEditor.js";
|
|
3
|
+
export { LoomaEditor, type LoomaEditorToolbarMode, type LoomaEditorSelectionAction, type LoomaEditorSelectionActionDetail, type LoomaEditorRangeAction, type LoomaEditorRangeActionDetail, type LoomaEditorExtensions, type LoomaEditorSlashCommands, type LoomaSlashCommandsDetail, type LoomaLinkTarget, type LoomaLinkSearch, type LoomaLinkSearchDetail, type LoomaLinkResolve, type LoomaLinkResolveDetail, type LoomaMentionQuery, type LoomaMentionQueryDetail, type LoomaFileUploader, type LoomaImageUploader, type LoomaImageUploadDetail, type LoomaRequestInit, type LoomaResponder, } from "./LoomaEditor.js";
|
|
4
4
|
export type { LoomaImageActivationDetail, LoomaImageActivationTrigger, LoomaImageAttributeResolver, LoomaImageSourceResolver, LoomaImageDescriptor, LoomaImageRenditionErrorDetail, LoomaImageRenditionAttributes, } from "../../editor/image-delivery.js";
|
|
5
|
+
export type { LoomaFileDescriptor } from "../../editor/file-uploads.js";
|
package/vue/editor/index.js
CHANGED
|
@@ -47,6 +47,73 @@ var EDITOR_ADAPTER_COMPONENT_TAG_MAP = {
|
|
|
47
47
|
EditorFootnoteEditor: "ui-editor-footnote-editor"
|
|
48
48
|
};
|
|
49
49
|
//#endregion
|
|
50
|
+
//#region src/editor/file-uploads.ts
|
|
51
|
+
/** Captures the caret before asynchronous transport; later transactions map that caret. */
|
|
52
|
+
function createFileUploads(options) {
|
|
53
|
+
let active;
|
|
54
|
+
const state = (uploading, progress = null) => options.onState?.({
|
|
55
|
+
uploading,
|
|
56
|
+
progress
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
cancel() {
|
|
60
|
+
active?.abort();
|
|
61
|
+
state(false);
|
|
62
|
+
},
|
|
63
|
+
async insert(file) {
|
|
64
|
+
const upload = options.upload();
|
|
65
|
+
if (!upload || options.editor.isDestroyed) return;
|
|
66
|
+
active?.abort();
|
|
67
|
+
const controller = new AbortController();
|
|
68
|
+
active = controller;
|
|
69
|
+
const { editor } = options;
|
|
70
|
+
let position = editor.state.selection.from;
|
|
71
|
+
const map = ({ transaction }) => {
|
|
72
|
+
position = transaction.mapping.map(position);
|
|
73
|
+
};
|
|
74
|
+
editor.on("transaction", map);
|
|
75
|
+
state(true);
|
|
76
|
+
try {
|
|
77
|
+
const answer = await upload(file, {
|
|
78
|
+
signal: controller.signal,
|
|
79
|
+
progress: (loaded, total) => {
|
|
80
|
+
if (!controller.signal.aborted) state(true, {
|
|
81
|
+
loaded,
|
|
82
|
+
total
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
if (!answer || controller.signal.aborted || editor.isDestroyed || !editor.isEditable) return;
|
|
87
|
+
if (!/^(?:https?:\/\/|\/(?!\/))/.test(answer.href) || !Number.isSafeInteger(answer.size) || answer.size < 0) throw new Error("Invalid file descriptor");
|
|
88
|
+
const size = answer.size < 1e3 ? `${answer.size} B` : answer.size < 1e6 ? `${Math.ceil(answer.size / 1e3)} KB` : `${Number((answer.size / 1e6).toFixed(1))} MB`;
|
|
89
|
+
editor.chain().focus().insertContentAt(position, [{
|
|
90
|
+
type: "text",
|
|
91
|
+
text: answer.name || file.name,
|
|
92
|
+
marks: [{
|
|
93
|
+
type: "link",
|
|
94
|
+
attrs: {
|
|
95
|
+
href: answer.href,
|
|
96
|
+
target: "_blank",
|
|
97
|
+
rel: "noopener noreferrer"
|
|
98
|
+
}
|
|
99
|
+
}]
|
|
100
|
+
}, {
|
|
101
|
+
type: "text",
|
|
102
|
+
text: ` (${answer.contentType || "application/octet-stream"}, ${size}) `
|
|
103
|
+
}]).run();
|
|
104
|
+
} catch (error) {
|
|
105
|
+
if (!controller.signal.aborted) options.onError(error, file);
|
|
106
|
+
} finally {
|
|
107
|
+
editor.off("transaction", map);
|
|
108
|
+
if (active === controller) {
|
|
109
|
+
active = void 0;
|
|
110
|
+
state(false);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
50
117
|
//#region src/components/shared/overlay.js
|
|
51
118
|
function stateFor$1(document) {
|
|
52
119
|
const key = Symbol.for("@threadlabs/looma/overlay-stack/v1");
|
|
@@ -526,7 +593,7 @@ function createAnchoredSurface$1(surface, options = {}) {
|
|
|
526
593
|
});
|
|
527
594
|
};
|
|
528
595
|
surface.style.position = "fixed";
|
|
529
|
-
surface.style.margin
|
|
596
|
+
surface.style.setProperty("margin", "0", "important");
|
|
530
597
|
const presentation = createViewportSurface$1(surface, {
|
|
531
598
|
position,
|
|
532
599
|
bare: options.bare
|
|
@@ -4864,7 +4931,7 @@ function createAnchoredSurface(surface, options = {}) {
|
|
|
4864
4931
|
});
|
|
4865
4932
|
};
|
|
4866
4933
|
surface.style.position = "fixed";
|
|
4867
|
-
surface.style.margin
|
|
4934
|
+
surface.style.setProperty("margin", "0", "important");
|
|
4868
4935
|
const presentation = createViewportSurface(surface, {
|
|
4869
4936
|
position,
|
|
4870
4937
|
bare: options.bare
|
|
@@ -5406,9 +5473,13 @@ function connect$9(host) {
|
|
|
5406
5473
|
};
|
|
5407
5474
|
const wire = () => {
|
|
5408
5475
|
const label = element.querySelector("[slot=\"label\"], label");
|
|
5409
|
-
const
|
|
5410
|
-
const
|
|
5411
|
-
const
|
|
5476
|
+
const selector = "[data-ui-field-control], input:not([type=hidden]), textarea, select";
|
|
5477
|
+
const target = label?.getAttribute("for") ? element.ownerDocument.getElementById(label.getAttribute("for")) : null;
|
|
5478
|
+
const input = (target && element.contains(target) ? target.matches(selector) ? target : target.querySelector(selector) : null) ?? element.querySelector(selector);
|
|
5479
|
+
const helpRegion = element.querySelector(":scope > .help");
|
|
5480
|
+
const help = element.querySelector(":scope > .help > *, [slot=\"help\"]") ?? (helpRegion?.textContent.trim() ? helpRegion : null);
|
|
5481
|
+
const errorRegion = element.querySelector(":scope > .error");
|
|
5482
|
+
const error = element.querySelector(":scope > .error > *, [slot=\"error\"], [role=\"alert\"]") ?? (errorRegion?.textContent.trim() ? errorRegion : null);
|
|
5412
5483
|
if (input !== activeInput) {
|
|
5413
5484
|
removeOwned(activeInput);
|
|
5414
5485
|
activeInput = input;
|
|
@@ -5417,7 +5488,7 @@ function connect$9(host) {
|
|
|
5417
5488
|
if (!input) return;
|
|
5418
5489
|
if (DEV) warnOnce(warned, fieldProblems(label, input), element);
|
|
5419
5490
|
if (!input.id) input.id = id("form-field-input");
|
|
5420
|
-
if (label && !label.getAttribute("for")) label.setAttribute("for", input.id);
|
|
5491
|
+
if (label && (!label.getAttribute("for") || target && target !== input && target.contains(input))) label.setAttribute("for", input.id);
|
|
5421
5492
|
const external = descriptionIds(input).filter((value) => !owned.has(value));
|
|
5422
5493
|
const described = [];
|
|
5423
5494
|
if (help) {
|
|
@@ -5433,6 +5504,7 @@ function connect$9(host) {
|
|
|
5433
5504
|
if (next && input.getAttribute("aria-describedby") !== next) input.setAttribute("aria-describedby", next);
|
|
5434
5505
|
else if (!next && input.hasAttribute("aria-describedby")) input.removeAttribute("aria-describedby");
|
|
5435
5506
|
input.disabled = Boolean(host.props.disabled.value);
|
|
5507
|
+
if (input.matches("[data-ui-field-control]")) for (const value of element.querySelectorAll("[data-ui-field-value]")) value.disabled = input.disabled;
|
|
5436
5508
|
input.required = Boolean(host.props.required.value);
|
|
5437
5509
|
input.setAttribute("aria-invalid", String(Boolean(host.props.invalid.value)));
|
|
5438
5510
|
};
|
|
@@ -6604,6 +6676,10 @@ function createUiIcon(options = {}, html) {
|
|
|
6604
6676
|
"tag": "path",
|
|
6605
6677
|
"d": "M3 9h18"
|
|
6606
6678
|
}],
|
|
6679
|
+
"paperclip": [{
|
|
6680
|
+
"tag": "path",
|
|
6681
|
+
"d": "m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551"
|
|
6682
|
+
}],
|
|
6607
6683
|
"pencil": [{
|
|
6608
6684
|
"tag": "path",
|
|
6609
6685
|
"d": "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"
|
|
@@ -14546,7 +14622,8 @@ var EDITOR_REQUESTS = {
|
|
|
14546
14622
|
"mention-query": "mentionQuery",
|
|
14547
14623
|
"link-search": "linkSearch",
|
|
14548
14624
|
"link-resolve": "linkResolve",
|
|
14549
|
-
"image-upload": "imageUpload"
|
|
14625
|
+
"image-upload": "imageUpload",
|
|
14626
|
+
"file-upload": "fileUpload"
|
|
14550
14627
|
};
|
|
14551
14628
|
var EDITOR_REQUEST_NAMES = Object.keys(EDITOR_REQUESTS);
|
|
14552
14629
|
var EMPTY_DOCUMENT = {
|
|
@@ -14680,7 +14757,12 @@ var LoomaEditor = defineComponent({
|
|
|
14680
14757
|
type: String,
|
|
14681
14758
|
default: "Item"
|
|
14682
14759
|
},
|
|
14683
|
-
/** Answers `
|
|
14760
|
+
/** Answers `file-upload` with a retained ordinary file link. */
|
|
14761
|
+
fileUpload: {
|
|
14762
|
+
type: Function,
|
|
14763
|
+
default: void 0
|
|
14764
|
+
},
|
|
14765
|
+
/** Answers `image-upload` with the image to insert. */
|
|
14684
14766
|
imageUpload: {
|
|
14685
14767
|
type: Function,
|
|
14686
14768
|
default: void 0
|
|
@@ -14750,6 +14832,12 @@ var LoomaEditor = defineComponent({
|
|
|
14750
14832
|
const formatAnchorId = `looma-editor-format-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
14751
14833
|
const formatOpen = ref(false);
|
|
14752
14834
|
const fileInput = ref(null);
|
|
14835
|
+
const attachmentInput = ref(null);
|
|
14836
|
+
const fileUploadState = shallowRef({
|
|
14837
|
+
uploading: false,
|
|
14838
|
+
progress: null
|
|
14839
|
+
});
|
|
14840
|
+
let attachmentUploads;
|
|
14753
14841
|
const tablePickerAnchorId = `looma-editor-table-picker-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
14754
14842
|
const blockActionAnchorId = `ui-block-tools-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
14755
14843
|
const linkAnchorId = `looma-editor-link-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
@@ -14918,9 +15006,11 @@ var LoomaEditor = defineComponent({
|
|
|
14918
15006
|
let slashDefaults;
|
|
14919
15007
|
const defaultSlashCommands = () => {
|
|
14920
15008
|
const uploads = answers("image-upload");
|
|
14921
|
-
|
|
15009
|
+
const files = answers("file-upload");
|
|
15010
|
+
if (slashDefaults?.uploads !== uploads || slashDefaults?.files !== files) slashDefaults = {
|
|
14922
15011
|
uploads,
|
|
14923
|
-
|
|
15012
|
+
files,
|
|
15013
|
+
commands: getDefaultSlashCommands(uploads ? () => fileInput.value?.click() : void 0, openChipEditor, () => openLinkEditor(), files ? () => attachmentInput.value?.click() : void 0)
|
|
14924
15014
|
};
|
|
14925
15015
|
return slashDefaults.commands;
|
|
14926
15016
|
};
|
|
@@ -14946,7 +15036,7 @@ var LoomaEditor = defineComponent({
|
|
|
14946
15036
|
const current = new Set(EDITOR_REQUEST_NAMES.filter(answers));
|
|
14947
15037
|
const arrived = (name) => current.has(name) && !responders.has(name);
|
|
14948
15038
|
const extensionsArrived = arrived("extensions");
|
|
14949
|
-
const slashChanged = arrived("slash-commands") || current.has("image-upload") !== responders.has("image-upload");
|
|
15039
|
+
const slashChanged = arrived("slash-commands") || current.has("image-upload") !== responders.has("image-upload") || current.has("file-upload") !== responders.has("file-upload");
|
|
14950
15040
|
responders = current;
|
|
14951
15041
|
if (extensionsArrived) askExtensions();
|
|
14952
15042
|
if (slashChanged) askSlashCommands();
|
|
@@ -15122,6 +15212,14 @@ var LoomaEditor = defineComponent({
|
|
|
15122
15212
|
uploadState.value = imageUploads.state;
|
|
15123
15213
|
});
|
|
15124
15214
|
uploads = imageUploads;
|
|
15215
|
+
attachmentUploads = createFileUploads({
|
|
15216
|
+
editor: session.editor,
|
|
15217
|
+
upload: () => (file, init) => ask("file-upload", { file }, init),
|
|
15218
|
+
onError: (error, file) => emit("uploadError", error, file),
|
|
15219
|
+
onState: (value) => {
|
|
15220
|
+
fileUploadState.value = value;
|
|
15221
|
+
}
|
|
15222
|
+
});
|
|
15125
15223
|
const instance = session.editor;
|
|
15126
15224
|
formatting = createFormattingSelection({
|
|
15127
15225
|
editor: instance,
|
|
@@ -15142,6 +15240,7 @@ var LoomaEditor = defineComponent({
|
|
|
15142
15240
|
footnoteEditing?.close();
|
|
15143
15241
|
formatting?.destroy();
|
|
15144
15242
|
uploads?.cancel();
|
|
15243
|
+
attachmentUploads?.cancel();
|
|
15145
15244
|
previous.destroy();
|
|
15146
15245
|
build(content);
|
|
15147
15246
|
};
|
|
@@ -15167,6 +15266,7 @@ var LoomaEditor = defineComponent({
|
|
|
15167
15266
|
onBeforeUnmount(() => {
|
|
15168
15267
|
const element = session?.editor.options.element;
|
|
15169
15268
|
element?.parentNode?.replaceChild(element.cloneNode(true), element);
|
|
15269
|
+
attachmentUploads?.cancel();
|
|
15170
15270
|
connection.abort();
|
|
15171
15271
|
stopAnnouncements?.();
|
|
15172
15272
|
linkEditing?.destroy();
|
|
@@ -15712,6 +15812,12 @@ var LoomaEditor = defineComponent({
|
|
|
15712
15812
|
if (dragLeaveTimer) clearTimeout(dragLeaveTimer);
|
|
15713
15813
|
if (tablePointerFrame !== null) cancelAnimationFrame(tablePointerFrame);
|
|
15714
15814
|
});
|
|
15815
|
+
const onAttachmentChange = async (event) => {
|
|
15816
|
+
const input = event.target;
|
|
15817
|
+
const file = input.files?.[0];
|
|
15818
|
+
input.value = "";
|
|
15819
|
+
if (file) await attachmentUploads?.insert(file);
|
|
15820
|
+
};
|
|
15715
15821
|
const onFileChange = async (event) => {
|
|
15716
15822
|
const input = event.target;
|
|
15717
15823
|
const files = Array.from(input.files ?? []);
|
|
@@ -15954,6 +16060,7 @@ var LoomaEditor = defineComponent({
|
|
|
15954
16060
|
variant: tablePickerOpen.value ? "solid" : "ghost",
|
|
15955
16061
|
"aria-expanded": tablePickerOpen.value ? "true" : "false"
|
|
15956
16062
|
}, () => loomaIcon("table")),
|
|
16063
|
+
commandButton("Attach file", "paperclip", false, fileUploadState.value.uploading || !answers("file-upload"), () => attachmentInput.value?.click()),
|
|
15957
16064
|
commandButton(uploadState.value.uploading ? "Uploading image" : "Insert image", "image", false, uploadState.value.uploading || !answers("image-upload"), () => fileInput.value?.click()),
|
|
15958
16065
|
h("span", {
|
|
15959
16066
|
class: "divider",
|
|
@@ -16123,8 +16230,10 @@ var LoomaEditor = defineComponent({
|
|
|
16123
16230
|
style: mobileToolbarStyle.value,
|
|
16124
16231
|
role: "toolbar",
|
|
16125
16232
|
"aria-label": mobileToolbarMode.value === "table" ? "Table editing" : "Text formatting"
|
|
16126
|
-
}, mobileToolbarMode.value === "table" ? [h(
|
|
16127
|
-
|
|
16233
|
+
}, mobileToolbarMode.value === "table" ? [h(Button, {
|
|
16234
|
+
size: "sm",
|
|
16235
|
+
variant: "ghost",
|
|
16236
|
+
tone: "neutral",
|
|
16128
16237
|
type: "button",
|
|
16129
16238
|
"aria-label": "Formatting tools",
|
|
16130
16239
|
onClick: () => {
|
|
@@ -16132,7 +16241,10 @@ var LoomaEditor = defineComponent({
|
|
|
16132
16241
|
editor.value?.commands.focus();
|
|
16133
16242
|
nextTick(updateMobileViewport);
|
|
16134
16243
|
}
|
|
16135
|
-
},
|
|
16244
|
+
}, {
|
|
16245
|
+
start: () => loomaIcon("chevron-left"),
|
|
16246
|
+
default: () => "Formatting"
|
|
16247
|
+
}), h(EditorTableToolbar, tableProps)] : [renderToolbar(instance)]) : null,
|
|
16136
16248
|
h("input", {
|
|
16137
16249
|
ref: fileInput,
|
|
16138
16250
|
class: "looma-editor__file-input",
|
|
@@ -16143,6 +16255,22 @@ var LoomaEditor = defineComponent({
|
|
|
16143
16255
|
"aria-hidden": "true",
|
|
16144
16256
|
onChange: onFileChange
|
|
16145
16257
|
}),
|
|
16258
|
+
h("input", {
|
|
16259
|
+
ref: attachmentInput,
|
|
16260
|
+
class: "looma-editor__file-input",
|
|
16261
|
+
type: "file",
|
|
16262
|
+
tabindex: -1,
|
|
16263
|
+
"aria-hidden": "true",
|
|
16264
|
+
onChange: onAttachmentChange
|
|
16265
|
+
}),
|
|
16266
|
+
fileUploadState.value.uploading ? h(StatusMessage, { kind: "loading" }, {
|
|
16267
|
+
default: () => "Attaching file…",
|
|
16268
|
+
action: () => h(Button, {
|
|
16269
|
+
size: "sm",
|
|
16270
|
+
variant: "ghost",
|
|
16271
|
+
onClick: () => attachmentUploads?.cancel()
|
|
16272
|
+
}, () => "Cancel")
|
|
16273
|
+
}) : null,
|
|
16146
16274
|
uploadState.value.uploading ? h(StatusMessage, { kind: "loading" }, {
|
|
16147
16275
|
default: () => uploadProgressText(uploadState.value.progress),
|
|
16148
16276
|
action: () => h(Button, {
|
|
@@ -16154,13 +16282,16 @@ var LoomaEditor = defineComponent({
|
|
|
16154
16282
|
uploadState.value.failed ? h("div", {
|
|
16155
16283
|
class: "looma-editor__upload-error",
|
|
16156
16284
|
role: "alert"
|
|
16157
|
-
}, [h("span", "Couldn’t upload image."), h(
|
|
16285
|
+
}, [h("span", "Couldn’t upload image."), h(Button, {
|
|
16286
|
+
size: "sm",
|
|
16287
|
+
variant: "ghost",
|
|
16288
|
+
tone: "neutral",
|
|
16158
16289
|
type: "button",
|
|
16159
16290
|
disabled: uploadState.value.uploading,
|
|
16160
16291
|
onClick: () => {
|
|
16161
16292
|
uploads?.retry();
|
|
16162
16293
|
}
|
|
16163
|
-
}, uploadState.value.uploading ? "Retrying…" : "Retry")]) : null,
|
|
16294
|
+
}, () => uploadState.value.uploading ? "Retrying…" : "Retry")]) : null,
|
|
16164
16295
|
dragOver.value ? h("div", {
|
|
16165
16296
|
class: "looma-editor__drop-overlay",
|
|
16166
16297
|
"aria-hidden": "true"
|
package/vue/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export { default as Callout } from "./UiCallout.js";
|
|
|
10
10
|
export { default as Card } from "./UiCard.js";
|
|
11
11
|
export { default as Checkbox } from "./UiCheckbox.js";
|
|
12
12
|
export { default as Cluster } from "./UiCluster.js";
|
|
13
|
+
export { default as ColorPicker } from "./UiColorPicker.js";
|
|
13
14
|
export { default as Combobox } from "./UiCombobox.js";
|
|
14
15
|
export { default as Container } from "./UiContainer.js";
|
|
15
16
|
export { default as ContextMenu } from "./UiContextMenu.js";
|
package/vue/index.js
CHANGED
|
@@ -12,6 +12,8 @@ import { t as UiCallout_default } from "./chunks/UiCallout.js";
|
|
|
12
12
|
import { t as UiCard_default } from "./chunks/UiCard.js";
|
|
13
13
|
import { t as UiCheckbox_default } from "./chunks/UiCheckbox.js";
|
|
14
14
|
import { t as UiCluster_default } from "./chunks/UiCluster.js";
|
|
15
|
+
import { t as UiInput_default } from "./chunks/UiInput.js";
|
|
16
|
+
import { t as UiColorPicker_default } from "./chunks/UiColorPicker.js";
|
|
15
17
|
import { t as UiTooltip_default } from "./chunks/UiTooltip.js";
|
|
16
18
|
import { t as UiCombobox_default } from "./chunks/UiCombobox.js";
|
|
17
19
|
import { t as UiContainer_default } from "./chunks/UiContainer.js";
|
|
@@ -26,7 +28,6 @@ import { t as UiEditable_default } from "./chunks/UiEditable.js";
|
|
|
26
28
|
import { t as UiMenu_default } from "./chunks/UiMenu.js";
|
|
27
29
|
import { t as UiMenuItem_default } from "./chunks/UiMenuItem.js";
|
|
28
30
|
import { t as UiEditorBlockActions_default } from "./chunks/UiEditorBlockActions.js";
|
|
29
|
-
import { t as UiInput_default } from "./chunks/UiInput.js";
|
|
30
31
|
import { t as UiRadioGroup_default } from "./chunks/UiRadioGroup.js";
|
|
31
32
|
import { t as UiStack_default } from "./chunks/UiStack.js";
|
|
32
33
|
import { t as UiSwatch_default } from "./chunks/UiSwatch.js";
|
|
@@ -82,4 +83,4 @@ import { t as UiTopBar_default } from "./chunks/UiTopBar.js";
|
|
|
82
83
|
import { t as UiTree_default } from "./chunks/UiTree.js";
|
|
83
84
|
import { t as UiTreeItem_default } from "./chunks/UiTreeItem.js";
|
|
84
85
|
import { trackInputModality } from "@threadlabs/looma/components/shared/input-modality.js";
|
|
85
|
-
export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorBlockActions_default as EditorBlockActions, UiEditorChipEditor_default as EditorChipEditor, UiEditorCodeLanguage_default as EditorCodeLanguage, UiEditorFootnoteEditor_default as EditorFootnoteEditor, UiEditorImageToolbar_default as EditorImageToolbar, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorLinkCard_default as EditorLinkCard, UiEditorLinkForm_default as EditorLinkForm, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorMentionMenuItem_default as EditorMentionMenuItem, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorSlashMenuGroup_default as EditorSlashMenuGroup, UiEditorSlashMenuItem_default as EditorSlashMenuItem, UiEditorSurface_default as EditorSurface, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiImage_default as Image, UiInput_default as Input, UiInputGroup_default as InputGroup, UiList_default as List, UiListItem_default as ListItem, UiListbox_default as Listbox, UiMenu_default as Menu, UiMenuGroup_default as MenuGroup, UiMenuItem_default as MenuItem, UiMeter_default as Meter, UiNavItem_default as NavItem, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwatch_default as Swatch, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTable_default as Table, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToast_default as Toast, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
|
|
86
|
+
export { UiActionBar_default as ActionBar, UiAffordanceScope_default as AffordanceScope, UiAvatar_default as Avatar, UiAvatarGroup_default as AvatarGroup, UiBadge_default as Badge, UiBreadcrumbItem_default as BreadcrumbItem, UiBreadcrumbs_default as Breadcrumbs, UiButton_default as Button, UiCallout_default as Callout, UiCard_default as Card, UiCheckbox_default as Checkbox, UiCluster_default as Cluster, UiColorPicker_default as ColorPicker, UiCombobox_default as Combobox, UiContainer_default as Container, UiContextMenu_default as ContextMenu, UiCover_default as Cover, UiDescriptionItem_default as DescriptionItem, UiDescriptionList_default as DescriptionList, UiDialog_default as Dialog, UiDisclosure_default as Disclosure, UiEditable_default as Editable, UiEditorBlockActions_default as EditorBlockActions, UiEditorChipEditor_default as EditorChipEditor, UiEditorCodeLanguage_default as EditorCodeLanguage, UiEditorFootnoteEditor_default as EditorFootnoteEditor, UiEditorImageToolbar_default as EditorImageToolbar, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorLinkCard_default as EditorLinkCard, UiEditorLinkForm_default as EditorLinkForm, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorMentionMenuItem_default as EditorMentionMenuItem, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorSlashMenuGroup_default as EditorSlashMenuGroup, UiEditorSlashMenuItem_default as EditorSlashMenuItem, UiEditorSurface_default as EditorSurface, UiEditorTableContextMenu_default as EditorTableContextMenu, UiEditorTableOverlay_default as EditorTableOverlay, UiEditorTableToolbar_default as EditorTableToolbar, UiEditorToolbar_default as EditorToolbar, UiFloatingActionButton_default as FloatingActionButton, UiFormField_default as FormField, UiGrid_default as Grid, UiIcon_default as Icon, UiIconButton_default as IconButton, UiImage_default as Image, UiInput_default as Input, UiInputGroup_default as InputGroup, UiList_default as List, UiListItem_default as ListItem, UiListbox_default as Listbox, UiMenu_default as Menu, UiMenuGroup_default as MenuGroup, UiMenuItem_default as MenuItem, UiMeter_default as Meter, UiNavItem_default as NavItem, UiPageHeader_default as PageHeader, UiPopover_default as Popover, UiRadio_default as Radio, UiRadioGroup_default as RadioGroup, UiReel_default as Reel, UiScrollArea_default as ScrollArea, UiSearchResultRow_default as SearchResultRow, UiSearchShell_default as SearchShell, UiSection_default as Section, UiSelect_default as Select, UiSeparator_default as Separator, UiSidebar_default as Sidebar, UiSpinner_default as Spinner, UiStack_default as Stack, UiStatusMessage_default as StatusMessage, UiSwatch_default as Swatch, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTable_default as Table, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToast_default as Toast, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
|