@threadlabs/looma 0.6.4 → 0.7.0
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-button/ui-button.html +103 -81
- package/components/ui-checkbox/ui-checkbox.html +4 -1
- package/components/ui-combobox/ui-combobox.html +40 -3
- package/components/ui-combobox/ui-combobox.js +27 -5
- package/components/ui-select/ui-select.html +3 -5
- 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 +112 -80
- package/styles/ui-callout.css +1 -1
- package/styles/ui-checkbox.css +5 -2
- package/styles/ui-cluster.css +1 -1
- package/styles/ui-combobox.css +38 -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 +4 -5
- 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 +1 -1
- package/styles/ui-tree.css +1 -1
- package/theme-dark.css +6 -30
- package/theme-high-contrast.css +30 -20
- package/theme-light.css +2 -16
- package/tokens.css +33 -24
- 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 +2 -2
- package/vanilla/UiButton.js +2 -2
- 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 +2 -2
- 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 -2
- package/vanilla/UiSelect.js +4 -7
- 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 +1 -1
- 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.d.ts +2 -2
- package/vue/UiButton.vue +104 -97
- package/vue/UiCallout.vue +1 -1
- package/vue/UiCheckbox.vue +26 -124
- package/vue/UiCluster.vue +1 -1
- package/vue/UiCombobox.d.ts +1 -1
- package/vue/UiCombobox.vue +270 -479
- 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.d.ts +0 -2
- package/vue/UiSelect.vue +9 -85
- 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 +28 -144
- 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 +3 -3
- 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 +115 -326
- 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 -79
- 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 +29 -119
- package/vue/chunks/host.js +101 -0
- package/vue/components.css +844 -797
- package/vue/host.ts +154 -0
package/vue/UiTreeItem.vue
CHANGED
|
@@ -1,15 +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 {
|
|
4
|
-
computed,
|
|
5
|
-
onBeforeUnmount,
|
|
6
|
-
onMounted,
|
|
7
|
-
ref,
|
|
8
|
-
shallowRef,
|
|
9
|
-
useTemplateRef,
|
|
10
|
-
watchEffect,
|
|
11
|
-
} from 'vue'
|
|
3
|
+
import { computed, ref, useTemplateRef } from 'vue'
|
|
12
4
|
import * as controllerModule from '../components/ui-tree-item/ui-tree-item.js'
|
|
5
|
+
import { createDispatch, useComponentHost } from './host'
|
|
13
6
|
|
|
14
7
|
defineOptions({ inheritAttrs: false })
|
|
15
8
|
|
|
@@ -71,143 +64,34 @@ const hostState = computed(() =>
|
|
|
71
64
|
].filter(Boolean).join(' ')
|
|
72
65
|
)
|
|
73
66
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|| (detail as Record<string, unknown>)['trigger'] === 'programmatic')
|
|
87
|
-
&& Object.keys(detail as object).every((key) => ['id', 'expanded', 'trigger'].includes(key)),
|
|
88
|
-
}
|
|
89
|
-
if (detail !== undefined && checks[name] !== undefined && !checks[name]!(detail)) {
|
|
90
|
-
throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`)
|
|
91
|
-
}
|
|
92
|
-
const emitEvent = emit as (name: string, detail: unknown) => void
|
|
93
|
-
emitEvent(name, detail)
|
|
94
|
-
if (detail !== null && typeof detail === 'object' && 'expanded' in detail) {
|
|
95
|
-
emitEvent('update:expanded', (detail as Record<string, unknown>)['expanded'])
|
|
96
|
-
}
|
|
97
|
-
return root.value?.dispatchEvent(
|
|
98
|
-
new CustomEvent(name, { bubbles: true, composed: true, ...declared[name], detail }),
|
|
99
|
-
) ?? true
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function read(name: string): unknown {
|
|
103
|
-
if (name === 'internalExpanded') return internalExpanded.value
|
|
104
|
-
if (name === 'structuralLevel') return structuralLevel.value
|
|
105
|
-
if (name === 'tabStop') return tabStop.value
|
|
106
|
-
if (name === 'isContainer') return isContainer.value
|
|
107
|
-
return (props as Record<string, unknown>)[name]
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function write(name: string, value: unknown): boolean {
|
|
111
|
-
if (name === 'internalExpanded') {
|
|
112
|
-
internalExpanded.value = value as never
|
|
113
|
-
return true
|
|
114
|
-
}
|
|
115
|
-
if (name === 'structuralLevel') {
|
|
116
|
-
structuralLevel.value = value as never
|
|
117
|
-
return true
|
|
118
|
-
}
|
|
119
|
-
if (name === 'tabStop') {
|
|
120
|
-
tabStop.value = value as never
|
|
121
|
-
return true
|
|
122
|
-
}
|
|
123
|
-
if (name === 'isContainer') {
|
|
124
|
-
isContainer.value = value as never
|
|
125
|
-
return true
|
|
126
|
-
}
|
|
127
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`)
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
const stops: Array<() => void> = []
|
|
131
|
-
const host = {
|
|
132
|
-
get element(): Element {
|
|
133
|
-
return root.value as Element
|
|
67
|
+
const isExpandDetail = (detail: unknown): boolean =>
|
|
68
|
+
detail !== null && typeof detail === 'object' && !Array.isArray(detail)
|
|
69
|
+
&& typeof (detail as Record<string, unknown>)['id'] === 'string'
|
|
70
|
+
&& typeof (detail as Record<string, unknown>)['expanded'] === 'boolean'
|
|
71
|
+
&& ((detail as Record<string, unknown>)['trigger'] === 'keyboard'
|
|
72
|
+
|| (detail as Record<string, unknown>)['trigger'] === 'pointer'
|
|
73
|
+
|| (detail as Record<string, unknown>)['trigger'] === 'programmatic')
|
|
74
|
+
&& Object.keys(detail as object).every((key) => ['id', 'expanded', 'trigger'].includes(key))
|
|
75
|
+
const dispatch = createDispatch(root, emit as (name: string, detail: unknown) => void, {
|
|
76
|
+
declared: { expand: { bubbles: false, composed: true, cancelable: false } },
|
|
77
|
+
checks: {
|
|
78
|
+
expand: isExpandDetail,
|
|
134
79
|
},
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
80
|
+
modeled: ['expanded'],
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
useComponentHost(controllerModule.default, {
|
|
84
|
+
root,
|
|
85
|
+
dispatch,
|
|
86
|
+
props,
|
|
139
87
|
refs: {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
},
|
|
146
|
-
get disclosure(): Element {
|
|
147
|
-
return disclosureElement.value as Element
|
|
148
|
-
},
|
|
149
|
-
get actions(): Element {
|
|
150
|
-
return actionsElement.value as Element
|
|
151
|
-
},
|
|
152
|
-
get children(): Element {
|
|
153
|
-
return childrenElement.value as Element
|
|
154
|
-
},
|
|
155
|
-
} as Readonly<Record<string, Element>>,
|
|
156
|
-
elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
|
|
157
|
-
get: (_target, name) => {
|
|
158
|
-
if (typeof name !== 'string' || root.value === null) return undefined
|
|
159
|
-
const form = root.value instanceof HTMLFormElement
|
|
160
|
-
? root.value
|
|
161
|
-
: root.value.querySelector('form')
|
|
162
|
-
return form?.elements.namedItem(name)
|
|
163
|
-
?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
|
|
164
|
-
},
|
|
165
|
-
}),
|
|
166
|
-
signal<T>(initialValue: T) {
|
|
167
|
-
const value = shallowRef(initialValue)
|
|
168
|
-
return {
|
|
169
|
-
get: (): T => value.value,
|
|
170
|
-
set: (next: T): void => {
|
|
171
|
-
if (!Object.is(value.value, next)) value.value = next
|
|
172
|
-
},
|
|
173
|
-
update: (next: (current: T) => T): void => {
|
|
174
|
-
const updated = next(value.value)
|
|
175
|
-
if (!Object.is(value.value, updated)) value.value = updated
|
|
176
|
-
},
|
|
177
|
-
}
|
|
88
|
+
row: rowElement,
|
|
89
|
+
dragHandle: dragHandleElement,
|
|
90
|
+
disclosure: disclosureElement,
|
|
91
|
+
actions: actionsElement,
|
|
92
|
+
children: childrenElement,
|
|
178
93
|
},
|
|
179
|
-
|
|
180
|
-
const value = computed(compute)
|
|
181
|
-
return { get: (): T => value.value }
|
|
182
|
-
},
|
|
183
|
-
effect(run: () => void | (() => void)): () => void {
|
|
184
|
-
const stop = watchEffect((onCleanup) => {
|
|
185
|
-
const cleanup = run()
|
|
186
|
-
if (typeof cleanup === 'function') onCleanup(cleanup)
|
|
187
|
-
}, { flush: 'post' })
|
|
188
|
-
stops.push(stop)
|
|
189
|
-
return stop
|
|
190
|
-
},
|
|
191
|
-
on(event: string, listener: EventListener): () => void {
|
|
192
|
-
const element = root.value
|
|
193
|
-
element?.addEventListener(event, listener)
|
|
194
|
-
const off = (): void => element?.removeEventListener(event, listener)
|
|
195
|
-
stops.push(off)
|
|
196
|
-
return off
|
|
197
|
-
},
|
|
198
|
-
dispatch,
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
let cleanup: void | (() => void)
|
|
202
|
-
let ready: Promise<void> | undefined
|
|
203
|
-
onMounted(() => {
|
|
204
|
-
ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
|
|
205
|
-
cleanup = result
|
|
206
|
-
})
|
|
207
|
-
})
|
|
208
|
-
onBeforeUnmount(() => {
|
|
209
|
-
for (const stop of stops.splice(0)) stop()
|
|
210
|
-
if (typeof cleanup === 'function') cleanup()
|
|
94
|
+
state: { internalExpanded, structuralLevel, tabStop, isContainer },
|
|
211
95
|
})
|
|
212
96
|
</script>
|
|
213
97
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { n as useComponentHost, t as createDispatch } from "./host.js";
|
|
1
2
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import { computed, createElementBlock, defineComponent, mergeProps,
|
|
3
|
+
import { computed, createElementBlock, defineComponent, mergeProps, openBlock, ref, renderSlot } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-affordance-scope/ui-affordance-scope.js";
|
|
4
5
|
//#region .build/vue/UiAffordanceScope.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["data-ui-affordance-scope-state"];
|
|
@@ -15,82 +16,12 @@ var UiAffordanceScope_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
|
|
|
15
16
|
const engaged = ref(false);
|
|
16
17
|
/** The values the styles' :host-state() rules test. */
|
|
17
18
|
const hostState = computed(() => [engaged.value && "engaged"].filter(Boolean).join(" "));
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
})) ?? true;
|
|
25
|
-
}
|
|
26
|
-
function read(name) {
|
|
27
|
-
if (name === "engaged") return engaged.value;
|
|
28
|
-
return props[name];
|
|
29
|
-
}
|
|
30
|
-
function write(name, value) {
|
|
31
|
-
if (name === "engaged") {
|
|
32
|
-
engaged.value = value;
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
36
|
-
}
|
|
37
|
-
const stops = [];
|
|
38
|
-
const host = {
|
|
39
|
-
get element() {
|
|
40
|
-
return root.value;
|
|
41
|
-
},
|
|
42
|
-
state: new Proxy({}, {
|
|
43
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
44
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
45
|
-
}),
|
|
46
|
-
refs: {},
|
|
47
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
48
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
49
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
50
|
-
} }),
|
|
51
|
-
signal(initialValue) {
|
|
52
|
-
const value = shallowRef(initialValue);
|
|
53
|
-
return {
|
|
54
|
-
get: () => value.value,
|
|
55
|
-
set: (next) => {
|
|
56
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
57
|
-
},
|
|
58
|
-
update: (next) => {
|
|
59
|
-
const updated = next(value.value);
|
|
60
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
},
|
|
64
|
-
computed(compute) {
|
|
65
|
-
const value = computed(compute);
|
|
66
|
-
return { get: () => value.value };
|
|
67
|
-
},
|
|
68
|
-
effect(run) {
|
|
69
|
-
const stop = watchEffect((onCleanup) => {
|
|
70
|
-
const cleanup = run();
|
|
71
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
72
|
-
}, { flush: "post" });
|
|
73
|
-
stops.push(stop);
|
|
74
|
-
return stop;
|
|
75
|
-
},
|
|
76
|
-
on(event, listener) {
|
|
77
|
-
const element = root.value;
|
|
78
|
-
element?.addEventListener(event, listener);
|
|
79
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
80
|
-
stops.push(off);
|
|
81
|
-
return off;
|
|
82
|
-
},
|
|
83
|
-
dispatch
|
|
84
|
-
};
|
|
85
|
-
let cleanup;
|
|
86
|
-
onMounted(() => {
|
|
87
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
88
|
-
cleanup = result;
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
onBeforeUnmount(() => {
|
|
92
|
-
for (const stop of stops.splice(0)) stop();
|
|
93
|
-
if (typeof cleanup === "function") cleanup();
|
|
19
|
+
const dispatch = createDispatch(root);
|
|
20
|
+
useComponentHost(controllerModule.default, {
|
|
21
|
+
root,
|
|
22
|
+
dispatch,
|
|
23
|
+
props,
|
|
24
|
+
state: { engaged }
|
|
94
25
|
});
|
|
95
26
|
return (_ctx, _cache) => {
|
|
96
27
|
return openBlock(), createElementBlock("span", mergeProps({ "data-component": "ui-affordance-scope" }, _ctx.$attrs, {
|
|
@@ -100,6 +31,6 @@ var UiAffordanceScope_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
|
|
|
100
31
|
}), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
|
|
101
32
|
};
|
|
102
33
|
}
|
|
103
|
-
}), [["__scopeId", "data-v-
|
|
34
|
+
}), [["__scopeId", "data-v-c1d56d8d"]]);
|
|
104
35
|
//#endregion
|
|
105
36
|
export { UiAffordanceScope_default as t };
|
package/vue/chunks/UiAvatar.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { n as useComponentHost, t as createDispatch } from "./host.js";
|
|
1
2
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import {
|
|
3
|
+
import { createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-avatar/ui-avatar.js";
|
|
4
5
|
//#region .build/vue/UiAvatar.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["src", "hidden"];
|
|
@@ -22,94 +23,17 @@ var UiAvatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
22
23
|
const hasImage = ref(false);
|
|
23
24
|
const hasAuthoredImage = ref(false);
|
|
24
25
|
const initials = ref("?");
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (name === "hasAuthoredImage") return hasAuthoredImage.value;
|
|
36
|
-
if (name === "initials") return initials.value;
|
|
37
|
-
return props[name];
|
|
38
|
-
}
|
|
39
|
-
function write(name, value) {
|
|
40
|
-
if (name === "hasImage") {
|
|
41
|
-
hasImage.value = value;
|
|
42
|
-
return true;
|
|
26
|
+
const dispatch = createDispatch(root);
|
|
27
|
+
useComponentHost(controllerModule.default, {
|
|
28
|
+
root,
|
|
29
|
+
dispatch,
|
|
30
|
+
props,
|
|
31
|
+
refs: { image: imageElement },
|
|
32
|
+
state: {
|
|
33
|
+
hasImage,
|
|
34
|
+
hasAuthoredImage,
|
|
35
|
+
initials
|
|
43
36
|
}
|
|
44
|
-
if (name === "hasAuthoredImage") {
|
|
45
|
-
hasAuthoredImage.value = value;
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
if (name === "initials") {
|
|
49
|
-
initials.value = value;
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
53
|
-
}
|
|
54
|
-
const stops = [];
|
|
55
|
-
const host = {
|
|
56
|
-
get element() {
|
|
57
|
-
return root.value;
|
|
58
|
-
},
|
|
59
|
-
state: new Proxy({}, {
|
|
60
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
61
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
62
|
-
}),
|
|
63
|
-
refs: { get image() {
|
|
64
|
-
return imageElement.value;
|
|
65
|
-
} },
|
|
66
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
67
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
68
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
69
|
-
} }),
|
|
70
|
-
signal(initialValue) {
|
|
71
|
-
const value = shallowRef(initialValue);
|
|
72
|
-
return {
|
|
73
|
-
get: () => value.value,
|
|
74
|
-
set: (next) => {
|
|
75
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
76
|
-
},
|
|
77
|
-
update: (next) => {
|
|
78
|
-
const updated = next(value.value);
|
|
79
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
},
|
|
83
|
-
computed(compute) {
|
|
84
|
-
const value = computed(compute);
|
|
85
|
-
return { get: () => value.value };
|
|
86
|
-
},
|
|
87
|
-
effect(run) {
|
|
88
|
-
const stop = watchEffect((onCleanup) => {
|
|
89
|
-
const cleanup = run();
|
|
90
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
91
|
-
}, { flush: "post" });
|
|
92
|
-
stops.push(stop);
|
|
93
|
-
return stop;
|
|
94
|
-
},
|
|
95
|
-
on(event, listener) {
|
|
96
|
-
const element = root.value;
|
|
97
|
-
element?.addEventListener(event, listener);
|
|
98
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
99
|
-
stops.push(off);
|
|
100
|
-
return off;
|
|
101
|
-
},
|
|
102
|
-
dispatch
|
|
103
|
-
};
|
|
104
|
-
let cleanup;
|
|
105
|
-
onMounted(() => {
|
|
106
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
107
|
-
cleanup = result;
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
onBeforeUnmount(() => {
|
|
111
|
-
for (const stop of stops.splice(0)) stop();
|
|
112
|
-
if (typeof cleanup === "function") cleanup();
|
|
113
37
|
});
|
|
114
38
|
return (_ctx, _cache) => {
|
|
115
39
|
return openBlock(), createElementBlock("span", mergeProps({ "data-component": "ui-avatar" }, _ctx.$attrs, {
|
|
@@ -133,6 +57,6 @@ var UiAvatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
133
57
|
], 16);
|
|
134
58
|
};
|
|
135
59
|
}
|
|
136
|
-
}), [["__scopeId", "data-v-
|
|
60
|
+
}), [["__scopeId", "data-v-64e52bdd"]]);
|
|
137
61
|
//#endregion
|
|
138
62
|
export { UiAvatar_default as t };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { n as useComponentHost, t as createDispatch } from "./host.js";
|
|
1
2
|
import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
|
|
2
|
-
import {
|
|
3
|
+
import { createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, toDisplayString, useTemplateRef } from "vue";
|
|
3
4
|
import * as controllerModule from "@threadlabs/looma/components/ui-avatar-group/ui-avatar-group.js";
|
|
4
5
|
//#region .build/vue/UiAvatarGroup.vue?vue&type=script&setup=true&lang.ts
|
|
5
6
|
var _hoisted_1 = ["aria-label"];
|
|
@@ -18,84 +19,13 @@ var UiAvatarGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
|
|
|
18
19
|
const root = ref(null);
|
|
19
20
|
const overflowElement = useTemplateRef("overflow");
|
|
20
21
|
const overflowCount = ref(0);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
function read(name) {
|
|
30
|
-
if (name === "overflowCount") return overflowCount.value;
|
|
31
|
-
return props[name];
|
|
32
|
-
}
|
|
33
|
-
function write(name, value) {
|
|
34
|
-
if (name === "overflowCount") {
|
|
35
|
-
overflowCount.value = value;
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
|
|
39
|
-
}
|
|
40
|
-
const stops = [];
|
|
41
|
-
const host = {
|
|
42
|
-
get element() {
|
|
43
|
-
return root.value;
|
|
44
|
-
},
|
|
45
|
-
state: new Proxy({}, {
|
|
46
|
-
get: (_target, name) => typeof name === "string" ? read(name) : void 0,
|
|
47
|
-
set: (_target, name, value) => typeof name === "string" && write(name, value)
|
|
48
|
-
}),
|
|
49
|
-
refs: { get overflow() {
|
|
50
|
-
return overflowElement.value;
|
|
51
|
-
} },
|
|
52
|
-
elements: new Proxy({}, { get: (_target, name) => {
|
|
53
|
-
if (typeof name !== "string" || root.value === null) return void 0;
|
|
54
|
-
return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
|
|
55
|
-
} }),
|
|
56
|
-
signal(initialValue) {
|
|
57
|
-
const value = shallowRef(initialValue);
|
|
58
|
-
return {
|
|
59
|
-
get: () => value.value,
|
|
60
|
-
set: (next) => {
|
|
61
|
-
if (!Object.is(value.value, next)) value.value = next;
|
|
62
|
-
},
|
|
63
|
-
update: (next) => {
|
|
64
|
-
const updated = next(value.value);
|
|
65
|
-
if (!Object.is(value.value, updated)) value.value = updated;
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
},
|
|
69
|
-
computed(compute) {
|
|
70
|
-
const value = computed(compute);
|
|
71
|
-
return { get: () => value.value };
|
|
72
|
-
},
|
|
73
|
-
effect(run) {
|
|
74
|
-
const stop = watchEffect((onCleanup) => {
|
|
75
|
-
const cleanup = run();
|
|
76
|
-
if (typeof cleanup === "function") onCleanup(cleanup);
|
|
77
|
-
}, { flush: "post" });
|
|
78
|
-
stops.push(stop);
|
|
79
|
-
return stop;
|
|
80
|
-
},
|
|
81
|
-
on(event, listener) {
|
|
82
|
-
const element = root.value;
|
|
83
|
-
element?.addEventListener(event, listener);
|
|
84
|
-
const off = () => element?.removeEventListener(event, listener);
|
|
85
|
-
stops.push(off);
|
|
86
|
-
return off;
|
|
87
|
-
},
|
|
88
|
-
dispatch
|
|
89
|
-
};
|
|
90
|
-
let cleanup;
|
|
91
|
-
onMounted(() => {
|
|
92
|
-
Promise.resolve(controllerModule.default(host)).then((result) => {
|
|
93
|
-
cleanup = result;
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
onBeforeUnmount(() => {
|
|
97
|
-
for (const stop of stops.splice(0)) stop();
|
|
98
|
-
if (typeof cleanup === "function") cleanup();
|
|
22
|
+
const dispatch = createDispatch(root);
|
|
23
|
+
useComponentHost(controllerModule.default, {
|
|
24
|
+
root,
|
|
25
|
+
dispatch,
|
|
26
|
+
props,
|
|
27
|
+
refs: { overflow: overflowElement },
|
|
28
|
+
state: { overflowCount }
|
|
99
29
|
});
|
|
100
30
|
return (_ctx, _cache) => {
|
|
101
31
|
return openBlock(), createElementBlock("div", mergeProps({
|
|
@@ -114,6 +44,6 @@ var UiAvatarGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
|
|
|
114
44
|
}, toDisplayString(`+${overflowCount.value}`), 9, _hoisted_2)], 16, _hoisted_1);
|
|
115
45
|
};
|
|
116
46
|
}
|
|
117
|
-
}), [["__scopeId", "data-v-
|
|
47
|
+
}), [["__scopeId", "data-v-cbb93f58"]]);
|
|
118
48
|
//#endregion
|
|
119
49
|
export { UiAvatarGroup_default as t };
|
package/vue/chunks/UiBadge.js
CHANGED
|
@@ -19,6 +19,6 @@ var UiBadge_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
|
|
|
19
19
|
return openBlock(), createElementBlock("span", mergeProps({ "data-component": "ui-badge" }, _ctx.$attrs, { "data-ui-badge-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
}), [["__scopeId", "data-v-
|
|
22
|
+
}), [["__scopeId", "data-v-90c7d1bb"]]);
|
|
23
23
|
//#endregion
|
|
24
24
|
export { UiBadge_default as t };
|
package/vue/chunks/UiButton.js
CHANGED
|
@@ -18,17 +18,17 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
18
18
|
type: Boolean,
|
|
19
19
|
default: false
|
|
20
20
|
},
|
|
21
|
-
tone: { default: "
|
|
21
|
+
tone: { default: "accent" },
|
|
22
22
|
variant: { default: "outline" }
|
|
23
23
|
},
|
|
24
24
|
setup(__props) {
|
|
25
25
|
const props = __props;
|
|
26
26
|
/** The values the styles' :host-state() rules test. */
|
|
27
27
|
const hostState = computed(() => [
|
|
28
|
-
props.variant && `variant variant=${props.variant}`,
|
|
29
28
|
props.align && `align align=${props.align}`,
|
|
30
29
|
props.stretch && "stretch",
|
|
31
30
|
props.size && `size size=${props.size}`,
|
|
31
|
+
props.variant && `variant variant=${props.variant}`,
|
|
32
32
|
props.tone && `tone tone=${props.tone}`
|
|
33
33
|
].filter(Boolean).join(" "));
|
|
34
34
|
return (_ctx, _cache) => {
|
|
@@ -41,6 +41,6 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
41
41
|
}), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
-
}), [["__scopeId", "data-v-
|
|
44
|
+
}), [["__scopeId", "data-v-8513eb5d"]]);
|
|
45
45
|
//#endregion
|
|
46
46
|
export { UiButton_default as t };
|
package/vue/chunks/UiCallout.js
CHANGED
|
@@ -103,6 +103,6 @@ var UiCallout_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
103
103
|
]), createElementVNode("div", _hoisted_8, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
}), [["__scopeId", "data-v-
|
|
106
|
+
}), [["__scopeId", "data-v-c6e92976"]]);
|
|
107
107
|
//#endregion
|
|
108
108
|
export { UiCallout_default as t };
|