@threadlabs/looma 0.5.0 → 0.5.2

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 (313) hide show
  1. package/README.md +1 -1
  2. package/components/shared/input-modality.d.ts +8 -0
  3. package/components/shared/input-modality.js +2 -0
  4. package/components/ui-button/ui-button.html +42 -1
  5. package/components/ui-combobox/ui-combobox.html +12 -4
  6. package/components/ui-dialog/ui-dialog.html +13 -0
  7. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +1 -1
  8. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  9. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +6 -2
  10. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +20 -4
  11. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +8 -4
  12. package/components/ui-form-field/ui-form-field.html +18 -7
  13. package/components/ui-icon/ui-icon.html +5 -1
  14. package/components/ui-icon-button/ui-icon-button.html +44 -1
  15. package/components/ui-popover/ui-popover.js +10 -2
  16. package/components/ui-search-shell/ui-search-shell.html +7 -0
  17. package/components/ui-search-shell/ui-search-shell.js +9 -0
  18. package/components/ui-tabs/ui-tabs.html +1 -1
  19. package/components/ui-toast-region/ui-toast-region.html +1 -1
  20. package/components/ui-tree-item/ui-tree-item.html +6 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +2 -2
  23. package/package.json +2 -2
  24. package/styles/ui-affordance-scope.css +1 -1
  25. package/styles/ui-avatar-group.css +1 -1
  26. package/styles/ui-avatar.css +1 -1
  27. package/styles/ui-badge.css +1 -1
  28. package/styles/ui-button.css +42 -2
  29. package/styles/ui-callout.css +1 -1
  30. package/styles/ui-checkbox.css +1 -1
  31. package/styles/ui-cluster.css +1 -1
  32. package/styles/ui-combobox.css +1 -1
  33. package/styles/ui-container.css +1 -1
  34. package/styles/ui-context-menu.css +1 -1
  35. package/styles/ui-dialog.css +18 -1
  36. package/styles/ui-disclosure.css +1 -1
  37. package/styles/ui-editable.css +1 -1
  38. package/styles/ui-editor-insert-table-grid.css +1 -1
  39. package/styles/ui-editor-mention-menu.css +1 -1
  40. package/styles/ui-editor-slash-menu.css +1 -1
  41. package/styles/ui-editor-table-context-menu.css +1 -1
  42. package/styles/ui-editor-table-overlay.css +1 -1
  43. package/styles/ui-editor-table-toolbar.css +1 -1
  44. package/styles/ui-editor-toolbar.css +1 -1
  45. package/styles/ui-floating-action-button.css +1 -1
  46. package/styles/ui-form-field.css +24 -10
  47. package/styles/ui-grid.css +1 -1
  48. package/styles/ui-icon-button.css +52 -2
  49. package/styles/ui-icon.css +1 -1
  50. package/styles/ui-input.css +1 -1
  51. package/styles/ui-menu-item.css +1 -1
  52. package/styles/ui-menu.css +1 -1
  53. package/styles/ui-popover.css +1 -1
  54. package/styles/ui-radio-group.css +1 -1
  55. package/styles/ui-radio.css +1 -1
  56. package/styles/ui-reel.css +1 -1
  57. package/styles/ui-search-result-row.css +1 -1
  58. package/styles/ui-search-shell.css +11 -2
  59. package/styles/ui-select.css +1 -1
  60. package/styles/ui-separator.css +1 -1
  61. package/styles/ui-sidebar.css +1 -1
  62. package/styles/ui-stack.css +1 -1
  63. package/styles/ui-switch.css +1 -1
  64. package/styles/ui-switcher.css +1 -1
  65. package/styles/ui-tabs.css +1 -1
  66. package/styles/ui-textarea.css +1 -1
  67. package/styles/ui-toast-region.css +1 -1
  68. package/styles/ui-tooltip.css +1 -1
  69. package/styles/ui-top-bar.css +1 -1
  70. package/styles/ui-tree-item.css +10 -2
  71. package/styles/ui-tree.css +1 -1
  72. package/vanilla/UiAffordanceScope.d.ts +1 -1
  73. package/vanilla/UiAffordanceScope.js +2 -2
  74. package/vanilla/UiAvatar.d.ts +1 -1
  75. package/vanilla/UiAvatar.js +2 -2
  76. package/vanilla/UiAvatarGroup.d.ts +1 -1
  77. package/vanilla/UiAvatarGroup.js +2 -2
  78. package/vanilla/UiBadge.d.ts +1 -1
  79. package/vanilla/UiBadge.js +2 -2
  80. package/vanilla/UiButton.d.ts +3 -1
  81. package/vanilla/UiButton.js +3 -3
  82. package/vanilla/UiCallout.d.ts +1 -1
  83. package/vanilla/UiCallout.js +2 -2
  84. package/vanilla/UiCheckbox.d.ts +1 -1
  85. package/vanilla/UiCheckbox.js +2 -2
  86. package/vanilla/UiCluster.d.ts +1 -1
  87. package/vanilla/UiCluster.js +2 -2
  88. package/vanilla/UiCombobox.d.ts +1 -1
  89. package/vanilla/UiCombobox.js +3 -3
  90. package/vanilla/UiContainer.d.ts +1 -1
  91. package/vanilla/UiContainer.js +2 -2
  92. package/vanilla/UiContextMenu.d.ts +1 -1
  93. package/vanilla/UiContextMenu.js +2 -2
  94. package/vanilla/UiDialog.d.ts +1 -1
  95. package/vanilla/UiDialog.js +2 -2
  96. package/vanilla/UiDisclosure.d.ts +1 -1
  97. package/vanilla/UiDisclosure.js +2 -2
  98. package/vanilla/UiEditable.d.ts +1 -1
  99. package/vanilla/UiEditable.js +2 -2
  100. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  101. package/vanilla/UiEditorInsertTableGrid.js +3 -3
  102. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  103. package/vanilla/UiEditorMentionMenu.js +3 -3
  104. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  105. package/vanilla/UiEditorSlashMenu.js +2 -2
  106. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  107. package/vanilla/UiEditorTableContextMenu.js +3 -3
  108. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  109. package/vanilla/UiEditorTableOverlay.js +3 -3
  110. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  111. package/vanilla/UiEditorTableToolbar.js +3 -3
  112. package/vanilla/UiEditorToolbar.d.ts +1 -1
  113. package/vanilla/UiEditorToolbar.js +2 -2
  114. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  115. package/vanilla/UiFloatingActionButton.js +2 -2
  116. package/vanilla/UiFormField.d.ts +1 -1
  117. package/vanilla/UiFormField.js +15 -6
  118. package/vanilla/UiGrid.d.ts +1 -1
  119. package/vanilla/UiGrid.js +2 -2
  120. package/vanilla/UiIcon.d.ts +1 -1
  121. package/vanilla/UiIcon.js +3 -3
  122. package/vanilla/UiIconButton.d.ts +1 -1
  123. package/vanilla/UiIconButton.js +2 -2
  124. package/vanilla/UiInput.d.ts +1 -1
  125. package/vanilla/UiInput.js +2 -2
  126. package/vanilla/UiMenu.d.ts +1 -1
  127. package/vanilla/UiMenu.js +2 -2
  128. package/vanilla/UiMenuItem.d.ts +1 -1
  129. package/vanilla/UiMenuItem.js +2 -2
  130. package/vanilla/UiPopover.d.ts +1 -1
  131. package/vanilla/UiPopover.js +2 -2
  132. package/vanilla/UiRadio.d.ts +1 -1
  133. package/vanilla/UiRadio.js +2 -2
  134. package/vanilla/UiRadioGroup.d.ts +1 -1
  135. package/vanilla/UiRadioGroup.js +2 -2
  136. package/vanilla/UiReel.d.ts +1 -1
  137. package/vanilla/UiReel.js +2 -2
  138. package/vanilla/UiSearchResultRow.d.ts +1 -1
  139. package/vanilla/UiSearchResultRow.js +2 -2
  140. package/vanilla/UiSearchShell.d.ts +1 -1
  141. package/vanilla/UiSearchShell.js +2 -2
  142. package/vanilla/UiSelect.d.ts +1 -1
  143. package/vanilla/UiSelect.js +2 -2
  144. package/vanilla/UiSeparator.d.ts +1 -1
  145. package/vanilla/UiSeparator.js +2 -2
  146. package/vanilla/UiSidebar.d.ts +1 -1
  147. package/vanilla/UiSidebar.js +2 -2
  148. package/vanilla/UiStack.d.ts +1 -1
  149. package/vanilla/UiStack.js +2 -2
  150. package/vanilla/UiSwitch.d.ts +1 -1
  151. package/vanilla/UiSwitch.js +2 -2
  152. package/vanilla/UiSwitcher.d.ts +1 -1
  153. package/vanilla/UiSwitcher.js +2 -2
  154. package/vanilla/UiTabs.d.ts +1 -1
  155. package/vanilla/UiTabs.js +3 -3
  156. package/vanilla/UiTextarea.d.ts +1 -1
  157. package/vanilla/UiTextarea.js +2 -2
  158. package/vanilla/UiToastRegion.d.ts +1 -1
  159. package/vanilla/UiToastRegion.js +3 -3
  160. package/vanilla/UiTooltip.d.ts +1 -1
  161. package/vanilla/UiTooltip.js +2 -2
  162. package/vanilla/UiTopBar.d.ts +1 -1
  163. package/vanilla/UiTopBar.js +1 -1
  164. package/vanilla/UiTree.d.ts +1 -1
  165. package/vanilla/UiTree.js +2 -2
  166. package/vanilla/UiTreeItem.d.ts +1 -1
  167. package/vanilla/UiTreeItem.js +2 -2
  168. package/vue/UiAffordanceScope.d.ts +2 -2
  169. package/vue/UiAffordanceScope.vue +92 -73
  170. package/vue/UiAvatar.d.ts +7 -7
  171. package/vue/UiAvatar.vue +145 -105
  172. package/vue/UiAvatarGroup.d.ts +4 -4
  173. package/vue/UiAvatarGroup.vue +134 -118
  174. package/vue/UiBadge.d.ts +4 -4
  175. package/vue/UiBadge.vue +113 -114
  176. package/vue/UiButton.d.ts +10 -6
  177. package/vue/UiButton.vue +289 -220
  178. package/vue/UiCallout.d.ts +2 -2
  179. package/vue/UiCallout.vue +154 -87
  180. package/vue/UiCheckbox.d.ts +14 -10
  181. package/vue/UiCheckbox.vue +228 -162
  182. package/vue/UiCluster.d.ts +2 -2
  183. package/vue/UiCluster.vue +53 -60
  184. package/vue/UiCombobox.d.ts +36 -32
  185. package/vue/UiCombobox.vue +1005 -416
  186. package/vue/UiContainer.d.ts +2 -2
  187. package/vue/UiContainer.vue +48 -51
  188. package/vue/UiContextMenu.d.ts +6 -4
  189. package/vue/UiContextMenu.vue +205 -116
  190. package/vue/UiDialog.d.ts +11 -9
  191. package/vue/UiDialog.vue +287 -212
  192. package/vue/UiDisclosure.d.ts +8 -6
  193. package/vue/UiDisclosure.vue +248 -159
  194. package/vue/UiEditable.d.ts +16 -12
  195. package/vue/UiEditable.vue +325 -205
  196. package/vue/UiEditorInsertTableGrid.d.ts +8 -8
  197. package/vue/UiEditorInsertTableGrid.vue +216 -157
  198. package/vue/UiEditorMentionMenu.d.ts +9 -9
  199. package/vue/UiEditorMentionMenu.vue +265 -222
  200. package/vue/UiEditorSlashMenu.d.ts +7 -7
  201. package/vue/UiEditorSlashMenu.vue +286 -240
  202. package/vue/UiEditorTableContextMenu.d.ts +5 -5
  203. package/vue/UiEditorTableContextMenu.vue +306 -193
  204. package/vue/UiEditorTableOverlay.d.ts +2 -2
  205. package/vue/UiEditorTableOverlay.vue +609 -369
  206. package/vue/UiEditorTableToolbar.d.ts +7 -7
  207. package/vue/UiEditorTableToolbar.vue +443 -268
  208. package/vue/UiEditorToolbar.d.ts +2 -2
  209. package/vue/UiEditorToolbar.vue +134 -121
  210. package/vue/UiFloatingActionButton.d.ts +6 -6
  211. package/vue/UiFloatingActionButton.vue +100 -99
  212. package/vue/UiFormField.d.ts +6 -6
  213. package/vue/UiFormField.vue +112 -80
  214. package/vue/UiGrid.d.ts +2 -2
  215. package/vue/UiGrid.vue +51 -57
  216. package/vue/UiIcon.d.ts +2 -2
  217. package/vue/UiIcon.vue +118 -89
  218. package/vue/UiIconButton.d.ts +11 -11
  219. package/vue/UiIconButton.vue +285 -206
  220. package/vue/UiInput.d.ts +9 -9
  221. package/vue/UiInput.vue +153 -127
  222. package/vue/UiMenu.d.ts +8 -6
  223. package/vue/UiMenu.vue +217 -143
  224. package/vue/UiMenuItem.d.ts +4 -4
  225. package/vue/UiMenuItem.vue +52 -46
  226. package/vue/UiPopover.d.ts +8 -6
  227. package/vue/UiPopover.vue +197 -137
  228. package/vue/UiRadio.d.ts +14 -10
  229. package/vue/UiRadio.vue +183 -117
  230. package/vue/UiRadioGroup.d.ts +14 -12
  231. package/vue/UiRadioGroup.vue +172 -111
  232. package/vue/UiReel.d.ts +3 -3
  233. package/vue/UiReel.vue +77 -77
  234. package/vue/UiSearchResultRow.d.ts +4 -4
  235. package/vue/UiSearchResultRow.vue +124 -115
  236. package/vue/UiSearchShell.d.ts +10 -8
  237. package/vue/UiSearchShell.vue +245 -176
  238. package/vue/UiSelect.d.ts +9 -9
  239. package/vue/UiSelect.vue +162 -134
  240. package/vue/UiSeparator.d.ts +2 -2
  241. package/vue/UiSeparator.vue +22 -27
  242. package/vue/UiSidebar.d.ts +20 -18
  243. package/vue/UiSidebar.vue +312 -224
  244. package/vue/UiStack.d.ts +3 -3
  245. package/vue/UiStack.vue +64 -70
  246. package/vue/UiSwitch.d.ts +12 -8
  247. package/vue/UiSwitch.vue +218 -150
  248. package/vue/UiSwitcher.d.ts +3 -3
  249. package/vue/UiSwitcher.vue +73 -75
  250. package/vue/UiTabs.d.ts +10 -8
  251. package/vue/UiTabs.vue +251 -210
  252. package/vue/UiTextarea.d.ts +11 -11
  253. package/vue/UiTextarea.vue +155 -128
  254. package/vue/UiToastRegion.d.ts +10 -8
  255. package/vue/UiToastRegion.vue +261 -198
  256. package/vue/UiTooltip.d.ts +14 -12
  257. package/vue/UiTooltip.vue +241 -177
  258. package/vue/UiTopBar.vue +51 -42
  259. package/vue/UiTree.d.ts +8 -6
  260. package/vue/UiTree.vue +157 -70
  261. package/vue/UiTreeItem.d.ts +24 -22
  262. package/vue/UiTreeItem.vue +456 -339
  263. package/vue/chunks/UiAffordanceScope.js +9 -16
  264. package/vue/chunks/UiAvatar.js +23 -29
  265. package/vue/chunks/UiAvatarGroup.js +16 -39
  266. package/vue/chunks/UiBadge.js +3 -12
  267. package/vue/chunks/UiButton.js +15 -18
  268. package/vue/chunks/UiCallout.js +8 -17
  269. package/vue/chunks/UiCheckbox.js +37 -40
  270. package/vue/chunks/UiCluster.js +3 -12
  271. package/vue/chunks/UiCombobox.js +224 -266
  272. package/vue/chunks/UiContainer.js +3 -12
  273. package/vue/chunks/UiContextMenu.js +39 -34
  274. package/vue/chunks/UiDialog.js +36 -39
  275. package/vue/chunks/UiDisclosure.js +43 -48
  276. package/vue/chunks/UiEditable.js +55 -57
  277. package/vue/chunks/UiEditorInsertTableGrid.js +55 -73
  278. package/vue/chunks/UiEditorMentionMenu.js +40 -81
  279. package/vue/chunks/UiEditorSlashMenu.js +28 -52
  280. package/vue/chunks/UiEditorTableContextMenu.js +32 -56
  281. package/vue/chunks/UiEditorTableOverlay.js +58 -82
  282. package/vue/chunks/UiEditorTableToolbar.js +61 -85
  283. package/vue/chunks/UiEditorToolbar.js +4 -13
  284. package/vue/chunks/UiFloatingActionButton.js +7 -21
  285. package/vue/chunks/UiFormField.js +15 -12
  286. package/vue/chunks/UiGrid.js +3 -12
  287. package/vue/chunks/UiIcon.js +20 -43
  288. package/vue/chunks/UiIconButton.js +16 -28
  289. package/vue/chunks/UiInput.js +20 -25
  290. package/vue/chunks/UiMenu.js +29 -33
  291. package/vue/chunks/UiMenuItem.js +4 -10
  292. package/vue/chunks/UiPopover.js +28 -29
  293. package/vue/chunks/UiRadio.js +36 -39
  294. package/vue/chunks/UiRadioGroup.js +30 -34
  295. package/vue/chunks/UiReel.js +6 -15
  296. package/vue/chunks/UiSearchResultRow.js +6 -19
  297. package/vue/chunks/UiSearchShell.js +25 -28
  298. package/vue/chunks/UiSelect.js +20 -23
  299. package/vue/chunks/UiSeparator.js +2 -8
  300. package/vue/chunks/UiSidebar.js +39 -44
  301. package/vue/chunks/UiStack.js +6 -15
  302. package/vue/chunks/UiSwitch.js +35 -38
  303. package/vue/chunks/UiSwitcher.js +6 -15
  304. package/vue/chunks/UiTabs.js +47 -85
  305. package/vue/chunks/UiTextarea.js +21 -26
  306. package/vue/chunks/UiToastRegion.js +38 -72
  307. package/vue/chunks/UiTooltip.js +34 -35
  308. package/vue/chunks/UiTopBar.js +1 -1
  309. package/vue/chunks/UiTree.js +20 -15
  310. package/vue/chunks/UiTreeItem.js +85 -102
  311. package/vue/components.css +3994 -3764
  312. package/vue/index.d.ts +1 -0
  313. package/vue/index.js +2 -1
