@threadlabs/looma 0.5.0 → 0.5.2

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 (313) hide show
  1. package/README.md +1 -1
  2. package/components/shared/input-modality.d.ts +8 -0
  3. package/components/shared/input-modality.js +2 -0
  4. package/components/ui-button/ui-button.html +42 -1
  5. package/components/ui-combobox/ui-combobox.html +12 -4
  6. package/components/ui-dialog/ui-dialog.html +13 -0
  7. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +1 -1
  8. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  9. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +6 -2
  10. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +20 -4
  11. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +8 -4
  12. package/components/ui-form-field/ui-form-field.html +18 -7
  13. package/components/ui-icon/ui-icon.html +5 -1
  14. package/components/ui-icon-button/ui-icon-button.html +44 -1
  15. package/components/ui-popover/ui-popover.js +10 -2
  16. package/components/ui-search-shell/ui-search-shell.html +7 -0
  17. package/components/ui-search-shell/ui-search-shell.js +9 -0
  18. package/components/ui-tabs/ui-tabs.html +1 -1
  19. package/components/ui-toast-region/ui-toast-region.html +1 -1
  20. package/components/ui-tree-item/ui-tree-item.html +6 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +2 -2
  23. package/package.json +2 -2
  24. package/styles/ui-affordance-scope.css +1 -1
  25. package/styles/ui-avatar-group.css +1 -1
  26. package/styles/ui-avatar.css +1 -1
  27. package/styles/ui-badge.css +1 -1
  28. package/styles/ui-button.css +42 -2
  29. package/styles/ui-callout.css +1 -1
  30. package/styles/ui-checkbox.css +1 -1
  31. package/styles/ui-cluster.css +1 -1
  32. package/styles/ui-combobox.css +1 -1
  33. package/styles/ui-container.css +1 -1
  34. package/styles/ui-context-menu.css +1 -1
  35. package/styles/ui-dialog.css +18 -1
  36. package/styles/ui-disclosure.css +1 -1
  37. package/styles/ui-editable.css +1 -1
  38. package/styles/ui-editor-insert-table-grid.css +1 -1
  39. package/styles/ui-editor-mention-menu.css +1 -1
  40. package/styles/ui-editor-slash-menu.css +1 -1
  41. package/styles/ui-editor-table-context-menu.css +1 -1
  42. package/styles/ui-editor-table-overlay.css +1 -1
  43. package/styles/ui-editor-table-toolbar.css +1 -1
  44. package/styles/ui-editor-toolbar.css +1 -1
  45. package/styles/ui-floating-action-button.css +1 -1
  46. package/styles/ui-form-field.css +24 -10
  47. package/styles/ui-grid.css +1 -1
  48. package/styles/ui-icon-button.css +52 -2
  49. package/styles/ui-icon.css +1 -1
  50. package/styles/ui-input.css +1 -1
  51. package/styles/ui-menu-item.css +1 -1
  52. package/styles/ui-menu.css +1 -1
  53. package/styles/ui-popover.css +1 -1
  54. package/styles/ui-radio-group.css +1 -1
  55. package/styles/ui-radio.css +1 -1
  56. package/styles/ui-reel.css +1 -1
  57. package/styles/ui-search-result-row.css +1 -1
  58. package/styles/ui-search-shell.css +11 -2
  59. package/styles/ui-select.css +1 -1
  60. package/styles/ui-separator.css +1 -1
  61. package/styles/ui-sidebar.css +1 -1
  62. package/styles/ui-stack.css +1 -1
  63. package/styles/ui-switch.css +1 -1
  64. package/styles/ui-switcher.css +1 -1
  65. package/styles/ui-tabs.css +1 -1
  66. package/styles/ui-textarea.css +1 -1
  67. package/styles/ui-toast-region.css +1 -1
  68. package/styles/ui-tooltip.css +1 -1
  69. package/styles/ui-top-bar.css +1 -1
  70. package/styles/ui-tree-item.css +10 -2
  71. package/styles/ui-tree.css +1 -1
  72. package/vanilla/UiAffordanceScope.d.ts +1 -1
  73. package/vanilla/UiAffordanceScope.js +2 -2
  74. package/vanilla/UiAvatar.d.ts +1 -1
  75. package/vanilla/UiAvatar.js +2 -2
  76. package/vanilla/UiAvatarGroup.d.ts +1 -1
  77. package/vanilla/UiAvatarGroup.js +2 -2
  78. package/vanilla/UiBadge.d.ts +1 -1
  79. package/vanilla/UiBadge.js +2 -2
  80. package/vanilla/UiButton.d.ts +3 -1
  81. package/vanilla/UiButton.js +3 -3
  82. package/vanilla/UiCallout.d.ts +1 -1
  83. package/vanilla/UiCallout.js +2 -2
  84. package/vanilla/UiCheckbox.d.ts +1 -1
  85. package/vanilla/UiCheckbox.js +2 -2
  86. package/vanilla/UiCluster.d.ts +1 -1
  87. package/vanilla/UiCluster.js +2 -2
  88. package/vanilla/UiCombobox.d.ts +1 -1
  89. package/vanilla/UiCombobox.js +3 -3
  90. package/vanilla/UiContainer.d.ts +1 -1
  91. package/vanilla/UiContainer.js +2 -2
  92. package/vanilla/UiContextMenu.d.ts +1 -1
  93. package/vanilla/UiContextMenu.js +2 -2
  94. package/vanilla/UiDialog.d.ts +1 -1
  95. package/vanilla/UiDialog.js +2 -2
  96. package/vanilla/UiDisclosure.d.ts +1 -1
  97. package/vanilla/UiDisclosure.js +2 -2
  98. package/vanilla/UiEditable.d.ts +1 -1
  99. package/vanilla/UiEditable.js +2 -2
  100. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  101. package/vanilla/UiEditorInsertTableGrid.js +3 -3
  102. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  103. package/vanilla/UiEditorMentionMenu.js +3 -3
  104. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  105. package/vanilla/UiEditorSlashMenu.js +2 -2
  106. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  107. package/vanilla/UiEditorTableContextMenu.js +3 -3
  108. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  109. package/vanilla/UiEditorTableOverlay.js +3 -3
  110. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  111. package/vanilla/UiEditorTableToolbar.js +3 -3
  112. package/vanilla/UiEditorToolbar.d.ts +1 -1
  113. package/vanilla/UiEditorToolbar.js +2 -2
  114. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  115. package/vanilla/UiFloatingActionButton.js +2 -2
  116. package/vanilla/UiFormField.d.ts +1 -1
  117. package/vanilla/UiFormField.js +15 -6
  118. package/vanilla/UiGrid.d.ts +1 -1
  119. package/vanilla/UiGrid.js +2 -2
  120. package/vanilla/UiIcon.d.ts +1 -1
  121. package/vanilla/UiIcon.js +3 -3
  122. package/vanilla/UiIconButton.d.ts +1 -1
  123. package/vanilla/UiIconButton.js +2 -2
  124. package/vanilla/UiInput.d.ts +1 -1
  125. package/vanilla/UiInput.js +2 -2
  126. package/vanilla/UiMenu.d.ts +1 -1
  127. package/vanilla/UiMenu.js +2 -2
  128. package/vanilla/UiMenuItem.d.ts +1 -1
  129. package/vanilla/UiMenuItem.js +2 -2
  130. package/vanilla/UiPopover.d.ts +1 -1
  131. package/vanilla/UiPopover.js +2 -2
  132. package/vanilla/UiRadio.d.ts +1 -1
  133. package/vanilla/UiRadio.js +2 -2
  134. package/vanilla/UiRadioGroup.d.ts +1 -1
  135. package/vanilla/UiRadioGroup.js +2 -2
  136. package/vanilla/UiReel.d.ts +1 -1
  137. package/vanilla/UiReel.js +2 -2
  138. package/vanilla/UiSearchResultRow.d.ts +1 -1
  139. package/vanilla/UiSearchResultRow.js +2 -2
  140. package/vanilla/UiSearchShell.d.ts +1 -1
  141. package/vanilla/UiSearchShell.js +2 -2
  142. package/vanilla/UiSelect.d.ts +1 -1
  143. package/vanilla/UiSelect.js +2 -2
  144. package/vanilla/UiSeparator.d.ts +1 -1
  145. package/vanilla/UiSeparator.js +2 -2
  146. package/vanilla/UiSidebar.d.ts +1 -1
  147. package/vanilla/UiSidebar.js +2 -2
  148. package/vanilla/UiStack.d.ts +1 -1
  149. package/vanilla/UiStack.js +2 -2
  150. package/vanilla/UiSwitch.d.ts +1 -1
  151. package/vanilla/UiSwitch.js +2 -2
  152. package/vanilla/UiSwitcher.d.ts +1 -1
  153. package/vanilla/UiSwitcher.js +2 -2
  154. package/vanilla/UiTabs.d.ts +1 -1
  155. package/vanilla/UiTabs.js +3 -3
  156. package/vanilla/UiTextarea.d.ts +1 -1
  157. package/vanilla/UiTextarea.js +2 -2
  158. package/vanilla/UiToastRegion.d.ts +1 -1
  159. package/vanilla/UiToastRegion.js +3 -3
  160. package/vanilla/UiTooltip.d.ts +1 -1
  161. package/vanilla/UiTooltip.js +2 -2
  162. package/vanilla/UiTopBar.d.ts +1 -1
  163. package/vanilla/UiTopBar.js +1 -1
  164. package/vanilla/UiTree.d.ts +1 -1
  165. package/vanilla/UiTree.js +2 -2
  166. package/vanilla/UiTreeItem.d.ts +1 -1
  167. package/vanilla/UiTreeItem.js +2 -2
  168. package/vue/UiAffordanceScope.d.ts +2 -2
  169. package/vue/UiAffordanceScope.vue +92 -73
  170. package/vue/UiAvatar.d.ts +7 -7
  171. package/vue/UiAvatar.vue +145 -105
  172. package/vue/UiAvatarGroup.d.ts +4 -4
  173. package/vue/UiAvatarGroup.vue +134 -118
  174. package/vue/UiBadge.d.ts +4 -4
  175. package/vue/UiBadge.vue +113 -114
  176. package/vue/UiButton.d.ts +10 -6
  177. package/vue/UiButton.vue +289 -220
  178. package/vue/UiCallout.d.ts +2 -2
  179. package/vue/UiCallout.vue +154 -87
  180. package/vue/UiCheckbox.d.ts +14 -10
  181. package/vue/UiCheckbox.vue +228 -162
  182. package/vue/UiCluster.d.ts +2 -2
  183. package/vue/UiCluster.vue +53 -60
  184. package/vue/UiCombobox.d.ts +36 -32
  185. package/vue/UiCombobox.vue +1005 -416
  186. package/vue/UiContainer.d.ts +2 -2
  187. package/vue/UiContainer.vue +48 -51
  188. package/vue/UiContextMenu.d.ts +6 -4
  189. package/vue/UiContextMenu.vue +205 -116
  190. package/vue/UiDialog.d.ts +11 -9
  191. package/vue/UiDialog.vue +287 -212
  192. package/vue/UiDisclosure.d.ts +8 -6
  193. package/vue/UiDisclosure.vue +248 -159
  194. package/vue/UiEditable.d.ts +16 -12
  195. package/vue/UiEditable.vue +325 -205
  196. package/vue/UiEditorInsertTableGrid.d.ts +8 -8
  197. package/vue/UiEditorInsertTableGrid.vue +216 -157
  198. package/vue/UiEditorMentionMenu.d.ts +9 -9
  199. package/vue/UiEditorMentionMenu.vue +265 -222
  200. package/vue/UiEditorSlashMenu.d.ts +7 -7
  201. package/vue/UiEditorSlashMenu.vue +286 -240
  202. package/vue/UiEditorTableContextMenu.d.ts +5 -5
  203. package/vue/UiEditorTableContextMenu.vue +306 -193
  204. package/vue/UiEditorTableOverlay.d.ts +2 -2
  205. package/vue/UiEditorTableOverlay.vue +609 -369
  206. package/vue/UiEditorTableToolbar.d.ts +7 -7
  207. package/vue/UiEditorTableToolbar.vue +443 -268
  208. package/vue/UiEditorToolbar.d.ts +2 -2
  209. package/vue/UiEditorToolbar.vue +134 -121
  210. package/vue/UiFloatingActionButton.d.ts +6 -6
  211. package/vue/UiFloatingActionButton.vue +100 -99
  212. package/vue/UiFormField.d.ts +6 -6
  213. package/vue/UiFormField.vue +112 -80
  214. package/vue/UiGrid.d.ts +2 -2
  215. package/vue/UiGrid.vue +51 -57
  216. package/vue/UiIcon.d.ts +2 -2
  217. package/vue/UiIcon.vue +118 -89
  218. package/vue/UiIconButton.d.ts +11 -11
  219. package/vue/UiIconButton.vue +285 -206
  220. package/vue/UiInput.d.ts +9 -9
  221. package/vue/UiInput.vue +153 -127
  222. package/vue/UiMenu.d.ts +8 -6
  223. package/vue/UiMenu.vue +217 -143
  224. package/vue/UiMenuItem.d.ts +4 -4
  225. package/vue/UiMenuItem.vue +52 -46
  226. package/vue/UiPopover.d.ts +8 -6
  227. package/vue/UiPopover.vue +197 -137
  228. package/vue/UiRadio.d.ts +14 -10
  229. package/vue/UiRadio.vue +183 -117
  230. package/vue/UiRadioGroup.d.ts +14 -12
  231. package/vue/UiRadioGroup.vue +172 -111
  232. package/vue/UiReel.d.ts +3 -3
  233. package/vue/UiReel.vue +77 -77
  234. package/vue/UiSearchResultRow.d.ts +4 -4
  235. package/vue/UiSearchResultRow.vue +124 -115
  236. package/vue/UiSearchShell.d.ts +10 -8
  237. package/vue/UiSearchShell.vue +245 -176
  238. package/vue/UiSelect.d.ts +9 -9
  239. package/vue/UiSelect.vue +162 -134
  240. package/vue/UiSeparator.d.ts +2 -2
  241. package/vue/UiSeparator.vue +22 -27
  242. package/vue/UiSidebar.d.ts +20 -18
  243. package/vue/UiSidebar.vue +312 -224
  244. package/vue/UiStack.d.ts +3 -3
  245. package/vue/UiStack.vue +64 -70
  246. package/vue/UiSwitch.d.ts +12 -8
  247. package/vue/UiSwitch.vue +218 -150
  248. package/vue/UiSwitcher.d.ts +3 -3
  249. package/vue/UiSwitcher.vue +73 -75
  250. package/vue/UiTabs.d.ts +10 -8
  251. package/vue/UiTabs.vue +251 -210
  252. package/vue/UiTextarea.d.ts +11 -11
  253. package/vue/UiTextarea.vue +155 -128
  254. package/vue/UiToastRegion.d.ts +10 -8
  255. package/vue/UiToastRegion.vue +261 -198
  256. package/vue/UiTooltip.d.ts +14 -12
  257. package/vue/UiTooltip.vue +241 -177
  258. package/vue/UiTopBar.vue +51 -42
  259. package/vue/UiTree.d.ts +8 -6
  260. package/vue/UiTree.vue +157 -70
  261. package/vue/UiTreeItem.d.ts +24 -22
  262. package/vue/UiTreeItem.vue +456 -339
  263. package/vue/chunks/UiAffordanceScope.js +9 -16
  264. package/vue/chunks/UiAvatar.js +23 -29
  265. package/vue/chunks/UiAvatarGroup.js +16 -39
  266. package/vue/chunks/UiBadge.js +3 -12
  267. package/vue/chunks/UiButton.js +15 -18
  268. package/vue/chunks/UiCallout.js +8 -17
  269. package/vue/chunks/UiCheckbox.js +37 -40
  270. package/vue/chunks/UiCluster.js +3 -12
  271. package/vue/chunks/UiCombobox.js +224 -266
  272. package/vue/chunks/UiContainer.js +3 -12
  273. package/vue/chunks/UiContextMenu.js +39 -34
  274. package/vue/chunks/UiDialog.js +36 -39
  275. package/vue/chunks/UiDisclosure.js +43 -48
  276. package/vue/chunks/UiEditable.js +55 -57
  277. package/vue/chunks/UiEditorInsertTableGrid.js +55 -73
  278. package/vue/chunks/UiEditorMentionMenu.js +40 -81
  279. package/vue/chunks/UiEditorSlashMenu.js +28 -52
  280. package/vue/chunks/UiEditorTableContextMenu.js +32 -56
  281. package/vue/chunks/UiEditorTableOverlay.js +58 -82
  282. package/vue/chunks/UiEditorTableToolbar.js +61 -85
  283. package/vue/chunks/UiEditorToolbar.js +4 -13
  284. package/vue/chunks/UiFloatingActionButton.js +7 -21
  285. package/vue/chunks/UiFormField.js +15 -12
  286. package/vue/chunks/UiGrid.js +3 -12
  287. package/vue/chunks/UiIcon.js +20 -43
  288. package/vue/chunks/UiIconButton.js +16 -28
  289. package/vue/chunks/UiInput.js +20 -25
  290. package/vue/chunks/UiMenu.js +29 -33
  291. package/vue/chunks/UiMenuItem.js +4 -10
  292. package/vue/chunks/UiPopover.js +28 -29
  293. package/vue/chunks/UiRadio.js +36 -39
  294. package/vue/chunks/UiRadioGroup.js +30 -34
  295. package/vue/chunks/UiReel.js +6 -15
  296. package/vue/chunks/UiSearchResultRow.js +6 -19
  297. package/vue/chunks/UiSearchShell.js +25 -28
  298. package/vue/chunks/UiSelect.js +20 -23
  299. package/vue/chunks/UiSeparator.js +2 -8
  300. package/vue/chunks/UiSidebar.js +39 -44
  301. package/vue/chunks/UiStack.js +6 -15
  302. package/vue/chunks/UiSwitch.js +35 -38
  303. package/vue/chunks/UiSwitcher.js +6 -15
  304. package/vue/chunks/UiTabs.js +47 -85
  305. package/vue/chunks/UiTextarea.js +21 -26
  306. package/vue/chunks/UiToastRegion.js +38 -72
  307. package/vue/chunks/UiTooltip.js +34 -35
  308. package/vue/chunks/UiTopBar.js +1 -1
  309. package/vue/chunks/UiTree.js +20 -15
  310. package/vue/chunks/UiTreeItem.js +85 -102
  311. package/vue/components.css +3994 -3764
  312. package/vue/index.d.ts +1 -0
  313. package/vue/index.js +2 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threadlabs/looma",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "type": "module",
