@threadlabs/looma 0.28.5 → 0.28.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/components/ui-editor-block-actions/ui-editor-block-actions.html +20 -0
  2. package/components/ui-editor-block-actions/ui-editor-block-actions.js +14 -0
  3. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +7 -6
  4. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +2 -1
  5. package/components/ui-editor-link-card/ui-editor-link-card.html +57 -0
  6. package/components/ui-editor-link-card/ui-editor-link-card.js +27 -0
  7. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  8. package/dist/index.js +36 -34
  9. package/package.json +3 -2
  10. package/styles/ui-action-bar.css +13 -6
  11. package/styles/ui-affordance-scope.css +12 -5
  12. package/styles/ui-avatar-group.css +17 -10
  13. package/styles/ui-avatar.css +23 -16
  14. package/styles/ui-badge.css +78 -71
  15. package/styles/ui-breadcrumb-item.css +12 -5
  16. package/styles/ui-breadcrumbs.css +10 -3
  17. package/styles/ui-button.css +79 -72
  18. package/styles/ui-callout.css +29 -22
  19. package/styles/ui-card.css +25 -18
  20. package/styles/ui-checkbox.css +45 -37
  21. package/styles/ui-cluster.css +34 -27
  22. package/styles/ui-combobox.css +46 -39
  23. package/styles/ui-container.css +20 -13
  24. package/styles/ui-context-menu.css +17 -10
  25. package/styles/ui-cover.css +12 -5
  26. package/styles/ui-description-item.css +10 -3
  27. package/styles/ui-description-list.css +20 -13
  28. package/styles/ui-dialog.css +44 -35
  29. package/styles/ui-disclosure.css +32 -25
  30. package/styles/ui-editable.css +15 -8
  31. package/styles/ui-editor-block-actions.css +1 -0
  32. package/styles/ui-editor-image-toolbar.css +1 -1
  33. package/styles/ui-editor-insert-table-grid.css +11 -4
  34. package/styles/ui-editor-link-card.css +1 -0
  35. package/styles/ui-editor-mention-menu-item.css +17 -8
  36. package/styles/ui-editor-mention-menu.css +14 -7
  37. package/styles/ui-editor-slash-menu-group.css +10 -3
  38. package/styles/ui-editor-slash-menu-item.css +15 -8
  39. package/styles/ui-editor-slash-menu.css +15 -8
  40. package/styles/ui-editor-surface.css +10 -3
  41. package/styles/ui-editor-table-context-menu.css +17 -10
  42. package/styles/ui-editor-table-overlay.css +17 -10
  43. package/styles/ui-editor-table-toolbar.css +22 -15
  44. package/styles/ui-editor-toolbar.css +18 -11
  45. package/styles/ui-floating-action-button.css +21 -14
  46. package/styles/ui-form-field.css +20 -13
  47. package/styles/ui-grid.css +21 -14
  48. package/styles/ui-icon-button.css +80 -73
  49. package/styles/ui-icon.css +14 -7
  50. package/styles/ui-image.css +25 -18
  51. package/styles/ui-input-group.css +34 -27
  52. package/styles/ui-input.css +42 -35
  53. package/styles/ui-list-item.css +33 -26
  54. package/styles/ui-list.css +22 -15
  55. package/styles/ui-listbox.css +22 -14
  56. package/styles/ui-menu-group.css +10 -3
  57. package/styles/ui-menu-item.css +29 -22
  58. package/styles/ui-menu.css +25 -18
  59. package/styles/ui-meter.css +36 -29
  60. package/styles/ui-nav-item.css +26 -19
  61. package/styles/ui-page-header.css +12 -5
  62. package/styles/ui-popover.css +27 -20
  63. package/styles/ui-radio-group.css +14 -6
  64. package/styles/ui-radio.css +24 -17
  65. package/styles/ui-reel.css +28 -21
  66. package/styles/ui-scroll-area.css +22 -15
  67. package/styles/ui-search-result-row.css +28 -21
  68. package/styles/ui-search-shell.css +24 -17
  69. package/styles/ui-section.css +14 -7
  70. package/styles/ui-select.css +33 -26
  71. package/styles/ui-separator.css +17 -10
  72. package/styles/ui-sidebar.css +35 -28
  73. package/styles/ui-spinner.css +32 -23
  74. package/styles/ui-stack.css +29 -21
  75. package/styles/ui-status-message.css +14 -7
  76. package/styles/ui-switch.css +29 -22
  77. package/styles/ui-switcher.css +27 -20
  78. package/styles/ui-table.css +14 -7
  79. package/styles/ui-tabs.css +24 -17
  80. package/styles/ui-text.css +35 -28
  81. package/styles/ui-textarea.css +37 -30
  82. package/styles/ui-toast-region.css +74 -63
  83. package/styles/ui-toast.css +21 -14
  84. package/styles/ui-tooltip.css +38 -31
  85. package/styles/ui-top-bar.css +19 -12
  86. package/styles/ui-tree-item.css +79 -71
  87. package/styles/ui-tree.css +18 -11
  88. package/vanilla/UiActionBar.d.ts +1 -1
  89. package/vanilla/UiActionBar.js +1 -1
  90. package/vanilla/UiAffordanceScope.d.ts +1 -1
  91. package/vanilla/UiAffordanceScope.js +1 -1
  92. package/vanilla/UiAvatar.d.ts +1 -1
  93. package/vanilla/UiAvatar.js +1 -1
  94. package/vanilla/UiAvatarGroup.d.ts +1 -1
  95. package/vanilla/UiAvatarGroup.js +1 -1
  96. package/vanilla/UiBadge.d.ts +1 -1
  97. package/vanilla/UiBadge.js +1 -1
  98. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  99. package/vanilla/UiBreadcrumbItem.js +1 -1
  100. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  101. package/vanilla/UiBreadcrumbs.js +1 -1
  102. package/vanilla/UiButton.d.ts +1 -1
  103. package/vanilla/UiButton.js +19 -57
  104. package/vanilla/UiCallout.d.ts +1 -1
  105. package/vanilla/UiCallout.js +25 -73
  106. package/vanilla/UiCard.d.ts +1 -1
  107. package/vanilla/UiCard.js +1 -1
  108. package/vanilla/UiCheckbox.d.ts +1 -1
  109. package/vanilla/UiCheckbox.js +1 -1
  110. package/vanilla/UiCluster.d.ts +1 -1
  111. package/vanilla/UiCluster.js +1 -1
  112. package/vanilla/UiCombobox.d.ts +1 -1
  113. package/vanilla/UiCombobox.js +60 -166
  114. package/vanilla/UiContainer.d.ts +1 -1
  115. package/vanilla/UiContainer.js +1 -1
  116. package/vanilla/UiContextMenu.d.ts +1 -1
  117. package/vanilla/UiContextMenu.js +1 -1
  118. package/vanilla/UiCover.d.ts +1 -1
  119. package/vanilla/UiCover.js +1 -1
  120. package/vanilla/UiDescriptionItem.d.ts +1 -1
  121. package/vanilla/UiDescriptionItem.js +1 -1
  122. package/vanilla/UiDescriptionList.d.ts +1 -1
  123. package/vanilla/UiDescriptionList.js +1 -1
  124. package/vanilla/UiDialog.d.ts +1 -1
  125. package/vanilla/UiDialog.js +4 -10
  126. package/vanilla/UiDisclosure.d.ts +1 -1
  127. package/vanilla/UiDisclosure.js +1 -1
  128. package/vanilla/UiEditable.d.ts +1 -1
  129. package/vanilla/UiEditable.js +7 -19
  130. package/vanilla/UiEditorBlockActions.d.ts +16 -0
  131. package/vanilla/UiEditorBlockActions.js +41 -0
  132. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  133. package/vanilla/UiEditorImageToolbar.js +2 -2
  134. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  135. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  136. package/vanilla/UiEditorLinkCard.d.ts +20 -0
  137. package/vanilla/UiEditorLinkCard.js +153 -0
  138. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  139. package/vanilla/UiEditorMentionMenu.js +17 -37
  140. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  141. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  142. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  143. package/vanilla/UiEditorSlashMenu.js +5 -4
  144. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  145. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  146. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  147. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  148. package/vanilla/UiEditorSurface.d.ts +1 -1
  149. package/vanilla/UiEditorSurface.js +1 -1
  150. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  151. package/vanilla/UiEditorTableContextMenu.js +6 -14
  152. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  153. package/vanilla/UiEditorTableOverlay.js +9 -25
  154. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  155. package/vanilla/UiEditorTableToolbar.js +25 -77
  156. package/vanilla/UiEditorToolbar.d.ts +1 -1
  157. package/vanilla/UiEditorToolbar.js +1 -1
  158. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  159. package/vanilla/UiFloatingActionButton.js +1 -1
  160. package/vanilla/UiFormField.d.ts +1 -1
  161. package/vanilla/UiFormField.js +1 -1
  162. package/vanilla/UiGrid.d.ts +1 -1
  163. package/vanilla/UiGrid.js +1 -1
  164. package/vanilla/UiIcon.d.ts +1 -1
  165. package/vanilla/UiIcon.js +15 -47
  166. package/vanilla/UiIconButton.d.ts +1 -1
  167. package/vanilla/UiIconButton.js +4 -10
  168. package/vanilla/UiImage.d.ts +1 -1
  169. package/vanilla/UiImage.js +1 -1
  170. package/vanilla/UiInput.d.ts +1 -1
  171. package/vanilla/UiInput.js +1 -1
  172. package/vanilla/UiInputGroup.d.ts +1 -1
  173. package/vanilla/UiInputGroup.js +1 -1
  174. package/vanilla/UiList.d.ts +1 -1
  175. package/vanilla/UiList.js +1 -1
  176. package/vanilla/UiListItem.d.ts +1 -1
  177. package/vanilla/UiListItem.js +1 -1
  178. package/vanilla/UiListbox.d.ts +1 -1
  179. package/vanilla/UiListbox.js +4 -10
  180. package/vanilla/UiMenu.d.ts +1 -1
  181. package/vanilla/UiMenu.js +1 -1
  182. package/vanilla/UiMenuGroup.d.ts +1 -1
  183. package/vanilla/UiMenuGroup.js +4 -10
  184. package/vanilla/UiMenuItem.d.ts +1 -1
  185. package/vanilla/UiMenuItem.js +4 -10
  186. package/vanilla/UiMeter.d.ts +1 -1
  187. package/vanilla/UiMeter.js +13 -33
  188. package/vanilla/UiNavItem.d.ts +1 -1
  189. package/vanilla/UiNavItem.js +1 -1
  190. package/vanilla/UiPageHeader.d.ts +1 -1
  191. package/vanilla/UiPageHeader.js +1 -1
  192. package/vanilla/UiPopover.d.ts +1 -1
  193. package/vanilla/UiPopover.js +1 -1
  194. package/vanilla/UiRadio.d.ts +1 -1
  195. package/vanilla/UiRadio.js +1 -1
  196. package/vanilla/UiRadioGroup.d.ts +1 -1
  197. package/vanilla/UiRadioGroup.js +1 -1
  198. package/vanilla/UiReel.d.ts +1 -1
  199. package/vanilla/UiReel.js +1 -1
  200. package/vanilla/UiScrollArea.d.ts +1 -1
  201. package/vanilla/UiScrollArea.js +1 -1
  202. package/vanilla/UiSearchResultRow.d.ts +1 -1
  203. package/vanilla/UiSearchResultRow.js +1 -1
  204. package/vanilla/UiSearchShell.d.ts +1 -1
  205. package/vanilla/UiSearchShell.js +1 -1
  206. package/vanilla/UiSection.d.ts +1 -1
  207. package/vanilla/UiSection.js +1 -1
  208. package/vanilla/UiSelect.d.ts +1 -1
  209. package/vanilla/UiSelect.js +1 -1
  210. package/vanilla/UiSeparator.d.ts +1 -1
  211. package/vanilla/UiSeparator.js +1 -1
  212. package/vanilla/UiSidebar.d.ts +1 -1
  213. package/vanilla/UiSidebar.js +1 -1
  214. package/vanilla/UiSpinner.d.ts +1 -1
  215. package/vanilla/UiSpinner.js +1 -1
  216. package/vanilla/UiStack.d.ts +1 -1
  217. package/vanilla/UiStack.js +1 -1
  218. package/vanilla/UiStatusMessage.d.ts +1 -1
  219. package/vanilla/UiStatusMessage.js +1 -1
  220. package/vanilla/UiSwitch.d.ts +1 -1
  221. package/vanilla/UiSwitch.js +1 -1
  222. package/vanilla/UiSwitcher.d.ts +1 -1
  223. package/vanilla/UiSwitcher.js +1 -1
  224. package/vanilla/UiTable.d.ts +1 -1
  225. package/vanilla/UiTable.js +1 -1
  226. package/vanilla/UiTabs.d.ts +1 -1
  227. package/vanilla/UiTabs.js +1 -1
  228. package/vanilla/UiText.d.ts +1 -1
  229. package/vanilla/UiText.js +1 -1
  230. package/vanilla/UiTextarea.d.ts +1 -1
  231. package/vanilla/UiTextarea.js +1 -1
  232. package/vanilla/UiToast.d.ts +1 -1
  233. package/vanilla/UiToast.js +1 -1
  234. package/vanilla/UiToastRegion.d.ts +1 -1
  235. package/vanilla/UiToastRegion.js +1 -1
  236. package/vanilla/UiTooltip.d.ts +1 -1
  237. package/vanilla/UiTooltip.js +1 -1
  238. package/vanilla/UiTopBar.d.ts +1 -1
  239. package/vanilla/UiTopBar.js +1 -1
  240. package/vanilla/UiTree.d.ts +1 -1
  241. package/vanilla/UiTree.js +1 -1
  242. package/vanilla/UiTreeItem.d.ts +1 -1
  243. package/vanilla/UiTreeItem.js +7 -19
  244. package/vanilla/index.js +2 -0
  245. package/vue/UiActionBar.vue +46 -78
  246. package/vue/UiAffordanceScope.vue +27 -66
  247. package/vue/UiAvatar.d.ts +10 -7
  248. package/vue/UiAvatar.vue +100 -218
  249. package/vue/UiAvatarGroup.d.ts +10 -7
  250. package/vue/UiAvatarGroup.vue +78 -160
  251. package/vue/UiBadge.d.ts +1 -1
  252. package/vue/UiBadge.vue +483 -520
  253. package/vue/UiBreadcrumbItem.vue +52 -123
  254. package/vue/UiBreadcrumbs.vue +27 -70
  255. package/vue/UiButton.d.ts +2 -2
  256. package/vue/UiButton.vue +420 -471
  257. package/vue/UiCallout.vue +131 -175
  258. package/vue/UiCard.d.ts +1 -1
  259. package/vue/UiCard.vue +112 -151
  260. package/vue/UiCheckbox.d.ts +13 -10
  261. package/vue/UiCheckbox.vue +160 -221
  262. package/vue/UiCluster.d.ts +1 -1
  263. package/vue/UiCluster.vue +84 -128
  264. package/vue/UiCombobox.d.ts +71 -68
  265. package/vue/UiCombobox.vue +417 -743
  266. package/vue/UiContainer.vue +43 -87
  267. package/vue/UiContextMenu.d.ts +6 -6
  268. package/vue/UiContextMenu.vue +78 -117
  269. package/vue/UiCover.vue +29 -69
  270. package/vue/UiDescriptionItem.vue +39 -82
  271. package/vue/UiDescriptionList.vue +64 -107
  272. package/vue/UiDialog.d.ts +22 -19
  273. package/vue/UiDialog.vue +193 -246
  274. package/vue/UiDisclosure.d.ts +22 -19
  275. package/vue/UiDisclosure.vue +192 -283
  276. package/vue/UiEditable.d.ts +5 -5
  277. package/vue/UiEditable.vue +124 -207
  278. package/vue/UiEditorBlockActions.d.ts +33 -0
  279. package/vue/UiEditorBlockActions.js +2 -0
  280. package/vue/UiEditorBlockActions.vue +125 -0
  281. package/vue/UiEditorImageToolbar.d.ts +2 -2
  282. package/vue/UiEditorImageToolbar.vue +45 -256
  283. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  284. package/vue/UiEditorInsertTableGrid.vue +98 -266
  285. package/vue/UiEditorLinkCard.d.ts +58 -0
  286. package/vue/UiEditorLinkCard.js +2 -0
  287. package/vue/UiEditorLinkCard.vue +319 -0
  288. package/vue/UiEditorMentionMenu.d.ts +15 -12
  289. package/vue/UiEditorMentionMenu.vue +150 -239
  290. package/vue/UiEditorMentionMenuItem.vue +66 -110
  291. package/vue/UiEditorSlashMenu.d.ts +16 -13
  292. package/vue/UiEditorSlashMenu.vue +172 -253
  293. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  294. package/vue/UiEditorSlashMenuItem.vue +67 -115
  295. package/vue/UiEditorSurface.vue +19 -63
  296. package/vue/UiEditorTableContextMenu.vue +135 -269
  297. package/vue/UiEditorTableOverlay.d.ts +2 -2
  298. package/vue/UiEditorTableOverlay.vue +310 -479
  299. package/vue/UiEditorTableToolbar.d.ts +2 -2
  300. package/vue/UiEditorTableToolbar.vue +182 -357
  301. package/vue/UiEditorToolbar.vue +143 -183
  302. package/vue/UiFloatingActionButton.vue +70 -114
  303. package/vue/UiFormField.d.ts +1 -1
  304. package/vue/UiFormField.vue +76 -117
  305. package/vue/UiGrid.d.ts +1 -1
  306. package/vue/UiGrid.vue +65 -103
  307. package/vue/UiIcon.vue +32 -106
  308. package/vue/UiIconButton.d.ts +2 -2
  309. package/vue/UiIconButton.vue +359 -411
  310. package/vue/UiImage.vue +145 -180
  311. package/vue/UiInput.vue +158 -190
  312. package/vue/UiInputGroup.vue +199 -239
  313. package/vue/UiList.vue +67 -109
  314. package/vue/UiListItem.vue +154 -201
  315. package/vue/UiListbox.d.ts +10 -7
  316. package/vue/UiListbox.vue +86 -260
  317. package/vue/UiMenu.d.ts +11 -11
  318. package/vue/UiMenu.vue +118 -152
  319. package/vue/UiMenuGroup.vue +21 -67
  320. package/vue/UiMenuItem.d.ts +19 -16
  321. package/vue/UiMenuItem.vue +169 -262
  322. package/vue/UiMeter.d.ts +4 -4
  323. package/vue/UiMeter.vue +166 -680
  324. package/vue/UiNavItem.vue +140 -213
  325. package/vue/UiPageHeader.vue +81 -127
  326. package/vue/UiPopover.d.ts +7 -7
  327. package/vue/UiPopover.vue +90 -129
  328. package/vue/UiRadio.d.ts +12 -9
  329. package/vue/UiRadio.vue +91 -149
  330. package/vue/UiRadioGroup.d.ts +2 -2
  331. package/vue/UiRadioGroup.vue +47 -85
  332. package/vue/UiReel.vue +89 -130
  333. package/vue/UiScrollArea.d.ts +1 -1
  334. package/vue/UiScrollArea.vue +78 -119
  335. package/vue/UiSearchResultRow.vue +96 -149
  336. package/vue/UiSearchShell.d.ts +2 -2
  337. package/vue/UiSearchShell.vue +159 -196
  338. package/vue/UiSection.vue +105 -149
  339. package/vue/UiSelect.d.ts +1 -1
  340. package/vue/UiSelect.vue +114 -146
  341. package/vue/UiSeparator.vue +42 -85
  342. package/vue/UiSidebar.d.ts +10 -7
  343. package/vue/UiSidebar.vue +193 -260
  344. package/vue/UiSpinner.vue +54 -130
  345. package/vue/UiStack.vue +66 -107
  346. package/vue/UiStatusMessage.d.ts +1 -1
  347. package/vue/UiStatusMessage.vue +61 -135
  348. package/vue/UiSwitch.d.ts +12 -9
  349. package/vue/UiSwitch.vue +136 -194
  350. package/vue/UiSwitcher.vue +69 -107
  351. package/vue/UiTable.vue +121 -156
  352. package/vue/UiTabs.d.ts +1 -1
  353. package/vue/UiTabs.vue +139 -267
  354. package/vue/UiText.d.ts +4 -4
  355. package/vue/UiText.vue +145 -184
  356. package/vue/UiTextarea.d.ts +2 -2
  357. package/vue/UiTextarea.vue +162 -194
  358. package/vue/UiToast.vue +70 -118
  359. package/vue/UiToastRegion.vue +157 -276
  360. package/vue/UiTooltip.d.ts +21 -18
  361. package/vue/UiTooltip.vue +174 -234
  362. package/vue/UiTopBar.vue +48 -76
  363. package/vue/UiTree.vue +46 -79
  364. package/vue/UiTreeItem.d.ts +18 -15
  365. package/vue/UiTreeItem.vue +526 -668
  366. package/vue/chunks/UiActionBar.js +5 -17
  367. package/vue/chunks/UiAffordanceScope.js +7 -26
  368. package/vue/chunks/UiAvatar.js +20 -74
  369. package/vue/chunks/UiAvatarGroup.js +14 -56
  370. package/vue/chunks/UiBadge.js +10 -28
  371. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  372. package/vue/chunks/UiBreadcrumbs.js +7 -25
  373. package/vue/chunks/UiButton.js +80 -103
  374. package/vue/chunks/UiCallout.js +9 -27
  375. package/vue/chunks/UiCard.js +33 -53
  376. package/vue/chunks/UiCheckbox.js +14 -46
  377. package/vue/chunks/UiCluster.js +13 -31
  378. package/vue/chunks/UiCombobox.js +99 -237
  379. package/vue/chunks/UiContainer.js +9 -27
  380. package/vue/chunks/UiContextMenu.js +7 -26
  381. package/vue/chunks/UiCover.js +7 -25
  382. package/vue/chunks/UiDescriptionItem.js +6 -24
  383. package/vue/chunks/UiDescriptionList.js +9 -27
  384. package/vue/chunks/UiDialog.js +18 -47
  385. package/vue/chunks/UiDisclosure.js +19 -66
  386. package/vue/chunks/UiEditable.js +18 -60
  387. package/vue/chunks/UiEditorBlockActions.js +127 -0
  388. package/vue/chunks/UiEditorImageToolbar.js +40 -127
  389. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  390. package/vue/chunks/UiEditorLinkCard.js +356 -0
  391. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  392. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  393. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  394. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  395. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  396. package/vue/chunks/UiEditorSurface.js +7 -25
  397. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  398. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  399. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  400. package/vue/chunks/UiEditorToolbar.js +7 -26
  401. package/vue/chunks/UiFloatingActionButton.js +10 -28
  402. package/vue/chunks/UiFormField.js +8 -27
  403. package/vue/chunks/UiGrid.js +10 -28
  404. package/vue/chunks/UiIcon.js +21 -74
  405. package/vue/chunks/UiIconButton.js +18 -50
  406. package/vue/chunks/UiImage.js +14 -33
  407. package/vue/chunks/UiInput.js +12 -31
  408. package/vue/chunks/UiInputGroup.js +10 -29
  409. package/vue/chunks/UiList.js +17 -37
  410. package/vue/chunks/UiListItem.js +12 -30
  411. package/vue/chunks/UiListbox.js +22 -124
  412. package/vue/chunks/UiMenu.js +13 -32
  413. package/vue/chunks/UiMenuGroup.js +8 -26
  414. package/vue/chunks/UiMenuItem.js +35 -80
  415. package/vue/chunks/UiMeter.js +17 -351
  416. package/vue/chunks/UiNavItem.js +23 -57
  417. package/vue/chunks/UiPageHeader.js +7 -25
  418. package/vue/chunks/UiPopover.js +9 -28
  419. package/vue/chunks/UiRadio.js +11 -43
  420. package/vue/chunks/UiRadioGroup.js +13 -32
  421. package/vue/chunks/UiReel.js +10 -28
  422. package/vue/chunks/UiScrollArea.js +10 -29
  423. package/vue/chunks/UiSearchResultRow.js +10 -28
  424. package/vue/chunks/UiSearchShell.js +9 -28
  425. package/vue/chunks/UiSection.js +9 -27
  426. package/vue/chunks/UiSelect.js +10 -29
  427. package/vue/chunks/UiSeparator.js +10 -28
  428. package/vue/chunks/UiSidebar.js +15 -47
  429. package/vue/chunks/UiSpinner.js +8 -44
  430. package/vue/chunks/UiStack.js +12 -30
  431. package/vue/chunks/UiStatusMessage.js +10 -42
  432. package/vue/chunks/UiSwitch.js +11 -43
  433. package/vue/chunks/UiSwitcher.js +9 -28
  434. package/vue/chunks/UiTable.js +7 -26
  435. package/vue/chunks/UiTabs.js +15 -91
  436. package/vue/chunks/UiText.js +148 -168
  437. package/vue/chunks/UiTextarea.js +16 -35
  438. package/vue/chunks/UiToast.js +13 -37
  439. package/vue/chunks/UiToastRegion.js +16 -88
  440. package/vue/chunks/UiTooltip.js +14 -46
  441. package/vue/chunks/UiTopBar.js +5 -17
  442. package/vue/chunks/UiTree.js +13 -32
  443. package/vue/chunks/UiTreeItem.js +34 -90
  444. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  445. package/vue/chunks/control.js +3 -0
  446. package/vue/chunks/props.js +1 -1
  447. package/vue/components.css +7689 -7617
  448. package/vue/editor/index.js +30 -95
  449. package/vue/editor/primitives.d.ts +8 -2
  450. package/vue/host.ts +999 -14
  451. package/vue/index.d.ts +2 -0
  452. package/vue/index.js +5 -3
  453. package/vue/chunks/host.js +0 -443
