@threadlabs/looma 0.28.4 → 0.28.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +96 -0
  2. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +56 -0
  3. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  4. package/dist/index.js +34 -33
  5. package/package.json +3 -2
  6. package/styles/ui-action-bar.css +13 -6
  7. package/styles/ui-affordance-scope.css +12 -5
  8. package/styles/ui-avatar-group.css +17 -10
  9. package/styles/ui-avatar.css +23 -16
  10. package/styles/ui-badge.css +78 -71
  11. package/styles/ui-breadcrumb-item.css +12 -5
  12. package/styles/ui-breadcrumbs.css +10 -3
  13. package/styles/ui-button.css +79 -72
  14. package/styles/ui-callout.css +29 -22
  15. package/styles/ui-card.css +25 -18
  16. package/styles/ui-checkbox.css +45 -37
  17. package/styles/ui-cluster.css +34 -27
  18. package/styles/ui-combobox.css +46 -39
  19. package/styles/ui-container.css +20 -13
  20. package/styles/ui-context-menu.css +17 -10
  21. package/styles/ui-cover.css +12 -5
  22. package/styles/ui-description-item.css +10 -3
  23. package/styles/ui-description-list.css +20 -13
  24. package/styles/ui-dialog.css +44 -35
  25. package/styles/ui-disclosure.css +32 -25
  26. package/styles/ui-editable.css +15 -8
  27. package/styles/ui-editor-image-toolbar.css +1 -0
  28. package/styles/ui-editor-insert-table-grid.css +11 -4
  29. package/styles/ui-editor-mention-menu-item.css +17 -8
  30. package/styles/ui-editor-mention-menu.css +14 -7
  31. package/styles/ui-editor-slash-menu-group.css +10 -3
  32. package/styles/ui-editor-slash-menu-item.css +15 -8
  33. package/styles/ui-editor-slash-menu.css +15 -8
  34. package/styles/ui-editor-surface.css +10 -3
  35. package/styles/ui-editor-table-context-menu.css +17 -10
  36. package/styles/ui-editor-table-overlay.css +17 -10
  37. package/styles/ui-editor-table-toolbar.css +22 -15
  38. package/styles/ui-editor-toolbar.css +18 -11
  39. package/styles/ui-floating-action-button.css +21 -14
  40. package/styles/ui-form-field.css +20 -13
  41. package/styles/ui-grid.css +21 -14
  42. package/styles/ui-icon-button.css +80 -73
  43. package/styles/ui-icon.css +14 -7
  44. package/styles/ui-image.css +25 -18
  45. package/styles/ui-input-group.css +34 -27
  46. package/styles/ui-input.css +42 -35
  47. package/styles/ui-list-item.css +33 -26
  48. package/styles/ui-list.css +22 -15
  49. package/styles/ui-listbox.css +22 -14
  50. package/styles/ui-menu-group.css +10 -3
  51. package/styles/ui-menu-item.css +29 -22
  52. package/styles/ui-menu.css +25 -18
  53. package/styles/ui-meter.css +36 -29
  54. package/styles/ui-nav-item.css +26 -19
  55. package/styles/ui-page-header.css +12 -5
  56. package/styles/ui-popover.css +27 -20
  57. package/styles/ui-radio-group.css +14 -6
  58. package/styles/ui-radio.css +24 -17
  59. package/styles/ui-reel.css +28 -21
  60. package/styles/ui-scroll-area.css +22 -15
  61. package/styles/ui-search-result-row.css +28 -21
  62. package/styles/ui-search-shell.css +24 -17
  63. package/styles/ui-section.css +14 -7
  64. package/styles/ui-select.css +33 -26
  65. package/styles/ui-separator.css +17 -10
  66. package/styles/ui-sidebar.css +35 -28
  67. package/styles/ui-spinner.css +32 -23
  68. package/styles/ui-stack.css +29 -21
  69. package/styles/ui-status-message.css +14 -7
  70. package/styles/ui-switch.css +29 -22
  71. package/styles/ui-switcher.css +27 -20
  72. package/styles/ui-table.css +14 -7
  73. package/styles/ui-tabs.css +24 -17
  74. package/styles/ui-text.css +35 -28
  75. package/styles/ui-textarea.css +37 -30
  76. package/styles/ui-toast-region.css +74 -63
  77. package/styles/ui-toast.css +21 -14
  78. package/styles/ui-tooltip.css +38 -31
  79. package/styles/ui-top-bar.css +19 -12
  80. package/styles/ui-tree-item.css +79 -71
  81. package/styles/ui-tree.css +18 -11
  82. package/vanilla/UiActionBar.d.ts +1 -1
  83. package/vanilla/UiActionBar.js +1 -1
  84. package/vanilla/UiAffordanceScope.d.ts +1 -1
  85. package/vanilla/UiAffordanceScope.js +1 -1
  86. package/vanilla/UiAvatar.d.ts +1 -1
  87. package/vanilla/UiAvatar.js +1 -1
  88. package/vanilla/UiAvatarGroup.d.ts +1 -1
  89. package/vanilla/UiAvatarGroup.js +1 -1
  90. package/vanilla/UiBadge.d.ts +1 -1
  91. package/vanilla/UiBadge.js +1 -1
  92. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  93. package/vanilla/UiBreadcrumbItem.js +1 -1
  94. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  95. package/vanilla/UiBreadcrumbs.js +1 -1
  96. package/vanilla/UiButton.d.ts +1 -1
  97. package/vanilla/UiButton.js +19 -57
  98. package/vanilla/UiCallout.d.ts +1 -1
  99. package/vanilla/UiCallout.js +25 -73
  100. package/vanilla/UiCard.d.ts +1 -1
  101. package/vanilla/UiCard.js +1 -1
  102. package/vanilla/UiCheckbox.d.ts +1 -1
  103. package/vanilla/UiCheckbox.js +1 -1
  104. package/vanilla/UiCluster.d.ts +1 -1
  105. package/vanilla/UiCluster.js +1 -1
  106. package/vanilla/UiCombobox.d.ts +1 -1
  107. package/vanilla/UiCombobox.js +60 -166
  108. package/vanilla/UiContainer.d.ts +1 -1
  109. package/vanilla/UiContainer.js +1 -1
  110. package/vanilla/UiContextMenu.d.ts +1 -1
  111. package/vanilla/UiContextMenu.js +1 -1
  112. package/vanilla/UiCover.d.ts +1 -1
  113. package/vanilla/UiCover.js +1 -1
  114. package/vanilla/UiDescriptionItem.d.ts +1 -1
  115. package/vanilla/UiDescriptionItem.js +1 -1
  116. package/vanilla/UiDescriptionList.d.ts +1 -1
  117. package/vanilla/UiDescriptionList.js +1 -1
  118. package/vanilla/UiDialog.d.ts +1 -1
  119. package/vanilla/UiDialog.js +4 -10
  120. package/vanilla/UiDisclosure.d.ts +1 -1
  121. package/vanilla/UiDisclosure.js +1 -1
  122. package/vanilla/UiEditable.d.ts +1 -1
  123. package/vanilla/UiEditable.js +7 -19
  124. package/vanilla/UiEditorImageToolbar.d.ts +19 -0
  125. package/vanilla/UiEditorImageToolbar.js +171 -0
  126. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  127. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  128. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  129. package/vanilla/UiEditorMentionMenu.js +17 -37
  130. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  131. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  132. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenu.js +5 -4
  134. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  135. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  136. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  137. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  138. package/vanilla/UiEditorSurface.d.ts +1 -1
  139. package/vanilla/UiEditorSurface.js +1 -1
  140. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  141. package/vanilla/UiEditorTableContextMenu.js +6 -14
  142. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  143. package/vanilla/UiEditorTableOverlay.js +9 -25
  144. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorTableToolbar.js +25 -77
  146. package/vanilla/UiEditorToolbar.d.ts +1 -1
  147. package/vanilla/UiEditorToolbar.js +1 -1
  148. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  149. package/vanilla/UiFloatingActionButton.js +1 -1
  150. package/vanilla/UiFormField.d.ts +1 -1
  151. package/vanilla/UiFormField.js +1 -1
  152. package/vanilla/UiGrid.d.ts +1 -1
  153. package/vanilla/UiGrid.js +1 -1
  154. package/vanilla/UiIcon.d.ts +1 -1
  155. package/vanilla/UiIcon.js +15 -47
  156. package/vanilla/UiIconButton.d.ts +1 -1
  157. package/vanilla/UiIconButton.js +4 -10
  158. package/vanilla/UiImage.d.ts +1 -1
  159. package/vanilla/UiImage.js +1 -1
  160. package/vanilla/UiInput.d.ts +1 -1
  161. package/vanilla/UiInput.js +1 -1
  162. package/vanilla/UiInputGroup.d.ts +1 -1
  163. package/vanilla/UiInputGroup.js +1 -1
  164. package/vanilla/UiList.d.ts +1 -1
  165. package/vanilla/UiList.js +1 -1
  166. package/vanilla/UiListItem.d.ts +1 -1
  167. package/vanilla/UiListItem.js +1 -1
  168. package/vanilla/UiListbox.d.ts +1 -1
  169. package/vanilla/UiListbox.js +4 -10
  170. package/vanilla/UiMenu.d.ts +1 -1
  171. package/vanilla/UiMenu.js +1 -1
  172. package/vanilla/UiMenuGroup.d.ts +1 -1
  173. package/vanilla/UiMenuGroup.js +4 -10
  174. package/vanilla/UiMenuItem.d.ts +1 -1
  175. package/vanilla/UiMenuItem.js +4 -10
  176. package/vanilla/UiMeter.d.ts +1 -1
  177. package/vanilla/UiMeter.js +13 -33
  178. package/vanilla/UiNavItem.d.ts +1 -1
  179. package/vanilla/UiNavItem.js +1 -1
  180. package/vanilla/UiPageHeader.d.ts +1 -1
  181. package/vanilla/UiPageHeader.js +1 -1
  182. package/vanilla/UiPopover.d.ts +1 -1
  183. package/vanilla/UiPopover.js +1 -1
  184. package/vanilla/UiRadio.d.ts +1 -1
  185. package/vanilla/UiRadio.js +1 -1
  186. package/vanilla/UiRadioGroup.d.ts +1 -1
  187. package/vanilla/UiRadioGroup.js +1 -1
  188. package/vanilla/UiReel.d.ts +1 -1
  189. package/vanilla/UiReel.js +1 -1
  190. package/vanilla/UiScrollArea.d.ts +1 -1
  191. package/vanilla/UiScrollArea.js +1 -1
  192. package/vanilla/UiSearchResultRow.d.ts +1 -1
  193. package/vanilla/UiSearchResultRow.js +1 -1
  194. package/vanilla/UiSearchShell.d.ts +1 -1
  195. package/vanilla/UiSearchShell.js +1 -1
  196. package/vanilla/UiSection.d.ts +1 -1
  197. package/vanilla/UiSection.js +1 -1
  198. package/vanilla/UiSelect.d.ts +1 -1
  199. package/vanilla/UiSelect.js +1 -1
  200. package/vanilla/UiSeparator.d.ts +1 -1
  201. package/vanilla/UiSeparator.js +1 -1
  202. package/vanilla/UiSidebar.d.ts +1 -1
  203. package/vanilla/UiSidebar.js +1 -1
  204. package/vanilla/UiSpinner.d.ts +1 -1
  205. package/vanilla/UiSpinner.js +1 -1
  206. package/vanilla/UiStack.d.ts +1 -1
  207. package/vanilla/UiStack.js +1 -1
  208. package/vanilla/UiStatusMessage.d.ts +1 -1
  209. package/vanilla/UiStatusMessage.js +1 -1
  210. package/vanilla/UiSwitch.d.ts +1 -1
  211. package/vanilla/UiSwitch.js +1 -1
  212. package/vanilla/UiSwitcher.d.ts +1 -1
  213. package/vanilla/UiSwitcher.js +1 -1
  214. package/vanilla/UiTable.d.ts +1 -1
  215. package/vanilla/UiTable.js +1 -1
  216. package/vanilla/UiTabs.d.ts +1 -1
  217. package/vanilla/UiTabs.js +1 -1
  218. package/vanilla/UiText.d.ts +1 -1
  219. package/vanilla/UiText.js +1 -1
  220. package/vanilla/UiTextarea.d.ts +1 -1
  221. package/vanilla/UiTextarea.js +1 -1
  222. package/vanilla/UiToast.d.ts +1 -1
  223. package/vanilla/UiToast.js +1 -1
  224. package/vanilla/UiToastRegion.d.ts +1 -1
  225. package/vanilla/UiToastRegion.js +1 -1
  226. package/vanilla/UiTooltip.d.ts +1 -1
  227. package/vanilla/UiTooltip.js +1 -1
  228. package/vanilla/UiTopBar.d.ts +1 -1
  229. package/vanilla/UiTopBar.js +1 -1
  230. package/vanilla/UiTree.d.ts +1 -1
  231. package/vanilla/UiTree.js +1 -1
  232. package/vanilla/UiTreeItem.d.ts +1 -1
  233. package/vanilla/UiTreeItem.js +7 -19
  234. package/vanilla/index.js +1 -0
  235. package/vue/UiActionBar.vue +46 -78
  236. package/vue/UiAffordanceScope.vue +27 -66
  237. package/vue/UiAvatar.d.ts +10 -7
  238. package/vue/UiAvatar.vue +100 -218
  239. package/vue/UiAvatarGroup.d.ts +10 -7
  240. package/vue/UiAvatarGroup.vue +78 -160
  241. package/vue/UiBadge.d.ts +1 -1
  242. package/vue/UiBadge.vue +483 -520
  243. package/vue/UiBreadcrumbItem.vue +52 -123
  244. package/vue/UiBreadcrumbs.vue +27 -70
  245. package/vue/UiButton.d.ts +2 -2
  246. package/vue/UiButton.vue +420 -471
  247. package/vue/UiCallout.vue +131 -175
  248. package/vue/UiCard.d.ts +1 -1
  249. package/vue/UiCard.vue +112 -151
  250. package/vue/UiCheckbox.d.ts +13 -10
  251. package/vue/UiCheckbox.vue +160 -221
  252. package/vue/UiCluster.d.ts +1 -1
  253. package/vue/UiCluster.vue +84 -128
  254. package/vue/UiCombobox.d.ts +71 -68
  255. package/vue/UiCombobox.vue +417 -743
  256. package/vue/UiContainer.vue +43 -87
  257. package/vue/UiContextMenu.d.ts +6 -6
  258. package/vue/UiContextMenu.vue +78 -117
  259. package/vue/UiCover.vue +29 -69
  260. package/vue/UiDescriptionItem.vue +39 -82
  261. package/vue/UiDescriptionList.vue +64 -107
  262. package/vue/UiDialog.d.ts +22 -19
  263. package/vue/UiDialog.vue +193 -246
  264. package/vue/UiDisclosure.d.ts +22 -19
  265. package/vue/UiDisclosure.vue +192 -283
  266. package/vue/UiEditable.d.ts +5 -5
  267. package/vue/UiEditable.vue +124 -207
  268. package/vue/UiEditorImageToolbar.d.ts +54 -0
  269. package/vue/UiEditorImageToolbar.js +2 -0
  270. package/vue/UiEditorImageToolbar.vue +415 -0
  271. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  272. package/vue/UiEditorInsertTableGrid.vue +98 -266
  273. package/vue/UiEditorMentionMenu.d.ts +15 -12
  274. package/vue/UiEditorMentionMenu.vue +150 -239
  275. package/vue/UiEditorMentionMenuItem.vue +66 -110
  276. package/vue/UiEditorSlashMenu.d.ts +16 -13
  277. package/vue/UiEditorSlashMenu.vue +172 -253
  278. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  279. package/vue/UiEditorSlashMenuItem.vue +67 -115
  280. package/vue/UiEditorSurface.vue +19 -63
  281. package/vue/UiEditorTableContextMenu.vue +135 -269
  282. package/vue/UiEditorTableOverlay.d.ts +2 -2
  283. package/vue/UiEditorTableOverlay.vue +310 -479
  284. package/vue/UiEditorTableToolbar.d.ts +2 -2
  285. package/vue/UiEditorTableToolbar.vue +182 -357
  286. package/vue/UiEditorToolbar.vue +143 -183
  287. package/vue/UiFloatingActionButton.vue +70 -114
  288. package/vue/UiFormField.d.ts +1 -1
  289. package/vue/UiFormField.vue +76 -117
  290. package/vue/UiGrid.d.ts +1 -1
  291. package/vue/UiGrid.vue +65 -103
  292. package/vue/UiIcon.vue +32 -106
  293. package/vue/UiIconButton.d.ts +2 -2
  294. package/vue/UiIconButton.vue +359 -411
  295. package/vue/UiImage.vue +145 -180
  296. package/vue/UiInput.vue +158 -190
  297. package/vue/UiInputGroup.vue +199 -239
  298. package/vue/UiList.vue +67 -109
  299. package/vue/UiListItem.vue +154 -201
  300. package/vue/UiListbox.d.ts +10 -7
  301. package/vue/UiListbox.vue +86 -260
  302. package/vue/UiMenu.d.ts +11 -11
  303. package/vue/UiMenu.vue +118 -152
  304. package/vue/UiMenuGroup.vue +21 -67
  305. package/vue/UiMenuItem.d.ts +19 -16
  306. package/vue/UiMenuItem.vue +169 -262
  307. package/vue/UiMeter.d.ts +4 -4
  308. package/vue/UiMeter.vue +166 -680
  309. package/vue/UiNavItem.vue +140 -213
  310. package/vue/UiPageHeader.vue +81 -127
  311. package/vue/UiPopover.d.ts +7 -7
  312. package/vue/UiPopover.vue +90 -129
  313. package/vue/UiRadio.d.ts +12 -9
  314. package/vue/UiRadio.vue +91 -149
  315. package/vue/UiRadioGroup.d.ts +2 -2
  316. package/vue/UiRadioGroup.vue +47 -85
  317. package/vue/UiReel.vue +89 -130
  318. package/vue/UiScrollArea.d.ts +1 -1
  319. package/vue/UiScrollArea.vue +78 -119
  320. package/vue/UiSearchResultRow.vue +96 -149
  321. package/vue/UiSearchShell.d.ts +2 -2
  322. package/vue/UiSearchShell.vue +159 -196
  323. package/vue/UiSection.vue +105 -149
  324. package/vue/UiSelect.d.ts +1 -1
  325. package/vue/UiSelect.vue +114 -146
  326. package/vue/UiSeparator.vue +42 -85
  327. package/vue/UiSidebar.d.ts +10 -7
  328. package/vue/UiSidebar.vue +193 -260
  329. package/vue/UiSpinner.vue +54 -130
  330. package/vue/UiStack.vue +66 -107
  331. package/vue/UiStatusMessage.d.ts +1 -1
  332. package/vue/UiStatusMessage.vue +61 -135
  333. package/vue/UiSwitch.d.ts +12 -9
  334. package/vue/UiSwitch.vue +136 -194
  335. package/vue/UiSwitcher.vue +69 -107
  336. package/vue/UiTable.vue +121 -156
  337. package/vue/UiTabs.d.ts +1 -1
  338. package/vue/UiTabs.vue +139 -267
  339. package/vue/UiText.d.ts +4 -4
  340. package/vue/UiText.vue +145 -184
  341. package/vue/UiTextarea.d.ts +2 -2
  342. package/vue/UiTextarea.vue +162 -194
  343. package/vue/UiToast.vue +70 -118
  344. package/vue/UiToastRegion.vue +157 -276
  345. package/vue/UiTooltip.d.ts +21 -18
  346. package/vue/UiTooltip.vue +174 -234
  347. package/vue/UiTopBar.vue +48 -76
  348. package/vue/UiTree.vue +46 -79
  349. package/vue/UiTreeItem.d.ts +18 -15
  350. package/vue/UiTreeItem.vue +526 -668
  351. package/vue/chunks/UiActionBar.js +5 -17
  352. package/vue/chunks/UiAffordanceScope.js +7 -26
  353. package/vue/chunks/UiAvatar.js +20 -74
  354. package/vue/chunks/UiAvatarGroup.js +14 -56
  355. package/vue/chunks/UiBadge.js +10 -28
  356. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  357. package/vue/chunks/UiBreadcrumbs.js +7 -25
  358. package/vue/chunks/UiButton.js +80 -103
  359. package/vue/chunks/UiCallout.js +9 -27
  360. package/vue/chunks/UiCard.js +33 -53
  361. package/vue/chunks/UiCheckbox.js +14 -46
  362. package/vue/chunks/UiCluster.js +13 -31
  363. package/vue/chunks/UiCombobox.js +99 -237
  364. package/vue/chunks/UiContainer.js +9 -27
  365. package/vue/chunks/UiContextMenu.js +7 -26
  366. package/vue/chunks/UiCover.js +7 -25
  367. package/vue/chunks/UiDescriptionItem.js +6 -24
  368. package/vue/chunks/UiDescriptionList.js +9 -27
  369. package/vue/chunks/UiDialog.js +18 -47
  370. package/vue/chunks/UiDisclosure.js +19 -66
  371. package/vue/chunks/UiEditable.js +18 -60
  372. package/vue/chunks/UiEditorImageToolbar.js +515 -0
  373. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  374. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  375. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  376. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  377. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  378. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  379. package/vue/chunks/UiEditorSurface.js +7 -25
  380. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  381. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  382. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  383. package/vue/chunks/UiEditorToolbar.js +7 -26
  384. package/vue/chunks/UiFloatingActionButton.js +10 -28
  385. package/vue/chunks/UiFormField.js +8 -27
  386. package/vue/chunks/UiGrid.js +10 -28
  387. package/vue/chunks/UiIcon.js +21 -74
  388. package/vue/chunks/UiIconButton.js +18 -50
  389. package/vue/chunks/UiImage.js +14 -33
  390. package/vue/chunks/UiInput.js +12 -31
  391. package/vue/chunks/UiInputGroup.js +10 -29
  392. package/vue/chunks/UiList.js +17 -37
  393. package/vue/chunks/UiListItem.js +12 -30
  394. package/vue/chunks/UiListbox.js +22 -124
  395. package/vue/chunks/UiMenu.js +13 -32
  396. package/vue/chunks/UiMenuGroup.js +8 -26
  397. package/vue/chunks/UiMenuItem.js +35 -80
  398. package/vue/chunks/UiMeter.js +17 -351
  399. package/vue/chunks/UiNavItem.js +23 -57
  400. package/vue/chunks/UiPageHeader.js +7 -25
  401. package/vue/chunks/UiPopover.js +9 -28
  402. package/vue/chunks/UiRadio.js +11 -43
  403. package/vue/chunks/UiRadioGroup.js +13 -32
  404. package/vue/chunks/UiReel.js +10 -28
  405. package/vue/chunks/UiScrollArea.js +10 -29
  406. package/vue/chunks/UiSearchResultRow.js +10 -28
  407. package/vue/chunks/UiSearchShell.js +9 -28
  408. package/vue/chunks/UiSection.js +9 -27
  409. package/vue/chunks/UiSelect.js +10 -29
  410. package/vue/chunks/UiSeparator.js +10 -28
  411. package/vue/chunks/UiSidebar.js +15 -47
  412. package/vue/chunks/UiSpinner.js +8 -44
  413. package/vue/chunks/UiStack.js +12 -30
  414. package/vue/chunks/UiStatusMessage.js +10 -42
  415. package/vue/chunks/UiSwitch.js +11 -43
  416. package/vue/chunks/UiSwitcher.js +9 -28
  417. package/vue/chunks/UiTable.js +7 -26
  418. package/vue/chunks/UiTabs.js +15 -91
  419. package/vue/chunks/UiText.js +148 -168
  420. package/vue/chunks/UiTextarea.js +16 -35
  421. package/vue/chunks/UiToast.js +13 -37
  422. package/vue/chunks/UiToastRegion.js +16 -88
  423. package/vue/chunks/UiTooltip.js +14 -46
  424. package/vue/chunks/UiTopBar.js +5 -17
  425. package/vue/chunks/UiTree.js +13 -32
  426. package/vue/chunks/UiTreeItem.js +34 -90
  427. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  428. package/vue/chunks/control.js +3 -0
  429. package/vue/chunks/props.js +1 -1
  430. package/vue/components.css +7902 -7830
  431. package/vue/editor/index.js +42 -171
  432. package/vue/editor/primitives.d.ts +9 -1
  433. package/vue/host.ts +999 -14
  434. package/vue/index.d.ts +1 -0
  435. package/vue/index.js +9 -8
  436. package/vue/chunks/host.js +0 -443
  437. package/vue/editor/image-controls.d.ts +0 -19
