@threadlabs/looma 0.5.1 → 0.6.0-rc.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 (341) hide show
  1. package/README.md +1 -1
  2. package/components/shared/overlay.js +3 -0
  3. package/components/ui-button/ui-button.html +27 -14
  4. package/components/ui-callout/ui-callout.html +1 -1
  5. package/components/ui-checkbox/ui-checkbox.html +1 -1
  6. package/components/ui-cluster/ui-cluster.html +6 -6
  7. package/components/ui-combobox/ui-combobox.html +35 -27
  8. package/components/ui-container/ui-container.html +4 -4
  9. package/components/ui-context-menu/ui-context-menu.html +2 -2
  10. package/components/ui-dialog/ui-dialog.html +21 -8
  11. package/components/ui-disclosure/ui-disclosure.html +19 -4
  12. package/components/ui-editable/ui-editable.html +6 -6
  13. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +21 -21
  14. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +26 -26
  15. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +39 -39
  16. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +26 -22
  17. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +68 -52
  18. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +42 -38
  19. package/components/ui-editor-toolbar/ui-editor-toolbar.html +9 -9
  20. package/components/ui-floating-action-button/ui-floating-action-button.html +16 -22
  21. package/components/ui-form-field/ui-form-field.html +18 -7
  22. package/components/ui-grid/ui-grid.html +6 -6
  23. package/components/ui-icon/ui-icon.html +5 -1
  24. package/components/ui-icon-button/ui-icon-button.html +68 -34
  25. package/components/ui-input/ui-input.html +2 -2
  26. package/components/ui-menu/ui-menu.html +15 -4
  27. package/components/ui-menu-item/ui-menu-item.html +5 -5
  28. package/components/ui-popover/ui-popover.html +3 -3
  29. package/components/ui-popover/ui-popover.js +10 -2
  30. package/components/ui-reel/ui-reel.html +6 -6
  31. package/components/ui-search-result-row/ui-search-result-row.html +9 -9
  32. package/components/ui-search-shell/ui-search-shell.html +10 -3
  33. package/components/ui-search-shell/ui-search-shell.js +9 -0
  34. package/components/ui-select/ui-select.html +2 -2
  35. package/components/ui-sidebar/ui-sidebar.html +11 -11
  36. package/components/ui-stack/ui-stack.html +6 -6
  37. package/components/ui-switcher/ui-switcher.html +6 -6
  38. package/components/ui-tabs/ui-tabs.html +19 -5
  39. package/components/ui-textarea/ui-textarea.html +2 -2
  40. package/components/ui-toast-region/ui-toast-region.html +3 -3
  41. package/components/ui-tooltip/ui-tooltip.html +1 -1
  42. package/components/ui-top-bar/ui-top-bar.html +5 -5
  43. package/components/ui-tree/ui-tree.html +7 -0
  44. package/components/ui-tree-item/ui-tree-item.html +20 -7
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +2 -2
  47. package/package.json +2 -2
  48. package/styles/ui-affordance-scope.css +1 -1
  49. package/styles/ui-avatar-group.css +1 -1
  50. package/styles/ui-avatar.css +1 -1
  51. package/styles/ui-badge.css +1 -1
  52. package/styles/ui-button.css +25 -15
  53. package/styles/ui-callout.css +2 -2
  54. package/styles/ui-checkbox.css +2 -2
  55. package/styles/ui-cluster.css +7 -7
  56. package/styles/ui-combobox.css +24 -24
  57. package/styles/ui-container.css +5 -5
  58. package/styles/ui-context-menu.css +3 -3
  59. package/styles/ui-dialog.css +26 -9
  60. package/styles/ui-disclosure.css +23 -7
  61. package/styles/ui-editable.css +7 -7
  62. package/styles/ui-editor-insert-table-grid.css +21 -21
  63. package/styles/ui-editor-mention-menu.css +26 -26
  64. package/styles/ui-editor-slash-menu.css +40 -40
  65. package/styles/ui-editor-table-context-menu.css +21 -21
  66. package/styles/ui-editor-table-overlay.css +49 -49
  67. package/styles/ui-editor-table-toolbar.css +35 -35
  68. package/styles/ui-editor-toolbar.css +10 -10
  69. package/styles/ui-floating-action-button.css +17 -23
  70. package/styles/ui-form-field.css +24 -10
  71. package/styles/ui-grid.css +7 -7
  72. package/styles/ui-icon-button.css +74 -35
  73. package/styles/ui-icon.css +1 -1
  74. package/styles/ui-input.css +3 -3
  75. package/styles/ui-menu-item.css +6 -6
  76. package/styles/ui-menu.css +19 -7
  77. package/styles/ui-popover.css +4 -4
  78. package/styles/ui-radio-group.css +1 -1
  79. package/styles/ui-radio.css +1 -1
  80. package/styles/ui-reel.css +7 -7
  81. package/styles/ui-search-result-row.css +10 -10
  82. package/styles/ui-search-shell.css +14 -5
  83. package/styles/ui-select.css +3 -3
  84. package/styles/ui-separator.css +1 -1
  85. package/styles/ui-sidebar.css +12 -12
  86. package/styles/ui-stack.css +7 -7
  87. package/styles/ui-switch.css +1 -1
  88. package/styles/ui-switcher.css +7 -7
  89. package/styles/ui-tabs.css +21 -7
  90. package/styles/ui-textarea.css +3 -3
  91. package/styles/ui-toast-region.css +3 -3
  92. package/styles/ui-tooltip.css +2 -2
  93. package/styles/ui-top-bar.css +6 -6
  94. package/styles/ui-tree-item.css +30 -9
  95. package/styles/ui-tree.css +8 -2
  96. package/theme-dark.css +42 -103
  97. package/theme-high-contrast.css +18 -22
  98. package/theme-light.css +15 -41
  99. package/tokens.css +149 -201
  100. package/vanilla/UiAffordanceScope.d.ts +1 -1
  101. package/vanilla/UiAffordanceScope.js +2 -2
  102. package/vanilla/UiAvatar.d.ts +1 -1
  103. package/vanilla/UiAvatar.js +2 -2
  104. package/vanilla/UiAvatarGroup.d.ts +1 -1
  105. package/vanilla/UiAvatarGroup.js +2 -2
  106. package/vanilla/UiBadge.d.ts +1 -1
  107. package/vanilla/UiBadge.js +2 -2
  108. package/vanilla/UiButton.d.ts +3 -1
  109. package/vanilla/UiButton.js +3 -3
  110. package/vanilla/UiCallout.d.ts +1 -1
  111. package/vanilla/UiCallout.js +2 -2
  112. package/vanilla/UiCheckbox.d.ts +1 -1
  113. package/vanilla/UiCheckbox.js +2 -2
  114. package/vanilla/UiCluster.d.ts +1 -1
  115. package/vanilla/UiCluster.js +2 -2
  116. package/vanilla/UiCombobox.d.ts +1 -1
  117. package/vanilla/UiCombobox.js +3 -3
  118. package/vanilla/UiContainer.d.ts +1 -1
  119. package/vanilla/UiContainer.js +2 -2
  120. package/vanilla/UiContextMenu.d.ts +1 -1
  121. package/vanilla/UiContextMenu.js +2 -2
  122. package/vanilla/UiDialog.d.ts +1 -1
  123. package/vanilla/UiDialog.js +2 -2
  124. package/vanilla/UiDisclosure.d.ts +2 -1
  125. package/vanilla/UiDisclosure.js +3 -3
  126. package/vanilla/UiEditable.d.ts +1 -1
  127. package/vanilla/UiEditable.js +2 -2
  128. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  129. package/vanilla/UiEditorInsertTableGrid.js +3 -3
  130. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  131. package/vanilla/UiEditorMentionMenu.js +3 -3
  132. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenu.js +2 -2
  134. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  135. package/vanilla/UiEditorTableContextMenu.js +3 -3
  136. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  137. package/vanilla/UiEditorTableOverlay.js +3 -3
  138. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  139. package/vanilla/UiEditorTableToolbar.js +3 -3
  140. package/vanilla/UiEditorToolbar.d.ts +1 -1
  141. package/vanilla/UiEditorToolbar.js +2 -2
  142. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  143. package/vanilla/UiFloatingActionButton.js +2 -2
  144. package/vanilla/UiFormField.d.ts +1 -1
  145. package/vanilla/UiFormField.js +15 -6
  146. package/vanilla/UiGrid.d.ts +1 -1
  147. package/vanilla/UiGrid.js +2 -2
  148. package/vanilla/UiIcon.d.ts +1 -1
  149. package/vanilla/UiIcon.js +3 -3
  150. package/vanilla/UiIconButton.d.ts +1 -1
  151. package/vanilla/UiIconButton.js +2 -2
  152. package/vanilla/UiInput.d.ts +1 -1
  153. package/vanilla/UiInput.js +2 -2
  154. package/vanilla/UiMenu.d.ts +2 -1
  155. package/vanilla/UiMenu.js +3 -3
  156. package/vanilla/UiMenuItem.d.ts +1 -1
  157. package/vanilla/UiMenuItem.js +2 -2
  158. package/vanilla/UiPopover.d.ts +1 -1
  159. package/vanilla/UiPopover.js +2 -2
  160. package/vanilla/UiRadio.d.ts +1 -1
  161. package/vanilla/UiRadio.js +2 -2
  162. package/vanilla/UiRadioGroup.d.ts +1 -1
  163. package/vanilla/UiRadioGroup.js +2 -2
  164. package/vanilla/UiReel.d.ts +1 -1
  165. package/vanilla/UiReel.js +2 -2
  166. package/vanilla/UiSearchResultRow.d.ts +1 -1
  167. package/vanilla/UiSearchResultRow.js +2 -2
  168. package/vanilla/UiSearchShell.d.ts +1 -1
  169. package/vanilla/UiSearchShell.js +2 -2
  170. package/vanilla/UiSelect.d.ts +1 -1
  171. package/vanilla/UiSelect.js +2 -2
  172. package/vanilla/UiSeparator.d.ts +1 -1
  173. package/vanilla/UiSeparator.js +2 -2
  174. package/vanilla/UiSidebar.d.ts +1 -1
  175. package/vanilla/UiSidebar.js +2 -2
  176. package/vanilla/UiStack.d.ts +1 -1
  177. package/vanilla/UiStack.js +2 -2
  178. package/vanilla/UiSwitch.d.ts +1 -1
  179. package/vanilla/UiSwitch.js +2 -2
  180. package/vanilla/UiSwitcher.d.ts +1 -1
  181. package/vanilla/UiSwitcher.js +2 -2
  182. package/vanilla/UiTabs.d.ts +2 -1
  183. package/vanilla/UiTabs.js +3 -3
  184. package/vanilla/UiTextarea.d.ts +1 -1
  185. package/vanilla/UiTextarea.js +2 -2
  186. package/vanilla/UiToastRegion.d.ts +1 -1
  187. package/vanilla/UiToastRegion.js +3 -3
  188. package/vanilla/UiTooltip.d.ts +1 -1
  189. package/vanilla/UiTooltip.js +2 -2
  190. package/vanilla/UiTopBar.d.ts +1 -1
  191. package/vanilla/UiTopBar.js +1 -1
  192. package/vanilla/UiTree.d.ts +2 -1
  193. package/vanilla/UiTree.js +3 -3
  194. package/vanilla/UiTreeItem.d.ts +1 -1
  195. package/vanilla/UiTreeItem.js +2 -2
  196. package/vue/UiAffordanceScope.d.ts +2 -2
  197. package/vue/UiAffordanceScope.vue +92 -73
  198. package/vue/UiAvatar.d.ts +7 -7
  199. package/vue/UiAvatar.vue +145 -105
  200. package/vue/UiAvatarGroup.d.ts +4 -4
  201. package/vue/UiAvatarGroup.vue +134 -118
  202. package/vue/UiBadge.d.ts +4 -4
  203. package/vue/UiBadge.vue +113 -114
  204. package/vue/UiButton.d.ts +10 -6
  205. package/vue/UiButton.vue +295 -248
  206. package/vue/UiCallout.d.ts +2 -2
  207. package/vue/UiCallout.vue +154 -87
  208. package/vue/UiCheckbox.d.ts +14 -10
  209. package/vue/UiCheckbox.vue +228 -162
  210. package/vue/UiCluster.d.ts +2 -2
  211. package/vue/UiCluster.vue +53 -60
  212. package/vue/UiCombobox.d.ts +36 -32
  213. package/vue/UiCombobox.vue +1005 -416
  214. package/vue/UiContainer.d.ts +2 -2
  215. package/vue/UiContainer.vue +48 -51
  216. package/vue/UiContextMenu.d.ts +6 -4
  217. package/vue/UiContextMenu.vue +205 -116
  218. package/vue/UiDialog.d.ts +11 -9
  219. package/vue/UiDialog.vue +287 -212
  220. package/vue/UiDisclosure.d.ts +10 -6
  221. package/vue/UiDisclosure.vue +265 -159
  222. package/vue/UiEditable.d.ts +16 -12
  223. package/vue/UiEditable.vue +325 -205
  224. package/vue/UiEditorInsertTableGrid.d.ts +8 -8
  225. package/vue/UiEditorInsertTableGrid.vue +216 -157
  226. package/vue/UiEditorMentionMenu.d.ts +9 -9
  227. package/vue/UiEditorMentionMenu.vue +265 -222
  228. package/vue/UiEditorSlashMenu.d.ts +7 -7
  229. package/vue/UiEditorSlashMenu.vue +286 -240
  230. package/vue/UiEditorTableContextMenu.d.ts +5 -5
  231. package/vue/UiEditorTableContextMenu.vue +306 -193
  232. package/vue/UiEditorTableOverlay.d.ts +2 -2
  233. package/vue/UiEditorTableOverlay.vue +600 -369
  234. package/vue/UiEditorTableToolbar.d.ts +7 -7
  235. package/vue/UiEditorTableToolbar.vue +443 -268
  236. package/vue/UiEditorToolbar.d.ts +2 -2
  237. package/vue/UiEditorToolbar.vue +134 -121
  238. package/vue/UiFloatingActionButton.d.ts +6 -6
  239. package/vue/UiFloatingActionButton.vue +95 -99
  240. package/vue/UiFormField.d.ts +6 -6
  241. package/vue/UiFormField.vue +112 -80
  242. package/vue/UiGrid.d.ts +2 -2
  243. package/vue/UiGrid.vue +51 -57
  244. package/vue/UiIcon.d.ts +2 -2
  245. package/vue/UiIcon.vue +118 -89
  246. package/vue/UiIconButton.d.ts +11 -11
  247. package/vue/UiIconButton.vue +287 -217
  248. package/vue/UiInput.d.ts +9 -9
  249. package/vue/UiInput.vue +153 -127
  250. package/vue/UiMenu.d.ts +10 -6
  251. package/vue/UiMenu.vue +227 -143
  252. package/vue/UiMenuItem.d.ts +4 -4
  253. package/vue/UiMenuItem.vue +53 -46
  254. package/vue/UiPopover.d.ts +8 -6
  255. package/vue/UiPopover.vue +197 -137
  256. package/vue/UiRadio.d.ts +14 -10
  257. package/vue/UiRadio.vue +183 -117
  258. package/vue/UiRadioGroup.d.ts +14 -12
  259. package/vue/UiRadioGroup.vue +172 -111
  260. package/vue/UiReel.d.ts +3 -3
  261. package/vue/UiReel.vue +77 -77
  262. package/vue/UiSearchResultRow.d.ts +4 -4
  263. package/vue/UiSearchResultRow.vue +121 -115
  264. package/vue/UiSearchShell.d.ts +10 -8
  265. package/vue/UiSearchShell.vue +245 -176
  266. package/vue/UiSelect.d.ts +9 -9
  267. package/vue/UiSelect.vue +162 -134
  268. package/vue/UiSeparator.d.ts +2 -2
  269. package/vue/UiSeparator.vue +22 -27
  270. package/vue/UiSidebar.d.ts +20 -18
  271. package/vue/UiSidebar.vue +307 -224
  272. package/vue/UiStack.d.ts +3 -3
  273. package/vue/UiStack.vue +64 -70
  274. package/vue/UiSwitch.d.ts +12 -8
  275. package/vue/UiSwitch.vue +218 -150
  276. package/vue/UiSwitcher.d.ts +3 -3
  277. package/vue/UiSwitcher.vue +73 -75
  278. package/vue/UiTabs.d.ts +12 -8
  279. package/vue/UiTabs.vue +268 -210
  280. package/vue/UiTextarea.d.ts +11 -11
  281. package/vue/UiTextarea.vue +155 -128
  282. package/vue/UiToastRegion.d.ts +10 -8
  283. package/vue/UiToastRegion.vue +261 -198
  284. package/vue/UiTooltip.d.ts +14 -12
  285. package/vue/UiTooltip.vue +241 -177
  286. package/vue/UiTopBar.vue +51 -42
  287. package/vue/UiTree.d.ts +10 -6
  288. package/vue/UiTree.vue +180 -70
  289. package/vue/UiTreeItem.d.ts +24 -22
  290. package/vue/UiTreeItem.vue +464 -339
  291. package/vue/chunks/UiAffordanceScope.js +9 -16
  292. package/vue/chunks/UiAvatar.js +23 -29
  293. package/vue/chunks/UiAvatarGroup.js +16 -39
  294. package/vue/chunks/UiBadge.js +3 -12
  295. package/vue/chunks/UiButton.js +15 -18
  296. package/vue/chunks/UiCallout.js +8 -17
  297. package/vue/chunks/UiCheckbox.js +37 -40
  298. package/vue/chunks/UiCluster.js +3 -12
  299. package/vue/chunks/UiCombobox.js +224 -266
  300. package/vue/chunks/UiContainer.js +3 -12
  301. package/vue/chunks/UiContextMenu.js +39 -34
  302. package/vue/chunks/UiDialog.js +36 -39
  303. package/vue/chunks/UiDisclosure.js +44 -48
  304. package/vue/chunks/UiEditable.js +55 -57
  305. package/vue/chunks/UiEditorInsertTableGrid.js +55 -73
  306. package/vue/chunks/UiEditorMentionMenu.js +40 -81
  307. package/vue/chunks/UiEditorSlashMenu.js +28 -52
  308. package/vue/chunks/UiEditorTableContextMenu.js +32 -56
  309. package/vue/chunks/UiEditorTableOverlay.js +58 -82
  310. package/vue/chunks/UiEditorTableToolbar.js +61 -85
  311. package/vue/chunks/UiEditorToolbar.js +4 -13
  312. package/vue/chunks/UiFloatingActionButton.js +7 -21
  313. package/vue/chunks/UiFormField.js +15 -12
  314. package/vue/chunks/UiGrid.js +3 -12
  315. package/vue/chunks/UiIcon.js +20 -43
  316. package/vue/chunks/UiIconButton.js +16 -28
  317. package/vue/chunks/UiInput.js +20 -25
  318. package/vue/chunks/UiMenu.js +30 -33
  319. package/vue/chunks/UiMenuItem.js +4 -10
  320. package/vue/chunks/UiPopover.js +28 -29
  321. package/vue/chunks/UiRadio.js +36 -39
  322. package/vue/chunks/UiRadioGroup.js +30 -34
  323. package/vue/chunks/UiReel.js +6 -15
  324. package/vue/chunks/UiSearchResultRow.js +6 -19
  325. package/vue/chunks/UiSearchShell.js +25 -28
  326. package/vue/chunks/UiSelect.js +20 -23
  327. package/vue/chunks/UiSeparator.js +2 -8
  328. package/vue/chunks/UiSidebar.js +39 -44
  329. package/vue/chunks/UiStack.js +6 -15
  330. package/vue/chunks/UiSwitch.js +35 -38
  331. package/vue/chunks/UiSwitcher.js +6 -15
  332. package/vue/chunks/UiTabs.js +52 -85
  333. package/vue/chunks/UiTextarea.js +21 -26
  334. package/vue/chunks/UiToastRegion.js +38 -72
  335. package/vue/chunks/UiTooltip.js +34 -35
  336. package/vue/chunks/UiTopBar.js +1 -1
  337. package/vue/chunks/UiTree.js +27 -16
  338. package/vue/chunks/UiTreeItem.js +85 -102
  339. package/vue/components.css +4027 -3800
  340. package/vue/editor/LoomaEditor.d.ts +11 -0
  341. package/vue/editor/index.js +9 -0
