@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,12 +1,22 @@
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
- :scope {
3
+ /* Compact sets the part tokens its items read, so nothing has to rescale a global. */
4
+ :scope[data-ui-menu-state~="density=compact"] {
5
+ --ui-menu-item-padding-block: var(--ui-space-1);
6
+ --ui-menu-item-padding-inline: var(--ui-space-2);
7
+ --ui-menu-item-font-size: var(--ui-font-size-sm);
8
+ --ui-menu-item-radius: var(--ui-radius-sm);
9
+ padding: var(--ui-space-1);
10
+ gap: 0;
11
+ }
12
+
13
+ :scope {
4
14
  display: flex;
5
15
  flex-direction: column;
6
16
  box-sizing: border-box;
7
17
  inline-size: max-content;
8
- min-inline-size: min(12rem, calc(100vw - var(--ui-menu-viewport-gap, var(--ui-space-2, 0.5rem)) * 2));
9
- max-inline-size: calc(100vw - var(--ui-menu-viewport-gap, var(--ui-space-2, 0.5rem)) * 2);
18
+ min-inline-size: min(12rem, calc(100vw - var(--ui-menu-viewport-gap, var(--ui-space-2)) * 2));
19
+ max-inline-size: calc(100vw - var(--ui-menu-viewport-gap, var(--ui-space-2)) * 2);
10
20
  padding: 0;
11
21
  border: 0;
12
22
  outline: 0;
@@ -24,7 +34,7 @@
24
34
  padding: var(--ui-space-1);
25
35
  background: var(--ui-surface-elevated);
26
36
  border: 1px solid var(--ui-border-default);
27
- border-radius: var(--ui-radius-3);
37
+ border-radius: var(--ui-radius-lg);
28
38
  box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
29
39
  max-block-size: inherit;
30
40
  overflow: auto;
@@ -39,7 +49,7 @@
39
49
  inset: auto;
40
50
  margin: 0;
41
51
  overflow: visible;
42
- max-block-size: calc(100dvh - var(--ui-menu-viewport-gap, var(--ui-space-2, 0.5rem)) * 2);
52
+ max-block-size: calc(100dvh - var(--ui-menu-viewport-gap, var(--ui-space-2)) * 2);
43
53
  opacity: 0;
44
54
  transform: translateY(-4px) scale(0.99);
45
55
  transition:
@@ -72,7 +82,9 @@
72
82
  }
73
83
  }