@@ -1,8 +1,14 @@
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
3
  import { computed, getCurrentInstance, ref, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
5
- import { createDispatch, useComponentHost } from './host'
5
+ import {
6
+ checkHydratedRoot,
7
+ createDispatch,
8
+ nativeAttrs,
9
+ useComponentHost,
10
+ useReflectedProp,
11
+ } from './host'
6
12
  import { checkedProp, propValidityState, vPropValidity } from './props'
7
13
 
8
14
  defineOptions({ inheritAttrs: false })
@@ -111,57 +117,11 @@ void checkedProps.value
111
117
  watchSyncEffect(() => {
112
118
  void checkedProps.value
113
119
  })
114
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
115
- const names = Object.keys(attrs)
116
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
117
- return Object.fromEntries(names.map((name) => [
118
- Object.hasOwn(Object.prototype, name)
119
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
120
- : name,
121
- attrs[name],
122
- ]))
123
- }
124
- const componentInstance = getCurrentInstance()
125
- function reflectedProp(
126
- name: string,
127
- kebab: string,
128
- value: unknown,
129
- fallback: string | undefined,
130
- bound: boolean,
131
- separator?: string,
132
- ): string | undefined {
133
- const incoming = componentInstance?.vnode.props
134
- if (
135
- !bound
136
- && (incoming === null || incoming === undefined
137
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
138
- ) return fallback
139
- if (value === null || value === undefined) return undefined
140
- return Array.isArray(value) && separator !== undefined
141
- ? value.join(separator)
142
- : typeof value === 'object'
143
- ? JSON.stringify(value)
144
- : String(value)
145
- }
120
+ const reflectedProp = useReflectedProp()
146
121
  const hydrationInstance = getCurrentInstance()
147
122
 
148
123
  const root = ref<HTMLElement | null>(null)
149
- const hydrationNode = hydrationInstance?.vnode.el
150
- if (
151
- typeof window !== 'undefined' && hydrationNode != null
152
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
153
- ) {
154
- throw Object.assign(
155
- new Error('HR005: Server markup for <ui-input-group> has an incompatible root.'),
156
- {
157
- name: 'HtmlDiagnosticError',
158
- diagnostic: Object.freeze({
159
- code: 'HR005',
160
- message: 'Server markup for <ui-input-group> has an incompatible root.',
161
- }),
162
- },
163
- )
164
- }
124
+ checkHydratedRoot('div', 'ui-input-group')
165
125
 
166
126
  /** The values the styles' :host-state() rules test. */
167
127
  const hostState = computed(() =>
@@ -205,7 +165,7 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
205
165
 
206
166
  <template>
207
167
  <div
208
- data-component="ui-input-group"
168
+ class="ui-input-group"
209
169
  v-bind="nativeAttrs($attrs)"
210
170
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
211
171
  :data-action-position="reflectedProp('actionPosition', 'action-position', checkedProps.actionPosition, undefined, false)"
@@ -244,220 +204,220 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
244
204
  whole value is. The action slot takes one button at the end, inside the border, for the one
245
205
  thing the field is for ("Continue" after a site's address), so it reads as the field's action
246
206
  and not the form's. */
247
- [data-component~="ui-input-group"] {
248
- /* The group's own border and height stand for the input's, so the group is a lone Input's height.
249
- Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
250
- --_ui-default-input-border-width: 0;
251
- --_ui-default-input-min-block-size: 0;
252
- --_ui-default-input-border: transparent;
253
- --_ui-default-input-border-hover: transparent;
254
- --_ui-default-input-focus-border: transparent;
255
- --_ui-default-input-invalid-border: transparent;
256
- --_ui-default-input-invalid-focus-shadow: none;
257
- --_ui-default-input-shadow: none;
258
- --_ui-default-input-focus-shadow: none;
259
- --_ui-default-input-focus-outline: none;
260
- --_ui-default-input-radius: 0;
261
- --_ui-default-input-surface: transparent;
262
- --_ui-default-textarea-border-width: 0;
263
- --_ui-default-textarea-border: transparent;
264
- --_ui-default-textarea-border-hover: transparent;
265
- --_ui-default-textarea-focus-border: transparent;
266
- --_ui-default-textarea-invalid-border: transparent;
267
- --_ui-default-textarea-invalid-focus-shadow: none;
268
- --_ui-default-textarea-shadow: none;
269
- --_ui-default-textarea-focus-shadow: none;
270
- --_ui-default-textarea-focus-outline: none;
271
- --_ui-default-textarea-radius: 0;
272
- --_ui-default-textarea-surface: transparent;
273
-
274
- display: flex;
275
- align-items: stretch;
276
- box-sizing: border-box;
277
- inline-size: 100%;
278
- min-inline-size: 0;
279
- min-block-size: var(--ui-control-size-md);
280
- /* The frame reads the shared control tokens with a lone Input's fallbacks, so the two match. */
281
- border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
282
- border-radius: var(--ui-input-group-radius, var(--ui-field-radius, var(--ui-radius-md)));
283
- background: var(--ui-control-surface, var(--ui-surface-elevated));
284
- box-shadow: var(--ui-control-inset);
285
- overflow: hidden;
286
- /* A press anywhere in the frame focuses the input. */
287
- cursor: text;
288
- transition:
289
- border-color var(--ui-motion-fast) var(--ui-motion-ease),
290
- box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
291
- }
292
-
293
- [data-component~="ui-input-group"][data-ui-input-group-state~="variant=subtle"] {
294
- border-color: var(--ui-border);
295
- background: var(--ui-surface-muted);
296
- box-shadow: none;
297
- }
298
207
 
299
208
  /* The frame takes its input's size, so a small group lines up with small buttons and fields. */
300
- [data-component~="ui-input-group"]:has(.field [data-ui-input-state~="size=sm"]) {
301
- min-block-size: var(--ui-control-size-sm);
302
- }
303
209
 
304
- [data-component~="ui-input-group"]:has(.field [data-ui-input-state~="size=lg"]) {
305
- min-block-size: var(--ui-control-size-lg);
306
- }
210
+ /* The ring shows when the field's input would show its own: when it is focus-visible, which a
211
+ text input is for a pointer as well as a keyboard. A focused action button draws its own. */
307
212
 
308
- @media (pointer: coarse) {
309
- [data-component~="ui-input-group"] {
310
- min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
311
- }
213
+ /* Forced colors drop box shadows, so the focus ring becomes an outline. */
312
214
 
313
- [data-component~="ui-input-group"]:has(.field [data-ui-input-state~="size=sm"]) {
314
- min-block-size: var(--ui-control-min-block-size);
315
- }
316
- }
215
+ /* Fixed text is part of the value, but should not look editable. */
317
216
 
318
- [data-component~="ui-input-group"]:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
319
- border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
320
- }
217
+ /* Centred rather than padded above and below: the group is exactly a lone Input's height, so a
218
+ small button sits inside it with the difference split evenly, and the field keeps its height. */
321
219
 
322
- /* The ring shows when the field's input would show its own: when it is focus-visible, which a
323
- text input is for a pointer as well as a keyboard. A focused action button draws its own. */
324
- [data-component~="ui-input-group"]:has(.field :is(input, textarea):focus-visible) {
325
- border-color: var(--ui-control-focus, var(--ui-accent-solid));
326
- box-shadow:
327
- var(--ui-control-inset),
328
- var(--ui-control-focus-halo-shadow);
329
- }
220
+ /* Multiline text owns the first row; its action remains inside the same frame below it. */
330
221
 
331
- [data-component~="ui-input-group"]:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
332
- border-color: var(
333
- --ui-input-group-invalid-border,
334
- var(--ui-field-danger, var(--ui-danger-solid))
335
- );
336
- }
222
+ /* The same textarea keeps its full resizeable box. Its text reserves the action's live width,
223
+ so a translated label or pending indicator cannot cover what the person types. */
337
224
 
338
- [data-component~="ui-input-group"]:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
339
- box-shadow: var(
340
- --ui-input-group-invalid-focus-shadow,
341
- var(--ui-control-inset),
342
- 0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
343
- in srgb,
344
- var(--ui-input-group-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))) 22%,
345
- transparent
346
- )
347
- );
348
- }
225
+ /* A component that sets its display still honours the hidden attribute on its root. */
349
226
 