5
5
  "description": "Looma components as HTML, Vue, and plain DOM, with design tokens.",
6
6
  "license": "MIT",
@@ -77,7 +77,7 @@
77
77
  "./*.css"
78
78
  ],
79
79
  "dependencies": {
80
- "@nextwebwg/declarative-components": "^1.0.0-alpha.1",
80
+ "@nextwebwg/html-next": "^1.0.0-alpha.2",
81
81
  "lowlight": "^3.3.0",
82
82
  "markdown-it": "14.3.1",
83
83
  "lucide": "~0.554.0"
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-affordance-scope"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: contents;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-avatar-group"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: flex;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-avatar"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: inline-grid;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-badge"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_badge-surface: var(--ui-surface-subtle);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-button"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: inline-flex;
@@ -12,6 +12,16 @@
12
12
  color: var(--ui-action-primary-text, var(--ui-text-on-accent));
13
13
  }
14
14
 
15
+ :scope[data-ui-button-state~="align=start"] {
16
+ justify-content: flex-start;
17
+ text-align: start;
18
+ }
19
+
20
+ :scope[data-ui-button-state~="stretch"] {
21
+ display: flex;
22
+ inline-size: 100%;
23
+ }
24
+
15
25
  :scope {
16
26
  appearance: none;
17
27
  min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md, 2.5rem));
