@threadlabs/looma 0.28.7 → 0.28.9

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.
@@ -1,6 +1,6 @@
1
1
  import { computed, createApp, defineComponent, h, nextTick, onBeforeUnmount, onMounted, reactive, ref, shallowRef, useId, watch } from "vue";
2
2
  import { DEFAULT_MENTION_RESULT_LIMIT, LOOMA_CHIP_COLORS, LOOMA_ICONS, createLoomaMentionExtension, createLoomaSlashCommandExtension, getActiveTableUiState, getDefaultEditorExtensions, getDefaultSlashCommands, getTableOfContentsEntries, getVisualViewportRect, handleTableAction, handleTableOverlayAction, measureTableOverlayGeometry, normalizeActiveTableColumnWidths, normalizeLoomaChipColor, normalizeTableOfContentsConfig, resolveTableCellAt, siteRelativeHref } from "@threadlabs/looma/editor";
3
- import { Button, Callout, Card, Checkbox, Cluster, Combobox, Disclosure, EditorBlockActions, EditorImageToolbar, EditorInsertTableGrid, EditorLinkCard, EditorMentionMenu, EditorMentionMenuItem, EditorSlashMenu, EditorSlashMenuGroup, EditorSlashMenuItem, EditorSurface, EditorTableContextMenu, EditorTableOverlay, EditorTableToolbar, EditorToolbar, FormField, Icon, IconButton, Image, Input, InputGroup, List, Menu, MenuItem, Popover, ScrollArea, SearchResultRow, Separator, Stack, Text, Tooltip } from "@threadlabs/looma/vue";
3
+ import { Button, Callout, Card, Checkbox, Cluster, Disclosure, EditorBlockActions, EditorCodeLanguage, EditorImageToolbar, EditorInsertTableGrid, EditorLinkCard, EditorLinkForm, EditorMentionMenu, EditorMentionMenuItem, EditorSlashMenu, EditorSlashMenuGroup, EditorSlashMenuItem, EditorSurface, EditorTableContextMenu, EditorTableOverlay, EditorTableToolbar, EditorToolbar, FormField, Icon, IconButton, Image, Input, List, Menu, MenuItem, Popover, Separator, Stack, Text, Tooltip } from "@threadlabs/looma/vue";
4
4
  import { Editor, Extension, Node as Node$1, getText, getTextSerializersFromSchema, isNodeSelection, mergeAttributes, nodeInputRule, posToDOMRect } from "@tiptap/core";
5
5
  import { Editor as Editor$1 } from "@tiptap/vue-3";
6
6
  import { closeHistory } from "@tiptap/pm/history";
@@ -24,7 +24,9 @@ var EDITOR_ADAPTER_COMPONENT_TAG_MAP = {
24
24
  EditorTableOverlay: "ui-editor-table-overlay",
25
25
  EditorImageToolbar: "ui-editor-image-toolbar",
26
26
  EditorLinkCard: "ui-editor-link-card",
27
- EditorBlockActions: "ui-editor-block-actions"
27
+ EditorLinkForm: "ui-editor-link-form",
28
+ EditorBlockActions: "ui-editor-block-actions",
29
+ EditorCodeLanguage: "ui-editor-code-language"
28
30
  };
29
31
  //#endregion
30
32
  //#region src/components/shared/overlay.js
