@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
@@ -1,124 +1,156 @@
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-form-field/ui-form-field.js";
5
-
6
- defineOptions({ inheritAttrs: false });
7
-
8
- const props = withDefaults(defineProps<{
9
- disabled?: boolean | null;
10
- invalid?: boolean | null;
11
- required?: boolean | null;
12
- }>(), {
13
- disabled: false,
14
- invalid: false,
15
- required: false,
16
- });
17
- const root = ref<HTMLElement | null>(null);
18
- const refs: Record<string, Element | undefined> = {};
3
+ import { computed, onBeforeUnmount, onMounted, ref, shallowRef, watchEffect } from 'vue'
4
+ import * as controllerModule from '../components/ui-form-field/ui-form-field.js'
5
+
6
+ defineOptions({ inheritAttrs: false })
7
+
8
+ const props = withDefaults(
9
+ defineProps<{
10
+ disabled?: boolean
11
+ invalid?: boolean
12
+ required?: boolean
13
+ }>(),
14
+ {
15
+ disabled: false,
16
+ invalid: false,
17
+ required: false,
18
+ },
19
+ )
20
+
21
+ const root = ref<HTMLElement | null>(null)
19
22
 
20
23
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
21
- const dispatch = (name: string, detail?: unknown): boolean => {
22
- return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail })) ?? true;
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
+ }
24
28
 
25
29
  function read(name: string): unknown {
26
- return (props as Record<string, unknown>)[name];
30
+ return (props as Record<string, unknown>)[name]
27
31
  }
28
32
 
29
33
  function write(name: string, value: unknown): boolean {
30
- throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
34
+ throw new TypeError(`Only declared state is writable; \`${name}\` is not.`)
31
35
  }
32
36
 
33
- const stops: Array<() => void> = [];
37
+ const stops: Array<() => void> = []
34
38
  const host = {
35
- get element(): Element { return root.value as Element; },
39
+ get element(): Element {
40
+ return root.value as Element
41
+ },
36
42
  state: new Proxy({} as Record<string, unknown>, {
37
- get: (_target, name) => typeof name === "string" ? read(name) : undefined,
38
- set: (_target, name, value) => typeof name === "string" && write(name, value),
43
+ get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
44
+ set: (_target, name, value) => typeof name === 'string' && write(name, value),
39
45
  }),
40
- refs: refs as Readonly<Record<string, Element>>,
46
+ refs: {} as Readonly<Record<string, Element>>,
41
47
  elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
42
48
  get: (_target, name) => {
43
- if (typeof name !== "string" || root.value === null) return undefined;
44
- const form = root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form");
45
- return form?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined;
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
46
55
  },
47
56
  }),
48
57
  signal<T>(initialValue: T) {
49
- const value = shallowRef(initialValue);
58
+ const value = shallowRef(initialValue)
50
59
  return {
51
60
  get: (): T => value.value,
52
- set: (next: T): void => { if (!Object.is(value.value, next)) value.value = next; },
53
- update: (next: (current: T) => T): void => { const updated = next(value.value); if (!Object.is(value.value, updated)) value.value = updated; },
54
- };
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
+ }
55
69
  },
56
70
  computed<T>(compute: () => T) {
57
- const value = computed(compute);
58
- return { get: (): T => value.value };
71
+ const value = computed(compute)
72
+ return { get: (): T => value.value }
59
73
  },
60
74
  effect(run: () => void | (() => void)): () => void {
61
75
  const stop = watchEffect((onCleanup) => {
62
- const cleanup = run();
63
- if (typeof cleanup === "function") onCleanup(cleanup);
64
- }, { flush: "post" });
65
- stops.push(stop);
66
- return stop;
76
+ const cleanup = run()
77
+ if (typeof cleanup === 'function') onCleanup(cleanup)
78
+ }, { flush: 'post' })
79
+ stops.push(stop)
80
+ return stop
67
81
  },