350
- /* Forced colors drop box shadows, so the focus ring becomes an outline. */
351
- @media (forced-colors: active) {
352
- [data-component~="ui-input-group"]:has(:is(input, textarea):focus-visible) {
353
- outline: var(--ui-focus-width) solid Highlight;
354
- outline-offset: var(--ui-border-width);
227
+ @scope (.ui-input-group) {
228
+ :scope:where(:scope) {
229
+ /* The group's own border and height stand for the input's, so the group is a lone Input's height.
230
+ Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
231
+ --_ui-default-input-border-width: 0;
232
+ --_ui-default-input-min-block-size: 0;
233
+ --_ui-default-input-border: transparent;
234
+ --_ui-default-input-border-hover: transparent;
235
+ --_ui-default-input-focus-border: transparent;
236
+ --_ui-default-input-invalid-border: transparent;
237
+ --_ui-default-input-invalid-focus-shadow: none;
238
+ --_ui-default-input-shadow: none;
239
+ --_ui-default-input-focus-shadow: none;
240
+ --_ui-default-input-focus-outline: none;
241
+ --_ui-default-input-radius: 0;
242
+ --_ui-default-input-surface: transparent;
243
+ --_ui-default-textarea-border-width: 0;
244
+ --_ui-default-textarea-border: transparent;
245
+ --_ui-default-textarea-border-hover: transparent;
246
+ --_ui-default-textarea-focus-border: transparent;
247
+ --_ui-default-textarea-invalid-border: transparent;
248
+ --_ui-default-textarea-invalid-focus-shadow: none;
249
+ --_ui-default-textarea-shadow: none;
250
+ --_ui-default-textarea-focus-shadow: none;
251
+ --_ui-default-textarea-focus-outline: none;
252
+ --_ui-default-textarea-radius: 0;
253
+ --_ui-default-textarea-surface: transparent;
254
+
255
+ display: flex;
256
+ align-items: stretch;
257
+ box-sizing: border-box;
258
+ inline-size: 100%;
259
+ min-inline-size: 0;
260
+ min-block-size: var(--ui-control-size-md);
261
+ /* The frame reads the shared control tokens with a lone Input's fallbacks, so the two match. */
262
+ border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
263
+ border-radius: var(--ui-input-group-radius, var(--ui-field-radius, var(--ui-radius-md)));
264
+ background: var(--ui-control-surface, var(--ui-surface-elevated));
265
+ box-shadow: var(--ui-control-inset);
266
+ overflow: hidden;
267
+ /* A press anywhere in the frame focuses the input. */
268
+ cursor: text;
269
+ transition:
270
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
271
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
355
272
  }
356
- }
357
273
 
358
- [data-component~="ui-input-group"][data-ui-input-group-state~="disabled"],
359
- [data-component~="ui-input-group"]:has(:is(input, textarea):disabled) {
360
- background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
361
- box-shadow: none;
362
- cursor: not-allowed;
363
- }
364
-
365
- .field {
366
- display: flex;
367
- flex: 1;
368
- min-inline-size: 0;
369
- }
274
+ :scope:where(:scope):is([data-ui-input-group-state~="variant=subtle"]) {
275
+ border-color: var(--ui-border);
276
+ background: var(--ui-surface-muted);
277
+ box-shadow: none;
278
+ }
279
+ :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=sm"])) {
280
+ min-block-size: var(--ui-control-size-sm);
281
+ }
370
282
 
371
- .affix {
372
- display: inline-flex;
373
- flex: none;
374
- align-items: center;
375
- padding-inline: var(--ui-space-2);
376
- color: var(--ui-text-muted);
377
- font-family: var(--ui-font-family-mono);
378
- font-size: var(--ui-font-size-sm);
379
- white-space: nowrap;
380
- }
283
+ :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=lg"])) {
284
+ min-block-size: var(--ui-control-size-lg);
285
+ }
381
286
 