package/vue/UiList.vue CHANGED
@@ -1,8 +1,8 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
- import { computed, getCurrentInstance, useTemplateRef, watchSyncEffect } from 'vue'
3
+ import { computed, useTemplateRef, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
5
- import { preserveRootFocus } from './host'
5
+ import { checkHydratedRoot, nativeAttrs, preserveRootFocus, useReflectedProp } from './host'
6
6
  import { checkedProp, vPropValidity } from './props'
7
7
 
8
8
  defineOptions({ inheritAttrs: false })
@@ -96,57 +96,12 @@ void checkedProps.value
96
96
  watchSyncEffect(() => {
97
97
  void checkedProps.value
98
98
  })
99
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
100
- const names = Object.keys(attrs)
101
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
102
- return Object.fromEntries(names.map((name) => [
103
- Object.hasOwn(Object.prototype, name)
104
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
105
- : name,
106
- attrs[name],
107
- ]))
108
- }
109
- const componentInstance = getCurrentInstance()
110
- function reflectedProp(
111
- name: string,
112
- kebab: string,
113
- value: unknown,
114
- fallback: string | undefined,
115
- bound: boolean,
116
- separator?: string,
117
- ): string | undefined {
118
- const incoming = componentInstance?.vnode.props
119
- if (
120
- !bound
121
- && (incoming === null || incoming === undefined
122
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
123
- ) return fallback
124
- if (value === null || value === undefined) return undefined
125
- return Array.isArray(value) && separator !== undefined
126
- ? value.join(separator)
127
- : typeof value === 'object'
128
- ? JSON.stringify(value)
129
- : String(value)
130
- }
131
- const hydrationInstance = getCurrentInstance()
99
+ const reflectedProp = useReflectedProp()
132
100
 
133
101
  const rootArmElement = useTemplateRef<HTMLElement>('@html-next/root')
134
102
  const root = rootArmElement
135
103
  preserveRootFocus(root)
136
- const hydrationNode = hydrationInstance?.vnode.el
137
- if (
138
- typeof window !== 'undefined' && hydrationNode != null
139
- && (!(hydrationNode instanceof Element)
140
- || hydrationNode.localName !== ((checkedProps.value.as === 'ol') ? 'ol' : ('ul')))
141
- ) {
142
- throw Object.assign(new Error('HR005: Server markup for <ui-list> has an incompatible root.'), {
143
- name: 'HtmlDiagnosticError',
144
- diagnostic: Object.freeze({
145
- code: 'HR005',
146
- message: 'Server markup for <ui-list> has an incompatible root.',
147
- }),
148
- })
149
- }
104
+ checkHydratedRoot((checkedProps.value.as === 'ol') ? 'ol' : ('ul'), 'ui-list')
150
105
 
151
106
  /** The values the styles' :host-state() rules test. */
152
107
  const hostState = computed(() =>
@@ -168,7 +123,7 @@ const hostState = computed(() =>
168
123
  <template>
169
124
  <ol
170
125
  v-if="checkedProps.as === 'ol'"
171
- data-component="ui-list"
126
+ class="ui-list"
172
127
  v-bind="nativeAttrs($attrs)"
173
128
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
174
129
  :data-as="reflectedProp('as', 'as', checkedProps.as, undefined, false)"
@@ -182,7 +137,7 @@ const hostState = computed(() =>
182
137
  </ol>
183
138
  <ul
184
139
  v-else
185
- data-component="ui-list"
140
+ class="ui-list"
186
141
  role="list"
187
142
  v-bind="nativeAttrs($attrs)"
188
143
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
@@ -211,70 +166,73 @@ const hostState = computed(() =>
211
166
  /* A list of native li elements or structured ui-list-item components. It owns the spacing between them, so a view never sets it. The
212
167
  explicit list role keeps the list announced as one: some browsers drop it from a list with no
213
168
  markers. */
214
- [data-component~="ui-list"] {
215
- --_list-gap: var(--ui-list-gap, var(--ui-space-1));
216
- --_list-min-item-width: var(--ui-list-min-item-width, 14rem);
217
- display: flex;
218
- flex-direction: column;
219
- inline-size: 100%;
220
- gap: var(--_list-gap);
221
- min-inline-size: 0;
222
- margin: 0;
223
- padding: 0;
224
- list-style: none;
225
- }
226
169
 
227
- [data-component~="ui-list"][data-ui-list-state~="as=ol"],
228
- [data-component~="ui-list"][data-ui-list-state~="markers=disc"] {
229
- padding-inline-start: var(--ui-space-5);
230
- }
170
+ /* Compact passes its size to the items through private properties, which cross into each item. */
231
171
 
232
- [data-component~="ui-list"][data-ui-list-state~="as=ol"] {
233
- list-style: decimal;
234
- }
172
+ /* A component that sets its display still honours the hidden attribute on its root. */
235
173
 
236
- [data-component~="ui-list"][data-ui-list-state~="markers=disc"] {
237
- list-style: disc;
238
- }
174
+ @scope (.ui-list) {
175
+ :scope:where(:scope) {
176
+ --_list-gap: var(--ui-list-gap, var(--ui-space-1));
177
+ --_list-min-item-width: var(--ui-list-min-item-width, 14rem);
178
+ display: flex;
179
+ flex-direction: column;
180
+ inline-size: 100%;
181
+ gap: var(--_list-gap);
182
+ min-inline-size: 0;
183
+ margin: 0;
184
+ padding: 0;
185
+ list-style: none;
186
+ }
239
187
 
240
- [data-component~="ui-list"] > :slotted(li) {
241
- box-sizing: border-box;
242
- min-inline-size: 0;
243
- padding: var(--_ui-list-native-padding-block, var(--ui-space-2))
244
- var(--_ui-list-native-padding-inline, var(--ui-space-3));
245
- border-radius: var(--ui-radius-md);
246
- color: var(--ui-text-primary);
247
- list-style: inherit;
248
- }
188
+ :scope:where(:scope):is([data-ui-list-state~="as=ol"]),
189
+ :scope:where(:scope):is([data-ui-list-state~="markers=disc"]) {
190
+ padding-inline-start: var(--ui-space-5);
191
+ }
249
192
 
250
- [data-component~="ui-list"] > :slotted(li.card) {
251
- padding: var(--_ui-list-native-padding-block, var(--ui-space-3))
252
- var(--_ui-list-native-padding-inline, var(--ui-space-4));
253
- border: var(--ui-border-width) solid var(--ui-border-strong);
254
- border-radius: var(--ui-radius-lg);
255
- background: var(--ui-surface-raised);
256
- list-style: none;
257
- }
193
+ :scope:where(:scope):is([data-ui-list-state~="as=ol"]) {
194
+ list-style: decimal;
195
+ }
258
196
 
259
- /* Compact passes its size to the items through private properties, which cross into each item. */
260
- [data-component~="ui-list"][data-ui-list-state~="density=compact"] {
261
- --_list-gap: var(--ui-list-gap, var(--ui-space-2));
262
- --_ui-list-item-min-size: 0;
263
- --_ui-list-item-padding-block: 0;
264
- --_ui-list-item-padding-inline: 0;
265
- --_ui-list-item-title-weight: var(--ui-font-normal);
266
- --_ui-list-native-padding-block: 0;
267
- --_ui-list-native-padding-inline: 0;
268
- }
197
+ :scope:where(:scope):is([data-ui-list-state~="markers=disc"]) {
198
+ list-style: disc;
199
+ }
269
200
 
270
- [data-component~="ui-list"][data-ui-list-state~="layout=grid"] {
271
- --_list-gap: var(--ui-list-gap, var(--ui-space-3));
272
- display: grid;
273
- grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--_list-min-item-width)), 1fr));
274
- }
201
+ :scope > :slotted(li) {
202
+ box-sizing: border-box;
203
+ min-inline-size: 0;
204
+ padding: var(--_ui-list-native-padding-block, var(--ui-space-2))
205
+ var(--_ui-list-native-padding-inline, var(--ui-space-3));
206
+ border-radius: var(--ui-radius-md);
207
+ color: var(--ui-text-primary);
208
+ list-style: inherit;
209
+ }
275
210
 
276
- /* A component that sets its display still honours the hidden attribute on its root. */
277
- [data-component~="ui-list"][hidden] {
278
- display: none;
211
+ :scope > :slotted(li.card) {
212
+ padding: var(--_ui-list-native-padding-block, var(--ui-space-3))
213
+ var(--_ui-list-native-padding-inline, var(--ui-space-4));
214
+ border: var(--ui-border-width) solid var(--ui-border-strong);
215
+ border-radius: var(--ui-radius-lg);
216
+ background: var(--ui-surface-raised);
217
+ list-style: none;
218
+ }
219
+ :scope:where(:scope):is([data-ui-list-state~="density=compact"]) {
220
+ --_list-gap: var(--ui-list-gap, var(--ui-space-2));
221
+ --_ui-list-item-min-size: 0;
222
+ --_ui-list-item-padding-block: 0;
223
+ --_ui-list-item-padding-inline: 0;
224
+ --_ui-list-item-title-weight: var(--ui-font-normal);
225
+ --_ui-list-native-padding-block: 0;
226
+ --_ui-list-native-padding-inline: 0;
227
+ }
228
+
229
+ :scope:where(:scope):is([data-ui-list-state~="layout=grid"]) {
230
+ --_list-gap: var(--ui-list-gap, var(--ui-space-3));
231
+ display: grid;
232
+ grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--_list-min-item-width)), 1fr));
233
+ }
234
+ :scope:where(:scope):is([hidden]) {
235
+ display: none;
236
+ }
279
237
  }