package/vue/UiTooltip.vue CHANGED
@@ -1,230 +1,294 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.1 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.2 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
- import { computed, onBeforeUnmount, onMounted, ref, shallowRef, watchEffect } from "vue";
4
- import * as controllerModule from "../components/ui-tooltip/ui-tooltip.js";
5
-
6
- defineOptions({ inheritAttrs: false });
7
-
8
- const hn = {
9
- t: (v: unknown): boolean => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false),
10
- text: (v: unknown): string => v === undefined || v === null ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? "" : String(v),
11
- attr: (v: unknown): any => v === undefined || v === null || v === false ? undefined : v === true ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? undefined : String(v),
12
- };
13
-
14
- const props = withDefaults(defineProps<{
15
- for?: string | null;
16
- hideDelay?: number | null;
17
- inverse?: boolean | null;
18
- open?: boolean | null;
19
- placement?: string | null;
20
- showDelay?: number | null;
21
- }>(), {
22
- for: "",
23
- hideDelay: 100,
24
- inverse: false,
25
- open: false,
26
- placement: "top-start",
27
- showDelay: 500,
28
- });
3
+ import { computed, onBeforeUnmount, onMounted, ref, shallowRef, watchEffect } from 'vue'
4
+ import * as controllerModule from '../components/ui-tooltip/ui-tooltip.js'
5
+
6
+ defineOptions({ inheritAttrs: false })
7
+
8
+ const props = withDefaults(
9
+ defineProps<{
10
+ for?: string
11
+ hideDelay?: number
12
+ inverse?: boolean
13
+ open?: boolean
14
+ placement?: string
15
+ showDelay?: number
16
+ }>(),
17
+ {
18
+ for: '',
19
+ hideDelay: 100,
20
+ inverse: false,
21
+ open: false,
22
+ placement: 'top-start',
23
+ showDelay: 500,
24
+ },
25
+ )
29
26
  const emit = defineEmits<{
30
- "open": [detail: { readonly open: boolean; readonly reason: "action" | "programmatic" | "light-dismiss" | "escape"; readonly trigger: "keyboard" | "pointer" | "programmatic" }];
31
- "close": [detail: { readonly open: boolean; readonly reason: "action" | "programmatic" | "light-dismiss" | "escape"; readonly trigger: "keyboard" | "pointer" | "programmatic" }];
32
- }>();
33
- const root = ref<HTMLElement | null>(null);
34
- const refs: Record<string, Element | undefined> = {};
35
- const state_internalOpen = ref<any>(false);
27
+ 'update:open': [value: boolean]
28
+ open: [
29
+ detail: {
30
+ readonly open: boolean
31
+ readonly reason: 'action' | 'programmatic' | 'light-dismiss' | 'escape'
32
+ readonly trigger: 'keyboard' | 'pointer' | 'programmatic'
33
+ },
34
+ ]
35
+ close: [
36
+ detail: {
37
+ readonly open: boolean
38
+ readonly reason: 'action' | 'programmatic' | 'light-dismiss' | 'escape'
39
+ readonly trigger: 'keyboard' | 'pointer' | 'programmatic'
40
+ },
41
+ ]
42
+ }>()
43
+
44
+ const root = ref<HTMLElement | null>(null)
45
+ const internalOpen = ref(false)
46
+
47
+ /** The values the styles' :host-state() rules test. */
48
+ const hostState = computed(() =>
49
+ [
50
+ props.inverse && 'inverse',
51
+ props.placement && 'placement',
52
+ `placement=${encodeURIComponent(props.placement)}`,
53
+ ].filter(Boolean).join(' ')
54
+ )
36
55
 
