@threadlabs/looma 0.28.5 → 0.28.6

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 (429) hide show
  1. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  2. package/dist/index.js +1 -1
  3. package/package.json +3 -2
  4. package/styles/ui-action-bar.css +13 -6
  5. package/styles/ui-affordance-scope.css +12 -5
  6. package/styles/ui-avatar-group.css +17 -10
  7. package/styles/ui-avatar.css +23 -16
  8. package/styles/ui-badge.css +78 -71
  9. package/styles/ui-breadcrumb-item.css +12 -5
  10. package/styles/ui-breadcrumbs.css +10 -3
  11. package/styles/ui-button.css +79 -72
  12. package/styles/ui-callout.css +29 -22
  13. package/styles/ui-card.css +25 -18
  14. package/styles/ui-checkbox.css +45 -37
  15. package/styles/ui-cluster.css +34 -27
  16. package/styles/ui-combobox.css +46 -39
  17. package/styles/ui-container.css +20 -13
  18. package/styles/ui-context-menu.css +17 -10
  19. package/styles/ui-cover.css +12 -5
  20. package/styles/ui-description-item.css +10 -3
  21. package/styles/ui-description-list.css +20 -13
  22. package/styles/ui-dialog.css +44 -35
  23. package/styles/ui-disclosure.css +32 -25
  24. package/styles/ui-editable.css +15 -8
  25. package/styles/ui-editor-image-toolbar.css +1 -1
  26. package/styles/ui-editor-insert-table-grid.css +11 -4
  27. package/styles/ui-editor-mention-menu-item.css +17 -8
  28. package/styles/ui-editor-mention-menu.css +14 -7
  29. package/styles/ui-editor-slash-menu-group.css +10 -3
  30. package/styles/ui-editor-slash-menu-item.css +15 -8
  31. package/styles/ui-editor-slash-menu.css +15 -8
  32. package/styles/ui-editor-surface.css +10 -3
  33. package/styles/ui-editor-table-context-menu.css +17 -10
  34. package/styles/ui-editor-table-overlay.css +17 -10
  35. package/styles/ui-editor-table-toolbar.css +22 -15
  36. package/styles/ui-editor-toolbar.css +18 -11
  37. package/styles/ui-floating-action-button.css +21 -14
  38. package/styles/ui-form-field.css +20 -13
  39. package/styles/ui-grid.css +21 -14
  40. package/styles/ui-icon-button.css +80 -73
  41. package/styles/ui-icon.css +14 -7
  42. package/styles/ui-image.css +25 -18
  43. package/styles/ui-input-group.css +34 -27
  44. package/styles/ui-input.css +42 -35
  45. package/styles/ui-list-item.css +33 -26
  46. package/styles/ui-list.css +22 -15
  47. package/styles/ui-listbox.css +22 -14
  48. package/styles/ui-menu-group.css +10 -3
  49. package/styles/ui-menu-item.css +29 -22
  50. package/styles/ui-menu.css +25 -18
  51. package/styles/ui-meter.css +36 -29
  52. package/styles/ui-nav-item.css +26 -19
  53. package/styles/ui-page-header.css +12 -5
  54. package/styles/ui-popover.css +27 -20
  55. package/styles/ui-radio-group.css +14 -6
  56. package/styles/ui-radio.css +24 -17
  57. package/styles/ui-reel.css +28 -21
  58. package/styles/ui-scroll-area.css +22 -15
  59. package/styles/ui-search-result-row.css +28 -21
  60. package/styles/ui-search-shell.css +24 -17
  61. package/styles/ui-section.css +14 -7
  62. package/styles/ui-select.css +33 -26
  63. package/styles/ui-separator.css +17 -10
  64. package/styles/ui-sidebar.css +35 -28
  65. package/styles/ui-spinner.css +32 -23
  66. package/styles/ui-stack.css +29 -21
  67. package/styles/ui-status-message.css +14 -7
  68. package/styles/ui-switch.css +29 -22
  69. package/styles/ui-switcher.css +27 -20
  70. package/styles/ui-table.css +14 -7
  71. package/styles/ui-tabs.css +24 -17
  72. package/styles/ui-text.css +35 -28
  73. package/styles/ui-textarea.css +37 -30
  74. package/styles/ui-toast-region.css +74 -63
  75. package/styles/ui-toast.css +21 -14
  76. package/styles/ui-tooltip.css +38 -31
  77. package/styles/ui-top-bar.css +19 -12
  78. package/styles/ui-tree-item.css +79 -71
  79. package/styles/ui-tree.css +18 -11
  80. package/vanilla/UiActionBar.d.ts +1 -1
  81. package/vanilla/UiActionBar.js +1 -1
  82. package/vanilla/UiAffordanceScope.d.ts +1 -1
  83. package/vanilla/UiAffordanceScope.js +1 -1
  84. package/vanilla/UiAvatar.d.ts +1 -1
  85. package/vanilla/UiAvatar.js +1 -1
  86. package/vanilla/UiAvatarGroup.d.ts +1 -1
  87. package/vanilla/UiAvatarGroup.js +1 -1
  88. package/vanilla/UiBadge.d.ts +1 -1
  89. package/vanilla/UiBadge.js +1 -1
  90. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  91. package/vanilla/UiBreadcrumbItem.js +1 -1
  92. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  93. package/vanilla/UiBreadcrumbs.js +1 -1
  94. package/vanilla/UiButton.d.ts +1 -1
  95. package/vanilla/UiButton.js +19 -57
  96. package/vanilla/UiCallout.d.ts +1 -1
  97. package/vanilla/UiCallout.js +25 -73
  98. package/vanilla/UiCard.d.ts +1 -1
  99. package/vanilla/UiCard.js +1 -1
  100. package/vanilla/UiCheckbox.d.ts +1 -1
  101. package/vanilla/UiCheckbox.js +1 -1
  102. package/vanilla/UiCluster.d.ts +1 -1
  103. package/vanilla/UiCluster.js +1 -1
  104. package/vanilla/UiCombobox.d.ts +1 -1
  105. package/vanilla/UiCombobox.js +60 -166
  106. package/vanilla/UiContainer.d.ts +1 -1
  107. package/vanilla/UiContainer.js +1 -1
  108. package/vanilla/UiContextMenu.d.ts +1 -1
  109. package/vanilla/UiContextMenu.js +1 -1
  110. package/vanilla/UiCover.d.ts +1 -1
  111. package/vanilla/UiCover.js +1 -1
  112. package/vanilla/UiDescriptionItem.d.ts +1 -1
  113. package/vanilla/UiDescriptionItem.js +1 -1
  114. package/vanilla/UiDescriptionList.d.ts +1 -1
  115. package/vanilla/UiDescriptionList.js +1 -1
  116. package/vanilla/UiDialog.d.ts +1 -1
  117. package/vanilla/UiDialog.js +4 -10
  118. package/vanilla/UiDisclosure.d.ts +1 -1
  119. package/vanilla/UiDisclosure.js +1 -1
  120. package/vanilla/UiEditable.d.ts +1 -1
  121. package/vanilla/UiEditable.js +7 -19
  122. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  123. package/vanilla/UiEditorImageToolbar.js +1 -1
  124. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  125. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  126. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  127. package/vanilla/UiEditorMentionMenu.js +17 -37
  128. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  129. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  130. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  131. package/vanilla/UiEditorSlashMenu.js +5 -4
  132. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  134. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  135. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  136. package/vanilla/UiEditorSurface.d.ts +1 -1
  137. package/vanilla/UiEditorSurface.js +1 -1
  138. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  139. package/vanilla/UiEditorTableContextMenu.js +6 -14
  140. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  141. package/vanilla/UiEditorTableOverlay.js +9 -25
  142. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  143. package/vanilla/UiEditorTableToolbar.js +25 -77
  144. package/vanilla/UiEditorToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorToolbar.js +1 -1
  146. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  147. package/vanilla/UiFloatingActionButton.js +1 -1
  148. package/vanilla/UiFormField.d.ts +1 -1
  149. package/vanilla/UiFormField.js +1 -1
  150. package/vanilla/UiGrid.d.ts +1 -1
  151. package/vanilla/UiGrid.js +1 -1
  152. package/vanilla/UiIcon.d.ts +1 -1
  153. package/vanilla/UiIcon.js +15 -47
  154. package/vanilla/UiIconButton.d.ts +1 -1
  155. package/vanilla/UiIconButton.js +4 -10
  156. package/vanilla/UiImage.d.ts +1 -1
  157. package/vanilla/UiImage.js +1 -1
  158. package/vanilla/UiInput.d.ts +1 -1
  159. package/vanilla/UiInput.js +1 -1
  160. package/vanilla/UiInputGroup.d.ts +1 -1
  161. package/vanilla/UiInputGroup.js +1 -1
  162. package/vanilla/UiList.d.ts +1 -1
  163. package/vanilla/UiList.js +1 -1
  164. package/vanilla/UiListItem.d.ts +1 -1
  165. package/vanilla/UiListItem.js +1 -1
  166. package/vanilla/UiListbox.d.ts +1 -1
  167. package/vanilla/UiListbox.js +4 -10
  168. package/vanilla/UiMenu.d.ts +1 -1
  169. package/vanilla/UiMenu.js +1 -1
  170. package/vanilla/UiMenuGroup.d.ts +1 -1
  171. package/vanilla/UiMenuGroup.js +4 -10
  172. package/vanilla/UiMenuItem.d.ts +1 -1
  173. package/vanilla/UiMenuItem.js +4 -10
  174. package/vanilla/UiMeter.d.ts +1 -1
  175. package/vanilla/UiMeter.js +13 -33
  176. package/vanilla/UiNavItem.d.ts +1 -1
  177. package/vanilla/UiNavItem.js +1 -1
  178. package/vanilla/UiPageHeader.d.ts +1 -1
  179. package/vanilla/UiPageHeader.js +1 -1
  180. package/vanilla/UiPopover.d.ts +1 -1
  181. package/vanilla/UiPopover.js +1 -1
  182. package/vanilla/UiRadio.d.ts +1 -1
  183. package/vanilla/UiRadio.js +1 -1
  184. package/vanilla/UiRadioGroup.d.ts +1 -1
  185. package/vanilla/UiRadioGroup.js +1 -1
  186. package/vanilla/UiReel.d.ts +1 -1
  187. package/vanilla/UiReel.js +1 -1
  188. package/vanilla/UiScrollArea.d.ts +1 -1
  189. package/vanilla/UiScrollArea.js +1 -1
  190. package/vanilla/UiSearchResultRow.d.ts +1 -1
  191. package/vanilla/UiSearchResultRow.js +1 -1
  192. package/vanilla/UiSearchShell.d.ts +1 -1
  193. package/vanilla/UiSearchShell.js +1 -1
  194. package/vanilla/UiSection.d.ts +1 -1
  195. package/vanilla/UiSection.js +1 -1
  196. package/vanilla/UiSelect.d.ts +1 -1
  197. package/vanilla/UiSelect.js +1 -1
  198. package/vanilla/UiSeparator.d.ts +1 -1
  199. package/vanilla/UiSeparator.js +1 -1
  200. package/vanilla/UiSidebar.d.ts +1 -1
  201. package/vanilla/UiSidebar.js +1 -1
  202. package/vanilla/UiSpinner.d.ts +1 -1
  203. package/vanilla/UiSpinner.js +1 -1
  204. package/vanilla/UiStack.d.ts +1 -1
  205. package/vanilla/UiStack.js +1 -1
  206. package/vanilla/UiStatusMessage.d.ts +1 -1
  207. package/vanilla/UiStatusMessage.js +1 -1
  208. package/vanilla/UiSwitch.d.ts +1 -1
  209. package/vanilla/UiSwitch.js +1 -1
  210. package/vanilla/UiSwitcher.d.ts +1 -1
  211. package/vanilla/UiSwitcher.js +1 -1
  212. package/vanilla/UiTable.d.ts +1 -1
  213. package/vanilla/UiTable.js +1 -1
  214. package/vanilla/UiTabs.d.ts +1 -1
  215. package/vanilla/UiTabs.js +1 -1
  216. package/vanilla/UiText.d.ts +1 -1
  217. package/vanilla/UiText.js +1 -1
  218. package/vanilla/UiTextarea.d.ts +1 -1
  219. package/vanilla/UiTextarea.js +1 -1
  220. package/vanilla/UiToast.d.ts +1 -1
  221. package/vanilla/UiToast.js +1 -1
  222. package/vanilla/UiToastRegion.d.ts +1 -1
  223. package/vanilla/UiToastRegion.js +1 -1
  224. package/vanilla/UiTooltip.d.ts +1 -1
  225. package/vanilla/UiTooltip.js +1 -1
  226. package/vanilla/UiTopBar.d.ts +1 -1
  227. package/vanilla/UiTopBar.js +1 -1
  228. package/vanilla/UiTree.d.ts +1 -1
  229. package/vanilla/UiTree.js +1 -1
  230. package/vanilla/UiTreeItem.d.ts +1 -1
  231. package/vanilla/UiTreeItem.js +7 -19
  232. package/vue/UiActionBar.vue +46 -78
  233. package/vue/UiAffordanceScope.vue +27 -66
  234. package/vue/UiAvatar.d.ts +10 -7
  235. package/vue/UiAvatar.vue +100 -218
  236. package/vue/UiAvatarGroup.d.ts +10 -7
  237. package/vue/UiAvatarGroup.vue +78 -160
  238. package/vue/UiBadge.d.ts +1 -1
  239. package/vue/UiBadge.vue +483 -520
  240. package/vue/UiBreadcrumbItem.vue +52 -123
  241. package/vue/UiBreadcrumbs.vue +27 -70
  242. package/vue/UiButton.d.ts +2 -2
  243. package/vue/UiButton.vue +420 -471
  244. package/vue/UiCallout.vue +131 -175
  245. package/vue/UiCard.d.ts +1 -1
  246. package/vue/UiCard.vue +112 -151
  247. package/vue/UiCheckbox.d.ts +13 -10
  248. package/vue/UiCheckbox.vue +160 -221
  249. package/vue/UiCluster.d.ts +1 -1
  250. package/vue/UiCluster.vue +84 -128
  251. package/vue/UiCombobox.d.ts +71 -68
  252. package/vue/UiCombobox.vue +417 -743
  253. package/vue/UiContainer.vue +43 -87
  254. package/vue/UiContextMenu.d.ts +6 -6
  255. package/vue/UiContextMenu.vue +78 -117
  256. package/vue/UiCover.vue +29 -69
  257. package/vue/UiDescriptionItem.vue +39 -82
  258. package/vue/UiDescriptionList.vue +64 -107
  259. package/vue/UiDialog.d.ts +22 -19
  260. package/vue/UiDialog.vue +193 -246
  261. package/vue/UiDisclosure.d.ts +22 -19
  262. package/vue/UiDisclosure.vue +192 -283
  263. package/vue/UiEditable.d.ts +5 -5
  264. package/vue/UiEditable.vue +124 -207
  265. package/vue/UiEditorImageToolbar.d.ts +2 -2
  266. package/vue/UiEditorImageToolbar.vue +41 -251
  267. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  268. package/vue/UiEditorInsertTableGrid.vue +98 -266
  269. package/vue/UiEditorMentionMenu.d.ts +15 -12
  270. package/vue/UiEditorMentionMenu.vue +150 -239
  271. package/vue/UiEditorMentionMenuItem.vue +66 -110
  272. package/vue/UiEditorSlashMenu.d.ts +16 -13
  273. package/vue/UiEditorSlashMenu.vue +172 -253
  274. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  275. package/vue/UiEditorSlashMenuItem.vue +67 -115
  276. package/vue/UiEditorSurface.vue +19 -63
  277. package/vue/UiEditorTableContextMenu.vue +135 -269
  278. package/vue/UiEditorTableOverlay.d.ts +2 -2
  279. package/vue/UiEditorTableOverlay.vue +310 -479
  280. package/vue/UiEditorTableToolbar.d.ts +2 -2
  281. package/vue/UiEditorTableToolbar.vue +182 -357
  282. package/vue/UiEditorToolbar.vue +143 -183
  283. package/vue/UiFloatingActionButton.vue +70 -114
  284. package/vue/UiFormField.d.ts +1 -1
  285. package/vue/UiFormField.vue +76 -117
  286. package/vue/UiGrid.d.ts +1 -1
  287. package/vue/UiGrid.vue +65 -103
  288. package/vue/UiIcon.vue +32 -106
  289. package/vue/UiIconButton.d.ts +2 -2
  290. package/vue/UiIconButton.vue +359 -411
  291. package/vue/UiImage.vue +145 -180
  292. package/vue/UiInput.vue +158 -190
  293. package/vue/UiInputGroup.vue +199 -239
  294. package/vue/UiList.vue +67 -109
  295. package/vue/UiListItem.vue +154 -201
  296. package/vue/UiListbox.d.ts +10 -7
  297. package/vue/UiListbox.vue +86 -260
  298. package/vue/UiMenu.d.ts +11 -11
  299. package/vue/UiMenu.vue +118 -152
  300. package/vue/UiMenuGroup.vue +21 -67
  301. package/vue/UiMenuItem.d.ts +19 -16
  302. package/vue/UiMenuItem.vue +169 -262
  303. package/vue/UiMeter.d.ts +4 -4
  304. package/vue/UiMeter.vue +166 -680
  305. package/vue/UiNavItem.vue +140 -213
  306. package/vue/UiPageHeader.vue +81 -127
  307. package/vue/UiPopover.d.ts +7 -7
  308. package/vue/UiPopover.vue +90 -129
  309. package/vue/UiRadio.d.ts +12 -9
  310. package/vue/UiRadio.vue +91 -149
  311. package/vue/UiRadioGroup.d.ts +2 -2
  312. package/vue/UiRadioGroup.vue +47 -85
  313. package/vue/UiReel.vue +89 -130
  314. package/vue/UiScrollArea.d.ts +1 -1
  315. package/vue/UiScrollArea.vue +78 -119
  316. package/vue/UiSearchResultRow.vue +96 -149
  317. package/vue/UiSearchShell.d.ts +2 -2
  318. package/vue/UiSearchShell.vue +159 -196
  319. package/vue/UiSection.vue +105 -149
  320. package/vue/UiSelect.d.ts +1 -1
  321. package/vue/UiSelect.vue +114 -146
  322. package/vue/UiSeparator.vue +42 -85
  323. package/vue/UiSidebar.d.ts +10 -7
  324. package/vue/UiSidebar.vue +193 -260
  325. package/vue/UiSpinner.vue +54 -130
  326. package/vue/UiStack.vue +66 -107
  327. package/vue/UiStatusMessage.d.ts +1 -1
  328. package/vue/UiStatusMessage.vue +61 -135
  329. package/vue/UiSwitch.d.ts +12 -9
  330. package/vue/UiSwitch.vue +136 -194
  331. package/vue/UiSwitcher.vue +69 -107
  332. package/vue/UiTable.vue +121 -156
  333. package/vue/UiTabs.d.ts +1 -1
  334. package/vue/UiTabs.vue +139 -267
  335. package/vue/UiText.d.ts +4 -4
  336. package/vue/UiText.vue +145 -184
  337. package/vue/UiTextarea.d.ts +2 -2
  338. package/vue/UiTextarea.vue +162 -194
  339. package/vue/UiToast.vue +70 -118
  340. package/vue/UiToastRegion.vue +157 -276
  341. package/vue/UiTooltip.d.ts +21 -18
  342. package/vue/UiTooltip.vue +174 -234
  343. package/vue/UiTopBar.vue +48 -76
  344. package/vue/UiTree.vue +46 -79
  345. package/vue/UiTreeItem.d.ts +18 -15
  346. package/vue/UiTreeItem.vue +526 -668
  347. package/vue/chunks/UiActionBar.js +5 -17
  348. package/vue/chunks/UiAffordanceScope.js +7 -26
  349. package/vue/chunks/UiAvatar.js +20 -74
  350. package/vue/chunks/UiAvatarGroup.js +14 -56
  351. package/vue/chunks/UiBadge.js +10 -28
  352. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  353. package/vue/chunks/UiBreadcrumbs.js +7 -25
  354. package/vue/chunks/UiButton.js +80 -103
  355. package/vue/chunks/UiCallout.js +9 -27
  356. package/vue/chunks/UiCard.js +33 -53
  357. package/vue/chunks/UiCheckbox.js +14 -46
  358. package/vue/chunks/UiCluster.js +13 -31
  359. package/vue/chunks/UiCombobox.js +99 -237
  360. package/vue/chunks/UiContainer.js +9 -27
  361. package/vue/chunks/UiContextMenu.js +7 -26
  362. package/vue/chunks/UiCover.js +7 -25
  363. package/vue/chunks/UiDescriptionItem.js +6 -24
  364. package/vue/chunks/UiDescriptionList.js +9 -27
  365. package/vue/chunks/UiDialog.js +18 -47
  366. package/vue/chunks/UiDisclosure.js +19 -66
  367. package/vue/chunks/UiEditable.js +18 -60
  368. package/vue/chunks/UiEditorImageToolbar.js +34 -103
  369. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  370. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  371. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  372. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  373. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  374. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  375. package/vue/chunks/UiEditorSurface.js +7 -25
  376. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  377. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  378. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  379. package/vue/chunks/UiEditorToolbar.js +7 -26
  380. package/vue/chunks/UiFloatingActionButton.js +10 -28
  381. package/vue/chunks/UiFormField.js +8 -27
  382. package/vue/chunks/UiGrid.js +10 -28
  383. package/vue/chunks/UiIcon.js +21 -74
  384. package/vue/chunks/UiIconButton.js +18 -50
  385. package/vue/chunks/UiImage.js +14 -33
  386. package/vue/chunks/UiInput.js +12 -31
  387. package/vue/chunks/UiInputGroup.js +10 -29
  388. package/vue/chunks/UiList.js +17 -37
  389. package/vue/chunks/UiListItem.js +12 -30
  390. package/vue/chunks/UiListbox.js +22 -124
  391. package/vue/chunks/UiMenu.js +13 -32
  392. package/vue/chunks/UiMenuGroup.js +8 -26
  393. package/vue/chunks/UiMenuItem.js +35 -80
  394. package/vue/chunks/UiMeter.js +17 -351
  395. package/vue/chunks/UiNavItem.js +23 -57
  396. package/vue/chunks/UiPageHeader.js +7 -25
  397. package/vue/chunks/UiPopover.js +9 -28
  398. package/vue/chunks/UiRadio.js +11 -43
  399. package/vue/chunks/UiRadioGroup.js +13 -32
  400. package/vue/chunks/UiReel.js +10 -28
  401. package/vue/chunks/UiScrollArea.js +10 -29
  402. package/vue/chunks/UiSearchResultRow.js +10 -28
  403. package/vue/chunks/UiSearchShell.js +9 -28
  404. package/vue/chunks/UiSection.js +9 -27
  405. package/vue/chunks/UiSelect.js +10 -29
  406. package/vue/chunks/UiSeparator.js +10 -28
  407. package/vue/chunks/UiSidebar.js +15 -47
  408. package/vue/chunks/UiSpinner.js +8 -44
  409. package/vue/chunks/UiStack.js +12 -30
  410. package/vue/chunks/UiStatusMessage.js +10 -42
  411. package/vue/chunks/UiSwitch.js +11 -43
  412. package/vue/chunks/UiSwitcher.js +9 -28
  413. package/vue/chunks/UiTable.js +7 -26
  414. package/vue/chunks/UiTabs.js +15 -91
  415. package/vue/chunks/UiText.js +148 -168
  416. package/vue/chunks/UiTextarea.js +16 -35
  417. package/vue/chunks/UiToast.js +13 -37
  418. package/vue/chunks/UiToastRegion.js +16 -88
  419. package/vue/chunks/UiTooltip.js +14 -46
  420. package/vue/chunks/UiTopBar.js +5 -17
  421. package/vue/chunks/UiTree.js +13 -32
  422. package/vue/chunks/UiTreeItem.js +34 -90
  423. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  424. package/vue/chunks/control.js +3 -0
  425. package/vue/chunks/props.js +1 -1
  426. package/vue/components.css +7606 -7534
  427. package/vue/editor/index.js +1 -1
  428. package/vue/host.ts +999 -14
  429. package/vue/chunks/host.js +0 -443