68
82
  on(event: string, listener: EventListener): () => void {
69
- const element = root.value;
70
- element?.addEventListener(event, listener);
71
- const off = (): void => element?.removeEventListener(event, listener);
72
- stops.push(off);
73
- return off;
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
74
88
  },
75
89
  dispatch,
76
- };
90
+ }
77
91
 
78
- let cleanup: void | (() => void);
79
- let ready: Promise<void> | undefined;
92
+ let cleanup: void | (() => void)
93
+ let ready: Promise<void> | undefined
80
94
  onMounted(() => {
81
- ready = Promise.resolve(controllerModule.default(host as never)).then((result) => { cleanup = result; });
82
- });
95
+ ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
96
+ cleanup = result
97
+ })
98
+ })
83
99
  onBeforeUnmount(() => {
84
- for (const stop of stops.splice(0)) stop();
85
- if (typeof cleanup === "function") cleanup();
86
- });
100
+ for (const stop of stops.splice(0)) stop()
101
+ if (typeof cleanup === 'function') cleanup()
102
+ })
87
103
  </script>
88
104
 
89
105
  <template>
90
- <div data-component="ui-form-field" v-bind="$attrs" ref="root"><slot name="label"></slot><slot></slot><slot name="help"></slot><slot name="error"></slot></div>
106
+ <div data-component="ui-form-field" v-bind="$attrs" ref="root">
107
+ <div class="label"><slot name="label" /></div>
108
+ <slot />
109
+ <div class="help"><slot name="help" /></div>
110
+ <div class="error"><slot name="error" /></div>
111
+ </div>
91
112
  </template>
92
113
 
93
114
  <style scoped>
94
115
  [data-component~="ui-form-field"] {
95
- display: grid;
96
- gap: var(--ui-space-2);
97
- min-inline-size: 0;
98
- align-content: start;
99
- color: var(--ui-text-primary);
100
- }
116
+ display: grid;
117
+ gap: var(--ui-space-2);
118
+ min-inline-size: 0;
119
+ align-content: start;
120
+ color: var(--ui-text-primary);
121
+ }
101
122
 
102
- :slotted([slot="label"]) {
103
- color: var(--ui-text-secondary);
104
- font-size: 0.95rem;
105
- }
123
+ /* Each named region styles whatever fills it, however it was slotted (slot="…" in HTML, #label
124
+ in Vue), and generates no box of its own, so an empty region adds no gap. */
125
+ .label,
126
+ .help,
127
+ .error {
128
+ display: contents;
129
+ }
106
130
 
107
- :slotted([slot="help"]) {
108
- min-block-size: var(--ui-form-field-help-min-block-size, 0);
109
- color: var(--ui-text-muted);
110
- font-size: 0.875rem;
111
- line-height: var(--ui-line-height-md);
112
- }
131
+ .label {
132
+ color: var(--ui-text-secondary);
133
+ font-size: 0.95rem;
134
+ }
113
135
 
114
- :slotted([slot="error"]),
115
- :slotted([role="alert"]) {
116
- color: var(--ui-accent-active);
117
- font-size: 0.875rem;
118
- }
136
+ .help {
137
+ color: var(--ui-text-muted);
138
+ font-size: 0.875rem;
139
+ line-height: var(--ui-line-height-md);
140
+ }
119
141
 
120
- /* A component that sets its display still honours the hidden attribute on its root. */
121
- [data-component~="ui-form-field"][hidden] {
122
- display: none;
123
- }
142
+ .help > :slotted(*) {
143
+ min-block-size: var(--ui-form-field-help-min-block-size, 0);
144
+ }
145
+
146
+ .error,
147
+ :slotted([role="alert"]) {
148
+ color: var(--ui-accent-active);
149
+ font-size: 0.875rem;
150
+ }
151
+
152
+ /* A component that sets its display still honours the hidden attribute on its root. */
153
+ [data-component~="ui-form-field"][hidden] {
154
+ display: none;
155
+ }
124
156
  </style>