37
56
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
38
- const dispatch = (name: string, detail?: unknown): boolean => {
39
- const declared = {"open":{"bubbles":true,"composed":true,"cancelable":false},"close":{"bubbles":true,"composed":true,"cancelable":false}} as Record<string, EventInit | undefined>;
57
+ function dispatch(name: string, detail?: unknown): boolean {
58
+ const declared: Record<string, EventInit | undefined> = {
59
+ open: { bubbles: true, composed: true, cancelable: false },
60
+ close: { bubbles: true, composed: true, cancelable: false },
61
+ }
40
62
  const checks: Record<string, (detail: unknown) => boolean> = {
41
- "open": (detail: unknown) => (detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof (detail as Record<string, unknown>)["open"] === "boolean" && ((detail as Record<string, unknown>)["reason"] === "action" || (detail as Record<string, unknown>)["reason"] === "programmatic" || (detail as Record<string, unknown>)["reason"] === "light-dismiss" || (detail as Record<string, unknown>)["reason"] === "escape") && ((detail as Record<string, unknown>)["trigger"] === "keyboard" || (detail as Record<string, unknown>)["trigger"] === "pointer" || (detail as Record<string, unknown>)["trigger"] === "programmatic") && Object.keys(detail as object).every((key) => ["open","reason","trigger"].includes(key))),
42
- "close": (detail: unknown) => (detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof (detail as Record<string, unknown>)["open"] === "boolean" && ((detail as Record<string, unknown>)["reason"] === "action" || (detail as Record<string, unknown>)["reason"] === "programmatic" || (detail as Record<string, unknown>)["reason"] === "light-dismiss" || (detail as Record<string, unknown>)["reason"] === "escape") && ((detail as Record<string, unknown>)["trigger"] === "keyboard" || (detail as Record<string, unknown>)["trigger"] === "pointer" || (detail as Record<string, unknown>)["trigger"] === "programmatic") && Object.keys(detail as object).every((key) => ["open","reason","trigger"].includes(key))),
43
- };
63
+ open: (detail) =>
64
+ detail !== null && typeof detail === 'object' && !Array.isArray(detail)
65
+ && typeof (detail as Record<string, unknown>)['open'] === 'boolean'
66
+ && ((detail as Record<string, unknown>)['reason'] === 'action'
67
+ || (detail as Record<string, unknown>)['reason'] === 'programmatic'
68
+ || (detail as Record<string, unknown>)['reason'] === 'light-dismiss'
69
+ || (detail as Record<string, unknown>)['reason'] === 'escape')
70
+ && ((detail as Record<string, unknown>)['trigger'] === 'keyboard'
71
+ || (detail as Record<string, unknown>)['trigger'] === 'pointer'
72
+ || (detail as Record<string, unknown>)['trigger'] === 'programmatic')
73
+ && Object.keys(detail as object).every((key) => ['open', 'reason', 'trigger'].includes(key)),
74
+ close: (detail) =>
75
+ detail !== null && typeof detail === 'object' && !Array.isArray(detail)
76
+ && typeof (detail as Record<string, unknown>)['open'] === 'boolean'
77
+ && ((detail as Record<string, unknown>)['reason'] === 'action'
78
+ || (detail as Record<string, unknown>)['reason'] === 'programmatic'
79
+ || (detail as Record<string, unknown>)['reason'] === 'light-dismiss'
80
+ || (detail as Record<string, unknown>)['reason'] === 'escape')
81
+ && ((detail as Record<string, unknown>)['trigger'] === 'keyboard'
82
+ || (detail as Record<string, unknown>)['trigger'] === 'pointer'
83
+ || (detail as Record<string, unknown>)['trigger'] === 'programmatic')
84
+ && Object.keys(detail as object).every((key) => ['open', 'reason', 'trigger'].includes(key)),
85
+ }
44
86
  if (detail !== undefined && checks[name] !== undefined && !checks[name]!(detail)) {
45
- throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
87
+ throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`)
88
+ }
89
+ const emitEvent = emit as (name: string, detail: unknown) => void
90
+ emitEvent(name, detail)
91
+ if (detail !== null && typeof detail === 'object' && 'open' in detail) {
92
+ emitEvent('update:open', (detail as Record<string, unknown>)['open'])
46
93
  }
47
- (emit as (name: string, detail: unknown) => void)(name, detail);
48
- return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, ...declared[name], detail })) ?? true;
49
- };
50
-
51
- /** The resolved values the styles' :host-state() rules test. */
52
- const hostState = computed(() => (["inverse","placement"] as const).flatMap((name) => {
53
- const value = read(name);
54
- const tokens: string[] = hn.t(value) ? [name] : [];
55
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
56
- return tokens;
57
- }).join(" "));
94
+ return root.value?.dispatchEvent(
95
+ new CustomEvent(name, { bubbles: true, composed: true, ...declared[name], detail }),
96
+ ) ?? true
97
+ }
58
98
 
59
99
  function read(name: string): unknown {
60
- if (name === "internalOpen") return state_internalOpen.value;
61
- return (props as Record<string, unknown>)[name];
100
+ if (name === 'internalOpen') return internalOpen.value
101
+ return (props as Record<string, unknown>)[name]
62
102
  }
63
103
 
64
104
  function write(name: string, value: unknown): boolean {
65
- if (name === "internalOpen") { state_internalOpen.value = value; return true; }
66
- throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
105
+ if (name === 'internalOpen') {
106
+ internalOpen.value = value as never
107
+ return true
108
+ }
109
+ throw new TypeError(`Only declared state is writable; \`${name}\` is not.`)
67
110
  }
