@threadlabs/looma 0.28.13 → 0.28.15

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-affordance-scope/ui-affordance-scope.html +1 -1
  2. package/components/ui-avatar/ui-avatar.html +1 -1
  3. package/components/ui-combobox/ui-combobox.html +1 -1
  4. package/components/ui-disclosure/ui-disclosure.html +4 -4
  5. package/components/ui-editable/ui-editable.html +3 -3
  6. package/components/ui-menu/ui-menu.html +1 -1
  7. package/components/ui-popover/ui-popover.html +1 -1
  8. package/components/ui-sidebar/ui-sidebar.html +4 -4
  9. package/components/ui-switcher/ui-switcher.html +1 -1
  10. package/components/ui-tree-item/ui-tree-item.html +2 -2
  11. package/dist/index.js +1 -1
  12. package/editor/image-delivery.d.ts +10 -1
  13. package/package.json +3 -3
  14. package/styles/ui-action-bar.css +1 -1
  15. package/styles/ui-affordance-scope.css +1 -1
  16. package/styles/ui-avatar-group.css +1 -1
  17. package/styles/ui-avatar.css +1 -1
  18. package/styles/ui-badge.css +1 -1
  19. package/styles/ui-breadcrumb-item.css +1 -1
  20. package/styles/ui-breadcrumbs.css +1 -1
  21. package/styles/ui-button.css +1 -1
  22. package/styles/ui-callout.css +1 -1
  23. package/styles/ui-card.css +1 -1
  24. package/styles/ui-checkbox.css +1 -1
  25. package/styles/ui-cluster.css +1 -1
  26. package/styles/ui-combobox.css +1 -1
  27. package/styles/ui-container.css +1 -1
  28. package/styles/ui-context-menu.css +1 -1
  29. package/styles/ui-cover.css +1 -1
  30. package/styles/ui-description-item.css +1 -1
  31. package/styles/ui-description-list.css +1 -1
  32. package/styles/ui-dialog.css +1 -1
  33. package/styles/ui-disclosure.css +2 -2
  34. package/styles/ui-editable.css +1 -1
  35. package/styles/ui-editor-block-actions.css +1 -1
  36. package/styles/ui-editor-chip-editor.css +1 -1
  37. package/styles/ui-editor-code-language.css +1 -1
  38. package/styles/ui-editor-image-toolbar.css +1 -1
  39. package/styles/ui-editor-insert-table-grid.css +1 -1
  40. package/styles/ui-editor-link-card.css +1 -1
  41. package/styles/ui-editor-link-form.css +1 -1
  42. package/styles/ui-editor-mention-menu-item.css +1 -1
  43. package/styles/ui-editor-mention-menu.css +1 -1
  44. package/styles/ui-editor-slash-menu-group.css +1 -1
  45. package/styles/ui-editor-slash-menu-item.css +1 -1
  46. package/styles/ui-editor-slash-menu.css +1 -1
  47. package/styles/ui-editor-surface.css +1 -1
  48. package/styles/ui-editor-table-context-menu.css +1 -1
  49. package/styles/ui-editor-table-overlay.css +1 -1
  50. package/styles/ui-editor-table-toolbar.css +1 -1
  51. package/styles/ui-editor-toolbar.css +1 -1
  52. package/styles/ui-floating-action-button.css +1 -1
  53. package/styles/ui-form-field.css +1 -1
  54. package/styles/ui-grid.css +1 -1
  55. package/styles/ui-icon-button.css +1 -1
  56. package/styles/ui-icon.css +1 -1
  57. package/styles/ui-image.css +1 -1
  58. package/styles/ui-input-group.css +1 -1
  59. package/styles/ui-input.css +1 -1
  60. package/styles/ui-list-item.css +1 -1
  61. package/styles/ui-list.css +1 -1
  62. package/styles/ui-listbox.css +1 -1
  63. package/styles/ui-menu-group.css +1 -1
  64. package/styles/ui-menu-item.css +1 -1
  65. package/styles/ui-menu.css +2 -2
  66. package/styles/ui-meter.css +1 -1
  67. package/styles/ui-nav-item.css +1 -1
  68. package/styles/ui-page-header.css +1 -1
  69. package/styles/ui-popover.css +2 -2
  70. package/styles/ui-radio-group.css +1 -1
  71. package/styles/ui-radio.css +1 -1
  72. package/styles/ui-reel.css +1 -1
  73. package/styles/ui-scroll-area.css +1 -1
  74. package/styles/ui-search-result-row.css +1 -1
  75. package/styles/ui-search-shell.css +1 -1
  76. package/styles/ui-section.css +1 -1
  77. package/styles/ui-select.css +1 -1
  78. package/styles/ui-separator.css +1 -1
  79. package/styles/ui-sidebar.css +2 -2
  80. package/styles/ui-spinner.css +1 -1
  81. package/styles/ui-stack.css +1 -1
  82. package/styles/ui-status-message.css +1 -1
  83. package/styles/ui-swatch.css +1 -1
  84. package/styles/ui-switch.css +1 -1
  85. package/styles/ui-switcher.css +1 -1
  86. package/styles/ui-table.css +1 -1
  87. package/styles/ui-tabs.css +1 -1
  88. package/styles/ui-text.css +1 -1
  89. package/styles/ui-textarea.css +1 -1
  90. package/styles/ui-toast-region.css +1 -1
  91. package/styles/ui-toast.css +1 -1
  92. package/styles/ui-tooltip.css +1 -1
  93. package/styles/ui-top-bar.css +1 -1
  94. package/styles/ui-tree-item.css +1 -1
  95. package/styles/ui-tree.css +1 -1
  96. package/vanilla/UiActionBar.d.ts +1 -1
  97. package/vanilla/UiActionBar.js +1 -1
  98. package/vanilla/UiAffordanceScope.d.ts +1 -1
  99. package/vanilla/UiAffordanceScope.js +2 -2
  100. package/vanilla/UiAvatar.d.ts +1 -1
  101. package/vanilla/UiAvatar.js +2 -2
  102. package/vanilla/UiAvatarGroup.d.ts +1 -1
  103. package/vanilla/UiAvatarGroup.js +2 -2
  104. package/vanilla/UiBadge.d.ts +1 -1
  105. package/vanilla/UiBadge.js +2 -2
  106. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  107. package/vanilla/UiBreadcrumbItem.js +2 -2
  108. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  109. package/vanilla/UiBreadcrumbs.js +2 -2
  110. package/vanilla/UiButton.d.ts +1 -1
  111. package/vanilla/UiButton.js +3 -3
  112. package/vanilla/UiCallout.d.ts +1 -1
  113. package/vanilla/UiCallout.js +2 -2
  114. package/vanilla/UiCard.d.ts +1 -1
  115. package/vanilla/UiCard.js +3 -3
  116. package/vanilla/UiCheckbox.d.ts +1 -1
  117. package/vanilla/UiCheckbox.js +2 -2
  118. package/vanilla/UiCluster.d.ts +1 -1
  119. package/vanilla/UiCluster.js +2 -2
  120. package/vanilla/UiCombobox.d.ts +1 -1
  121. package/vanilla/UiCombobox.js +2 -2
  122. package/vanilla/UiContainer.d.ts +1 -1
  123. package/vanilla/UiContainer.js +2 -2
  124. package/vanilla/UiContextMenu.d.ts +1 -1
  125. package/vanilla/UiContextMenu.js +2 -2
  126. package/vanilla/UiCover.d.ts +1 -1
  127. package/vanilla/UiCover.js +2 -2
  128. package/vanilla/UiDescriptionItem.d.ts +1 -1
  129. package/vanilla/UiDescriptionItem.js +2 -2
  130. package/vanilla/UiDescriptionList.d.ts +1 -1
  131. package/vanilla/UiDescriptionList.js +2 -2
  132. package/vanilla/UiDialog.d.ts +1 -1
  133. package/vanilla/UiDialog.js +2 -2
  134. package/vanilla/UiDisclosure.d.ts +1 -1
  135. package/vanilla/UiDisclosure.js +2 -2
  136. package/vanilla/UiEditable.d.ts +1 -1
  137. package/vanilla/UiEditable.js +2 -2
  138. package/vanilla/UiEditorBlockActions.d.ts +1 -1
  139. package/vanilla/UiEditorBlockActions.js +2 -2
  140. package/vanilla/UiEditorChipEditor.d.ts +1 -1
  141. package/vanilla/UiEditorChipEditor.js +2 -2
  142. package/vanilla/UiEditorCodeLanguage.d.ts +1 -1
  143. package/vanilla/UiEditorCodeLanguage.js +2 -2
  144. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorImageToolbar.js +2 -2
  146. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  147. package/vanilla/UiEditorInsertTableGrid.js +2 -2
  148. package/vanilla/UiEditorLinkCard.d.ts +1 -1
  149. package/vanilla/UiEditorLinkCard.js +2 -2
  150. package/vanilla/UiEditorLinkForm.d.ts +1 -1
  151. package/vanilla/UiEditorLinkForm.js +2 -2
  152. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  153. package/vanilla/UiEditorMentionMenu.js +2 -2
  154. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  155. package/vanilla/UiEditorMentionMenuItem.js +3 -3
  156. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  157. package/vanilla/UiEditorSlashMenu.js +2 -2
  158. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  159. package/vanilla/UiEditorSlashMenuGroup.js +2 -2
  160. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  161. package/vanilla/UiEditorSlashMenuItem.js +3 -3
  162. package/vanilla/UiEditorSurface.d.ts +1 -1
  163. package/vanilla/UiEditorSurface.js +2 -2
  164. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  165. package/vanilla/UiEditorTableContextMenu.js +2 -2
  166. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  167. package/vanilla/UiEditorTableOverlay.js +2 -2
  168. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  169. package/vanilla/UiEditorTableToolbar.js +2 -2
  170. package/vanilla/UiEditorToolbar.d.ts +1 -1
  171. package/vanilla/UiEditorToolbar.js +2 -2
  172. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  173. package/vanilla/UiFloatingActionButton.js +2 -2
  174. package/vanilla/UiFormField.d.ts +1 -1
  175. package/vanilla/UiFormField.js +2 -2
  176. package/vanilla/UiGrid.d.ts +1 -1
  177. package/vanilla/UiGrid.js +2 -2
  178. package/vanilla/UiIcon.d.ts +1 -1
  179. package/vanilla/UiIcon.js +2 -2
  180. package/vanilla/UiIconButton.d.ts +1 -1
  181. package/vanilla/UiIconButton.js +3 -3
  182. package/vanilla/UiImage.d.ts +1 -1
  183. package/vanilla/UiImage.js +2 -2
  184. package/vanilla/UiInput.d.ts +1 -1
  185. package/vanilla/UiInput.js +2 -2
  186. package/vanilla/UiInputGroup.d.ts +1 -1
  187. package/vanilla/UiInputGroup.js +2 -2
  188. package/vanilla/UiList.d.ts +1 -1
  189. package/vanilla/UiList.js +3 -3
  190. package/vanilla/UiListItem.d.ts +1 -1
  191. package/vanilla/UiListItem.js +2 -2
  192. package/vanilla/UiListbox.d.ts +1 -1
  193. package/vanilla/UiListbox.js +2 -2
  194. package/vanilla/UiMenu.d.ts +1 -1
  195. package/vanilla/UiMenu.js +2 -2
  196. package/vanilla/UiMenuGroup.d.ts +1 -1
  197. package/vanilla/UiMenuGroup.js +2 -2
  198. package/vanilla/UiMenuItem.d.ts +1 -1
  199. package/vanilla/UiMenuItem.js +4 -4
  200. package/vanilla/UiMeter.d.ts +1 -1
  201. package/vanilla/UiMeter.js +2 -2
  202. package/vanilla/UiNavItem.d.ts +1 -1
  203. package/vanilla/UiNavItem.js +3 -3
  204. package/vanilla/UiPageHeader.d.ts +1 -1
  205. package/vanilla/UiPageHeader.js +2 -2
  206. package/vanilla/UiPopover.d.ts +1 -1
  207. package/vanilla/UiPopover.js +2 -2
  208. package/vanilla/UiRadio.d.ts +1 -1
  209. package/vanilla/UiRadio.js +2 -2
  210. package/vanilla/UiRadioGroup.d.ts +1 -1
  211. package/vanilla/UiRadioGroup.js +2 -2
  212. package/vanilla/UiReel.d.ts +1 -1
  213. package/vanilla/UiReel.js +2 -2
  214. package/vanilla/UiScrollArea.d.ts +1 -1
  215. package/vanilla/UiScrollArea.js +2 -2
  216. package/vanilla/UiSearchResultRow.d.ts +1 -1
  217. package/vanilla/UiSearchResultRow.js +2 -2
  218. package/vanilla/UiSearchShell.d.ts +1 -1
  219. package/vanilla/UiSearchShell.js +2 -2
  220. package/vanilla/UiSection.d.ts +1 -1
  221. package/vanilla/UiSection.js +2 -2
  222. package/vanilla/UiSelect.d.ts +1 -1
  223. package/vanilla/UiSelect.js +2 -2
  224. package/vanilla/UiSeparator.d.ts +1 -1
  225. package/vanilla/UiSeparator.js +2 -2
  226. package/vanilla/UiSidebar.d.ts +1 -1
  227. package/vanilla/UiSidebar.js +2 -2
  228. package/vanilla/UiSpinner.d.ts +1 -1
  229. package/vanilla/UiSpinner.js +2 -2
  230. package/vanilla/UiStack.d.ts +1 -1
  231. package/vanilla/UiStack.js +2 -2
  232. package/vanilla/UiStatusMessage.d.ts +1 -1
  233. package/vanilla/UiStatusMessage.js +2 -2
  234. package/vanilla/UiSwatch.d.ts +1 -1
  235. package/vanilla/UiSwatch.js +2 -2
  236. package/vanilla/UiSwitch.d.ts +1 -1
  237. package/vanilla/UiSwitch.js +2 -2
  238. package/vanilla/UiSwitcher.d.ts +1 -1
  239. package/vanilla/UiSwitcher.js +2 -2
  240. package/vanilla/UiTable.d.ts +1 -1
  241. package/vanilla/UiTable.js +2 -2
  242. package/vanilla/UiTabs.d.ts +1 -1
  243. package/vanilla/UiTabs.js +2 -2
  244. package/vanilla/UiText.d.ts +1 -1
  245. package/vanilla/UiText.js +3 -3
  246. package/vanilla/UiTextarea.d.ts +1 -1
  247. package/vanilla/UiTextarea.js +2 -2
  248. package/vanilla/UiToast.d.ts +1 -1
  249. package/vanilla/UiToast.js +2 -2
  250. package/vanilla/UiToastRegion.d.ts +1 -1
  251. package/vanilla/UiToastRegion.js +2 -2
  252. package/vanilla/UiTooltip.d.ts +1 -1
  253. package/vanilla/UiTooltip.js +2 -2
  254. package/vanilla/UiTopBar.d.ts +1 -1
  255. package/vanilla/UiTopBar.js +1 -1
  256. package/vanilla/UiTree.d.ts +1 -1
  257. package/vanilla/UiTree.js +2 -2
  258. package/vanilla/UiTreeItem.d.ts +1 -1
  259. package/vanilla/UiTreeItem.js +3 -3
  260. package/vue/UiActionBar.vue +23 -15
  261. package/vue/UiAffordanceScope.vue +11 -9
  262. package/vue/UiAvatar.vue +34 -27
  263. package/vue/UiAvatarGroup.vue +22 -17
  264. package/vue/UiBadge.vue +78 -69
  265. package/vue/UiBreadcrumbItem.vue +17 -14
  266. package/vue/UiBreadcrumbs.vue +9 -7
  267. package/vue/UiButton.vue +150 -138
  268. package/vue/UiCallout.vue +68 -43
  269. package/vue/UiCard.vue +52 -44
  270. package/vue/UiCheckbox.vue +48 -40
  271. package/vue/UiCluster.vue +35 -33
  272. package/vue/UiCombobox.vue +158 -107
  273. package/vue/UiContainer.vue +16 -14
  274. package/vue/UiContextMenu.vue +24 -13
  275. package/vue/UiCover.vue +10 -8
  276. package/vue/UiDescriptionItem.vue +11 -9
  277. package/vue/UiDescriptionList.vue +20 -18
  278. package/vue/UiDialog.vue +41 -37
  279. package/vue/UiDisclosure.vue +65 -51
  280. package/vue/UiEditable.vue +34 -33
  281. package/vue/UiEditorBlockActions.vue +4 -3
  282. package/vue/UiEditorChipEditor.vue +4 -3
  283. package/vue/UiEditorCodeLanguage.vue +5 -4
  284. package/vue/UiEditorImageToolbar.vue +5 -4
  285. package/vue/UiEditorInsertTableGrid.vue +19 -18
  286. package/vue/UiEditorLinkCard.vue +7 -6
  287. package/vue/UiEditorLinkForm.vue +15 -14
  288. package/vue/UiEditorMentionMenu.vue +52 -37
  289. package/vue/UiEditorMentionMenuItem.vue +30 -20
  290. package/vue/UiEditorSlashMenu.vue +49 -36
  291. package/vue/UiEditorSlashMenuGroup.vue +16 -10
  292. package/vue/UiEditorSlashMenuItem.vue +36 -26
  293. package/vue/UiEditorSurface.vue +8 -6
  294. package/vue/UiEditorTableContextMenu.vue +26 -25
  295. package/vue/UiEditorTableOverlay.vue +56 -51
  296. package/vue/UiEditorTableToolbar.vue +37 -36
  297. package/vue/UiEditorToolbar.vue +24 -20
  298. package/vue/UiFloatingActionButton.vue +17 -15
  299. package/vue/UiFormField.vue +27 -22
  300. package/vue/UiGrid.vue +17 -15
  301. package/vue/UiIcon.vue +7 -6
  302. package/vue/UiIconButton.vue +75 -70
  303. package/vue/UiImage.vue +61 -46
  304. package/vue/UiInput.vue +28 -28
  305. package/vue/UiInputGroup.vue +48 -43
  306. package/vue/UiList.vue +25 -21
  307. package/vue/UiListItem.vue +54 -44
  308. package/vue/UiListbox.vue +29 -22
  309. package/vue/UiMenu.vue +25 -23
  310. package/vue/UiMenuGroup.vue +11 -7
  311. package/vue/UiMenuItem.vue +52 -43
  312. package/vue/UiMeter.vue +42 -41
  313. package/vue/UiNavItem.vue +60 -47
  314. package/vue/UiPageHeader.vue +27 -20
  315. package/vue/UiPopover.vue +21 -19
  316. package/vue/UiRadio.vue +32 -28
  317. package/vue/UiRadioGroup.vue +24 -19
  318. package/vue/UiReel.vue +24 -22
  319. package/vue/UiScrollArea.vue +30 -24
  320. package/vue/UiSearchResultRow.vue +41 -26
  321. package/vue/UiSearchShell.vue +37 -29
  322. package/vue/UiSection.vue +31 -24
  323. package/vue/UiSelect.vue +23 -21
  324. package/vue/UiSeparator.vue +14 -13
  325. package/vue/UiSidebar.vue +48 -40
  326. package/vue/UiSpinner.vue +14 -13
  327. package/vue/UiStack.vue +26 -24
  328. package/vue/UiStatusMessage.vue +26 -21
  329. package/vue/UiSwatch.vue +13 -12
  330. package/vue/UiSwitch.vue +37 -33
  331. package/vue/UiSwitcher.vue +27 -22
  332. package/vue/UiTable.vue +23 -19
  333. package/vue/UiTabs.vue +48 -33
  334. package/vue/UiText.vue +173 -151
  335. package/vue/UiTextarea.vue +27 -27
  336. package/vue/UiToast.vue +17 -15
  337. package/vue/UiToastRegion.vue +36 -31
  338. package/vue/UiTooltip.vue +40 -34
  339. package/vue/UiTopBar.vue +17 -13
  340. package/vue/UiTree.vue +17 -15
  341. package/vue/UiTreeItem.vue +202 -133
  342. package/vue/chunks/UiActionBar.js +21 -6
  343. package/vue/chunks/UiAffordanceScope.js +8 -6
  344. package/vue/chunks/UiAvatar.js +30 -20
  345. package/vue/chunks/UiAvatarGroup.js +16 -13
  346. package/vue/chunks/UiBadge.js +19 -13
  347. package/vue/chunks/UiBreadcrumbItem.js +13 -7
  348. package/vue/chunks/UiBreadcrumbs.js +9 -4
  349. package/vue/chunks/UiButton.js +158 -124
  350. package/vue/chunks/UiCallout.js +105 -37
  351. package/vue/chunks/UiCard.js +50 -42
  352. package/vue/chunks/UiCheckbox.js +32 -22
  353. package/vue/chunks/UiCluster.js +18 -16
  354. package/vue/chunks/UiCombobox.js +130 -73
  355. package/vue/chunks/UiContainer.js +10 -8
  356. package/vue/chunks/UiContextMenu.js +7 -4
  357. package/vue/chunks/UiCover.js +7 -5
  358. package/vue/chunks/UiDescriptionItem.js +9 -3
  359. package/vue/chunks/UiDescriptionList.js +10 -8
  360. package/vue/chunks/UiDialog.js +26 -19
  361. package/vue/chunks/UiDisclosure.js +43 -25
  362. package/vue/chunks/UiEditable.js +25 -24
  363. package/vue/chunks/UiEditorBlockActions.js +4 -3
  364. package/vue/chunks/UiEditorChipEditor.js +4 -3
  365. package/vue/chunks/UiEditorCodeLanguage.js +5 -4
  366. package/vue/chunks/UiEditorImageToolbar.js +7 -6
  367. package/vue/chunks/UiEditorInsertTableGrid.js +10 -9
  368. package/vue/chunks/UiEditorLinkCard.js +11 -10
  369. package/vue/chunks/UiEditorLinkForm.js +26 -25
  370. package/vue/chunks/UiEditorMentionMenu.js +41 -24
  371. package/vue/chunks/UiEditorMentionMenuItem.js +23 -11
  372. package/vue/chunks/UiEditorSlashMenu.js +41 -20
  373. package/vue/chunks/UiEditorSlashMenuGroup.js +16 -5
  374. package/vue/chunks/UiEditorSlashMenuItem.js +28 -14
  375. package/vue/chunks/UiEditorSurface.js +6 -4
  376. package/vue/chunks/UiEditorTableContextMenu.js +14 -13
  377. package/vue/chunks/UiEditorTableOverlay.js +6 -5
  378. package/vue/chunks/UiEditorTableToolbar.js +14 -13
  379. package/vue/chunks/UiEditorToolbar.js +8 -5
  380. package/vue/chunks/UiFloatingActionButton.js +11 -9
  381. package/vue/chunks/UiFormField.js +30 -16
  382. package/vue/chunks/UiGrid.js +10 -8
  383. package/vue/chunks/UiIcon.js +6 -3
  384. package/vue/chunks/UiIconButton.js +33 -26
  385. package/vue/chunks/UiImage.js +31 -22
  386. package/vue/chunks/UiInput.js +17 -16
  387. package/vue/chunks/UiInputGroup.js +30 -16
  388. package/vue/chunks/UiList.js +24 -20
  389. package/vue/chunks/UiListItem.js +39 -22
  390. package/vue/chunks/UiListbox.js +35 -25
  391. package/vue/chunks/UiMenu.js +22 -17
  392. package/vue/chunks/UiMenuGroup.js +7 -4
  393. package/vue/chunks/UiMenuItem.js +57 -38
  394. package/vue/chunks/UiMeter.js +22 -21
  395. package/vue/chunks/UiNavItem.js +78 -42
  396. package/vue/chunks/UiPageHeader.js +30 -10
  397. package/vue/chunks/UiPopover.js +16 -11
  398. package/vue/chunks/UiRadio.js +26 -16
  399. package/vue/chunks/UiRadioGroup.js +24 -19
  400. package/vue/chunks/UiReel.js +11 -9
  401. package/vue/chunks/UiScrollArea.js +16 -13
  402. package/vue/chunks/UiSearchResultRow.js +39 -19
  403. package/vue/chunks/UiSearchShell.js +36 -18
  404. package/vue/chunks/UiSection.js +31 -13
  405. package/vue/chunks/UiSelect.js +14 -12
  406. package/vue/chunks/UiSeparator.js +11 -10
  407. package/vue/chunks/UiSidebar.js +33 -23
  408. package/vue/chunks/UiSpinner.js +7 -6
  409. package/vue/chunks/UiStack.js +14 -12
  410. package/vue/chunks/UiStatusMessage.js +23 -11
  411. package/vue/chunks/UiSwatch.js +5 -4
  412. package/vue/chunks/UiSwitch.js +26 -16
  413. package/vue/chunks/UiSwitcher.js +13 -11
  414. package/vue/chunks/UiTable.js +9 -7
  415. package/vue/chunks/UiTabs.js +23 -18
  416. package/vue/chunks/UiText.js +277 -255
  417. package/vue/chunks/UiTextarea.js +21 -20
  418. package/vue/chunks/UiToast.js +13 -7
  419. package/vue/chunks/UiToastRegion.js +15 -8
  420. package/vue/chunks/UiTooltip.js +27 -19
  421. package/vue/chunks/UiTopBar.js +21 -6
  422. package/vue/chunks/UiTree.js +18 -16
  423. package/vue/chunks/UiTreeItem.js +82 -45
  424. package/vue/chunks/_plugin-vue_export-helper.js +17 -4
  425. package/vue/components.css +1507 -1479
  426. package/vue/editor/LoomaEditor.d.ts +10 -1
  427. package/vue/editor/index.d.ts +1 -1
  428. package/vue/editor/index.js +25 -11
  429. package/vue/host.ts +26 -6
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.52 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, getCurrentInstance, ref, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -123,7 +123,7 @@ const hydrationInstance = getCurrentInstance()
123
123
  const root = ref<HTMLElement | null>(null)
