@threadlabs/looma 0.30.9 → 0.31.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.
Files changed (270) hide show
  1. package/components/shared/icons.js +1 -0
  2. package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
  3. package/components/ui-affordance-scope/ui-affordance-scope.js +1 -6
  4. package/components/ui-avatar/ui-avatar.html +1 -1
  5. package/components/ui-avatar/ui-avatar.js +1 -6
  6. package/components/ui-avatar-group/ui-avatar-group.html +1 -1
  7. package/components/ui-avatar-group/ui-avatar-group.js +1 -6
  8. package/components/ui-button/ui-button.html +1 -1
  9. package/components/ui-button/ui-button.js +1 -6
  10. package/components/ui-checkbox/ui-checkbox.html +1 -1
  11. package/components/ui-checkbox/ui-checkbox.js +1 -6
  12. package/components/ui-combobox/ui-combobox.html +1 -1
  13. package/components/ui-combobox/ui-combobox.js +1 -6
  14. package/components/ui-context-menu/ui-context-menu.html +1 -1
  15. package/components/ui-context-menu/ui-context-menu.js +1 -6
  16. package/components/ui-dialog/ui-dialog.html +1 -1
  17. package/components/ui-dialog/ui-dialog.js +1 -6
  18. package/components/ui-disclosure/ui-disclosure.html +1 -1
  19. package/components/ui-disclosure/ui-disclosure.js +1 -6
  20. package/components/ui-editable/ui-editable.html +1 -1
  21. package/components/ui-editable/ui-editable.js +1 -6
  22. package/components/ui-editor-block-actions/ui-editor-block-actions.html +1 -1
  23. package/components/ui-editor-block-actions/ui-editor-block-actions.js +1 -6
  24. package/components/ui-editor-chip-editor/ui-editor-chip-editor.html +1 -1
  25. package/components/ui-editor-chip-editor/ui-editor-chip-editor.js +1 -6
  26. package/components/ui-editor-code-language/ui-editor-code-language.html +1 -1
  27. package/components/ui-editor-code-language/ui-editor-code-language.js +1 -6
  28. package/components/ui-editor-footnote-editor/ui-editor-footnote-editor.html +57 -0
  29. package/components/ui-editor-footnote-editor/ui-editor-footnote-editor.js +38 -0
  30. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +1 -1
  31. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +1 -6
  32. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +1 -1
  33. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.js +1 -6
  34. package/components/ui-editor-link-card/ui-editor-link-card.html +1 -1
  35. package/components/ui-editor-link-card/ui-editor-link-card.js +1 -6
  36. package/components/ui-editor-link-form/ui-editor-link-form.html +1 -1
  37. package/components/ui-editor-link-form/ui-editor-link-form.js +1 -6
  38. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  39. package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +1 -6
  40. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +1 -1
  41. package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +1 -6
  42. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +1 -1
  43. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.js +1 -6
  44. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +1 -1
  45. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +1 -6
  46. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +1 -1
  47. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.js +1 -6
  48. package/components/ui-editor-toolbar/ui-editor-toolbar.html +1 -1
  49. package/components/ui-editor-toolbar/ui-editor-toolbar.js +1 -6
  50. package/components/ui-form-field/ui-form-field.html +1 -1
  51. package/components/ui-form-field/ui-form-field.js +1 -6
  52. package/components/ui-icon/ui-icon.html +1 -0
  53. package/components/ui-icon-button/ui-icon-button.html +1 -1
  54. package/components/ui-icon-button/ui-icon-button.js +1 -6
  55. package/components/ui-image/ui-image.html +1 -1
  56. package/components/ui-image/ui-image.js +1 -6
  57. package/components/ui-input/ui-input.html +1 -1
  58. package/components/ui-input/ui-input.js +1 -6
  59. package/components/ui-input-group/ui-input-group.html +1 -1
  60. package/components/ui-input-group/ui-input-group.js +1 -6
  61. package/components/ui-listbox/ui-listbox.html +1 -1
  62. package/components/ui-listbox/ui-listbox.js +1 -6
  63. package/components/ui-menu/ui-menu.html +1 -1
  64. package/components/ui-menu/ui-menu.js +1 -6
  65. package/components/ui-menu-item/ui-menu-item.html +1 -1
  66. package/components/ui-menu-item/ui-menu-item.js +1 -6
  67. package/components/ui-popover/ui-popover.html +1 -1
  68. package/components/ui-popover/ui-popover.js +1 -6
  69. package/components/ui-radio/ui-radio.html +1 -1
  70. package/components/ui-radio/ui-radio.js +1 -6
  71. package/components/ui-radio-group/ui-radio-group.html +1 -1
  72. package/components/ui-radio-group/ui-radio-group.js +1 -6
  73. package/components/ui-scroll-area/ui-scroll-area.html +1 -1
  74. package/components/ui-scroll-area/ui-scroll-area.js +1 -6
  75. package/components/ui-search-shell/ui-search-shell.html +1 -1
  76. package/components/ui-search-shell/ui-search-shell.js +1 -6
  77. package/components/ui-select/ui-select.html +1 -1
  78. package/components/ui-select/ui-select.js +1 -6
  79. package/components/ui-sidebar/ui-sidebar.html +1 -1
  80. package/components/ui-sidebar/ui-sidebar.js +1 -6
  81. package/components/ui-switch/ui-switch.html +1 -1
  82. package/components/ui-switch/ui-switch.js +1 -6
  83. package/components/ui-switcher/ui-switcher.html +1 -1
  84. package/components/ui-switcher/ui-switcher.js +1 -6
  85. package/components/ui-table/ui-table.html +1 -1
  86. package/components/ui-table/ui-table.js +1 -6
  87. package/components/ui-tabs/ui-tabs.html +1 -1
  88. package/components/ui-tabs/ui-tabs.js +1 -6
  89. package/components/ui-textarea/ui-textarea.html +1 -1
  90. package/components/ui-textarea/ui-textarea.js +1 -6
  91. package/components/ui-toast/ui-toast.html +1 -1
  92. package/components/ui-toast/ui-toast.js +1 -6
  93. package/components/ui-toast-region/ui-toast-region.html +1 -1
  94. package/components/ui-toast-region/ui-toast-region.js +1 -6
  95. package/components/ui-tooltip/ui-tooltip.html +1 -1
  96. package/components/ui-tooltip/ui-tooltip.js +1 -6
  97. package/components/ui-tree/ui-tree.html +1 -1
  98. package/components/ui-tree/ui-tree.js +1 -6
  99. package/components/ui-tree-item/ui-tree-item.html +1 -1
  100. package/components/ui-tree-item/ui-tree-item.js +1 -6
  101. package/dist/index.js +37 -36
  102. package/editor/chunks/extensions.js +342 -20
  103. package/editor/expressmark.js +1 -1
  104. package/editor/extensions/footnote.d.ts +40 -7
  105. package/editor/extensions/index.d.ts +1 -1
  106. package/editor/extensions/index.js +2 -2
  107. package/editor/footnote-editing.d.ts +46 -0
  108. package/editor/icons.d.ts +1 -0
  109. package/editor/index.js +4 -3
  110. package/package.json +1 -1
  111. package/styles/ui-editor-footnote-editor.css +1 -0
  112. package/vanilla/UiAffordanceScope.js +4 -4
  113. package/vanilla/UiAvatar.js +4 -4
  114. package/vanilla/UiAvatarGroup.js +4 -4
  115. package/vanilla/UiButton.js +4 -4
  116. package/vanilla/UiCheckbox.js +4 -4
  117. package/vanilla/UiCombobox.js +4 -4
  118. package/vanilla/UiContextMenu.js +4 -4
  119. package/vanilla/UiDialog.js +4 -4
  120. package/vanilla/UiDisclosure.js +4 -4
  121. package/vanilla/UiEditable.js +4 -4
  122. package/vanilla/UiEditorBlockActions.js +4 -4
  123. package/vanilla/UiEditorChipEditor.js +4 -4
  124. package/vanilla/UiEditorCodeLanguage.js +4 -4
  125. package/vanilla/UiEditorFootnoteEditor.d.ts +30 -0
  126. package/vanilla/UiEditorFootnoteEditor.js +101 -0
  127. package/vanilla/UiEditorImageToolbar.js +4 -4
  128. package/vanilla/UiEditorInsertTableGrid.js +4 -4
  129. package/vanilla/UiEditorLinkCard.js +4 -4
  130. package/vanilla/UiEditorLinkForm.js +4 -4
  131. package/vanilla/UiEditorMentionMenu.js +4 -4
  132. package/vanilla/UiEditorSlashMenu.js +4 -4
  133. package/vanilla/UiEditorTableContextMenu.js +4 -4
  134. package/vanilla/UiEditorTableOverlay.js +4 -4
  135. package/vanilla/UiEditorTableToolbar.js +4 -4
  136. package/vanilla/UiEditorToolbar.js +4 -4
  137. package/vanilla/UiFormField.js +4 -4
  138. package/vanilla/UiIcon.js +1 -1
  139. package/vanilla/UiIconButton.js +4 -4
  140. package/vanilla/UiImage.js +4 -4
  141. package/vanilla/UiInput.js +4 -4
  142. package/vanilla/UiInputGroup.js +4 -4
  143. package/vanilla/UiListbox.js +4 -4
  144. package/vanilla/UiMenu.js +4 -4
  145. package/vanilla/UiMenuItem.js +4 -4
  146. package/vanilla/UiPopover.js +4 -4
  147. package/vanilla/UiRadio.js +4 -4
  148. package/vanilla/UiRadioGroup.js +4 -4
  149. package/vanilla/UiScrollArea.js +4 -4
  150. package/vanilla/UiSearchShell.js +4 -4
  151. package/vanilla/UiSelect.js +4 -4
  152. package/vanilla/UiSidebar.js +4 -4
  153. package/vanilla/UiSwitch.js +4 -4
  154. package/vanilla/UiSwitcher.js +4 -4
  155. package/vanilla/UiTable.js +4 -4
  156. package/vanilla/UiTabs.js +4 -4
  157. package/vanilla/UiTextarea.js +4 -4
  158. package/vanilla/UiToast.js +4 -4
  159. package/vanilla/UiToastRegion.js +4 -4
  160. package/vanilla/UiTooltip.js +4 -4
  161. package/vanilla/UiTree.js +4 -4
  162. package/vanilla/UiTreeItem.js +4 -4
  163. package/vanilla/index.js +1 -0
  164. package/vue/UiAffordanceScope.vue +1 -0
  165. package/vue/UiAvatar.vue +1 -0
  166. package/vue/UiAvatarGroup.vue +1 -0
  167. package/vue/UiButton.vue +1 -0
  168. package/vue/UiCheckbox.vue +1 -0
  169. package/vue/UiCombobox.vue +1 -0
  170. package/vue/UiContextMenu.vue +1 -0
  171. package/vue/UiDialog.vue +1 -0
  172. package/vue/UiDisclosure.vue +1 -0
  173. package/vue/UiEditable.vue +1 -0
  174. package/vue/UiEditorBlockActions.vue +1 -0
  175. package/vue/UiEditorChipEditor.vue +1 -0
  176. package/vue/UiEditorCodeLanguage.vue +1 -0
  177. package/vue/UiEditorFootnoteEditor.d.ts +57 -0
  178. package/vue/UiEditorFootnoteEditor.js +2 -0
  179. package/vue/UiEditorFootnoteEditor.vue +304 -0
  180. package/vue/UiEditorImageToolbar.vue +1 -0
  181. package/vue/UiEditorInsertTableGrid.vue +1 -0
  182. package/vue/UiEditorLinkCard.vue +1 -0
  183. package/vue/UiEditorLinkForm.vue +1 -0
  184. package/vue/UiEditorMentionMenu.vue +1 -0
  185. package/vue/UiEditorSlashMenu.vue +1 -0
  186. package/vue/UiEditorTableContextMenu.vue +1 -0
  187. package/vue/UiEditorTableOverlay.vue +1 -0
  188. package/vue/UiEditorTableToolbar.vue +1 -0
  189. package/vue/UiEditorToolbar.vue +1 -0
  190. package/vue/UiFormField.vue +1 -0
  191. package/vue/UiIcon.vue +4 -0
  192. package/vue/UiIconButton.vue +1 -0
  193. package/vue/UiImage.vue +1 -0
  194. package/vue/UiInput.vue +1 -0
  195. package/vue/UiInputGroup.vue +1 -0
  196. package/vue/UiListbox.vue +1 -0
  197. package/vue/UiMenu.vue +1 -0
  198. package/vue/UiMenuItem.vue +1 -0
  199. package/vue/UiPopover.vue +1 -0
  200. package/vue/UiRadio.vue +1 -0
  201. package/vue/UiRadioGroup.vue +1 -0
  202. package/vue/UiScrollArea.vue +1 -0
  203. package/vue/UiSearchShell.vue +1 -0
  204. package/vue/UiSelect.vue +1 -0
  205. package/vue/UiSidebar.vue +1 -0
  206. package/vue/UiSwitch.vue +1 -0
  207. package/vue/UiSwitcher.vue +1 -0
  208. package/vue/UiTable.vue +1 -0
  209. package/vue/UiTabs.vue +1 -0
  210. package/vue/UiTextarea.vue +1 -0
  211. package/vue/UiToast.vue +1 -0
  212. package/vue/UiToastRegion.vue +1 -0
  213. package/vue/UiTooltip.vue +1 -0
  214. package/vue/UiTree.vue +1 -0
  215. package/vue/UiTreeItem.vue +1 -0
  216. package/vue/chunks/UiAffordanceScope.js +2 -1
  217. package/vue/chunks/UiAvatar.js +2 -1
  218. package/vue/chunks/UiAvatarGroup.js +2 -1
  219. package/vue/chunks/UiButton.js +2 -1
  220. package/vue/chunks/UiCheckbox.js +2 -1
  221. package/vue/chunks/UiCombobox.js +2 -1
  222. package/vue/chunks/UiContextMenu.js +2 -1
  223. package/vue/chunks/UiDialog.js +2 -1
  224. package/vue/chunks/UiDisclosure.js +2 -1
  225. package/vue/chunks/UiEditable.js +2 -1
  226. package/vue/chunks/UiEditorBlockActions.js +1 -0
  227. package/vue/chunks/UiEditorChipEditor.js +1 -0
  228. package/vue/chunks/UiEditorCodeLanguage.js +1 -0
  229. package/vue/chunks/UiEditorFootnoteEditor.js +306 -0
  230. package/vue/chunks/UiEditorImageToolbar.js +2 -1
  231. package/vue/chunks/UiEditorInsertTableGrid.js +2 -1
  232. package/vue/chunks/UiEditorLinkCard.js +1 -0
  233. package/vue/chunks/UiEditorLinkForm.js +2 -1
  234. package/vue/chunks/UiEditorMentionMenu.js +2 -1
  235. package/vue/chunks/UiEditorSlashMenu.js +2 -1
  236. package/vue/chunks/UiEditorTableContextMenu.js +2 -1
  237. package/vue/chunks/UiEditorTableOverlay.js +2 -1
  238. package/vue/chunks/UiEditorTableToolbar.js +2 -1
  239. package/vue/chunks/UiEditorToolbar.js +2 -1
  240. package/vue/chunks/UiFormField.js +2 -1
  241. package/vue/chunks/UiIcon.js +15 -1
  242. package/vue/chunks/UiIconButton.js +2 -1
  243. package/vue/chunks/UiImage.js +2 -1
  244. package/vue/chunks/UiInput.js +2 -1
  245. package/vue/chunks/UiInputGroup.js +2 -1
  246. package/vue/chunks/UiListbox.js +2 -1
  247. package/vue/chunks/UiMenu.js +2 -1
  248. package/vue/chunks/UiMenuItem.js +2 -1
  249. package/vue/chunks/UiPopover.js +2 -1
  250. package/vue/chunks/UiRadio.js +2 -1
  251. package/vue/chunks/UiRadioGroup.js +2 -1
  252. package/vue/chunks/UiScrollArea.js +2 -1
  253. package/vue/chunks/UiSearchShell.js +2 -1
  254. package/vue/chunks/UiSelect.js +2 -1
  255. package/vue/chunks/UiSidebar.js +2 -1
  256. package/vue/chunks/UiSwitch.js +2 -1
  257. package/vue/chunks/UiSwitcher.js +2 -1
  258. package/vue/chunks/UiTable.js +2 -1
  259. package/vue/chunks/UiTabs.js +2 -1
  260. package/vue/chunks/UiTextarea.js +2 -1
  261. package/vue/chunks/UiToast.js +2 -1
  262. package/vue/chunks/UiToastRegion.js +2 -1
  263. package/vue/chunks/UiTooltip.js +2 -1
  264. package/vue/chunks/UiTree.js +2 -1
  265. package/vue/chunks/UiTreeItem.js +2 -1
  266. package/vue/components.css +595 -595
  267. package/vue/editor/index.js +668 -80
  268. package/vue/editor/primitives.d.ts +3 -1
  269. package/vue/index.d.ts +1 -0
  270. package/vue/index.js +5 -4
