@threadlabs/looma 0.28.13 → 0.28.15
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/ui-affordance-scope/ui-affordance-scope.html +1 -1
- package/components/ui-avatar/ui-avatar.html +1 -1
- package/components/ui-combobox/ui-combobox.html +1 -1
- package/components/ui-disclosure/ui-disclosure.html +4 -4
- package/components/ui-editable/ui-editable.html +3 -3
- package/components/ui-menu/ui-menu.html +1 -1
- package/components/ui-popover/ui-popover.html +1 -1
- package/components/ui-sidebar/ui-sidebar.html +4 -4
- package/components/ui-switcher/ui-switcher.html +1 -1
- package/components/ui-tree-item/ui-tree-item.html +2 -2
- package/dist/index.js +1 -1
- package/editor/image-delivery.d.ts +10 -1
- package/package.json +3 -3
- package/styles/ui-action-bar.css +1 -1
- package/styles/ui-affordance-scope.css +1 -1
- package/styles/ui-avatar-group.css +1 -1
- package/styles/ui-avatar.css +1 -1
- package/styles/ui-badge.css +1 -1
- package/styles/ui-breadcrumb-item.css +1 -1
- package/styles/ui-breadcrumbs.css +1 -1
- package/styles/ui-button.css +1 -1
- package/styles/ui-callout.css +1 -1
- package/styles/ui-card.css +1 -1
- package/styles/ui-checkbox.css +1 -1
- package/styles/ui-cluster.css +1 -1
- package/styles/ui-combobox.css +1 -1
- package/styles/ui-container.css +1 -1
- package/styles/ui-context-menu.css +1 -1
- package/styles/ui-cover.css +1 -1
- package/styles/ui-description-item.css +1 -1
- package/styles/ui-description-list.css +1 -1
- package/styles/ui-dialog.css +1 -1
- package/styles/ui-disclosure.css +2 -2
- package/styles/ui-editable.css +1 -1
- package/styles/ui-editor-block-actions.css +1 -1
- package/styles/ui-editor-chip-editor.css +1 -1
- package/styles/ui-editor-code-language.css +1 -1
- package/styles/ui-editor-image-toolbar.css +1 -1
- package/styles/ui-editor-insert-table-grid.css +1 -1
- package/styles/ui-editor-link-card.css +1 -1
- package/styles/ui-editor-link-form.css +1 -1
- package/styles/ui-editor-mention-menu-item.css +1 -1
- package/styles/ui-editor-mention-menu.css +1 -1
- package/styles/ui-editor-slash-menu-group.css +1 -1
- package/styles/ui-editor-slash-menu-item.css +1 -1
- package/styles/ui-editor-slash-menu.css +1 -1
- package/styles/ui-editor-surface.css +1 -1
- package/styles/ui-editor-table-context-menu.css +1 -1
- package/styles/ui-editor-table-overlay.css +1 -1
- package/styles/ui-editor-table-toolbar.css +1 -1
- package/styles/ui-editor-toolbar.css +1 -1
- package/styles/ui-floating-action-button.css +1 -1
- package/styles/ui-form-field.css +1 -1
- package/styles/ui-grid.css +1 -1
- package/styles/ui-icon-button.css +1 -1
- package/styles/ui-icon.css +1 -1
- package/styles/ui-image.css +1 -1
- package/styles/ui-input-group.css +1 -1
- package/styles/ui-input.css +1 -1
- package/styles/ui-list-item.css +1 -1
- package/styles/ui-list.css +1 -1
- package/styles/ui-listbox.css +1 -1
- package/styles/ui-menu-group.css +1 -1
- package/styles/ui-menu-item.css +1 -1
- package/styles/ui-menu.css +2 -2
- package/styles/ui-meter.css +1 -1
- package/styles/ui-nav-item.css +1 -1
- package/styles/ui-page-header.css +1 -1
- package/styles/ui-popover.css +2 -2
- package/styles/ui-radio-group.css +1 -1
- package/styles/ui-radio.css +1 -1
- package/styles/ui-reel.css +1 -1
- package/styles/ui-scroll-area.css +1 -1
- package/styles/ui-search-result-row.css +1 -1
- package/styles/ui-search-shell.css +1 -1
- package/styles/ui-section.css +1 -1
- package/styles/ui-select.css +1 -1
- package/styles/ui-separator.css +1 -1
- package/styles/ui-sidebar.css +2 -2
- package/styles/ui-spinner.css +1 -1
- package/styles/ui-stack.css +1 -1
- package/styles/ui-status-message.css +1 -1
- package/styles/ui-swatch.css +1 -1
- package/styles/ui-switch.css +1 -1
- package/styles/ui-switcher.css +1 -1
- package/styles/ui-table.css +1 -1
- package/styles/ui-tabs.css +1 -1
- package/styles/ui-text.css +1 -1
- package/styles/ui-textarea.css +1 -1
- package/styles/ui-toast-region.css +1 -1
- package/styles/ui-toast.css +1 -1
- package/styles/ui-tooltip.css +1 -1
- package/styles/ui-top-bar.css +1 -1
- package/styles/ui-tree-item.css +1 -1
- package/styles/ui-tree.css +1 -1
- package/vanilla/UiActionBar.d.ts +1 -1
- package/vanilla/UiActionBar.js +1 -1
- package/vanilla/UiAffordanceScope.d.ts +1 -1
- package/vanilla/UiAffordanceScope.js +2 -2
- package/vanilla/UiAvatar.d.ts +1 -1
- package/vanilla/UiAvatar.js +2 -2
- package/vanilla/UiAvatarGroup.d.ts +1 -1
- package/vanilla/UiAvatarGroup.js +2 -2
- package/vanilla/UiBadge.d.ts +1 -1
- package/vanilla/UiBadge.js +2 -2
- package/vanilla/UiBreadcrumbItem.d.ts +1 -1
- package/vanilla/UiBreadcrumbItem.js +2 -2
- package/vanilla/UiBreadcrumbs.d.ts +1 -1
- package/vanilla/UiBreadcrumbs.js +2 -2
- package/vanilla/UiButton.d.ts +1 -1
- package/vanilla/UiButton.js +3 -3
- package/vanilla/UiCallout.d.ts +1 -1
- package/vanilla/UiCallout.js +2 -2
- package/vanilla/UiCard.d.ts +1 -1
- package/vanilla/UiCard.js +3 -3
- package/vanilla/UiCheckbox.d.ts +1 -1
- package/vanilla/UiCheckbox.js +2 -2
- package/vanilla/UiCluster.d.ts +1 -1
- package/vanilla/UiCluster.js +2 -2
- package/vanilla/UiCombobox.d.ts +1 -1
- package/vanilla/UiCombobox.js +2 -2
- package/vanilla/UiContainer.d.ts +1 -1
- package/vanilla/UiContainer.js +2 -2
- package/vanilla/UiContextMenu.d.ts +1 -1
- package/vanilla/UiContextMenu.js +2 -2
- package/vanilla/UiCover.d.ts +1 -1
- package/vanilla/UiCover.js +2 -2
- package/vanilla/UiDescriptionItem.d.ts +1 -1
- package/vanilla/UiDescriptionItem.js +2 -2
- package/vanilla/UiDescriptionList.d.ts +1 -1
- package/vanilla/UiDescriptionList.js +2 -2
- package/vanilla/UiDialog.d.ts +1 -1
- package/vanilla/UiDialog.js +2 -2
- package/vanilla/UiDisclosure.d.ts +1 -1
- package/vanilla/UiDisclosure.js +2 -2
- package/vanilla/UiEditable.d.ts +1 -1
- package/vanilla/UiEditable.js +2 -2
- package/vanilla/UiEditorBlockActions.d.ts +1 -1
- package/vanilla/UiEditorBlockActions.js +2 -2
- package/vanilla/UiEditorChipEditor.d.ts +1 -1
- package/vanilla/UiEditorChipEditor.js +2 -2
- package/vanilla/UiEditorCodeLanguage.d.ts +1 -1
- package/vanilla/UiEditorCodeLanguage.js +2 -2
- package/vanilla/UiEditorImageToolbar.d.ts +1 -1
- package/vanilla/UiEditorImageToolbar.js +2 -2
- package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
- package/vanilla/UiEditorInsertTableGrid.js +2 -2
- package/vanilla/UiEditorLinkCard.d.ts +1 -1
- package/vanilla/UiEditorLinkCard.js +2 -2
- package/vanilla/UiEditorLinkForm.d.ts +1 -1
- package/vanilla/UiEditorLinkForm.js +2 -2
- package/vanilla/UiEditorMentionMenu.d.ts +1 -1
- package/vanilla/UiEditorMentionMenu.js +2 -2
- package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
- package/vanilla/UiEditorMentionMenuItem.js +3 -3
- package/vanilla/UiEditorSlashMenu.d.ts +1 -1
- package/vanilla/UiEditorSlashMenu.js +2 -2
- package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
- package/vanilla/UiEditorSlashMenuGroup.js +2 -2
- package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
- package/vanilla/UiEditorSlashMenuItem.js +3 -3
- package/vanilla/UiEditorSurface.d.ts +1 -1
- package/vanilla/UiEditorSurface.js +2 -2
- package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
- package/vanilla/UiEditorTableContextMenu.js +2 -2
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +2 -2
- package/vanilla/UiEditorTableToolbar.d.ts +1 -1
- package/vanilla/UiEditorTableToolbar.js +2 -2
- package/vanilla/UiEditorToolbar.d.ts +1 -1
- package/vanilla/UiEditorToolbar.js +2 -2
- package/vanilla/UiFloatingActionButton.d.ts +1 -1
- package/vanilla/UiFloatingActionButton.js +2 -2
- package/vanilla/UiFormField.d.ts +1 -1
- package/vanilla/UiFormField.js +2 -2
- package/vanilla/UiGrid.d.ts +1 -1
- package/vanilla/UiGrid.js +2 -2
- package/vanilla/UiIcon.d.ts +1 -1
- package/vanilla/UiIcon.js +2 -2
- package/vanilla/UiIconButton.d.ts +1 -1
- package/vanilla/UiIconButton.js +3 -3
- package/vanilla/UiImage.d.ts +1 -1
- package/vanilla/UiImage.js +2 -2
- package/vanilla/UiInput.d.ts +1 -1
- package/vanilla/UiInput.js +2 -2
- package/vanilla/UiInputGroup.d.ts +1 -1
- package/vanilla/UiInputGroup.js +2 -2
- package/vanilla/UiList.d.ts +1 -1
- package/vanilla/UiList.js +3 -3
- package/vanilla/UiListItem.d.ts +1 -1
- package/vanilla/UiListItem.js +2 -2
- package/vanilla/UiListbox.d.ts +1 -1
- package/vanilla/UiListbox.js +2 -2
- package/vanilla/UiMenu.d.ts +1 -1
- package/vanilla/UiMenu.js +2 -2
- package/vanilla/UiMenuGroup.d.ts +1 -1
- package/vanilla/UiMenuGroup.js +2 -2
- package/vanilla/UiMenuItem.d.ts +1 -1
- package/vanilla/UiMenuItem.js +4 -4
- package/vanilla/UiMeter.d.ts +1 -1
- package/vanilla/UiMeter.js +2 -2
- package/vanilla/UiNavItem.d.ts +1 -1
- package/vanilla/UiNavItem.js +3 -3
- package/vanilla/UiPageHeader.d.ts +1 -1
- package/vanilla/UiPageHeader.js +2 -2
- package/vanilla/UiPopover.d.ts +1 -1
- package/vanilla/UiPopover.js +2 -2
- package/vanilla/UiRadio.d.ts +1 -1
- package/vanilla/UiRadio.js +2 -2
- package/vanilla/UiRadioGroup.d.ts +1 -1
- package/vanilla/UiRadioGroup.js +2 -2
- package/vanilla/UiReel.d.ts +1 -1
- package/vanilla/UiReel.js +2 -2
- package/vanilla/UiScrollArea.d.ts +1 -1
- package/vanilla/UiScrollArea.js +2 -2
- package/vanilla/UiSearchResultRow.d.ts +1 -1
- package/vanilla/UiSearchResultRow.js +2 -2
- package/vanilla/UiSearchShell.d.ts +1 -1
- package/vanilla/UiSearchShell.js +2 -2
- package/vanilla/UiSection.d.ts +1 -1
- package/vanilla/UiSection.js +2 -2
- package/vanilla/UiSelect.d.ts +1 -1
- package/vanilla/UiSelect.js +2 -2
- package/vanilla/UiSeparator.d.ts +1 -1
- package/vanilla/UiSeparator.js +2 -2
- package/vanilla/UiSidebar.d.ts +1 -1
- package/vanilla/UiSidebar.js +2 -2
- package/vanilla/UiSpinner.d.ts +1 -1
- package/vanilla/UiSpinner.js +2 -2
- package/vanilla/UiStack.d.ts +1 -1
- package/vanilla/UiStack.js +2 -2
- package/vanilla/UiStatusMessage.d.ts +1 -1
- package/vanilla/UiStatusMessage.js +2 -2
- package/vanilla/UiSwatch.d.ts +1 -1
- package/vanilla/UiSwatch.js +2 -2
- package/vanilla/UiSwitch.d.ts +1 -1
- package/vanilla/UiSwitch.js +2 -2
- package/vanilla/UiSwitcher.d.ts +1 -1
- package/vanilla/UiSwitcher.js +2 -2
- package/vanilla/UiTable.d.ts +1 -1
- package/vanilla/UiTable.js +2 -2
- package/vanilla/UiTabs.d.ts +1 -1
- package/vanilla/UiTabs.js +2 -2
- package/vanilla/UiText.d.ts +1 -1
- package/vanilla/UiText.js +3 -3
- package/vanilla/UiTextarea.d.ts +1 -1
- package/vanilla/UiTextarea.js +2 -2
- package/vanilla/UiToast.d.ts +1 -1
- package/vanilla/UiToast.js +2 -2
- package/vanilla/UiToastRegion.d.ts +1 -1
- package/vanilla/UiToastRegion.js +2 -2
- package/vanilla/UiTooltip.d.ts +1 -1
- package/vanilla/UiTooltip.js +2 -2
- package/vanilla/UiTopBar.d.ts +1 -1
- package/vanilla/UiTopBar.js +1 -1
- package/vanilla/UiTree.d.ts +1 -1
- package/vanilla/UiTree.js +2 -2
- package/vanilla/UiTreeItem.d.ts +1 -1
- package/vanilla/UiTreeItem.js +3 -3
- package/vue/UiActionBar.vue +23 -15
- package/vue/UiAffordanceScope.vue +11 -9
- package/vue/UiAvatar.vue +34 -27
- package/vue/UiAvatarGroup.vue +22 -17
- package/vue/UiBadge.vue +78 -69
- package/vue/UiBreadcrumbItem.vue +17 -14
- package/vue/UiBreadcrumbs.vue +9 -7
- package/vue/UiButton.vue +150 -138
- package/vue/UiCallout.vue +68 -43
- package/vue/UiCard.vue +52 -44
- package/vue/UiCheckbox.vue +48 -40
- package/vue/UiCluster.vue +35 -33
- package/vue/UiCombobox.vue +158 -107
- package/vue/UiContainer.vue +16 -14
- package/vue/UiContextMenu.vue +24 -13
- package/vue/UiCover.vue +10 -8
- package/vue/UiDescriptionItem.vue +11 -9
- package/vue/UiDescriptionList.vue +20 -18
- package/vue/UiDialog.vue +41 -37
- package/vue/UiDisclosure.vue +65 -51
- package/vue/UiEditable.vue +34 -33
- package/vue/UiEditorBlockActions.vue +4 -3
- package/vue/UiEditorChipEditor.vue +4 -3
- package/vue/UiEditorCodeLanguage.vue +5 -4
- package/vue/UiEditorImageToolbar.vue +5 -4
- package/vue/UiEditorInsertTableGrid.vue +19 -18
- package/vue/UiEditorLinkCard.vue +7 -6
- package/vue/UiEditorLinkForm.vue +15 -14
- package/vue/UiEditorMentionMenu.vue +52 -37
- package/vue/UiEditorMentionMenuItem.vue +30 -20
- package/vue/UiEditorSlashMenu.vue +49 -36
- package/vue/UiEditorSlashMenuGroup.vue +16 -10
- package/vue/UiEditorSlashMenuItem.vue +36 -26
- package/vue/UiEditorSurface.vue +8 -6
- package/vue/UiEditorTableContextMenu.vue +26 -25
- package/vue/UiEditorTableOverlay.vue +56 -51
- package/vue/UiEditorTableToolbar.vue +37 -36
- package/vue/UiEditorToolbar.vue +24 -20
- package/vue/UiFloatingActionButton.vue +17 -15
- package/vue/UiFormField.vue +27 -22
- package/vue/UiGrid.vue +17 -15
- package/vue/UiIcon.vue +7 -6
- package/vue/UiIconButton.vue +75 -70
- package/vue/UiImage.vue +61 -46
- package/vue/UiInput.vue +28 -28
- package/vue/UiInputGroup.vue +48 -43
- package/vue/UiList.vue +25 -21
- package/vue/UiListItem.vue +54 -44
- package/vue/UiListbox.vue +29 -22
- package/vue/UiMenu.vue +25 -23
- package/vue/UiMenuGroup.vue +11 -7
- package/vue/UiMenuItem.vue +52 -43
- package/vue/UiMeter.vue +42 -41
- package/vue/UiNavItem.vue +60 -47
- package/vue/UiPageHeader.vue +27 -20
- package/vue/UiPopover.vue +21 -19
- package/vue/UiRadio.vue +32 -28
- package/vue/UiRadioGroup.vue +24 -19
- package/vue/UiReel.vue +24 -22
- package/vue/UiScrollArea.vue +30 -24
- package/vue/UiSearchResultRow.vue +41 -26
- package/vue/UiSearchShell.vue +37 -29
- package/vue/UiSection.vue +31 -24
- package/vue/UiSelect.vue +23 -21
- package/vue/UiSeparator.vue +14 -13
- package/vue/UiSidebar.vue +48 -40
- package/vue/UiSpinner.vue +14 -13
- package/vue/UiStack.vue +26 -24
- package/vue/UiStatusMessage.vue +26 -21
- package/vue/UiSwatch.vue +13 -12
- package/vue/UiSwitch.vue +37 -33
- package/vue/UiSwitcher.vue +27 -22
- package/vue/UiTable.vue +23 -19
- package/vue/UiTabs.vue +48 -33
- package/vue/UiText.vue +173 -151
- package/vue/UiTextarea.vue +27 -27
- package/vue/UiToast.vue +17 -15
- package/vue/UiToastRegion.vue +36 -31
- package/vue/UiTooltip.vue +40 -34
- package/vue/UiTopBar.vue +17 -13
- package/vue/UiTree.vue +17 -15
- package/vue/UiTreeItem.vue +202 -133
- package/vue/chunks/UiActionBar.js +21 -6
- package/vue/chunks/UiAffordanceScope.js +8 -6
- package/vue/chunks/UiAvatar.js +30 -20
- package/vue/chunks/UiAvatarGroup.js +16 -13
- package/vue/chunks/UiBadge.js +19 -13
- package/vue/chunks/UiBreadcrumbItem.js +13 -7
- package/vue/chunks/UiBreadcrumbs.js +9 -4
- package/vue/chunks/UiButton.js +158 -124
- package/vue/chunks/UiCallout.js +105 -37
- package/vue/chunks/UiCard.js +50 -42
- package/vue/chunks/UiCheckbox.js +32 -22
- package/vue/chunks/UiCluster.js +18 -16
- package/vue/chunks/UiCombobox.js +130 -73
- package/vue/chunks/UiContainer.js +10 -8
- package/vue/chunks/UiContextMenu.js +7 -4
- package/vue/chunks/UiCover.js +7 -5
- package/vue/chunks/UiDescriptionItem.js +9 -3
- package/vue/chunks/UiDescriptionList.js +10 -8
- package/vue/chunks/UiDialog.js +26 -19
- package/vue/chunks/UiDisclosure.js +43 -25
- package/vue/chunks/UiEditable.js +25 -24
- package/vue/chunks/UiEditorBlockActions.js +4 -3
- package/vue/chunks/UiEditorChipEditor.js +4 -3
- package/vue/chunks/UiEditorCodeLanguage.js +5 -4
- package/vue/chunks/UiEditorImageToolbar.js +7 -6
- package/vue/chunks/UiEditorInsertTableGrid.js +10 -9
- package/vue/chunks/UiEditorLinkCard.js +11 -10
- package/vue/chunks/UiEditorLinkForm.js +26 -25
- package/vue/chunks/UiEditorMentionMenu.js +41 -24
- package/vue/chunks/UiEditorMentionMenuItem.js +23 -11
- package/vue/chunks/UiEditorSlashMenu.js +41 -20
- package/vue/chunks/UiEditorSlashMenuGroup.js +16 -5
- package/vue/chunks/UiEditorSlashMenuItem.js +28 -14
- package/vue/chunks/UiEditorSurface.js +6 -4
- package/vue/chunks/UiEditorTableContextMenu.js +14 -13
- package/vue/chunks/UiEditorTableOverlay.js +6 -5
- package/vue/chunks/UiEditorTableToolbar.js +14 -13
- package/vue/chunks/UiEditorToolbar.js +8 -5
- package/vue/chunks/UiFloatingActionButton.js +11 -9
- package/vue/chunks/UiFormField.js +30 -16
- package/vue/chunks/UiGrid.js +10 -8
- package/vue/chunks/UiIcon.js +6 -3
- package/vue/chunks/UiIconButton.js +33 -26
- package/vue/chunks/UiImage.js +31 -22
- package/vue/chunks/UiInput.js +17 -16
- package/vue/chunks/UiInputGroup.js +30 -16
- package/vue/chunks/UiList.js +24 -20
- package/vue/chunks/UiListItem.js +39 -22
- package/vue/chunks/UiListbox.js +35 -25
- package/vue/chunks/UiMenu.js +22 -17
- package/vue/chunks/UiMenuGroup.js +7 -4
- package/vue/chunks/UiMenuItem.js +57 -38
- package/vue/chunks/UiMeter.js +22 -21
- package/vue/chunks/UiNavItem.js +78 -42
- package/vue/chunks/UiPageHeader.js +30 -10
- package/vue/chunks/UiPopover.js +16 -11
- package/vue/chunks/UiRadio.js +26 -16
- package/vue/chunks/UiRadioGroup.js +24 -19
- package/vue/chunks/UiReel.js +11 -9
- package/vue/chunks/UiScrollArea.js +16 -13
- package/vue/chunks/UiSearchResultRow.js +39 -19
- package/vue/chunks/UiSearchShell.js +36 -18
- package/vue/chunks/UiSection.js +31 -13
- package/vue/chunks/UiSelect.js +14 -12
- package/vue/chunks/UiSeparator.js +11 -10
- package/vue/chunks/UiSidebar.js +33 -23
- package/vue/chunks/UiSpinner.js +7 -6
- package/vue/chunks/UiStack.js +14 -12
- package/vue/chunks/UiStatusMessage.js +23 -11
- package/vue/chunks/UiSwatch.js +5 -4
- package/vue/chunks/UiSwitch.js +26 -16
- package/vue/chunks/UiSwitcher.js +13 -11
- package/vue/chunks/UiTable.js +9 -7
- package/vue/chunks/UiTabs.js +23 -18
- package/vue/chunks/UiText.js +277 -255
- package/vue/chunks/UiTextarea.js +21 -20
- package/vue/chunks/UiToast.js +13 -7
- package/vue/chunks/UiToastRegion.js +15 -8
- package/vue/chunks/UiTooltip.js +27 -19
- package/vue/chunks/UiTopBar.js +21 -6
- package/vue/chunks/UiTree.js +18 -16
- package/vue/chunks/UiTreeItem.js +82 -45
- package/vue/chunks/_plugin-vue_export-helper.js +17 -4
- package/vue/components.css +1507 -1479
- package/vue/editor/LoomaEditor.d.ts +10 -1
- package/vue/editor/index.d.ts +1 -1
- package/vue/editor/index.js +25 -11
- package/vue/host.ts +26 -6
|
@@ -3,7 +3,7 @@ import "./looma-editor.css";
|
|
|
3
3
|
import { type AnyExtension, type Editor, type JSONContent } from "@tiptap/core";
|
|
4
4
|
import { type PropType, type VNode } from "vue";
|
|
5
5
|
import { type LoomaSlashCommand, type LoomaMentionItem, type LoomaMentionProvider, type LoomaCodeLanguages } from "@threadlabs/looma/editor";
|
|
6
|
-
import { type LoomaImageActivationDetail, type LoomaImageAttributeResolver, type LoomaImageDescriptor, type LoomaImageRenditionErrorDetail } from "../../editor/image-delivery.js";
|
|
6
|
+
import { type LoomaImageActivationDetail, type LoomaImageAttributeResolver, type LoomaImageSourceResolver, type LoomaImageDescriptor, type LoomaImageRenditionErrorDetail } from "../../editor/image-delivery.js";
|
|
7
7
|
import { type LoomaLinkResolve, type LoomaLinkSearch } from "../../editor/link-editing.js";
|
|
8
8
|
/**
|
|
9
9
|
* Host upload result normalized into the editor's durable image descriptor.
|
|
@@ -162,6 +162,10 @@ export declare const LoomaEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
162
162
|
type: PropType<LoomaImageAttributeResolver | undefined>;
|
|
163
163
|
default: undefined;
|
|
164
164
|
};
|
|
165
|
+
resolveImageSource: {
|
|
166
|
+
type: PropType<LoomaImageSourceResolver | undefined>;
|
|
167
|
+
default: undefined;
|
|
168
|
+
};
|
|
165
169
|
toolbarMode: {
|
|
166
170
|
type: PropType<LoomaEditorToolbarMode>;
|
|
167
171
|
default: string;
|
|
@@ -300,6 +304,10 @@ export declare const LoomaEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
300
304
|
type: PropType<LoomaImageAttributeResolver | undefined>;
|
|
301
305
|
default: undefined;
|
|
302
306
|
};
|
|
307
|
+
resolveImageSource: {
|
|
308
|
+
type: PropType<LoomaImageSourceResolver | undefined>;
|
|
309
|
+
default: undefined;
|
|
310
|
+
};
|
|
303
311
|
toolbarMode: {
|
|
304
312
|
type: PropType<LoomaEditorToolbarMode>;
|
|
305
313
|
default: string;
|
|
@@ -369,6 +377,7 @@ export declare const LoomaEditor: import("vue").DefineComponent<import("vue").Ex
|
|
|
369
377
|
linkTargetLabel: string;
|
|
370
378
|
uploadImage: LoomaImageUploader | undefined;
|
|
371
379
|
resolveImageAttributes: LoomaImageAttributeResolver | undefined;
|
|
380
|
+
resolveImageSource: LoomaImageSourceResolver | undefined;
|
|
372
381
|
toolbarMode: LoomaEditorToolbarMode;
|
|
373
382
|
compactToolbar: boolean;
|
|
374
383
|
selectionActions: LoomaEditorSelectionAction[];
|
package/vue/editor/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from "@threadlabs/looma/editor";
|
|
2
2
|
export * from "./primitives.js";
|
|
3
3
|
export { LoomaEditor, type LoomaEditorToolbarMode, type LoomaEditorSelectionAction, type LoomaEditorSelectionActionDetail, type LoomaEditorRangeAction, type LoomaEditorRangeActionDetail, type LoomaEditorSlashCommands, type LoomaLinkTarget, type LoomaLinkSearch, type LoomaLinkResolve, type LoomaImageUploader, type LoomaImageUploadResult, } from "./LoomaEditor.js";
|
|
4
|
-
export type { LoomaImageActivationDetail, LoomaImageActivationTrigger, LoomaImageAttributeResolver, LoomaImageDescriptor, LoomaImageRenditionErrorDetail, LoomaImageRenditionAttributes, } from "../../editor/image-delivery.js";
|
|
4
|
+
export type { LoomaImageActivationDetail, LoomaImageActivationTrigger, LoomaImageAttributeResolver, LoomaImageSourceResolver, LoomaImageDescriptor, LoomaImageRenditionErrorDetail, LoomaImageRenditionAttributes, } from "../../editor/image-delivery.js";
|
package/vue/editor/index.js
CHANGED
|
@@ -705,20 +705,27 @@ function imageDescriptorFromAttrs(attrs) {
|
|
|
705
705
|
...attrs.responsive === true ? { responsive: true } : {}
|
|
706
706
|
};
|
|
707
707
|
}
|
|
708
|
-
function transientAttributes(resolver, image, editable) {
|
|
708
|
+
function transientAttributes(resolveSource, resolver, image, editable) {
|
|
709
|
+
let masterSource = image.src;
|
|
710
|
+
try {
|
|
711
|
+
masterSource = optionalString(resolveSource?.({ ...image })) ?? masterSource;
|
|
712
|
+
} catch {}
|
|
709
713
|
const attributes = {
|
|
710
714
|
...editable ? {} : {
|
|
711
715
|
"aria-label": image.alt ? `Open image: ${image.alt}` : "Open image",
|
|
712
716
|
role: "button"
|
|
713
717
|
},
|
|
714
718
|
"data-looma-image": "",
|
|
715
|
-
src:
|
|
719
|
+
src: masterSource,
|
|
716
720
|
tabindex: editable ? "-1" : "0"
|
|
717
721
|
};
|
|
718
722
|
if (!image.responsive || !resolver) return attributes;
|
|
719
723
|
let rendition;
|
|
720
724
|
try {
|
|
721
|
-
rendition = resolver(
|
|
725
|
+
rendition = resolver({
|
|
726
|
+
...image,
|
|
727
|
+
src: masterSource
|
|
728
|
+
});
|
|
722
729
|
} catch {
|
|
723
730
|
return attributes;
|
|
724
731
|
}
|
|
@@ -740,10 +747,10 @@ function transientAttributes(resolver, image, editable) {
|
|
|
740
747
|
"high",
|
|
741
748
|
"low"
|
|
742
749
|
].includes(rendition.fetchPriority ?? "")) attributes.fetchpriority = rendition.fetchPriority;
|
|
743
|
-
if (src && src !==
|
|
750
|
+
if (src && src !== masterSource || srcset) attributes["data-looma-rendition"] = "true";
|
|
744
751
|
return attributes;
|
|
745
752
|
}
|
|
746
|
-
function createDecorations(doc, resolver, failedRenditions, editable) {
|
|
753
|
+
function createDecorations(doc, resolveSource, resolver, failedRenditions, editable) {
|
|
747
754
|
const decorations = [];
|
|
748
755
|
const currentSources = /* @__PURE__ */ new Set();
|
|
749
756
|
doc.descendants((node, position) => {
|
|
@@ -751,7 +758,7 @@ function createDecorations(doc, resolver, failedRenditions, editable) {
|
|
|
751
758
|
const image = imageDescriptorFromAttrs(node.attrs);
|
|
752
759
|
if (!image) return;
|
|
753
760
|
currentSources.add(image.src);
|
|
754
|
-
decorations.push(Decoration.node(position, position + node.nodeSize, {}, { loomaImageAttributes: transientAttributes(failedRenditions.has(image.src) ? void 0 : resolver, image, editable) }));
|
|
761
|
+
decorations.push(Decoration.node(position, position + node.nodeSize, {}, { loomaImageAttributes: transientAttributes(resolveSource, failedRenditions.has(image.src) ? void 0 : resolver, image, editable) }));
|
|
755
762
|
});
|
|
756
763
|
for (const src of failedRenditions) if (!currentSources.has(src)) failedRenditions.delete(src);
|
|
757
764
|
return DecorationSet.create(doc, decorations);
|
|
@@ -789,10 +796,10 @@ function createLoomaImageDeliveryController(options) {
|
|
|
789
796
|
return [new Plugin({
|
|
790
797
|
key: pluginKey,
|
|
791
798
|
state: {
|
|
792
|
-
init: (_, state) => createDecorations(state.doc, options.resolveAttributes(), failedRenditions, options.isEditable()),
|
|
799
|
+
init: (_, state) => createDecorations(state.doc, options.resolveSource?.(), options.resolveAttributes(), failedRenditions, options.isEditable()),
|
|
793
800
|
apply: (transaction, previous) => {
|
|
794
801
|
if (!transaction.getMeta(pluginKey) && !transactionChangesImages(transaction)) return previous.map(transaction.mapping, transaction.doc);
|
|
795
|
-
return createDecorations(transaction.doc, options.resolveAttributes(), failedRenditions, options.isEditable());
|
|
802
|
+
return createDecorations(transaction.doc, options.resolveSource?.(), options.resolveAttributes(), failedRenditions, options.isEditable());
|
|
796
803
|
}
|
|
797
804
|
},
|
|
798
805
|
props: { decorations: (state) => pluginKey.getState(state) }
|
|
@@ -2643,7 +2650,7 @@ var imageNodeView = ({ editor, node, getPos, decorations }) => {
|
|
|
2643
2650
|
const attrs = current.value.attrs;
|
|
2644
2651
|
const transient = Object.assign({}, ...delivery.value.map((decoration) => decoration.spec.loomaImageAttributes ?? {}));
|
|
2645
2652
|
return h(Image, {
|
|
2646
|
-
src: attrs.src,
|
|
2653
|
+
src: transient.src ?? attrs.src,
|
|
2647
2654
|
alt: attrs.alt ?? "",
|
|
2648
2655
|
width: attrs.width,
|
|
2649
2656
|
height: attrs.height,
|
|
@@ -2857,6 +2864,10 @@ var LoomaEditor = defineComponent({
|
|
|
2857
2864
|
type: Function,
|
|
2858
2865
|
default: void 0
|
|
2859
2866
|
},
|
|
2867
|
+
resolveImageSource: {
|
|
2868
|
+
type: Function,
|
|
2869
|
+
default: void 0
|
|
2870
|
+
},
|
|
2860
2871
|
toolbarMode: {
|
|
2861
2872
|
type: String,
|
|
2862
2873
|
default: "bubble"
|
|
@@ -3094,6 +3105,7 @@ var LoomaEditor = defineComponent({
|
|
|
3094
3105
|
}
|
|
3095
3106
|
});
|
|
3096
3107
|
const imageDelivery = createLoomaImageDeliveryController({
|
|
3108
|
+
resolveSource: () => props.resolveImageSource,
|
|
3097
3109
|
resolveAttributes: () => props.resolveImageAttributes,
|
|
3098
3110
|
isEditable: () => props.editable
|
|
3099
3111
|
});
|
|
@@ -3142,6 +3154,7 @@ var LoomaEditor = defineComponent({
|
|
|
3142
3154
|
content: props.modelValue,
|
|
3143
3155
|
editable: props.editable,
|
|
3144
3156
|
editorProps: {
|
|
3157
|
+
nodeViews: { image: () => ({ dom: document.createElement("span") }) },
|
|
3145
3158
|
attributes: {
|
|
3146
3159
|
role: "textbox",
|
|
3147
3160
|
"aria-multiline": "true",
|
|
@@ -3193,6 +3206,7 @@ var LoomaEditor = defineComponent({
|
|
|
3193
3206
|
emit("update", value);
|
|
3194
3207
|
}
|
|
3195
3208
|
}, Editor$1);
|
|
3209
|
+
delete session.editor.options.editorProps.nodeViews;
|
|
3196
3210
|
session.subscribe(() => {
|
|
3197
3211
|
editorStateVersion.value += 1;
|
|
3198
3212
|
});
|
|
@@ -3318,7 +3332,7 @@ var LoomaEditor = defineComponent({
|
|
|
3318
3332
|
watch(() => props.editable, (editable) => {
|
|
3319
3333
|
formatting?.press.cancel();
|
|
3320
3334
|
formatting?.release();
|
|
3321
|
-
editor.value?.setEditable(editable);
|
|
3335
|
+
editor.value?.setEditable(editable, false);
|
|
3322
3336
|
if (!editable) formattingPopup?.hide();
|
|
3323
3337
|
if (editor.value) imageDelivery.reset(editor.value);
|
|
3324
3338
|
root.value?.querySelectorAll("[data-looma-chip]").forEach((chip) => {
|
|
@@ -3346,7 +3360,7 @@ var LoomaEditor = defineComponent({
|
|
|
3346
3360
|
"aria-label": label
|
|
3347
3361
|
} } });
|
|
3348
3362
|
});
|
|
3349
|
-
watch(() => props.resolveImageAttributes, () => {
|
|
3363
|
+
watch([() => props.resolveImageAttributes, () => props.resolveImageSource], () => {
|
|
3350
3364
|
const instance = editor.value;
|
|
3351
3365
|
if (instance) imageDelivery.reset(instance);
|
|
3352
3366
|
});
|
package/vue/host.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
// Generated by HTML Next 1.0.0-alpha.52 for Vue 3.5. Do not edit.
|
|
2
2
|
import {
|
|
3
3
|
computed,
|
|
4
4
|
createTextVNode,
|
|
@@ -349,6 +349,20 @@ export interface Readable<T> {
|
|
|
349
349
|
readonly value: T
|
|
350
350
|
}
|
|
351
351
|
|
|
352
|
+
/** Vue refs a component invocation as its public instance; the ref is the root element it lowered to. */
|
|
353
|
+
function refElement(ref: any): Element {
|
|
354
|
+
return ref == null || ref.nodeType === 1 ? ref : ref.$el
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/** The root ref as an element: a delegating component's root ref holds the invoked component. */
|
|
358
|
+
function rootElement<T extends Element>(root: Readable<T | null>): Readable<T | null> {
|
|
359
|
+
return {
|
|
360
|
+
get value() {
|
|
361
|
+
return refElement(root.value) as T | null
|
|
362
|
+
},
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
352
366
|
type DocumentMutationSubscriber = (mutations: readonly MutationRecord[]) => void
|
|
353
367
|
interface DocumentMutationHub {
|
|
354
368
|
readonly observer: MutationObserver
|
|
@@ -391,10 +405,11 @@ function observeConnection(element: Element, check: () => void): () => void {
|
|
|
391
405
|
* reinserted outside Vue.
|
|
392
406
|
*/
|
|
393
407
|
export function useLifecycle(
|
|
394
|
-
|
|
408
|
+
componentRoot: Readable<Element | null>,
|
|
395
409
|
connect?: () => void,
|
|
396
410
|
disconnect?: () => void,
|
|
397
411
|
): void {
|
|
412
|
+
const root = rootElement(componentRoot)
|
|
398
413
|
let connected = false
|
|
399
414
|
let stop: (() => void) | undefined
|
|
400
415
|
const synchronize = (): void => {
|
|
@@ -416,7 +431,8 @@ export function useLifecycle(
|
|
|
416
431
|
}
|
|
417
432
|
|
|
418
433
|
/** Keep native focus on the corresponding control when a root-level $match replaces its element. */
|
|
419
|
-
export function preserveRootFocus(
|
|
434
|
+
export function preserveRootFocus(componentRoot: Readable<Element | null>): void {
|
|
435
|
+
const root = rootElement(componentRoot)
|
|
420
436
|
const focusable =
|
|
421
437
|
'a[href], button, input, select, textarea, summary, [tabindex], [contenteditable]'
|
|
422
438
|
let previous: Element | null = null
|
|
@@ -496,8 +512,8 @@ export function useComponentHost(
|
|
|
496
512
|
controllerLoader: () => Promise<unknown>,
|
|
497
513
|
options: ComponentHostOptions,
|
|
498
514
|
) {
|
|
515
|
+
const root = rootElement(options.root)
|
|
499
516
|
const {
|
|
500
|
-
root,
|
|
501
517
|
dispatch,
|
|
502
518
|
props,
|
|
503
519
|
propInputs = () => null,
|
|
@@ -634,7 +650,10 @@ export function useComponentHost(
|
|
|
634
650
|
Object.fromEntries(
|
|
635
651
|
Object.entries(refs).map(([name, ref]) => [name, {
|
|
636
652
|
enumerable: true,
|
|
637
|
-
get: () =>
|
|
653
|
+
get: () =>
|
|
654
|
+
Array.isArray(ref.value)
|
|
655
|
+
? inDocumentOrder(ref.value.map(refElement))
|
|
656
|
+
: refElement(ref.value),
|
|
638
657
|
}]),
|
|
639
658
|
),
|
|
640
659
|
) as Readonly<Record<string, Element | readonly Element[]>>,
|
|
@@ -819,10 +838,11 @@ export function runFilteredEvent(
|
|
|
819
838
|
|
|
820
839
|
/** Reports declared CustomEvents to Vue and dispatches them through the DOM. */
|
|
821
840
|
export function createDispatch(
|
|
822
|
-
|
|
841
|
+
componentRoot: Readable<HTMLElement | null>,
|
|
823
842
|
emit?: (name: string, detail: unknown) => void,
|
|
824
843
|
options: DispatchOptions = {},
|
|
825
844
|
): (name: string, detail?: unknown, targets?: unknown) => boolean {
|
|
845
|
+
const root = rootElement(componentRoot)
|
|
826
846
|
const { declared = {}, checks = {}, modeled = [] } = options
|
|
827
847
|
// One change can be reported by more than one event — a choice is both a select and a change —
|
|
828
848
|
// and each carries the new value. The prop updates once per change: a value already reported in
|