382
- /* Fixed text is part of the value, but should not look editable. */
383
- .affix:has([slot="prefix"]),
384
- .affix:has([slot="suffix"]) {
385
- background: var(--ui-surface-muted);
386
- }
287
+ @media (pointer: coarse) {
288
+ :scope:where(:scope) {
289
+ min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
290
+ }
387
291
 
388
- .affix:has([slot="prefix"]) {
389
- border-inline-end: var(--ui-border-width) solid var(--ui-border-divider);
390
- }
292
+ :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=sm"])) {
293
+ min-block-size: var(--ui-control-min-block-size);
294
+ }
295
+ }
391
296
 
392
- .affix:has([slot="suffix"]) {
393
- border-inline-start: var(--ui-border-width) solid var(--ui-border-divider);
394
- }
297
+ :scope:where(:scope):is(:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid])))) {
298
+ border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
299
+ }
300
+ :scope:where(:scope):is(:has(.field :is(input, textarea):focus-visible)) {
301
+ border-color: var(--ui-control-focus, var(--ui-accent-solid));
302
+ box-shadow:
303
+ var(--ui-control-inset),
304
+ var(--ui-control-focus-halo-shadow);
305
+ }
395
306
 
396
- [data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"] {
397
- --_ui-default-input-padding-inline-start: var(--ui-space-2);
398
- }
399
- [data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"]
400
- .affix:first-child {
401
- padding-inline-end: 0;
402
- border-inline-end: 0;
403
- background: transparent;
404
- }
307
+ :scope:where(:scope):is(:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
308
+ border-color: var(
309
+ --ui-input-group-invalid-border,
310
+ var(--ui-field-danger, var(--ui-danger-solid))
311
+ );
312
+ }
405
313
 
406
- /* Centred rather than padded above and below: the group is exactly a lone Input's height, so a
407
- small button sits inside it with the difference split evenly, and the field keeps its height. */
408
- .action {
409
- display: flex;
410
- flex: none;
411
- align-items: center;
412
- padding-inline: var(--ui-space-1);
413
- }
314
+ :scope:where(:scope):is(:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible)) {
315
+ box-shadow: var(
316
+ --ui-input-group-invalid-focus-shadow,
317
+ var(--ui-control-inset),
318
+ 0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
319
+ in srgb,
320
+ var(--ui-input-group-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))) 22%,
321
+ transparent
322
+ )
323
+ );
324
+ }
325
+ @media (forced-colors: active) {
326
+ :scope:where(:scope):is(:has(:is(input, textarea):focus-visible)) {
327
+ outline: var(--ui-focus-width) solid Highlight;
328
+ outline-offset: var(--ui-border-width);
329
+ }
330
+ }
414
331
 