@@ -107,6 +117,7 @@
107
117
  border-color: transparent;
108
118
  background: transparent;
109
119
  box-shadow: none;
120
+ color: var(--ui-button-ghost-text, var(--ui-action-secondary-text, var(--ui-text-primary)));
110
121
  }
111
122
 
112
123
  /* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
@@ -134,9 +145,31 @@
134
145
  var(--ui-focus-halo);
135
146
  }
136
147
 
148
+ /* Disabled colours fall back to each variant's own; ghost and link take only the text colour. */
137
149
  :scope:disabled {
138
- opacity: 0.6;
150
+ opacity: var(--ui-button-disabled-opacity, 0.6);
139
151
  cursor: not-allowed;
152
+ border-color: var(--ui-button-disabled-border, var(--ui-button-border, var(--ui-border-strong)));
153
+ background-color: var(--ui-button-disabled-surface, var(--ui-button-surface, var(--ui-surface-elevated)));
154
+ color: var(--ui-button-disabled-text, var(--ui-button-text, var(--ui-action-secondary-text, var(--ui-text-primary))));
155
+ }
156
+
157
+ :scope[data-ui-button-state~="variant=solid"]:disabled {
158
+ border-color: var(--ui-button-disabled-border, var(--ui-action-primary-surface, var(--ui-accent-solid)));
159
+ background-color: var(--ui-button-disabled-surface, var(--ui-action-primary-surface, var(--ui-accent-solid)));
160
+ color: var(--ui-button-disabled-text, var(--ui-action-primary-text, var(--ui-text-on-accent)));
161
+ }
162
+
163
+ :scope[data-ui-button-state~="variant=danger"]:disabled {
164
+ border-color: var(--ui-button-disabled-border, var(--ui-danger-solid));
165
+ background-color: var(--ui-button-disabled-surface, var(--ui-danger-solid));
166
+ color: var(--ui-button-disabled-text, var(--ui-text-on-accent));
167
+ }
168
+
169
+ :scope[data-ui-button-state~="variant=ghost"]:disabled {
170
+ border-color: transparent;
171
+ background-color: transparent;
172
+ color: var(--ui-button-disabled-text, var(--ui-button-ghost-text, var(--ui-action-secondary-text, var(--ui-text-primary))));
140
173
  }