280
238
  </style>
@@ -1,7 +1,8 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
- import { computed, getCurrentInstance, watchSyncEffect } from 'vue'
3
+ import { computed, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
5
+ import { checkHydratedRoot, nativeAttrs, useReflectedProp } from './host'
5
6
  import { checkedProp, vPropValidity } from './props'
6
7
 
7
8
  defineOptions({ inheritAttrs: false })
@@ -124,56 +125,9 @@ void checkedProps.value
124
125
  watchSyncEffect(() => {
125
126
  void checkedProps.value
126
127
  })
127
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
128
- const names = Object.keys(attrs)
129
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
130
- return Object.fromEntries(names.map((name) => [
131
- Object.hasOwn(Object.prototype, name)
132
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
133
- : name,
134
- attrs[name],
135
- ]))
136
- }
137
- const componentInstance = getCurrentInstance()
138
- function reflectedProp(
139
- name: string,
140
- kebab: string,
141
- value: unknown,
142
- fallback: string | undefined,
143
- bound: boolean,
144
- separator?: string,
145
- ): string | undefined {
146
- const incoming = componentInstance?.vnode.props
147
- if (
148
- !bound
149
- && (incoming === null || incoming === undefined
150
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
151
- ) return fallback
152
- if (value === null || value === undefined) return undefined
153
- return Array.isArray(value) && separator !== undefined
154
- ? value.join(separator)
155
- : typeof value === 'object'
156
- ? JSON.stringify(value)
157
- : String(value)
158
- }
159
- const hydrationInstance = getCurrentInstance()
160
-
161
- const hydrationNode = hydrationInstance?.vnode.el
162
- if (
163
- typeof window !== 'undefined' && hydrationNode != null
164
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('li'))
165
- ) {
166
- throw Object.assign(
167
- new Error('HR005: Server markup for <ui-list-item> has an incompatible root.'),
168
- {
169
- name: 'HtmlDiagnosticError',
170
- diagnostic: Object.freeze({
171
- code: 'HR005',
172
- message: 'Server markup for <ui-list-item> has an incompatible root.',
173
- }),
174
- },
175
- )
176
- }
128
+ const reflectedProp = useReflectedProp()
129
+
130
+ checkHydratedRoot('li', 'ui-list-item')
177
131
 
