@threadlabs/looma 0.28.12 → 0.28.14

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 (427) 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/formatting-selection.d.ts +49 -0
  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/index.js +108 -65
  427. package/vue/host.ts +26 -6
package/vue/UiListbox.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, getCurrentInstance, provide, ref, useTemplateRef, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -287,6 +287,8 @@ useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
287
287
  class="ui-listbox"
288
288
  role="listbox"
289
289
  v-bind="nativeAttrs($attrs)"
290
+ data-hn
291
+ data-hn-ui-listbox
290
292
  :tabindex="guarded"
291
293
  :aria-multiselectable="checkedProps.multiple ?? undefined"
292
294
  :aria-disabled="checkedProps.disabled ?? undefined"
@@ -294,23 +296,24 @@ useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
294
296
  :aria-invalid="checkedProps.invalid || validationError"
295
297
  :style="{ '--_rows': checkedProps.rows?.toString() }"
296
298
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
297
- :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
298
- :data-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
299
- :data-multiple="reflectedProp('multiple', 'multiple', checkedProps.multiple, undefined, false)"
300
- :data-name="reflectedProp('name', 'name', checkedProps.name, undefined, false)"
301
- :data-required="reflectedProp('required', 'required', checkedProps.required, undefined, false)"
302
- :data-rows="reflectedProp('rows', 'rows', checkedProps.rows, undefined, false)"
303
- :data-value="reflectedProp('value', 'value', checkedProps.value, undefined, false)"
304
- :data-values="reflectedProp('values', 'values', checkedProps.values, undefined, false)"
299
+ :data-ui-listbox-prop-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
300
+ :data-ui-listbox-prop-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
301
+ :data-ui-listbox-prop-multiple="reflectedProp('multiple', 'multiple', checkedProps.multiple, undefined, false)"
302
+ :data-ui-listbox-prop-name="reflectedProp('name', 'name', checkedProps.name, undefined, false)"
303
+ :data-ui-listbox-prop-required="reflectedProp('required', 'required', checkedProps.required, undefined, false)"
304
+ :data-ui-listbox-prop-rows="reflectedProp('rows', 'rows', checkedProps.rows, undefined, false)"
305
+ :data-ui-listbox-prop-value="reflectedProp('value', 'value', checkedProps.value, undefined, false)"
306
+ :data-ui-listbox-prop-values="reflectedProp('values', 'values', checkedProps.values, undefined, false)"
305
307
  ref="root"
306
308
  >
307
- <div class="choices">
309
+ <div class="choices" data-hn-ui-listbox>
308
310
  <UiScrollArea class="ui-scroll-area" ref="choicesElement"><KeyedBoundary><div
309
311
  v-for="choice in uniqueKeys(choices, (choice, index, loop) => choice.index)"
310
312
  :key="choice.index"
311
313
  class="option"
312
314
  role="option"
313
315
  data-ui-choice-option=""
316
+ data-hn-ui-listbox
314
317
  :data-multiple="checkedProps.multiple ? '' : undefined"
315
318
  :id="concat(uid, '-option-', choice.index)"
316
319
  :data-index="choice.index"
@@ -318,12 +321,13 @@ useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
318
321
  :aria-disabled="choice.disabled"
319
322
  :class="{ active: choice.index === active }"
320
323
  >
321
- <span>{{ choice.label }}</span>
324
+ <span data-hn-ui-listbox>{{ choice.label }}</span>
322
325
  </div></KeyedBoundary></UiScrollArea>
323
326
  </div>
324
327
  <select
325
328
  class="fallback"
326
329
  aria-label="Choices"
330
+ data-hn-ui-listbox
327
331
  :size="checkedProps.rows ?? undefined"
328
332
  :multiple="checkedProps.multiple ?? undefined"
329
333
  :disabled="checkedProps.disabled ?? undefined"
@@ -337,6 +341,7 @@ useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
337
341
  v-for="(selected, indexLoop) in selection"
338
342
  :key="indexLoop"
339
343
  type="hidden"
344
+ data-hn-ui-listbox
340
345
  :name="checkedProps.name ?? undefined"
341
346
  :value.attr="selected"
342
347
  ></template>
