@threadlabs/looma 0.28.5 → 0.28.7

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 (453) hide show
  1. package/components/ui-editor-block-actions/ui-editor-block-actions.html +20 -0
  2. package/components/ui-editor-block-actions/ui-editor-block-actions.js +14 -0
  3. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +7 -6
  4. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +2 -1
  5. package/components/ui-editor-link-card/ui-editor-link-card.html +57 -0
  6. package/components/ui-editor-link-card/ui-editor-link-card.js +27 -0
  7. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  8. package/dist/index.js +36 -34
  9. package/package.json +3 -2
  10. package/styles/ui-action-bar.css +13 -6
  11. package/styles/ui-affordance-scope.css +12 -5
  12. package/styles/ui-avatar-group.css +17 -10
  13. package/styles/ui-avatar.css +23 -16
  14. package/styles/ui-badge.css +78 -71
  15. package/styles/ui-breadcrumb-item.css +12 -5
  16. package/styles/ui-breadcrumbs.css +10 -3
  17. package/styles/ui-button.css +79 -72
  18. package/styles/ui-callout.css +29 -22
  19. package/styles/ui-card.css +25 -18
  20. package/styles/ui-checkbox.css +45 -37
  21. package/styles/ui-cluster.css +34 -27
  22. package/styles/ui-combobox.css +46 -39
  23. package/styles/ui-container.css +20 -13
  24. package/styles/ui-context-menu.css +17 -10
  25. package/styles/ui-cover.css +12 -5
  26. package/styles/ui-description-item.css +10 -3
  27. package/styles/ui-description-list.css +20 -13
  28. package/styles/ui-dialog.css +44 -35
  29. package/styles/ui-disclosure.css +32 -25
  30. package/styles/ui-editable.css +15 -8
  31. package/styles/ui-editor-block-actions.css +1 -0
  32. package/styles/ui-editor-image-toolbar.css +1 -1
  33. package/styles/ui-editor-insert-table-grid.css +11 -4
  34. package/styles/ui-editor-link-card.css +1 -0
  35. package/styles/ui-editor-mention-menu-item.css +17 -8
  36. package/styles/ui-editor-mention-menu.css +14 -7
  37. package/styles/ui-editor-slash-menu-group.css +10 -3
  38. package/styles/ui-editor-slash-menu-item.css +15 -8
  39. package/styles/ui-editor-slash-menu.css +15 -8
  40. package/styles/ui-editor-surface.css +10 -3
  41. package/styles/ui-editor-table-context-menu.css +17 -10
  42. package/styles/ui-editor-table-overlay.css +17 -10
  43. package/styles/ui-editor-table-toolbar.css +22 -15
  44. package/styles/ui-editor-toolbar.css +18 -11
  45. package/styles/ui-floating-action-button.css +21 -14
  46. package/styles/ui-form-field.css +20 -13
  47. package/styles/ui-grid.css +21 -14
  48. package/styles/ui-icon-button.css +80 -73
  49. package/styles/ui-icon.css +14 -7
  50. package/styles/ui-image.css +25 -18
  51. package/styles/ui-input-group.css +34 -27
  52. package/styles/ui-input.css +42 -35
  53. package/styles/ui-list-item.css +33 -26
  54. package/styles/ui-list.css +22 -15
  55. package/styles/ui-listbox.css +22 -14
  56. package/styles/ui-menu-group.css +10 -3
  57. package/styles/ui-menu-item.css +29 -22
  58. package/styles/ui-menu.css +25 -18
  59. package/styles/ui-meter.css +36 -29
  60. package/styles/ui-nav-item.css +26 -19
  61. package/styles/ui-page-header.css +12 -5
  62. package/styles/ui-popover.css +27 -20
  63. package/styles/ui-radio-group.css +14 -6
  64. package/styles/ui-radio.css +24 -17
  65. package/styles/ui-reel.css +28 -21
  66. package/styles/ui-scroll-area.css +22 -15
  67. package/styles/ui-search-result-row.css +28 -21
  68. package/styles/ui-search-shell.css +24 -17
  69. package/styles/ui-section.css +14 -7
  70. package/styles/ui-select.css +33 -26
  71. package/styles/ui-separator.css +17 -10
  72. package/styles/ui-sidebar.css +35 -28
  73. package/styles/ui-spinner.css +32 -23
  74. package/styles/ui-stack.css +29 -21
  75. package/styles/ui-status-message.css +14 -7
  76. package/styles/ui-switch.css +29 -22
  77. package/styles/ui-switcher.css +27 -20
  78. package/styles/ui-table.css +14 -7
  79. package/styles/ui-tabs.css +24 -17
  80. package/styles/ui-text.css +35 -28
  81. package/styles/ui-textarea.css +37 -30
  82. package/styles/ui-toast-region.css +74 -63
  83. package/styles/ui-toast.css +21 -14
  84. package/styles/ui-tooltip.css +38 -31
  85. package/styles/ui-top-bar.css +19 -12
  86. package/styles/ui-tree-item.css +79 -71
  87. package/styles/ui-tree.css +18 -11
  88. package/vanilla/UiActionBar.d.ts +1 -1
  89. package/vanilla/UiActionBar.js +1 -1
  90. package/vanilla/UiAffordanceScope.d.ts +1 -1
  91. package/vanilla/UiAffordanceScope.js +1 -1
  92. package/vanilla/UiAvatar.d.ts +1 -1
  93. package/vanilla/UiAvatar.js +1 -1
  94. package/vanilla/UiAvatarGroup.d.ts +1 -1
  95. package/vanilla/UiAvatarGroup.js +1 -1
  96. package/vanilla/UiBadge.d.ts +1 -1
  97. package/vanilla/UiBadge.js +1 -1
  98. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  99. package/vanilla/UiBreadcrumbItem.js +1 -1
  100. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  101. package/vanilla/UiBreadcrumbs.js +1 -1
  102. package/vanilla/UiButton.d.ts +1 -1
  103. package/vanilla/UiButton.js +19 -57
  104. package/vanilla/UiCallout.d.ts +1 -1
  105. package/vanilla/UiCallout.js +25 -73
  106. package/vanilla/UiCard.d.ts +1 -1
  107. package/vanilla/UiCard.js +1 -1
  108. package/vanilla/UiCheckbox.d.ts +1 -1
  109. package/vanilla/UiCheckbox.js +1 -1
  110. package/vanilla/UiCluster.d.ts +1 -1
  111. package/vanilla/UiCluster.js +1 -1
  112. package/vanilla/UiCombobox.d.ts +1 -1
  113. package/vanilla/UiCombobox.js +60 -166
  114. package/vanilla/UiContainer.d.ts +1 -1
  115. package/vanilla/UiContainer.js +1 -1
  116. package/vanilla/UiContextMenu.d.ts +1 -1
  117. package/vanilla/UiContextMenu.js +1 -1
  118. package/vanilla/UiCover.d.ts +1 -1
  119. package/vanilla/UiCover.js +1 -1
  120. package/vanilla/UiDescriptionItem.d.ts +1 -1
  121. package/vanilla/UiDescriptionItem.js +1 -1
  122. package/vanilla/UiDescriptionList.d.ts +1 -1
  123. package/vanilla/UiDescriptionList.js +1 -1
  124. package/vanilla/UiDialog.d.ts +1 -1
  125. package/vanilla/UiDialog.js +4 -10
  126. package/vanilla/UiDisclosure.d.ts +1 -1
  127. package/vanilla/UiDisclosure.js +1 -1
  128. package/vanilla/UiEditable.d.ts +1 -1
  129. package/vanilla/UiEditable.js +7 -19
  130. package/vanilla/UiEditorBlockActions.d.ts +16 -0
  131. package/vanilla/UiEditorBlockActions.js +41 -0
  132. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  133. package/vanilla/UiEditorImageToolbar.js +2 -2
  134. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  135. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  136. package/vanilla/UiEditorLinkCard.d.ts +20 -0
  137. package/vanilla/UiEditorLinkCard.js +153 -0
  138. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  139. package/vanilla/UiEditorMentionMenu.js +17 -37
  140. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  141. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  142. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  143. package/vanilla/UiEditorSlashMenu.js +5 -4
  144. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  145. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  146. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  147. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  148. package/vanilla/UiEditorSurface.d.ts +1 -1
  149. package/vanilla/UiEditorSurface.js +1 -1
  150. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  151. package/vanilla/UiEditorTableContextMenu.js +6 -14
  152. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  153. package/vanilla/UiEditorTableOverlay.js +9 -25
  154. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  155. package/vanilla/UiEditorTableToolbar.js +25 -77
  156. package/vanilla/UiEditorToolbar.d.ts +1 -1
  157. package/vanilla/UiEditorToolbar.js +1 -1
  158. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  159. package/vanilla/UiFloatingActionButton.js +1 -1
  160. package/vanilla/UiFormField.d.ts +1 -1
  161. package/vanilla/UiFormField.js +1 -1
  162. package/vanilla/UiGrid.d.ts +1 -1
  163. package/vanilla/UiGrid.js +1 -1
  164. package/vanilla/UiIcon.d.ts +1 -1
  165. package/vanilla/UiIcon.js +15 -47
  166. package/vanilla/UiIconButton.d.ts +1 -1
  167. package/vanilla/UiIconButton.js +4 -10
  168. package/vanilla/UiImage.d.ts +1 -1
  169. package/vanilla/UiImage.js +1 -1
  170. package/vanilla/UiInput.d.ts +1 -1
  171. package/vanilla/UiInput.js +1 -1
  172. package/vanilla/UiInputGroup.d.ts +1 -1
  173. package/vanilla/UiInputGroup.js +1 -1
  174. package/vanilla/UiList.d.ts +1 -1
  175. package/vanilla/UiList.js +1 -1
  176. package/vanilla/UiListItem.d.ts +1 -1
  177. package/vanilla/UiListItem.js +1 -1
  178. package/vanilla/UiListbox.d.ts +1 -1
  179. package/vanilla/UiListbox.js +4 -10
  180. package/vanilla/UiMenu.d.ts +1 -1
  181. package/vanilla/UiMenu.js +1 -1
  182. package/vanilla/UiMenuGroup.d.ts +1 -1
  183. package/vanilla/UiMenuGroup.js +4 -10
  184. package/vanilla/UiMenuItem.d.ts +1 -1
  185. package/vanilla/UiMenuItem.js +4 -10
  186. package/vanilla/UiMeter.d.ts +1 -1
  187. package/vanilla/UiMeter.js +13 -33
  188. package/vanilla/UiNavItem.d.ts +1 -1
  189. package/vanilla/UiNavItem.js +1 -1
  190. package/vanilla/UiPageHeader.d.ts +1 -1
  191. package/vanilla/UiPageHeader.js +1 -1
  192. package/vanilla/UiPopover.d.ts +1 -1
  193. package/vanilla/UiPopover.js +1 -1
  194. package/vanilla/UiRadio.d.ts +1 -1
  195. package/vanilla/UiRadio.js +1 -1
  196. package/vanilla/UiRadioGroup.d.ts +1 -1
  197. package/vanilla/UiRadioGroup.js +1 -1
  198. package/vanilla/UiReel.d.ts +1 -1
  199. package/vanilla/UiReel.js +1 -1
  200. package/vanilla/UiScrollArea.d.ts +1 -1
  201. package/vanilla/UiScrollArea.js +1 -1
  202. package/vanilla/UiSearchResultRow.d.ts +1 -1
  203. package/vanilla/UiSearchResultRow.js +1 -1
  204. package/vanilla/UiSearchShell.d.ts +1 -1
  205. package/vanilla/UiSearchShell.js +1 -1
  206. package/vanilla/UiSection.d.ts +1 -1
  207. package/vanilla/UiSection.js +1 -1
  208. package/vanilla/UiSelect.d.ts +1 -1
  209. package/vanilla/UiSelect.js +1 -1
  210. package/vanilla/UiSeparator.d.ts +1 -1
  211. package/vanilla/UiSeparator.js +1 -1
  212. package/vanilla/UiSidebar.d.ts +1 -1
  213. package/vanilla/UiSidebar.js +1 -1
  214. package/vanilla/UiSpinner.d.ts +1 -1
  215. package/vanilla/UiSpinner.js +1 -1
  216. package/vanilla/UiStack.d.ts +1 -1
  217. package/vanilla/UiStack.js +1 -1
  218. package/vanilla/UiStatusMessage.d.ts +1 -1
  219. package/vanilla/UiStatusMessage.js +1 -1
  220. package/vanilla/UiSwitch.d.ts +1 -1
  221. package/vanilla/UiSwitch.js +1 -1
  222. package/vanilla/UiSwitcher.d.ts +1 -1
  223. package/vanilla/UiSwitcher.js +1 -1
  224. package/vanilla/UiTable.d.ts +1 -1
  225. package/vanilla/UiTable.js +1 -1
  226. package/vanilla/UiTabs.d.ts +1 -1
  227. package/vanilla/UiTabs.js +1 -1
  228. package/vanilla/UiText.d.ts +1 -1
  229. package/vanilla/UiText.js +1 -1
  230. package/vanilla/UiTextarea.d.ts +1 -1
  231. package/vanilla/UiTextarea.js +1 -1
  232. package/vanilla/UiToast.d.ts +1 -1
  233. package/vanilla/UiToast.js +1 -1
  234. package/vanilla/UiToastRegion.d.ts +1 -1
  235. package/vanilla/UiToastRegion.js +1 -1
  236. package/vanilla/UiTooltip.d.ts +1 -1
  237. package/vanilla/UiTooltip.js +1 -1
  238. package/vanilla/UiTopBar.d.ts +1 -1
  239. package/vanilla/UiTopBar.js +1 -1
  240. package/vanilla/UiTree.d.ts +1 -1
  241. package/vanilla/UiTree.js +1 -1
  242. package/vanilla/UiTreeItem.d.ts +1 -1
  243. package/vanilla/UiTreeItem.js +7 -19
  244. package/vanilla/index.js +2 -0
  245. package/vue/UiActionBar.vue +46 -78
  246. package/vue/UiAffordanceScope.vue +27 -66
  247. package/vue/UiAvatar.d.ts +10 -7
  248. package/vue/UiAvatar.vue +100 -218
  249. package/vue/UiAvatarGroup.d.ts +10 -7
  250. package/vue/UiAvatarGroup.vue +78 -160
  251. package/vue/UiBadge.d.ts +1 -1
  252. package/vue/UiBadge.vue +483 -520
  253. package/vue/UiBreadcrumbItem.vue +52 -123
  254. package/vue/UiBreadcrumbs.vue +27 -70
  255. package/vue/UiButton.d.ts +2 -2
  256. package/vue/UiButton.vue +420 -471
  257. package/vue/UiCallout.vue +131 -175
  258. package/vue/UiCard.d.ts +1 -1
  259. package/vue/UiCard.vue +112 -151
  260. package/vue/UiCheckbox.d.ts +13 -10
  261. package/vue/UiCheckbox.vue +160 -221
  262. package/vue/UiCluster.d.ts +1 -1
  263. package/vue/UiCluster.vue +84 -128
  264. package/vue/UiCombobox.d.ts +71 -68
  265. package/vue/UiCombobox.vue +417 -743
  266. package/vue/UiContainer.vue +43 -87
  267. package/vue/UiContextMenu.d.ts +6 -6
  268. package/vue/UiContextMenu.vue +78 -117
  269. package/vue/UiCover.vue +29 -69
  270. package/vue/UiDescriptionItem.vue +39 -82
  271. package/vue/UiDescriptionList.vue +64 -107
  272. package/vue/UiDialog.d.ts +22 -19
  273. package/vue/UiDialog.vue +193 -246
  274. package/vue/UiDisclosure.d.ts +22 -19
  275. package/vue/UiDisclosure.vue +192 -283
  276. package/vue/UiEditable.d.ts +5 -5
  277. package/vue/UiEditable.vue +124 -207
  278. package/vue/UiEditorBlockActions.d.ts +33 -0
  279. package/vue/UiEditorBlockActions.js +2 -0
  280. package/vue/UiEditorBlockActions.vue +125 -0
  281. package/vue/UiEditorImageToolbar.d.ts +2 -2
  282. package/vue/UiEditorImageToolbar.vue +45 -256
  283. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  284. package/vue/UiEditorInsertTableGrid.vue +98 -266
  285. package/vue/UiEditorLinkCard.d.ts +58 -0
  286. package/vue/UiEditorLinkCard.js +2 -0
  287. package/vue/UiEditorLinkCard.vue +319 -0
  288. package/vue/UiEditorMentionMenu.d.ts +15 -12
  289. package/vue/UiEditorMentionMenu.vue +150 -239
  290. package/vue/UiEditorMentionMenuItem.vue +66 -110
  291. package/vue/UiEditorSlashMenu.d.ts +16 -13
  292. package/vue/UiEditorSlashMenu.vue +172 -253
  293. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  294. package/vue/UiEditorSlashMenuItem.vue +67 -115
  295. package/vue/UiEditorSurface.vue +19 -63
  296. package/vue/UiEditorTableContextMenu.vue +135 -269
  297. package/vue/UiEditorTableOverlay.d.ts +2 -2
  298. package/vue/UiEditorTableOverlay.vue +310 -479
  299. package/vue/UiEditorTableToolbar.d.ts +2 -2
  300. package/vue/UiEditorTableToolbar.vue +182 -357
  301. package/vue/UiEditorToolbar.vue +143 -183
  302. package/vue/UiFloatingActionButton.vue +70 -114
  303. package/vue/UiFormField.d.ts +1 -1
  304. package/vue/UiFormField.vue +76 -117
  305. package/vue/UiGrid.d.ts +1 -1
  306. package/vue/UiGrid.vue +65 -103
  307. package/vue/UiIcon.vue +32 -106
  308. package/vue/UiIconButton.d.ts +2 -2
  309. package/vue/UiIconButton.vue +359 -411
  310. package/vue/UiImage.vue +145 -180
  311. package/vue/UiInput.vue +158 -190
  312. package/vue/UiInputGroup.vue +199 -239
  313. package/vue/UiList.vue +67 -109
  314. package/vue/UiListItem.vue +154 -201
  315. package/vue/UiListbox.d.ts +10 -7
  316. package/vue/UiListbox.vue +86 -260
  317. package/vue/UiMenu.d.ts +11 -11
  318. package/vue/UiMenu.vue +118 -152
  319. package/vue/UiMenuGroup.vue +21 -67
  320. package/vue/UiMenuItem.d.ts +19 -16
  321. package/vue/UiMenuItem.vue +169 -262
  322. package/vue/UiMeter.d.ts +4 -4
  323. package/vue/UiMeter.vue +166 -680
  324. package/vue/UiNavItem.vue +140 -213
  325. package/vue/UiPageHeader.vue +81 -127
  326. package/vue/UiPopover.d.ts +7 -7
  327. package/vue/UiPopover.vue +90 -129
  328. package/vue/UiRadio.d.ts +12 -9
  329. package/vue/UiRadio.vue +91 -149
  330. package/vue/UiRadioGroup.d.ts +2 -2
  331. package/vue/UiRadioGroup.vue +47 -85
  332. package/vue/UiReel.vue +89 -130
  333. package/vue/UiScrollArea.d.ts +1 -1
  334. package/vue/UiScrollArea.vue +78 -119
  335. package/vue/UiSearchResultRow.vue +96 -149
  336. package/vue/UiSearchShell.d.ts +2 -2
  337. package/vue/UiSearchShell.vue +159 -196
  338. package/vue/UiSection.vue +105 -149
  339. package/vue/UiSelect.d.ts +1 -1
  340. package/vue/UiSelect.vue +114 -146
  341. package/vue/UiSeparator.vue +42 -85
  342. package/vue/UiSidebar.d.ts +10 -7
  343. package/vue/UiSidebar.vue +193 -260
  344. package/vue/UiSpinner.vue +54 -130
  345. package/vue/UiStack.vue +66 -107
  346. package/vue/UiStatusMessage.d.ts +1 -1
  347. package/vue/UiStatusMessage.vue +61 -135
  348. package/vue/UiSwitch.d.ts +12 -9
  349. package/vue/UiSwitch.vue +136 -194
  350. package/vue/UiSwitcher.vue +69 -107
  351. package/vue/UiTable.vue +121 -156
  352. package/vue/UiTabs.d.ts +1 -1
  353. package/vue/UiTabs.vue +139 -267
  354. package/vue/UiText.d.ts +4 -4
  355. package/vue/UiText.vue +145 -184
  356. package/vue/UiTextarea.d.ts +2 -2
  357. package/vue/UiTextarea.vue +162 -194
  358. package/vue/UiToast.vue +70 -118
  359. package/vue/UiToastRegion.vue +157 -276
  360. package/vue/UiTooltip.d.ts +21 -18
  361. package/vue/UiTooltip.vue +174 -234
  362. package/vue/UiTopBar.vue +48 -76
  363. package/vue/UiTree.vue +46 -79
  364. package/vue/UiTreeItem.d.ts +18 -15
  365. package/vue/UiTreeItem.vue +526 -668
  366. package/vue/chunks/UiActionBar.js +5 -17
  367. package/vue/chunks/UiAffordanceScope.js +7 -26
  368. package/vue/chunks/UiAvatar.js +20 -74
  369. package/vue/chunks/UiAvatarGroup.js +14 -56
  370. package/vue/chunks/UiBadge.js +10 -28
  371. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  372. package/vue/chunks/UiBreadcrumbs.js +7 -25
  373. package/vue/chunks/UiButton.js +80 -103
  374. package/vue/chunks/UiCallout.js +9 -27
  375. package/vue/chunks/UiCard.js +33 -53
  376. package/vue/chunks/UiCheckbox.js +14 -46
  377. package/vue/chunks/UiCluster.js +13 -31
  378. package/vue/chunks/UiCombobox.js +99 -237
  379. package/vue/chunks/UiContainer.js +9 -27
  380. package/vue/chunks/UiContextMenu.js +7 -26
  381. package/vue/chunks/UiCover.js +7 -25
  382. package/vue/chunks/UiDescriptionItem.js +6 -24
  383. package/vue/chunks/UiDescriptionList.js +9 -27
  384. package/vue/chunks/UiDialog.js +18 -47
  385. package/vue/chunks/UiDisclosure.js +19 -66
  386. package/vue/chunks/UiEditable.js +18 -60
  387. package/vue/chunks/UiEditorBlockActions.js +127 -0
  388. package/vue/chunks/UiEditorImageToolbar.js +40 -127
  389. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  390. package/vue/chunks/UiEditorLinkCard.js +356 -0
  391. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  392. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  393. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  394. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  395. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  396. package/vue/chunks/UiEditorSurface.js +7 -25
  397. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  398. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  399. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  400. package/vue/chunks/UiEditorToolbar.js +7 -26
  401. package/vue/chunks/UiFloatingActionButton.js +10 -28
  402. package/vue/chunks/UiFormField.js +8 -27
  403. package/vue/chunks/UiGrid.js +10 -28
  404. package/vue/chunks/UiIcon.js +21 -74
  405. package/vue/chunks/UiIconButton.js +18 -50
  406. package/vue/chunks/UiImage.js +14 -33
  407. package/vue/chunks/UiInput.js +12 -31
  408. package/vue/chunks/UiInputGroup.js +10 -29
  409. package/vue/chunks/UiList.js +17 -37
  410. package/vue/chunks/UiListItem.js +12 -30
  411. package/vue/chunks/UiListbox.js +22 -124
  412. package/vue/chunks/UiMenu.js +13 -32
  413. package/vue/chunks/UiMenuGroup.js +8 -26
  414. package/vue/chunks/UiMenuItem.js +35 -80
  415. package/vue/chunks/UiMeter.js +17 -351
  416. package/vue/chunks/UiNavItem.js +23 -57
  417. package/vue/chunks/UiPageHeader.js +7 -25
  418. package/vue/chunks/UiPopover.js +9 -28
  419. package/vue/chunks/UiRadio.js +11 -43
  420. package/vue/chunks/UiRadioGroup.js +13 -32
  421. package/vue/chunks/UiReel.js +10 -28
  422. package/vue/chunks/UiScrollArea.js +10 -29
  423. package/vue/chunks/UiSearchResultRow.js +10 -28
  424. package/vue/chunks/UiSearchShell.js +9 -28
  425. package/vue/chunks/UiSection.js +9 -27
  426. package/vue/chunks/UiSelect.js +10 -29
  427. package/vue/chunks/UiSeparator.js +10 -28
  428. package/vue/chunks/UiSidebar.js +15 -47
  429. package/vue/chunks/UiSpinner.js +8 -44
  430. package/vue/chunks/UiStack.js +12 -30
  431. package/vue/chunks/UiStatusMessage.js +10 -42
  432. package/vue/chunks/UiSwitch.js +11 -43
  433. package/vue/chunks/UiSwitcher.js +9 -28
  434. package/vue/chunks/UiTable.js +7 -26
  435. package/vue/chunks/UiTabs.js +15 -91
  436. package/vue/chunks/UiText.js +148 -168
  437. package/vue/chunks/UiTextarea.js +16 -35
  438. package/vue/chunks/UiToast.js +13 -37
  439. package/vue/chunks/UiToastRegion.js +16 -88
  440. package/vue/chunks/UiTooltip.js +14 -46
  441. package/vue/chunks/UiTopBar.js +5 -17
  442. package/vue/chunks/UiTree.js +13 -32
  443. package/vue/chunks/UiTreeItem.js +34 -90
  444. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  445. package/vue/chunks/control.js +3 -0
  446. package/vue/chunks/props.js +1 -1
  447. package/vue/components.css +7689 -7617
  448. package/vue/editor/index.js +30 -95
  449. package/vue/editor/primitives.d.ts +8 -2
  450. package/vue/host.ts +999 -14
  451. package/vue/index.d.ts +2 -0
  452. package/vue/index.js +5 -3
  453. package/vue/chunks/host.js +0 -443