415
- /* Multiline text owns the first row; its action remains inside the same frame below it. */
416
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] {
417
- display: grid;
418
- grid-template-columns: auto minmax(0, 1fr) auto;
419
- }
332
+ :scope:where(:scope):is([data-ui-input-group-state~="disabled"]),
333
+ :scope:where(:scope):is(:has(:is(input, textarea):disabled)) {
334
+ background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
335
+ box-shadow: none;
336
+ cursor: not-allowed;
337
+ }
420
338
 
421
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .field {
422
- grid-column: 2;
423
- }
339
+ .field {
340
+ display: flex;
341
+ flex: 1;
342
+ min-inline-size: 0;
343
+ }
424
344
 
425
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .action {
426
- grid-column: 1 / -1;
427
- justify-content: end;
428
- padding: var(--ui-space-2);
429
- padding-block-start: 0;
430
- }
345
+ .affix {
346
+ display: inline-flex;
347
+ flex: none;
348
+ align-items: center;
349
+ padding-inline: var(--ui-space-2);
350
+ color: var(--ui-text-muted);
351
+ font-family: var(--ui-font-family-mono);
352
+ font-size: var(--ui-font-size-sm);
353
+ white-space: nowrap;
354
+ }
355
+ .affix:has([slot="prefix"]), .affix:has([slot="suffix"]) {
356
+ background: var(--ui-surface-muted);
357
+ }
431
358
 