@@ -345,6 +350,7 @@ useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
345
350
  type="checkbox"
346
351
  aria-hidden="true"
347
352
  tabindex="-1"
353
+ data-hn-ui-listbox
348
354
  :required="checkedProps.required && !hasSelection && !checkedProps.disabled"
349
355
  :checked.attr="hasSelection ? true : undefined"
350
356
  :disabled="checkedProps.disabled ?? undefined"
@@ -377,8 +383,8 @@ useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
377
383
 
378
384
  /* Its own box around the nested Scroll Area, which it shrinks into so the choices scroll. */
379
385
 
380
- @scope (.ui-listbox) to (.ui-scroll-area) {
381
- :scope:where(:scope) {
386
+ @scope (.ui-listbox) to ([data-hn]) {
387
+ :global(:scope:where([data-hn-ui-listbox])) {
382
388
  position: relative;
383
389
  box-sizing: border-box;
384
390
  display: block;
@@ -395,30 +401,31 @@ useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
395
401
  box-shadow: var(--ui-control-inset);
396
402
  outline: none;
397
403
  }
398
- .choices {
404
+ :global(.choices:where([data-hn-ui-listbox])) {
399
405
  display: flex;
400
406
  flex-direction: column;
401
407
  max-block-size: calc(max(2, var(--_rows, 5)) * var(--ui-control-size-md));
402
408
  }
403
409
 
404
- :scope:where(:scope):is(:not([data-enhanced])) {
410
+ :global(:scope:not([data-enhanced]):where([data-hn-ui-listbox])) {
405
411
  padding: 0;
406
412
  border: 0;
407
413
  background: transparent;
408
414
  box-shadow: none;
409
415
  }
410
416
 
411
- :scope:not([data-enhanced]) .choices, :scope[data-enhanced] .fallback {
417
+ :global(:scope:not([data-enhanced]) .choices:where([data-hn-ui-listbox])),
418
+ :global(:scope[data-enhanced] .fallback:where([data-hn-ui-listbox])) {
412
419
  display: none;
413
420
  }
414
421
 
415
- .fallback {
422
+ :global(.fallback:where([data-hn-ui-listbox])) {
416
423
  box-sizing: border-box;
417
424
  inline-size: 100%;
418
425
  font: inherit;
419
426
  }
420
427
 
421
- .validity {
428
+ :global(.validity:where([data-hn-ui-listbox])) {
422
429
  position: absolute;
423
430
  inline-size: 1px;
424
431
  block-size: 1px;
@@ -428,25 +435,25 @@ useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
428
435
  pointer-events: none;
429
436
  }
430
437
 
431
- :scope:where(:scope):is(:focus-visible) {
438
+ :global(:scope:focus-visible:where([data-hn-ui-listbox])) {
432
439
  border-color: var(--ui-control-focus);
433
440
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
434
441
  outline-offset: var(--ui-focus-width);
435
442
  box-shadow: var(--ui-listbox-focus-shadow, var(--ui-focus-halo));
436
443
  }
437
444
 
438
- :scope:where(:scope):is([aria-invalid="true"]) {
445
+ :global(:scope[aria-invalid="true"]:where([data-hn-ui-listbox])) {
439
446
  border-color: var(--ui-listbox-invalid-border, var(--ui-field-danger, var(--ui-danger)));
440
447
  }
441
448
 
442
- :scope:where(:scope):is([aria-disabled="true"]) {
449
+ :global(:scope[aria-disabled="true"]:where([data-hn-ui-listbox])) {
443
450
  background: var(--ui-control-surface-disabled);
444
451
  color: var(--ui-disabled-text);
445
452
  box-shadow: none;
446
453
  cursor: not-allowed;
447
454
  }
448
455
 
449
- :scope:where(:scope):is([hidden]) {
456
+ :global(:scope[hidden]:where([data-hn-ui-listbox])) {
450
457
  display: none;
451
458
  }
452
459
  }
package/vue/UiMenu.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, getCurrentInstance, provide, ref, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -186,7 +186,7 @@ const internalOpen = ref(false)
186
186
  provide('html-next:ui-menu:internalOpen', internalOpen)
187
187
  checkHydratedRoot('div', 'ui-menu')
188
188
 
189
- /** The values the styles' :host-state() rules test. */
189
+ /** The values the styles' :host() prop and state rules test. */
190
190
  const hostState = computed(() =>
191
191
  [
192
192
  checkedProps.value.density && 'density',
@@ -275,18 +275,20 @@ useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
275
275
  role="menu"
276
276
  aria-orientation="vertical"
277
277
  v-bind="nativeAttrs($attrs)"
278
+ data-hn
279
+ data-hn-ui-menu
278
280
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
279
- :data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
280
- :data-for="reflectedProp('for', 'for', checkedProps.for, undefined, false)"
281
- :data-icons="reflectedProp('icons', 'icons', checkedProps.icons, undefined, false)"
282
- :data-inline="reflectedProp('inline', 'inline', checkedProps.inline, undefined, false)"
283
- :data-open="reflectedProp('open', 'open', checkedProps.open, undefined, false)"
284
- :data-placement="reflectedProp('placement', 'placement', checkedProps.placement, undefined, false)"
285
- :data-size="reflectedProp('size', 'size', checkedProps.size, undefined, false)"
281
+ :data-ui-menu-prop-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
282
+ :data-ui-menu-prop-for="reflectedProp('for', 'for', checkedProps.for, undefined, false)"
283
+ :data-ui-menu-prop-icons="reflectedProp('icons', 'icons', checkedProps.icons, undefined, false)"
284
+ :data-ui-menu-prop-inline="reflectedProp('inline', 'inline', checkedProps.inline, undefined, false)"
285
+ :data-ui-menu-prop-open="reflectedProp('open', 'open', checkedProps.open, undefined, false)"
286
+ :data-ui-menu-prop-placement="reflectedProp('placement', 'placement', checkedProps.placement, undefined, false)"
287
+ :data-ui-menu-prop-size="reflectedProp('size', 'size', checkedProps.size, undefined, false)"
286
288
  :data-ui-menu-state="hostState || undefined"
287
289
  ref="root"
288
290
  >
289
- <div class="surface"><slot /></div>
291
+ <div class="surface" data-hn-ui-menu><slot /></div>
290
292
  </div>
291
293
  </template>
292
294
 
@@ -318,8 +320,8 @@ useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
318
320
 
319
321
  /* Small follows its trigger down: an item's own hooks still win. */
320
322
 
321
- @scope (.ui-menu) {
322
- :scope:where(:scope):is([data-ui-menu-state~="density=compact"]) {
323
+ @scope (.ui-menu) to ([data-hn]) {
324
+ :global(:scope[data-ui-menu-state~="density=compact"]:where([data-hn-ui-menu])) {
323
325
  --_ui-default-menu-item-padding-block: var(--ui-space-1);
324
326
  --_ui-default-menu-item-padding-inline: var(--ui-space-2);
325
327
  --_ui-default-menu-item-font-size: var(--ui-font-size-sm);
@@ -327,7 +329,7 @@ useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
327
329
  padding: var(--ui-space-1);
328
330
  gap: 0;
329
331
  }
330
- :scope:where(:scope):is([data-ui-menu-state~="size=sm"]) {
332
+ :global(:scope[data-ui-menu-state~="size=sm"]:where([data-hn-ui-menu])) {
331
333
  --_ui-default-menu-item-padding-block: var(--ui-space-0-5);
332
334
  --_ui-default-menu-item-padding-inline: var(--ui-space-2);
333
335
  --_ui-default-menu-item-font-size: var(--ui-font-size-xs);
@@ -339,11 +341,11 @@ useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
339
341
  gap: 0;
340
342
  }
341
343
 
342
- :scope:where(:scope):is([data-ui-menu-state~="icons"]) {
344
+ :global(:scope[data-ui-menu-state~="icons"]:where([data-hn-ui-menu])) {
343
345
  --_ui-default-menu-icon-display: inline-flex;
344
346
  }
345
347
 
346
- :scope:where(:scope) {
348
+ :global(:scope:where([data-hn-ui-menu])) {
347
349
  --_ui-menu-surface: var(--ui-menu-surface);
348
350
  --_ui-menu-border: var(--ui-menu-border);
349
351
  --_ui-menu-radius: var(--ui-menu-radius);
@@ -371,7 +373,7 @@ useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
371
373
  overflow: visible;
372
374
  }
373
375
 
374
- .surface {
376
+ :global(.surface:where([data-hn-ui-menu])) {
375
377
  display: flex;
376
378
  flex-direction: column;
377
379
  box-sizing: border-box;
@@ -389,7 +391,7 @@ useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
389
391
  overflow: auto;
390
392
  }
391
393
 
392
- .surface hr {
394
+ :global(.surface hr:where([data-hn-ui-menu])) {
393
395
  align-self: stretch;
394
396
  block-size: 0;
395
397
  margin: var(--ui-space-1) 0;
@@ -397,11 +399,11 @@ useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
397
399
  border-block-start: var(--ui-border-width) solid var(--ui-border-divider);
398
400
  }
399
401
 
400
- :scope:where(:scope):is(:not(:scope[data-ui-menu-state~="internalOpen"]):not(:scope[data-ui-menu-state~="inline"])) {
402
+ :global(:scope:not([data-ui-menu-state~="internalOpen"]):not(:scope[data-ui-menu-state~="inline"]):where([data-hn-ui-menu])) {
401
403
  display: none;
402
404
  }
403
405
 
404
- :scope:where(:scope):is([popover]) {
406
+ :global(:scope[popover]:where([data-hn-ui-menu])) {
405
407
  position: fixed;
406
408
  inset: auto;
407
409
  margin: 0;
@@ -416,24 +418,24 @@ useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
416
418
  overlay var(--ui-motion-fast) allow-discrete;
417
419
  }
418
420
 
419
- :scope:where(:scope):is([popover]:popover-open) {
421
+ :global(:scope[popover]:popover-open:where([data-hn-ui-menu])) {
420
422
  opacity: 1;
421
423
  transform: translateY(0) scale(1);
422
424
  }
423
425
 
424
426
  @starting-style {
425
- :scope:where(:scope):is([popover]:popover-open) {
427
+ :global(:scope[popover]:popover-open:where([data-hn-ui-menu])) {
426
428
  opacity: 0;
427
429
  transform: translateY(-4px) scale(0.99);
428
430
  }
429
431
  }
430
432
 
431
- :scope:where(:scope):is([hidden]) {
433
+ :global(:scope[hidden]:where([data-hn-ui-menu])) {
432
434
  display: none;
433
435
  }
434
436
 
435
437
  @media (prefers-reduced-motion: reduce) {
436
- :scope:where(:scope):is([popover]) {
438
+ :global(:scope[popover]:where([data-hn-ui-menu])) {
437
439
  transition: none;
438
440
  }
439
441
  }
@@ -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'
@@ -45,29 +45,33 @@ checkHydratedRoot('div', 'ui-menu-group')
45
45
  class="ui-menu-group"
46
46
  role="group"
47
47
  v-bind="nativeAttrs($attrs)"
48
+ data-hn
49
+ data-hn-ui-menu-group
48
50
  :aria-label="checkedProps.label ?? undefined"
49
51
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
50
- :data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
52
+ :data-ui-menu-group-prop-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
51
53
  >
52
- <div v-if="checkedProps.label" class="heading">{{ checkedProps.label }}</div>
54
+ <div v-if="checkedProps.label" class="heading" data-hn-ui-menu-group>
55
+ {{ checkedProps.label }}
56
+ </div>
53
57
  <slot />
54
58
  </div>
55
59
  </template>
56
60
 
57
61
  <style scoped>
58
- @scope (.ui-menu-group) {
59
- :scope:where(:scope) {
62
+ @scope (.ui-menu-group) to ([data-hn]) {
63
+ :global(:scope:where([data-hn-ui-menu-group])) {
60
64
  display: flex;
61
65
  flex-direction: column;
62
66
  min-inline-size: 0;
63
67
  }
64
- .heading {
68
+ :global(.heading:where([data-hn-ui-menu-group])) {
65
69
  padding: var(--ui-space-2) var(--ui-space-3) var(--ui-space-1);
66
70
  color: var(--ui-text-muted);
67
71
  font-size: var(--ui-font-size-sm);
68
72
  font-weight: var(--ui-font-semibold);
69
73
  }
70
- :scope:where(:scope):is([hidden]) {
74
+ :global(:scope[hidden]:where([data-hn-ui-menu-group])) {
71
75
  display: none;
72
76
  }
73
77
  }
@@ -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, provide, ref, useTemplateRef, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -187,7 +187,7 @@ checkHydratedRoot(
187
187
  'ui-menu-item',
188
188
  )
189
189
 
190
- /** The values the styles' :host-state() rules test. */
190
+ /** The values the styles' :host() prop and state rules test. */
191
191
  const hostState = computed(() =>
192
192
  [
193
193
  checkedProps.value.tone && 'tone',
@@ -252,25 +252,32 @@ useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
252
252
  role="menuitem"
253
253
  tabindex="-1"
254
254
  v-bind="nativeAttrs($attrs)"
255
+ data-hn
256
+ data-hn-ui-menu-item
255
257
  :aria-disabled="checkedProps.disabled ?? undefined"
258
+ :data-value="checkedProps.value ?? undefined"
256
259
  :href="guarded"
257
260
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
258
- :data-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
259
- :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
260
- :data-href="reflectedProp('href', 'href', checkedProps.href, undefined, false)"
261
- :data-tone="reflectedProp('tone', 'tone', checkedProps.tone, undefined, false)"
262
- :data-type="reflectedProp('type', 'type', checkedProps.type, undefined, false)"
263
- :data-value="reflectedProp('value', 'value', checkedProps.value, undefined, true)"
261
+ :data-ui-menu-item-prop-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
262
+ :data-ui-menu-item-prop-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
263
+ :data-ui-menu-item-prop-href="reflectedProp('href', 'href', checkedProps.href, undefined, false)"
264
+ :data-ui-menu-item-prop-tone="reflectedProp('tone', 'tone', checkedProps.tone, undefined, false)"
265
+ :data-ui-menu-item-prop-type="reflectedProp('type', 'type', checkedProps.type, undefined, false)"
266
+ :data-ui-menu-item-prop-value="reflectedProp('value', 'value', checkedProps.value, undefined, false)"
264
267
  :data-ui-menu-item-state="hostState || undefined"
265
268
  ref="@html-next/root"
266
- ><span class="icon" aria-hidden="true"><slot name="icon" /></span>
267
- <span class="label"><slot /></span>
268
- <span class="shortcut" aria-hidden="true"><slot name="shortcut" /></span></a>
269
+ ><span class="icon" aria-hidden="true" data-hn-ui-menu-item><slot name="icon" /></span>
270
+ <span class="label" data-hn-ui-menu-item><slot /></span>
271
+ <span class="shortcut" aria-hidden="true" data-hn-ui-menu-item><slot
272
+ name="shortcut"
273
+ /></span></a>
269
274
  <div
270
275
  v-else
271
276
  class="ui-menu-item"
272
277
  tabindex="-1"
273
278
  v-bind="nativeAttrs($attrs)"
279
+ data-hn
280
+ data-hn-ui-menu-item
274
281
  :role="attribute(
275
282
  (({ action: 'menuitem', checkbox: 'menuitemcheckbox', radio: 'menuitemradio' }) as Record<
276
283
  string,
@@ -292,24 +299,25 @@ useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
292
299
  ],
293
300
  )"
294
301
  :aria-disabled="checkedProps.disabled ?? undefined"
302
+ :data-value="checkedProps.value ?? undefined"
295
303
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
296
- :data-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
297
- :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
298
- :data-href="reflectedProp('href', 'href', checkedProps.href, undefined, false)"
299
- :data-tone="reflectedProp('tone', 'tone', checkedProps.tone, undefined, false)"
300
- :data-type="reflectedProp('type', 'type', checkedProps.type, undefined, false)"
301
- :data-value="reflectedProp('value', 'value', checkedProps.value, undefined, true)"
304
+ :data-ui-menu-item-prop-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
305
+ :data-ui-menu-item-prop-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
306
+ :data-ui-menu-item-prop-href="reflectedProp('href', 'href', checkedProps.href, undefined, false)"
307
+ :data-ui-menu-item-prop-tone="reflectedProp('tone', 'tone', checkedProps.tone, undefined, false)"
308
+ :data-ui-menu-item-prop-type="reflectedProp('type', 'type', checkedProps.type, undefined, false)"
309
+ :data-ui-menu-item-prop-value="reflectedProp('value', 'value', checkedProps.value, undefined, false)"
302
310
  :data-ui-menu-item-state="hostState || undefined"
303
311
  ref="@html-next/root"
304
312
  >
305
- <span class="indicator" aria-hidden="true"><UiIcon
313
+ <span class="indicator" aria-hidden="true" data-hn-ui-menu-item><UiIcon
306
314
  v-if="(checkedProps.type === 'checkbox' || checkedProps.type === 'radio') && internalChecked"
307
315
  class="ui-icon"
308
316
  name="check"
309
317
  /></span>
310
- <span class="icon" aria-hidden="true"><slot name="icon" /></span>
311
- <span class="label"><slot /></span>
312
- <span class="shortcut" aria-hidden="true"><slot name="shortcut" /></span>
318
+ <span class="icon" aria-hidden="true" data-hn-ui-menu-item><slot name="icon" /></span>
319
+ <span class="label" data-hn-ui-menu-item><slot /></span>
320
+ <span class="shortcut" aria-hidden="true" data-hn-ui-menu-item><slot name="shortcut" /></span>
313
321
  </div>
314
322
  </template>
315
323
 
@@ -351,8 +359,8 @@ useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
351
359
 
352
360
  /* A component that sets its display still honours the hidden attribute on its root. */
353
361
 
354
- @scope (.ui-menu-item) to (.ui-icon) {
355
- :scope:where(:scope) {
362
+ @scope (.ui-menu-item) to ([data-hn]) {
363
+ :global(:scope:where([data-hn-ui-menu-item])) {
356
364
  display: flex;
357
365
  align-items: center;
358
366
  gap: var(--ui-space-2);
@@ -384,7 +392,7 @@ useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
384
392
  background-color var(--ui-motion-fast) var(--ui-motion-ease),
385
393
  color var(--ui-motion-fast) var(--ui-motion-ease);
386
394
  }
387
- .icon {
395
+ :global(.icon:where([data-hn-ui-menu-item])) {
388
396
  display: var(--_ui-default-menu-icon-display, none);
389
397
  align-items: center;
390
398
  justify-content: center;
@@ -393,20 +401,20 @@ useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
393
401
  block-size: var(--ui-icon-size-sm);
394
402
  }
395
403
 
396
- .icon:not(:empty) {
404
+ :global(.icon:not(:empty):where([data-hn-ui-menu-item])) {
397
405
  display: inline-flex;
398
406
  }
399
407
 
400
- .icon :slotted(svg) {
408
+ :global(.icon :where(:not([data-hn-ui-menu-item])):is(svg)) {
401
409
  inline-size: 100%;
402
410
  block-size: 100%;
403
411
  }
404
412
 
405
- :scope:where(:scope):is([data-ui-menu-item-state~="tone=danger"]) {
413
+ :global(:scope[data-ui-menu-item-state~="tone=danger"]:where([data-hn-ui-menu-item])) {
406
414
  color: var(--ui-danger);
407
415
  }
408
416
 
409
- .label {
417
+ :global(.label:where([data-hn-ui-menu-item])) {
410
418
  display: flex;
411
419
  align-items: center;
412
420
  gap: var(--ui-space-2);
@@ -414,7 +422,7 @@ useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
414
422
  min-inline-size: 0;
415
423
  }
416
424
 
417
- .indicator {
425
+ :global(.indicator:where([data-hn-ui-menu-item])) {
418
426
  display: inline-flex;
419
427
  align-items: center;
420
428
  justify-content: center;
@@ -428,34 +436,35 @@ useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
428
436
  --_ui-default-icon-size: 0.75rem;
429
437
  }
430
438
 
431
- :scope[data-ui-menu-item-state~="type=action"] .indicator {
439
+ :global(:scope[data-ui-menu-item-state~="type=action"] .indicator:where([data-hn-ui-menu-item])) {
432
440
  display: none;
433
441
  }
434
442
 
435
- :scope[data-ui-menu-item-state~="type=checkbox"][aria-checked="true"] .indicator {
443
+ :global(:scope[data-ui-menu-item-state~="type=checkbox"][aria-checked="true"]
444
+ .indicator:where([data-hn-ui-menu-item])) {
436
445
  border-color: var(--ui-accent);
437
446
  background: var(--ui-accent);
438
447
  }
439
- :scope[data-ui-menu-item-state~="type=radio"] .indicator {
448
+ :global(:scope[data-ui-menu-item-state~="type=radio"] .indicator:where([data-hn-ui-menu-item])) {
440
449
  border-color: transparent;
441
450
  color: var(--ui-text-secondary);
442
451
  }
443
452
 
444
- .shortcut {
453
+ :global(.shortcut:where([data-hn-ui-menu-item])) {
445
454
  margin-inline-start: auto;
446
455
  color: var(--ui-text-secondary);
447
456
  font-size: var(--ui-font-size-sm);
448
457
  font-weight: var(--ui-font-normal);
449
458
  }
450
459
 
451
- .shortcut:empty {
460
+ :global(.shortcut:empty:where([data-hn-ui-menu-item])) {
452
461
  display: none;
453
462
  }
454
- .shortcut :slotted(kbd) {
463
+ :global(.shortcut :where(:not([data-hn-ui-menu-item])):is(kbd)) {
455
464
  font: inherit;
456
465
  }
457
466
  @supports (text-box-trim: trim-both) {
458
- :scope:where(:scope) {
467
+ :global(:scope:where([data-hn-ui-menu-item])) {
459
468
  min-block-size: var(
460
469
  --ui-menu-item-min-block-size,
461
470
  var(--_ui-default-menu-item-min-block-size, var(--ui-control-size-md, 2.5rem))
@@ -465,37 +474,37 @@ useComponentHost(() => import('../components/ui-menu-item/ui-menu-item.js'), {
465
474
  }
466
475
  }
467
476
 
468
- :scope:where(:scope):is(:is(:hover, :focus-visible):not([aria-disabled="true"])) {
477
+ :global(:scope:is(:hover, :focus-visible):not([aria-disabled="true"]):where([data-hn-ui-menu-item])) {
469
478
  background: var(--ui-menu-item-hover-surface, var(--ui-surface-subtle));
470
479
  }
471
480
 
472
- :scope:where(:scope):is(:focus-visible) {
481
+ :global(:scope:focus-visible:where([data-hn-ui-menu-item])) {
473
482
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
474
483
  outline-offset: calc(-1 * var(--ui-focus-width));
475
484
  }
476
485
 
477
- :scope:where(:scope):is([aria-disabled="true"]) {
486
+ :global(:scope[aria-disabled="true"]:where([data-hn-ui-menu-item])) {
478
487
  background: var(--ui-disabled-surface);
479
488
  color: var(--ui-disabled-text);
480
489
  cursor: not-allowed;
481
490
  }
482
491
 
483
- :scope[aria-disabled="true"] .indicator {
492
+ :global(:scope[aria-disabled="true"] .indicator:where([data-hn-ui-menu-item])) {
484
493
  border-color: var(--ui-disabled-border);
485
494
  background: transparent;
486
495
  color: var(--ui-disabled-text);
487
496
  }
488
497
 
489
- :scope[aria-disabled="true"] .indicator::after {
498
+ :global(:scope[aria-disabled="true"] .indicator:where([data-hn-ui-menu-item])::after) {
490
499
  background: var(--ui-disabled-text);
491
500
  }
492
501
 
493
502
  @media (forced-colors: active) {
494
- :scope:where(:scope):is(:focus-visible) {
503
+ :global(:scope:focus-visible:where([data-hn-ui-menu-item])) {
495
504
  outline-color: Highlight;
496
505
  }
497
506
  }
498
- :scope:where(:scope):is([hidden]) {
507
+ :global(:scope[hidden]:where([data-hn-ui-menu-item])) {
499
508
  display: none;
500
509
  }
501
510
  }