@threadlabs/looma 0.28.6 → 0.28.8

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 (114) hide show
  1. package/components/ui-editor-block-actions/ui-editor-block-actions.html +20 -0
  2. package/components/ui-editor-block-actions/ui-editor-block-actions.js +14 -0
  3. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +7 -6
  4. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +2 -1
  5. package/components/ui-editor-link-card/ui-editor-link-card.html +57 -0
  6. package/components/ui-editor-link-card/ui-editor-link-card.js +27 -0
  7. package/components/ui-editor-link-form/ui-editor-link-form.html +118 -0
  8. package/components/ui-editor-link-form/ui-editor-link-form.js +71 -0
  9. package/dist/index.js +37 -34
  10. package/package.json +1 -1
  11. package/styles/ui-editor-block-actions.css +1 -0
  12. package/styles/ui-editor-link-card.css +1 -0
  13. package/styles/ui-editor-link-form.css +1 -0
  14. package/vanilla/UiEditorBlockActions.d.ts +16 -0
  15. package/vanilla/UiEditorBlockActions.js +41 -0
  16. package/vanilla/UiEditorImageToolbar.js +1 -1
  17. package/vanilla/UiEditorLinkCard.d.ts +20 -0
  18. package/vanilla/UiEditorLinkCard.js +153 -0
  19. package/vanilla/UiEditorLinkForm.d.ts +32 -0
  20. package/vanilla/UiEditorLinkForm.js +354 -0
  21. package/vanilla/index.js +3 -0
  22. package/vue/UiEditorBlockActions.d.ts +33 -0
  23. package/vue/UiEditorBlockActions.js +2 -0
  24. package/vue/UiEditorBlockActions.vue +125 -0
  25. package/vue/UiEditorImageToolbar.vue +5 -6
  26. package/vue/UiEditorLinkCard.d.ts +58 -0
  27. package/vue/UiEditorLinkCard.js +2 -0
  28. package/vue/UiEditorLinkCard.vue +319 -0
  29. package/vue/UiEditorLinkForm.d.ts +165 -0
  30. package/vue/UiEditorLinkForm.js +2 -0
  31. package/vue/UiEditorLinkForm.vue +557 -0
  32. package/vue/chunks/UiAffordanceScope.js +1 -1
  33. package/vue/chunks/UiAvatar.js +1 -1
  34. package/vue/chunks/UiAvatarGroup.js +1 -1
  35. package/vue/chunks/UiBadge.js +1 -1
  36. package/vue/chunks/UiBreadcrumbItem.js +1 -1
  37. package/vue/chunks/UiBreadcrumbs.js +1 -1
  38. package/vue/chunks/UiButton.js +1 -1
  39. package/vue/chunks/UiCallout.js +1 -1
  40. package/vue/chunks/UiCard.js +1 -1
  41. package/vue/chunks/UiCheckbox.js +1 -1
  42. package/vue/chunks/UiCluster.js +1 -1
  43. package/vue/chunks/UiCombobox.js +1 -1
  44. package/vue/chunks/UiContainer.js +1 -1
  45. package/vue/chunks/UiContextMenu.js +1 -1
  46. package/vue/chunks/UiCover.js +1 -1
  47. package/vue/chunks/UiDescriptionItem.js +1 -1
  48. package/vue/chunks/UiDescriptionList.js +1 -1
  49. package/vue/chunks/UiDialog.js +1 -1
  50. package/vue/chunks/UiDisclosure.js +1 -1
  51. package/vue/chunks/UiEditable.js +1 -1
  52. package/vue/chunks/UiEditorBlockActions.js +127 -0
  53. package/vue/chunks/UiEditorImageToolbar.js +7 -25
  54. package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
  55. package/vue/chunks/UiEditorLinkCard.js +356 -0
  56. package/vue/chunks/UiEditorLinkForm.js +669 -0
  57. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  58. package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
  59. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  60. package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
  61. package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
  62. package/vue/chunks/UiEditorSurface.js +1 -1
  63. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  64. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  65. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  66. package/vue/chunks/UiEditorToolbar.js +1 -1
  67. package/vue/chunks/UiFloatingActionButton.js +1 -1
  68. package/vue/chunks/UiFormField.js +1 -1
  69. package/vue/chunks/UiGrid.js +1 -1
  70. package/vue/chunks/UiIcon.js +1 -1
  71. package/vue/chunks/UiIconButton.js +1 -1
  72. package/vue/chunks/UiImage.js +1 -1
  73. package/vue/chunks/UiInput.js +1 -1
  74. package/vue/chunks/UiInputGroup.js +1 -1
  75. package/vue/chunks/UiList.js +1 -1
  76. package/vue/chunks/UiListItem.js +1 -1
  77. package/vue/chunks/UiListbox.js +1 -1
  78. package/vue/chunks/UiMenu.js +1 -1
  79. package/vue/chunks/UiMenuGroup.js +1 -1
  80. package/vue/chunks/UiMenuItem.js +1 -1
  81. package/vue/chunks/UiMeter.js +1 -1
  82. package/vue/chunks/UiNavItem.js +1 -1
  83. package/vue/chunks/UiPageHeader.js +1 -1
  84. package/vue/chunks/UiPopover.js +1 -1
  85. package/vue/chunks/UiRadio.js +1 -1
  86. package/vue/chunks/UiRadioGroup.js +1 -1
  87. package/vue/chunks/UiReel.js +1 -1
  88. package/vue/chunks/UiScrollArea.js +1 -1
  89. package/vue/chunks/UiSearchResultRow.js +1 -1
  90. package/vue/chunks/UiSearchShell.js +1 -1
  91. package/vue/chunks/UiSection.js +1 -1
  92. package/vue/chunks/UiSelect.js +1 -1
  93. package/vue/chunks/UiSeparator.js +1 -1
  94. package/vue/chunks/UiSidebar.js +1 -1
  95. package/vue/chunks/UiSpinner.js +1 -1
  96. package/vue/chunks/UiStack.js +1 -1
  97. package/vue/chunks/UiStatusMessage.js +1 -1
  98. package/vue/chunks/UiSwitch.js +1 -1
  99. package/vue/chunks/UiSwitcher.js +1 -1
  100. package/vue/chunks/UiTable.js +1 -1
  101. package/vue/chunks/UiTabs.js +1 -1
  102. package/vue/chunks/UiText.js +1 -1
  103. package/vue/chunks/UiTextarea.js +1 -1
  104. package/vue/chunks/UiToast.js +1 -1
  105. package/vue/chunks/UiToastRegion.js +1 -1
  106. package/vue/chunks/UiTooltip.js +1 -1
  107. package/vue/chunks/UiTree.js +1 -1
  108. package/vue/chunks/UiTreeItem.js +1 -1
  109. package/vue/chunks/_plugin-vue_export-helper.js +1 -1
  110. package/vue/components.css +2886 -2886
  111. package/vue/editor/index.js +98 -250
  112. package/vue/editor/primitives.d.ts +24 -2
  113. package/vue/index.d.ts +3 -0
  114. package/vue/index.js +8 -5