@@ -1,20 +1,15 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
2
- <script lang="ts">
3
- const htmlNextAuthoredCheck2Reported = new Set<string>()
4
- function htmlNextAuthoredCheck2(accepted: boolean, location: string, message: string): boolean {
5
- if (!accepted && !htmlNextAuthoredCheck2Reported.has(location)) {
6
- htmlNextAuthoredCheck2Reported.add(location)
7
- console.warn(message)
8
- }
9
- return accepted
10
- }
11
- </script>
12
-
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
13
2
  <script setup lang="ts">
14
3
  import { computed, getCurrentInstance, provide, ref, useTemplateRef, watchSyncEffect } from 'vue'
15
4
  import type { PropType } from 'vue'
16
5
  import { vBindControl } from './control'
17
- import { createDispatch, useComponentHost } from './host'
6
+ import {
7
+ checkHydratedRoot,
8
+ createDispatch,
9
+ nativeAttrs,
10
+ useComponentHost,
11
+ useReflectedProp,
12
+ } from './host'
18
13
  import { acceptsControllerWrite } from './props'
19
14
  import { checkedProp, propValidityState, vPropValidity } from './props'
20
15
 
@@ -187,38 +182,7 @@ void checkedProps.value
187
182
  watchSyncEffect(() => {
188
183
  void checkedProps.value
189
184
  })