141
174
 
142
175
  @media (pointer: coarse) {
@@ -176,6 +209,11 @@
176
209
  transform: none;
177
210
  }
178
211
 
212
+ :scope[data-ui-button-state~="variant=link"]:disabled {
213
+ background: none;
214
+ color: var(--ui-button-disabled-text, var(--ui-button-link-color, var(--ui-text-secondary)));
215
+ }
216
+
179
217
  :scope[data-ui-button-state~="variant=link"]:focus-visible {
180
218
  box-shadow: none;
181
219
  /* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
@@ -196,6 +234,8 @@
196
234
 
197
235
  /* A soft halo that transitions in with the other box-shadow changes, layered on the raised shadow. */
198
236
 
237
+ /* Disabled colours fall back to each variant's own; ghost and link take only the text colour. */
238
+
199
239
  @media (pointer: coarse) {
200
240
  }
201
241
 
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-callout"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_callout-surface: var(--ui-info-soft);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-checkbox"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: inline-flex;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-cluster"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_layout-gap: var(--ui-space-3, 0.75rem);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-combobox"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: grid;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-container"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_container-measure: 65ch;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-context-menu"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: contents;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @keyframes ui-dialog-enter {
3
3
  from {
4
4
  opacity: 0;
@@ -116,6 +116,19 @@
116
116
  outline-offset: 2px;
117
117
  }
118
118
 
119
+ /* A touch target, like Button on coarse pointers. */
120
+ @media (pointer: coarse) {
121
+ .close {
122
+ inline-size: var(--ui-control-min-block-size, 2.75rem);
123
+ block-size: var(--ui-control-min-block-size, 2.75rem);
124
+ }
125
+ }
126
+
127
+ html[data-ui-input-modality="touch"] :scope .close {
128
+ inline-size: var(--ui-control-min-block-size, 2.75rem);
129
+ block-size: var(--ui-control-min-block-size, 2.75rem);
130
+ }
131
+
119
132
  .body {
120
133
  flex: 1 1 auto;
121
134
  min-block-size: 0;
@@ -157,4 +170,8 @@
157
170
  /* :host-qualified so page heading rules that reach in cannot outrank the dialog chrome. */
158
171
 
159
172
  /* A CSS-drawn X. */
173
+
174
+ /* A touch target, like Button on coarse pointers. */
175
+ @media (pointer: coarse) {
176
+ }
160
177
  }
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-disclosure"]) to ([data-component], [data-slotted]) {
3
3
  /* An accordion row, not a field: no enclosing box, just a divider, so it never reads as a
4
4
  * select or combobox. Stacked disclosures share their dividers. */
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-editable"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: flex;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-editor-insert-table-grid"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  padding: var(--ui-space-3, 12px);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-editor-mention-menu"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  user-select: none;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-editor-slash-menu"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  user-select: none;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-editor-table-context-menu"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  min-width: 14rem;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-editor-table-overlay"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: block;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-editor-table-toolbar"]) to ([data-component], [data-slotted]) {
3
3
  .looma-editor__mobile-toolbar-shell :scope {
4
4
  min-width: max-content;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-editor-toolbar"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  position: sticky;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-floating-action-button"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  position: fixed;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-form-field"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: grid;
@@ -8,25 +8,39 @@
8
8
  color: var(--ui-text-primary);
9
9
  }
10
10
 
11
- /* A component that sets its display still honours the hidden attribute on its root. */
12
- :scope[hidden] {
13
- display: none;
11
+ /* Each named region styles whatever fills it, however it was slotted (slot="…" in HTML, #label
12
+ in Vue), and generates no box of its own, so an empty region adds no gap. */
13
+ .label,
14
+ .help,
15
+ .error {
16
+ display: contents;
14
17
  }
15
- }
16
- @scope ([data-component~="ui-form-field"]) to ([data-component]) {
17
- :where([data-slotted], [data-slotted] *):is([slot="label"]) {
18
+
19
+ .label {
18
20
  color: var(--ui-text-secondary);
19
21
  font-size: 0.95rem;
20
22
  }
21
23
 
22
- :where([data-slotted], [data-slotted] *):is([slot="help"]) {
23
- min-block-size: var(--ui-form-field-help-min-block-size, 0);
24
+ .help {
24
25
  color: var(--ui-text-muted);
25
26
  font-size: 0.875rem;
26
27
  line-height: var(--ui-line-height-md);
27
28
  }
28
29
 
29
- :where([data-slotted], [data-slotted] *):is([slot="error"]),
30
+ /* A component that sets its display still honours the hidden attribute on its root. */
31
+ :scope[hidden] {
32
+ display: none;
33
+ }
34
+ }
35
+ @scope ([data-component~="ui-form-field"]) to ([data-component]) {
36
+ /* Each named region styles whatever fills it, however it was slotted (slot="…" in HTML, #label
37
+ in Vue), and generates no box of its own, so an empty region adds no gap. */
38
+
39
+ .help > :where([data-slotted], [data-slotted] *):is(*) {
40
+ min-block-size: var(--ui-form-field-help-min-block-size, 0);
41
+ }
42
+
43
+ .error,
30
44
  :where([data-slotted], [data-slotted] *):is([role="alert"]) {
31
45
  color: var(--ui-accent-active);
32
46
  font-size: 0.875rem;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-grid"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_grid-gap: var(--ui-space-4, 1rem);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-icon-button"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: inline-flex;
@@ -70,6 +70,36 @@
70
70
  }
71
71
  }
72
72
 
73
+ /* A touch target without a bigger button: an invisible hit area, at least the control
74
+ minimum, centred on the button (::before is the anticipatory guide). */
75
+ @media (pointer: coarse) {
76
+ :scope {
77
+ position: relative;
78
+ }
79
+
80
+ :scope::after {
81
+ content: "";
82
+ position: absolute;
83
+ inset: 50% auto auto 50%;
84
+ inline-size: max(100%, var(--ui-control-min-block-size, 2.75rem));
85
+ block-size: max(100%, var(--ui-control-min-block-size, 2.75rem));
86
+ transform: translate(-50%, -50%);
87
+ }
88
+ }
89
+
90
+ html[data-ui-input-modality="touch"] :scope {
91
+ position: relative;
92
+ }
93
+
94
+ html[data-ui-input-modality="touch"] :scope::after {
95
+ content: "";
96
+ position: absolute;
97
+ inset: 50% auto auto 50%;
98
+ inline-size: max(100%, var(--ui-control-min-block-size, 2.75rem));
99
+ block-size: max(100%, var(--ui-control-min-block-size, 2.75rem));
100
+ transform: translate(-50%, -50%);
101
+ }
102
+
73
103
  :scope[data-ui-icon-button-state~="size=sm"] {
74
104
  inline-size: var(--ui-icon-button-size-sm, 1.75rem);
75
105
  block-size: var(--ui-icon-button-size-sm, 1.75rem);
@@ -126,11 +156,24 @@
126
156
  box-shadow: var(--ui-focus-halo);
127
157
  }
128
158
 
159
+ /* Disabled colours fall back to each variant's own; ghost takes only the icon colour. */
129
160
  :scope:disabled {
130
- opacity: 0.6;
161
+ opacity: var(--ui-icon-button-disabled-opacity, 0.6);
162
+ color: var(--ui-icon-button-disabled-color, inherit);
131
163
  cursor: not-allowed;
132
164
  }
133
165
 
166
+ :scope[data-ui-icon-button-state~="variant=outline"]:disabled {
167
+ border-color: var(--ui-icon-button-disabled-border, var(--ui-icon-button-border, var(--ui-border-default)));
168
+ background-color: var(--ui-icon-button-disabled-bg, var(--ui-icon-button-outline-bg, var(--ui-surface-default)));
169
+ color: var(--ui-icon-button-disabled-color, var(--ui-icon-button-outline-color, var(--ui-text-primary)));
170
+ }
171
+
172
+ :scope[data-ui-icon-button-state~="variant=solid"]:disabled {
173
+ background-color: var(--ui-icon-button-disabled-bg, var(--ui-icon-button-solid-bg, var(--ui-accent-solid)));
174
+ color: var(--ui-icon-button-disabled-color, var(--ui-icon-button-solid-color, var(--ui-text-on-accent)));
175
+ }
176
+
134
177
  :scope {
135
178
  --_icon-button-icon-default: var(--ui-icon-size-md, 1.25rem);
136
179
  }
@@ -158,6 +201,13 @@
158
201
  @media (hover: none), (pointer: coarse) {
159
202
  }
160
203
 
204
+ /* A touch target without a bigger button: an invisible hit area, at least the control
205
+ minimum, centred on the button (::before is the anticipatory guide). */
206
+ @media (pointer: coarse) {
207
+ }
208
+
209
+ /* Disabled colours fall back to each variant's own; ghost takes only the icon colour. */
210
+
161
211
  :where([data-slotted], [data-slotted] *):is(svg) {
162
212
  inline-size: var(--ui-icon-button-icon-size, var(--_icon-button-icon-default));
163
213
  block-size: var(--ui-icon-button-icon-size, var(--_icon-button-icon-default));
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-icon"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: inline-flex;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-input"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-menu-item"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: block;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-menu"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: flex;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-popover"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-radio-group"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: inline-flex;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-radio"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: inline-flex;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-reel"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_reel-gap: var(--ui-space-4, 1rem);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-search-result-row"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  appearance: none;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-search-shell"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: contents;
@@ -43,6 +43,13 @@
43
43
  .search {
44
44
  padding: var(--ui-space-3);
45
45
  border-block-end: 1px solid var(--ui-border-default);
46
+ transition: border-color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
47
+ }
48
+
49
+ /* The search region shows where typing goes, whatever the author put in it. */
50
+ .search:focus-within {
51
+ border-block-end-color: var(--ui-search-shell-focus-color, var(--ui-control-focus));
52
+ box-shadow: inset 0 -1px 0 var(--ui-search-shell-focus-color, var(--ui-control-focus));
46
53
  }
47
54
 
48
55
  .status,
@@ -100,7 +107,9 @@
100
107
  }
101
108
  }
102
109
  @scope ([data-component~="ui-search-shell"]) to ([data-component]) {
103
- :where([data-slotted], [data-slotted] *):is(input[slot="search"]) {
110
+ /* The search region shows where typing goes, whatever the author put in it. */
111
+
112
+ :where([data-slotted], [data-slotted] *):is(input[slot="search"]) {
104
113
  box-sizing: border-box;
105
114
  inline-size: 100%;
106
115
  min-block-size: var(--ui-control-min-block-size);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-select"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-separator"]) to ([data-component], [data-slotted]) {
3
3
  hr {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-sidebar"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  position: relative;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-stack"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_layout-gap: var(--ui-space-4, 1rem);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-switch"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: inline-flex;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-switcher"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_switcher-gap: var(--ui-space-4, 1rem);
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-tabs"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: grid;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-textarea"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  box-sizing: border-box;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @keyframes ui-toast-enter {
3
3
  from {
4
4
  opacity: 0;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-tooltip"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  position: fixed;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-top-bar"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  position: sticky;
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-tree-item"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  --_tree-row-min-height: 32px;
@@ -132,11 +132,16 @@
132
132
 
133
133
  /* Icons match the label's size (as in Knit's tree): an unsized SVG would otherwise render 300×150. */
134
134
 
135
+ /* The label spans the row's height and centres its content, so slotted content (a link) can
136
+ stretch to fill the row as its own hit area; the padding tokens remove the inset. */
135
137
  .label {
136
138
  grid-column: 3;
137
139
  grid-row: 1;
140
+ align-self: stretch;
141
+ display: flex;
142
+ align-items: center;
138
143
  min-inline-size: 0;
139
- padding: var(--ui-space-1) var(--ui-space-2);
144
+ padding: var(--ui-tree-label-padding-block, var(--ui-space-1)) var(--ui-tree-label-padding-inline, var(--ui-space-2));
140
145
  }
141
146
 
142
147
  .actions {
@@ -260,6 +265,9 @@
260
265
  flex: none;
261
266
  }
262
267
 
268
+ /* The label spans the row's height and centres its content, so slotted content (a link) can
269
+ stretch to fill the row as its own hit area; the padding tokens remove the inset. */
270
+
263
271
  @media (prefers-reduced-motion: reduce) {
264
272
  }
265
273
 
@@ -1,4 +1,4 @@
1
- /* Generated by HTML Next 1.0.0-alpha.1. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.2. Do not edit. */
2
2
  @scope ([data-component~="ui-tree"]) to ([data-component], [data-slotted]) {
3
3
  :scope {
4
4
  display: block;