@@ -0,0 +1,304 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.67 for Vue 3.5. Do not edit. -->
2
+ <script setup lang="ts">
3
+ import { computed, getCurrentInstance, provide, ref, watchSyncEffect } from 'vue'
4
+ import type { PropType } from 'vue'
5
+ import {
6
+ checkHydratedRoot,
7
+ concat,
8
+ createDispatch,
9
+ nativeAttrs,
10
+ useComponentHost,
11
+ useReflectedProp,
12
+ } from './host'
13
+ import { acceptsControllerWrite } from './props'
14
+ import {
15
+ BINDING_INPUTS_PROP,
16
+ checkedProp,
17
+ checkPropInput,
18
+ evaluateInput,
19
+ type InputBindings,
20
+ inputDefault,
21
+ inputRead,
22
+ propValidityState,
23
+ READY_INPUT,
24
+ requireInputStatus,
25
+ UNRESOLVED_INPUT,
26
+ vPropValidity,
27
+ vuePropInputs,
28
+ } from './props'
29
+ import UiButton from './UiButton.vue'
30
+ import UiFormField from './UiFormField.vue'
31
+ import UiInput from './UiInput.vue'
32
+ import UiInputGroup from './UiInputGroup.vue'
33
+ import UiStack from './UiStack.vue'
34
+ import UiTextarea from './UiTextarea.vue'
35
+
36
+ defineOptions({ inheritAttrs: false })
37
+
38
+ const propValidityContract = {
39
+ props: {
40
+ editable: {
41
+ type: { kind: 'terminal', name: 'boolean' },
42
+ required: false,
43
+ target: { attribute: 'editable' },
44
+ description:
45
+ 'Whether the note\'s text can be edited here. A note with formatting or more than one block shows its text read-only; Go to note edits it in the\n document.',
46
+ default: false,
47
+ },
48
+ error: {
49
+ type: { kind: 'terminal', name: 'string' },
50
+ required: false,
51
+ target: { attribute: 'error' },
52
+ description:
53
+ 'Why the label field\'s label was not used. While set, the field is invalid and shows it.',
54
+ default: '',
55
+ },
56
+ label: {
57
+ type: { kind: 'terminal', name: 'string' },
58
+ required: false,
59
+ target: { attribute: 'value' },
60
+ description:
61
+ 'The footnote\'s label, which its references and its note share, shown between [^ and ].',
62
+ default: '',
63
+ },
64
+ note: {
65
+ type: { kind: 'terminal', name: 'string' },
66
+ required: false,
67
+ target: { attribute: 'value' },
68
+ description:
69
+ 'The note\'s text, shown in the note field, with each block of a longer note on its own line.',
70
+ default: '',
71
+ },
72
+ },
73
+ } as const
74
+ const props = defineProps({
75
+ editable: { type: null as unknown as PropType<boolean | null> },
76
+ error: { type: null as unknown as PropType<string | null> },
77
+ label: { type: null as unknown as PropType<string | null> },
78
+ note: { type: null as unknown as PropType<string | null> },
79
+ [BINDING_INPUTS_PROP]: { type: null as unknown as PropType<InputBindings> },
80
+ })
81
+ const acceptedProps: Record<string, unknown> = { editable: false, error: '', label: '', note: '' }
82
+ const inputTracking = vuePropInputs(acceptedProps, {
83
+ editable: false,
84
+ error: '',
85
+ label: '',
86
+ note: '',
87
+ }, (name, value, source, values) => {
88
+ switch (name) {
89
+ case 'editable':
90
+ return checkPropInput(value, { kind: 'terminal', name: 'boolean' }, true, true)
91
+ case 'error':
92
+ return checkPropInput(value, { kind: 'terminal', name: 'string' }, true, true)
93
+ case 'label':
94
+ return checkPropInput(value, { kind: 'terminal', name: 'string' }, true, true)
95
+ case 'note':
96
+ return checkPropInput(value, { kind: 'terminal', name: 'string' }, true, true)
97
+ default:
98
+ return { ok: false }
99
+ }
100
+ }, () => {
101
+ void checkedProps.value
102
+ })
103
+ const propInputs = inputTracking.inputs
104
+ const checkedProps = computed(() => {
105
+ void inputTracking.version.value
106
+ return ({
107
+ editable: propInputs.value<boolean | null>(
108
+ 'editable',
109
+ props['editable'],
110
+ props[BINDING_INPUTS_PROP],
111
+ ) as boolean,
112
+ error: propInputs.value<string | null>(
113
+ 'error',
114
+ props['error'],
115
+ props[BINDING_INPUTS_PROP],
116
+ ) as string,
117
+ label: propInputs.value<string | null>(
118
+ 'label',
119
+ props['label'],
120
+ props[BINDING_INPUTS_PROP],
121
+ ) as string,
122
+ note: propInputs.value<string | null>(
123
+ 'note',
124
+ props['note'],
125
+ props[BINDING_INPUTS_PROP],
126
+ ) as string,
127
+ })
128
+ })
129
+ const inputStatus = (name: string, handlesError: boolean) => {
130
+ void checkedProps.value
131
+ void inputTracking.version.value
132
+ return requireInputStatus(propInputs.status(name), handlesError)
133
+ }
134
+ void checkedProps.value
135
+ watchSyncEffect(() => {
136
+ void checkedProps.value
137
+ })
138
+ const reflectedProp = useReflectedProp()
139
+ const hydrationInstance = getCurrentInstance()
140
+ const emit = defineEmits<{
141
+ 'update:label': [value: string]
142
+ text: [event: CustomEvent<{ readonly text: string }>]
143
+ label: [event: CustomEvent<{ readonly label: string }>]
144
+ go: [event: CustomEvent<Readonly<Record<string, unknown>>>]
145
+ done: [event: CustomEvent<Readonly<Record<string, unknown>>>]
146
+ }>()
147
+
148
+ const root = ref<HTMLElement | null>(null)
149
+ const base = ref('ui-editor-footnote-editor')
150
+ let guardedPrevious: any = null
151
+ const guarded = computed(() => {
152
+ const candidate: any = concat(base.value, '-label')
153
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedPrevious
154
+ return guardedPrevious = candidate
155
+ })
156
+ let guardedBindingPrevious: any = null
157
+ const guardedBinding = computed(() => {
158
+ const candidate: any = concat(base.value, '-label')
159
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBindingPrevious
160
+ return guardedBindingPrevious = candidate
161
+ })
162
+ let guardedBinding2Previous: any = null
163
+ const guardedBinding2 = computed(() => {
164
+ const candidate: any = concat(base.value, '-note')
165
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding2Previous
166
+ return guardedBinding2Previous = candidate
167
+ })
168
+ let guardedBinding3Previous: any = null
169
+ const guardedBinding3 = computed(() => {
170
+ const candidate: any = concat(base.value, '-note')
171
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding3Previous
172
+ return guardedBinding3Previous = candidate
173
+ })
174
+ provide('html-next:ui-editor-footnote-editor:base', base)
175
+ checkHydratedRoot('div', 'ui-editor-footnote-editor')
176
+
177
+ const isTextDetail = (
178
+ detail: unknown,
179
+ ): boolean => (detail !== null && typeof detail === 'object' && !Array.isArray(detail)
180
+ && typeof (detail as Record<string, unknown>)['text'] === 'string'
181
+ && Object.keys(detail as object).every((key) => ['text'].includes(key)))
182
+ const isLabelDetail = (
183
+ detail: unknown,
184
+ ): boolean => (detail !== null && typeof detail === 'object' && !Array.isArray(detail)
185
+ && typeof (detail as Record<string, unknown>)['label'] === 'string'
186
+ && Object.keys(detail as object).every((key) => ['label'].includes(key)))
187
+ const isGoDetail = (
188
+ detail: unknown,
189
+ ): boolean => (detail !== null && typeof detail === 'object' && !Array.isArray(detail)
190
+ && Object.values(detail as object).every((item: unknown) => true))
191
+ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) => void, {
192
+ checks: {
193
+ text: isTextDetail,
194
+ label: isLabelDetail,
195
+ go: isGoDetail,
196
+ done: isGoDetail,
197
+ },
198
+ modeled: ['label'],
199
+ })
200
+
201
+ useComponentHost(
202
+ () => import('../components/ui-editor-footnote-editor/ui-editor-footnote-editor.js'),
203
+ {
204
+ root,
205
+ module: true,
206
+ dispatch,
207
+ acceptsState: (name: string, keys: readonly string[], value: unknown) =>
208
+ acceptsControllerWrite(
209
+ value,
210
+ ({ base: { kind: 'terminal', name: 'string' } } as Record<string, any>)[name],
211
+ keys,
212
+ ),
213
+ initials: { base: 'ui-editor-footnote-editor' },
214
+ controllerSource: {
215
+ specifier: '../components/ui-editor-footnote-editor/ui-editor-footnote-editor.js',
216
+ definition: './components/ui-editor-footnote-editor/ui-editor-footnote-editor.html',
217
+ },
218
+ props: checkedProps,
219
+ inputs: propInputs,
220
+ inputTracking,
221
+ propInputs: (name: string) => {
222
+ const incoming = hydrationInstance?.vnode.props
223
+ const kebab = name.replace(/[A-Z]/g, (letter) => '-' + letter.toLowerCase())
224
+ return incoming !== null && incoming !== undefined
225
+ ? (incoming[name] ?? incoming[kebab] ?? null)
226
+ : null
227
+ },
228
+ propNames: ['editable', 'error', 'label', 'note'],
229
+ propValidity: (name: string) =>
230
+ propValidityState({ contract: propValidityContract, values: { ...props } }, name),
231
+ state: { base },
232
+ },
233
+ )
234
+ </script>
235
+
236
+ <template>
237
+ <div
238
+ role="dialog"
239
+ aria-label="Edit footnote"
240
+ v-bind="nativeAttrs($attrs)"
241
+ data-hn
242
+ v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
243
+ :data-ui-editor-footnote-editor-prop-editable="reflectedProp('editable', 'editable', checkedProps.editable, undefined, false)"
244
+ :data-ui-editor-footnote-editor-prop-error="reflectedProp('error', 'error', checkedProps.error, undefined, false)"
245
+ :data-ui-editor-footnote-editor-prop-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
246
+ :data-ui-editor-footnote-editor-prop-note="reflectedProp('note', 'note', checkedProps.note, undefined, false)"
247
+ ref="root"
248
+ >
249
+ <UiStack gap="s"><template
250
+ v-for="boundInput in [evaluateInput(
251
+ () => (inputRead(checkedProps.error, inputStatus('error', true)) !== '') as any,
252
+ READY_INPUT,
253
+ )]"
254
+ ><UiFormField
255
+ :invalid="boundInput.value"
256
+ v-bind="{ [BINDING_INPUTS_PROP]: { invalid: () => boundInput } }"
257
+ ><UiInputGroup><UiInput
258
+ data-footnote-label=""
259
+ size="sm"
260
+ autocomplete="off"
261
+ :id="guardedBinding"
262
+ :value="checkedProps.label"
263
+ v-bind="{
264
+ [BINDING_INPUTS_PROP]: {
265
+ value: () => ({ value: checkedProps.label, status: inputStatus('label', true) }),
266
+ },
267
+ }"
268
+ />
269
+ <template #prefix><span slot="prefix">[^</span></template>
270
+ <template #suffix><span slot="suffix">]</span></template></UiInputGroup>
271
+ <template #label><label slot="label" :for="guarded">Label</label></template>
272
+ <template #error><span slot="error">{{
273
+ checkedProps.error
274
+ }}</span></template></UiFormField></template>{{ ' ' }}<UiFormField><UiInputGroup
275
+ :multiline="true"
276
+ ><template
277
+ v-for="boundInputSnapshot in [evaluateInput(
278
+ () => (!inputRead(checkedProps.editable, inputStatus('editable', true))) as any,
279
+ READY_INPUT,
280
+ )]"
281
+ ><UiTextarea
282
+ data-footnote-note=""
283
+ size="sm"
284
+ :rows="2"
285
+ :autosize="true"
286
+ placeholder="Write the note"
287
+ :id="guardedBinding3"
288
+ :readonly="boundInputSnapshot.value"
289
+ :value="checkedProps.note"
290
+ v-bind="{
291
+ [BINDING_INPUTS_PROP]: {
292
+ readonly: () => boundInputSnapshot,
293
+ value: () => ({ value: checkedProps.note, status: inputStatus('note', true) }),
294
+ },
295
+ }"
296
+ /></template>
297
+ <template #action><UiButton slot="action" size="sm" data-footnote-go=""
298
+ >Go to note</UiButton></template></UiInputGroup>
299
+ <template #label><label slot="label" :for="guardedBinding2">Note</label></template>
300
+ <template #help><span v-if="!checkedProps.editable" slot="help"
301
+ >This note has formatting, so it is edited in the
302
+ document.</span></template></UiFormField></UiStack>
303
+ </div>
304
+ </template>
@@ -268,6 +268,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
268
268
 