package/vue/UiGrid.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  type __VLS_Props = {
2
- gap?: "xs" | "s" | "m" | "l" | "xl" | null;
3
- min?: "sm" | "md" | "lg" | null;
2
+ gap?: 'xs' | 's' | 'm' | 'l' | 'xl';
3
+ min?: 'sm' | 'md' | 'lg';
4
4
  };
5
5
  declare var __VLS_1: {};
6
6
  type __VLS_Slots = {} & {
package/vue/UiGrid.vue CHANGED
@@ -1,72 +1,66 @@
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 } from "vue";
3
+ import { computed } from 'vue'
4
4
 
5
- defineOptions({ inheritAttrs: false });
6
-
7
- const hn = {
8
- 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),
9
- };
5
+ defineOptions({ inheritAttrs: false })
10
6
 
11
7
  const props = defineProps<{
12
- gap?: "xs" | "s" | "m" | "l" | "xl" | null;
13
- min?: "sm" | "md" | "lg" | null;
14
- }>();
15
-
16
- /** The resolved values the styles' :host-state() rules test. */
17
- const hostState = computed(() => (["gap","min"] as const).flatMap((name) => {
18
- const value = read(name);
19
- const tokens: string[] = hn.t(value) ? [name] : [];
20
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
21
- return tokens;
22
- }).join(" "));
23
-
24
- function read(name: string): unknown {
25
- return (props as Record<string, unknown>)[name];
26
- }
8
+ gap?: 'xs' | 's' | 'm' | 'l' | 'xl'
9
+ min?: 'sm' | 'md' | 'lg'
10
+ }>()
27
11
 
12
+ /** The values the styles' :host-state() rules test. */
13
+ const hostState = computed(() =>
14
+ [
15
+ props.gap && `gap gap=${props.gap}`,
16
+ props.min && `min min=${props.min}`,
17
+ ].filter(Boolean).join(' ')
18
+ )
28
19
  </script>
29
20
 
30
21
  <template>
31
- <div data-component="ui-grid" v-bind="$attrs" :data-ui-grid-state="hostState || undefined"><slot></slot></div>
22
+ <div data-component="ui-grid" v-bind="$attrs" :data-ui-grid-state="hostState || undefined">
23
+ <slot />
24
+ </div>
32
25
  </template>
33
26
 
34
27
  <style scoped>
35
28
  [data-component~="ui-grid"] {
36
- --_grid-gap: var(--ui-space-4, 1rem);
37
- --_grid-min: 12rem;
38
- display: grid;
39
- gap: var(--ui-grid-gap, var(--_grid-gap));
40
- grid-template-columns: repeat(auto-fit, minmax(min(var(--ui-grid-min, var(--_grid-min)), 100%), 1fr));
41
- min-inline-size: 0;
42
- max-inline-size: 100%;
43
- margin: 0;
44
- }
29
+ --_grid-gap: var(--ui-space-4);
30
+ --_grid-min: 12rem;
31
+ display: grid;
32
+ gap: var(--ui-grid-gap, var(--_grid-gap));
33
+ grid-template-columns:
34
+ repeat(auto-fit, minmax(min(var(--ui-grid-min, var(--_grid-min)), 100%), 1fr));
35
+ min-inline-size: 0;
36
+ max-inline-size: 100%;
37
+ margin: 0;
38
+ }
45
39
 