@@ -1,12 +1,12 @@
1
1
  type __VLS_Props = {
2
- floating?: boolean | null;
2
+ floating?: boolean;
3
3
  };
4
4
  declare var __VLS_1: {};
5
5
  type __VLS_Slots = {} & {
6
6
  default?: (props: typeof __VLS_1) => any;
7
7
  };
8
8
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
9
- floating: boolean | null;
9
+ floating: boolean;
10
10
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
11
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
12
  declare const _default: typeof __VLS_export;
@@ -1,138 +1,151 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.1 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.2 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
- import { computed } from "vue";
4
-
5
- defineOptions({ inheritAttrs: false });
6
-
7
- const hn = {
8
- t: (v: unknown): boolean => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false),
9
- };
10
-
11
- const props = withDefaults(defineProps<{
12
- floating?: boolean | null;
13
- }>(), {
14
- floating: false,
15
- });
16
-
17
- /** The resolved values the styles' :host-state() rules test. */
18
- const hostState = computed(() => (["floating"] as const).flatMap((name) => {
19
- const value = read(name);
20
- const tokens: string[] = hn.t(value) ? [name] : [];
21
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
22
- return tokens;
23
- }).join(" "));
24
-
25
- function read(name: string): unknown {
26
- return (props as Record<string, unknown>)[name];
27
- }
28
-
3
+ import { computed } from 'vue'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const props = withDefaults(
8
+ defineProps<{
9
+ floating?: boolean
10
+ }>(),
11
+ {
12
+ floating: false,
13
+ },
14
+ )
15
+
16
+ /** The values the styles' :host-state() rules test. */
17
+ const hostState = computed(() =>
18
+ [
19
+ props.floating && 'floating',
20
+ ].filter(Boolean).join(' ')
21
+ )
29
22
  </script>