68
111
 
69
- const stops: Array<() => void> = [];
112
+ const stops: Array<() => void> = []
70
113
  const host = {
71
- get element(): Element { return root.value as Element; },
114
+ get element(): Element {
115
+ return root.value as Element
116
+ },
72
117
  state: new Proxy({} as Record<string, unknown>, {
73
- get: (_target, name) => typeof name === "string" ? read(name) : undefined,
74
- set: (_target, name, value) => typeof name === "string" && write(name, value),
118
+ get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
119
+ set: (_target, name, value) => typeof name === 'string' && write(name, value),
75
120
  }),
76
- refs: refs as Readonly<Record<string, Element>>,
121
+ refs: {} as Readonly<Record<string, Element>>,
77
122
  elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
78
123
  get: (_target, name) => {
79
- if (typeof name !== "string" || root.value === null) return undefined;
80
- const form = root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form");
81
- return form?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined;
124
+ if (typeof name !== 'string' || root.value === null) return undefined
125
+ const form = root.value instanceof HTMLFormElement
126
+ ? root.value
127
+ : root.value.querySelector('form')
128
+ return form?.elements.namedItem(name)
129
+ ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
82
130
  },
83
131
  }),
84
132
  signal<T>(initialValue: T) {
85
- const value = shallowRef(initialValue);
133
+ const value = shallowRef(initialValue)
86
134
  return {
87
135
  get: (): T => value.value,
88
- set: (next: T): void => { if (!Object.is(value.value, next)) value.value = next; },
89
- update: (next: (current: T) => T): void => { const updated = next(value.value); if (!Object.is(value.value, updated)) value.value = updated; },
90
- };
136
+ set: (next: T): void => {
137
+ if (!Object.is(value.value, next)) value.value = next
138
+ },
139
+ update: (next: (current: T) => T): void => {
140
+ const updated = next(value.value)
141
+ if (!Object.is(value.value, updated)) value.value = updated
142
+ },
143
+ }
91
144
  },