178
132
  /** The values the styles' :host-state() rules test. */
179
133
  const hostState = computed(() =>
@@ -193,7 +147,7 @@ const hostState = computed(() =>
193
147
 
194
148
  <template>
195
149
  <li
196
- data-component="ui-list-item"
150
+ class="ui-list-item"
197
151
  v-bind="nativeAttrs($attrs)"
198
152
  :aria-current="checkedProps.current ?? undefined"
199
153
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
@@ -246,179 +200,178 @@ const hostState = computed(() =>
246
200
  padding follow it too, and the item takes the link's focus ring. The link stays a real link, so
247
201
  a router, a modified click, and "open in new tab" all work. Trailing controls sit above it and
248
202
  stay their own. */
249
- [data-component~="ui-list-item"] {
250
- /* Hooks do not inherit, so the parts below read them from the root. */
251
- --_ui-list-item-icon-size: var(--ui-list-item-icon-size);
252
-
253
- position: relative;
254
- box-sizing: border-box;
255
- display: flex;
256
- align-items: center;
257
- gap: var(--ui-list-item-gap, var(--ui-space-3));
258
- min-inline-size: 0;
259
- min-block-size: var(--_ui-list-item-min-size, var(--ui-control-size, 2.5rem));
260
- padding-block: var(
261
- --ui-list-item-padding-block,
262
- var(--_ui-list-item-padding-block, var(--ui-space-2))
263
- );
264
- padding-inline: var(
265
- --ui-list-item-padding-inline,
266
- var(--_ui-list-item-padding-inline, var(--ui-space-3))
267
- );
268
- border-radius: var(--ui-selection-radius);
269
- color: var(--ui-text-primary);
270
- transition:
271
- background-color var(--ui-motion-fast) var(--ui-motion-ease),
272
- border-color var(--ui-motion-fast) var(--ui-motion-ease);
273
- }
274
203
 
275
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"] {
276
- padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
277
- padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
278
- border: var(--ui-border-width) solid var(--ui-border-strong);
279
- border-radius: var(--ui-radius-lg);
280
- background: var(--ui-surface-raised);
281
- }
204
+ /* Framed cards already have their own edge; the stronger focus ring stays separate. */
282
205
 
283
- [data-component~="ui-list-item"]:where(:has(.title a[href])):hover,
284
- [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"],
285
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"] {
286
- background: var(--_ui-selection-context-surface, var(--ui-selection-surface));
287
- box-shadow: inset 0 0 0 var(--ui-border-width)
288
- var(--_ui-selection-context-border, var(--ui-selection-border));
289
- }
206
+ /* An explicitly independent leading control sits above the stretched row link. */
290
207
 
291
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"]:where(:has(.title
292
- a[href])):hover {
293
- border-color: var(--ui-border-strong);
294
- }
208
+ /* Trailing controls take their own clicks, above the title link's stretched hit area. */
295
209
 