30
23
 
31
24
  <template>
32
- <div data-component="ui-editor-toolbar" role="toolbar" aria-label="Editor toolbar" v-bind="$attrs" :data-ui-editor-toolbar-state="hostState || undefined"><slot></slot></div>
25
+ <div
26
+ data-component="ui-editor-toolbar"
27
+ role="toolbar"
28
+ aria-label="Editor toolbar"
29
+ v-bind="$attrs"
30
+ :data-ui-editor-toolbar-state="hostState || undefined"
31
+ >
32
+ <slot />
33
+ </div>
33
34
  </template>
34
35
 
35
36
  <style scoped>
36
37
  [data-component~="ui-editor-toolbar"] {
37
- position: sticky;
38
- top: 0;
39
- z-index: var(--ui-editor-toolbar-z-index, 10);
40
- display: flex;
41
- align-items: center;
42
- justify-content: flex-start;
43
- gap: var(--ui-editor-toolbar-gap, 2px);
44
- padding: var(--ui-editor-toolbar-padding-block, 6px) var(--ui-editor-toolbar-padding-inline, 12px);
45
- min-height: var(--ui-editor-toolbar-min-height, 48px);
46
- overflow-x: auto;
47
- scrollbar-width: none;
48
- white-space: nowrap;
49
- background: var(--ui-editor-toolbar-bg, var(--ui-surface, #fff));
50
- border-bottom: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
51
- }
52
-
53
- [data-component~="ui-editor-toolbar"]::-webkit-scrollbar {
54
- display: none;
55
- }
38
+ position: sticky;
39
+ top: 0;
40
+ z-index: var(--ui-editor-toolbar-z-index, 10);
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: flex-start;
44
+ gap: var(--ui-editor-toolbar-gap, 2px);
45
+ padding: var(--ui-editor-toolbar-padding-block, 6px)
46
+ var(--ui-editor-toolbar-padding-inline, 12px);
47
+ min-height: var(--ui-editor-toolbar-min-height, 48px);
48
+ overflow-x: auto;
49
+ scrollbar-width: none;
50
+ white-space: nowrap;
51
+ background: var(--ui-editor-toolbar-bg, var(--ui-surface, #fff));
52
+ border-bottom: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
53
+ }
56
54
 
57
- [data-component~="ui-editor-toolbar"] > :slotted(*) {
58
- flex: 0 0 auto;
59
- }
55
+ [data-component~="ui-editor-toolbar"]::-webkit-scrollbar {
56
+ display: none;
57
+ }
60
58
 
61
- :slotted(.divider) {
62
- width: 1px;
63
- height: 20px;
64
- background: var(--ui-editor-toolbar-divider, var(--ui-border, #e5e7eb));
65
- flex-shrink: 0;
66
- margin: 0 var(--ui-editor-toolbar-divider-margin, 4px);
67
- }
59
+ [data-component~="ui-editor-toolbar"] > :slotted(*) {
60
+ flex: 0 0 auto;
61
+ }
68
62
 
69
- [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"] {
70
- position: static;
71
- top: auto;
72
- width: max-content;
73
- max-width: min(calc(100vw - 24px), 100%);
74
- min-height: auto;
75
- padding: var(--ui-editor-toolbar-floating-padding, 4px);
76
- overflow-x: visible;
77
- background: color-mix(in srgb, var(--ui-editor-toolbar-bg, var(--ui-surface, #fff)) 96%, transparent);
78
- border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
79
- border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg, 10px));
80
- box-shadow: var(--ui-editor-toolbar-floating-shadow, var(--ui-shadow-lg, 0 10px 24px rgb(0 0 0 / 0.12)));
81
- backdrop-filter: blur(10px);
82
- }
63
+ :slotted(.divider) {
64
+ width: 1px;
65
+ height: 20px;
66
+ background: var(--ui-editor-toolbar-divider, var(--ui-border, #e5e7eb));
67
+ flex-shrink: 0;
68
+ margin: 0 var(--ui-editor-toolbar-divider-margin, 4px);
69
+ }
83
70
 
84
- @media (max-width: 767px) {
85
- [data-component~="ui-editor-toolbar"] {
86
- position: fixed;
87
- top: auto;
88
- bottom: env(safe-area-inset-bottom);
89
- left: 0;
90
- right: 0;
91
- min-height: var(--ui-editor-toolbar-mobile-min-height, 56px);
92
- border-top: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
93
- border-bottom: none;
94
- box-shadow: var(--ui-editor-toolbar-mobile-shadow, 0 -2px 8px rgb(0 0 0 / 0.06));
95
- }
71
+ [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"] {
72
+ position: static;
73
+ top: auto;
74
+ width: max-content;
75
+ max-width: min(calc(100vw - 24px), 100%);
76
+ min-height: auto;
77
+ padding: var(--ui-editor-toolbar-floating-padding, 4px);
78
+ overflow-x: visible;
79
+ background: color-mix(
80
+ in srgb,
81
+ var(--ui-editor-toolbar-bg, var(--ui-surface, #fff)) 96%,
82
+ transparent
83
+ );
84
+ border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
85
+ border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg, 10px));
86
+ box-shadow: var(
87
+ --ui-editor-toolbar-floating-shadow,
88
+ var(--ui-shadow-lg, 0 10px 24px rgb(0 0 0 / 0.12))
89
+ );
90
+ backdrop-filter: blur(10px);
91
+ }
96
92
 
97
- [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"] {
98
- position: static;
99
- inset: auto;
100
- min-height: auto;
101
- border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
102
- border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg, 10px));
103
- box-shadow: var(--ui-editor-toolbar-floating-shadow, var(--ui-shadow-lg, 0 10px 24px rgb(0 0 0 / 0.12)));
104
- }
105
- }
93
+ @media (max-width: 767px) {
94
+ [data-component~="ui-editor-toolbar"] {
95
+ position: fixed;
96
+ top: auto;
97
+ bottom: env(safe-area-inset-bottom);
98
+ left: 0;
99
+ right: 0;
100
+ min-height: var(--ui-editor-toolbar-mobile-min-height, 56px);
101
+ border-top: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
102
+ border-bottom: none;
103
+ box-shadow: var(--ui-editor-toolbar-mobile-shadow, 0 -2px 8px rgb(0 0 0 / 0.06));
104
+ }
105
+
106
+ [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"] {
107
+ position: static;
108
+ inset: auto;
109
+ min-height: auto;
110
+ border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
111
+ border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg, 10px));
112
+ box-shadow: var(
113
+ --ui-editor-toolbar-floating-shadow,
114
+ var(--ui-shadow-lg, 0 10px 24px rgb(0 0 0 / 0.12))
115
+ );
116
+ }
117
+ }
106
118
 
107
- /* Inside LoomaEditor's sticky shell, the shell is the sticky surface. */
108
- .looma-editor__sticky-toolbar-shell [data-component~="ui-editor-toolbar"] {
109
- position: static;
110
- min-height: var(--ui-editor-toolbar-min-height, 48px);
111
- overscroll-behavior-inline: contain;
112
- background: transparent;
113
- border: 0;
114
- box-shadow: none;
115
- }
119
+ /* Inside LoomaEditor's sticky shell, the shell is the sticky surface. */
120
+ .looma-editor__sticky-toolbar-shell [data-component~="ui-editor-toolbar"] {
121
+ position: static;
122
+ min-height: var(--ui-editor-toolbar-min-height, 48px);
123
+ overscroll-behavior-inline: contain;
124
+ background: transparent;
125
+ border: 0;
126
+ box-shadow: none;
127
+ }
116
128
 
117
- /* Inside LoomaEditor's mobile shell, the toolbar is a scroll-snapping strip. */
118
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"] {
119
- width: 100%;
120
- max-width: none;
121
- min-height: 100%;
122
- padding: 0;
123
- overflow-x: auto;
124
- overflow-y: hidden;
125
- overscroll-behavior-inline: contain;
126
- scroll-snap-type: x mandatory;
127
- background: transparent;
128
- border: 0;
129
- border-radius: 0;
130
- box-shadow: none;
131
- backdrop-filter: none;
132
- }
129
+ /* Inside LoomaEditor's mobile shell, the toolbar is a scroll-snapping strip. */
130
+ .looma-editor__mobile-toolbar-shell
131
+ [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"] {
132
+ width: 100%;
133
+ max-width: none;
134
+ min-height: 100%;
135
+ padding: 0;
136
+ overflow-x: auto;
137
+ overflow-y: hidden;
138
+ overscroll-behavior-inline: contain;
139
+ scroll-snap-type: x mandatory;
140
+ background: transparent;
141
+ border: 0;
142
+ border-radius: 0;
143
+ box-shadow: none;
144
+ backdrop-filter: none;
145
+ }
133
146
 
134
- /* A component that sets its display still honours the hidden attribute on its root. */
135
- [data-component~="ui-editor-toolbar"][hidden] {
136
- display: none;
137
- }
147
+ /* A component that sets its display still honours the hidden attribute on its root. */
148
+ [data-component~="ui-editor-toolbar"][hidden] {
149
+ display: none;
150
+ }
138
151
  </style>
@@ -1,16 +1,16 @@
1
1
  type __VLS_Props = {
2
- disabled?: boolean | null;
3
- label?: string | null;
4
- mobileOnly?: boolean | null;
2
+ disabled?: boolean;
3
+ label?: string;
4
+ mobileOnly?: boolean;
5
5
  };
6
6
  declare var __VLS_1: {};
7
7
  type __VLS_Slots = {} & {
8
8
  default?: (props: typeof __VLS_1) => any;
9
9
  };
10
10
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
11
- label: string | null;
12
- disabled: boolean | null;
13
- mobileOnly: boolean | null;
11
+ label: string;
12
+ disabled: boolean;
13
+ mobileOnly: boolean;
14
14
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
15
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
16
  declare const _default: typeof __VLS_export;
@@ -1,116 +1,117 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.1 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.2 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
- import { computed } from "vue";
4
-
5
- defineOptions({ inheritAttrs: false });
6
-
7
- const hn = {
8
- t: (v: unknown): boolean => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false),
9
- text: (v: unknown): string => v === undefined || v === null ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? "" : String(v),
10
- attr: (v: unknown): any => v === undefined || v === null || v === false ? undefined : v === true ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? undefined : String(v),
11
- enumerated: (v: unknown): any => typeof v === "boolean" ? String(v) : hn.attr(v),
12
- };
13
-
14
- const props = withDefaults(defineProps<{
15
- disabled?: boolean | null;
16
- label?: string | null;
17
- mobileOnly?: boolean | null;
18
- }>(), {
19
- disabled: false,
20
- label: "",
21
- mobileOnly: false,
22
- });
23
-
24
- /** The resolved values the styles' :host-state() rules test. */
25
- const hostState = computed(() => (["mobileOnly"] as const).flatMap((name) => {
26
- const value = read(name);
27
- const tokens: string[] = hn.t(value) ? [name] : [];
28
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
29
- return tokens;
30
- }).join(" "));
31
-
32
- function read(name: string): unknown {
33
- return (props as Record<string, unknown>)[name];
34
- }
35
-
3
+ import { computed } from 'vue'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const props = withDefaults(
8
+ defineProps<{
9
+ disabled?: boolean
10
+ label?: string
11
+ mobileOnly?: boolean
12
+ }>(),
13
+ {
14
+ disabled: false,
15
+ label: '',
16
+ mobileOnly: false,
17
+ },
18
+ )
19
+
20
+ /** The values the styles' :host-state() rules test. */
21
+ const hostState = computed(() =>
22
+ [
23
+ props.mobileOnly && 'mobileOnly',
24
+ ].filter(Boolean).join(' ')
25
+ )
36
26
  </script>
37
27
 
38
28
  <template>
39
- <button data-component="ui-floating-action-button" type="button" v-bind="$attrs" :aria-label="hn.enumerated(props.label)" :disabled="hn.attr(props.disabled)" :data-ui-floating-action-button-state="hostState || undefined"><slot></slot></button>
29
+ <button
30
+ data-component="ui-floating-action-button"
31
+ type="button"
32
+ v-bind="$attrs"
33
+ :aria-label="label"
34
+ :disabled="disabled"
35
+ :data-ui-floating-action-button-state="hostState || undefined"
36
+ >
37
+ <slot />
38
+ </button>
40
39
  </template>
41
40
 
42
41
  <style scoped>
43
42
  [data-component~="ui-floating-action-button"] {
44
- position: fixed;
45
- inset-block-end: calc(var(--ui-floating-action-button-bottom, var(--ui-space-6, 1.5rem)) + env(safe-area-inset-bottom));
46
- inset-inline-end: max(
47
- var(--ui-floating-action-button-inline-end, var(--ui-space-5, 1.25rem)),
48
- env(safe-area-inset-right)
49
- );
50
- inline-size: var(--ui-floating-action-button-size, 56px);
51
- block-size: var(--ui-floating-action-button-size, 56px);
52
- display: inline-flex;
53
- z-index: var(--ui-floating-action-button-z-index, 100);
54
- }
43
+ position: fixed;
44
+ inset-block-end: calc(
45
+ var(--ui-floating-action-button-bottom, var(--ui-space-6, 1.5rem)) + env(safe-area-inset-bottom)
46
+ );
47
+ inset-inline-end: max(
48
+ var(--ui-floating-action-button-inline-end, var(--ui-space-5, 1.25rem)),
49
+ env(safe-area-inset-right)
50
+ );
51
+ inline-size: var(--ui-floating-action-button-size, 56px);
52
+ block-size: var(--ui-floating-action-button-size, 56px);
53
+ display: inline-flex;
54
+ z-index: var(--ui-floating-action-button-z-index, 100);
55
+ }
55
56
 
56
- [data-component~="ui-floating-action-button"] {
57
- appearance: none;
58
- border: none;
59
- border-radius: 999px;
60
- margin: 0;
61
- padding: 0;
62
- display: inline-flex;
63
- align-items: center;
64
- justify-content: center;
65
- background: var(--ui-floating-action-button-bg, var(--ui-accent-solid));
66
- color: var(--ui-floating-action-button-color, var(--ui-text-on-accent));
67
- box-shadow: var(
68
- --ui-floating-action-button-shadow,
69
- 0 4px 12px color-mix(in srgb, var(--ui-accent-solid) 40%, transparent)
70
- );
71
- cursor: pointer;
72
- transition:
73
- background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease),
74
- transform var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease),
75
- box-shadow var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease);
76
- }
57
+ [data-component~="ui-floating-action-button"] {
58
+ appearance: none;
59
+ border: none;
60
+ border-radius: 999px;
61
+ margin: 0;
62
+ padding: 0;
63
+ display: inline-flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ background: var(--ui-floating-action-button-bg, var(--ui-accent-solid));
67
+ color: var(--ui-floating-action-button-color, var(--ui-text-on-accent));
68
+ box-shadow: var(
69
+ --ui-floating-action-button-shadow,
70
+ 0 4px 12px color-mix(in srgb, var(--ui-accent-solid) 40%, transparent)
71
+ );
72
+ cursor: pointer;
73
+ transition:
74
+ background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease),
75
+ transform var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease),
76
+ box-shadow var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease);
77
+ }
77
78
 