@@ -0,0 +1,319 @@
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 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
+ cycleCheckedComputed,
10
+ nativeAttrs,
11
+ text,
12
+ useComponentHost,
13
+ useReflectedProp,
14
+ } from './host'
15
+ import { acceptsControllerWrite } from './props'
16
+ import { checkedProp, propValidityState, vPropValidity } from './props'
17
+ import UiButton from './UiButton.vue'
18
+ import UiCard from './UiCard.vue'
19
+ import UiCluster from './UiCluster.vue'
20
+ import UiIcon from './UiIcon.vue'
21
+ import UiIconButton from './UiIconButton.vue'
22
+ import UiStack from './UiStack.vue'
23
+ import UiText from './UiText.vue'
24
+ import UiTooltip from './UiTooltip.vue'
25
+
26
+ defineOptions({ inheritAttrs: false })
27
+
28
+ const propValidityContract = {
29
+ props: {
30
+ detail: {
31
+ type: { kind: 'terminal', name: 'string' },
32
+ required: false,
33
+ target: { attribute: 'detail' },
34
+ description: 'A second line under the label, such as where the destination lives.',
35
+ default: '',
36
+ },
37
+ href: {
38
+ type: { kind: 'terminal', name: 'string' },
39
+ required: false,
40
+ target: { attribute: 'title' },
41
+ description: 'The link\'s destination, shown when there is no label.',
42
+ default: '',
43
+ },
44
+ label: {
45
+ type: { kind: 'terminal', name: 'string' },
46
+ required: false,
47
+ target: { attribute: 'label' },
48
+ description:
49
+ 'The resolved destination\'s name, such as a page title, shown in place of the address.',
50
+ default: '',
51
+ },
52
+ openHref: {
53
+ type: { kind: 'terminal', name: 'string' },
54
+ required: false,
55
+ target: { attribute: 'href' },
56
+ description:
57
+ 'The address Open link opens in a new tab; without it the card offers no Open link. The editor passes the destination only when it is an http, https,\n mailto, tel, or relative address.',
58
+ default: '',
59
+ },
60
+ targetLabel: {
61
+ type: { kind: 'terminal', name: 'string' },
62
+ required: false,
63
+ target: { attribute: 'targetlabel' },
64
+ description:
65
+ 'What a resolved destination is called, as in "Page: Guide" for a screen reader.',
66
+ default: 'Item',
67
+ },
68
+ },
69
+ } as const
70
+ const props = defineProps({
71
+ detail: { type: null as unknown as PropType<string | null>, default: '' },
72
+ href: { type: null as unknown as PropType<string | null>, default: '' },
73
+ label: { type: null as unknown as PropType<string | null>, default: '' },
74
+ openHref: { type: null as unknown as PropType<string | null>, default: '' },
75
+ targetLabel: { type: null as unknown as PropType<string | null>, default: 'Item' },
76
+ })
77
+ const acceptedProps: Record<string, unknown> = {
78
+ detail: '',
79
+ href: '',
80
+ label: '',
81
+ openHref: '',
82
+ targetLabel: 'Item',
83
+ }
84
+ const checkedProps = computed(() => ({
85
+ detail: checkedProp<string>(
86
+ props['detail'],
87
+ { kind: 'terminal', name: 'string' },
88
+ false,
89
+ 'detail',
90
+ acceptedProps,
91
+ ) as string,
92
+ href: checkedProp<string>(
93
+ props['href'],
94
+ { kind: 'terminal', name: 'string' },
95
+ false,
96
+ 'href',
97
+ acceptedProps,
98
+ ) as string,
99
+ label: checkedProp<string>(
100
+ props['label'],
101
+ { kind: 'terminal', name: 'string' },
102
+ false,
103
+ 'label',
104
+ acceptedProps,
105
+ ) as string,
106
+ openHref: checkedProp<string>(
107
+ props['openHref'],
108
+ { kind: 'terminal', name: 'string' },
109
+ false,
110
+ 'openHref',
111
+ acceptedProps,
112
+ ) as string,
113
+ targetLabel: checkedProp<string>(
114
+ props['targetLabel'],
115
+ { kind: 'terminal', name: 'string' },
116
+ false,
117
+ 'targetLabel',
118
+ acceptedProps,
119
+ ) as string,
120
+ }))
121
+ void checkedProps.value
122
+ watchSyncEffect(() => {
123
+ void checkedProps.value
124
+ })
125
+ const reflectedProp = useReflectedProp()
126
+ const hydrationInstance = getCurrentInstance()
127
+ const emit = defineEmits<{
128
+ edit: [event: CustomEvent<Readonly<Record<string, unknown>>>]
129
+ remove: [event: CustomEvent<Readonly<Record<string, unknown>>>]
130
+ }>()
131
+
132
+ const root = ref<HTMLElement | null>(null)
133
+ const base = ref('ui-editor-link-card')
134
+ const resolved = cycleCheckedComputed(() => checkedProps.value.label !== '')
135
+ let shownPrevious: any = null
136
+ const shown = cycleCheckedComputed(() => {
137
+ const next: any = ((objectValue: any, indexValue: any) =>
138
+ objectValue === Symbol.for('html-next.invalid-result')
139
+ || indexValue === Symbol.for('html-next.invalid-result')
140
+ ? Symbol.for('html-next.invalid-result')
141
+ : objectValue[indexValue])(
142
+ { true: checkedProps.value.label, false: checkedProps.value.href },
143
+ concat(resolved.value),
144
+ )
145
+ if (next === Symbol.for('html-next.invalid-result')) {
146
+ return shownPrevious
147
+ }
148
+ return shownPrevious = next
149
+ })
150
+ let guardedPrevious: any = null
151
+ const guarded = computed(() => {
152
+ const candidate: any = ((objectValue: any, indexValue: any) =>
153
+ objectValue === Symbol.for('html-next.invalid-result')
154
+ || indexValue === Symbol.for('html-next.invalid-result')
155
+ ? Symbol.for('html-next.invalid-result')
156
+ : objectValue[indexValue])({ true: 'file-text', false: 'link' }, concat(resolved.value))
157
+ if (candidate === Symbol.for('html-next.invalid-result')) {
158
+ return guardedPrevious
159
+ }
160
+ return guardedPrevious = candidate
161
+ })
162
+ let guardedBindingPrevious: any = null
163
+ const guardedBinding = computed(() => {
164
+ const candidate: any = concat(
165
+ ((objectValue: any, indexValue: any) =>
166
+ objectValue === Symbol.for('html-next.invalid-result')
167
+ || indexValue === Symbol.for('html-next.invalid-result')
168
+ ? Symbol.for('html-next.invalid-result')
169
+ : objectValue[indexValue])(
170
+ { true: checkedProps.value.targetLabel, false: 'URL' },
171
+ concat(resolved.value),
172
+ ),
173
+ ': ',
174
+ shown.value,
175
+ )
176
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBindingPrevious
177
+ return guardedBindingPrevious = candidate
178
+ })
179
+ let guardedBinding2Previous: any = null
180
+ const guardedBinding2 = computed(() => {
181
+ const candidate: any = concat(base.value, '-open')
182
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding2Previous
183
+ return guardedBinding2Previous = candidate
184
+ })
185
+ let guardedBinding3Previous: any = null
186
+ const guardedBinding3 = computed(() => {
187
+ const candidate: any = concat(base.value, '-open')
188
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding3Previous
189
+ return guardedBinding3Previous = candidate
190
+ })
191
+ let guardedBinding4Previous: any = null
192
+ const guardedBinding4 = computed(() => {
193
+ const candidate: any = concat(base.value, '-edit')
194
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding4Previous
195
+ return guardedBinding4Previous = candidate
196
+ })
197
+ let guardedBinding5Previous: any = null
198
+ const guardedBinding5 = computed(() => {
199
+ const candidate: any = concat(base.value, '-edit')
200
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding5Previous
201
+ return guardedBinding5Previous = candidate
202
+ })
203
+ let guardedBinding6Previous: any = null
204
+ const guardedBinding6 = computed(() => {
205
+ const candidate: any = concat(base.value, '-remove')
206
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding6Previous
207
+ return guardedBinding6Previous = candidate
208
+ })
209
+ let guardedBinding7Previous: any = null
210
+ const guardedBinding7 = computed(() => {
211
+ const candidate: any = concat(base.value, '-remove')
212
+ if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding7Previous
213
+ return guardedBinding7Previous = candidate
214
+ })
215
+ provide('html-next:ui-editor-link-card:base', base)
216
+ checkHydratedRoot('div', 'ui-editor-link-card')
217
+
218
+ const isEditDetail = (
219
+ detail: unknown,
220
+ ): boolean => (detail !== null && typeof detail === 'object' && !Array.isArray(detail)
221
+ && Object.values(detail as object).every((item: unknown) => true))
222
+ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) => void, {
223
+ checks: {
224
+ edit: isEditDetail,
225
+ remove: isEditDetail,
226
+ },
227
+ })
228
+
229
+ useComponentHost(() => import('../components/ui-editor-link-card/ui-editor-link-card.js'), {
230
+ root,
231
+ dispatch,
232
+ acceptsState: (name: string, keys: readonly string[], value: unknown) =>
233
+ acceptsControllerWrite(
234
+ value,
235
+ ({ base: { kind: 'terminal', name: 'string' } } as Record<string, any>)[name],
236
+ keys,
237
+ ),
238
+ controllerSource: {
239
+ specifier: '../components/ui-editor-link-card/ui-editor-link-card.js',
240
+ definition: './components/ui-editor-link-card/ui-editor-link-card.html',
241
+ },
242
+ props: checkedProps,
243
+ propInputs: (name: string) => {
244
+ const incoming = hydrationInstance?.vnode.props
245
+ const kebab = name.replace(/[A-Z]/g, (letter) => '-' + letter.toLowerCase())
246
+ return incoming !== null && incoming !== undefined
247
+ ? (incoming[name] ?? incoming[kebab] ?? null)
248
+ : null
249
+ },
250
+ propNames: ['detail', 'href', 'label', 'openHref', 'targetLabel'],
251
+ propValidity: (name: string) =>
252
+ propValidityState({ contract: propValidityContract, values: { ...props } }, name),
253
+ state: { base },
254
+ computed: { resolved, shown },
255
+ })
256
+ </script>
257
+
258
+ <template>
259
+ <div
260
+ v-bind="nativeAttrs($attrs)"
261
+ v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
262
+ :data-detail="reflectedProp('detail', 'detail', checkedProps.detail, undefined, false)"
263
+ :data-href="reflectedProp('href', 'href', checkedProps.href, undefined, false)"
264
+ :data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
265
+ :data-open-href="reflectedProp('openHref', 'open-href', checkedProps.openHref, undefined, false)"
266
+ :data-target-label="reflectedProp('targetLabel', 'target-label', checkedProps.targetLabel, undefined, false)"
267
+ ref="root"
268
+ >
269
+ <UiCard variant="elevated" padding="xs" size="content"><UiCluster
270
+ gap="xs"
271
+ wrap="nowrap"
272
+ role="group"
273
+ aria-label="Link actions"
274
+ ><UiIcon :name="guarded" />
275
+ <UiStack gap="none" :title="checkedProps.href" :aria-label="guardedBinding"><UiText
276
+ as="strong"
277
+ size="sm"
278
+ weight="medium"
279
+ font="sans"
280
+ wrap="anywhere"
281
+ >{{ text(shown) }}</UiText>
282
+ <UiText
283
+ v-if="checkedProps.detail !== ''"
284
+ as="small"
285
+ size="xs"
286
+ tone="secondary"
287
+ font="sans"
288
+ >{{ checkedProps.detail }}</UiText></UiStack>
289
+ <template v-if="checkedProps.openHref !== ''"><UiButton
290
+ as="a"
291
+ variant="ghost"
292
+ tone="neutral"
293
+ size="sm"
294
+ target="_blank"
295
+ rel="noopener noreferrer"
296
+ aria-label="Open link"
297
+ :id="guardedBinding2"
298
+ :href="checkedProps.openHref"
299
+ ><UiCluster gap="xs" wrap="nowrap"><UiIcon name="external-link" />Open
300
+ link</UiCluster></UiButton>
301
+ <UiTooltip :for="guardedBinding3">Open link</UiTooltip></template>
302
+ <UiIconButton
303
+ label="Edit link"
304
+ variant="ghost"
305
+ size="sm"
306
+ data-link-action="edit"
307
+ :id="guardedBinding4"
308
+ ><UiIcon name="pencil" /></UiIconButton>
309
+ <UiTooltip :for="guardedBinding5">Edit link</UiTooltip>
310
+ <UiIconButton
311
+ label="Remove link"
312
+ variant="ghost"
313
+ size="sm"
314
+ data-link-action="remove"
315
+ :id="guardedBinding6"
316
+ ><UiIcon name="unlink" /></UiIconButton>
317
+ <UiTooltip :for="guardedBinding7">Remove link</UiTooltip></UiCluster></UiCard>
318
+ </div>
319
+ </template>
@@ -0,0 +1,165 @@
1
+ import type { PropType } from 'vue';
2
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3
+ error: {
4
+ type: PropType<string | null>;
5
+ default: string;
6
+ };
7
+ existing: {
8
+ type: PropType<boolean | null>;
9
+ default: boolean;
10
+ };
11
+ mode: {
12
+ type: PropType<"url" | "target" | null>;
13
+ default: string;
14
+ };
15
+ newTab: {
16
+ type: PropType<boolean | null>;
17
+ default: boolean;
18
+ };
19
+ placeholder: {
20
+ type: PropType<string | null>;
21
+ default: string;
22
+ };
23
+ results: {
24
+ type: PropType<readonly ({
25
+ readonly id: string;
26
+ readonly label: string;
27
+ readonly detail?: string;
28
+ })[] | null>;
29
+ default: () => never[];
30
+ };
31
+ searchable: {
32
+ type: PropType<boolean | null>;
33
+ default: boolean;
34
+ };
35
+ selected: {
36
+ type: PropType<string | null>;
37
+ default: string;
38
+ };
39
+ status: {
40
+ type: PropType<string | null>;
41
+ default: string;
42
+ };
43
+ text: {
44
+ type: PropType<string | null>;
45
+ default: string;
46
+ };
47
+ textEditable: {
48
+ type: PropType<boolean | null>;
49
+ default: boolean;
50
+ };
51
+ value: {
52
+ type: PropType<string | null>;
53
+ default: string;
54
+ };
55
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
56
+ clear: (event: CustomEvent<Readonly<Record<string, unknown>>>) => any;
57
+ text: (event: CustomEvent<{
58
+ readonly text: string;
59
+ }>) => any;
60
+ "update:value": (value: string) => any;
61
+ save: (event: CustomEvent<Readonly<Record<string, unknown>>>) => any;
62
+ "update:newTab": (value: boolean) => any;
63
+ "update:text": (value: string) => any;
64
+ destination: (event: CustomEvent<{
65
+ readonly value: string;
66
+ }>) => any;
67
+ "new-tab": (event: CustomEvent<{
68
+ readonly newTab: boolean;
69
+ }>) => any;
70
+ choose: (event: CustomEvent<{
71
+ readonly id: string;
72
+ }>) => any;
73
+ dismiss: (event: CustomEvent<Readonly<Record<string, unknown>>>) => any;
74
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
75
+ error: {
76
+ type: PropType<string | null>;
77
+ default: string;
78
+ };
79
+ existing: {
80
+ type: PropType<boolean | null>;
81
+ default: boolean;
82
+ };
83
+ mode: {
84
+ type: PropType<"url" | "target" | null>;
85
+ default: string;
86
+ };
87
+ newTab: {
88
+ type: PropType<boolean | null>;
89
+ default: boolean;
90
+ };
91
+ placeholder: {
92
+ type: PropType<string | null>;
93
+ default: string;
94
+ };
95
+ results: {
96
+ type: PropType<readonly ({
97
+ readonly id: string;
98
+ readonly label: string;
99
+ readonly detail?: string;
100
+ })[] | null>;
101
+ default: () => never[];
102
+ };
103
+ searchable: {
104
+ type: PropType<boolean | null>;
105
+ default: boolean;
106
+ };
107
+ selected: {
108
+ type: PropType<string | null>;
109
+ default: string;
110
+ };
111
+ status: {
112
+ type: PropType<string | null>;
113
+ default: string;
114
+ };
115
+ text: {
116
+ type: PropType<string | null>;
117
+ default: string;
118
+ };
119
+ textEditable: {
120
+ type: PropType<boolean | null>;
121
+ default: boolean;
122
+ };
123
+ value: {
124
+ type: PropType<string | null>;
125
+ default: string;
126
+ };
127
+ }>> & Readonly<{
128
+ onClear?: ((event: CustomEvent<Readonly<Record<string, unknown>>>) => any) | undefined;
129
+ onText?: ((event: CustomEvent<{
130
+ readonly text: string;
131
+ }>) => any) | undefined;
132
+ "onUpdate:value"?: ((value: string) => any) | undefined;
133
+ onSave?: ((event: CustomEvent<Readonly<Record<string, unknown>>>) => any) | undefined;
134
+ "onUpdate:newTab"?: ((value: boolean) => any) | undefined;
135
+ "onUpdate:text"?: ((value: string) => any) | undefined;
136
+ onDestination?: ((event: CustomEvent<{
137
+ readonly value: string;
138
+ }>) => any) | undefined;
139
+ "onNew-tab"?: ((event: CustomEvent<{
140
+ readonly newTab: boolean;
141
+ }>) => any) | undefined;
142
+ onChoose?: ((event: CustomEvent<{
143
+ readonly id: string;
144
+ }>) => any) | undefined;
145
+ onDismiss?: ((event: CustomEvent<Readonly<Record<string, unknown>>>) => any) | undefined;
146
+ }>, {
147
+ value: string | null;
148
+ error: string | null;
149
+ mode: "url" | "target" | null;
150
+ text: string | null;
151
+ selected: string | null;
152
+ status: string | null;
153
+ placeholder: string | null;
154
+ existing: boolean | null;
155
+ results: readonly {
156
+ readonly id: string;
157
+ readonly label: string;
158
+ readonly detail?: string;
159
+ }[] | null;
160
+ searchable: boolean | null;
161
+ newTab: boolean | null;
162
+ textEditable: boolean | null;
163
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
164
+ declare const _default: typeof __VLS_export;
165
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { t as UiEditorLinkForm_default } from "./chunks/UiEditorLinkForm.js";
2
+ export { UiEditorLinkForm_default as default };