296
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"] {
297
- color: var(--_ui-selection-context-text, var(--ui-selection-text));
298
- }
210
+ /* Keep identity and disclosure marks beside the first line, even with a long description. */
299
211
 
300
- /* Framed cards already have their own edge; the stronger focus ring stays separate. */
301
- [data-component~="ui-list-item"][data-ui-list-item-state~="variant=card"] {
302
- box-shadow: none;
303
- }
212
+ /* An unused region takes no space. */
304
213
 
305
- [data-component~="ui-list-item"]:has(.title a[href]:focus-visible) {
306
- box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
307
- }
214
+ /* A component that sets its display still honours the hidden attribute on its root. */
308
215
 
309
- .leading,
310
- .trailing {
311
- display: inline-flex;
312
- flex: none;
313
- align-items: center;
314
- gap: var(--ui-space-2);
315
- }
216
+ @scope (.ui-list-item) {
217
+ :scope:where(:scope) {
218
+ /* Hooks do not inherit, so the parts below read them from the root. */
219
+ --_ui-list-item-icon-size: var(--ui-list-item-icon-size);
220
+
221
+ position: relative;
222
+ box-sizing: border-box;
223
+ display: flex;
224
+ align-items: center;
225
+ gap: var(--ui-list-item-gap, var(--ui-space-3));
226
+ min-inline-size: 0;
227
+ min-block-size: var(--_ui-list-item-min-size, var(--ui-control-size, 2.5rem));
228
+ padding-block: var(
229
+ --ui-list-item-padding-block,
230
+ var(--_ui-list-item-padding-block, var(--ui-space-2))
231
+ );
232
+ padding-inline: var(
233
+ --ui-list-item-padding-inline,
234
+ var(--_ui-list-item-padding-inline, var(--ui-space-3))
235
+ );
236
+ border-radius: var(--ui-selection-radius);
237
+ color: var(--ui-text-primary);
238
+ transition:
239
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
240
+ border-color var(--ui-motion-fast) var(--ui-motion-ease);
241
+ }
316
242
 
317
- .leading {
318
- color: var(--ui-text-muted);
319
- font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
320
- }
243
+ :scope:where(:scope):is([data-ui-list-item-state~="variant=card"]) {
244
+ padding-block: var(--ui-list-item-padding-block, var(--ui-space-3));
245
+ padding-inline: var(--ui-list-item-padding-inline, var(--ui-space-4));
246
+ border: var(--ui-border-width) solid var(--ui-border-strong);
247
+ border-radius: var(--ui-radius-lg);
248
+ background: var(--ui-surface-raised);
249
+ }
321
250
 
322
- [data-component~="ui-list-item"][data-ui-list-item-state~="current"] .leading {
323
- color: var(--_ui-selection-context-text, var(--ui-selection-text));
324
- }
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"]) {
254
+ background: var(--_ui-selection-context-surface, var(--ui-selection-surface));
255
+ box-shadow: inset 0 0 0 var(--ui-border-width)
256
+ var(--_ui-selection-context-border, var(--ui-selection-border));
257
+ }
325
258
 