92
145
  computed<T>(compute: () => T) {
93
- const value = computed(compute);
94
- return { get: (): T => value.value };
146
+ const value = computed(compute)
147
+ return { get: (): T => value.value }
95
148
  },
96
149
  effect(run: () => void | (() => void)): () => void {
97
150
  const stop = watchEffect((onCleanup) => {
98
- const cleanup = run();
99
- if (typeof cleanup === "function") onCleanup(cleanup);
100
- }, { flush: "post" });
101
- stops.push(stop);
102
- return stop;
151
+ const cleanup = run()
152
+ if (typeof cleanup === 'function') onCleanup(cleanup)
153
+ }, { flush: 'post' })
154
+ stops.push(stop)
155
+ return stop
103
156
  },
104
157
  on(event: string, listener: EventListener): () => void {
105
- const element = root.value;
106
- element?.addEventListener(event, listener);
107
- const off = (): void => element?.removeEventListener(event, listener);
108
- stops.push(off);
109
- return off;
158
+ const element = root.value
159
+ element?.addEventListener(event, listener)
160
+ const off = (): void => element?.removeEventListener(event, listener)
161
+ stops.push(off)
162
+ return off
110
163
  },
111
164
  dispatch,
112
- };
165
+ }
113
166
 
114
- let cleanup: void | (() => void);
115
- let ready: Promise<void> | undefined;
167
+ let cleanup: void | (() => void)
168
+ let ready: Promise<void> | undefined
116
169
  onMounted(() => {
117
- ready = Promise.resolve(controllerModule.default(host as never)).then((result) => { cleanup = result; });
118
- });
170
+ ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
171
+ cleanup = result
172
+ })
173
+ })
119
174
  onBeforeUnmount(() => {
120
- for (const stop of stops.splice(0)) stop();
121
- if (typeof cleanup === "function") cleanup();
122
- });
175
+ for (const stop of stops.splice(0)) stop()
176
+ if (typeof cleanup === 'function') cleanup()
177
+ })
123
178
  </script>