432
- /* The same textarea keeps its full resizeable box. Its text reserves the action's live width,
433
- so a translated label or pending indicator cannot cover what the person types. */
434
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"] {
435
- --_ui-default-textarea-padding-inline-end: calc(
436
- var(--_ui-input-group-action-inline-size, 7rem) + var(--ui-space-3)
437
- );
438
- }
359
+ .affix:has([slot="prefix"]) {
360
+ border-inline-end: var(--ui-border-width) solid var(--ui-border-divider);
361
+ }
439
362
 
440
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
441
- .field {
442
- grid-row: 1;
443
- }
363
+ .affix:has([slot="suffix"]) {
364
+ border-inline-start: var(--ui-border-width) solid var(--ui-border-divider);
365
+ }
444
366
 
445
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
367
+ :scope:where(:scope):is([data-ui-input-group-state~="prefixKind=icon"]) {
368
+ --_ui-default-input-padding-inline-start: var(--ui-space-2);
369
+ }
370
+ :scope[data-ui-input-group-state~="prefixKind=icon"] .affix:first-child {
371
+ padding-inline-end: 0;
372
+ border-inline-end: 0;
373
+ background: transparent;
374
+ }
446
375
  .action {
447
- grid-column: 2;
448
- grid-row: 1;
449
- align-self: start;
450
- justify-self: end;
451
- padding: var(--ui-space-2);
452
- }
376
+ display: flex;
377
+ flex: none;
378
+ align-items: center;
379
+ padding-inline: var(--ui-space-1);
380
+ }
381
+ :scope:where(:scope):is([data-ui-input-group-state~="multiline"]) {
382
+ display: grid;
383
+ grid-template-columns: auto minmax(0, 1fr) auto;
384
+ }
453
385
 