124
124
  checkHydratedRoot('div', 'ui-input-group')
125
125
 
126
- /** The values the styles' :host-state() rules test. */
126
+ /** The values the styles' :host() prop and state rules test. */
127
127
  const hostState = computed(() =>
128
128
  [
129
129
  checkedProps.value.variant && 'variant',
@@ -167,19 +167,21 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
167
167
  <div
168
168
  class="ui-input-group"
169
169
  v-bind="nativeAttrs($attrs)"
170
+ data-hn
171
+ data-hn-ui-input-group
170
172
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
171
- :data-action-position="reflectedProp('actionPosition', 'action-position', checkedProps.actionPosition, undefined, false)"
172
- :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
173
- :data-multiline="reflectedProp('multiline', 'multiline', checkedProps.multiline, undefined, false)"
174
- :data-prefix-kind="reflectedProp('prefixKind', 'prefix-kind', checkedProps.prefixKind, undefined, false)"
175
- :data-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
173
+ :data-ui-input-group-prop-action-position="reflectedProp('actionPosition', 'action-position', checkedProps.actionPosition, undefined, false)"
174
+ :data-ui-input-group-prop-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
175
+ :data-ui-input-group-prop-multiline="reflectedProp('multiline', 'multiline', checkedProps.multiline, undefined, false)"
176
+ :data-ui-input-group-prop-prefix-kind="reflectedProp('prefixKind', 'prefix-kind', checkedProps.prefixKind, undefined, false)"
177
+ :data-ui-input-group-prop-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
176
178
  :data-ui-input-group-state="hostState || undefined"
177
179
  ref="root"
178
180
  >
179
- <span class="affix"><slot name="prefix" /></span>
180
- <span class="field"><slot /></span>
181
- <span class="affix"><slot name="suffix" /></span>
182
- <span class="action"><slot name="action" /></span>
181
+ <span class="affix" data-hn-ui-input-group><slot name="prefix" /></span>
182
+ <span class="field" data-hn-ui-input-group><slot /></span>
183
+ <span class="affix" data-hn-ui-input-group><slot name="suffix" /></span>
184
+ <span class="action" data-hn-ui-input-group><slot name="action" /></span>
183
185
  </div>
184
186
  </template>
185
187
 
@@ -224,8 +226,8 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
224
226
 
225
227
  /* A component that sets its display still honours the hidden attribute on its root. */
226
228
 
227
- @scope (.ui-input-group) {
228
- :scope:where(:scope) {
229
+ @scope (.ui-input-group) to ([data-hn]) {
230
+ :global(:scope:where([data-hn-ui-input-group])) {
229
231
  /* The group's own border and height stand for the input's, so the group is a lone Input's height.
230
232
  Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
231
233
  --_ui-default-input-border-width: 0;
@@ -271,47 +273,47 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
271
273
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
272
274
  }
273
275
 
274
- :scope:where(:scope):is([data-ui-input-group-state~="variant=subtle"]) {
276
+ :global(:scope[data-ui-input-group-state~="variant=subtle"]:where([data-hn-ui-input-group])) {
275
277
  border-color: var(--ui-border);
276
278
  background: var(--ui-surface-muted);
277
279
  box-shadow: none;
278
280
  }
279
- :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=sm"])) {
281
+ :global(:scope:has(.field [data-ui-input-state~="size=sm"]):where([data-hn-ui-input-group])) {
280
282
  min-block-size: var(--ui-control-size-sm);
281
283
  }
282
284
 
283
- :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=lg"])) {
285
+ :global(:scope:has(.field [data-ui-input-state~="size=lg"]):where([data-hn-ui-input-group])) {
284
286
  min-block-size: var(--ui-control-size-lg);
285
287
  }
286
288
 
287
289
  @media (pointer: coarse) {
288
- :scope:where(:scope) {
290
+ :global(:scope:where([data-hn-ui-input-group])) {
289
291
  min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
290
292
  }
291
293
 
292
- :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=sm"])) {
294
+ :global(:scope:has(.field [data-ui-input-state~="size=sm"]):where([data-hn-ui-input-group])) {
293
295
  min-block-size: var(--ui-control-min-block-size);
294
296
  }
295
297
  }
296
298
 
297
- :scope:where(:scope):is(: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])))) {
299
+ :global(: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]))):where([data-hn-ui-input-group])) {
298
300
  border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
299
301
  }
300
- :scope:where(:scope):is(:has(.field :is(input, textarea):focus-visible)) {
302
+ :global(:scope:has(.field :is(input, textarea):focus-visible):where([data-hn-ui-input-group])) {
301
303
  border-color: var(--ui-control-focus, var(--ui-accent-solid));
302
304
  box-shadow:
303
305
  var(--ui-control-inset),
304
306
  var(--ui-control-focus-halo-shadow);
305
307
  }
306
308
 
307
- :scope:where(:scope):is(:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
309
+ :global(:scope:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):where([data-hn-ui-input-group])) {
308
310
  border-color: var(
309
311
  --ui-input-group-invalid-border,
310
312
  var(--ui-field-danger, var(--ui-danger-solid))
311
313
  );
312
314
  }
313
315
 
314
- :scope:where(:scope):is(:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible)) {
316
+ :global(:scope:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible):where([data-hn-ui-input-group])) {
315
317
  box-shadow: var(
316
318
  --ui-input-group-invalid-focus-shadow,
317
319
  var(--ui-control-inset),
@@ -323,26 +325,26 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
323
325
  );
324
326
  }
325
327
  @media (forced-colors: active) {
326
- :scope:where(:scope):is(:has(:is(input, textarea):focus-visible)) {
328
+ :global(:scope:has(:is(input, textarea):focus-visible):where([data-hn-ui-input-group])) {
327
329
  outline: var(--ui-focus-width) solid Highlight;
328
330
  outline-offset: var(--ui-border-width);
329
331
  }
330
332
  }
331
333
 
332
- :scope:where(:scope):is([data-ui-input-group-state~="disabled"]),
333
- :scope:where(:scope):is(:has(:is(input, textarea):disabled)) {
334
+ :global(:scope[data-ui-input-group-state~="disabled"]:where([data-hn-ui-input-group])),
335
+ :global(:scope:has(:is(input, textarea):disabled):where([data-hn-ui-input-group])) {
334
336
  background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
335
337
  box-shadow: none;
336
338
  cursor: not-allowed;
337
339
  }
338
340
 
339
- .field {
341
+ :global(.field:where([data-hn-ui-input-group])) {
340
342
  display: flex;
341
343
  flex: 1;
342
344
  min-inline-size: 0;
343
345
  }
344
346
 
345
- .affix {
347
+ :global(.affix:where([data-hn-ui-input-group])) {
346
348
  display: inline-flex;
347
349
  flex: none;
348
350
  align-items: center;
@@ -352,60 +354,62 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
352
354
  font-size: var(--ui-font-size-sm);
353
355
  white-space: nowrap;
354
356
  }
355
- .affix:has([slot="prefix"]), .affix:has([slot="suffix"]) {
357
+ :global(.affix:has([slot="prefix"]):where([data-hn-ui-input-group])),
358
+ :global(.affix:has([slot="suffix"]):where([data-hn-ui-input-group])) {
356
359
  background: var(--ui-surface-muted);
357
360
  }
358
361
 
359
- .affix:has([slot="prefix"]) {
362
+ :global(.affix:has([slot="prefix"]):where([data-hn-ui-input-group])) {
360
363
  border-inline-end: var(--ui-border-width) solid var(--ui-border-divider);
361
364
  }
362
365
 
363
- .affix:has([slot="suffix"]) {
366
+ :global(.affix:has([slot="suffix"]):where([data-hn-ui-input-group])) {
364
367
  border-inline-start: var(--ui-border-width) solid var(--ui-border-divider);
365
368
  }
366
369
 
367
- :scope:where(:scope):is([data-ui-input-group-state~="prefixKind=icon"]) {
370
+ :global(:scope[data-ui-input-group-state~="prefixKind=icon"]:where([data-hn-ui-input-group])) {
368
371
  --_ui-default-input-padding-inline-start: var(--ui-space-2);
369
372
  }
370
- :scope[data-ui-input-group-state~="prefixKind=icon"] .affix:first-child {
373
+ :global(:scope[data-ui-input-group-state~="prefixKind=icon"]
374
+ .affix:first-child:where([data-hn-ui-input-group])) {
371
375
  padding-inline-end: 0;
372
376
  border-inline-end: 0;
373
377
  background: transparent;
374
378
  }
375
- .action {
379
+ :global(.action:where([data-hn-ui-input-group])) {
376
380
  display: flex;
377
381
  flex: none;
378
382
  align-items: center;
379
383
  padding-inline: var(--ui-space-1);
380
384
  }
381
- :scope:where(:scope):is([data-ui-input-group-state~="multiline"]) {
385
+ :global(:scope[data-ui-input-group-state~="multiline"]:where([data-hn-ui-input-group])) {
382
386
  display: grid;
383
387
  grid-template-columns: auto minmax(0, 1fr) auto;
384
388
  }
385
389
 
386
- :scope[data-ui-input-group-state~="multiline"] .field {
390
+ :global(:scope[data-ui-input-group-state~="multiline"] .field:where([data-hn-ui-input-group])) {
387
391
  grid-column: 2;
388
392
  }
389
393
 
390
- :scope[data-ui-input-group-state~="multiline"] .action {
394
+ :global(:scope[data-ui-input-group-state~="multiline"] .action:where([data-hn-ui-input-group])) {
391
395
  grid-column: 1 / -1;
392
396
  justify-content: end;
393
397
  padding: var(--ui-space-2);
394
398
  padding-block-start: 0;
395
399
  }
396
- :scope:where(:scope):is([data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]) {
400
+ :global(:scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]:where([data-hn-ui-input-group])) {
397
401
  --_ui-default-textarea-padding-inline-end: calc(
398
402
  var(--_ui-input-group-action-inline-size, 7rem) + var(--ui-space-3)
399
403
  );
400
404
  }
401
405
 
402
- :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
403
- .field {
406
+ :global(:scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
407
+ .field:where([data-hn-ui-input-group])) {
404
408
  grid-row: 1;
405
409
  }
406
410
 
407
- :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
408
- .action {
411
+ :global(:scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
412
+ .action:where([data-hn-ui-input-group])) {
409
413
  grid-column: 2;
410
414
  grid-row: 1;
411
415
  align-self: start;
@@ -413,10 +417,11 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
413
417
  padding: var(--ui-space-2);
414
418
  }
415
419
 
416
- .affix:empty, .action:empty {
420
+ :global(.affix:empty:where([data-hn-ui-input-group])),
421
+ :global(.action:empty:where([data-hn-ui-input-group])) {
417
422
  display: none;
418
423
  }
419
- :scope:where(:scope):is([hidden]) {
424
+ :global(:scope[hidden]:where([data-hn-ui-input-group])) {
420
425
  display: none;
421
426
  }
422
427
  }
package/vue/UiList.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.52 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, useTemplateRef, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -103,7 +103,7 @@ const root = rootArmElement
103
103
  preserveRootFocus(root)
104
104
  checkHydratedRoot((checkedProps.value.as === 'ol') ? 'ol' : ('ul'), 'ui-list')
105
105
 
106
- /** The values the styles' :host-state() rules test. */
106
+ /** The values the styles' :host() prop and state rules test. */
107
107
  const hostState = computed(() =>
108
108
  [
109
109
  checkedProps.value.as && 'as',
@@ -125,11 +125,13 @@ const hostState = computed(() =>
125
125
  v-if="checkedProps.as === 'ol'"
126
126
  class="ui-list"
127
127
  v-bind="nativeAttrs($attrs)"
128
+ data-hn
129
+ data-hn-ui-list
128
130
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
129
- :data-as="reflectedProp('as', 'as', checkedProps.as, undefined, false)"
130
- :data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
131
- :data-layout="reflectedProp('layout', 'layout', checkedProps.layout, undefined, false)"
132
- :data-markers="reflectedProp('markers', 'markers', checkedProps.markers, undefined, false)"
131
+ :data-ui-list-prop-as="reflectedProp('as', 'as', checkedProps.as, undefined, false)"
132
+ :data-ui-list-prop-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
133
+ :data-ui-list-prop-layout="reflectedProp('layout', 'layout', checkedProps.layout, undefined, false)"
134
+ :data-ui-list-prop-markers="reflectedProp('markers', 'markers', checkedProps.markers, undefined, false)"
133
135
  :data-ui-list-state="hostState || undefined"
134
136
  ref="@html-next/root"
135
137
  >
@@ -140,11 +142,13 @@ const hostState = computed(() =>
140
142
  class="ui-list"
141
143
  role="list"
142
144
  v-bind="nativeAttrs($attrs)"
145
+ data-hn
146
+ data-hn-ui-list
143
147
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
144
- :data-as="reflectedProp('as', 'as', checkedProps.as, undefined, false)"
145
- :data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
146
- :data-layout="reflectedProp('layout', 'layout', checkedProps.layout, undefined, false)"
147
- :data-markers="reflectedProp('markers', 'markers', checkedProps.markers, undefined, false)"
148
+ :data-ui-list-prop-as="reflectedProp('as', 'as', checkedProps.as, undefined, false)"
149
+ :data-ui-list-prop-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
150
+ :data-ui-list-prop-layout="reflectedProp('layout', 'layout', checkedProps.layout, undefined, false)"
151
+ :data-ui-list-prop-markers="reflectedProp('markers', 'markers', checkedProps.markers, undefined, false)"
148
152
  :data-ui-list-state="hostState || undefined"
149
153
  ref="@html-next/root"
150
154
  >
@@ -171,8 +175,8 @@ const hostState = computed(() =>
171
175
 
172
176
  /* A component that sets its display still honours the hidden attribute on its root. */
173
177
 
174
- @scope (.ui-list) {
175
- :scope:where(:scope) {
178
+ @scope (.ui-list) to ([data-hn]) {
179
+ :global(:scope:where([data-hn-ui-list])) {
176
180
  --_list-gap: var(--ui-list-gap, var(--ui-space-1));
177
181
  --_list-min-item-width: var(--ui-list-min-item-width, 14rem);
178
182
  display: flex;
@@ -185,20 +189,20 @@ const hostState = computed(() =>
185
189
  list-style: none;
186
190
  }
187
191
 
188
- :scope:where(:scope):is([data-ui-list-state~="as=ol"]),
189
- :scope:where(:scope):is([data-ui-list-state~="markers=disc"]) {
192
+ :global(:scope[data-ui-list-state~="as=ol"]:where([data-hn-ui-list])),
193
+ :global(:scope[data-ui-list-state~="markers=disc"]:where([data-hn-ui-list])) {
190
194
  padding-inline-start: var(--ui-space-5);
191
195
  }
192
196
 
193
- :scope:where(:scope):is([data-ui-list-state~="as=ol"]) {
197
+ :global(:scope[data-ui-list-state~="as=ol"]:where([data-hn-ui-list])) {
194
198
  list-style: decimal;
195
199
  }
196
200
 
197
- :scope:where(:scope):is([data-ui-list-state~="markers=disc"]) {
201
+ :global(:scope[data-ui-list-state~="markers=disc"]:where([data-hn-ui-list])) {
198
202
  list-style: disc;
199
203
  }
200
204
 
201
- :scope > :slotted(li) {
205
+ :global(:scope > :where(:not([data-hn-ui-list])):is(li)) {
202
206
  box-sizing: border-box;
203
207
  min-inline-size: 0;
204
208
  padding: var(--_ui-list-native-padding-block, var(--ui-space-2))
@@ -208,7 +212,7 @@ const hostState = computed(() =>
208
212
  list-style: inherit;
209
213
  }
210
214
 
211
- :scope > :slotted(li.card) {
215
+ :global(:scope > :where(:not([data-hn-ui-list])):is(li.card)) {
212
216
  padding: var(--_ui-list-native-padding-block, var(--ui-space-3))
213
217
  var(--_ui-list-native-padding-inline, var(--ui-space-4));
214
218
  border: var(--ui-border-width) solid var(--ui-border-strong);
@@ -216,7 +220,7 @@ const hostState = computed(() =>
216
220
  background: var(--ui-surface-raised);
217
221
  list-style: none;
218
222
  }
219
- :scope:where(:scope):is([data-ui-list-state~="density=compact"]) {
223
+ :global(:scope[data-ui-list-state~="density=compact"]:where([data-hn-ui-list])) {
220
224
  --_list-gap: var(--ui-list-gap, var(--ui-space-2));
221
225
  --_ui-list-item-min-size: 0;
222
226
  --_ui-list-item-padding-block: 0;
@@ -226,12 +230,12 @@ const hostState = computed(() =>
226
230
  --_ui-list-native-padding-inline: 0;
227
231
  }
228
232
 
229
- :scope:where(:scope):is([data-ui-list-state~="layout=grid"]) {
233
+ :global(:scope[data-ui-list-state~="layout=grid"]:where([data-hn-ui-list])) {
230
234
  --_list-gap: var(--ui-list-gap, var(--ui-space-3));
231
235
  display: grid;
232
236
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--_list-min-item-width)), 1fr));
233
237
  }
234
- :scope:where(:scope):is([hidden]) {
238
+ :global(:scope[hidden]:where([data-hn-ui-list])) {
235
239
  display: none;
236
240
  }
237
241
  }
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.52 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -129,7 +129,7 @@ const reflectedProp = useReflectedProp()
129
129
 
130
130
  checkHydratedRoot('li', 'ui-list-item')
131
131
 
132
- /** The values the styles' :host-state() rules test. */
132
+ /** The values the styles' :host() prop and state rules test. */
133
133
  const hostState = computed(() =>
134
134
  [
135
135
  checkedProps.value.variant && 'variant',
@@ -149,26 +149,31 @@ const hostState = computed(() =>
149
149
  <li
150
150
  class="ui-list-item"
151
151
  v-bind="nativeAttrs($attrs)"
152
+ data-hn
153
+ data-hn-ui-list-item
152
154
  :aria-current="checkedProps.current ?? undefined"
153
155
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
154
- :data-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
155
- :data-current="reflectedProp('current', 'current', checkedProps.current, undefined, false)"
156
- :data-highlighted="reflectedProp('highlighted', 'highlighted', checkedProps.highlighted, undefined, false)"
157
- :data-leading-interactive="reflectedProp(
156
+ :data-ui-list-item-prop-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
157
+ :data-ui-list-item-prop-current="reflectedProp('current', 'current', checkedProps.current, undefined, false)"
158
+ :data-ui-list-item-prop-highlighted="reflectedProp('highlighted', 'highlighted', checkedProps.highlighted, undefined, false)"
159
+ :data-ui-list-item-prop-leading-interactive="reflectedProp(
158
160
  'leadingInteractive',
159
161
  'leading-interactive',
160
162
  checkedProps.leadingInteractive,
161
163
  undefined,
162
164
  false,
163
165
  )"
164
- :data-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
165
- :data-wrap="reflectedProp('wrap', 'wrap', checkedProps.wrap, undefined, false)"
166
+ :data-ui-list-item-prop-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
167
+ :data-ui-list-item-prop-wrap="reflectedProp('wrap', 'wrap', checkedProps.wrap, undefined, false)"
166
168
  :data-ui-list-item-state="hostState || undefined"
167
169
  >
168
- <span class="leading"><slot name="leading" /></span>
169
- <span class="content"><span class="title"><slot /></span>
170
- <span class="description"><slot name="description" /></span></span>
171
- <span class="trailing"><slot name="trailing" /></span>
170
+ <span class="leading" data-hn-ui-list-item><slot name="leading" /></span>
171
+ <span class="content" data-hn-ui-list-item><span
172
+ class="title"
173
+ data-hn-ui-list-item
174
+ ><slot /></span>
175
+ <span class="description" data-hn-ui-list-item><slot name="description" /></span></span>
176
+ <span class="trailing" data-hn-ui-list-item><slot name="trailing" /></span>
172
177
  </li>
173
178
  </template>
174
179
 
@@ -213,8 +218,8 @@ const hostState = computed(() =>
213
218
 
214
219
  /* A component that sets its display still honours the hidden attribute on its root. */
215
220
 
216
- @scope (.ui-list-item) {
217
- :scope:where(:scope) {
221
+ @scope (.ui-list-item) to ([data-hn]) {
222
+ :global(:scope:where([data-hn-ui-list-item])) {
218
223
  /* Hooks do not inherit, so the parts below read them from the root. */
219
224
  --_ui-list-item-icon-size: var(--ui-list-item-icon-size);
220
225
 
@@ -240,7 +245,7 @@ const hostState = computed(() =>
240
245
  border-color var(--ui-motion-fast) var(--ui-motion-ease);
241
246
  }
242
247
 
243
- :scope:where(:scope):is([data-ui-list-item-state~="variant=card"]) {
248
+ :global(:scope[data-ui-list-item-state~="variant=card"]:where([data-hn-ui-list-item])) {
244
249
  padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
245
250
  padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
246
251
  border: var(--ui-border-width) solid var(--ui-border-strong);
@@ -248,57 +253,59 @@ const hostState = computed(() =>
248
253
  background: var(--ui-surface-raised);
249
254
  }
250
255
 
251
- :scope:where(:scope):is(:where(:has(.title a[href])):hover),
252
- :scope:where(:scope):is([data-ui-list-item-state~="highlighted"]),
253
- :scope:where(:scope):is([data-ui-list-item-state~="current"]) {
256
+ :global(:scope:where(:has(.title a[href])):hover:where([data-hn-ui-list-item])),
257
+ :global(:scope[data-ui-list-item-state~="highlighted"]:where([data-hn-ui-list-item])),
258
+ :global(:scope[data-ui-list-item-state~="current"]:where([data-hn-ui-list-item])) {
254
259
  background: var(--_ui-selection-context-surface, var(--ui-selection-surface));
255
260
  box-shadow: inset 0 0 0 var(--ui-border-width)
256
261
  var(--_ui-selection-context-border, var(--ui-selection-border));
257
262
  }
258
263
 
259
- :scope:where(:scope):is([data-ui-list-item-state~="variant=card"]:where(:has(.title
260
- a[href])):hover) {
264
+ :global(:scope[data-ui-list-item-state~="variant=card"]:where(:has(.title
265
+ a[href])):hover:where([data-hn-ui-list-item])) {
261
266
  border-color: var(--ui-border-strong);
262
267
  }
263
268
 
264
- :scope:where(:scope):is([data-ui-list-item-state~="current"]) {
269
+ :global(:scope[data-ui-list-item-state~="current"]:where([data-hn-ui-list-item])) {
265
270
  color: var(--_ui-selection-context-text, var(--ui-selection-text));
266
271
  }
267
- :scope:where(:scope):is([data-ui-list-item-state~="variant=card"]) {
272
+ :global(:scope[data-ui-list-item-state~="variant=card"]:where([data-hn-ui-list-item])) {
268
273
  box-shadow: none;
269
274
  }
270
275
 
271
- :scope:where(:scope):is(:has(.title a[href]:focus-visible)) {
276
+ :global(:scope:has(.title a[href]:focus-visible):where([data-hn-ui-list-item])) {
272
277
  box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
273
278
  }
274
279
 
275
- .leading, .trailing {
280
+ :global(.leading:where([data-hn-ui-list-item])),
281
+ :global(.trailing:where([data-hn-ui-list-item])) {
276
282
  display: inline-flex;
277
283
  flex: none;
278
284
  align-items: center;
279
285
  gap: var(--ui-space-2);
280
286
  }
281
287
 
282
- .leading {
288
+ :global(.leading:where([data-hn-ui-list-item])) {
283
289
  color: var(--ui-text-muted);
284
290
  font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
285
291
  }
286
292
 
287
- :scope[data-ui-list-item-state~="current"] .leading {
293
+ :global(:scope[data-ui-list-item-state~="current"] .leading:where([data-hn-ui-list-item])) {
288
294
  color: var(--_ui-selection-context-text, var(--ui-selection-text));
289
295
  }
290
- :scope[data-ui-list-item-state~="leadingInteractive"] .leading {
296
+ :global(:scope[data-ui-list-item-state~="leadingInteractive"]
297
+ .leading:where([data-hn-ui-list-item])) {
291
298
  position: relative;
292
299
  z-index: 1;
293
300
  }
294
- .trailing {
301
+ :global(.trailing:where([data-hn-ui-list-item])) {
295
302
  position: relative;
296
303
  z-index: 1;
297
304
  color: var(--ui-text-muted);
298
305
  font-size: var(--ui-font-size-sm);
299
306
  }
300
307
 
301
- .content {
308
+ :global(.content:where([data-hn-ui-list-item])) {
302
309
  display: flex;
303
310
  flex: 1;
304
311
  flex-direction: column;
@@ -306,7 +313,8 @@ const hostState = computed(() =>
306
313
  min-inline-size: 0;
307
314
  }
308
315
 
309
- .title, .description {
316
+ :global(.title:where([data-hn-ui-list-item])),
317
+ :global(.description:where([data-hn-ui-list-item])) {
310
318
  display: block;
311
319
  min-inline-size: 0;
312
320
  overflow: hidden;
@@ -314,63 +322,65 @@ const hostState = computed(() =>
314
322
  white-space: nowrap;
315
323
  }
316
324
 
317
- :scope[data-ui-list-item-state~="wrap"] .title,
318
- :scope[data-ui-list-item-state~="wrap"] .description {
325
+ :global(:scope[data-ui-list-item-state~="wrap"] .title:where([data-hn-ui-list-item])),
326
+ :global(:scope[data-ui-list-item-state~="wrap"] .description:where([data-hn-ui-list-item])) {
319
327
  white-space: normal;
320
328
  overflow-wrap: anywhere;
321
329
  }
322
330
 
323
- .title {
331
+ :global(.title:where([data-hn-ui-list-item])) {
324
332
  font-size: var(--ui-font-size-md);
325
333
  font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
326
334
  line-height: var(--ui-line-height-tight);
327
335
  }
328
- :scope:where(:scope):is([data-ui-list-item-state~="align=title"]) {
336
+ :global(:scope[data-ui-list-item-state~="align=title"]:where([data-hn-ui-list-item])) {
329
337
  align-items: flex-start;
330
338
  }
331
339
 
332
- :scope[data-ui-list-item-state~="align=title"] .leading,
333
- :scope[data-ui-list-item-state~="align=title"] .trailing {
340
+ :global(:scope[data-ui-list-item-state~="align=title"] .leading:where([data-hn-ui-list-item])),
341
+ :global(:scope[data-ui-list-item-state~="align=title"] .trailing:where([data-hn-ui-list-item])) {
334
342
  min-block-size: calc(var(--ui-font-size-md) * var(--ui-line-height-tight));
335
343
  }
336
344
 
337
- .description {
345
+ :global(.description:where([data-hn-ui-list-item])) {
338
346
  color: var(--ui-text-muted);
339
347
  font-size: var(--ui-font-size-sm);
340
348
  line-height: var(--ui-line-height-tight);
341
349
  }
342
350
 
343
- .title > :slotted(a) {
351
+ :global(.title > :where(:not([data-hn-ui-list-item])):is(a)) {
344
352
  color: inherit;
345
353
  text-decoration: none;
346
354
  }
347
355
 
348
- .title > :slotted(a:focus-visible) {
356
+ :global(.title > :where(:not([data-hn-ui-list-item])):is(a:focus-visible)) {
349
357
  outline: none;
350
358
  box-shadow: none;
351
359
  }
352
360
 
353
- .title > :slotted(a[href])::after {
361
+ :global(.title > :where(:not([data-hn-ui-list-item])):is(a[href])::after) {
354
362
  position: absolute;
355
363
  inset: 0;
356
364
  border-radius: inherit;
357
365
  content: "";
358
366
  }
359
- .leading:empty, .description:empty, .trailing:empty {
367
+ :global(.leading:empty:where([data-hn-ui-list-item])),
368
+ :global(.description:empty:where([data-hn-ui-list-item])),
369
+ :global(.trailing:empty:where([data-hn-ui-list-item])) {
360
370
  display: none;
361
371
  }
362
372
 
363
373
  @media (forced-colors: active) {
364
- :scope:where(:scope):is(:has(a:focus-visible)) {
374
+ :global(:scope:has(a:focus-visible):where([data-hn-ui-list-item])) {
365
375
  outline: var(--ui-focus-width) solid Highlight;
366
376
  outline-offset: calc(-1 * var(--ui-focus-width));
367
377
  }
368
- :is(:scope[data-ui-list-item-state~="current"], :scope[data-ui-list-item-state~="highlighted"]):not(:has(a:focus-visible)) {
378
+ :global(:is(:scope[data-ui-list-item-state~="current"], :scope[data-ui-list-item-state~="highlighted"]):not(:has(a:focus-visible)):where([data-hn-ui-list-item])) {
369
379
  outline: var(--ui-border-width) solid Highlight;
370
380
  outline-offset: calc(-1 * var(--ui-border-width));
371
381
  }
372
382
  }
373
- :scope:where(:scope):is([hidden]) {
383
+ :global(:scope[hidden]:where([data-hn-ui-list-item])) {
374
384
  display: none;
375
385
  }
376
386
  }