326
- /* An explicitly independent leading control sits above the stretched row link. */
327
- [data-component~="ui-list-item"][data-ui-list-item-state~="leadingInteractive"] .leading {
328
- position: relative;
329
- z-index: 1;
330
- }
259
+ :scope:where(:scope):is([data-ui-list-item-state~="variant=card"]:where(:has(.title
260
+ a[href])):hover) {
261
+ border-color: var(--ui-border-strong);
262
+ }
331
263
 
332
- /* Trailing controls take their own clicks, above the title link's stretched hit area. */
333
- .trailing {
334
- position: relative;
335
- z-index: 1;
336
- color: var(--ui-text-muted);
337
- font-size: var(--ui-font-size-sm);
338
- }
264
+ :scope:where(:scope):is([data-ui-list-item-state~="current"]) {
265
+ color: var(--_ui-selection-context-text, var(--ui-selection-text));
266
+ }
267
+ :scope:where(:scope):is([data-ui-list-item-state~="variant=card"]) {
268
+ box-shadow: none;
269
+ }
339
270
 
340
- .content {
341
- display: flex;
342
- flex: 1;
343
- flex-direction: column;
344
- gap: var(--ui-space-0-5, 2px);
345
- min-inline-size: 0;
346
- }
271
+ :scope:where(:scope):is(:has(.title a[href]:focus-visible)) {
272
+ box-shadow: 0 0 0 var(--ui-focus-width) var(--ui-focus-ring);
273
+ }
347
274
 