124
179
 
125
180
  <template>
126
- <span data-component="ui-tooltip" role="tooltip" v-bind="$attrs" :hidden="hn.attr(!hn.t(state_internalOpen))" :data-ui-tooltip-state="hostState || undefined" ref="root"><div class="surface"><slot></slot></div></span>
181
+ <span
182
+ data-component="ui-tooltip"
183
+ role="tooltip"
184
+ v-bind="$attrs"
185
+ :hidden="!internalOpen"
186
+ :data-ui-tooltip-state="hostState || undefined"
187
+ ref="root"
188
+ ><div class="surface"><slot /></div></span>
127
189
  </template>
128
190
 
129
191
  <style scoped>
130
192
  [data-component~="ui-tooltip"] {
131
- position: fixed;
132
- inset: auto;
133
- margin: 0;
134
- display: inline-block;
135
- box-sizing: border-box;
136
- padding: 0;
137
- border: 0;
138
- outline: 0;
139
- border-radius: 0;
140
- background: transparent;
141
- /* The UA popover default (overflow: auto) would clip the arrow. */
142
- overflow: visible;
143
- opacity: 0;
144
- transform: translateY(4px);
145
- transition:
146
- opacity var(--ui-motion-fast) var(--ui-motion-ease),
147
- transform var(--ui-motion-fast) var(--ui-motion-ease),
148
- display var(--ui-motion-fast) allow-discrete,
149
- overlay var(--ui-motion-fast) allow-discrete;
150
- }
193
+ position: fixed;
194
+ inset: auto;
195
+ margin: 0;
196
+ display: inline-block;
197
+ box-sizing: border-box;
198
+ padding: 0;
199
+ border: 0;
200
+ outline: 0;
201
+ border-radius: 0;
202
+ background: transparent;
203
+ /* The UA popover default (overflow: auto) would clip the arrow. */
204
+ overflow: visible;
205
+ opacity: 0;
206
+ transform: translateY(4px);
207
+ transition:
208
+ opacity var(--ui-motion-fast) var(--ui-motion-ease),
209
+ transform var(--ui-motion-fast) var(--ui-motion-ease),
210
+ display var(--ui-motion-fast) allow-discrete,
211
+ overlay var(--ui-motion-fast) allow-discrete;
212
+ }
151
213
 