46
- [data-component~="ui-grid"][data-ui-grid-state~="gap=xs"] {
47
- --_grid-gap: var(--ui-space-2, 0.5rem);
48
- }
49
- [data-component~="ui-grid"][data-ui-grid-state~="gap=s"] {
50
- --_grid-gap: var(--ui-space-3, 0.75rem);
51
- }
52
- [data-component~="ui-grid"][data-ui-grid-state~="gap=m"] {
53
- --_grid-gap: var(--ui-space-4, 1rem);
54
- }
55
- [data-component~="ui-grid"][data-ui-grid-state~="gap=l"] {
56
- --_grid-gap: var(--ui-space-5, 1.5rem);
57
- }
58
- [data-component~="ui-grid"][data-ui-grid-state~="gap=xl"] {
59
- --_grid-gap: var(--ui-space-6, 2rem);
60
- }
61
- [data-component~="ui-grid"][data-ui-grid-state~="min=md"] {
62
- --_grid-min: 16rem;
63
- }
64
- [data-component~="ui-grid"][data-ui-grid-state~="min=lg"] {
65
- --_grid-min: 20rem;
66
- }
40
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=xs"] {
41
+ --_grid-gap: var(--ui-space-2);
42
+ }
43
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=s"] {
44
+ --_grid-gap: var(--ui-space-3);
45
+ }
46
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=m"] {
47
+ --_grid-gap: var(--ui-space-4);
48
+ }
49
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=l"] {
50
+ --_grid-gap: var(--ui-space-5);
51
+ }
52
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=xl"] {
53
+ --_grid-gap: var(--ui-space-6);
54
+ }
55
+ [data-component~="ui-grid"][data-ui-grid-state~="min=md"] {
56
+ --_grid-min: 16rem;
57
+ }
58
+ [data-component~="ui-grid"][data-ui-grid-state~="min=lg"] {
59
+ --_grid-min: 20rem;
60
+ }
67
61
 
68
- /* A component that sets its display still honours the hidden attribute on its root. */
69
- [data-component~="ui-grid"][hidden] {
70
- display: none;
71
- }
62
+ /* A component that sets its display still honours the hidden attribute on its root. */
63
+ [data-component~="ui-grid"][hidden] {
64
+ display: none;
65
+ }
72
66
  </style>
package/vue/UiIcon.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  type __VLS_Props = {
2
- name?: string | null;
2
+ name?: string;
3
3
  };
4
4
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
5
- name: string | null;
5
+ name: string;
6
6
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
7
  declare const _default: typeof __VLS_export;
8
8
  export default _default;
package/vue/UiIcon.vue CHANGED
@@ -1,135 +1,164 @@
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-icon/ui-icon.js";
3
+ import { computed, onBeforeUnmount, onMounted, ref, shallowRef, watchEffect } from 'vue'
4
+ import * as controllerModule from '../components/ui-icon/ui-icon.js'
5
5
 
6
- defineOptions({ inheritAttrs: false });
6
+ defineOptions({ inheritAttrs: false })
7
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
- shape: (items: unknown, where: ((item: any) => unknown) | undefined, sort: readonly string[], limit: unknown): any[] => {
13
- let list = Array.isArray(items) ? items.slice() : [];
14
- if (where !== undefined) list = list.filter((item) => hn.t(where(item)));
15
- if (sort.length > 0) {
16
- const field = (item: unknown, path: string): unknown => item !== null && typeof item === "object" && !Array.isArray(item)
17
- ? path.split(".").reduce<unknown>((value, key) => (value as Record<string, unknown> | undefined)?.[key], item)
18
- : item;
19
- const compare = (a: unknown, b: unknown): number => typeof a === "number" && typeof b === "number" ? a - b : hn.text(a).localeCompare(hn.text(b));
20
- list.sort((a, b) => {
21
- for (const key of sort) {
22
- const descending = key.startsWith("-");
23
- const order = compare(field(a, descending ? key.slice(1) : key), field(b, descending ? key.slice(1) : key));
24
- if (order !== 0) return descending ? -order : order;
25
- }
26
- return 0;
27
- });
28
- }
29
- return typeof limit === "number" ? list.slice(0, Math.max(0, Math.trunc(limit))) : list;
8
+ const props = withDefaults(
9
+ defineProps<{
10
+ name?: string
11
+ }>(),
12
+ {
13
+ name: '',
30
14
  },
31
- };
15
+ )
32
16
 