348
- .title,
349
- .description {
350
- display: block;
351
- min-inline-size: 0;
352
- overflow: hidden;
353
- text-overflow: ellipsis;
354
- white-space: nowrap;
355
- }
275
+ .leading, .trailing {
276
+ display: inline-flex;
277
+ flex: none;
278
+ align-items: center;
279
+ gap: var(--ui-space-2);
280
+ }
356
281
 
357
- [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .title,
358
- [data-component~="ui-list-item"][data-ui-list-item-state~="wrap"] .description {
359
- white-space: normal;
360
- overflow-wrap: anywhere;
361
- }
282
+ .leading {
283
+ color: var(--ui-text-muted);
284
+ font-size: var(--_ui-list-item-icon-size, var(--ui-font-size-lg));
285
+ }
362
286
 
363
- .title {
364
- font-size: var(--ui-font-size-md);
365
- font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
366
- line-height: var(--ui-line-height-tight);
367
- }
287
+ :scope[data-ui-list-item-state~="current"] .leading {
288
+ color: var(--_ui-selection-context-text, var(--ui-selection-text));
289
+ }
290
+ :scope[data-ui-list-item-state~="leadingInteractive"] .leading {
291
+ position: relative;
292
+ z-index: 1;
293
+ }
294
+ .trailing {
295
+ position: relative;
296
+ z-index: 1;
297
+ color: var(--ui-text-muted);
298
+ font-size: var(--ui-font-size-sm);
299
+ }
368
300
 
369
- /* Keep identity and disclosure marks beside the first line, even with a long description. */
370
- [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] {
371
- align-items: flex-start;
372
- }
301
+ .content {
302
+ display: flex;
303
+ flex: 1;
304
+ flex-direction: column;
305
+ gap: var(--ui-space-0-5, 2px);
306
+ min-inline-size: 0;
307
+ }
373
308
 
374
- [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] .leading,
375
- [data-component~="ui-list-item"][data-ui-list-item-state~="align=title"] .trailing {
376
- min-block-size: calc(var(--ui-font-size-md) * var(--ui-line-height-tight));
377
- }
309
+ .title, .description {
310
+ display: block;
311
+ min-inline-size: 0;
312
+ overflow: hidden;
313
+ text-overflow: ellipsis;
314
+ white-space: nowrap;
315
+ }
378
316
 
379
- .description {
380
- color: var(--ui-text-muted);
381
- font-size: var(--ui-font-size-sm);
382
- line-height: var(--ui-line-height-tight);
383
- }
317
+ :scope[data-ui-list-item-state~="wrap"] .title,
318
+ :scope[data-ui-list-item-state~="wrap"] .description {
319
+ white-space: normal;
320
+ overflow-wrap: anywhere;
321
+ }
384
322
 
385
- .title > :slotted(a) {
386
- color: inherit;
387
- text-decoration: none;
388
- }
323
+ .title {
324
+ font-size: var(--ui-font-size-md);
325
+ font-weight: var(--_ui-list-item-title-weight, var(--ui-font-medium));
326
+ line-height: var(--ui-line-height-tight);
327
+ }
328
+ :scope:where(:scope):is([data-ui-list-item-state~="align=title"]) {
329
+ align-items: flex-start;
330
+ }
389
331
 
390
- .title > :slotted(a:focus-visible) {
391
- outline: none;
392
- box-shadow: none;
393
- }
332
+ :scope[data-ui-list-item-state~="align=title"] .leading,
333
+ :scope[data-ui-list-item-state~="align=title"] .trailing {
334
+ min-block-size: calc(var(--ui-font-size-md) * var(--ui-line-height-tight));
335
+ }
394
336
 
395
- .title > :slotted(a[href])::after {
396
- position: absolute;
397
- inset: 0;
398
- border-radius: inherit;
399
- content: "";
400
- }
337
+ .description {
338
+ color: var(--ui-text-muted);
339
+ font-size: var(--ui-font-size-sm);
340
+ line-height: var(--ui-line-height-tight);
341
+ }
401
342
 
402
- /* An unused region takes no space. */
403
- .leading:empty,
404
- .description:empty,
405
- .trailing:empty {
406
- display: none;
407
- }
343
+ .title > :slotted(a) {
344
+ color: inherit;
345
+ text-decoration: none;
346
+ }
408
347
 
409
- @media (forced-colors: active) {
410
- [data-component~="ui-list-item"]:has(a:focus-visible) {
411
- outline: var(--ui-focus-width) solid Highlight;
412
- outline-offset: calc(-1 * var(--ui-focus-width));
348
+ .title > :slotted(a:focus-visible) {
349
+ outline: none;
350
+ box-shadow: none;
413
351
  }
414
- :is([data-component~="ui-list-item"][data-ui-list-item-state~="current"], [data-component~="ui-list-item"][data-ui-list-item-state~="highlighted"]):not(:has(a:focus-visible)) {
415
- outline: var(--ui-border-width) solid Highlight;
416
- outline-offset: calc(-1 * var(--ui-border-width));
352
+
353
+ .title > :slotted(a[href])::after {
354
+ position: absolute;
355
+ inset: 0;
356
+ border-radius: inherit;
357
+ content: "";
358
+ }
359
+ .leading:empty, .description:empty, .trailing:empty {
360
+ display: none;
417
361
  }
418
- }
419
362
 
420
- /* A component that sets its display still honours the hidden attribute on its root. */
421
- [data-component~="ui-list-item"][hidden] {
422
- display: none;
363
+ @media (forced-colors: active) {
364
+ :scope:where(:scope):is(:has(a:focus-visible)) {
365
+ outline: var(--ui-focus-width) solid Highlight;
366
+ outline-offset: calc(-1 * var(--ui-focus-width));
367
+ }
368
+ :is(:scope[data-ui-list-item-state~="current"], :scope[data-ui-list-item-state~="highlighted"]):not(:has(a:focus-visible)) {
369
+ outline: var(--ui-border-width) solid Highlight;
370
+ outline-offset: calc(-1 * var(--ui-border-width));
371
+ }
372
+ }
373
+ :scope:where(:scope):is([hidden]) {
374
+ display: none;
375
+ }
423
376
  }
424
377
  </style>
@@ -1,7 +1,9 @@
1
1
  import type { PropType } from 'vue';
2
- declare const _default: typeof __VLS_export;
3
- export default _default;
4
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ declare var __VLS_15: {};
3
+ type __VLS_Slots = {} & {
4
+ default?: (props: typeof __VLS_15) => any;
5
+ };
6
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
7
  disabled: {
6
8
  type: PropType<boolean | null>;
7
9
  default: boolean;
@@ -87,14 +89,15 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<import
87
89
  values: readonly string[] | null;
88
90
  name: string | null;
89
91
  value: string | null;
92
+ required: boolean | null;
90
93
  invalid: boolean | null;
91
94
  rows: number | null;
92
95
  disabled: boolean | null;
93
96
  multiple: boolean | null;
94
- required: boolean | null;
95
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
96
- default?: (props: {}) => any;
97
- }>;
97
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
98
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
99
+ declare const _default: typeof __VLS_export;
100
+ export default _default;
98
101
  type __VLS_WithSlots<T, S> = T & {
99
102
  new (): {
100
103
  $slots: S;