152
- .surface {
153
- --_tooltip-line: var(--ui-tooltip-border, var(--ui-border-default));
154
- position: relative;
155
- box-sizing: border-box;
156
- max-inline-size: var(--ui-tooltip-max-inline-size, 18rem);
157
- border: 1px solid var(--_tooltip-line);
158
- border-radius: var(--ui-tooltip-radius, var(--ui-radius-1));
159
- background: var(--ui-tooltip-surface, var(--ui-surface-elevated));
160
- color: var(--ui-tooltip-text, var(--ui-text-primary));
161
- padding: var(--ui-space-1) var(--ui-space-2);
162
- font-family: var(--ui-font-family-sans);
163
- font-size: var(--ui-font-size-sm);
164
- line-height: var(--ui-line-height-tight);
165
- box-shadow: var(--ui-tooltip-shadow, var(--ui-elevation-tooltip, var(--ui-shadow-md)));
166
- }
214
+ .surface {
215
+ --_tooltip-line: var(--ui-tooltip-border, var(--ui-border-default));
216
+ position: relative;
217
+ box-sizing: border-box;
218
+ max-inline-size: var(--ui-tooltip-max-inline-size, 18rem);
219
+ border: 1px solid var(--_tooltip-line);
220
+ border-radius: var(--ui-tooltip-radius, var(--ui-radius-sm));
221
+ background: var(--ui-tooltip-surface, var(--ui-surface-elevated));
222
+ color: var(--ui-tooltip-text, var(--ui-text-primary));
223
+ padding: var(--ui-space-1) var(--ui-space-2);
224
+ font-family: var(--ui-font-family-sans);
225
+ font-size: var(--ui-font-size-sm);
226
+ line-height: var(--ui-line-height-tight);
227
+ box-shadow: var(--ui-tooltip-shadow, var(--ui-elevation-tooltip, var(--ui-shadow-md)));
228
+ }
167
229
 
168
- [data-component~="ui-tooltip"][data-ui-tooltip-state~="inverse"] .surface {
169
- --_tooltip-line: var(--ui-tooltip-inverse-surface, var(--ui-text-primary));
170
- background: var(--ui-tooltip-inverse-surface, var(--ui-text-primary));
171
- color: var(--ui-tooltip-inverse-text, var(--ui-surface-default));
172
- }
230
+ [data-component~="ui-tooltip"][data-ui-tooltip-state~="inverse"] .surface {
231
+ --_tooltip-line: var(--ui-tooltip-inverse-surface, var(--ui-text-primary));
232
+ background: var(--ui-tooltip-inverse-surface, var(--ui-text-primary));
233
+ color: var(--ui-tooltip-inverse-text, var(--ui-surface-default));
234
+ }
173
235
 
174
- /* A rotated square shares the surface fill and draws the two outward border edges. Its centre sits on
175
- * the surface border line, so the fill covers that stretch of border and the outline runs unbroken. */
176
- .surface::after {
177
- content: "";
178
- position: absolute;
179
- z-index: 1;
180
- inset-inline-start: var(--ui-space-3);
181
- inset-block-end: calc(var(--ui-tooltip-arrow-size, 0.5rem) / -2 - 0.5px);
182
- inline-size: var(--ui-tooltip-arrow-size, 0.5rem);
183
- block-size: var(--ui-tooltip-arrow-size, 0.5rem);
184
- box-sizing: border-box;
185
- background: inherit;
186
- border: 0 solid var(--_tooltip-line);
187
- border-inline-end-width: 1px;
188
- border-block-end-width: 1px;
189
- border-end-end-radius: 1px;
190
- transform: rotate(45deg);
191
- }
236
+ /* A rotated square shares the surface fill and draws the two outward border edges. Its centre sits on
237
+ * the surface border line, so the fill covers that stretch of border and the outline runs unbroken. */
238
+ .surface::after {
239
+ content: "";
240
+ position: absolute;
241
+ z-index: 1;
242
+ inset-inline-start: var(--ui-space-3);
243
+ inset-block-end: calc(var(--ui-tooltip-arrow-size, 0.5rem) / -2 - 0.5px);
244
+ inline-size: var(--ui-tooltip-arrow-size, 0.5rem);
245
+ block-size: var(--ui-tooltip-arrow-size, 0.5rem);
246
+ box-sizing: border-box;
247
+ background: inherit;
248
+ border: 0 solid var(--_tooltip-line);
249
+ border-inline-end-width: 1px;
250
+ border-block-end-width: 1px;
251
+ border-end-end-radius: 1px;
252
+ transform: rotate(45deg);
253
+ }
192
254
 
193
- :is([data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-start"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-end"]) .surface::after {
194
- inset-block-start: calc(var(--ui-tooltip-arrow-size, 0.5rem) / -2 - 0.5px);
195
- inset-block-end: auto;
196
- border-inline-end-width: 0;
197
- border-block-end-width: 0;
198
- border-inline-start-width: 1px;
199
- border-block-start-width: 1px;
200
- border-end-end-radius: 0;
201
- border-start-start-radius: 1px;
202
- }
255
+ :is([data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-start"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-end"])
256
+ .surface::after {
257
+ inset-block-start: calc(var(--ui-tooltip-arrow-size, 0.5rem) / -2 - 0.5px);
258
+ inset-block-end: auto;
259
+ border-inline-end-width: 0;
260
+ border-block-end-width: 0;
261
+ border-inline-start-width: 1px;
262
+ border-block-start-width: 1px;
263
+ border-end-end-radius: 0;
264
+ border-start-start-radius: 1px;
265
+ }
203
266
 
204
- :is([data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=top-end"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-end"]) .surface::after {
205
- inset-inline-start: auto;
206
- inset-inline-end: var(--ui-space-3);
207
- }
267
+ :is([data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=top-end"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-end"])
268
+ .surface::after {
269
+ inset-inline-start: auto;
270
+ inset-inline-end: var(--ui-space-3);
271
+ }
208
272
 
209
- [data-component~="ui-tooltip"]:popover-open {
210
- opacity: 1;
211
- transform: translateY(0);
212
- }
273
+ [data-component~="ui-tooltip"]:popover-open {
274
+ opacity: 1;
275
+ transform: translateY(0);
276
+ }
213
277
 
214
- @starting-style {
215
- [data-component~="ui-tooltip"]:popover-open {
216
- opacity: 0;
217
- transform: translateY(4px);
218
- }
219
- }
278
+ @starting-style {
279
+ [data-component~="ui-tooltip"]:popover-open {
280
+ opacity: 0;
281
+ transform: translateY(4px);
282
+ }
283
+ }
220
284
 
221
- [data-component~="ui-tooltip"][hidden] {
222
- display: none;
223
- }
285
+ [data-component~="ui-tooltip"][hidden] {
286
+ display: none;
287
+ }
224
288
 
225
- @media (prefers-reduced-motion: reduce) {
226
- [data-component~="ui-tooltip"] {
227
- transition: none;
228
- }
229
- }
289
+ @media (prefers-reduced-motion: reduce) {
290
+ [data-component~="ui-tooltip"] {
291
+ transition: none;
292
+ }
293
+ }
230
294
  </style>