@@ -2487,6 +2489,10 @@ var LoomaEditor = defineComponent({
2487
2489
  const linkPopoverAnchorId = ref(linkAnchorId);
2488
2490
  const linkDestinationInput = () => linkFormRoot.value?.querySelector("[data-link-destination]");
2489
2491
  const linkFormRoot = ref(null);
2492
+ const setLinkFormRoot = (instance) => {
2493
+ const element = instance?.$el;
2494
+ linkFormRoot.value = element instanceof HTMLElement ? element : null;
2495
+ };
2490
2496
  const linkOpen = ref(false);
2491
2497
  const linkContextEditing = ref(false);
2492
2498
  const linkHref = ref("");
@@ -2840,17 +2846,6 @@ var LoomaEditor = defineComponent({
2840
2846
  if (linkTextEditable.value && !linkText.value.trim()) linkText.value = target.label;
2841
2847
  applyLink();
2842
2848
  };
2843
- const moveLinkResultFocus = (event, offset) => {
2844
- const buttons = [...linkFormRoot.value?.querySelectorAll("[data-link-result]") ?? []];
2845
- const next = buttons[buttons.indexOf(event.target) + offset];
2846
- if (next) {
2847
- event.preventDefault();
2848
- next.focus();
2849
- } else if (offset < 0) {
2850
- event.preventDefault();
2851
- linkFormRoot.value?.querySelector("[data-link-search]")?.focus();
2852
- }
2853
- };
2854
2849
  const openLinkEditor = (context = false) => {
2855
2850
  const instance = editor.value;
2856
2851
  if (!instance || !props.editable) return;
@@ -2963,154 +2958,73 @@ var LoomaEditor = defineComponent({
2963
2958
  linkPopup?.hide();
2964
2959
  formattingPopup?.hide();
2965
2960
  };
2966
- const renderLinkDestination = (mode) => [h(FormField, { invalid: Boolean(linkError.value) }, {
2967
- label: () => h("label", props.linkSearch ? "Link destination" : "URL"),
2968
- default: () => {
2969
- const input = h(Input, {
2970
- "data-link-destination": "",
2971
- ...props.linkSearch ? {
2972
- "data-link-search": "",
2973
- type: "text",
2974
- role: "searchbox",
2975
- autocomplete: "off",
2976
- placeholder: `Search ${props.linkTargetLabel.toLowerCase()}s or paste a URL…`
2977
- } : {
2978
- type: "text",
2979
- inputmode: "url",
2980
- placeholder: "https://example.com"
2981
- },
2982
- size: props.linkSearch ? "md" : "sm",
2983
- value: props.linkSearch ? linkQuery.value : linkHref.value,
2984
- onInput: (event) => {
2985
- const value = event.target.value;
2986
- if (props.linkSearch) {
2987
- linkQuery.value = value;
2988
- linkMode.value = /^(https?:\/\/|mailto:|tel:)/i.test(value.trim()) || linkSelection?.existing && /^(\/|\.\.?\/|#|\?)/.test(value.trim()) ? "url" : "target";
2989
- linkSelectedTarget.value = null;
2990
- }
2991
- linkHref.value = value;
2992
- linkError.value = "";
2993
- applyLink();
2994
- },
2995
- onKeydown: (event) => {
2996
- if (mode === "target" && event.key === "ArrowDown") moveLinkResultFocus(event, 1);
2961
+ const linkStatus = () => {
2962
+ if (linkSearching.value) return "Searching…";
2963
+ if (linkSelectedTarget.value) return "";
2964
+ if (linkQuery.value.trim().length < 2) return "Type at least two letters to search.";
2965
+ return linkResults.value.length || linkError.value ? "" : "No results found.";
2966
+ };
2967
+ const renderLinkForm = () => {
2968
+ const shown = linkSelectedTarget.value ? [linkSelectedTarget.value] : linkResults.value;
2969
+ return h(EditorLinkForm, {
2970
+ ref: setLinkFormRoot,
2971
+ class: "looma-editor__link-form",
2972
+ existing: Boolean(linkSelection?.existing),
2973
+ searchable: Boolean(props.linkSearch),
2974
+ mode: linkMode.value,
2975
+ value: props.linkSearch ? linkQuery.value : linkHref.value,
2976
+ placeholder: props.linkSearch ? `Search ${props.linkTargetLabel.toLowerCase()}s or paste a URL…` : "https://example.com",
2977
+ newTab: linkNewTab.value,
2978
+ textEditable: linkTextEditable.value,
2979
+ text: linkText.value,
2980
+ error: linkError.value,
2981
+ status: linkStatus(),
2982
+ results: shown.map(({ id, label, detail }) => detail ? {
2983
+ id,
2984
+ label,
2985
+ detail
2986
+ } : {
2987
+ id,
2988
+ label
2989
+ }),
2990
+ selected: linkSelectedTarget.value?.id ?? "",
2991
+ onDestination: (event) => {
2992
+ const { value } = event.detail;
2993
+ if (props.linkSearch) {
2994
+ linkQuery.value = value;
2995
+ linkMode.value = /^(https?:\/\/|mailto:|tel:)/i.test(value.trim()) || linkSelection?.existing && /^(\/|\.\.?\/|#|\?)/.test(value.trim()) ? "url" : "target";
2996
+ linkSelectedTarget.value = null;
2997
2997
  }
2998
- });
2999
- return props.linkSearch ? h(InputGroup, { prefixKind: "icon" }, {
3000
- prefix: () => loomaIcon(mode === "target" ? "search" : "link"),
3001
- default: () => input,
3002
- action: () => linkQuery.value ? h(IconButton, {
3003
- label: "Clear search",
3004
- variant: "ghost",
3005
- size: "sm",
3006
- onClick: () => {
3007
- linkQuery.value = "";
3008
- linkHref.value = "";
3009
- linkMode.value = "target";
3010
- linkSelectedTarget.value = null;
3011
- linkError.value = "";
3012
- nextTick(() => linkFormRoot.value?.querySelector("[data-link-search]")?.focus());
3013
- }
3014
- }, () => loomaIcon("x")) : null
3015
- }) : input;
3016
- }
3017
- }), mode === "target" ? h(ScrollArea, {
3018
- size: "sm",
3019
- "aria-label": "Destination search results"
3020
- }, () => [
3021
- linkSearching.value ? h(Text, {
3022
- size: "sm",
3023
- tone: "secondary",
3024
- role: "status"
3025
- }, () => "Searching…") : null,
3026
- !linkSearching.value && !linkSelectedTarget.value && linkQuery.value.trim().length < 2 ? h(Text, {
3027
- size: "sm",
3028
- tone: "secondary"
3029
- }, () => "Type at least two letters to search.") : null,
3030
- !linkSearching.value && !linkSelectedTarget.value && linkQuery.value.trim().length >= 2 && !linkResults.value.length && !linkError.value ? h(Text, {
3031
- size: "sm",
3032
- tone: "secondary"
3033
- }, () => "No results found.") : null,
3034
- ...(linkSelectedTarget.value ? [linkSelectedTarget.value] : linkResults.value).map((target) => h(SearchResultRow, {
3035
- key: target.id,
3036
- density: "compact",
3037
- selected: target.id === linkSelectedTarget.value?.id,
3038
- "data-link-result": "",
3039
- onClick: () => selectLinkTarget(target),
3040
- onKeydown: (event) => {
3041
- if (event.key === "ArrowDown") moveLinkResultFocus(event, 1);
3042
- if (event.key === "ArrowUp") moveLinkResultFocus(event, -1);
3043
- }
3044
- }, {
3045
- leading: () => loomaIcon("file-text"),
3046
- title: () => h(Text, {
3047
- as: "strong",
3048
- size: "sm",
3049
- weight: "medium",
3050
- truncate: true,
3051
- title: target.label
3052
- }, () => target.label),
3053
- meta: () => target.detail ? h(Text, {
3054
- as: "span",
3055
- size: "xs",
3056
- tone: "secondary",
3057
- truncate: true,
3058
- title: target.detail
3059
- }, () => target.detail) : null,
3060
- trailing: () => target.id === linkSelectedTarget.value?.id ? loomaIcon("check") : null
3061
- }))
3062
- ]) : h(Checkbox, {
3063
- size: "sm",
3064
- checked: linkNewTab.value,
3065
- onChange: (event) => {
3066
- linkNewTab.value = event.detail.checked;
3067
- applyLink();
3068
- }
3069
- }, () => "Open in new tab")];
3070
- const renderLinkForm = () => h("form", {
3071
- ref: linkFormRoot,
3072
- class: "looma-editor__link-form",
3073
- "aria-label": "Edit link",
3074
- onSubmit: (event) => {
3075
- event.preventDefault();
3076
- if (applyLink(true)) dismissLink();
3077
- },
3078
- onKeydown: (event) => {
3079
- if (event.key === "Escape") {
3080
- event.preventDefault();
3081
- event.stopPropagation();
3082
- dismissLink();
3083
- } else if (event.key === "Enter" && event.target instanceof HTMLInputElement) {
3084
- event.preventDefault();
3085
- event.stopPropagation();
2998
+ linkHref.value = value;
2999
+ linkError.value = "";
3000
+ applyLink();
3001
+ },
3002
+ onClear: () => {
3003
+ linkQuery.value = "";
3004
+ linkHref.value = "";
3005
+ linkMode.value = "target";
3006
+ linkSelectedTarget.value = null;
3007
+ linkError.value = "";
3008
+ },
3009
+ onChoose: (event) => {
3010
+ const target = shown.find(({ id }) => id === event.detail.id);
3011
+ if (target) selectLinkTarget(target);
3012
+ },
3013
+ onNewTab: (event) => {
3014
+ linkNewTab.value = event.detail.newTab;
3015
+ applyLink();
3016
+ },
3017
+ onText: (event) => {
3018
+ linkText.value = event.detail.text;
3019
+ linkError.value = "";
3020
+ applyLink();
3021
+ },
3022
+ onSave: () => {
3086
3023
  if (applyLink(true)) dismissLink();
3087
- }
3088
- }
3089
- }, [h(Stack, { gap: "s" }, () => [
3090
- h(Text, {
3091
- as: "h3",
3092
- size: "sm",
3093
- weight: "semibold"
3094
- }, () => linkSelection?.existing ? "Edit link" : "Add link"),
3095
- h(Stack, { gap: "s" }, () => renderLinkDestination(linkMode.value)),
3096
- linkTextEditable.value ? h(FormField, {}, {
3097
- label: () => h("label", "Text"),
3098
- default: () => h(Input, {
3099
- size: "sm",
3100
- value: linkText.value,
3101
- onInput: (event) => {
3102
- linkText.value = event.target.value;
3103
- linkError.value = "";
3104
- applyLink();
3105
- }
3106
- })
3107
- }) : null,
3108
- linkError.value ? h(Text, {
3109
- size: "sm",
3110
- tone: "danger",
3111
- role: "alert"
3112
- }, () => linkError.value) : null
3113
- ])]);
3024
+ },
3025
+ onDismiss: () => dismissLink()
3026
+ });
3027
+ };
3114
3028
  const renderLinkContextCard = (instance) => {
3115
3029
  if (linkContextEditing.value) return h(Card, {
3116
3030
  variant: "elevated",
@@ -3281,10 +3195,10 @@ var LoomaEditor = defineComponent({
3281
3195
  }))
3282
3196
  ];
3283
3197
  });
3284
- const chooseCodeLanguage = (detail) => {
3198
+ const chooseCodeLanguage = (value) => {
3285
3199
  const instance = editor.value;
3286
- if (!instance || detail.kind !== "selection" || !detail.value) return;
3287
- const language = detail.value === "auto" ? null : detail.value;
3200
+ if (!instance) return;
3201
+ const language = value === "auto" ? null : value;
3288
3202
  if (language !== null && !codeLanguageNames.includes(language)) return;
3289
3203
  const node = instance.state.doc.nodeAt(codeUi.pos);
3290
3204
  if (node?.type.name !== "codeBlock") return;
@@ -4136,15 +4050,11 @@ var LoomaEditor = defineComponent({
4136
4050
  class: "looma-editor__code-language",
4137
4051
  style: codeUi.style,
4138
4052
  onFocusout: () => updateCodeUi()
4139
- }, [h(Combobox, {
4140
- label: "Code language",
4141
- labelVisibility: "sr-only",
4142
- size: "sm",
4143
- disclosure: true,
4144
- filter: "label",
4053
+ }, [h(EditorCodeLanguage, {
4145
4054
  value: codeUi.language,
4146
- onValueChange: (event) => chooseCodeLanguage(event.detail)
4147
- }, () => codeLanguageOptions.value.map((option) => h("option", { value: option.value }, option.label)))]) : null,
4055
+ languages: codeLanguageOptions.value,
4056
+ onLanguage: (event) => chooseCodeLanguage(event.detail.value)
4057
+ })]) : null,
4148
4058
  instance && (props.editable || props.selectionActions.length && !instance.state.selection.empty || activeRangeActions(instance).length > 0) && mobile.value && (editorFocused.value || linkOpen.value || !props.editable) ? h("div", {
4149
4059
  key: "looma-mobile-toolbar-shell",
4150
4060
  ref: mobileToolbarRef,
@@ -4397,4 +4307,4 @@ var LoomaEditor = defineComponent({
4397
4307
  }
4398
4308
  });
4399
4309
  //#endregion
4400
- export { EDITOR_ADAPTER_COMPONENT_TAG_MAP, EditorBlockActions, EditorImageToolbar, EditorInsertTableGrid, EditorLinkCard, EditorMentionMenu, EditorMentionMenuItem, EditorSlashMenu, EditorSlashMenuGroup, EditorSlashMenuItem, EditorTableContextMenu, EditorTableOverlay, EditorTableToolbar, EditorToolbar, LoomaEditor };
4310
+ export { EDITOR_ADAPTER_COMPONENT_TAG_MAP, EditorBlockActions, EditorCodeLanguage, EditorImageToolbar, EditorInsertTableGrid, EditorLinkCard, EditorLinkForm, EditorMentionMenu, EditorMentionMenuItem, EditorSlashMenu, EditorSlashMenuGroup, EditorSlashMenuItem, EditorTableContextMenu, EditorTableOverlay, EditorTableToolbar, EditorToolbar, LoomaEditor };
@@ -3,7 +3,7 @@
3
3
  * `@threadlabs/looma/vue`, re-exported beside the editor that composes them.
4
4
  */
5
5
  import type { InsertTableEventDetail, MentionMenuHighlightEventDetail, MentionMenuSelectEventDetail, SlashMenuHighlightEventDetail, SlashMenuSelectEventDetail, TableContextMenuActionEventDetail } from "@threadlabs/looma/editor";
6
- export { EditorBlockActions, EditorImageToolbar, EditorInsertTableGrid, EditorLinkCard, EditorMentionMenu, EditorMentionMenuItem, EditorSlashMenu, EditorSlashMenuGroup, EditorSlashMenuItem, EditorTableContextMenu, EditorTableOverlay, EditorTableToolbar, EditorToolbar, } from "@threadlabs/looma/vue";
6
+ export { EditorBlockActions, EditorCodeLanguage, EditorImageToolbar, EditorInsertTableGrid, EditorLinkCard, EditorLinkForm, EditorMentionMenu, EditorMentionMenuItem, EditorSlashMenu, EditorSlashMenuGroup, EditorSlashMenuItem, EditorTableContextMenu, EditorTableOverlay, EditorTableToolbar, EditorToolbar, } from "@threadlabs/looma/vue";
7
7
  /** The editor components' event details, by event name. */
8
8
  export interface VueEditorAdapterEventMap {
9
9
  highlight: MentionMenuHighlightEventDetail | SlashMenuHighlightEventDetail;
@@ -21,6 +21,24 @@ export interface VueEditorAdapterEventMap {
21
21
  delete: Record<string, never>;
22
22
  edit: Record<string, never>;
23
23
  remove: Record<string, never>;
24
+ destination: {
25
+ value: string;
26
+ };
27
+ text: {
28
+ text: string;
29
+ };
30
+ "new-tab": {
31
+ newTab: boolean;
32
+ };
33
+ choose: {
34
+ id: string;
35
+ };
36
+ clear: Record<string, never>;
37
+ save: Record<string, never>;
38
+ dismiss: Record<string, never>;
39
+ language: {
40
+ value: string;
41
+ };
24
42
  "add-row-before": {
25
43
  boundaryIndex: number;
26
44
  };
@@ -86,5 +104,7 @@ export declare const EDITOR_ADAPTER_COMPONENT_TAG_MAP: {
86
104
  readonly EditorTableOverlay: "ui-editor-table-overlay";
87
105
  readonly EditorImageToolbar: "ui-editor-image-toolbar";
88
106
  readonly EditorLinkCard: "ui-editor-link-card";
107
+ readonly EditorLinkForm: "ui-editor-link-form";
89
108
  readonly EditorBlockActions: "ui-editor-block-actions";
109
+ readonly EditorCodeLanguage: "ui-editor-code-language";
90
110
  };
package/vue/index.d.ts CHANGED
@@ -20,9 +20,11 @@ export { default as Dialog } from "./UiDialog.js";
20
20
  export { default as Disclosure } from "./UiDisclosure.js";
21
21
  export { default as Editable } from "./UiEditable.js";
22
22
  export { default as EditorBlockActions } from "./UiEditorBlockActions.js";
23
+ export { default as EditorCodeLanguage } from "./UiEditorCodeLanguage.js";
23
24
  export { default as EditorImageToolbar } from "./UiEditorImageToolbar.js";
24
25
  export { default as EditorInsertTableGrid } from "./UiEditorInsertTableGrid.js";
25
26
  export { default as EditorLinkCard } from "./UiEditorLinkCard.js";
27
+ export { default as EditorLinkForm } from "./UiEditorLinkForm.js";
26
28
  export { default as EditorMentionMenu } from "./UiEditorMentionMenu.js";
27
29
  export { default as EditorMentionMenuItem } from "./UiEditorMentionMenuItem.js";
28
30
  export { default as EditorSlashMenu } from "./UiEditorSlashMenu.js";
package/vue/index.js CHANGED
@@ -26,6 +26,7 @@ import { t as UiEditable_default } from "./chunks/UiEditable.js";
26
26
  import { t as UiMenu_default } from "./chunks/UiMenu.js";
27
27
  import { t as UiMenuItem_default } from "./chunks/UiMenuItem.js";
28
28
  import { t as UiEditorBlockActions_default } from "./chunks/UiEditorBlockActions.js";
29
+ import { t as UiEditorCodeLanguage_default } from "./chunks/UiEditorCodeLanguage.js";
29
30
  import { t as UiEditorToolbar_default } from "./chunks/UiEditorToolbar.js";
30
31
  import { t as UiFormField_default } from "./chunks/UiFormField.js";
31
32
  import { t as UiIconButton_default } from "./chunks/UiIconButton.js";
@@ -36,6 +37,9 @@ import { t as UiText_default } from "./chunks/UiText.js";
36
37
  import { t as UiEditorImageToolbar_default } from "./chunks/UiEditorImageToolbar.js";
37
38
  import { t as UiEditorInsertTableGrid_default } from "./chunks/UiEditorInsertTableGrid.js";
38
39
  import { t as UiEditorLinkCard_default } from "./chunks/UiEditorLinkCard.js";
40
+ import { t as UiInputGroup_default } from "./chunks/UiInputGroup.js";
41
+ import { t as UiSearchResultRow_default } from "./chunks/UiSearchResultRow.js";
42
+ import { t as UiEditorLinkForm_default } from "./chunks/UiEditorLinkForm.js";
39
43
  import { t as UiEditorMentionMenu_default } from "./chunks/UiEditorMentionMenu.js";
40
44
  import { t as UiEditorMentionMenuItem_default } from "./chunks/UiEditorMentionMenuItem.js";
41
45
  import { t as UiEditorSlashMenu_default } from "./chunks/UiEditorSlashMenu.js";
@@ -48,7 +52,6 @@ import { t as UiEditorTableToolbar_default } from "./chunks/UiEditorTableToolbar
48
52
  import { t as UiFloatingActionButton_default } from "./chunks/UiFloatingActionButton.js";
49
53
  import { t as UiGrid_default } from "./chunks/UiGrid.js";
50
54
  import { t as UiImage_default } from "./chunks/UiImage.js";
51
- import { t as UiInputGroup_default } from "./chunks/UiInputGroup.js";
52
55
  import { t as UiList_default } from "./chunks/UiList.js";
53
56
  import { t as UiListItem_default } from "./chunks/UiListItem.js";
54
57
  import { t as UiListbox_default } from "./chunks/UiListbox.js";
@@ -59,7 +62,6 @@ import { t as UiPageHeader_default } from "./chunks/UiPageHeader.js";
59
62
  import { t as UiRadio_default } from "./chunks/UiRadio.js";
60
63
  import { t as UiRadioGroup_default } from "./chunks/UiRadioGroup.js";
61
64
  import { t as UiReel_default } from "./chunks/UiReel.js";
62
- import { t as UiSearchResultRow_default } from "./chunks/UiSearchResultRow.js";
63
65
  import { t as UiSearchShell_default } from "./chunks/UiSearchShell.js";
64
66
  import { t as UiSection_default } from "./chunks/UiSection.js";
65
67
  import { t as UiSelect_default } from "./chunks/UiSelect.js";
@@ -77,4 +79,4 @@ import { t as UiTopBar_default } from "./chunks/UiTopBar.js";
77
79
  import { t as UiTree_default } from "./chunks/UiTree.js";
78
80
  import { t as UiTreeItem_default } from "./chunks/UiTreeItem.js";
79
81
  import { trackInputModality } from "@threadlabs/looma/components/shared/input-modality.js";
80
- 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, UiEditorImageToolbar_default as EditorImageToolbar, UiEditorInsertTableGrid_default as EditorInsertTableGrid, UiEditorLinkCard_default as EditorLinkCard, 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, 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 };
82
+ 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, UiEditorCodeLanguage_default as EditorCodeLanguage, 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, 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 };