@threadlabs/looma 0.6.3 → 0.6.5
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-tree-item/ui-tree-item.html +68 -12
- package/components/ui-tree-item/ui-tree-item.js +9 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
- 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-button.css +1 -1
- package/styles/ui-callout.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-dialog.css +1 -1
- package/styles/ui-disclosure.css +1 -1
- package/styles/ui-editable.css +1 -1
- package/styles/ui-editor-insert-table-grid.css +1 -1
- package/styles/ui-editor-mention-menu.css +1 -1
- package/styles/ui-editor-slash-menu.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-input.css +1 -1
- package/styles/ui-menu-item.css +1 -1
- package/styles/ui-menu.css +1 -1
- package/styles/ui-popover.css +1 -1
- 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-search-result-row.css +1 -1
- package/styles/ui-search-shell.css +1 -1
- package/styles/ui-select.css +1 -1
- package/styles/ui-separator.css +1 -1
- package/styles/ui-sidebar.css +1 -1
- package/styles/ui-stack.css +1 -1
- package/styles/ui-switch.css +1 -1
- package/styles/ui-switcher.css +1 -1
- package/styles/ui-tabs.css +1 -1
- package/styles/ui-textarea.css +1 -1
- package/styles/ui-toast-region.css +1 -1
- package/styles/ui-tooltip.css +1 -1
- package/styles/ui-top-bar.css +1 -1
- package/styles/ui-tree-item.css +75 -12
- package/styles/ui-tree.css +1 -1
- package/vanilla/UiAffordanceScope.d.ts +1 -1
- package/vanilla/UiAffordanceScope.js +1 -1
- package/vanilla/UiAvatar.d.ts +1 -1
- package/vanilla/UiAvatar.js +1 -1
- package/vanilla/UiAvatarGroup.d.ts +1 -1
- package/vanilla/UiAvatarGroup.js +1 -1
- package/vanilla/UiBadge.d.ts +1 -1
- package/vanilla/UiBadge.js +1 -1
- package/vanilla/UiButton.d.ts +1 -1
- package/vanilla/UiButton.js +1 -1
- package/vanilla/UiCallout.d.ts +1 -1
- package/vanilla/UiCallout.js +1 -1
- package/vanilla/UiCheckbox.d.ts +1 -1
- package/vanilla/UiCheckbox.js +1 -1
- package/vanilla/UiCluster.d.ts +1 -1
- package/vanilla/UiCluster.js +1 -1
- package/vanilla/UiCombobox.d.ts +1 -1
- package/vanilla/UiCombobox.js +1 -1
- package/vanilla/UiContainer.d.ts +1 -1
- package/vanilla/UiContainer.js +1 -1
- package/vanilla/UiContextMenu.d.ts +1 -1
- package/vanilla/UiContextMenu.js +1 -1
- package/vanilla/UiDialog.d.ts +1 -1
- package/vanilla/UiDialog.js +1 -1
- package/vanilla/UiDisclosure.d.ts +1 -1
- package/vanilla/UiDisclosure.js +1 -1
- package/vanilla/UiEditable.d.ts +1 -1
- package/vanilla/UiEditable.js +1 -1
- package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
- package/vanilla/UiEditorInsertTableGrid.js +1 -1
- package/vanilla/UiEditorMentionMenu.d.ts +1 -1
- package/vanilla/UiEditorMentionMenu.js +1 -1
- package/vanilla/UiEditorSlashMenu.d.ts +1 -1
- package/vanilla/UiEditorSlashMenu.js +1 -1
- package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
- package/vanilla/UiEditorTableContextMenu.js +1 -1
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +1 -1
- package/vanilla/UiEditorTableToolbar.d.ts +1 -1
- package/vanilla/UiEditorTableToolbar.js +1 -1
- package/vanilla/UiEditorToolbar.d.ts +1 -1
- package/vanilla/UiEditorToolbar.js +1 -1
- package/vanilla/UiFloatingActionButton.d.ts +1 -1
- package/vanilla/UiFloatingActionButton.js +1 -1
- package/vanilla/UiFormField.d.ts +1 -1
- package/vanilla/UiFormField.js +1 -1
- package/vanilla/UiGrid.d.ts +1 -1
- package/vanilla/UiGrid.js +1 -1
- package/vanilla/UiIcon.d.ts +1 -1
- package/vanilla/UiIcon.js +1 -1
- package/vanilla/UiIconButton.d.ts +1 -1
- package/vanilla/UiIconButton.js +1 -1
- package/vanilla/UiInput.d.ts +1 -1
- package/vanilla/UiInput.js +1 -1
- package/vanilla/UiMenu.d.ts +1 -1
- package/vanilla/UiMenu.js +1 -1
- package/vanilla/UiMenuItem.d.ts +1 -1
- package/vanilla/UiMenuItem.js +1 -1
- package/vanilla/UiPopover.d.ts +1 -1
- package/vanilla/UiPopover.js +1 -1
- package/vanilla/UiRadio.d.ts +1 -1
- package/vanilla/UiRadio.js +1 -1
- package/vanilla/UiRadioGroup.d.ts +1 -1
- package/vanilla/UiRadioGroup.js +1 -1
- package/vanilla/UiReel.d.ts +1 -1
- package/vanilla/UiReel.js +1 -1
- package/vanilla/UiSearchResultRow.d.ts +1 -1
- package/vanilla/UiSearchResultRow.js +1 -1
- package/vanilla/UiSearchShell.d.ts +1 -1
- package/vanilla/UiSearchShell.js +1 -1
- package/vanilla/UiSelect.d.ts +1 -1
- package/vanilla/UiSelect.js +1 -1
- package/vanilla/UiSeparator.d.ts +1 -1
- package/vanilla/UiSeparator.js +1 -1
- package/vanilla/UiSidebar.d.ts +1 -1
- package/vanilla/UiSidebar.js +1 -1
- package/vanilla/UiStack.d.ts +1 -1
- package/vanilla/UiStack.js +1 -1
- package/vanilla/UiSwitch.d.ts +1 -1
- package/vanilla/UiSwitch.js +1 -1
- package/vanilla/UiSwitcher.d.ts +1 -1
- package/vanilla/UiSwitcher.js +1 -1
- package/vanilla/UiTabs.d.ts +1 -1
- package/vanilla/UiTabs.js +1 -1
- package/vanilla/UiTextarea.d.ts +1 -1
- package/vanilla/UiTextarea.js +1 -1
- package/vanilla/UiToastRegion.d.ts +1 -1
- package/vanilla/UiToastRegion.js +1 -1
- package/vanilla/UiTooltip.d.ts +1 -1
- package/vanilla/UiTooltip.js +1 -1
- package/vanilla/UiTopBar.d.ts +1 -1
- package/vanilla/UiTopBar.js +1 -1
- package/vanilla/UiTree.d.ts +1 -1
- package/vanilla/UiTree.js +1 -1
- package/vanilla/UiTreeItem.d.ts +1 -1
- package/vanilla/UiTreeItem.js +2 -2
- package/vue/UiAffordanceScope.vue +8 -84
- package/vue/UiAvatar.d.ts +1 -1
- package/vue/UiAvatar.vue +9 -106
- package/vue/UiAvatarGroup.vue +9 -96
- package/vue/UiBadge.vue +1 -1
- package/vue/UiButton.vue +1 -1
- package/vue/UiCallout.vue +1 -1
- package/vue/UiCheckbox.vue +22 -123
- package/vue/UiCluster.vue +1 -1
- package/vue/UiCombobox.d.ts +1 -1
- package/vue/UiCombobox.vue +224 -475
- package/vue/UiContainer.vue +1 -1
- package/vue/UiContextMenu.vue +34 -141
- package/vue/UiDialog.vue +25 -126
- package/vue/UiDisclosure.vue +26 -138
- package/vue/UiEditable.vue +46 -158
- package/vue/UiEditorInsertTableGrid.vue +19 -138
- package/vue/UiEditorMentionMenu.vue +17 -124
- package/vue/UiEditorSlashMenu.vue +17 -109
- package/vue/UiEditorTableContextMenu.vue +34 -122
- package/vue/UiEditorTableOverlay.vue +61 -167
- package/vue/UiEditorTableToolbar.vue +34 -142
- package/vue/UiEditorToolbar.vue +1 -1
- package/vue/UiFloatingActionButton.vue +1 -1
- package/vue/UiFormField.vue +7 -79
- package/vue/UiGrid.vue +1 -1
- package/vue/UiIcon.vue +8 -84
- package/vue/UiIconButton.vue +7 -79
- package/vue/UiInput.vue +7 -79
- package/vue/UiMenu.vue +42 -127
- package/vue/UiMenuItem.vue +1 -1
- package/vue/UiPopover.vue +25 -121
- package/vue/UiRadio.vue +22 -123
- package/vue/UiRadioGroup.d.ts +1 -1
- package/vue/UiRadioGroup.vue +32 -119
- package/vue/UiReel.vue +1 -1
- package/vue/UiSearchResultRow.vue +1 -1
- package/vue/UiSearchShell.vue +25 -121
- package/vue/UiSelect.vue +7 -79
- package/vue/UiSeparator.vue +1 -1
- package/vue/UiSidebar.vue +32 -133
- package/vue/UiStack.vue +1 -1
- package/vue/UiSwitch.vue +22 -123
- package/vue/UiSwitcher.vue +1 -1
- package/vue/UiTabs.vue +24 -128
- package/vue/UiTextarea.vue +7 -79
- package/vue/UiToastRegion.vue +37 -126
- package/vue/UiTooltip.vue +25 -124
- package/vue/UiTopBar.vue +1 -1
- package/vue/UiTree.vue +56 -137
- package/vue/UiTreeItem.vue +97 -153
- package/vue/chunks/UiAffordanceScope.js +9 -78
- package/vue/chunks/UiAvatar.js +13 -89
- package/vue/chunks/UiAvatarGroup.js +10 -80
- package/vue/chunks/UiBadge.js +1 -1
- package/vue/chunks/UiButton.js +1 -1
- package/vue/chunks/UiCallout.js +1 -1
- package/vue/chunks/UiCheckbox.js +17 -95
- package/vue/chunks/UiCluster.js +1 -1
- package/vue/chunks/UiCombobox.js +114 -325
- package/vue/chunks/UiContainer.js +1 -1
- package/vue/chunks/UiContextMenu.js +21 -113
- package/vue/chunks/UiDialog.js +20 -99
- package/vue/chunks/UiDisclosure.js +22 -112
- package/vue/chunks/UiEditable.js +32 -128
- package/vue/chunks/UiEditorInsertTableGrid.js +22 -116
- package/vue/chunks/UiEditorMentionMenu.js +18 -116
- package/vue/chunks/UiEditorSlashMenu.js +15 -101
- package/vue/chunks/UiEditorTableContextMenu.js +12 -91
- package/vue/chunks/UiEditorTableOverlay.js +29 -120
- package/vue/chunks/UiEditorTableToolbar.js +16 -111
- package/vue/chunks/UiEditorToolbar.js +1 -1
- package/vue/chunks/UiFloatingActionButton.js +1 -1
- package/vue/chunks/UiFormField.js +8 -73
- package/vue/chunks/UiGrid.js +1 -1
- package/vue/chunks/UiIcon.js +9 -78
- package/vue/chunks/UiIconButton.js +8 -73
- package/vue/chunks/UiInput.js +8 -73
- package/vue/chunks/UiMenu.js +25 -111
- package/vue/chunks/UiMenuItem.js +1 -1
- package/vue/chunks/UiPopover.js +18 -105
- package/vue/chunks/UiRadio.js +17 -95
- package/vue/chunks/UiRadioGroup.js +23 -105
- package/vue/chunks/UiReel.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +17 -94
- package/vue/chunks/UiSelect.js +8 -73
- package/vue/chunks/UiSeparator.js +1 -1
- package/vue/chunks/UiSidebar.js +23 -108
- package/vue/chunks/UiStack.js +1 -1
- package/vue/chunks/UiSwitch.js +17 -95
- package/vue/chunks/UiSwitcher.js +1 -1
- package/vue/chunks/UiTabs.js +22 -103
- package/vue/chunks/UiTextarea.js +8 -73
- package/vue/chunks/UiToastRegion.js +27 -112
- package/vue/chunks/UiTooltip.js +18 -106
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +31 -109
- package/vue/chunks/UiTreeItem.js +35 -118
- package/vue/chunks/host.js +101 -0
- package/vue/components.css +759 -707
- package/vue/host.ts +154 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.3 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import {
|
|
3
|
+
import { ref } from 'vue'
|
|
4
4
|
import * as controllerModule from '../components/ui-editor-table-toolbar/ui-editor-table-toolbar.js'
|
|
5
|
+
import { createDispatch, useComponentHost } from './host'
|
|
5
6
|
import UiIcon from './UiIcon.vue'
|
|
6
7
|
|
|
7
8
|
defineOptions({ inheritAttrs: false })
|
|
@@ -81,148 +82,39 @@ const sections = ref<
|
|
|
81
82
|
const hasOverflow = ref(false)
|
|
82
83
|
const overflowOpen = ref(false)
|
|
83
84
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|| (detail as Record<string, unknown>)['action'] === 'delete-column'
|
|
110
|
-
|| (detail as Record<string, unknown>)['action'] === 'delete-table')
|
|
111
|
-
&& Object.keys(detail as object).every((key) => ['action'].includes(key)),
|
|
112
|
-
}
|
|
113
|
-
if (detail !== undefined && checks[name] !== undefined && !checks[name]!(detail)) {
|
|
114
|
-
throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`)
|
|
115
|
-
}
|
|
116
|
-
const emitEvent = emit as (name: string, detail: unknown) => void
|
|
117
|
-
emitEvent(name, detail)
|
|
118
|
-
return root.value?.dispatchEvent(
|
|
119
|
-
new CustomEvent(name, { bubbles: true, composed: true, ...declared[name], detail }),
|
|
120
|
-
) ?? true
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
function read(name: string): unknown {
|
|
124
|
-
if (name === 'alignments') return alignments.value
|
|
125
|
-
if (name === 'structure') return structure.value
|
|
126
|
-
if (name === 'swatches') return swatches.value
|
|
127
|
-
if (name === 'sections') return sections.value
|
|
128
|
-
if (name === 'hasOverflow') return hasOverflow.value
|
|
129
|
-
if (name === 'overflowOpen') return overflowOpen.value
|
|
130
|
-
return (props as Record<string, unknown>)[name]
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function write(name: string, value: unknown): boolean {
|
|
134
|
-
if (name === 'alignments') {
|
|
135
|
-
alignments.value = value as never
|
|
136
|
-
return true
|
|
137
|
-
}
|
|
138
|
-
if (name === 'structure') {
|
|
139
|
-
structure.value = value as never
|
|
140
|
-
return true
|
|
141
|
-
}
|
|
142
|
-
if (name === 'swatches') {
|
|
143
|
-
swatches.value = value as never
|
|
144
|
-
return true
|
|
145
|
-
}
|
|
146
|
-
if (name === 'sections') {
|
|
147
|
-
sections.value = value as never
|
|
148
|
-
return true
|
|
149
|
-
}
|
|
150
|
-
if (name === 'hasOverflow') {
|
|
151
|
-
hasOverflow.value = value as never
|
|
152
|
-
return true
|
|
153
|
-
}
|
|
154
|
-
if (name === 'overflowOpen') {
|
|
155
|
-
overflowOpen.value = value as never
|
|
156
|
-
return true
|
|
157
|
-
}
|
|
158
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`)
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
const stops: Array<() => void> = []
|
|
162
|
-
const host = {
|
|
163
|
-
get element(): Element {
|
|
164
|
-
return root.value as Element
|
|
165
|
-
},
|
|
166
|
-
state: new Proxy({} as Record<string, unknown>, {
|
|
167
|
-
get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
|
|
168
|
-
set: (_target, name, value) => typeof name === 'string' && write(name, value),
|
|
169
|
-
}),
|
|
170
|
-
refs: {} as Readonly<Record<string, Element>>,
|
|
171
|
-
elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
|
|
172
|
-
get: (_target, name) => {
|
|
173
|
-
if (typeof name !== 'string' || root.value === null) return undefined
|
|
174
|
-
const form = root.value instanceof HTMLFormElement
|
|
175
|
-
? root.value
|
|
176
|
-
: root.value.querySelector('form')
|
|
177
|
-
return form?.elements.namedItem(name)
|
|
178
|
-
?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
|
|
179
|
-
},
|
|
180
|
-
}),
|
|
181
|
-
signal<T>(initialValue: T) {
|
|
182
|
-
const value = shallowRef(initialValue)
|
|
183
|
-
return {
|
|
184
|
-
get: (): T => value.value,
|
|
185
|
-
set: (next: T): void => {
|
|
186
|
-
if (!Object.is(value.value, next)) value.value = next
|
|
187
|
-
},
|
|
188
|
-
update: (next: (current: T) => T): void => {
|
|
189
|
-
const updated = next(value.value)
|
|
190
|
-
if (!Object.is(value.value, updated)) value.value = updated
|
|
191
|
-
},
|
|
192
|
-
}
|
|
85
|
+
const isActionDetail = (detail: unknown): boolean =>
|
|
86
|
+
detail !== null && typeof detail === 'object' && !Array.isArray(detail)
|
|
87
|
+
&& ((detail as Record<string, unknown>)['action'] === 'align-left'
|
|
88
|
+
|| (detail as Record<string, unknown>)['action'] === 'align-center'
|
|
89
|
+
|| (detail as Record<string, unknown>)['action'] === 'align-right'
|
|
90
|
+
|| (detail as Record<string, unknown>)['action'] === 'background-none'
|
|
91
|
+
|| (detail as Record<string, unknown>)['action'] === 'background-gray'
|
|
92
|
+
|| (detail as Record<string, unknown>)['action'] === 'background-yellow'
|
|
93
|
+
|| (detail as Record<string, unknown>)['action'] === 'background-blue'
|
|
94
|
+
|| (detail as Record<string, unknown>)['action'] === 'background-green'
|
|
95
|
+
|| (detail as Record<string, unknown>)['action'] === 'background-red'
|
|
96
|
+
|| (detail as Record<string, unknown>)['action'] === 'add-row-before'
|
|
97
|
+
|| (detail as Record<string, unknown>)['action'] === 'add-row-after'
|
|
98
|
+
|| (detail as Record<string, unknown>)['action'] === 'add-column-before'
|
|
99
|
+
|| (detail as Record<string, unknown>)['action'] === 'add-column-after'
|
|
100
|
+
|| (detail as Record<string, unknown>)['action'] === 'clear-cells'
|
|
101
|
+
|| (detail as Record<string, unknown>)['action'] === 'merge-cells'
|
|
102
|
+
|| (detail as Record<string, unknown>)['action'] === 'split-cell'
|
|
103
|
+
|| (detail as Record<string, unknown>)['action'] === 'delete-row'
|
|
104
|
+
|| (detail as Record<string, unknown>)['action'] === 'delete-column'
|
|
105
|
+
|| (detail as Record<string, unknown>)['action'] === 'delete-table')
|
|
106
|
+
&& Object.keys(detail as object).every((key) => ['action'].includes(key))
|
|
107
|
+
const dispatch = createDispatch(root, emit as (name: string, detail: unknown) => void, {
|
|
108
|
+
checks: {
|
|
109
|
+
action: isActionDetail,
|
|
193
110
|
},
|
|
194
|
-
computed<T>(compute: () => T) {
|
|
195
|
-
const value = computed(compute)
|
|
196
|
-
return { get: (): T => value.value }
|
|
197
|
-
},
|
|
198
|
-
effect(run: () => void | (() => void)): () => void {
|
|
199
|
-
const stop = watchEffect((onCleanup) => {
|
|
200
|
-
const cleanup = run()
|
|
201
|
-
if (typeof cleanup === 'function') onCleanup(cleanup)
|
|
202
|
-
}, { flush: 'post' })
|
|
203
|
-
stops.push(stop)
|
|
204
|
-
return stop
|
|
205
|
-
},
|
|
206
|
-
on(event: string, listener: EventListener): () => void {
|
|
207
|
-
const element = root.value
|
|
208
|
-
element?.addEventListener(event, listener)
|
|
209
|
-
const off = (): void => element?.removeEventListener(event, listener)
|
|
210
|
-
stops.push(off)
|
|
211
|
-
return off
|
|
212
|
-
},
|
|
213
|
-
dispatch,
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
let cleanup: void | (() => void)
|
|
217
|
-
let ready: Promise<void> | undefined
|
|
218
|
-
onMounted(() => {
|
|
219
|
-
ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
|
|
220
|
-
cleanup = result
|
|
221
|
-
})
|
|
222
111
|
})
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
112
|
+
|
|
113
|
+
useComponentHost(controllerModule.default, {
|
|
114
|
+
root,
|
|
115
|
+
dispatch,
|
|
116
|
+
props,
|
|
117
|
+
state: { alignments, structure, swatches, sections, hasOverflow, overflowOpen },
|
|
226
118
|
})
|
|
227
119
|
</script>
|
|
228
120
|
|
package/vue/UiEditorToolbar.vue
CHANGED
package/vue/UiFormField.vue
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.3 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import {
|
|
3
|
+
import { ref } from 'vue'
|
|
4
4
|
import * as controllerModule from '../components/ui-form-field/ui-form-field.js'
|
|
5
|
+
import { createDispatch, useComponentHost } from './host'
|
|
5
6
|
|
|
6
7
|
defineOptions({ inheritAttrs: false })
|
|
7
8
|
|
|
@@ -20,85 +21,12 @@ const props = withDefaults(
|
|
|
20
21
|
|
|
21
22
|
const root = ref<HTMLElement | null>(null)
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
function dispatch(name: string, detail?: unknown): boolean {
|
|
25
|
-
return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }))
|
|
26
|
-
?? true
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function read(name: string): unknown {
|
|
30
|
-
return (props as Record<string, unknown>)[name]
|
|
31
|
-
}
|
|
24
|
+
const dispatch = createDispatch(root)
|
|
32
25
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const stops: Array<() => void> = []
|
|
38
|
-
const host = {
|
|
39
|
-
get element(): Element {
|
|
40
|
-
return root.value as Element
|
|
41
|
-
},
|
|
42
|
-
state: new Proxy({} as Record<string, unknown>, {
|
|
43
|
-
get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
|
|
44
|
-
set: (_target, name, value) => typeof name === 'string' && write(name, value),
|
|
45
|
-
}),
|
|
46
|
-
refs: {} as Readonly<Record<string, Element>>,
|
|
47
|
-
elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
|
|
48
|
-
get: (_target, name) => {
|
|
49
|
-
if (typeof name !== 'string' || root.value === null) return undefined
|
|
50
|
-
const form = root.value instanceof HTMLFormElement
|
|
51
|
-
? root.value
|
|
52
|
-
: root.value.querySelector('form')
|
|
53
|
-
return form?.elements.namedItem(name)
|
|
54
|
-
?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
|
|
55
|
-
},
|
|
56
|
-
}),
|
|
57
|
-
signal<T>(initialValue: T) {
|
|
58
|
-
const value = shallowRef(initialValue)
|
|
59
|
-
return {
|
|
60
|
-
get: (): T => value.value,
|
|
61
|
-
set: (next: T): void => {
|
|
62
|
-
if (!Object.is(value.value, next)) value.value = next
|
|
63
|
-
},
|
|
64
|
-
update: (next: (current: T) => T): void => {
|
|
65
|
-
const updated = next(value.value)
|
|
66
|
-
if (!Object.is(value.value, updated)) value.value = updated
|
|
67
|
-
},
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
computed<T>(compute: () => T) {
|
|
71
|
-
const value = computed(compute)
|
|
72
|
-
return { get: (): T => value.value }
|
|
73
|
-
},
|
|
74
|
-
effect(run: () => void | (() => void)): () => void {
|
|
75
|
-
const stop = watchEffect((onCleanup) => {
|
|
76
|
-
const cleanup = run()
|
|
77
|
-
if (typeof cleanup === 'function') onCleanup(cleanup)
|
|
78
|
-
}, { flush: 'post' })
|
|
79
|
-
stops.push(stop)
|
|
80
|
-
return stop
|
|
81
|
-
},
|
|
82
|
-
on(event: string, listener: EventListener): () => void {
|
|
83
|
-
const element = root.value
|
|
84
|
-
element?.addEventListener(event, listener)
|
|
85
|
-
const off = (): void => element?.removeEventListener(event, listener)
|
|
86
|
-
stops.push(off)
|
|
87
|
-
return off
|
|
88
|
-
},
|
|
26
|
+
useComponentHost(controllerModule.default, {
|
|
27
|
+
root,
|
|
89
28
|
dispatch,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
let cleanup: void | (() => void)
|
|
93
|
-
let ready: Promise<void> | undefined
|
|
94
|
-
onMounted(() => {
|
|
95
|
-
ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
|
|
96
|
-
cleanup = result
|
|
97
|
-
})
|
|
98
|
-
})
|
|
99
|
-
onBeforeUnmount(() => {
|
|
100
|
-
for (const stop of stops.splice(0)) stop()
|
|
101
|
-
if (typeof cleanup === 'function') cleanup()
|
|
29
|
+
props,
|
|
102
30
|
})
|
|
103
31
|
</script>
|
|
104
32
|
|
package/vue/UiGrid.vue
CHANGED
package/vue/UiIcon.vue
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.3 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import {
|
|
3
|
+
import { ref } from 'vue'
|
|
4
4
|
import * as controllerModule from '../components/ui-icon/ui-icon.js'
|
|
5
|
+
import { createDispatch, useComponentHost } from './host'
|
|
5
6
|
|
|
6
7
|
defineOptions({ inheritAttrs: false })
|
|
7
8
|
|
|
@@ -30,90 +31,13 @@ const shapes = ref<
|
|
|
30
31
|
}[]
|
|
31
32
|
>([])
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
function dispatch(name: string, detail?: unknown): boolean {
|
|
35
|
-
return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }))
|
|
36
|
-
?? true
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function read(name: string): unknown {
|
|
40
|
-
if (name === 'shapes') return shapes.value
|
|
41
|
-
return (props as Record<string, unknown>)[name]
|
|
42
|
-
}
|
|
34
|
+
const dispatch = createDispatch(root)
|
|
43
35
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
shapes.value = value as never
|
|
47
|
-
return true
|
|
48
|
-
}
|
|
49
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const stops: Array<() => void> = []
|
|
53
|
-
const host = {
|
|
54
|
-
get element(): Element {
|
|
55
|
-
return root.value as Element
|
|
56
|
-
},
|
|
57
|
-
state: new Proxy({} as Record<string, unknown>, {
|
|
58
|
-
get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
|
|
59
|
-
set: (_target, name, value) => typeof name === 'string' && write(name, value),
|
|
60
|
-
}),
|
|
61
|
-
refs: {} as Readonly<Record<string, Element>>,
|
|
62
|
-
elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
|
|
63
|
-
get: (_target, name) => {
|
|
64
|
-
if (typeof name !== 'string' || root.value === null) return undefined
|
|
65
|
-
const form = root.value instanceof HTMLFormElement
|
|
66
|
-
? root.value
|
|
67
|
-
: root.value.querySelector('form')
|
|
68
|
-
return form?.elements.namedItem(name)
|
|
69
|
-
?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
|
|
70
|
-
},
|
|
71
|
-
}),
|
|
72
|
-
signal<T>(initialValue: T) {
|
|
73
|
-
const value = shallowRef(initialValue)
|
|
74
|
-
return {
|
|
75
|
-
get: (): T => value.value,
|
|
76
|
-
set: (next: T): void => {
|
|
77
|
-
if (!Object.is(value.value, next)) value.value = next
|
|
78
|
-
},
|
|
79
|
-
update: (next: (current: T) => T): void => {
|
|
80
|
-
const updated = next(value.value)
|
|
81
|
-
if (!Object.is(value.value, updated)) value.value = updated
|
|
82
|
-
},
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
computed<T>(compute: () => T) {
|
|
86
|
-
const value = computed(compute)
|
|
87
|
-
return { get: (): T => value.value }
|
|
88
|
-
},
|
|
89
|
-
effect(run: () => void | (() => void)): () => void {
|
|
90
|
-
const stop = watchEffect((onCleanup) => {
|
|
91
|
-
const cleanup = run()
|
|
92
|
-
if (typeof cleanup === 'function') onCleanup(cleanup)
|
|
93
|
-
}, { flush: 'post' })
|
|
94
|
-
stops.push(stop)
|
|
95
|
-
return stop
|
|
96
|
-
},
|
|
97
|
-
on(event: string, listener: EventListener): () => void {
|
|
98
|
-
const element = root.value
|
|
99
|
-
element?.addEventListener(event, listener)
|
|
100
|
-
const off = (): void => element?.removeEventListener(event, listener)
|
|
101
|
-
stops.push(off)
|
|
102
|
-
return off
|
|
103
|
-
},
|
|
36
|
+
useComponentHost(controllerModule.default, {
|
|
37
|
+
root,
|
|
104
38
|
dispatch,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
let cleanup: void | (() => void)
|
|
108
|
-
let ready: Promise<void> | undefined
|
|
109
|
-
onMounted(() => {
|
|
110
|
-
ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
|
|
111
|
-
cleanup = result
|
|
112
|
-
})
|
|
113
|
-
})
|
|
114
|
-
onBeforeUnmount(() => {
|
|
115
|
-
for (const stop of stops.splice(0)) stop()
|
|
116
|
-
if (typeof cleanup === 'function') cleanup()
|
|
39
|
+
props,
|
|
40
|
+
state: { shapes },
|
|
117
41
|
})
|
|
118
42
|
</script>
|
|
119
43
|
|
package/vue/UiIconButton.vue
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.3 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import { computed,
|
|
3
|
+
import { computed, ref } from 'vue'
|
|
4
4
|
import * as controllerModule from '../components/ui-icon-button/ui-icon-button.js'
|
|
5
|
+
import { createDispatch, useComponentHost } from './host'
|
|
5
6
|
|
|
6
7
|
defineOptions({ inheritAttrs: false })
|
|
7
8
|
|
|
@@ -35,85 +36,12 @@ const hostState = computed(() =>
|
|
|
35
36
|
].filter(Boolean).join(' ')
|
|
36
37
|
)
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
function dispatch(name: string, detail?: unknown): boolean {
|
|
40
|
-
return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }))
|
|
41
|
-
?? true
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function read(name: string): unknown {
|
|
45
|
-
return (props as Record<string, unknown>)[name]
|
|
46
|
-
}
|
|
39
|
+
const dispatch = createDispatch(root)
|
|
47
40
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const stops: Array<() => void> = []
|
|
53
|
-
const host = {
|
|
54
|
-
get element(): Element {
|
|
55
|
-
return root.value as Element
|
|
56
|
-
},
|
|
57
|
-
state: new Proxy({} as Record<string, unknown>, {
|
|
58
|
-
get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
|
|
59
|
-
set: (_target, name, value) => typeof name === 'string' && write(name, value),
|
|
60
|
-
}),
|
|
61
|
-
refs: {} as Readonly<Record<string, Element>>,
|
|
62
|
-
elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
|
|
63
|
-
get: (_target, name) => {
|
|
64
|
-
if (typeof name !== 'string' || root.value === null) return undefined
|
|
65
|
-
const form = root.value instanceof HTMLFormElement
|
|
66
|
-
? root.value
|
|
67
|
-
: root.value.querySelector('form')
|
|
68
|
-
return form?.elements.namedItem(name)
|
|
69
|
-
?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
|
|
70
|
-
},
|
|
71
|
-
}),
|
|
72
|
-
signal<T>(initialValue: T) {
|
|
73
|
-
const value = shallowRef(initialValue)
|
|
74
|
-
return {
|
|
75
|
-
get: (): T => value.value,
|
|
76
|
-
set: (next: T): void => {
|
|
77
|
-
if (!Object.is(value.value, next)) value.value = next
|
|
78
|
-
},
|
|
79
|
-
update: (next: (current: T) => T): void => {
|
|
80
|
-
const updated = next(value.value)
|
|
81
|
-
if (!Object.is(value.value, updated)) value.value = updated
|
|
82
|
-
},
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
computed<T>(compute: () => T) {
|
|
86
|
-
const value = computed(compute)
|
|
87
|
-
return { get: (): T => value.value }
|
|
88
|
-
},
|
|
89
|
-
effect(run: () => void | (() => void)): () => void {
|
|
90
|
-
const stop = watchEffect((onCleanup) => {
|
|
91
|
-
const cleanup = run()
|
|
92
|
-
if (typeof cleanup === 'function') onCleanup(cleanup)
|
|
93
|
-
}, { flush: 'post' })
|
|
94
|
-
stops.push(stop)
|
|
95
|
-
return stop
|
|
96
|
-
},
|
|
97
|
-
on(event: string, listener: EventListener): () => void {
|
|
98
|
-
const element = root.value
|
|
99
|
-
element?.addEventListener(event, listener)
|
|
100
|
-
const off = (): void => element?.removeEventListener(event, listener)
|
|
101
|
-
stops.push(off)
|
|
102
|
-
return off
|
|
103
|
-
},
|
|
41
|
+
useComponentHost(controllerModule.default, {
|
|
42
|
+
root,
|
|
104
43
|
dispatch,
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
let cleanup: void | (() => void)
|
|
108
|
-
let ready: Promise<void> | undefined
|
|
109
|
-
onMounted(() => {
|
|
110
|
-
ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
|
|
111
|
-
cleanup = result
|
|
112
|
-
})
|
|
113
|
-
})
|
|
114
|
-
onBeforeUnmount(() => {
|
|
115
|
-
for (const stop of stops.splice(0)) stop()
|
|
116
|
-
if (typeof cleanup === 'function') cleanup()
|
|
44
|
+
props,
|
|
117
45
|
})
|
|
118
46
|
</script>
|
|
119
47
|
|
package/vue/UiInput.vue
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.3 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
|
-
import { computed,
|
|
3
|
+
import { computed, ref } from 'vue'
|
|
4
4
|
import * as controllerModule from '../components/ui-input/ui-input.js'
|
|
5
|
+
import { createDispatch, useComponentHost } from './host'
|
|
5
6
|
|
|
6
7
|
defineOptions({ inheritAttrs: false })
|
|
7
8
|
|
|
@@ -31,85 +32,12 @@ const model = computed({
|
|
|
31
32
|
|
|
32
33
|
const root = ref<HTMLElement | null>(null)
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
function dispatch(name: string, detail?: unknown): boolean {
|
|
36
|
-
return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }))
|
|
37
|
-
?? true
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function read(name: string): unknown {
|
|
41
|
-
return (props as Record<string, unknown>)[name]
|
|
42
|
-
}
|
|
35
|
+
const dispatch = createDispatch(root)
|
|
43
36
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const stops: Array<() => void> = []
|
|
49
|
-
const host = {
|
|
50
|
-
get element(): Element {
|
|
51
|
-
return root.value as Element
|
|
52
|
-
},
|
|
53
|
-
state: new Proxy({} as Record<string, unknown>, {
|
|
54
|
-
get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
|
|
55
|
-
set: (_target, name, value) => typeof name === 'string' && write(name, value),
|
|
56
|
-
}),
|
|
57
|
-
refs: {} as Readonly<Record<string, Element>>,
|
|
58
|
-
elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
|
|
59
|
-
get: (_target, name) => {
|
|
60
|
-
if (typeof name !== 'string' || root.value === null) return undefined
|
|
61
|
-
const form = root.value instanceof HTMLFormElement
|
|
62
|
-
? root.value
|
|
63
|
-
: root.value.querySelector('form')
|
|
64
|
-
return form?.elements.namedItem(name)
|
|
65
|
-
?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
|
|
66
|
-
},
|
|
67
|
-
}),
|
|
68
|
-
signal<T>(initialValue: T) {
|
|
69
|
-
const value = shallowRef(initialValue)
|
|
70
|
-
return {
|
|
71
|
-
get: (): T => value.value,
|
|
72
|
-
set: (next: T): void => {
|
|
73
|
-
if (!Object.is(value.value, next)) value.value = next
|
|
74
|
-
},
|
|
75
|
-
update: (next: (current: T) => T): void => {
|
|
76
|
-
const updated = next(value.value)
|
|
77
|
-
if (!Object.is(value.value, updated)) value.value = updated
|
|
78
|
-
},
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
computed<T>(compute: () => T) {
|
|
82
|
-
const value = computed(compute)
|
|
83
|
-
return { get: (): T => value.value }
|
|
84
|
-
},
|
|
85
|
-
effect(run: () => void | (() => void)): () => void {
|
|
86
|
-
const stop = watchEffect((onCleanup) => {
|
|
87
|
-
const cleanup = run()
|
|
88
|
-
if (typeof cleanup === 'function') onCleanup(cleanup)
|
|
89
|
-
}, { flush: 'post' })
|
|
90
|
-
stops.push(stop)
|
|
91
|
-
return stop
|
|
92
|
-
},
|
|
93
|
-
on(event: string, listener: EventListener): () => void {
|
|
94
|
-
const element = root.value
|
|
95
|
-
element?.addEventListener(event, listener)
|
|
96
|
-
const off = (): void => element?.removeEventListener(event, listener)
|
|
97
|
-
stops.push(off)
|
|
98
|
-
return off
|
|
99
|
-
},
|
|
37
|
+
useComponentHost(controllerModule.default, {
|
|
38
|
+
root,
|
|
100
39
|
dispatch,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
let cleanup: void | (() => void)
|
|
104
|
-
let ready: Promise<void> | undefined
|
|
105
|
-
onMounted(() => {
|
|
106
|
-
ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
|
|
107
|
-
cleanup = result
|
|
108
|
-
})
|
|
109
|
-
})
|
|
110
|
-
onBeforeUnmount(() => {
|
|
111
|
-
for (const stop of stops.splice(0)) stop()
|
|
112
|
-
if (typeof cleanup === 'function') cleanup()
|
|
40
|
+
props,
|
|
113
41
|
})
|
|
114
42
|
</script>
|
|
115
43
|
|