@threadlabs/looma 0.14.8 → 0.15.1
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 +5 -0
- package/components/shared/menu-navigation.js +49 -0
- package/components/shared/overlay.js +33 -60
- package/components/ui-avatar/ui-avatar.html +19 -2
- package/components/ui-avatar/ui-avatar.js +7 -1
- package/components/ui-avatar-group/ui-avatar-group.html +8 -3
- package/components/ui-avatar-group/ui-avatar-group.js +6 -2
- package/components/ui-badge/ui-badge.html +70 -4
- package/components/ui-button/ui-button.html +21 -5
- package/components/ui-button/ui-button.js +10 -0
- package/components/ui-callout/ui-callout.html +13 -5
- package/components/ui-checkbox/ui-checkbox.html +11 -0
- package/components/ui-cluster/ui-cluster.html +7 -0
- package/components/ui-combobox/ui-combobox.html +46 -10
- package/components/ui-combobox/ui-combobox.js +5 -5
- package/components/ui-context-menu/ui-context-menu.html +33 -5
- package/components/ui-context-menu/ui-context-menu.js +26 -17
- package/components/ui-dialog/ui-dialog.html +51 -8
- package/components/ui-dialog/ui-dialog.js +28 -7
- package/components/ui-disclosure/ui-disclosure.html +14 -5
- package/components/ui-disclosure/ui-disclosure.js +51 -4
- package/components/ui-editable/ui-editable.html +17 -3
- package/components/ui-editable/ui-editable.js +7 -0
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +48 -14
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.js +40 -6
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +22 -9
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +33 -11
- package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +67 -0
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +33 -30
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +42 -8
- package/components/ui-editor-slash-menu-group/ui-editor-slash-menu-group.html +31 -0
- package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +75 -0
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +16 -5
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.js +10 -2
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +5 -5
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +5 -2
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +14 -4
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.js +2 -2
- package/components/ui-editor-toolbar/ui-editor-toolbar.html +1 -1
- package/components/ui-editor-toolbar/ui-editor-toolbar.js +46 -0
- package/components/ui-floating-action-button/ui-floating-action-button.html +1 -1
- package/components/ui-form-field/ui-form-field.html +16 -3
- package/components/ui-form-field/ui-form-field.js +1 -1
- package/components/ui-grid/ui-grid.html +17 -2
- package/components/ui-icon/ui-icon.html +5 -0
- package/components/ui-icon-button/ui-icon-button.html +25 -6
- package/components/ui-icon-button/ui-icon-button.js +11 -1
- package/components/ui-input/ui-input.html +3 -3
- package/components/ui-input-group/ui-input-group.html +18 -4
- package/components/ui-listbox/ui-listbox.html +81 -0
- package/components/ui-listbox/ui-listbox.js +27 -0
- package/components/ui-menu/ui-menu.html +33 -5
- package/components/ui-menu/ui-menu.js +18 -12
- package/components/ui-menu-group/ui-menu-group.html +27 -0
- package/components/ui-menu-item/ui-menu-item.html +80 -8
- package/components/ui-menu-item/ui-menu-item.js +47 -0
- package/components/ui-popover/ui-popover.html +33 -5
- package/components/ui-popover/ui-popover.js +9 -1
- package/components/ui-radio-group/ui-radio-group.html +13 -1
- package/components/ui-search-shell/ui-search-shell.html +6 -6
- package/components/ui-search-shell/ui-search-shell.js +21 -5
- package/components/ui-select/ui-select.html +14 -4
- package/components/ui-switch/ui-switch.html +2 -2
- package/components/ui-switcher/ui-switcher.html +8 -1
- package/components/ui-switcher/ui-switcher.js +15 -0
- package/components/ui-tabs/ui-tabs.html +17 -12
- package/components/ui-tabs/ui-tabs.js +43 -7
- package/components/ui-textarea/ui-textarea.html +28 -5
- package/components/ui-toast/ui-toast.html +88 -0
- package/components/ui-toast/ui-toast.js +68 -0
- package/components/ui-toast-region/ui-toast-region.html +102 -19
- package/components/ui-toast-region/ui-toast-region.js +10 -18
- package/components/ui-tooltip/ui-tooltip.html +51 -7
- package/components/ui-tooltip/ui-tooltip.js +29 -3
- package/components/ui-tree/ui-tree.html +12 -0
- package/components/ui-tree/ui-tree.js +191 -12
- package/components/ui-tree-item/ui-tree-item.html +87 -8
- package/components/ui-tree-item/ui-tree-item.js +3 -1
- package/dist/index.js +38 -32
- package/editor/chunks/extensions.js +82 -2
- package/editor/extensions/table-commands.d.ts +8 -0
- package/editor/icons.d.ts +5 -0
- package/editor/index.js +7 -2
- package/editor/insert-table-grid.d.ts +1 -1
- package/editor/mention-menu.d.ts +2 -0
- package/editor/slash-menu.d.ts +3 -0
- package/editor/table-context-menu.d.ts +1 -1
- package/editor/table-overlay.d.ts +2 -2
- package/package.json +1 -1
- package/styles/ui-avatar-group.css +1 -2
- package/styles/ui-avatar.css +11 -1
- package/styles/ui-badge.css +73 -1
- package/styles/ui-button.css +9 -1
- package/styles/ui-callout.css +1 -1
- package/styles/ui-checkbox.css +9 -0
- package/styles/ui-cluster.css +3 -0
- package/styles/ui-combobox.css +38 -7
- package/styles/ui-context-menu.css +32 -4
- package/styles/ui-dialog.css +42 -5
- package/styles/ui-editor-insert-table-grid.css +48 -11
- package/styles/ui-editor-mention-menu-item.css +57 -0
- package/styles/ui-editor-mention-menu.css +11 -1
- package/styles/ui-editor-slash-menu-group.css +21 -0
- package/styles/ui-editor-slash-menu-item.css +62 -0
- package/styles/ui-editor-slash-menu.css +10 -21
- package/styles/ui-editor-table-context-menu.css +1 -1
- package/styles/ui-floating-action-button.css +1 -1
- package/styles/ui-form-field.css +14 -1
- package/styles/ui-grid.css +14 -1
- package/styles/ui-icon-button.css +17 -5
- package/styles/ui-input-group.css +18 -4
- package/styles/ui-input.css +3 -3
- package/styles/ui-listbox.css +69 -0
- package/styles/ui-menu-group.css +19 -0
- package/styles/ui-menu-item.css +48 -9
- package/styles/ui-menu.css +32 -4
- package/styles/ui-popover.css +28 -4
- package/styles/ui-radio-group.css +9 -0
- package/styles/ui-search-shell.css +5 -5
- package/styles/ui-select.css +14 -4
- package/styles/ui-switch.css +2 -2
- package/styles/ui-switcher.css +4 -0
- package/styles/ui-textarea.css +27 -4
- package/styles/ui-toast-region.css +88 -4
- package/styles/ui-toast.css +74 -0
- package/styles/ui-tooltip.css +46 -6
- package/styles/ui-tree-item.css +72 -4
- package/styles/ui-tree.css +8 -0
- package/tokens.css +3 -0
- package/vanilla/UiAvatar.d.ts +2 -0
- package/vanilla/UiAvatar.js +8 -1
- package/vanilla/UiAvatarGroup.d.ts +2 -0
- package/vanilla/UiAvatarGroup.js +1 -1
- package/vanilla/UiBadge.d.ts +1 -1
- package/vanilla/UiBadge.js +1 -1
- package/vanilla/UiButton.d.ts +1 -0
- package/vanilla/UiButton.js +22 -6
- package/vanilla/UiCallout.d.ts +1 -1
- package/vanilla/UiCallout.js +1 -1
- package/vanilla/UiCheckbox.d.ts +1 -0
- package/vanilla/UiCheckbox.js +12 -9
- package/vanilla/UiCluster.d.ts +1 -0
- package/vanilla/UiCluster.js +2 -0
- package/vanilla/UiCombobox.d.ts +3 -0
- package/vanilla/UiCombobox.js +30 -15
- package/vanilla/UiContextMenu.d.ts +1 -1
- package/vanilla/UiContextMenu.js +1 -1
- package/vanilla/UiDialog.d.ts +5 -2
- package/vanilla/UiDialog.js +1 -1
- package/vanilla/UiDisclosure.d.ts +2 -0
- package/vanilla/UiDisclosure.js +32 -18
- package/vanilla/UiEditable.d.ts +5 -0
- package/vanilla/UiEditable.js +7 -3
- package/vanilla/UiEditorInsertTableGrid.js +1 -6
- package/vanilla/UiEditorMentionMenu.d.ts +4 -2
- package/vanilla/UiEditorMentionMenu.js +49 -31
- package/vanilla/UiEditorMentionMenuItem.d.ts +16 -0
- package/vanilla/UiEditorMentionMenuItem.js +56 -0
- package/vanilla/UiEditorSlashMenu.d.ts +4 -3
- package/vanilla/UiEditorSlashMenu.js +59 -46
- package/vanilla/UiEditorSlashMenuGroup.d.ts +14 -0
- package/vanilla/UiEditorSlashMenuGroup.js +48 -0
- package/vanilla/UiEditorSlashMenuItem.d.ts +18 -0
- package/vanilla/UiEditorSlashMenuItem.js +57 -0
- package/vanilla/UiEditorTableContextMenu.d.ts +5 -2
- package/vanilla/UiEditorTableContextMenu.js +1 -2
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +5 -5
- package/vanilla/UiEditorTableToolbar.d.ts +4 -2
- package/vanilla/UiEditorTableToolbar.js +1 -2
- package/vanilla/UiEditorToolbar.js +2 -0
- package/vanilla/UiGrid.d.ts +1 -0
- package/vanilla/UiGrid.js +8 -7
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/UiIconButton.d.ts +1 -0
- package/vanilla/UiIconButton.js +11 -2
- package/vanilla/UiListbox.d.ts +20 -0
- package/vanilla/UiListbox.js +45 -0
- package/vanilla/UiMenu.d.ts +1 -1
- package/vanilla/UiMenu.js +1 -1
- package/vanilla/UiMenuGroup.d.ts +14 -0
- package/vanilla/UiMenuGroup.js +35 -0
- package/vanilla/UiMenuItem.d.ts +5 -1
- package/vanilla/UiMenuItem.js +91 -30
- package/vanilla/UiPopover.d.ts +1 -1
- package/vanilla/UiPopover.js +1 -1
- package/vanilla/UiRadioGroup.d.ts +1 -0
- package/vanilla/UiRadioGroup.js +6 -3
- package/vanilla/UiSwitcher.d.ts +1 -0
- package/vanilla/UiSwitcher.js +7 -9
- package/vanilla/UiTabs.d.ts +1 -0
- package/vanilla/UiTabs.js +9 -1
- package/vanilla/UiTextarea.d.ts +1 -0
- package/vanilla/UiTextarea.js +4 -1
- package/vanilla/UiToast.d.ts +16 -0
- package/vanilla/UiToast.js +53 -0
- package/vanilla/UiToastRegion.d.ts +1 -4
- package/vanilla/UiToastRegion.js +3 -11
- package/vanilla/UiTooltip.d.ts +1 -1
- package/vanilla/UiTooltip.js +1 -1
- package/vanilla/UiTree.d.ts +2 -0
- package/vanilla/UiTree.js +1 -1
- package/vanilla/UiTreeItem.d.ts +1 -0
- package/vanilla/UiTreeItem.js +45 -31
- package/vanilla/index.js +6 -0
- package/vue/UiAvatar.d.ts +4 -0
- package/vue/UiAvatar.vue +23 -3
- package/vue/UiAvatarGroup.d.ts +3 -0
- package/vue/UiAvatarGroup.vue +7 -4
- package/vue/UiBadge.d.ts +2 -2
- package/vue/UiBadge.vue +74 -2
- package/vue/UiButton.d.ts +5 -3
- package/vue/UiButton.vue +41 -7
- package/vue/UiCallout.d.ts +2 -2
- package/vue/UiCallout.vue +3 -2
- package/vue/UiCheckbox.d.ts +2 -0
- package/vue/UiCheckbox.vue +16 -0
- package/vue/UiCluster.d.ts +1 -0
- package/vue/UiCluster.vue +5 -0
- package/vue/UiCombobox.d.ts +11 -3
- package/vue/UiCombobox.vue +60 -11
- package/vue/UiContextMenu.d.ts +2 -0
- package/vue/UiContextMenu.vue +47 -6
- package/vue/UiDialog.d.ts +18 -4
- package/vue/UiDialog.vue +86 -11
- package/vue/UiDisclosure.d.ts +8 -2
- package/vue/UiDisclosure.vue +38 -14
- package/vue/UiEditable.d.ts +10 -0
- package/vue/UiEditable.vue +14 -2
- package/vue/UiEditorInsertTableGrid.vue +52 -15
- package/vue/UiEditorMentionMenu.d.ts +24 -2
- package/vue/UiEditorMentionMenu.vue +27 -11
- package/vue/UiEditorMentionMenuItem.d.ts +24 -0
- package/vue/UiEditorMentionMenuItem.js +2 -0
- package/vue/UiEditorMentionMenuItem.vue +88 -0
- package/vue/UiEditorSlashMenu.d.ts +24 -1
- package/vue/UiEditorSlashMenu.vue +33 -33
- package/vue/UiEditorSlashMenuGroup.d.ts +18 -0
- package/vue/UiEditorSlashMenuGroup.js +2 -0
- package/vue/UiEditorSlashMenuGroup.vue +43 -0
- package/vue/UiEditorSlashMenuItem.d.ts +26 -0
- package/vue/UiEditorSlashMenuItem.js +2 -0
- package/vue/UiEditorSlashMenuItem.vue +101 -0
- package/vue/UiEditorTableContextMenu.d.ts +9 -3
- package/vue/UiEditorTableContextMenu.vue +53 -3
- package/vue/UiEditorTableOverlay.d.ts +2 -2
- package/vue/UiEditorTableOverlay.vue +8 -6
- package/vue/UiEditorTableToolbar.d.ts +7 -3
- package/vue/UiEditorTableToolbar.vue +50 -2
- package/vue/UiEditorToolbar.vue +14 -1
- package/vue/UiFloatingActionButton.vue +1 -1
- package/vue/UiFormField.vue +28 -3
- package/vue/UiGrid.d.ts +1 -0
- package/vue/UiGrid.vue +26 -2
- package/vue/UiIcon.vue +16 -0
- package/vue/UiIconButton.d.ts +5 -3
- package/vue/UiIconButton.vue +40 -6
- package/vue/UiInput.vue +10 -3
- package/vue/UiInputGroup.vue +32 -11
- package/vue/UiListbox.d.ts +33 -0
- package/vue/UiListbox.js +2 -0
- package/vue/UiListbox.vue +131 -0
- package/vue/UiMenu.d.ts +2 -0
- package/vue/UiMenu.vue +43 -6
- package/vue/UiMenuGroup.d.ts +18 -0
- package/vue/UiMenuGroup.js +2 -0
- package/vue/UiMenuGroup.vue +39 -0
- package/vue/UiMenuItem.d.ts +34 -2
- package/vue/UiMenuItem.vue +145 -9
- package/vue/UiPopover.d.ts +2 -2
- package/vue/UiPopover.vue +44 -5
- package/vue/UiRadioGroup.d.ts +2 -0
- package/vue/UiRadioGroup.vue +17 -0
- package/vue/UiSearchShell.vue +12 -5
- package/vue/UiSelect.vue +18 -4
- package/vue/UiSwitch.vue +2 -2
- package/vue/UiSwitcher.d.ts +1 -0
- package/vue/UiSwitcher.vue +22 -1
- package/vue/UiTabs.d.ts +6 -2
- package/vue/UiTabs.vue +14 -12
- package/vue/UiTextarea.d.ts +2 -0
- package/vue/UiTextarea.vue +32 -4
- package/vue/UiToast.d.ts +34 -0
- package/vue/UiToast.js +2 -0
- package/vue/UiToast.vue +173 -0
- package/vue/UiToastRegion.d.ts +2 -18
- package/vue/UiToastRegion.vue +123 -48
- package/vue/UiTooltip.d.ts +2 -2
- package/vue/UiTooltip.vue +67 -12
- package/vue/UiTree.d.ts +10 -0
- package/vue/UiTree.vue +27 -0
- package/vue/UiTreeItem.d.ts +2 -0
- package/vue/UiTreeItem.vue +96 -4
- package/vue/chunks/UiAvatar.js +19 -5
- package/vue/chunks/UiAvatarGroup.js +10 -4
- package/vue/chunks/UiBadge.js +1 -1
- package/vue/chunks/UiButton.js +58 -11
- package/vue/chunks/UiCallout.js +2 -2
- package/vue/chunks/UiCheckbox.js +12 -2
- package/vue/chunks/UiCluster.js +5 -3
- package/vue/chunks/UiCombobox.js +29 -13
- package/vue/chunks/UiContextMenu.js +6 -2
- package/vue/chunks/UiDialog.js +25 -8
- package/vue/chunks/UiDisclosure.js +36 -12
- package/vue/chunks/UiEditable.js +22 -8
- package/vue/chunks/UiEditorInsertTableGrid.js +11 -14
- package/vue/chunks/UiEditorMentionMenu.js +30 -19
- package/vue/chunks/UiEditorMentionMenuItem.js +36 -0
- package/vue/chunks/UiEditorSlashMenu.js +33 -35
- package/vue/chunks/UiEditorSlashMenuGroup.js +26 -0
- package/vue/chunks/UiEditorSlashMenuItem.js +51 -0
- package/vue/chunks/UiEditorTableContextMenu.js +39 -5
- package/vue/chunks/UiEditorTableOverlay.js +6 -6
- package/vue/chunks/UiEditorTableToolbar.js +37 -4
- package/vue/chunks/UiEditorToolbar.js +18 -4
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiFormField.js +13 -9
- package/vue/chunks/UiGrid.js +6 -2
- package/vue/chunks/UiIcon.js +40 -2
- package/vue/chunks/UiIconButton.js +35 -4
- package/vue/chunks/UiInput.js +1 -1
- package/vue/chunks/UiInputGroup.js +1 -1
- package/vue/chunks/UiListbox.js +70 -0
- package/vue/chunks/UiMenu.js +6 -2
- package/vue/chunks/UiMenuGroup.js +25 -0
- package/vue/chunks/UiMenuItem.js +128 -7
- package/vue/chunks/UiPopover.js +1 -1
- package/vue/chunks/UiRadioGroup.js +8 -2
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSelect.js +1 -1
- package/vue/chunks/UiSwitch.js +1 -1
- package/vue/chunks/UiSwitcher.js +20 -3
- package/vue/chunks/UiTabs.js +4 -3
- package/vue/chunks/UiTextarea.js +7 -2
- package/vue/chunks/UiToast.js +81 -0
- package/vue/chunks/UiToastRegion.js +25 -49
- package/vue/chunks/UiTooltip.js +3 -7
- package/vue/chunks/UiTree.js +8 -4
- package/vue/chunks/UiTreeItem.js +28 -10
- package/vue/components.css +1856 -864
- package/vue/editor/index.js +263 -2
- package/vue/index.d.ts +6 -0
- package/vue/index.js +9 -3
package/vue/editor/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, h, nextTick, onBeforeUnmount, onMounted, reactive, ref, useId, watch } from "vue";
|
|
2
2
|
import { DEFAULT_MENTION_RESULT_LIMIT, LOOMA_ICONS, createLoomaMentionExtension, createLoomaSlashCommandExtension, getActiveTableUiState, getDefaultEditorExtensions, getVisualViewportRect, handleTableAction, handleTableOverlayAction, measureTableOverlayGeometry, normalizeActiveTableColumnWidths, resolveTableCellAt, shouldShowTextFormattingToolbar } from "@threadlabs/looma/editor";
|
|
3
|
-
import { EditorInsertTableGrid, EditorMentionMenu, EditorSlashMenu, EditorTableContextMenu, EditorTableOverlay, EditorTableToolbar, EditorToolbar, IconButton, Popover, Tooltip } from "@threadlabs/looma/vue";
|
|
3
|
+
import { EditorInsertTableGrid, EditorMentionMenu, EditorSlashMenu, EditorTableContextMenu, EditorTableOverlay, EditorTableToolbar, EditorToolbar, IconButton, Menu, MenuItem, Popover, Tooltip } from "@threadlabs/looma/vue";
|
|
4
4
|
import { BubbleMenu, EditorContent, useEditor } from "@tiptap/vue-3";
|
|
5
5
|
import { Plugin, PluginKey, TextSelection } from "@tiptap/pm/state";
|
|
6
6
|
import { Extension } from "@tiptap/core";
|
|
@@ -185,6 +185,12 @@ var EMPTY_DOCUMENT = {
|
|
|
185
185
|
};
|
|
186
186
|
var editorInstanceSequence = 0;
|
|
187
187
|
var EMPTY_CAPABILITIES = {
|
|
188
|
+
canToggleHeaderRow: false,
|
|
189
|
+
canToggleHeaderColumn: false,
|
|
190
|
+
canMoveRowUp: false,
|
|
191
|
+
canMoveRowDown: false,
|
|
192
|
+
canMoveColumnLeft: false,
|
|
193
|
+
canMoveColumnRight: false,
|
|
188
194
|
canAddRowBefore: false,
|
|
189
195
|
canAddRowAfter: false,
|
|
190
196
|
canAddColumnBefore: false,
|
|
@@ -198,6 +204,22 @@ var EMPTY_CAPABILITIES = {
|
|
|
198
204
|
function sameDocument(left, right) {
|
|
199
205
|
return JSON.stringify(left) === JSON.stringify(right);
|
|
200
206
|
}
|
|
207
|
+
function validLinkHref(value) {
|
|
208
|
+
const href = value.trim();
|
|
209
|
+
if (!href || /[\u0000-\u001f\u007f]/.test(href)) return null;
|
|
210
|
+
if (/^(\/|#|\?)/.test(href)) return href;
|
|
211
|
+
try {
|
|
212
|
+
const url = new URL(href);
|
|
213
|
+
return [
|
|
214
|
+
"http:",
|
|
215
|
+
"https:",
|
|
216
|
+
"mailto:",
|
|
217
|
+
"tel:"
|
|
218
|
+
].includes(url.protocol) ? href : null;
|
|
219
|
+
} catch {
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
201
223
|
function managedMenuAnchorRect(rect) {
|
|
202
224
|
if (!rect) return null;
|
|
203
225
|
return {
|
|
@@ -314,6 +336,16 @@ var LoomaEditor = defineComponent({
|
|
|
314
336
|
const root = ref(null);
|
|
315
337
|
const fileInput = ref(null);
|
|
316
338
|
const tablePickerAnchorId = `looma-editor-table-picker-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
339
|
+
const blockActionAnchorId = `ui-block-tools-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
340
|
+
let blockActionTarget = null;
|
|
341
|
+
const linkAnchorId = `looma-editor-link-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
342
|
+
const linkUrlInput = ref(null);
|
|
343
|
+
const linkOpen = ref(false);
|
|
344
|
+
const linkHref = ref("");
|
|
345
|
+
const linkText = ref("");
|
|
346
|
+
const linkNewTab = ref(true);
|
|
347
|
+
const linkError = ref("");
|
|
348
|
+
let linkSelection = null;
|
|
317
349
|
const toolbarScope = `looma-editor-tool-${useId().replace(/[^a-zA-Z0-9_-]/g, "")}`;
|
|
318
350
|
const tooltipFor = ref("");
|
|
319
351
|
const tooltipLabel = ref("");
|
|
@@ -382,8 +414,11 @@ var LoomaEditor = defineComponent({
|
|
|
382
414
|
toolbarOpen: false,
|
|
383
415
|
overlayOpen: false,
|
|
384
416
|
menuOpen: false,
|
|
417
|
+
menuScope: "cell",
|
|
385
418
|
alignment: "left",
|
|
386
419
|
background: null,
|
|
420
|
+
headerRow: false,
|
|
421
|
+
headerColumn: false,
|
|
387
422
|
rows: 0,
|
|
388
423
|
cols: 0,
|
|
389
424
|
geometry: null,
|
|
@@ -451,6 +486,112 @@ var LoomaEditor = defineComponent({
|
|
|
451
486
|
emit("update", value);
|
|
452
487
|
}
|
|
453
488
|
});
|
|
489
|
+
const openLinkEditor = () => {
|
|
490
|
+
const instance = editor.value;
|
|
491
|
+
if (!instance || !props.editable) return;
|
|
492
|
+
const current = instance.state.selection;
|
|
493
|
+
const preserved = lastFocusedSelection?.text && lastFocusedSelection.from !== lastFocusedSelection.to ? lastFocusedSelection : null;
|
|
494
|
+
const from = current.empty && preserved ? preserved.from : current.from;
|
|
495
|
+
const to = current.empty && preserved ? preserved.to : current.to;
|
|
496
|
+
const empty = from === to;
|
|
497
|
+
const existing = instance.isActive("link");
|
|
498
|
+
linkSelection = {
|
|
499
|
+
from,
|
|
500
|
+
to,
|
|
501
|
+
existing
|
|
502
|
+
};
|
|
503
|
+
const attrs = existing ? instance.getAttributes("link") : {};
|
|
504
|
+
linkHref.value = typeof attrs.href === "string" ? attrs.href : "";
|
|
505
|
+
linkNewTab.value = attrs.target !== "_self";
|
|
506
|
+
linkText.value = empty && !existing ? "" : instance.state.doc.textBetween(from, to);
|
|
507
|
+
linkError.value = "";
|
|
508
|
+
linkOpen.value = true;
|
|
509
|
+
nextTick(() => linkUrlInput.value?.focus());
|
|
510
|
+
};
|
|
511
|
+
const saveLink = () => {
|
|
512
|
+
const instance = editor.value;
|
|
513
|
+
const selection = linkSelection;
|
|
514
|
+
if (!instance || !selection) return;
|
|
515
|
+
const href = validLinkHref(linkHref.value);
|
|
516
|
+
if (!href) {
|
|
517
|
+
linkError.value = "Enter an http, https, mailto, tel, or relative URL.";
|
|
518
|
+
linkUrlInput.value?.focus();
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
const attrs = {
|
|
522
|
+
href,
|
|
523
|
+
target: linkNewTab.value ? "_blank" : "_self",
|
|
524
|
+
rel: linkNewTab.value ? "noopener noreferrer" : null
|
|
525
|
+
};
|
|
526
|
+
const chain = instance.chain().focus().setTextSelection({
|
|
527
|
+
from: selection.from,
|
|
528
|
+
to: selection.to
|
|
529
|
+
});
|
|
530
|
+
if (selection.from === selection.to && !selection.existing) {
|
|
531
|
+
const text = linkText.value.trim();
|
|
532
|
+
if (!text) {
|
|
533
|
+
linkError.value = "Enter link text.";
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
chain.insertContent({
|
|
537
|
+
type: "text",
|
|
538
|
+
text,
|
|
539
|
+
marks: [{
|
|
540
|
+
type: "link",
|
|
541
|
+
attrs
|
|
542
|
+
}]
|
|
543
|
+
}).run();
|
|
544
|
+
} else {
|
|
545
|
+
if (selection.existing && selection.from === selection.to) chain.extendMarkRange("link");
|
|
546
|
+
chain.setLink(attrs).run();
|
|
547
|
+
}
|
|
548
|
+
linkOpen.value = false;
|
|
549
|
+
};
|
|
550
|
+
const removeLink = () => {
|
|
551
|
+
const instance = editor.value;
|
|
552
|
+
const selection = linkSelection;
|
|
553
|
+
if (!instance || !selection?.existing) return;
|
|
554
|
+
instance.chain().focus().setTextSelection({
|
|
555
|
+
from: selection.from,
|
|
556
|
+
to: selection.to
|
|
557
|
+
}).extendMarkRange("link").unsetLink().run();
|
|
558
|
+
linkOpen.value = false;
|
|
559
|
+
};
|
|
560
|
+
const captureBlockAction = () => {
|
|
561
|
+
const instance = editor.value;
|
|
562
|
+
const head = instance?.state.selection.$head;
|
|
563
|
+
const position = head && head.depth > 0 ? head.before(1) : null;
|
|
564
|
+
blockActionTarget = position === null ? null : {
|
|
565
|
+
position,
|
|
566
|
+
node: instance?.state.doc.nodeAt(position) ?? null
|
|
567
|
+
};
|
|
568
|
+
};
|
|
569
|
+
const runBlockAction = (value) => {
|
|
570
|
+
const instance = editor.value;
|
|
571
|
+
const target = blockActionTarget;
|
|
572
|
+
if (!instance || !target || !props.editable) return;
|
|
573
|
+
const { state } = instance;
|
|
574
|
+
const { position } = target;
|
|
575
|
+
const block = state.doc.nodeAt(position);
|
|
576
|
+
if (!block || block !== target.node) return;
|
|
577
|
+
const end = position + block.nodeSize;
|
|
578
|
+
const transaction = state.tr;
|
|
579
|
+
let focusAt = end + 1;
|
|
580
|
+
if (value === "insert-below") transaction.insert(end, state.schema.nodes.paragraph.create());
|
|
581
|
+
else if (value === "duplicate") transaction.insert(end, block);
|
|
582
|
+
else if (value === "delete") {
|
|
583
|
+
if (state.doc.childCount === 1) {
|
|
584
|
+
transaction.replaceWith(position, end, state.schema.nodes.paragraph.create());
|
|
585
|
+
focusAt = 1;
|
|
586
|
+
} else {
|
|
587
|
+
transaction.delete(position, end);
|
|
588
|
+
focusAt = Math.min(position + 1, transaction.doc.content.size);
|
|
589
|
+
}
|
|
590
|
+
} else return;
|
|
591
|
+
transaction.setSelection(TextSelection.near(transaction.doc.resolve(Math.min(focusAt, transaction.doc.content.size))));
|
|
592
|
+
instance.view.dispatch(transaction);
|
|
593
|
+
instance.commands.focus();
|
|
594
|
+
};
|
|
454
595
|
watch(() => props.editable, (editable) => editor.value?.setEditable(editable));
|
|
455
596
|
watch(() => props.label, (label) => {
|
|
456
597
|
editor.value?.setOptions({ editorProps: { attributes: {
|
|
@@ -495,8 +636,11 @@ var LoomaEditor = defineComponent({
|
|
|
495
636
|
tableUi.toolbarOpen = false;
|
|
496
637
|
tableUi.overlayOpen = false;
|
|
497
638
|
tableUi.menuOpen = false;
|
|
639
|
+
tableUi.menuScope = "cell";
|
|
498
640
|
tableUi.alignment = "left";
|
|
499
641
|
tableUi.background = null;
|
|
642
|
+
tableUi.headerRow = false;
|
|
643
|
+
tableUi.headerColumn = false;
|
|
500
644
|
tableUi.geometry = null;
|
|
501
645
|
tableUi.capabilities = { ...EMPTY_CAPABILITIES };
|
|
502
646
|
overlayTableElement = null;
|
|
@@ -542,6 +686,8 @@ var LoomaEditor = defineComponent({
|
|
|
542
686
|
tableUi.overlayOpen = !mobile.value;
|
|
543
687
|
tableUi.alignment = selectedTableIsActive ? state.cellAlignment : "left";
|
|
544
688
|
tableUi.background = selectedTableIsActive ? state.cellBackground : null;
|
|
689
|
+
tableUi.headerRow = selectedTableIsActive && state.headerRow;
|
|
690
|
+
tableUi.headerColumn = selectedTableIsActive && state.headerColumn;
|
|
545
691
|
tableUi.capabilities = selectedTableIsActive ? state.capabilities : { ...EMPTY_CAPABILITIES };
|
|
546
692
|
const selectedCell = selectedTableIsActive ? selectedTableCellElement(instance) : null;
|
|
547
693
|
const geometry = measureTableOverlayGeometry(table, selectedCell, hoveredTableCell && table.contains(hoveredTableCell) ? hoveredTableCell : null);
|
|
@@ -737,6 +883,7 @@ var LoomaEditor = defineComponent({
|
|
|
737
883
|
event.preventDefault();
|
|
738
884
|
if (selectedTableCellElement(instance) !== cell && !cell.classList.contains("selectedCell")) instance.chain().focus().setTextSelection(instance.view.posAtDOM(cell, 0) + 1).run();
|
|
739
885
|
updateTableUi();
|
|
886
|
+
tableUi.menuScope = "cell";
|
|
740
887
|
tableUi.menuOpen = true;
|
|
741
888
|
tableUi.menuStyle = {
|
|
742
889
|
top: `${event.clientY}px`,
|
|
@@ -762,6 +909,17 @@ var LoomaEditor = defineComponent({
|
|
|
762
909
|
if (cell && selectedCell !== cell && !cell.classList.contains("selectedCell")) instance.chain().focus().setTextSelection(instance.view.posAtDOM(cell, 0) + 1).run();
|
|
763
910
|
else instance.commands.focus();
|
|
764
911
|
updateTableUi();
|
|
912
|
+
tableUi.menuScope = "cell";
|
|
913
|
+
tableUi.menuStyle = {
|
|
914
|
+
top: `${detail.anchor.bottom + 4}px`,
|
|
915
|
+
left: `${detail.anchor.right}px`
|
|
916
|
+
};
|
|
917
|
+
tableUi.menuOpen = true;
|
|
918
|
+
return;
|
|
919
|
+
}
|
|
920
|
+
if (detail.action === "open-row-menu" || detail.action === "open-column-menu") {
|
|
921
|
+
updateTableUi();
|
|
922
|
+
tableUi.menuScope = detail.action === "open-row-menu" ? "row" : "column";
|
|
765
923
|
tableUi.menuStyle = {
|
|
766
924
|
top: `${detail.anchor.bottom + 4}px`,
|
|
767
925
|
left: `${detail.anchor.right}px`
|
|
@@ -841,6 +999,20 @@ var LoomaEditor = defineComponent({
|
|
|
841
999
|
commandButton("Strike", "strikethrough", instance.isActive("strike"), !instance.can().toggleStrike(), () => instance.chain().focus().toggleStrike().run()),
|
|
842
1000
|
commandButton("Highlight", "highlighter", instance.isActive("highlight"), !instance.can().toggleHighlight(), () => instance.chain().focus().toggleHighlight().run()),
|
|
843
1001
|
commandButton("Inline code", "code-xml", instance.isActive("code"), !instance.can().toggleCode(), () => instance.chain().focus().toggleCode().run()),
|
|
1002
|
+
h(IconButton, {
|
|
1003
|
+
id: linkAnchorId,
|
|
1004
|
+
class: "looma-editor__toolbar-button",
|
|
1005
|
+
label: "Link",
|
|
1006
|
+
size: "sm",
|
|
1007
|
+
variant: "ghost",
|
|
1008
|
+
"aria-expanded": linkOpen.value ? "true" : "false",
|
|
1009
|
+
"aria-pressed": instance.isActive("link") ? "true" : "false",
|
|
1010
|
+
"data-active": instance.isActive("link") ? "true" : "false",
|
|
1011
|
+
onPointerenter: () => showTool(linkAnchorId, "Link", false),
|
|
1012
|
+
onPointerleave: hideTool,
|
|
1013
|
+
onFocusin: () => showTool(linkAnchorId, "Link", true),
|
|
1014
|
+
onFocusout: hideTool
|
|
1015
|
+
}, () => loomaIcon("link")),
|
|
844
1016
|
h("span", {
|
|
845
1017
|
class: "divider",
|
|
846
1018
|
"aria-hidden": "true"
|
|
@@ -852,6 +1024,17 @@ var LoomaEditor = defineComponent({
|
|
|
852
1024
|
commandButton("Numbered list", "list-ordered", instance.isActive("orderedList"), false, () => instance.chain().focus().toggleOrderedList().run()),
|
|
853
1025
|
commandButton("Blockquote", "quote", instance.isActive("blockquote"), !instance.can().toggleBlockquote(), () => instance.chain().focus().toggleBlockquote().run()),
|
|
854
1026
|
commandButton("Code block", "braces", instance.isActive("codeBlock"), !instance.can().toggleCodeBlock(), () => instance.chain().focus().toggleCodeBlock().run()),
|
|
1027
|
+
h(IconButton, {
|
|
1028
|
+
id: blockActionAnchorId,
|
|
1029
|
+
class: "looma-editor__toolbar-button",
|
|
1030
|
+
label: "Block actions",
|
|
1031
|
+
size: "sm",
|
|
1032
|
+
variant: "ghost",
|
|
1033
|
+
onPointerenter: () => showTool(blockActionAnchorId, "Block actions", false),
|
|
1034
|
+
onPointerleave: hideTool,
|
|
1035
|
+
onFocusin: () => showTool(blockActionAnchorId, "Block actions", true),
|
|
1036
|
+
onFocusout: hideTool
|
|
1037
|
+
}, () => loomaIcon("ellipsis")),
|
|
855
1038
|
h("span", {
|
|
856
1039
|
class: "divider",
|
|
857
1040
|
"aria-hidden": "true"
|
|
@@ -909,6 +1092,12 @@ var LoomaEditor = defineComponent({
|
|
|
909
1092
|
...tableUi.capabilities.canAddRowAfter ? ["add-row-after"] : [],
|
|
910
1093
|
...tableUi.capabilities.canAddColumnBefore ? ["add-column-before"] : [],
|
|
911
1094
|
...tableUi.capabilities.canAddColumnAfter ? ["add-column-after"] : [],
|
|
1095
|
+
...tableUi.capabilities.canToggleHeaderRow ? ["toggle-header-row"] : [],
|
|
1096
|
+
...tableUi.capabilities.canToggleHeaderColumn ? ["toggle-header-column"] : [],
|
|
1097
|
+
...tableUi.capabilities.canMoveRowUp ? ["move-row-up"] : [],
|
|
1098
|
+
...tableUi.capabilities.canMoveRowDown ? ["move-row-down"] : [],
|
|
1099
|
+
...tableUi.capabilities.canMoveColumnLeft ? ["move-column-left"] : [],
|
|
1100
|
+
...tableUi.capabilities.canMoveColumnRight ? ["move-column-right"] : [],
|
|
912
1101
|
...tableUi.capabilities.canMergeCells ? ["merge-cells"] : [],
|
|
913
1102
|
...tableUi.capabilities.canSplitCell ? ["split-cell"] : [],
|
|
914
1103
|
...tableUi.capabilities.canDeleteRow ? ["delete-row"] : [],
|
|
@@ -919,6 +1108,8 @@ var LoomaEditor = defineComponent({
|
|
|
919
1108
|
open: true,
|
|
920
1109
|
cellAlignment: tableUi.alignment,
|
|
921
1110
|
cellBackground: tableUi.background ?? void 0,
|
|
1111
|
+
headerRow: tableUi.headerRow,
|
|
1112
|
+
headerColumn: tableUi.headerColumn,
|
|
922
1113
|
actions: tableActions,
|
|
923
1114
|
onAction: runTableAction
|
|
924
1115
|
};
|
|
@@ -1012,6 +1203,73 @@ var LoomaEditor = defineComponent({
|
|
|
1012
1203
|
class: "looma-editor__drop-overlay",
|
|
1013
1204
|
"aria-hidden": "true"
|
|
1014
1205
|
}, [loomaIcon("image"), h("span", "Drop image to upload")]) : null,
|
|
1206
|
+
h(Popover, {
|
|
1207
|
+
class: "looma-editor__link-popover",
|
|
1208
|
+
open: linkOpen.value,
|
|
1209
|
+
for: linkAnchorId,
|
|
1210
|
+
placement: mobile.value ? "top-start" : "bottom-start",
|
|
1211
|
+
onOpen: openLinkEditor,
|
|
1212
|
+
onClose: () => {
|
|
1213
|
+
linkOpen.value = false;
|
|
1214
|
+
}
|
|
1215
|
+
}, () => h("form", {
|
|
1216
|
+
class: "looma-editor__link-form",
|
|
1217
|
+
"aria-label": "Edit link",
|
|
1218
|
+
onSubmit: (event) => {
|
|
1219
|
+
event.preventDefault();
|
|
1220
|
+
saveLink();
|
|
1221
|
+
}
|
|
1222
|
+
}, [
|
|
1223
|
+
linkSelection?.from === linkSelection?.to && !linkSelection?.existing ? h("label", [h("span", "Text"), h("input", {
|
|
1224
|
+
value: linkText.value,
|
|
1225
|
+
onInput: (event) => {
|
|
1226
|
+
linkText.value = event.target.value;
|
|
1227
|
+
linkError.value = "";
|
|
1228
|
+
}
|
|
1229
|
+
})]) : null,
|
|
1230
|
+
h("label", [h("span", "URL"), h("input", {
|
|
1231
|
+
ref: linkUrlInput,
|
|
1232
|
+
type: "text",
|
|
1233
|
+
inputmode: "url",
|
|
1234
|
+
value: linkHref.value,
|
|
1235
|
+
"aria-invalid": linkError.value ? "true" : void 0,
|
|
1236
|
+
onInput: (event) => {
|
|
1237
|
+
linkHref.value = event.target.value;
|
|
1238
|
+
linkError.value = "";
|
|
1239
|
+
}
|
|
1240
|
+
})]),
|
|
1241
|
+
h("label", { class: "looma-editor__link-new-tab" }, [h("input", {
|
|
1242
|
+
type: "checkbox",
|
|
1243
|
+
checked: linkNewTab.value,
|
|
1244
|
+
onChange: (event) => {
|
|
1245
|
+
linkNewTab.value = event.target.checked;
|
|
1246
|
+
}
|
|
1247
|
+
}), h("span", "Open in new tab")]),
|
|
1248
|
+
linkError.value ? h("p", {
|
|
1249
|
+
class: "looma-editor__link-error",
|
|
1250
|
+
role: "alert"
|
|
1251
|
+
}, linkError.value) : null,
|
|
1252
|
+
validLinkHref(linkHref.value) ? h("a", {
|
|
1253
|
+
class: "looma-editor__link-preview",
|
|
1254
|
+
href: validLinkHref(linkHref.value),
|
|
1255
|
+
target: "_blank",
|
|
1256
|
+
rel: "noopener noreferrer"
|
|
1257
|
+
}, "Preview link") : null,
|
|
1258
|
+
h("div", { class: "looma-editor__link-actions" }, [linkSelection?.existing ? h("button", {
|
|
1259
|
+
type: "button",
|
|
1260
|
+
onClick: removeLink
|
|
1261
|
+
}, "Remove link") : null, h("button", { type: "submit" }, "Save link")])
|
|
1262
|
+
])),
|
|
1263
|
+
h(Menu, {
|
|
1264
|
+
for: blockActionAnchorId,
|
|
1265
|
+
placement: mobile.value ? "top-start" : "bottom-start",
|
|
1266
|
+
onOpen: captureBlockAction,
|
|
1267
|
+
onSelect: ({ value }) => runBlockAction(value)
|
|
1268
|
+
}, () => [
|
|
1269
|
+
h(MenuItem, { value: "insert-below" }, () => "Insert paragraph below"),
|
|
1270
|
+
h(MenuItem, { value: "duplicate" }, () => "Duplicate block"),
|
|
1271
|
+
h(MenuItem, { value: "delete" }, () => "Delete block")
|
|
1272
|
+
]),
|
|
1015
1273
|
h(Popover, {
|
|
1016
1274
|
class: "looma-editor__table-picker-popover",
|
|
1017
1275
|
open: tablePickerOpen.value,
|
|
@@ -1079,7 +1337,10 @@ var LoomaEditor = defineComponent({
|
|
|
1079
1337
|
ref: tableMenuShell,
|
|
1080
1338
|
class: "looma-editor__table-menu-shell",
|
|
1081
1339
|
style: tableUi.menuStyle
|
|
1082
|
-
}, [h(EditorTableContextMenu,
|
|
1340
|
+
}, [h(EditorTableContextMenu, {
|
|
1341
|
+
...tableProps,
|
|
1342
|
+
scope: tableUi.menuScope
|
|
1343
|
+
})]) : null
|
|
1083
1344
|
]);
|
|
1084
1345
|
};
|
|
1085
1346
|
}
|
package/vue/index.d.ts
CHANGED
|
@@ -21,7 +21,10 @@ export { default as Disclosure } from "./UiDisclosure.js";
|
|
|
21
21
|
export { default as Editable } from "./UiEditable.js";
|
|
22
22
|
export { default as EditorInsertTableGrid } from "./UiEditorInsertTableGrid.js";
|
|
23
23
|
export { default as EditorMentionMenu } from "./UiEditorMentionMenu.js";
|
|
24
|
+
export { default as EditorMentionMenuItem } from "./UiEditorMentionMenuItem.js";
|
|
24
25
|
export { default as EditorSlashMenu } from "./UiEditorSlashMenu.js";
|
|
26
|
+
export { default as EditorSlashMenuGroup } from "./UiEditorSlashMenuGroup.js";
|
|
27
|
+
export { default as EditorSlashMenuItem } from "./UiEditorSlashMenuItem.js";
|
|
25
28
|
export { default as EditorTableContextMenu } from "./UiEditorTableContextMenu.js";
|
|
26
29
|
export { default as EditorTableOverlay } from "./UiEditorTableOverlay.js";
|
|
27
30
|
export { default as EditorTableToolbar } from "./UiEditorTableToolbar.js";
|
|
@@ -35,7 +38,9 @@ export { default as Input } from "./UiInput.js";
|
|
|
35
38
|
export { default as InputGroup } from "./UiInputGroup.js";
|
|
36
39
|
export { default as List } from "./UiList.js";
|
|
37
40
|
export { default as ListItem } from "./UiListItem.js";
|
|
41
|
+
export { default as Listbox } from "./UiListbox.js";
|
|
38
42
|
export { default as Menu } from "./UiMenu.js";
|
|
43
|
+
export { default as MenuGroup } from "./UiMenuGroup.js";
|
|
39
44
|
export { default as MenuItem } from "./UiMenuItem.js";
|
|
40
45
|
export { default as Meter } from "./UiMeter.js";
|
|
41
46
|
export { default as NavItem } from "./UiNavItem.js";
|
|
@@ -60,6 +65,7 @@ export { default as Table } from "./UiTable.js";
|
|
|
60
65
|
export { default as Tabs } from "./UiTabs.js";
|
|
61
66
|
export { default as Text } from "./UiText.js";
|
|
62
67
|
export { default as Textarea } from "./UiTextarea.js";
|
|
68
|
+
export { default as Toast } from "./UiToast.js";
|
|
63
69
|
export { default as ToastRegion } from "./UiToastRegion.js";
|
|
64
70
|
export { default as Tooltip } from "./UiTooltip.js";
|
|
65
71
|
export { default as TopBar } from "./UiTopBar.js";
|
package/vue/index.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { t as UiActionBar_default } from "./chunks/UiActionBar.js";
|
|
2
2
|
import { t as UiAffordanceScope_default } from "./chunks/UiAffordanceScope.js";
|
|
3
|
+
import { t as UiIcon_default } from "./chunks/UiIcon.js";
|
|
3
4
|
import { t as UiAvatar_default } from "./chunks/UiAvatar.js";
|
|
4
5
|
import { t as UiAvatarGroup_default } from "./chunks/UiAvatarGroup.js";
|
|
5
6
|
import { t as UiBadge_default } from "./chunks/UiBadge.js";
|
|
6
|
-
import { t as UiIcon_default } from "./chunks/UiIcon.js";
|
|
7
7
|
import { t as UiBreadcrumbItem_default } from "./chunks/UiBreadcrumbItem.js";
|
|
8
8
|
import { t as UiBreadcrumbs_default } from "./chunks/UiBreadcrumbs.js";
|
|
9
|
+
import { t as UiSpinner_default } from "./chunks/UiSpinner.js";
|
|
9
10
|
import { t as UiButton_default } from "./chunks/UiButton.js";
|
|
10
11
|
import { t as UiCallout_default } from "./chunks/UiCallout.js";
|
|
11
12
|
import { t as UiCard_default } from "./chunks/UiCard.js";
|
|
@@ -23,7 +24,10 @@ import { t as UiDisclosure_default } from "./chunks/UiDisclosure.js";
|
|
|
23
24
|
import { t as UiEditable_default } from "./chunks/UiEditable.js";
|
|
24
25
|
import { t as UiEditorInsertTableGrid_default } from "./chunks/UiEditorInsertTableGrid.js";
|
|
25
26
|
import { t as UiEditorMentionMenu_default } from "./chunks/UiEditorMentionMenu.js";
|
|
27
|
+
import { t as UiEditorMentionMenuItem_default } from "./chunks/UiEditorMentionMenuItem.js";
|
|
26
28
|
import { t as UiEditorSlashMenu_default } from "./chunks/UiEditorSlashMenu.js";
|
|
29
|
+
import { t as UiEditorSlashMenuGroup_default } from "./chunks/UiEditorSlashMenuGroup.js";
|
|
30
|
+
import { t as UiEditorSlashMenuItem_default } from "./chunks/UiEditorSlashMenuItem.js";
|
|
27
31
|
import { t as UiEditorTableContextMenu_default } from "./chunks/UiEditorTableContextMenu.js";
|
|
28
32
|
import { t as UiEditorTableOverlay_default } from "./chunks/UiEditorTableOverlay.js";
|
|
29
33
|
import { t as UiEditorTableToolbar_default } from "./chunks/UiEditorTableToolbar.js";
|
|
@@ -36,7 +40,9 @@ import { t as UiInput_default } from "./chunks/UiInput.js";
|
|
|
36
40
|
import { t as UiInputGroup_default } from "./chunks/UiInputGroup.js";
|
|
37
41
|
import { t as UiList_default } from "./chunks/UiList.js";
|
|
38
42
|
import { t as UiListItem_default } from "./chunks/UiListItem.js";
|
|
43
|
+
import { t as UiListbox_default } from "./chunks/UiListbox.js";
|
|
39
44
|
import { t as UiMenu_default } from "./chunks/UiMenu.js";
|
|
45
|
+
import { t as UiMenuGroup_default } from "./chunks/UiMenuGroup.js";
|
|
40
46
|
import { t as UiMenuItem_default } from "./chunks/UiMenuItem.js";
|
|
41
47
|
import { t as UiMeter_default } from "./chunks/UiMeter.js";
|
|
42
48
|
import { t as UiNavItem_default } from "./chunks/UiNavItem.js";
|
|
@@ -52,7 +58,6 @@ import { t as UiSection_default } from "./chunks/UiSection.js";
|
|
|
52
58
|
import { t as UiSelect_default } from "./chunks/UiSelect.js";
|
|
53
59
|
import { t as UiSeparator_default } from "./chunks/UiSeparator.js";
|
|
54
60
|
import { t as UiSidebar_default } from "./chunks/UiSidebar.js";
|
|
55
|
-
import { t as UiSpinner_default } from "./chunks/UiSpinner.js";
|
|
56
61
|
import { t as UiStack_default } from "./chunks/UiStack.js";
|
|
57
62
|
import { t as UiStatusMessage_default } from "./chunks/UiStatusMessage.js";
|
|
58
63
|
import { t as UiSwitch_default } from "./chunks/UiSwitch.js";
|
|
@@ -61,9 +66,10 @@ import { t as UiTable_default } from "./chunks/UiTable.js";
|
|
|
61
66
|
import { t as UiTabs_default } from "./chunks/UiTabs.js";
|
|
62
67
|
import { t as UiText_default } from "./chunks/UiText.js";
|
|
63
68
|
import { t as UiTextarea_default } from "./chunks/UiTextarea.js";
|
|
69
|
+
import { t as UiToast_default } from "./chunks/UiToast.js";
|
|
64
70
|
import { t as UiToastRegion_default } from "./chunks/UiToastRegion.js";
|
|
65
71
|
import { t as UiTopBar_default } from "./chunks/UiTopBar.js";
|
|
66
72
|
import { t as UiTree_default } from "./chunks/UiTree.js";
|
|
67
73
|
import { t as UiTreeItem_default } from "./chunks/UiTreeItem.js";
|
|
68
74
|
import { trackInputModality } from "@threadlabs/looma/components/shared/input-modality.js";
|
|
69
|
-
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, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorSlashMenu_default as EditorSlashMenu, 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, UiInput_default as Input, UiInputGroup_default as InputGroup, UiList_default as List, UiListItem_default as ListItem, UiMenu_default as Menu, 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, UiSwitch_default as Switch, UiSwitcher_default as Switcher, UiTable_default as Table, UiTabs_default as Tabs, UiText_default as Text, UiTextarea_default as Textarea, UiToastRegion_default as ToastRegion, UiTooltip_default as Tooltip, UiTopBar_default as TopBar, UiTree_default as Tree, UiTreeItem_default as TreeItem, trackInputModality };
|
|
75
|
+
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, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorMentionMenu_default as EditorMentionMenu, UiEditorMentionMenuItem_default as EditorMentionMenuItem, UiEditorSlashMenu_default as EditorSlashMenu, UiEditorSlashMenuGroup_default as EditorSlashMenuGroup, UiEditorSlashMenuItem_default as EditorSlashMenuItem, 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, 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, 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 };
|