269
269
  useComponentHost(() => import('../components/ui-editor-image-toolbar/ui-editor-image-toolbar.js'), {
270
270
  root,
271
+ module: true,
271
272
  dispatch,
272
273
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
273
274
  acceptsControllerWrite(
@@ -174,6 +174,7 @@ useComponentHost(
174
174
  () => import('../components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.js'),
175
175
  {
176
176
  root,
177
+ module: true,
177
178
  dispatch,
178
179
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
179
180
  acceptsControllerWrite(
@@ -270,6 +270,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
270
270
 
271
271
  useComponentHost(() => import('../components/ui-editor-link-card/ui-editor-link-card.js'), {
272
272
  root,
273
+ module: true,
273
274
  dispatch,
274
275
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
275
276
  acceptsControllerWrite(
@@ -454,6 +454,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
454
454
 
455
455
  useComponentHost(() => import('../components/ui-editor-link-form/ui-editor-link-form.js'), {
456
456
  root,
457
+ module: true,
457
458
  dispatch,
458
459
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
459
460
  acceptsControllerWrite(
@@ -321,6 +321,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
321
321
 
322
322
  useComponentHost(() => import('../components/ui-editor-mention-menu/ui-editor-mention-menu.js'), {
323
323
  root,
324
+ module: true,
324
325
  dispatch,
325
326
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
326
327
  acceptsControllerWrite(
@@ -285,6 +285,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
285
285
 
286
286
  useComponentHost(() => import('../components/ui-editor-slash-menu/ui-editor-slash-menu.js'), {
287
287
  root,
288
+ module: true,
288
289
  dispatch,
289
290
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
290
291
  acceptsControllerWrite(
@@ -384,6 +384,7 @@ useComponentHost(
384
384
  () => import('../components/ui-editor-table-context-menu/ui-editor-table-context-menu.js'),
385
385
  {
386
386
  root,
387
+ module: true,
387
388
  dispatch,
388
389
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
389
390
  acceptsControllerWrite(
@@ -529,6 +529,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
529
529
 
530
530
  useComponentHost(() => import('../components/ui-editor-table-overlay/ui-editor-table-overlay.js'), {
531
531
  root,
532
+ module: true,
532
533
  dispatch,
533
534
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
534
535
  acceptsControllerWrite(
@@ -394,6 +394,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
394
394
 
395
395
  useComponentHost(() => import('../components/ui-editor-table-toolbar/ui-editor-table-toolbar.js'), {
396
396
  root,
397
+ module: true,
397
398
  dispatch,
398
399
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
399
400
  acceptsControllerWrite(
@@ -94,6 +94,7 @@ const dispatch = createDispatch(root)
94
94
 
95
95
  useComponentHost(() => import('../components/ui-editor-toolbar/ui-editor-toolbar.js'), {
96
96
  root,
97
+ module: true,
97
98
  dispatch,
98
99
  controllerSource: {
99
100
  specifier: '../components/ui-editor-toolbar/ui-editor-toolbar.js',
@@ -124,6 +124,7 @@ const dispatch = createDispatch(root)
124
124
 
125
125
  useComponentHost(() => import('../components/ui-form-field/ui-form-field.js'), {
126
126
  root,
127
+ module: true,
127
128
  dispatch,
128
129
  controllerSource: {
129
130
  specifier: '../components/ui-form-field/ui-form-field.js',
package/vue/UiIcon.vue CHANGED
@@ -409,6 +409,10 @@ const shapes: ReturnType<typeof inputComputed<any>> = inputComputed<any>(
409
409
  tag: 'path',
410
410
  d: 'M14 12a4 4 0 0 1 0 8H6',
411
411
  }, { tag: 'line', x1: '4', x2: '20', y1: '12', y2: '12' }],
412
+ superscript: [{ tag: 'path', d: 'm4 19 8-8' }, { tag: 'path', d: 'm12 19-8-8' }, {
413
+ tag: 'path',
414
+ d: 'M20 12h-4c0-1.5.442-2 1.5-2.5S20 8.334 20 7.002c0-.472-.17-.93-.484-1.29a2.105 2.105 0 0 0-2.617-.436c-.42.239-.738.614-.899 1.06',
415
+ }],
412
416
  table: [{
413
417
  tag: 'path',
414
418
  d: 'M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18',
@@ -338,6 +338,7 @@ const dispatch = createDispatch(root)
338
338
 
339
339
  useComponentHost(() => import('../components/ui-icon-button/ui-icon-button.js'), {
340
340
  root,
341
+ module: true,
341
342
  dispatch,
342
343
  controllerSource: {
343
344
  specifier: '../components/ui-icon-button/ui-icon-button.js',
package/vue/UiImage.vue CHANGED
@@ -216,6 +216,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
216
216
 
217
217
  useComponentHost(() => import('../components/ui-image/ui-image.js'), {
218
218
  root,
219
+ module: true,
219
220
  dispatch,
220
221
  controllerSource: {
221
222
  specifier: '../components/ui-image/ui-image.js',
package/vue/UiInput.vue CHANGED
@@ -430,6 +430,7 @@ const dispatch = createDispatch(root)
430
430
 
431
431
  useComponentHost(() => import('../components/ui-input/ui-input.js'), {
432
432
  root,
433
+ module: true,
433
434
  dispatch,
434
435
  controllerSource: {
435
436
  specifier: '../components/ui-input/ui-input.js',
@@ -176,6 +176,7 @@ const dispatch = createDispatch(root)
176
176
 
177
177
  useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'), {
178
178
  root,
179
+ module: true,
179
180
  dispatch,
180
181
  controllerSource: {
181
182
  specifier: '../components/ui-input-group/ui-input-group.js',
package/vue/UiListbox.vue CHANGED
@@ -272,6 +272,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
272
272
 
273
273
  useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
274
274
  root,
275
+ module: true,
275
276
  dispatch,
276
277
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
277
278
  acceptsControllerWrite(
package/vue/UiMenu.vue CHANGED
@@ -271,6 +271,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
271
271
 
272
272
  useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
273
273
  root,
274
+ module: true,
274
275
  dispatch,
275
276
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
276
277
  acceptsControllerWrite(
@@ -252,6 +252,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
252
252
 
253
253
  useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
254
254
  root,
255
+ module: true,
255
256
  dispatch,
256
257
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
257
258
  acceptsControllerWrite(
package/vue/UiPopover.vue CHANGED
@@ -237,6 +237,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
237
237
 
238
238
  useComponentHost(() => import('../components/ui-popover/ui-popover.js'), {
239
239
  root,
240
+ module: true,
240
241
  dispatch,
241
242
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
242
243
  acceptsControllerWrite(
package/vue/UiRadio.vue CHANGED
@@ -218,6 +218,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
218
218
 
219
219
  useComponentHost(() => import('../components/ui-radio/ui-radio.js'), {
220
220
  root,
221
+ module: true,
221
222
  dispatch,
222
223
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
223
224
  acceptsControllerWrite(
@@ -273,6 +273,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
273
273
 
274
274
  useComponentHost(() => import('../components/ui-radio-group/ui-radio-group.js'), {
275
275
  root,
276
+ module: true,
276
277
  dispatch,
277
278
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
278
279
  acceptsControllerWrite(
@@ -177,6 +177,7 @@ const dispatch = createDispatch(root)
177
177
 
178
178
  useComponentHost(() => import('../components/ui-scroll-area/ui-scroll-area.js'), {
179
179
  root,
180
+ module: true,
180
181
  dispatch,
181
182
  controllerSource: {
182
183
  specifier: '../components/ui-scroll-area/ui-scroll-area.js',
@@ -169,6 +169,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
169
169
 
170
170
  useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'), {
171
171
  root,
172
+ module: true,
172
173
  dispatch,
173
174
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
174
175
  acceptsControllerWrite(
package/vue/UiSelect.vue CHANGED
@@ -173,6 +173,7 @@ const dispatch = createDispatch(root)
173
173
 
174
174
  useComponentHost(() => import('../components/ui-select/ui-select.js'), {
175
175
  root,
176
+ module: true,
176
177
  dispatch,
177
178
  controllerSource: {
178
179
  specifier: '../components/ui-select/ui-select.js',
package/vue/UiSidebar.vue CHANGED
@@ -284,6 +284,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
284
284
 
285
285
  useComponentHost(() => import('../components/ui-sidebar/ui-sidebar.js'), {
286
286
  root,
287
+ module: true,
287
288
  dispatch,
288
289
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
289
290
  acceptsControllerWrite(
package/vue/UiSwitch.vue CHANGED
@@ -217,6 +217,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
217
217
 
218
218
  useComponentHost(() => import('../components/ui-switch/ui-switch.js'), {
219
219
  root,
220
+ module: true,
220
221
  dispatch,
221
222
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
222
223
  acceptsControllerWrite(
@@ -146,6 +146,7 @@ const dispatch = createDispatch(root)
146
146
 
147
147
  useComponentHost(() => import('../components/ui-switcher/ui-switcher.js'), {
148
148
  root,
149
+ module: true,
149
150
  dispatch,
150
151
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
151
152
  acceptsControllerWrite(
package/vue/UiTable.vue CHANGED
@@ -113,6 +113,7 @@ const dispatch = createDispatch(root)
113
113
 
114
114
  useComponentHost(() => import('../components/ui-table/ui-table.js'), {
115
115
  root,
116
+ module: true,
116
117
  dispatch,
117
118
  controllerSource: {
118
119
  specifier: '../components/ui-table/ui-table.js',
package/vue/UiTabs.vue CHANGED
@@ -246,6 +246,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
246
246
 
247
247
  useComponentHost(() => import('../components/ui-tabs/ui-tabs.js'), {
248
248
  root,
249
+ module: true,
249
250
  dispatch,
250
251
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
251
252
  acceptsControllerWrite(
@@ -244,6 +244,7 @@ const dispatch = createDispatch(root)
244
244
 
245
245
  useComponentHost(() => import('../components/ui-textarea/ui-textarea.js'), {
246
246
  root,
247
+ module: true,
247
248
  dispatch,
248
249
  controllerSource: {
249
250
  specifier: '../components/ui-textarea/ui-textarea.js',
package/vue/UiToast.vue CHANGED
@@ -142,6 +142,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
142
142
 
143
143
  useComponentHost(() => import('../components/ui-toast/ui-toast.js'), {
144
144
  root,
145
+ module: true,
145
146
  dispatch,
146
147
  controllerSource: {
147
148
  specifier: '../components/ui-toast/ui-toast.js',
@@ -192,6 +192,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
192
192
 
193
193
  useComponentHost(() => import('../components/ui-toast-region/ui-toast-region.js'), {
194
194
  root,
195
+ module: true,
195
196
  dispatch,
196
197
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
197
198
  acceptsControllerWrite(
package/vue/UiTooltip.vue CHANGED
@@ -288,6 +288,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
288
288
 
289
289
  useComponentHost(() => import('../components/ui-tooltip/ui-tooltip.js'), {
290
290
  root,
291
+ module: true,
291
292
  dispatch,
292
293
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
293
294
  acceptsControllerWrite(
package/vue/UiTree.vue CHANGED
@@ -316,6 +316,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
316
316
 
317
317
  useComponentHost(() => import('../components/ui-tree/ui-tree.js'), {
318
318
  root,
319
+ module: true,
319
320
  dispatch,
320
321
  controllerSource: {
321
322
  specifier: '../components/ui-tree/ui-tree.js',
@@ -476,6 +476,7 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
476
476
 
477
477
  useComponentHost(() => import('../components/ui-tree-item/ui-tree-item.js'), {
478
478
  root,
479
+ module: true,
479
480
  dispatch,
480
481
  acceptsState: (name: string, keys: readonly string[], value: unknown) =>
481
482
  acceptsControllerWrite(
@@ -90,6 +90,7 @@ var UiAffordanceScope_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
90
90
  const dispatch = createDispatch(root);
91
91
  useComponentHost(() => import("@threadlabs/looma/components/ui-affordance-scope/ui-affordance-scope.js"), {
92
92
  root,
93
+ module: true,
93
94
  dispatch,
94
95
  acceptsState: (name, keys, value) => acceptsControllerWrite(value, { engaged: {
95
96
  kind: "terminal",
@@ -130,6 +131,6 @@ var UiAffordanceScope_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
130
131
  }]]);
131
132
  };
132
133
  }
133
- }), [["__scopeId", "data-v-94d3663b"]]);
134
+ }), [["__scopeId", "data-v-715f4ec6"]]);
134
135
  //#endregion
135
136
  export { UiAffordanceScope_default as t };