33
- const props = withDefaults(defineProps<{
34
- name?: string | null;
35
- }>(), {
36
- name: "",
37
- });
38
- const root = ref<HTMLElement | null>(null);
39
- const refs: Record<string, Element | undefined> = {};
40
- const state_shapes = ref<any>([]);
17
+ const root = ref<HTMLElement | null>(null)
18
+ const shapes = ref<
19
+ {
20
+ tag: 'path' | 'circle' | 'rect'
21
+ d?: string
22
+ cx?: string
23
+ cy?: string
24
+ r?: string
25
+ x?: string
26
+ y?: string
27
+ width?: string
28
+ height?: string
29
+ rx?: string
30
+ }[]
31
+ >([])
41
32
 
42
33
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
43
- const dispatch = (name: string, detail?: unknown): boolean => {
44
- return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail })) ?? true;
45
- };
34
+ function dispatch(name: string, detail?: unknown): boolean {
35
+ return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }))
36
+ ?? true
37
+ }
46
38
 
47
39
  function read(name: string): unknown {
48
- if (name === "shapes") return state_shapes.value;
49
- return (props as Record<string, unknown>)[name];
40
+ if (name === 'shapes') return shapes.value
41
+ return (props as Record<string, unknown>)[name]
50
42
  }
51
43
 
52
44
  function write(name: string, value: unknown): boolean {
53
- if (name === "shapes") { state_shapes.value = value; return true; }
54
- throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
45
+ if (name === 'shapes') {
46
+ shapes.value = value as never
47
+ return true
48
+ }
49
+ throw new TypeError(`Only declared state is writable; \`${name}\` is not.`)
55
50
  }
56
51
 
57
- const stops: Array<() => void> = [];
52
+ const stops: Array<() => void> = []
58
53
  const host = {
59
- get element(): Element { return root.value as Element; },
54
+ get element(): Element {
55
+ return root.value as Element
56
+ },
60
57
  state: new Proxy({} as Record<string, unknown>, {
61
- get: (_target, name) => typeof name === "string" ? read(name) : undefined,
62
- set: (_target, name, value) => typeof name === "string" && write(name, value),
58
+ get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
59
+ set: (_target, name, value) => typeof name === 'string' && write(name, value),
63
60
  }),
64
- refs: refs as Readonly<Record<string, Element>>,
61
+ refs: {} as Readonly<Record<string, Element>>,
65
62
  elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
66
63
  get: (_target, name) => {
67
- if (typeof name !== "string" || root.value === null) return undefined;
68
- const form = root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form");
69
- return form?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined;
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
70
  },
71
71
  }),
72
72
  signal<T>(initialValue: T) {
73
- const value = shallowRef(initialValue);
73
+ const value = shallowRef(initialValue)
74
74
  return {
75
75
  get: (): T => value.value,
76
- set: (next: T): void => { if (!Object.is(value.value, next)) value.value = next; },
77
- update: (next: (current: T) => T): void => { const updated = next(value.value); if (!Object.is(value.value, updated)) value.value = updated; },
78
- };
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
+ }
79
84
  },
80
85
  computed<T>(compute: () => T) {
81
- const value = computed(compute);
82
- return { get: (): T => value.value };
86
+ const value = computed(compute)
87
+ return { get: (): T => value.value }
83
88
  },
84
89
  effect(run: () => void | (() => void)): () => void {
85
90
  const stop = watchEffect((onCleanup) => {
86
- const cleanup = run();
87
- if (typeof cleanup === "function") onCleanup(cleanup);
88
- }, { flush: "post" });
89
- stops.push(stop);
90
- return stop;
91
+ const cleanup = run()
92
+ if (typeof cleanup === 'function') onCleanup(cleanup)
93
+ }, { flush: 'post' })
94
+ stops.push(stop)
95
+ return stop
91
96
  },
92
97
  on(event: string, listener: EventListener): () => void {
93
- const element = root.value;
94
- element?.addEventListener(event, listener);
95
- const off = (): void => element?.removeEventListener(event, listener);
96
- stops.push(off);
97
- return off;
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
98
103
  },
99
104
  dispatch,
