@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,6 +1,4 @@
1
1
  import type { PropType } from 'vue';
2
- declare const _default: typeof __VLS_export;
3
- export default _default;
4
2
  declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
3
  actions: {
6
4
  type: PropType<readonly ("align-left" | "align-center" | "align-right" | "background-none" | "background-gray" | "background-yellow" | "background-blue" | "background-green" | "background-red" | "add-row-before" | "add-row-after" | "add-column-before" | "add-column-after" | "toggle-header-row" | "toggle-header-column" | "move-row-up" | "move-row-down" | "move-column-left" | "move-column-right" | "clear-cells" | "merge-cells" | "split-cell" | "delete-row" | "delete-column" | "delete-table")[] | null>;
@@ -67,3 +65,5 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
67
65
  headerColumn: boolean | null;
68
66
  cellAlignment: "left" | "right" | "center" | null;
69
67
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
68
+ declare const _default: typeof __VLS_export;
69
+ export default _default;
@@ -1,27 +1,18 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
2
- <script lang="ts">
3
- const htmlNextAuthoredCheck2Reported = new Set<string>()
4
- function htmlNextAuthoredCheck2(accepted: boolean, location: string, message: string): boolean {
5
- if (!accepted && !htmlNextAuthoredCheck2Reported.has(location)) {
6
- htmlNextAuthoredCheck2Reported.add(location)
7
- console.warn(message)
8
- }
9
- return accepted
10
- }
11
- </script>
12
-
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
13
2
  <script setup lang="ts">
3
+ import { computed, getCurrentInstance, provide, ref, watchSyncEffect } from 'vue'
4
+ import type { PropType } from 'vue'
14
5
  import {
15
- computed,
16
- defineComponent,
17
- getCurrentInstance,
18
- h,
19
- provide,
20
- ref,
21
- watchSyncEffect,
22
- } from 'vue'
23
- import type { PropType, VNode } from 'vue'
24
- import { createDispatch, useComponentHost } from './host'
6
+ attribute,
7
+ checkHydratedRoot,
8
+ concat,
9
+ createDispatch,
10
+ KeyedBoundary,
11
+ nativeAttrs,
12
+ uniqueKeys,
13
+ useComponentHost,
14
+ useReflectedProp,
15
+ } from './host'
25
16
  import { acceptsControllerWrite } from './props'
26
17
  import { checkedProp, propValidityState, vPropValidity } from './props'
27
18
  import UiIcon from './UiIcon.vue'
@@ -266,64 +257,7 @@ void checkedProps.value
266
257
  watchSyncEffect(() => {
267
258
  void checkedProps.value
268
259
  })