454
- .affix:empty,
455
- .action:empty {
456
- display: none;
457
- }
386
+ :scope[data-ui-input-group-state~="multiline"] .field {
387
+ grid-column: 2;
388
+ }
458
389
 
459
- /* A component that sets its display still honours the hidden attribute on its root. */
460
- [data-component~="ui-input-group"][hidden] {
461
- display: none;
390
+ :scope[data-ui-input-group-state~="multiline"] .action {
391
+ grid-column: 1 / -1;
392
+ justify-content: end;
393
+ padding: var(--ui-space-2);
394
+ padding-block-start: 0;
395
+ }
396
+ :scope:where(:scope):is([data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]) {
397
+ --_ui-default-textarea-padding-inline-end: calc(
398
+ var(--_ui-input-group-action-inline-size, 7rem) + var(--ui-space-3)
399
+ );
400
+ }
401
+
402
+ :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
403
+ .field {
404
+ grid-row: 1;
405
+ }
406
+
407
+ :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
408
+ .action {
409
+ grid-column: 2;
410
+ grid-row: 1;
411
+ align-self: start;
412
+ justify-self: end;
413
+ padding: var(--ui-space-2);
414
+ }
415
+
416
+ .affix:empty, .action:empty {
417
+ display: none;
418
+ }
419
+ :scope:where(:scope):is([hidden]) {
420
+ display: none;
421
+ }
462
422
  }
463
423
  </style>