@@ -1,18 +1,25 @@
1
- /* Generated by HTML Next 1.0.0-alpha.35. Do not edit. */
1
+ /* Generated by HTML Next 1.0.0-alpha.51. Do not edit. */
2
+ @supports (-moz-appearance: none) {
3
+ :where([data-component], [data-slotted]) { --html-next-scope-owner: boundary; }
4
+ :where([data-slotted]:not([data-component])) { --html-next-scope-owner: projected !important; }
5
+ }
6
+ @supports (-moz-appearance: none) {
7
+ [data-component~="ui-input-group"] { --html-next-scope-owner: "ui-input-group" !important; }
8
+ }
9
+ @scope ([data-component~="ui-input-group"]) to ([data-component], [data-slotted]) {
2
10
  @property --ui-input-group-radius {
3
11
  syntax: "*";
4
12
  inherits: false;
5
13
  }
6
- @property --ui-input-group-invalid-border {
14
+ @property --ui-input-group-invalid-border {
7
15
  syntax: "*";
8
16
  inherits: false;
9
17
  }
10
- @property --ui-input-group-invalid-focus-shadow {
18
+ @property --ui-input-group-invalid-focus-shadow {
11
19
  syntax: "*";
12
20
  inherits: false;
13
21
  }
14
- @scope ([data-component~="ui-input-group"]) to ([data-component], [data-slotted]) {
15
- /* An input with fixed text before or after it, such as a domain after a site's name
22
+ /* An input with fixed text before or after it, such as a domain after a site's name
16
23
  ("acme" + ".example.com") or slashes around a path. The group draws the field's border and
17
24
  focus ring around the input and its affixes together; the input inside drops its own through
18
25
  its custom properties, so it is still the one ui-input, with its form behaviour intact. The
@@ -20,7 +27,7 @@
20
27
  whole value is. The action slot takes one button at the end, inside the border, for the one
21
28
  thing the field is for ("Continue" after a site's address), so it reads as the field's action
22
29
  and not the form's. */
23
- :scope {
30
+ :scope:where([data-component~="ui-input-group"]) {
24
31
  /* The group's own border and height stand for the input's, so the group is a lone Input's height.
25
32
  Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
26
33
  --_ui-default-input-border-width: 0;
@@ -64,49 +71,49 @@
64
71
  transition: border-color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
65
72
  }
66
73
 
67
- :scope[data-ui-input-group-state~="variant=subtle"] {
74
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="variant=subtle"] {
68
75
  border-color: var(--ui-border);
69
76
  background: var(--ui-surface-muted);
70
77
  box-shadow: none;
71
78
  }
72
79
 
73
80
  /* The frame takes its input's size, so a small group lines up with small buttons and fields. */
74
- :scope:has(.field [data-ui-input-state~="size=sm"]) {
81
+ :scope:where([data-component~="ui-input-group"]):has(.field [data-ui-input-state~="size=sm"]) {
75
82
  min-block-size: var(--ui-control-size-sm);
76
83
  }
77
84
 
78
- :scope:has(.field [data-ui-input-state~="size=lg"]) {
85
+ :scope:where([data-component~="ui-input-group"]):has(.field [data-ui-input-state~="size=lg"]) {
79
86
  min-block-size: var(--ui-control-size-lg);
80
87
  }
81
88
 
82
89
  @media (pointer: coarse) {
83
- :scope {
90
+ :scope:where([data-component~="ui-input-group"]) {
84
91
  min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
85
92
  }
86
93
 
87
- :scope:has(.field [data-ui-input-state~="size=sm"]) {
94
+ :scope:where([data-component~="ui-input-group"]):has(.field [data-ui-input-state~="size=sm"]) {
88
95
  min-block-size: var(--ui-control-min-block-size);
89
96
  }
90
97
  }
91
98
 
92
- :scope:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
99
+ :scope:where([data-component~="ui-input-group"]):hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
93
100
  border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
94
101
  }
95
102
 
96
103
  /* The ring shows when the field's input would show its own: when it is focus-visible, which a
97
104
  text input is for a pointer as well as a keyboard. A focused action button draws its own. */
98
- :scope:has(.field :is(input, textarea):focus-visible) {
105
+ :scope:where([data-component~="ui-input-group"]):has(.field :is(input, textarea):focus-visible) {
99
106
  border-color: var(--ui-control-focus, var(--ui-accent-solid));
100
107
  box-shadow:
101
108
  var(--ui-control-inset),
102
109
  var(--ui-control-focus-halo-shadow);
103
110
  }
104
111
 
105
- :scope:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
112
+ :scope:where([data-component~="ui-input-group"]):has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
106
113
  border-color: var(--ui-input-group-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)));
107
114
  }
108
115
 
109
- :scope:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
116
+ :scope:where([data-component~="ui-input-group"]):has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
110
117
  box-shadow: var(
111
118
  --ui-input-group-invalid-focus-shadow,
112
119
  var(--ui-control-inset),
@@ -120,14 +127,14 @@
120
127
 
121
128
  /* Forced colors drop box shadows, so the focus ring becomes an outline. */
122
129
  @media (forced-colors: active) {
123
- :scope:has(:is(input, textarea):focus-visible) {
130
+ :scope:where([data-component~="ui-input-group"]):has(:is(input, textarea):focus-visible) {
124
131
  outline: var(--ui-focus-width) solid Highlight;
125
132
  outline-offset: var(--ui-border-width);
126
133
  }
127
134
  }
128
135
 
129
- :scope[data-ui-input-group-state~="disabled"],
130
- :scope:has(:is(input, textarea):disabled) {
136
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="disabled"],
137
+ :scope:where([data-component~="ui-input-group"]):has(:is(input, textarea):disabled) {
131
138
  background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
132
139
  box-shadow: none;
133
140
  cursor: not-allowed;
@@ -164,10 +171,10 @@
164
171
  border-inline-start: var(--ui-border-width) solid var(--ui-border-divider);
165
172
  }
166
173
 
167
- :scope[data-ui-input-group-state~="prefixKind=icon"] {
174
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="prefixKind=icon"] {
168
175
  --_ui-default-input-padding-inline-start: var(--ui-space-2);
169
176
  }
170
- :scope[data-ui-input-group-state~="prefixKind=icon"] .affix:first-child {
177
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="prefixKind=icon"] .affix:first-child {
171
178
  padding-inline-end: 0;
172
179
  border-inline-end: 0;
173
180
  background: transparent;
@@ -183,16 +190,16 @@
183
190
  }
184
191
 
185
192
  /* Multiline text owns the first row; its action remains inside the same frame below it. */
186
- :scope[data-ui-input-group-state~="multiline"] {
193
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="multiline"] {
187
194
  display: grid;
188
195
  grid-template-columns: auto minmax(0, 1fr) auto;
189
196
  }
190
197
 
191
- :scope[data-ui-input-group-state~="multiline"] .field {
198
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="multiline"] .field {
192
199
  grid-column: 2;
193
200
  }
194
201
 
195
- :scope[data-ui-input-group-state~="multiline"] .action {
202
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="multiline"] .action {
196
203
  grid-column: 1 / -1;
197
204
  justify-content: end;
198
205
  padding: var(--ui-space-2);
@@ -201,15 +208,15 @@
201
208
 
202
209
  /* The same textarea keeps its full resizeable box. Its text reserves the action's live width,
203
210
  so a translated label or pending indicator cannot cover what the person types. */
204
- :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"] {
211
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"] {
205
212
  --_ui-default-textarea-padding-inline-end: calc(var(--_ui-input-group-action-inline-size, 7rem) + var(--ui-space-3));
206
213
  }
207
214
 
208
- :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"] .field {
215
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"] .field {
209
216
  grid-row: 1;
210
217
  }
211
218
 
212
- :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"] .action {
219
+ :scope:where([data-component~="ui-input-group"])[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"] .action {
213
220
  grid-column: 2;
214
221
  grid-row: 1;
215
222
  align-self: start;
@@ -223,7 +230,7 @@
223
230
  }
224
231
 
225
232
  /* A component that sets its display still honours the hidden attribute on its root. */
226
- :scope[hidden] {
233
+ :scope:where([data-component~="ui-input-group"])[hidden] {
227
234
  display: none;
228
235
  }
229
236
  }
@@ -1,61 +1,68 @@
1
- /* Generated by HTML Next 1.0.0-alpha.35. Do not edit. */
2
- @property --ui-input-border {
1
+ /* Generated by HTML Next 1.0.0-alpha.51. Do not edit. */
2
+ @supports (-moz-appearance: none) {
3
+ :where([data-component], [data-slotted]) { --html-next-scope-owner: boundary; }
4
+ :where([data-slotted]:not([data-component])) { --html-next-scope-owner: projected !important; }
5
+ }
6
+ @supports (-moz-appearance: none) {
7
+ [data-component~="ui-input"] { --html-next-scope-owner: "ui-input" !important; }
8
+ }
9
+ @scope ([data-component~="ui-input"]) to ([data-component], [data-slotted]) {
10
+ /* This component's hooks style the element they are set on, and never a nested one. An Input
11
+ Group sets --_ui-default-input-* for the input inside it, below the input's own hooks. */
12
+ @property --ui-input-border {
3
13
  syntax: "*";
4
14
  inherits: false;
5
15
  }
6
- @property --ui-input-border-hover {
16
+ @property --ui-input-border-hover {
7
17
  syntax: "*";
8
18
  inherits: false;
9
19
  }
10
- @property --ui-input-border-width {
20
+ @property --ui-input-border-width {
11
21
  syntax: "*";
12
22
  inherits: false;
13
23
  }
14
- @property --ui-input-focus-border {
24
+ @property --ui-input-focus-border {
15
25
  syntax: "*";
16
26
  inherits: false;
17
27
  }
18
- @property --ui-input-focus-outline {
28
+ @property --ui-input-focus-outline {
19
29
  syntax: "*";
20
30
  inherits: false;
21
31
  }
22
- @property --ui-input-focus-shadow {
32
+ @property --ui-input-focus-shadow {
23
33
  syntax: "*";
24
34
  inherits: false;
25
35
  }
26
- @property --ui-input-inline-size {
36
+ @property --ui-input-inline-size {
27
37
  syntax: "*";
28
38
  inherits: false;
29
39
  }
30
- @property --ui-input-invalid-border {
40
+ @property --ui-input-invalid-border {
31
41
  syntax: "*";
32
42
  inherits: false;
33
43
  }
34
- @property --ui-input-invalid-focus-shadow {
44
+ @property --ui-input-invalid-focus-shadow {
35
45
  syntax: "*";
36
46
  inherits: false;
37
47
  }
38
- @property --ui-input-min-block-size {
48
+ @property --ui-input-min-block-size {
39
49
  syntax: "*";
40
50
  inherits: false;
41
51
  }
42
- @property --ui-input-radius {
52
+ @property --ui-input-radius {
43
53
  syntax: "*";
44
54
  inherits: false;
45
55
  }
46
- @property --ui-input-shadow {
56
+ @property --ui-input-shadow {
47
57
  syntax: "*";
48
58
  inherits: false;
49
59
  }
50
- @property --ui-input-surface {
60
+ @property --ui-input-surface {
51
61
  syntax: "*";
52
62
  inherits: false;
53
63
  }
54
- @scope ([data-component~="ui-input"]) to ([data-component], [data-slotted]) {
55
- /* This component's hooks style the element they are set on, and never a nested one. An Input
56
- Group sets --_ui-default-input-* for the input inside it, below the input's own hooks. */
57
64
 
58
- :scope {
65
+ :scope:where([data-component~="ui-input"]) {
59
66
  box-sizing: border-box;
60
67
  display: inline-block;
61
68
  inline-size: var(--ui-input-inline-size, 100%);
@@ -80,13 +87,13 @@
80
87
  }
81
88
 
82
89
  /* Each size reads the hook and then an Input Group's default first, so a group, which draws the frame, can zero it. */
83
- :scope[data-ui-input-state~="size=sm"] {
90
+ :scope:where([data-component~="ui-input"])[data-ui-input-state~="size=sm"] {
84
91
  min-block-size: var(--ui-input-min-block-size, var(--_ui-default-input-min-block-size, var(--ui-control-size-sm)));
85
92
  padding: var(--ui-space-1) var(--ui-space-2);
86
93
  font-size: var(--ui-font-size-sm);
87
94
  }
88
95
 
89
- :scope[data-ui-input-state~="size=lg"] {
96
+ :scope:where([data-component~="ui-input"])[data-ui-input-state~="size=lg"] {
90
97
  min-block-size: var(--ui-input-min-block-size, var(--_ui-default-input-min-block-size, var(--ui-control-size-lg)));
91
98
  padding: var(--ui-space-3) var(--ui-space-4);
92
99
  font-size: var(--ui-font-size-md);
@@ -95,52 +102,52 @@
95
102
  /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
96
103
  body-size text: below 16px, iOS zooms the page into the focused field. */
97
104
  @media (pointer: coarse) {
98
- :scope {
105
+ :scope:where([data-component~="ui-input"]) {
99
106
  min-block-size: var(
100
107
  --ui-input-min-block-size,
101
108
  var(--_ui-default-input-min-block-size, max(var(--ui-control-size-md), var(--ui-control-min-block-size)))
102
109
  );
103
110
  }
104
111
 
105
- :scope,
106
- :scope[data-ui-input-state~="size=sm"],
107
- :scope[data-ui-input-state~="size=lg"] {
112
+ :scope:where([data-component~="ui-input"]),
113
+ :scope:where([data-component~="ui-input"])[data-ui-input-state~="size=sm"],
114
+ :scope:where([data-component~="ui-input"])[data-ui-input-state~="size=lg"] {
108
115
  font-size: var(--ui-font-size-md);
109
116
  }
110
117
 
111
- :scope[data-ui-input-state~="size=sm"] {
118
+ :scope:where([data-component~="ui-input"])[data-ui-input-state~="size=sm"] {
112
119
  min-block-size: var(--ui-input-min-block-size, var(--_ui-default-input-min-block-size, var(--ui-control-min-block-size)));
113
120
  }
114
121
  }
115
122
 
116
123
  /* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
117
- :scope::selection {
124
+ :scope:where([data-component~="ui-input"])::selection {
118
125
  background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
119
126
  color: inherit;
120
127
  }
121
128
 
122
- :scope::placeholder {
129
+ :scope:where([data-component~="ui-input"])::placeholder {
123
130
  color: var(--ui-control-placeholder, var(--ui-text-secondary));
124
131
  opacity: 1;
125
132
  }
126
133
 
127
- :scope:hover:not(:focus):not(:disabled):not(:read-only):not([aria-invalid="true"]):not(:is(:user-invalid, [data-user-invalid])) {
134
+ :scope:where([data-component~="ui-input"]):hover:not(:focus):not(:disabled):not(:read-only):not([aria-invalid="true"]):not(:is(:user-invalid, [data-user-invalid])) {
128
135
  border-color: var(--ui-input-border-hover, var(--_ui-default-input-border-hover, var(--ui-control-border-hover, var(--ui-text-secondary))));
129
136
  }
130
137
 
131
- :scope:focus-visible {
138
+ :scope:where([data-component~="ui-input"]):focus-visible {
132
139
  border-color: var(--ui-input-focus-border, var(--_ui-default-input-focus-border, var(--ui-control-focus, var(--ui-accent-solid))));
133
140
  outline: none;
134
141
  box-shadow: var(--ui-input-focus-shadow, var(--_ui-default-input-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow)));
135
142
  }
136
143
 
137
144
  /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
138
- :scope[aria-invalid="true"],
139
- :scope:is(:user-invalid, [data-user-invalid]) {
145
+ :scope:where([data-component~="ui-input"])[aria-invalid="true"],
146
+ :scope:where([data-component~="ui-input"]):is(:user-invalid, [data-user-invalid]) {
140
147
  border-color: var(--ui-input-invalid-border, var(--_ui-default-input-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))));
141
148
  }
142
149
 
143
- :scope:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
150
+ :scope:where([data-component~="ui-input"]):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
144
151
  box-shadow: var(
145
152
  --ui-input-invalid-focus-shadow,
146
153
  var(
@@ -155,7 +162,7 @@
155
162
  );
156
163
  }
157
164
 
158
- :scope:disabled {
165
+ :scope:where([data-component~="ui-input"]):disabled {
159
166
  background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
160
167
  color: var(--ui-disabled-text);
161
168
  box-shadow: none;
@@ -164,7 +171,7 @@
164
171
 
165
172
  /* Forced colors drop box shadows, so the focus ring becomes an outline. */
166
173
  @media (forced-colors: active) {
167
- :scope:focus-visible {
174
+ :scope:where([data-component~="ui-input"]):focus-visible {
168
175
  outline: var(--ui-input-focus-outline, var(--_ui-default-input-focus-outline, var(--ui-focus-width) solid Highlight));
169
176
  outline-offset: var(--ui-border-width);
170
177
  }
@@ -174,7 +181,7 @@
174
181
  * scroll vertically inside the field. Native inputs already center their single line. */
175
182
 
176
183
  /* A component that sets its display still honours the hidden attribute on its root. */
177
- :scope[hidden] {
184
+ :scope:where([data-component~="ui-input"])[hidden] {
178
185
  display: none;
179
186
  }
180
187
  }
@@ -1,22 +1,29 @@
1
- /* Generated by HTML Next 1.0.0-alpha.35. Do not edit. */
2
- @property --ui-list-item-gap {
1
+ /* Generated by HTML Next 1.0.0-alpha.51. Do not edit. */
2
+ @supports (-moz-appearance: none) {
3
+ :where([data-component], [data-slotted]) { --html-next-scope-owner: boundary; }
4
+ :where([data-slotted]:not([data-component])) { --html-next-scope-owner: projected !important; }
5
+ }
6
+ @supports (-moz-appearance: none) {
7
+ [data-component~="ui-list-item"] { --html-next-scope-owner: "ui-list-item" !important; }
8
+ }
9
+ @scope ([data-component~="ui-list-item"]) to ([data-component], [data-slotted]) {
10
+ /* This component's hooks style the element they are set on, and never a nested one. */
11
+ @property --ui-list-item-gap {
3
12
  syntax: "*";
4
13
  inherits: false;
5
14
  }
6
- @property --ui-list-item-icon-size {
15
+ @property --ui-list-item-icon-size {
7
16
  syntax: "*";
8
17
  inherits: false;
9
18
  }
10
- @property --ui-list-item-padding-block {
19
+ @property --ui-list-item-padding-block {
11
20
  syntax: "*";
12
21
  inherits: false;
13
22
  }
14
- @property --ui-list-item-padding-inline {
23
+ @property --ui-list-item-padding-inline {
15
24
  syntax: "*";
16
25
  inherits: false;
17
26
  }
18
- @scope ([data-component~="ui-list-item"]) to ([data-component], [data-slotted]) {
19
- /* This component's hooks style the element they are set on, and never a nested one. */
20
27
 
21
28
  /* One entry in a list: something to recognise (leading, usually an icon), its name (the default
22
29
  slot), one line about it (description), and what it offers (trailing, such as a button or a
@@ -27,7 +34,7 @@
27
34
  padding follow it too, and the item takes the link's focus ring. The link stays a real link, so
28
35
  a router, a modified click, and "open in new tab" all work. Trailing controls sit above it and
29
36
  stay their own. */
30
- :scope {
37
+ :scope:where([data-component~="ui-list-item"]) {
31
38
  /* Hooks do not inherit, so the parts below read them from the root. */
32
39
  --_ui-list-item-icon-size: var(--ui-list-item-icon-size);
33
40
 
@@ -45,7 +52,7 @@
45
52
  transition: background-color var(--ui-motion-fast) var(--ui-motion-ease), border-color var(--ui-motion-fast) var(--ui-motion-ease);
46
53
  }
47
54
 
48
- :scope[data-ui-list-item-state~="variant=card"] {
55
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="variant=card"] {
49
56
  padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
50
57
  padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
51
58
  border: var(--ui-border-width) solid var(--ui-border-strong);
@@ -53,27 +60,27 @@
53
60
  background: var(--ui-surface-raised);
54
61
  }
55
62
 
56
- :scope:where(:has(.title a[href])):hover,
57
- :scope[data-ui-list-item-state~="highlighted"],
58
- :scope[data-ui-list-item-state~="current"] {
63
+ :scope:where([data-component~="ui-list-item"]):where(:has(.title a[href])):hover,
64
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="highlighted"],
65
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="current"] {
59
66
  background: var(--_ui-selection-context-surface, var(--ui-selection-surface));
60
67
  box-shadow: inset 0 0 0 var(--ui-border-width) var(--_ui-selection-context-border, var(--ui-selection-border));
61
68
  }
62
69
 
63
- :scope[data-ui-list-item-state~="variant=card"]:where(:has(.title a[href])):hover {
70
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="variant=card"]:where(:has(.title a[href])):hover {
64
71
  border-color: var(--ui-border-strong);
65
72
  }
66
73
 
67
- :scope[data-ui-list-item-state~="current"] {
74
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="current"] {
68
75
  color: var(--_ui-selection-context-text, var(--ui-selection-text));
69
76
  }
70
77
 
71
78
  /* Framed cards already have their own edge; the stronger focus ring stays separate. */
72
- :scope[data-ui-list-item-state~="variant=card"] {
79
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="variant=card"] {
73
80
  box-shadow: none;
74
81
  }
75
82
 
76
- :scope:has(.title a[href]:focus-visible) {
83
+ :scope:where([data-component~="ui-list-item"]):has(.title a[href]:focus-visible) {
77
84
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
78
85
  }
79
86
 
@@ -90,12 +97,12 @@
90
97
  font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
91
98
  }
92
99
 
93
- :scope[data-ui-list-item-state~="current"] .leading {
100
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="current"] .leading {
94
101
  color: var(--_ui-selection-context-text, var(--ui-selection-text));
95
102
  }
96
103
 
97
104
  /* An explicitly independent leading control sits above the stretched row link. */
98
- :scope[data-ui-list-item-state~="leadingInteractive"] .leading {
105
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="leadingInteractive"] .leading {
99
106
  position: relative;
100
107
  z-index: 1;
101
108
  }
@@ -125,8 +132,8 @@
125
132
  white-space: nowrap;
126
133
  }
127
134
 
128
- :scope[data-ui-list-item-state~="wrap"] .title,
129
- :scope[data-ui-list-item-state~="wrap"] .description {
135
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="wrap"] .title,
136
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="wrap"] .description {
130
137
  white-space: normal;
131
138
  overflow-wrap: anywhere;
132
139
  }
@@ -138,12 +145,12 @@
138
145
  }
139
146
 
140
147
  /* Keep identity and disclosure marks beside the first line, even with a long description. */
141
- :scope[data-ui-list-item-state~="align=title"] {
148
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="align=title"] {
142
149
  align-items: flex-start;
143
150
  }
144
151
 
145
- :scope[data-ui-list-item-state~="align=title"] .leading,
146
- :scope[data-ui-list-item-state~="align=title"] .trailing {
152
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="align=title"] .leading,
153
+ :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="align=title"] .trailing {
147
154
  min-block-size: calc(var(--ui-font-size-md) * var(--ui-line-height-tight));
148
155
  }
149
156
 
@@ -161,18 +168,18 @@
161
168
  }
162
169
 
163
170
  @media (forced-colors: active) {
164
- :scope:has(a:focus-visible) {
171
+ :scope:where([data-component~="ui-list-item"]):has(a:focus-visible) {
165
172
  outline: var(--ui-focus-width) solid Highlight;
166
173
  outline-offset: calc(-1 * var(--ui-focus-width));
167
174
  }
168
- :is(:scope[data-ui-list-item-state~="current"], :scope[data-ui-list-item-state~="highlighted"]):not(:has(a:focus-visible)) {
175
+ :is(:scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="current"], :scope:where([data-component~="ui-list-item"])[data-ui-list-item-state~="highlighted"]):not(:has(a:focus-visible)) {
169
176
  outline: var(--ui-border-width) solid Highlight;
170
177
  outline-offset: calc(-1 * var(--ui-border-width));
171
178
  }
172
179
  }
173
180
 
174
181
  /* A component that sets its display still honours the hidden attribute on its root. */
175
- :scope[hidden] {
182
+ :scope:where([data-component~="ui-list-item"])[hidden] {
176
183
  display: none;
177
184
  }
178
185
  }
@@ -1,19 +1,26 @@
1
- /* Generated by HTML Next 1.0.0-alpha.35. Do not edit. */
2
- @property --ui-list-gap {
1
+ /* Generated by HTML Next 1.0.0-alpha.51. Do not edit. */
2
+ @supports (-moz-appearance: none) {
3
+ :where([data-component], [data-slotted]) { --html-next-scope-owner: boundary; }
4
+ :where([data-slotted]:not([data-component])) { --html-next-scope-owner: projected !important; }
5
+ }
6
+ @supports (-moz-appearance: none) {
7
+ [data-component~="ui-list"] { --html-next-scope-owner: "ui-list" !important; }
8
+ }
9
+ @scope ([data-component~="ui-list"]) to ([data-component], [data-slotted]) {
10
+ /* This component's hooks style the element they are set on, and never a nested one. */
11
+ @property --ui-list-gap {
3
12
  syntax: "*";
4
13
  inherits: false;
5
14
  }
6
- @property --ui-list-min-item-width {
15
+ @property --ui-list-min-item-width {
7
16
  syntax: "*";
8
17
  inherits: false;
9
18
  }
10
- @scope ([data-component~="ui-list"]) to ([data-component], [data-slotted]) {
11
- /* This component's hooks style the element they are set on, and never a nested one. */
12
19
 
13
20
  /* A list of native li elements or structured ui-list-item components. It owns the spacing between them, so a view never sets it. The
14
21
  explicit list role keeps the list announced as one: some browsers drop it from a list with no
15
22
  markers. */
16
- :scope {
23
+ :scope:where([data-component~="ui-list"]) {
17
24
  --_list-gap: var(--ui-list-gap, var(--ui-space-1));
18
25
  --_list-min-item-width: var(--ui-list-min-item-width, 14rem);
19
26
  display: flex;
@@ -26,21 +33,21 @@
26
33
  list-style: none;
27
34
  }
28
35
 
29
- :scope[data-ui-list-state~="as=ol"],
30
- :scope[data-ui-list-state~="markers=disc"] {
36
+ :scope:where([data-component~="ui-list"])[data-ui-list-state~="as=ol"],
37
+ :scope:where([data-component~="ui-list"])[data-ui-list-state~="markers=disc"] {
31
38
  padding-inline-start: var(--ui-space-5);
32
39
  }
33
40
 
34
- :scope[data-ui-list-state~="as=ol"] {
41
+ :scope:where([data-component~="ui-list"])[data-ui-list-state~="as=ol"] {
35
42
  list-style: decimal;
36
43
  }
37
44
 
38
- :scope[data-ui-list-state~="markers=disc"] {
45
+ :scope:where([data-component~="ui-list"])[data-ui-list-state~="markers=disc"] {
39
46
  list-style: disc;
40
47
  }
41
48
 
42
49
  /* Compact passes its size to the items through private properties, which cross into each item. */
43
- :scope[data-ui-list-state~="density=compact"] {
50
+ :scope:where([data-component~="ui-list"])[data-ui-list-state~="density=compact"] {
44
51
  --_list-gap: var(--ui-list-gap, var(--ui-space-2));
45
52
  --_ui-list-item-min-size: 0;
46
53
  --_ui-list-item-padding-block: 0;
@@ -50,14 +57,14 @@
50
57
  --_ui-list-native-padding-inline: 0;
51
58
  }
52
59
 
53
- :scope[data-ui-list-state~="layout=grid"] {
60
+ :scope:where([data-component~="ui-list"])[data-ui-list-state~="layout=grid"] {
54
61
  --_list-gap: var(--ui-list-gap, var(--ui-space-3));
55
62
  display: grid;
56
63
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--_list-min-item-width)), 1fr));
57
64
  }
58
65
 
59
66
  /* A component that sets its display still honours the hidden attribute on its root. */
60
- :scope[hidden] {
67
+ :scope:where([data-component~="ui-list"])[hidden] {
61
68
  display: none;
62
69
  }
63
70
  }
@@ -68,7 +75,7 @@
68
75
  explicit list role keeps the list announced as one: some browsers drop it from a list with no
69
76
  markers. */
70
77
 
71
- :scope > :where([data-slotted], [data-slotted] *):is(li) {
78
+ :scope:where([data-component~="ui-list"]) > :where([data-slotted], [data-slotted] *):is(li) {
72
79
  box-sizing: border-box;
73
80
  min-inline-size: 0;
74
81
  padding: var(--_ui-list-native-padding-block, var(--ui-space-2)) var(--_ui-list-native-padding-inline, var(--ui-space-3));
@@ -77,7 +84,7 @@
77
84
  list-style: inherit;
78
85
  }
79
86
 
80
- :scope > :where([data-slotted], [data-slotted] *):is(li.card) {
87
+ :scope:where([data-component~="ui-list"]) > :where([data-slotted], [data-slotted] *):is(li.card) {
81
88
  padding: var(--_ui-list-native-padding-block, var(--ui-space-3)) var(--_ui-list-native-padding-inline, var(--ui-space-4));
82
89
  border: var(--ui-border-width) solid var(--ui-border-strong);
83
90
  border-radius: var(--ui-radius-lg);