100
- };
105
+ }
101
106
 
102
- let cleanup: void | (() => void);
103
- let ready: Promise<void> | undefined;
107
+ let cleanup: void | (() => void)
108
+ let ready: Promise<void> | undefined
104
109
  onMounted(() => {
105
- ready = Promise.resolve(controllerModule.default(host as never)).then((result) => { cleanup = result; });
106
- });
110
+ ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
111
+ cleanup = result
112
+ })
113
+ })
107
114
  onBeforeUnmount(() => {
108
- for (const stop of stops.splice(0)) stop();
109
- if (typeof cleanup === "function") cleanup();
110
- });
115
+ for (const stop of stops.splice(0)) stop()
116
+ if (typeof cleanup === 'function') cleanup()
117
+ })
111
118
  </script>
112
119
 
113
120
  <template>
114
- <span data-component="ui-icon" aria-hidden="true" v-bind="$attrs" ref="root"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" focusable="false"><template v-for="(shape, index) in hn.shape(state_shapes, undefined, [], undefined)" :key="index"><g><template v-if="hn.t(((shape)?.tag === 'path'))"><path :d="hn.attr((shape)?.d)"></path></template><template v-if="hn.t(((shape)?.tag === 'circle'))"><circle :cx="hn.attr((shape)?.cx)" :cy="hn.attr((shape)?.cy)" :r="hn.attr((shape)?.r)"></circle></template><template v-if="hn.t(((shape)?.tag === 'rect'))"><rect :x="hn.attr((shape)?.x)" :y="hn.attr((shape)?.y)" :width="hn.attr((shape)?.width)" :height="hn.attr((shape)?.height)" :rx="hn.attr((shape)?.rx)"></rect></template></g></template></svg></span>
121
+ <span data-component="ui-icon" aria-hidden="true" v-bind="$attrs" ref="root"><svg
122
+ viewBox="0 0 24 24"
123
+ fill="none"
124
+ stroke="currentColor"
125
+ stroke-width="2"
126
+ stroke-linecap="round"
127
+ stroke-linejoin="round"
128
+ focusable="false"
129
+ >
130
+ <g v-for="(shape, index) in shapes" :key="index">
131
+ <path v-if="shape.tag === 'path'" :d="shape.d"></path>
132
+ <circle v-if="shape.tag === 'circle'" :cx="shape.cx" :cy="shape.cy" :r="shape.r"></circle>
133
+ <rect
134
+ v-if="shape.tag === 'rect'"
135
+ :x="shape.x"
136
+ :y="shape.y"
137
+ :width="shape.width"
138
+ :height="shape.height"
139
+ :rx="shape.rx"
140
+ >
141
+ </rect>
142
+ </g>
143
+ </svg></span>
115
144
  </template>
116
145
 
117
146
  <style scoped>
118
147
  [data-component~="ui-icon"] {
119
- display: inline-flex;
120
- flex: none;
121
- inline-size: var(--ui-icon-size, 1em);
122
- block-size: var(--ui-icon-size, 1em);
123
- }
148
+ display: inline-flex;
149
+ flex: none;
150
+ inline-size: var(--ui-icon-size, 1em);
151
+ block-size: var(--ui-icon-size, 1em);
152
+ }
124
153
 
125
- svg {
126
- inline-size: 100%;
127
- block-size: 100%;
128
- stroke-width: var(--ui-icon-stroke-width, 2);
129
- }
154
+ svg {
155
+ inline-size: 100%;
156
+ block-size: 100%;
157
+ stroke-width: var(--ui-icon-stroke-width, 2);
158
+ }
130
159
 
131
- /* A component that sets its display still honours the hidden attribute on its root. */
132
- [data-component~="ui-icon"][hidden] {
133
- display: none;
134
- }
160
+ /* A component that sets its display still honours the hidden attribute on its root. */
161
+ [data-component~="ui-icon"][hidden] {
162
+ display: none;
163
+ }
135
164
  </style>