269
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
270
- const names = Object.keys(attrs)
271
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
272
- return Object.fromEntries(names.map((name) => [
273
- Object.hasOwn(Object.prototype, name)
274
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
275
- : name,
276
- attrs[name],
277
- ]))
278
- }
279
- const KeyedFailure = defineComponent({
280
- props: { error: { type: null, required: true } },
281
- setup(props) {
282
- return () => {
283
- throw props.error
284
- }
285
- },
286
- })
287
- const KeyedBoundary = defineComponent({
288
- setup(_props, { slots }) {
289
- let last: VNode[] = []
290
- return () => {
291
- try {
292
- last = slots.default?.() ?? []
293
- return last
294
- } catch (error) {
295
- if (
296
- !(error instanceof Error)
297
- || (error as Error & { diagnostic?: { code?: string } }).diagnostic?.code !== 'HR004'
298
- ) throw error
299
- if (typeof window === 'undefined') throw error
300
- return [...last, h(KeyedFailure, { error })]
301
- }
302
- }
303
- },
304
- })
305
- const componentInstance = getCurrentInstance()
306
- function reflectedProp(
307
- name: string,
308
- kebab: string,
309
- value: unknown,
310
- fallback: string | undefined,
311
- bound: boolean,
312
- separator?: string,
313
- ): string | undefined {
314
- const incoming = componentInstance?.vnode.props
315
- if (
316
- !bound
317
- && (incoming === null || incoming === undefined
318
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
319
- ) return fallback
320
- if (value === null || value === undefined) return undefined
321
- return Array.isArray(value) && separator !== undefined
322
- ? value.join(separator)
323
- : typeof value === 'object'
324
- ? JSON.stringify(value)
325
- : String(value)
326
- }
260
+ const reflectedProp = useReflectedProp()
327
261
  const hydrationInstance = getCurrentInstance()
328
262
  const emit = defineEmits<{
329
263
  action: [
@@ -383,39 +317,13 @@ const sections = ref<
383
317
  >([])
384
318
  const hasOverflow = ref(false)
385
319
  const overflowOpen = ref(false)
386
- let guardedPrevious: any
387
- const guarded = computed(() => {
388
- if (
389
- !(htmlNextAuthoredCheck2(
390
- overflowOpen.value == null || typeof overflowOpen.value === 'boolean',
391
- '$overflowOpen:overflowOpen',
392
- './components/ui-editor-table-toolbar/ui-editor-table-toolbar.html: HR007: Reference overflowOpen does not satisfy its declared type.',
393
- ))
394
- ) return guardedPrevious
395
- return guardedPrevious = overflowOpen.value
396
- })
397
320
  provide('html-next:ui-editor-table-toolbar:alignments', alignments)
398
321
  provide('html-next:ui-editor-table-toolbar:structure', structure)
399
322
  provide('html-next:ui-editor-table-toolbar:swatches', swatches)
400
323
  provide('html-next:ui-editor-table-toolbar:sections', sections)
401
324
  provide('html-next:ui-editor-table-toolbar:hasOverflow', hasOverflow)
402
325
  provide('html-next:ui-editor-table-toolbar:overflowOpen', overflowOpen)
403
- const hydrationNode = hydrationInstance?.vnode.el
404
- if (
405
- typeof window !== 'undefined' && hydrationNode != null
406
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
407
- ) {
408
- throw Object.assign(
409
- new Error('HR005: Server markup for <ui-editor-table-toolbar> has an incompatible root.'),
410
- {
411
- name: 'HtmlDiagnosticError',
412
- diagnostic: Object.freeze({
413
- code: 'HR005',
414
- message: 'Server markup for <ui-editor-table-toolbar> has an incompatible root.',
415
- }),
416
- },
417
- )
418
- }
326
+ checkHydratedRoot('div', 'ui-editor-table-toolbar')
419
327
 
420
328
  const isActionDetail = (
421
329
  detail: unknown,
@@ -576,70 +484,11 @@ useComponentHost(() => import('../components/ui-editor-table-toolbar/ui-editor-t
576
484
  propValidityState({ contract: propValidityContract, values: { ...props } }, name),
577
485
  state: { alignments, structure, swatches, sections, hasOverflow, overflowOpen },
578
486
  })
579
-
580
- function text(value: unknown): string {
581
- if (Array.isArray(value)) return value.map(text).join(' ')
582
- return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
583
- }
584
-
585
- function attribute(value: unknown): any {
586
- if (
587
- value === null || value === undefined || value === false
588
- || (typeof value === 'object' && !Array.isArray(value))
589
- ) return undefined
590
- return value === true ? '' : text(value)
591
- }
592
-
593
- // A nonempty scalar call cannot produce the invalid-result sentinel.
594
- type ConcatResult<T extends unknown[]> = T extends
595
- [
596
- string | number | boolean | null | undefined,
597
- ...(string | number | boolean | null | undefined)[],
598
- ] ? string | undefined
599
- : string | symbol | undefined
600
- function concat<T extends unknown[]>(...values: T): ConcatResult<T> {
601
- if (values.some(value => value === Symbol.for('html-next.invalid-result'))) {
602
- return Symbol.for('html-next.invalid-result') as ConcatResult<T>
603
- }
604
- if (values.some(value => value === undefined)) return undefined as ConcatResult<T>
605
- if (values.length === 0 || values.some(value => typeof value === 'object' && value !== null)) {
606
- return Symbol.for('html-next.invalid-result') as ConcatResult<T>
607
- }
608
- return values.map(value => value === null ? '' : String(value)).join('') as ConcatResult<T>
609
- }
610
-
611
- function uniqueKeys<T>(
612
- items: readonly T[],
613
- keyOf: (
614
- item: T,
615
- index: number,
616
- loop: { index: number; first: boolean; last: boolean; count: number },
617
- ) => unknown,
618
- ): readonly T[] {
619
- const seen = new Set<unknown>()
620
- for (let index = 0; index < items.length; index += 1) {
621
- const key = keyOf(items[index]!, index, {
622
- index,
623
- first: index === 0,
624
- last: index === items.length - 1,
625
- count: items.length,
626
- })
627
- if (seen.has(key)) {
628
- const message = `A keyed list produced duplicate key \`${text(key)}\`.`
629
- throw Object.assign(new Error(`HR004: ${message}`), {
630
- name: 'HtmlDiagnosticError',
631
- diagnostic: Object.freeze({ code: 'HR004', message }),
632
- })
633
- }
634
- seen.add(key)
635
- }
636
- return items
637
- }
638
487
  </script>
639
488
 
640
489
  <template>
641
490
  <div
642
- data-component="ui-editor-table-toolbar"
491
+ class="ui-editor-table-toolbar"
643
492
  role="toolbar"
644
493
  aria-label="Table actions"
645
494
  v-bind="nativeAttrs($attrs)"
@@ -665,7 +514,7 @@ function uniqueKeys<T>(
665
514
  :aria-pressed="item.active"
666
515
  :class="{ active: item.active }"
667
516
  >
668
- <UiIcon :name="item.action" />
517
+ <UiIcon class="ui-icon" :name="item.action" />
669
518
  </button></KeyedBoundary>
670
519
  </div>
671
520
  <div v-if="alignments.length && structure.length" class="sep" aria-hidden="true"></div>
@@ -676,7 +525,7 @@ function uniqueKeys<T>(
676
525
  type="button"
677
526
  :data-action="item.action"
678
527
  >
679
- <UiIcon :name="item.icon" />
528
+ <UiIcon class="ui-icon" :name="item.icon" />
680
529
  <span>{{ item.label }}</span>
681
530
  </button></KeyedBoundary>
682
531
  </div>
@@ -692,11 +541,11 @@ function uniqueKeys<T>(
692
541
  class="more"
693
542
  data-action="toggle-overflow"
694
543
  aria-haspopup="menu"
695
- :aria-expanded="guarded"
544
+ :aria-expanded="overflowOpen"
696
545
  >
697
- <UiIcon name="table" />
546
+ <UiIcon class="ui-icon" name="table" />
698
547
  <span>Table options</span>
699
- <span class="chevron"><UiIcon name="chevron-down" /></span>
548
+ <span class="chevron"><UiIcon class="ui-icon" name="chevron-down" /></span>
700
549
  </button>
701
550
  <div v-if="overflowOpen" class="menu" role="menu" aria-label="More table actions">
702
551
  <div v-if="swatches.length" class="menu-section" role="none">
@@ -765,7 +614,7 @@ function uniqueKeys<T>(
765
614
  :data-action="item.action"
766
615
  :class="{ danger: item.danger }"
767
616
  >
768
- <UiIcon :name="item.icon" />
617
+ <UiIcon class="ui-icon" :name="item.icon" />
769
618
  <span>{{ item.label }}</span>
770
619
  </button></KeyedBoundary>
771
620
  </div></KeyedBoundary>
@@ -775,189 +624,165 @@ function uniqueKeys<T>(
775
624
  </template>
776
625
 
777
626
  <style scoped>
778
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] {
779
- min-width: max-content;
780
- min-height: 100%;
781
- padding: 0;
782
- background: transparent;
783
- border: 0;
784
- border-radius: 0;
785
- box-shadow: none;
786
- backdrop-filter: none;
787
- }
788
-
789
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button {
790
- min-height: 44px;
791
- background: transparent;
792
- }
793
-
794
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.active,
795
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.selected {
796
- background: var(--ui-accent-soft, var(--ui-accent-subtle));
797
- }
798
-
799
- [data-component~="ui-editor-table-toolbar"] {
800
- display: inline-flex;
801
- align-items: center;
802
- gap: var(--ui-space-1);
803
- padding: var(--ui-space-1);
804
- background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
805
- border: var(--ui-border-width) solid var(--ui-border-strong);
806
- border-radius: calc(var(--ui-radius-md) + 2 * var(--ui-border-width));
807
- box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
808
- backdrop-filter: blur(10px);
809
- }
810
-
811
- .group {
812
- display: inline-flex;
813
- align-items: center;
814
- gap: 2px;
815
- overflow: hidden;
816
- }
817
-
818
- .sep {
819
- width: 1px;
820
- align-self: stretch;
821
- background: var(--ui-border-divider);
822
- }
823
-
824
- .overflow {
825
- position: relative;
826
- }
827
-
828
- [data-component~="ui-editor-table-toolbar"] button {
829
- display: inline-flex;
830
- align-items: center;
831
- justify-content: center;
832
- gap: var(--ui-space-2);
833
- min-height: 32px;
834
- border: 0;
835
- border-radius: var(--ui-radius-sm);
836
- background: transparent;
837
- color: var(--ui-text-primary);
838
- cursor: pointer;
839
- font-size: var(--ui-font-size-sm);
840
- font-weight: 500;
841
- line-height: 1;
842
- padding: var(--ui-space-2) var(--ui-space-2);
843
- white-space: nowrap;
844
- }
845
-
846
- [data-component~="ui-editor-table-toolbar"] button:hover {
847
- background: var(--ui-surface-hover);
848
- }
849
-
850
- [data-component~="ui-editor-table-toolbar"] button.active {
851
- background: var(--ui-accent-soft, var(--ui-accent-subtle));
852
- color: var(--ui-accent-active);
853
- }
854
-
855
- .group button {
856
- border-radius: var(--ui-radius-sm);
857
- }
858
-
859
- .group button + button {
860
- border-left: 0;
861
- }
862
-
863
- [data-component~="ui-editor-table-toolbar"] .more {
864
- border: 0;
865
- border-radius: var(--ui-radius-sm);
866
- }
867
-
868
- [data-component~="ui-editor-table-toolbar"] button.danger {
869
- color: var(--ui-danger);
870
- }
871
-
872
- [data-component~="ui-editor-table-toolbar"] {
873
- --_ui-default-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);
874
- --_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
875
- }
876
-
877
- .chevron {
878
- display: inline-flex;
879
- --_ui-default-icon-size: 0.875rem;
880
- }
881
-
882
- [data-component~="ui-editor-table-toolbar"] .icon-button {
883
- width: 32px;
884
- padding-inline: 0;
885
- }
886
-
887
- .menu {
888
- box-sizing: border-box;
889
- position: fixed;
890
- inset: auto;
891
- margin: 0;
892
- min-width: 12rem;
893
- max-width: min(17rem, calc(100vw - 24px));
894
- padding: var(--ui-space-1);
895
- background: var(--ui-surface);
896
- border: var(--ui-border-width) solid var(--ui-border-strong);
897
- border-radius: var(--ui-radius-md);
898
- box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
899
- display: flex;
900
- flex-direction: column;
901
- gap: 2px;
902
- z-index: 2;
903
- overflow-y: auto;
904
- overscroll-behavior: contain;
905
- scrollbar-width: thin;
906
- }
907
-
908
- .menu-section + .menu-section {
909
- margin-top: var(--ui-space-1);
910
- padding-top: var(--ui-space-1);
911
- border-top: var(--ui-border-width) solid var(--ui-border-divider);
912
- }
913
-
914
- .menu-heading {
915
- padding: var(--ui-space-1) var(--ui-space-2);
916
- font-size: var(--ui-font-size-2xs);
917
- font-weight: 700;
918
- letter-spacing: 0.05em;
919
- text-transform: uppercase;
920
- color: var(--ui-text-muted);
921
- }
922
-
923
- .menu button {
924
- display: flex;
925
- justify-content: flex-start;
926
- width: 100%;
927
- text-align: left;
928
- }
929
-
930
- .swatches {
931
- display: grid;
932
- grid-template-columns: repeat(2, minmax(0, 1fr));
933
- gap: 2px;
934
- }
935
-
936
- [data-component~="ui-editor-table-toolbar"] .swatch-button {
937
- gap: var(--ui-space-1);
938
- justify-content: flex-start;
939
- }
940
-
941
- .swatch {
942
- width: 14px;
943
- height: 14px;
944
- flex: 0 0 14px;
945
- border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border) 80%, #000);
946
- border-radius: var(--ui-radius-round);
947
- background: var(--_swatch);
948
- }
949
-
950
- .swatch.default {
951
- background:
952
- linear-gradient(135deg, transparent 44%, var(--ui-danger) 46% 54%, transparent 56%),
953
- var(--ui-surface);
954
- }
955
-
956
- .swatch-button.selected {
957
- background: var(--ui-accent-soft, var(--ui-accent-subtle));
958
- }
959
-
960
- [data-component~="ui-editor-table-toolbar"][hidden] {
961
- display: none;
627
+ @scope (.ui-editor-table-toolbar) to (.ui-icon) {
628
+ :scope:where(:scope):is(.looma-editor__mobile-toolbar-shell *) {
629
+ min-width: max-content;
630
+ min-height: 100%;
631
+ padding: 0;
632
+ background: transparent;
633
+ border: 0;
634
+ border-radius: 0;
635
+ box-shadow: none;
636
+ backdrop-filter: none;
637
+ }
638
+ .looma-editor__mobile-toolbar-shell :scope button {
639
+ min-height: 44px;
640
+ background: transparent;
641
+ }
642
+ .looma-editor__mobile-toolbar-shell :scope button.active,
643
+ .looma-editor__mobile-toolbar-shell :scope button.selected {
644
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
645
+ }
646
+ :scope:where(:scope) {
647
+ display: inline-flex;
648
+ align-items: center;
649
+ gap: var(--ui-space-1);
650
+ padding: var(--ui-space-1);
651
+ background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
652
+ border: var(--ui-border-width) solid var(--ui-border-strong);
653
+ border-radius: calc(var(--ui-radius-md) + 2 * var(--ui-border-width));
654
+ box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
655
+ backdrop-filter: blur(10px);
656
+ }
657
+ .group {
658
+ display: inline-flex;
659
+ align-items: center;
660
+ gap: 2px;
661
+ overflow: hidden;
662
+ }
663
+ .sep {
664
+ width: 1px;
665
+ align-self: stretch;
666
+ background: var(--ui-border-divider);
667
+ }
668
+ .overflow {
669
+ position: relative;
670
+ }
671
+ :scope button {
672
+ display: inline-flex;
673
+ align-items: center;
674
+ justify-content: center;
675
+ gap: var(--ui-space-2);
676
+ min-height: 32px;
677
+ border: 0;
678
+ border-radius: var(--ui-radius-sm);
679
+ background: transparent;
680
+ color: var(--ui-text-primary);
681
+ cursor: pointer;
682
+ font-size: var(--ui-font-size-sm);
683
+ font-weight: 500;
684
+ line-height: 1;
685
+ padding: var(--ui-space-2) var(--ui-space-2);
686
+ white-space: nowrap;
687
+ }
688
+ :scope button:hover {
689
+ background: var(--ui-surface-hover);
690
+ }
691
+ :scope button.active {
692
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
693
+ color: var(--ui-accent-active);
694
+ }
695
+ .group button {
696
+ border-radius: var(--ui-radius-sm);
697
+ }
698
+ .group button + button {
699
+ border-left: 0;
700
+ }
701
+ :scope .more {
702
+ border: 0;
703
+ border-radius: var(--ui-radius-sm);
704
+ }
705
+ :scope button.danger {
706
+ color: var(--ui-danger);
707
+ }
708
+ :scope:where(:scope) {
709
+ --_ui-default-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);
710
+ --_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
711
+ }
712
+ .chevron {
713
+ display: inline-flex;
714
+ --_ui-default-icon-size: 0.875rem;
715
+ }
716
+ :scope .icon-button {
717
+ width: 32px;
718
+ padding-inline: 0;
719
+ }
720
+ .menu {
721
+ box-sizing: border-box;
722
+ position: fixed;
723
+ inset: auto;
724
+ margin: 0;
725
+ min-width: 12rem;
726
+ max-width: min(17rem, calc(100vw - 24px));
727
+ padding: var(--ui-space-1);
728
+ background: var(--ui-surface);
729
+ border: var(--ui-border-width) solid var(--ui-border-strong);
730
+ border-radius: var(--ui-radius-md);
731
+ box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
732
+ display: flex;
733
+ flex-direction: column;
734
+ gap: 2px;
735
+ z-index: 2;
736
+ overflow-y: auto;
737
+ overscroll-behavior: contain;
738
+ scrollbar-width: thin;
739
+ }
740
+ .menu-section + .menu-section {
741
+ margin-top: var(--ui-space-1);
742
+ padding-top: var(--ui-space-1);
743
+ border-top: var(--ui-border-width) solid var(--ui-border-divider);
744
+ }
745
+ .menu-heading {
746
+ padding: var(--ui-space-1) var(--ui-space-2);
747
+ font-size: var(--ui-font-size-2xs);
748
+ font-weight: 700;
749
+ letter-spacing: 0.05em;
750
+ text-transform: uppercase;
751
+ color: var(--ui-text-muted);
752
+ }
753
+ .menu button {
754
+ display: flex;
755
+ justify-content: flex-start;
756
+ width: 100%;
757
+ text-align: left;
758
+ }
759
+ .swatches {
760
+ display: grid;
761
+ grid-template-columns: repeat(2, minmax(0, 1fr));
762
+ gap: 2px;
763
+ }
764
+ :scope .swatch-button {
765
+ gap: var(--ui-space-1);
766
+ justify-content: flex-start;
767
+ }
768
+ .swatch {
769
+ width: 14px;
770
+ height: 14px;
771
+ flex: 0 0 14px;
772
+ border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border) 80%, #000);
773
+ border-radius: var(--ui-radius-round);
774
+ background: var(--_swatch);
775
+ }
776
+ .swatch.default {
777
+ background:
778
+ linear-gradient(135deg, transparent 44%, var(--ui-danger) 46% 54%, transparent 56%),
779
+ var(--ui-surface);
780
+ }
781
+ .swatch-button.selected {
782
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
783
+ }
784
+ :scope:where(:scope):is([hidden]) {
785
+ display: none;
786
+ }
962
787
  }
963
788
  </style>