78
- [data-component~="ui-floating-action-button"]:hover:enabled {
79
- background: var(--ui-floating-action-button-hover-bg, var(--ui-accent-hover));
80
- box-shadow: var(
81
- --ui-floating-action-button-hover-shadow,
82
- 0 6px 16px color-mix(in srgb, var(--ui-accent-solid) 50%, transparent)
83
- );
84
- }
79
+ [data-component~="ui-floating-action-button"]:hover:enabled {
80
+ background: var(--ui-floating-action-button-hover-bg, var(--ui-accent-hover));
81
+ box-shadow: var(
82
+ --ui-floating-action-button-hover-shadow,
83
+ 0 6px 16px color-mix(in srgb, var(--ui-accent-solid) 50%, transparent)
84
+ );
85
+ }
85
86
 
86
- [data-component~="ui-floating-action-button"]:active:enabled {
87
- transform: scale(var(--ui-floating-action-button-active-scale, 0.94));
88
- }
87
+ [data-component~="ui-floating-action-button"]:active:enabled {
88
+ transform: scale(var(--ui-floating-action-button-active-scale, 0.94));
89
+ }
89
90
 
90
- [data-component~="ui-floating-action-button"]:focus-visible {
91
- outline: 2px solid var(--ui-focus-ring, currentColor);
92
- outline-offset: 2px;
93
- }
91
+ [data-component~="ui-floating-action-button"]:focus-visible {
92
+ outline: 2px solid var(--ui-focus-ring, currentColor);
93
+ outline-offset: 2px;
94
+ }
94
95
 