190
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
191
- const names = Object.keys(attrs)
192
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
193
- return Object.fromEntries(names.map((name) => [
194
- Object.hasOwn(Object.prototype, name)
195
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
196
- : name,
197
- attrs[name],
198
- ]))
199
- }
200
- const componentInstance = getCurrentInstance()
201
- function reflectedProp(
202
- name: string,
203
- kebab: string,
204
- value: unknown,
205
- fallback: string | undefined,
206
- bound: boolean,
207
- separator?: string,
208
- ): string | undefined {
209
- const incoming = componentInstance?.vnode.props
210
- if (
211
- !bound
212
- && (incoming === null || incoming === undefined
213
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
214
- ) return fallback
215
- if (value === null || value === undefined) return undefined
216
- return Array.isArray(value) && separator !== undefined
217
- ? value.join(separator)
218
- : typeof value === 'object'
219
- ? JSON.stringify(value)
220
- : String(value)
221
- }
185
+ const reflectedProp = useReflectedProp()
222
186
  const hydrationInstance = getCurrentInstance()
223
187
  const emit = defineEmits<{
224
188
  'update:checked': [value: boolean]
@@ -238,34 +202,8 @@ const root = ref<HTMLElement | null>(null)
238
202
  const inputElement = useTemplateRef<HTMLElement>('inputElement')
239
203
  const descriptionElement = useTemplateRef<HTMLElement>('descriptionElement')
240
204
  const internalChecked = ref(false)
241
- let guardedPrevious: any
242
- const guarded = computed(() => {
243
- if (
244
- !(htmlNextAuthoredCheck2(
245
- internalChecked.value == null || typeof internalChecked.value === 'boolean',
246
- '$internalChecked:internalChecked',
247
- './components/ui-checkbox/ui-checkbox.html: HR007: Reference internalChecked does not satisfy its declared type.',
248
- ))
249
- ) return guardedPrevious
250
- return guardedPrevious = internalChecked.value
251
- })
252
205
  provide('html-next:ui-checkbox:internalChecked', internalChecked)
253
- const hydrationNode = hydrationInstance?.vnode.el
254
- if (
255
- typeof window !== 'undefined' && hydrationNode != null
256
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('label'))
257
- ) {
258
- throw Object.assign(
259
- new Error('HR005: Server markup for <ui-checkbox> has an incompatible root.'),
260
- {
261
- name: 'HtmlDiagnosticError',
262
- diagnostic: Object.freeze({
263
- code: 'HR005',
264
- message: 'Server markup for <ui-checkbox> has an incompatible root.',
265
- }),
266
- },
267
- )
268
- }
206
+ checkHydratedRoot('label', 'ui-checkbox')
269
207
 
270
208
  /** The values the styles' :host-state() rules test. */
271
209
  const hostState = computed(() =>
@@ -334,7 +272,7 @@ useComponentHost(() => import('../components/ui-checkbox/ui-checkbox.js'), {
334
272
 
335
273
  <template>
336
274
  <label
337
- data-component="ui-checkbox"
275
+ class="ui-checkbox"
338
276
  v-bind="nativeAttrs($attrs)"
339
277
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
340
278
  :data-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
@@ -387,102 +325,9 @@ useComponentHost(() => import('../components/ui-checkbox/ui-checkbox.js'), {
387
325
  inherits: false;
388
326
  }
389
327
 
390
- [data-component~="ui-checkbox"] {
391
- /* Hooks do not inherit, so the parts below read them from the root. */
392
- --_ui-checkbox-size: var(--ui-checkbox-size);
393
- --_ui-checkbox-invalid-border: var(
394
- --ui-checkbox-invalid-border,
395
- var(--ui-field-danger, var(--ui-danger-solid))
396
- );
397
-
398
- display: inline-flex;
399
- align-items: flex-start;
400
- gap: var(--ui-checkbox-gap, var(--ui-space-2));
401
- max-inline-size: 100%;
402
- color: var(--ui-text-primary);
403
- cursor: pointer;
404
- }
405
-
406
328
  /* The label, and under it an optional line saying what the choice means. */
407
- .text {
408
- display: flex;
409
- flex-direction: column;
410
- gap: var(--ui-space-1);
411
- min-inline-size: 0;
412
- }
413
-
414
- .label {
415
- min-inline-size: 0;
416
- line-height: var(--ui-line-height-md);
417
- }
418
-
419
- .description {
420
- color: var(--ui-text-secondary);
421
- font-size: var(--ui-font-size-sm);
422
- line-height: var(--ui-line-height);
423
- }
424
-
425
- .description:empty {
426
- display: none;
427
- }
428
-
429
- input {
430
- appearance: none;
431
- -webkit-appearance: none;
432
- position: relative;
433
- flex: 0 0 auto;
434
- inline-size: var(--_ui-checkbox-size, 1.125rem);
435
- block-size: var(--_ui-checkbox-size, 1.125rem);
436
- margin: 0.125em 0 0;
437
- border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
438
- border-radius: var(--ui-radius-sm);
439
- background: var(--ui-control-surface, var(--ui-surface-default));
440
- box-shadow: var(--ui-control-inset);
441
- cursor: pointer;
442
- transition:
443
- background-color var(--ui-motion-fast) var(--ui-motion-ease),
444
- border-color var(--ui-motion-fast) var(--ui-motion-ease),
445
- box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
446
- }
447
-
448
- input::after {
449
- content: "";
450
- position: absolute;
451
- opacity: 0;
452
- transition: opacity 120ms var(--ui-motion-ease);
453
- }
454
-
455
- input:checked,
456
- input:indeterminate {
457
- border-color: var(--ui-accent-solid);
458
- background: var(--ui-accent-solid);
459
- box-shadow: var(--ui-control-inset);
460
- }
461
329
 
462
330
  /* Centre the tick's box and lift it slightly for the rotated check shape. */
463
- input:checked::after {
464
- inset: 0;
465
- margin: auto;
466
- inline-size: 0.28rem;
467
- block-size: 0.5rem;
468
- /* Longhands, not `border: solid var(...)`: lowering drops a shorthand that omits a
469
- component, which left the tick with no style and no colour. */
470
- border-style: solid;
471
- border-color: var(--ui-text-on-accent);
472
- border-width: 0 0.125rem 0.125rem 0;
473
- opacity: 1;
474
- transform: translateY(-0.09rem) rotate(45deg);
475
- animation: ui-checkbox-check 180ms var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
476
- }
477
-
478
- input:indeterminate::after {
479
- inset: 50% 0.23rem auto;
480
- block-size: 0.125rem;
481
- border-radius: var(--ui-radius-round);
482
- background: var(--ui-text-on-accent);
483
- opacity: 1;
484
- transform: translateY(-50%);
485
- }
486
331
 
487
332
  @keyframes ui-checkbox-check {
488
333
  from {
@@ -499,73 +344,167 @@ input:indeterminate::after {
499
344
  }
500
345
  }
501
346
 
502
- @media (prefers-reduced-motion: reduce) {
347
+ /* A sized choice keeps its box and aligns instead: the label takes that size's field type size,
348
+ and the first line centres in that control height, so the label shares a row's baseline.
349
+ Multi-line labels and descriptions still grow downward from that first line. */
350
+
351
+ /* A component that sets its display still honours the hidden attribute on its root. */
352
+
353
+ @scope (.ui-checkbox) {
354
+ :scope:where(:scope) {
355
+ /* Hooks do not inherit, so the parts below read them from the root. */
356
+ --_ui-checkbox-size: var(--ui-checkbox-size);
357
+ --_ui-checkbox-invalid-border: var(
358
+ --ui-checkbox-invalid-border,
359
+ var(--ui-field-danger, var(--ui-danger-solid))
360
+ );
361
+
362
+ display: inline-flex;
363
+ align-items: flex-start;
364
+ gap: var(--ui-checkbox-gap, var(--ui-space-2));
365
+ max-inline-size: 100%;
366
+ color: var(--ui-text-primary);
367
+ cursor: pointer;
368
+ }
369
+ .text {
370
+ display: flex;
371
+ flex-direction: column;
372
+ gap: var(--ui-space-1);
373
+ min-inline-size: 0;
374
+ }
375
+
376
+ .label {
377
+ min-inline-size: 0;
378
+ line-height: var(--ui-line-height-md);
379
+ }
380
+
381
+ .description {
382
+ color: var(--ui-text-secondary);
383
+ font-size: var(--ui-font-size-sm);
384
+ line-height: var(--ui-line-height);
385
+ }
386
+
387
+ .description:empty {
388
+ display: none;
389
+ }
390
+
391
+ input {
392
+ appearance: none;
393
+ -webkit-appearance: none;
394
+ position: relative;
395
+ flex: 0 0 auto;
396
+ inline-size: var(--_ui-checkbox-size, 1.125rem);
397
+ block-size: var(--_ui-checkbox-size, 1.125rem);
398
+ margin: 0.125em 0 0;
399
+ border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
400
+ border-radius: var(--ui-radius-sm);
401
+ background: var(--ui-control-surface, var(--ui-surface-default));
402
+ box-shadow: var(--ui-control-inset);
403
+ cursor: pointer;
404
+ transition:
405
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
406
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
407
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
408
+ }
409
+
503
410
  input::after {
504
- transition: none;
505
- animation: none;
411
+ content: "";
412
+ position: absolute;
413
+ opacity: 0;
414
+ transition: opacity 120ms var(--ui-motion-ease);
506
415
  }
507
- }
508
416
 
509
- input:hover:enabled {
510
- border-color: var(--ui-accent-solid);
511
- }
417
+ input:checked, input:indeterminate {
418
+ border-color: var(--ui-accent-solid);
419
+ background: var(--ui-accent-solid);
420
+ box-shadow: var(--ui-control-inset);
421
+ }
422
+ input:checked::after {
423
+ inset: 0;
424
+ margin: auto;
425
+ inline-size: 0.28rem;
426
+ block-size: 0.5rem;
427
+ /* Longhands, not `border: solid var(...)`: lowering drops a shorthand that omits a
428
+ component, which left the tick with no style and no colour. */
429
+ border-style: solid;
430
+ border-color: var(--ui-text-on-accent);
431
+ border-width: 0 0.125rem 0.125rem 0;
432
+ opacity: 1;
433
+ transform: translateY(-0.09rem) rotate(45deg);
434
+ animation: ui-checkbox-check 180ms var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1))
435
+ both;
436
+ }
512
437
 
513
- input:focus-visible {
514
- outline: var(--ui-focus-width) solid var(--ui-focus-ring, var(--ui-accent-solid));
515
- outline-offset: var(--ui-focus-width);
516
- }
438
+ input:indeterminate::after {
439
+ inset: 50% 0.23rem auto;
440
+ block-size: 0.125rem;
441
+ border-radius: var(--ui-radius-round);
442
+ background: var(--ui-text-on-accent);
443
+ opacity: 1;
444
+ transform: translateY(-50%);
445
+ }
517
446
 
518
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="invalid"] input {
519
- border-color: var(--_ui-checkbox-invalid-border);
520
- }
447
+ @media (prefers-reduced-motion: reduce) {
448
+ input::after {
449
+ transition: none;
450
+ animation: none;
451
+ }
452
+ }
521
453
 
522
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] {
523
- color: var(--ui-disabled-text);
524
- cursor: not-allowed;
525
- }
526
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] .description {
527
- color: var(--ui-disabled-text);
528
- }
529
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input {
530
- border-color: var(--ui-disabled-border);
531
- background: var(--ui-disabled-surface);
532
- box-shadow: none;
533
- cursor: not-allowed;
534
- }
454
+ input:hover:enabled {
455
+ border-color: var(--ui-accent-solid);
456
+ }
535
457
 
536
- /* A sized choice keeps its box and aligns instead: the label takes that size's field type size,
537
- and the first line centres in that control height, so the label shares a row's baseline.
538
- Multi-line labels and descriptions still grow downward from that first line. */
539
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"] {
540
- --_font: var(--ui-font-size-sm);
541
- --_row: var(--ui-control-size-sm);
542
- }
458
+ input:focus-visible {
459
+ outline: var(--ui-focus-width) solid var(--ui-focus-ring, var(--ui-accent-solid));
460
+ outline-offset: var(--ui-focus-width);
461
+ }
543
462
 
544
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"] {
545
- --_font: var(--ui-font-size-md);
546
- --_row: var(--ui-control-size-lg);
547
- }
463
+ :scope[data-ui-checkbox-state~="invalid"] input {
464
+ border-color: var(--_ui-checkbox-invalid-border);
465
+ }
548
466
 