74
84
  @scope ([data-component~="ui-menu"]) to ([data-component]) {
75
- @starting-style {
85
+ /* Compact sets the part tokens its items read, so nothing has to rescale a global. */
86
+
87
+ @starting-style {
76
88
  }
77
89
 
78
90
  @media (prefers-reduced-motion: reduce) {
@@ -1,12 +1,12 @@
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;
5
5
  max-inline-size: min(
6
6
  20rem,
7
- calc(100vw - var(--ui-popover-viewport-gap, var(--ui-space-2, 0.5rem)) * 2)
7
+ calc(100vw - var(--ui-popover-viewport-gap, var(--ui-space-2)) * 2)
8
8
  );
9
- max-block-size: calc(100dvh - var(--ui-popover-viewport-gap, var(--ui-space-2, 0.5rem)) * 2);
9
+ max-block-size: calc(100dvh - var(--ui-popover-viewport-gap, var(--ui-space-2)) * 2);
10
10
  overflow: visible;
11
11
  padding: 0;
12
12
  border: 0;
@@ -24,7 +24,7 @@
24
24
  padding: var(--ui-space-3);
25
25
  background: var(--ui-surface-elevated);
26
26
  border: 1px solid var(--ui-border-default);
27
- border-radius: var(--ui-radius-3);
27
+ border-radius: var(--ui-radius-lg);
28
28
  box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
29
29
  }
30
30
 
@@ -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,7 +1,7 @@
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
- --_reel-gap: var(--ui-space-4, 1rem);
4
+ --_reel-gap: var(--ui-space-4);
5
5
  --_reel-item-width: auto;
6
6
  display: flex;
7
7
  inline-size: 100%;
@@ -15,19 +15,19 @@
15
15
  }
16
16
 
17
17
  :scope[data-ui-reel-state~="gap=xs"] {
18
- --_reel-gap: var(--ui-space-2, 0.5rem);
18
+ --_reel-gap: var(--ui-space-2);
19
19
  }
20
20
  :scope[data-ui-reel-state~="gap=s"] {
21
- --_reel-gap: var(--ui-space-3, 0.75rem);
21
+ --_reel-gap: var(--ui-space-3);
22
22
  }
23
23
  :scope[data-ui-reel-state~="gap=m"] {
24
- --_reel-gap: var(--ui-space-4, 1rem);
24
+ --_reel-gap: var(--ui-space-4);
25
25
  }
26
26
  :scope[data-ui-reel-state~="gap=l"] {
27
- --_reel-gap: var(--ui-space-5, 1.5rem);
27
+ --_reel-gap: var(--ui-space-5);
28
28
  }
29
29
  :scope[data-ui-reel-state~="gap=xl"] {
30
- --_reel-gap: var(--ui-space-6, 2rem);
30
+ --_reel-gap: var(--ui-space-6);
31
31
  }
32
32
  :scope[data-ui-reel-state~="itemWidth=sm"] {
33
33
  --_reel-item-width: 12rem;
@@ -1,22 +1,22 @@
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;
5
5
  inline-size: 100%;
6
6
  min-block-size: var(--ui-search-result-row-min-height, 56px);
7
7
  margin: 0;
8
- padding-block: var(--ui-search-result-row-padding-block, var(--ui-space-3, 0.75rem));
9
- padding-inline: var(--ui-search-result-row-padding-inline, var(--ui-space-4, 1rem));
8
+ padding-block: var(--ui-search-result-row-padding-block, var(--ui-space-3));
9
+ padding-inline: var(--ui-search-result-row-padding-inline, var(--ui-space-4));
10
10
  display: flex;
11
11
  align-items: flex-start;
12
- gap: var(--ui-search-result-row-gap, var(--ui-space-3, 0.75rem));
13
- background: var(--ui-search-result-row-bg, transparent);
12
+ gap: var(--ui-search-result-row-gap, var(--ui-space-3));
13
+ background: var(--ui-search-result-row-surface, transparent);
14
14
  border: none;
15
- border-block-end: 1px solid var(--ui-search-result-row-border, var(--ui-border, #e5e7eb));
15
+ border-block-end: 1px solid var(--ui-search-result-row-border, var(--ui-border));
16
16
  color: inherit;
17
17
  cursor: pointer;
18
18
  text-align: left;
19
- transition: background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease);
19
+ transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
20
20
  }
21
21
 
22
22
  :scope:last-child {
@@ -24,18 +24,18 @@
24
24
  }
25
25
 
26
26
  :scope:hover:enabled {
27
- background: var(--ui-search-result-row-hover-bg, color-mix(in srgb, var(--ui-surface, #ffffff) 85%, black 3%));
27
+ background: var(--ui-search-result-row-hover-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%));
28
28
  }
29
29
 
30
30
  :scope[data-ui-search-result-row-state~="selected"] {
31
31
  background: var(
32
32
  --ui-search-result-row-selected-bg,
33
- var(--ui-search-result-row-hover-bg, color-mix(in srgb, var(--ui-surface, #ffffff) 85%, black 3%))
33
+ var(--ui-search-result-row-hover-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%))
34
34
  );
35
35
  }
36
36
 
37
37
  :scope:focus-visible {
38
- outline: 2px solid var(--ui-focus-ring, #2563eb);
38
+ outline: 2px solid var(--ui-focus-ring);
39
39
  outline-offset: -2px;
40
40
  }
41
41
 
@@ -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;
@@ -34,7 +34,7 @@
34
34
  max-block-size: var(--ui-search-shell-max-height, 80vh);
35
35
  margin-inline: auto;
36
36
  overflow: hidden;
37
- background: var(--ui-search-shell-bg, var(--ui-surface-elevated));
37
+ background: var(--ui-search-shell-surface, var(--ui-surface-elevated));
38
38
  border: 1px solid var(--ui-search-shell-border, var(--ui-border-default));
39
39
  border-radius: var(--ui-search-shell-radius, var(--ui-radius-dialog));
40
40
  box-shadow: var(--ui-search-shell-shadow, var(--ui-elevation-dialog, var(--ui-shadow-xl)));
@@ -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,13 +107,15 @@
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);
107
116
  padding: var(--ui-space-2) var(--ui-space-3);
108
117
  border: 1px solid var(--ui-control-border);
109
- border-radius: var(--ui-radius-2);
118
+ border-radius: var(--ui-radius-md);
110
119
  background: var(--ui-control-surface);
111
120
  color: var(--ui-text-primary);
112
121
  font: inherit;
@@ -115,7 +124,7 @@
115
124
 
116
125
  :where([data-slotted], [data-slotted] *):is(input[slot="search"]:focus-visible) {
117
126
  border-color: var(--ui-control-focus);
118
- outline: 2px solid var(--ui-focus-ring, currentColor);
127
+ outline: 2px solid var(--ui-focus-ring);
119
128
  outline-offset: 2px;
120
129
  }
121
130
 
@@ -1,15 +1,15 @@
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;
5
5
  display: inline-block;
6
6
  inline-size: 100%;
7
7
  min-inline-size: 0;
8
- min-block-size: var(--ui-control-size-md, 2.5rem);
8
+ min-block-size: var(--ui-control-size-md);
9
9
  margin: 0;
10
10
  padding: var(--ui-space-2) var(--ui-space-3);
11
11
  border: 1px solid var(--ui-control-border, var(--ui-border-strong));
12
- border-radius: var(--ui-select-radius, var(--ui-radius-2));
12
+ border-radius: var(--ui-select-radius, var(--ui-radius-md));
13
13
  background-color: var(--ui-control-surface, var(--ui-surface-elevated));
14
14
  color: var(--ui-text-primary);
15
15
  color-scheme: light dark;
@@ -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;
@@ -60,10 +60,10 @@
60
60
  inset-inline-start: 3px;
61
61
  inline-size: 2px;
62
62
  background: color-mix(in srgb, var(--ui-affordance-guide-color, var(--ui-border-strong)) 45%, transparent);
63
- opacity: var(--ui-affordance-guide-opacity, 0.42);
63
+ opacity: var(--ui-affordance-guide-opacity);
64
64
  transition:
65
- background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
66
- opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
65
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease),
66
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
67
67
  }
68
68
 
69
69
  .guide {
@@ -72,17 +72,17 @@
72
72
  inset-inline-start: 50%;
73
73
  inline-size: 6px;
74
74
  block-size: 22px;
75
- border: 1px solid var(--ui-border-strong, #c8c8c4);
76
- border-radius: var(--ui-radius-round, 999px);
77
- background: var(--ui-surface-elevated, #fff);
75
+ border: 1px solid var(--ui-border-strong);
76
+ border-radius: var(--ui-radius-round);
77
+ background: var(--ui-surface-elevated);
78
78
  opacity: 0;
79
79
  transform: translate(-50%, -50%);
80
- transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
80
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
81
81
  pointer-events: none;
82
82
  }
83
83
 
84
84
  .resizer:is(:hover, :focus-visible)::after {
85
- background: var(--ui-affordance-direct-color, var(--ui-accent-solid, var(--ui-color-focus, Highlight)));
85
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid, var(--ui-focus-ring)));
86
86
  opacity: 1;
87
87
  }
88
88
 
@@ -105,9 +105,9 @@
105
105
  box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
106
106
  transform: translateX(0);
107
107
  transition:
108
- transform var(--ui-motion-base, 0.2s) var(--ui-motion-ease-out, ease-out),
109
- display var(--ui-motion-base, 0.2s) allow-discrete,
110
- overlay var(--ui-motion-base, 0.2s) allow-discrete;
108
+ transform var(--ui-motion-base) var(--ui-motion-ease-out),
109
+ display var(--ui-motion-base) allow-discrete,
110
+ overlay var(--ui-motion-base) allow-discrete;
111
111
  }
112
112
 
113
113
  /* The author display above would otherwise override the UA rule that hides a closed popover. */
@@ -1,7 +1,7 @@
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
- --_layout-gap: var(--ui-space-4, 1rem);
4
+ --_layout-gap: var(--ui-space-4);
5
5
  display: flex;
6
6
  flex-direction: column;
7
7
  align-items: stretch;
@@ -12,19 +12,19 @@
12
12
  }
13
13
 
14
14
  :scope[data-ui-stack-state~="gap=xs"] {
15
- --_layout-gap: var(--ui-space-2, 0.5rem);
15
+ --_layout-gap: var(--ui-space-2);
16
16
  }
17
17
  :scope[data-ui-stack-state~="gap=s"] {
18
- --_layout-gap: var(--ui-space-3, 0.75rem);
18
+ --_layout-gap: var(--ui-space-3);
19
19
  }
20
20
  :scope[data-ui-stack-state~="gap=m"] {
21
- --_layout-gap: var(--ui-space-4, 1rem);
21
+ --_layout-gap: var(--ui-space-4);
22
22
  }
23
23
  :scope[data-ui-stack-state~="gap=l"] {
24
- --_layout-gap: var(--ui-space-5, 1.5rem);
24
+ --_layout-gap: var(--ui-space-5);
25
25
  }
26
26
  :scope[data-ui-stack-state~="gap=xl"] {
27
- --_layout-gap: var(--ui-space-6, 2rem);
27
+ --_layout-gap: var(--ui-space-6);
28
28
  }
29
29
  :scope[data-ui-stack-state~="align=start"] {
30
30
  align-items: flex-start;
@@ -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,7 +1,7 @@
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
- --_switcher-gap: var(--ui-space-4, 1rem);
4
+ --_switcher-gap: var(--ui-space-4);
5
5
  display: flex;
6
6
  flex-wrap: wrap;
7
7
  gap: var(--ui-switcher-gap, var(--_switcher-gap));
@@ -11,19 +11,19 @@
11
11
  }
12
12
 
13
13
  :scope[data-ui-switcher-state~="gap=xs"] {
14
- --_switcher-gap: var(--ui-space-2, 0.5rem);
14
+ --_switcher-gap: var(--ui-space-2);
15
15
  }
16
16
  :scope[data-ui-switcher-state~="gap=s"] {
17
- --_switcher-gap: var(--ui-space-3, 0.75rem);
17
+ --_switcher-gap: var(--ui-space-3);
18
18
  }
19
19
  :scope[data-ui-switcher-state~="gap=m"] {
20
- --_switcher-gap: var(--ui-space-4, 1rem);
20
+ --_switcher-gap: var(--ui-space-4);
21
21
  }
22
22
  :scope[data-ui-switcher-state~="gap=l"] {
23
- --_switcher-gap: var(--ui-space-5, 1.5rem);
23
+ --_switcher-gap: var(--ui-space-5);
24
24
  }
25
25
  :scope[data-ui-switcher-state~="gap=xl"] {
26
- --_switcher-gap: var(--ui-space-6, 2rem);
26
+ --_switcher-gap: var(--ui-space-6);
27
27
  }
28
28
  :scope[data-ui-switcher-state~="align=start"] {
29
29
  align-items: flex-start;
@@ -1,6 +1,19 @@
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
- :scope {
3
+ /* Density resolves into the tab row's own values; the public tokens still override them. */
4
+ :scope {
5
+ --_tab-min-block-size: var(--ui-control-size);
6
+ --_tab-padding-block: var(--ui-space-2);
7
+ --_tab-padding-inline: var(--ui-space-3);
8
+ }
9
+
10
+ :scope[data-ui-tabs-state~="density=compact"] {
11
+ --_tab-min-block-size: var(--ui-control-size-sm);
12
+ --_tab-padding-block: var(--ui-space-1);
13
+ --_tab-padding-inline: var(--ui-space-2);
14
+ }
15
+
16
+ :scope {
4
17
  display: grid;
5
18
  inline-size: 100%;
6
19
  min-inline-size: 0;
@@ -24,16 +37,16 @@
24
37
  }
25
38
 
26
39
  .list button {
27
- min-block-size: 2.5rem;
40
+ min-block-size: var(--ui-tabs-tab-min-block-size, var(--_tab-min-block-size));
28
41
  margin: 0 0 -1px;
29
- padding: var(--ui-space-2) var(--ui-space-3);
42
+ padding: var(--ui-tabs-tab-padding-block, var(--_tab-padding-block)) var(--ui-tabs-tab-padding-inline, var(--_tab-padding-inline));
30
43
  border: 0;
31
44
  border-block-end: 2px solid transparent;
32
45
  background: transparent;
33
46
  color: var(--ui-text-secondary);
34
47
  font: inherit;
35
48
  font-size: var(--ui-font-size-sm);
36
- font-weight: var(--ui-font-medium, 500);
49
+ font-weight: var(--ui-font-medium);
37
50
  cursor: pointer;
38
51
  transition:
39
52
  color var(--ui-motion-fast) var(--ui-motion-ease),
@@ -61,7 +74,7 @@
61
74
  position: relative;
62
75
  outline: none;
63
76
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
64
- border-radius: var(--ui-radius-1);
77
+ border-radius: var(--ui-radius-sm);
65
78
  }
66
79
 
67
80
  .panels {
@@ -103,7 +116,8 @@
103
116
  }
104
117
  }
105
118
  @scope ([data-component~="ui-tabs"]) to ([data-component]) {
106
- :where([data-slotted], [data-slotted] *):is(*) {
119
+ /* Density resolves into the tab row's own values; the public tokens still override them. */
120
+ :where([data-slotted], [data-slotted] *):is(*) {
107
121
  padding: var(--ui-space-4);
108
122
  }
109
123
 
@@ -1,17 +1,17 @@
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;
5
5
  display: inline-block;
6
6
  inline-size: 100%;
7
7
  min-inline-size: 0;
8
- min-block-size: calc(var(--ui-space-12, 3rem) * 2);
8
+ min-block-size: calc(3rem * 2);
9
9
  margin: 0;
10
10
  padding: var(--ui-space-2) var(--ui-space-3);
11
11
  appearance: none;
12
12
  resize: vertical;
13
13
  border: 1px solid var(--ui-control-border, var(--ui-border-strong));
14
- border-radius: var(--ui-textarea-radius, var(--ui-radius-2));
14
+ border-radius: var(--ui-textarea-radius, var(--ui-radius-md));
15
15
  background: var(--ui-control-surface, var(--ui-surface-elevated));
16
16
  color: var(--ui-text-primary);
17
17
  font: inherit;
@@ -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;
@@ -53,7 +53,7 @@
53
53
  gap: var(--ui-space-2);
54
54
  align-items: start;
55
55
  border: 1px solid var(--ui-border-default);
56
- border-radius: var(--ui-radius-3);
56
+ border-radius: var(--ui-radius-lg);
57
57
  padding: var(--ui-space-3) var(--ui-space-4);
58
58
  background: var(--ui-surface-elevated);
59
59
  color: var(--ui-text-primary);
@@ -63,7 +63,7 @@
63
63
 
64
64
  /* Leaving slides on down and fades; the controller removes the toast when this ends. */
65
65
  .toast.closing {
66
- animation: ui-toast-exit var(--ui-toast-exit-duration, 0.22s) var(--ui-motion-ease, ease) both;
66
+ animation: ui-toast-exit var(--ui-toast-exit-duration, 0.22s) var(--ui-motion-ease) both;
67
67
  pointer-events: none;
68
68
  }
69
69
 
@@ -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;
@@ -28,7 +28,7 @@
28
28
  box-sizing: border-box;
29
29
  max-inline-size: var(--ui-tooltip-max-inline-size, 18rem);
30
30
  border: 1px solid var(--_tooltip-line);
31
- border-radius: var(--ui-tooltip-radius, var(--ui-radius-1));
31
+ border-radius: var(--ui-tooltip-radius, var(--ui-radius-sm));
32
32
  background: var(--ui-tooltip-surface, var(--ui-surface-elevated));
33
33
  color: var(--ui-tooltip-text, var(--ui-text-primary));
34
34
  padding: var(--ui-space-1) var(--ui-space-2);
@@ -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;
@@ -7,11 +7,11 @@
7
7
  min-block-size: calc(var(--ui-top-bar-height, 56px) + env(safe-area-inset-top));
8
8
  display: flex;
9
9
  align-items: center;
10
- gap: var(--ui-top-bar-gap, var(--ui-space-3, 0.75rem));
10
+ gap: var(--ui-top-bar-gap, var(--ui-space-3));
11
11
  padding-block-start: env(safe-area-inset-top);
12
- padding-inline-start: max(var(--ui-top-bar-padding-inline, var(--ui-space-4, 1rem)), env(safe-area-inset-left));
13
- padding-inline-end: max(var(--ui-top-bar-padding-inline, var(--ui-space-4, 1rem)), env(safe-area-inset-right));
14
- background: var(--ui-top-bar-bg, var(--ui-surface-elevated));
12
+ padding-inline-start: max(var(--ui-top-bar-padding-inline, var(--ui-space-4)), env(safe-area-inset-left));
13
+ padding-inline-end: max(var(--ui-top-bar-padding-inline, var(--ui-space-4)), env(safe-area-inset-right));
14
+ background: var(--ui-top-bar-surface, var(--ui-surface-elevated));
15
15
  border-block-end: 1px solid var(--ui-top-bar-border, var(--ui-border-default));
16
16
  }
17
17
 
@@ -24,7 +24,7 @@
24
24
  }
25
25
 
26
26
  .actions {
27
- gap: var(--ui-top-bar-actions-gap, var(--ui-space-1, 0.25rem));
27
+ gap: var(--ui-top-bar-actions-gap, var(--ui-space-1));
28
28
  }
29
29
 
30
30
  .title {
@@ -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;
@@ -14,9 +14,9 @@
14
14
  display: grid;
15
15
  grid-template-columns: 20px auto minmax(0, 1fr) auto;
16
16
  align-items: center;
17
- min-block-size: var(--ui-tree-row-min-height, var(--_tree-row-min-height));
17
+ min-block-size: var(--ui-tree-item-min-block-size, var(--_tree-row-min-height));
18
18
  min-inline-size: 0;
19
- font-size: var(--ui-tree-font-size, var(--ui-font-size-ui, 0.9375rem));
19
+ font-size: var(--ui-tree-item-font-size, var(--ui-font-size-ui));
20
20
  border-radius: var(--ui-radius-md);
21
21
  color: var(--ui-text-secondary);
22
22
  transition:
@@ -50,7 +50,8 @@
50
50
  box-shadow: 0 0 0 2px var(--ui-focus-ring);
51
51
  }
52
52
 
53
- :scope[data-drop-position="inside"] .row {
53
+ /* Child combinators: drop feedback belongs to this item's own row, not the rows nested in it. */
54
+ :scope[data-drop-position="inside"] > .row {
54
55
  background: var(--ui-accent-subtle);
55
56
  box-shadow: inset 0 0 0 1px var(--ui-tree-drop-color, var(--ui-accent-solid));
56
57
  }
@@ -132,13 +133,21 @@
132
133
 
133
134
  /* Icons match the label's size (as in Knit's tree): an unsized SVG would otherwise render 300×150. */
134
135
 
136
+ /* The label spans the row's height and centres its content, so slotted content (a link) can
137
+ stretch to fill the row as its own hit area; the padding tokens remove the inset. */
135
138
  .label {
136
139
  grid-column: 3;
137
140
  grid-row: 1;
141
+ align-self: stretch;
142
+ display: flex;
143
+ align-items: center;
138
144
  min-inline-size: 0;
139
- padding: var(--ui-space-1) var(--ui-space-2);
145
+ padding: var(--ui-tree-item-label-padding-block, var(--ui-space-1)) var(--ui-tree-item-label-padding-inline, var(--ui-space-2));
140
146
  }
141
147
 
148
+ /* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
149
+ its own text and reading as overflow. */
150
+
142
151
  .actions {
143
152
  grid-column: 4;
144
153
  grid-row: 1;
@@ -172,7 +181,7 @@
172
181
  .row:hover .drag-handle,
173
182
  .drag-handle:hover,
174
183
  .drag-handle:focus-visible,
175
- :scope[data-dragging] .drag-handle {
184
+ :scope[data-dragging] > .row > .drag-handle {
176
185
  opacity: 1;
177
186
  }
178
187
 
@@ -211,12 +220,12 @@
211
220
  inset-inline-end: -1px;
212
221
  }
213
222
 
214
- :scope[data-drop-position="before"] .row-drop-indicator {
223
+ :scope[data-drop-position="before"] > .row > .row-drop-indicator {
215
224
  display: block;
216
225
  inset-block-start: -1px;
217
226
  }
218
227
 
219
- :scope[data-drop-position="after"] .subtree-drop-indicator {
228
+ :scope[data-drop-position="after"] > .subtree-drop-indicator {
220
229
  display: block;
221
230
  inset-block-end: -1px;
222
231
  }
@@ -247,7 +256,9 @@
247
256
  }
248
257
  }
249
258
  @scope ([data-component~="ui-tree-item"]) to ([data-component]) {
250
- /* Lucide grip-vertical, filling the handle as in Looma 0.2. */
259
+ /* Child combinators: drop feedback belongs to this item's own row, not the rows nested in it. */
260
+
261
+ /* Lucide grip-vertical, filling the handle as in Looma 0.2. */
251
262
 
252
263
  /* Slotted content is outside this scope, so :has() cannot see it; hide only a truly empty slot. */
253
264
 
@@ -260,6 +271,16 @@
260
271
  flex: none;
261
272
  }
262
273
 
274
+ /* The label spans the row's height and centres its content, so slotted content (a link) can
275
+ stretch to fill the row as its own hit area; the padding tokens remove the inset. */
276
+
277
+ /* Slotted label content fills the cell, so a link is the row's hit area rather than sizing to
278
+ its own text and reading as overflow. */
279
+ .label > :where([data-slotted], [data-slotted] *):is(*) {
280
+ flex: 1 1 auto;
281
+ min-inline-size: 0;
282
+ }
283
+
263
284
  @media (prefers-reduced-motion: reduce) {
264
285
  }
265
286