95
- [data-component~="ui-floating-action-button"]:disabled {
96
- opacity: 0.6;
97
- cursor: not-allowed;
98
- }
96
+ [data-component~="ui-floating-action-button"]:disabled {
97
+ opacity: 0.6;
98
+ cursor: not-allowed;
99
+ }
99
100
 
100
- :slotted(svg) {
101
- inline-size: var(--ui-floating-action-button-icon-size, 24px);
102
- block-size: var(--ui-floating-action-button-icon-size, 24px);
103
- flex-shrink: 0;
104
- }
101
+ :slotted(svg) {
102
+ inline-size: var(--ui-floating-action-button-icon-size, 24px);
103
+ block-size: var(--ui-floating-action-button-icon-size, 24px);
104
+ flex-shrink: 0;
105
+ }
105
106
 
106
- @media (min-width: 768px) {
107
- [data-component~="ui-floating-action-button"][data-ui-floating-action-button-state~="mobileOnly"] {
108
- display: none;
109
- }
110
- }
107
+ @media (min-width: 768px) {
108
+ [data-component~="ui-floating-action-button"][data-ui-floating-action-button-state~="mobileOnly"] {
109
+ display: none;
110
+ }
111
+ }
111
112
 
112
- /* A component that sets its display still honours the hidden attribute on its root. */
113
- [data-component~="ui-floating-action-button"][hidden] {
114
- display: none;
115
- }
113
+ /* A component that sets its display still honours the hidden attribute on its root. */
114
+ [data-component~="ui-floating-action-button"][hidden] {
115
+ display: none;
116
+ }
116
117
  </style>
@@ -1,7 +1,7 @@
1
1
  type __VLS_Props = {
2
- disabled?: boolean | null;
3
- invalid?: boolean | null;
4
- required?: boolean | null;
2
+ disabled?: boolean;
3
+ invalid?: boolean;
4
+ required?: boolean;
5
5
  };
6
6
  declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {};
7
7
  type __VLS_Slots = {} & {
@@ -14,9 +14,9 @@ type __VLS_Slots = {} & {
14
14
  error?: (props: typeof __VLS_7) => any;
15
15
  };
16
16
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
17
- invalid: boolean | null;
18
- disabled: boolean | null;
19
- required: boolean | null;
17
+ invalid: boolean;
18
+ disabled: boolean;
19
+ required: boolean;
20
20
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
21
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
22
22
  declare const _default: typeof __VLS_export;