549
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"],
550
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"] {
551
- --_line: calc(var(--_font) * var(--ui-line-height-md));
552
- font-size: var(--_font);
553
- padding-block: calc((var(--_row) - var(--_line)) / 2);
554
- }
467
+ :scope:where(:scope):is([data-ui-checkbox-state~="disabled"]) {
468
+ color: var(--ui-disabled-text);
469
+ cursor: not-allowed;
470
+ }
471
+ :scope[data-ui-checkbox-state~="disabled"] .description {
472
+ color: var(--ui-disabled-text);
473
+ }
474
+ :scope[data-ui-checkbox-state~="disabled"] input {
475
+ border-color: var(--ui-disabled-border);
476
+ background: var(--ui-disabled-surface);
477
+ box-shadow: none;
478
+ cursor: not-allowed;
479
+ }
480
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=sm"]) {
481
+ --_font: var(--ui-font-size-sm);
482
+ --_row: var(--ui-control-size-sm);
483
+ }
555
484
 
556
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"] input,
557
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"] input {
558
- margin-top: calc((var(--_line) - var(--_ui-checkbox-size, 1.125rem)) / 2);
559
- }
485
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=lg"]) {
486
+ --_font: var(--ui-font-size-md);
487
+ --_row: var(--ui-control-size-lg);
488
+ }
560
489
 