package/vue/UiTopBar.vue CHANGED
@@ -1,56 +1,65 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.1 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.2 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
-
4
- defineOptions({ inheritAttrs: false });
5
-
3
+ defineOptions({ inheritAttrs: false })
6
4
  </script>
7
5
 
8
6
  <template>
9
- <header data-component="ui-top-bar" v-bind="$attrs"><div class="leading"><slot name="leading"></slot></div><div class="title"><slot></slot></div><div class="search"><slot name="search"></slot></div><div class="actions"><slot name="actions"></slot></div></header>
7
+ <header data-component="ui-top-bar" v-bind="$attrs">
8
+ <div class="leading"><slot name="leading" /></div>
9
+ <div class="title"><slot /></div>
10
+ <div class="search"><slot name="search" /></div>
11
+ <div class="actions"><slot name="actions" /></div>
12
+ </header>
10
13
  </template>
11
14
 
12
15
  <style scoped>
13
16
  [data-component~="ui-top-bar"] {
14
- position: sticky;
15
- inset-block-start: 0;
16
- z-index: var(--ui-top-bar-z-index, 100);
17
- min-block-size: calc(var(--ui-top-bar-height, 56px) + env(safe-area-inset-top));
18
- display: flex;
19
- align-items: center;
20
- gap: var(--ui-top-bar-gap, var(--ui-space-3, 0.75rem));
21
- padding-block-start: env(safe-area-inset-top);
22
- padding-inline-start: max(var(--ui-top-bar-padding-inline, var(--ui-space-4, 1rem)), env(safe-area-inset-left));
23
- padding-inline-end: max(var(--ui-top-bar-padding-inline, var(--ui-space-4, 1rem)), env(safe-area-inset-right));
24
- background: var(--ui-top-bar-bg, var(--ui-surface-elevated));
25
- border-block-end: 1px solid var(--ui-top-bar-border, var(--ui-border-default));
26
- }
17
+ position: sticky;
18
+ inset-block-start: 0;
19
+ z-index: var(--ui-top-bar-z-index, 100);
20
+ min-block-size: calc(var(--ui-top-bar-height, 56px) + env(safe-area-inset-top));
21
+ display: flex;
22
+ align-items: center;
23
+ gap: var(--ui-top-bar-gap, var(--ui-space-3));
24
+ padding-block-start: env(safe-area-inset-top);
25
+ padding-inline-start: max(
26
+ var(--ui-top-bar-padding-inline, var(--ui-space-4)),
27
+ env(safe-area-inset-left)
28
+ );
29
+ padding-inline-end: max(
30
+ var(--ui-top-bar-padding-inline, var(--ui-space-4)),
31
+ env(safe-area-inset-right)
32
+ );
33
+ background: var(--ui-top-bar-surface, var(--ui-surface-elevated));
34
+ border-block-end: 1px solid var(--ui-top-bar-border, var(--ui-border-default));
35
+ }
27
36
 
28
- .leading,
29
- .search,
30
- .actions {
31
- display: flex;
32
- align-items: center;
33
- flex-shrink: 0;
34
- }
37
+ .leading,
38
+ .search,
39
+ .actions {
40
+ display: flex;
41
+ align-items: center;
42
+ flex-shrink: 0;
43
+ }
35
44
 
36
- .actions {
37
- gap: var(--ui-top-bar-actions-gap, var(--ui-space-1, 0.25rem));
38
- }
45
+ .actions {
46
+ gap: var(--ui-top-bar-actions-gap, var(--ui-space-1));
47
+ }
39
48
 
40
- .title {
41
- min-inline-size: 0;
42
- flex: 1;
43
- }
49
+ .title {
50
+ min-inline-size: 0;
51
+ flex: 1;
52
+ }
44
53
 
45
- /* An unused region takes no space, so it adds no gap. */
46
- .leading:empty,
47
- .search:empty,
48
- .actions:empty {
49
- display: none;
50
- }
54
+ /* An unused region takes no space, so it adds no gap. */
55
+ .leading:empty,
56
+ .search:empty,
57
+ .actions:empty {
58
+ display: none;
59
+ }
51
60
 
52
- /* A component that sets its display still honours the hidden attribute on its root. */
53
- [data-component~="ui-top-bar"][hidden] {
54
- display: none;
55
- }
61
+ /* A component that sets its display still honours the hidden attribute on its root. */
62
+ [data-component~="ui-top-bar"][hidden] {
63
+ display: none;
64
+ }
56
65
  </style>
package/vue/UiTree.d.ts CHANGED
@@ -1,13 +1,15 @@
1
1
  type __VLS_Props = {
2
- hoverExpandDelay?: number | null;
3
- label?: string | null;
4
- maxDepth?: number | null;
2
+ density?: 'comfortable' | 'compact';
3
+ hoverExpandDelay?: number;
4
+ label?: string;
5
+ maxDepth?: number;
5
6
  };
6
7
  declare var __VLS_1: {};
7
8
  type __VLS_Slots = {} & {
8
9
  default?: (props: typeof __VLS_1) => any;
9
10
  };
10
11
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ "update:maxDepth": (value: number) => any;
11
13
  reorder: (detail: {
12
14
  readonly sourceId: string;
13
15
  readonly targetId: string;
@@ -28,6 +30,7 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
28
30
  readonly trigger: "keyboard" | "pointer" | "programmatic";
29
31
  }) => any;
30
32
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
33
+ "onUpdate:maxDepth"?: ((value: number) => any) | undefined;
31
34
  onReorder?: ((detail: {
32
35
  readonly sourceId: string;
33
36
  readonly targetId: string;
@@ -48,9 +51,10 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {},
48
51
  readonly trigger: "keyboard" | "pointer" | "programmatic";
49
52
  }) => any) | undefined;
50
53
  }>, {
51
- label: string | null;
52
- hoverExpandDelay: number | null;
53
- maxDepth: number | null;
54
+ label: string;
55
+ density: "comfortable" | "compact";
56
+ hoverExpandDelay: number;
57
+ maxDepth: number;
54
58
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
55
59
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
56
60
  declare const _default: typeof __VLS_export;