561
- @media (pointer: coarse) {
562
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"] {
563
- --_row: var(--ui-control-min-block-size);
490
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=sm"]),
491
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=lg"]) {
492
+ --_line: calc(var(--_font) * var(--ui-line-height-md));
493
+ font-size: var(--_font);
494
+ padding-block: calc((var(--_row) - var(--_line)) / 2);
564
495
  }
565
- }
566
496
 
567
- /* A component that sets its display still honours the hidden attribute on its root. */
568
- [data-component~="ui-checkbox"][hidden] {
569
- display: none;
497
+ :scope[data-ui-checkbox-state~="size=sm"] input, :scope[data-ui-checkbox-state~="size=lg"] input {
498
+ margin-top: calc((var(--_line) - var(--_ui-checkbox-size, 1.125rem)) / 2);
499
+ }
500
+
501
+ @media (pointer: coarse) {
502
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=sm"]) {
503
+ --_row: var(--ui-control-min-block-size);
504
+ }
505
+ }
506
+ :scope:where(:scope):is([hidden]) {
507
+ display: none;
508
+ }
570
509
  }
571
510
  </style>
@@ -62,9 +62,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
62
62
  default: null;
63
63
  };
64
64
  }>> & Readonly<{}>, {
65
+ fixed: boolean | null;
65
66
  align: "center" | "start" | "stretch" | "end" | "baseline" | null;
66
67
  padding: "s" | "none" | "m" | "l" | null;
67
- fixed: boolean | null;
68
68
  gap: "s" | "xs" | "m" | "l" | "xl" | null;
69
69
  justify: "center" | "start" | "end" | "between" | null;
70
70
  wrap: "wrap" | "nowrap" | null;
package/vue/UiCluster.vue CHANGED
@@ -1,7 +1,8 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
- import { computed, getCurrentInstance, watchSyncEffect } from 'vue'
3
+ import { computed, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
5
+ import { checkHydratedRoot, nativeAttrs, useReflectedProp } from './host'
5
6
  import { checkedProp, vPropValidity } from './props'
6
7
 
7
8
  defineOptions({ inheritAttrs: false })
@@ -148,56 +149,9 @@ void checkedProps.value
148
149
  watchSyncEffect(() => {
149
150
  void checkedProps.value
150
151
  })
151
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
152
- const names = Object.keys(attrs)
153
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
154
- return Object.fromEntries(names.map((name) => [
155
- Object.hasOwn(Object.prototype, name)
156
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
157
- : name,
158
- attrs[name],
159
- ]))
160
- }
161
- const componentInstance = getCurrentInstance()
162
- function reflectedProp(
163
- name: string,
164
- kebab: string,
165
- value: unknown,
166
- fallback: string | undefined,
167
- bound: boolean,
168
- separator?: string,
169
- ): string | undefined {
170
- const incoming = componentInstance?.vnode.props
171
- if (
172
- !bound
173
- && (incoming === null || incoming === undefined
174
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
175
- ) return fallback
176
- if (value === null || value === undefined) return undefined
177
- return Array.isArray(value) && separator !== undefined
178
- ? value.join(separator)
179
- : typeof value === 'object'
180
- ? JSON.stringify(value)
181
- : String(value)
182
- }
183
- const hydrationInstance = getCurrentInstance()
152
+ const reflectedProp = useReflectedProp()
184
153
 
185
- const hydrationNode = hydrationInstance?.vnode.el
186
- if (
187
- typeof window !== 'undefined' && hydrationNode != null
188
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
189
- ) {
190
- throw Object.assign(
191
- new Error('HR005: Server markup for <ui-cluster> has an incompatible root.'),
192
- {
193
- name: 'HtmlDiagnosticError',
194
- diagnostic: Object.freeze({
195
- code: 'HR005',
196
- message: 'Server markup for <ui-cluster> has an incompatible root.',
197
- }),
198
- },
199
- )
200
- }
154
+ checkHydratedRoot('div', 'ui-cluster')
201
155
 
202
156
  /** The values the styles' :host-state() rules test. */
203
157
  const hostState = computed(() =>
@@ -224,7 +178,7 @@ const hostState = computed(() =>
224
178
 
225
179
  <template>
226
180
  <div
227
- data-component="ui-cluster"
181
+ class="ui-cluster"
228
182
  v-bind="nativeAttrs($attrs)"
229
183
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
230
184
  :data-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
@@ -247,84 +201,86 @@ const hostState = computed(() =>
247
201
  inherits: false;
248
202
  }
249
203
 
250
- [data-component~="ui-cluster"] {
251
- --_layout-gap: var(--ui-space-3);
252
- display: flex;
253
- flex-wrap: wrap;
254
- align-items: center;
255
- gap: var(--ui-cluster-gap, var(--_layout-gap));
256
- min-inline-size: 0;
257
- max-inline-size: 100%;
258
- margin: 0;
259
- }
204
+ /* A component that sets its display still honours the hidden attribute on its root. */
260
205
 
261
- [data-component~="ui-cluster"][data-ui-cluster-state~="fixed"] {
262
- flex: none;
263
- }
264
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=s"] {
265
- padding: var(--ui-space-2);
266
- }
267
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=m"] {
268
- padding: var(--ui-space-3);
269
- }
270
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=l"] {
271
- padding: var(--ui-space-4);
272
- }
273
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=s"] {
274
- padding-inline-end: var(--ui-space-2);
275
- }
276
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=m"] {
277
- padding-inline-end: var(--ui-space-3);
278
- }
279
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=l"] {
280
- padding-inline-end: var(--ui-space-4);
281
- }
282
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=xl"] {
283
- padding-inline-end: calc(var(--ui-space-4) * 4);
284
- }
206
+ @scope (.ui-cluster) {
207
+ :scope:where(:scope) {
208
+ --_layout-gap: var(--ui-space-3);
209
+ display: flex;
210
+ flex-wrap: wrap;
211
+ align-items: center;
212
+ gap: var(--ui-cluster-gap, var(--_layout-gap));
213
+ min-inline-size: 0;
214
+ max-inline-size: 100%;
215
+ margin: 0;
216
+ }
285
217
 
286
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xs"] {
287
- --_layout-gap: var(--ui-space-2);
288
- }
289
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=s"] {
290
- --_layout-gap: var(--ui-space-3);
291
- }
292
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=m"] {
293
- --_layout-gap: var(--ui-space-4);
294
- }
295
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=l"] {
296
- --_layout-gap: var(--ui-space-5);
297
- }
298
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xl"] {
299
- --_layout-gap: var(--ui-space-6);
300
- }
301
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=start"] {
302
- align-items: flex-start;
303
- }
304
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=end"] {
305
- align-items: flex-end;
306
- }
307
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=baseline"] {
308
- align-items: baseline;
309
- }
310
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=stretch"] {
311
- align-items: stretch;
312
- }
313
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=center"] {
314
- justify-content: center;
315
- }
316
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=end"] {
317
- justify-content: flex-end;
318
- }
319
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=between"] {
320
- justify-content: space-between;
321
- }
322
- [data-component~="ui-cluster"][data-ui-cluster-state~="wrap=nowrap"] {
323
- flex-wrap: nowrap;
324
- }
218
+ :scope:where(:scope):is([data-ui-cluster-state~="fixed"]) {
219
+ flex: none;
220
+ }
221
+ :scope:where(:scope):is([data-ui-cluster-state~="padding=s"]) {
222
+ padding: var(--ui-space-2);
223
+ }
224
+ :scope:where(:scope):is([data-ui-cluster-state~="padding=m"]) {
225
+ padding: var(--ui-space-3);
226
+ }
227
+ :scope:where(:scope):is([data-ui-cluster-state~="padding=l"]) {
228
+ padding: var(--ui-space-4);
229
+ }
230
+ :scope:where(:scope):is([data-ui-cluster-state~="paddingEnd=s"]) {
231
+ padding-inline-end: var(--ui-space-2);
232
+ }
233
+ :scope:where(:scope):is([data-ui-cluster-state~="paddingEnd=m"]) {
234
+ padding-inline-end: var(--ui-space-3);
235
+ }
236
+ :scope:where(:scope):is([data-ui-cluster-state~="paddingEnd=l"]) {
237
+ padding-inline-end: var(--ui-space-4);
238
+ }
239
+ :scope:where(:scope):is([data-ui-cluster-state~="paddingEnd=xl"]) {
240
+ padding-inline-end: calc(var(--ui-space-4) * 4);
241
+ }
325
242
 
326
- /* A component that sets its display still honours the hidden attribute on its root. */
327
- [data-component~="ui-cluster"][hidden] {
328
- display: none;
243
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=xs"]) {
244
+ --_layout-gap: var(--ui-space-2);
245
+ }
246
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=s"]) {
247
+ --_layout-gap: var(--ui-space-3);
248
+ }
249
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=m"]) {
250
+ --_layout-gap: var(--ui-space-4);
251
+ }
252
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=l"]) {
253
+ --_layout-gap: var(--ui-space-5);
254
+ }
255
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=xl"]) {
256
+ --_layout-gap: var(--ui-space-6);
257
+ }
258
+ :scope:where(:scope):is([data-ui-cluster-state~="align=start"]) {
259
+ align-items: flex-start;
260
+ }
261
+ :scope:where(:scope):is([data-ui-cluster-state~="align=end"]) {
262
+ align-items: flex-end;
263
+ }
264
+ :scope:where(:scope):is([data-ui-cluster-state~="align=baseline"]) {
265
+ align-items: baseline;
266
+ }
267
+ :scope:where(:scope):is([data-ui-cluster-state~="align=stretch"]) {
268
+ align-items: stretch;
269
+ }
270
+ :scope:where(:scope):is([data-ui-cluster-state~="justify=center"]) {
271
+ justify-content: center;
272
+ }
273
+ :scope:where(:scope):is([data-ui-cluster-state~="justify=end"]) {
274
+ justify-content: flex-end;
275
+ }
276
+ :scope:where(:scope):is([data-ui-cluster-state~="justify=between"]) {
277
+ justify-content: space-between;
278
+ }
279
+ :scope:where(:scope):is([data-ui-cluster-state~="wrap=nowrap"]) {
280
+ flex-wrap: nowrap;
281
+ }
282
+ :scope:where(:scope):is([hidden]) {
283
+ display: none;
284
+ }
329
285
  }
330
286
  </style>