@threadlabs/looma 0.5.1 → 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 (309) hide show
  1. package/README.md +1 -1
  2. package/components/ui-button/ui-button.html +13 -0
  3. package/components/ui-combobox/ui-combobox.html +12 -4
  4. package/components/ui-dialog/ui-dialog.html +13 -0
  5. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +1 -1
  6. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  7. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +6 -2
  8. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +20 -4
  9. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +8 -4
  10. package/components/ui-form-field/ui-form-field.html +18 -7
  11. package/components/ui-icon/ui-icon.html +5 -1
  12. package/components/ui-icon-button/ui-icon-button.html +30 -0
  13. package/components/ui-popover/ui-popover.js +10 -2
  14. package/components/ui-search-shell/ui-search-shell.html +7 -0
  15. package/components/ui-search-shell/ui-search-shell.js +9 -0
  16. package/components/ui-tabs/ui-tabs.html +1 -1
  17. package/components/ui-toast-region/ui-toast-region.html +1 -1
  18. package/components/ui-tree-item/ui-tree-item.html +6 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.js +2 -2
  21. package/package.json +2 -2
  22. package/styles/ui-affordance-scope.css +1 -1
  23. package/styles/ui-avatar-group.css +1 -1
  24. package/styles/ui-avatar.css +1 -1
  25. package/styles/ui-badge.css +1 -1
  26. package/styles/ui-button.css +11 -1
  27. package/styles/ui-callout.css +1 -1
  28. package/styles/ui-checkbox.css +1 -1
  29. package/styles/ui-cluster.css +1 -1
  30. package/styles/ui-combobox.css +1 -1
  31. package/styles/ui-container.css +1 -1
  32. package/styles/ui-context-menu.css +1 -1
  33. package/styles/ui-dialog.css +18 -1
  34. package/styles/ui-disclosure.css +1 -1
  35. package/styles/ui-editable.css +1 -1
  36. package/styles/ui-editor-insert-table-grid.css +1 -1
  37. package/styles/ui-editor-mention-menu.css +1 -1
  38. package/styles/ui-editor-slash-menu.css +1 -1
  39. package/styles/ui-editor-table-context-menu.css +1 -1
  40. package/styles/ui-editor-table-overlay.css +1 -1
  41. package/styles/ui-editor-table-toolbar.css +1 -1
  42. package/styles/ui-editor-toolbar.css +1 -1
  43. package/styles/ui-floating-action-button.css +1 -1
  44. package/styles/ui-form-field.css +24 -10
  45. package/styles/ui-grid.css +1 -1
  46. package/styles/ui-icon-button.css +36 -1
  47. package/styles/ui-icon.css +1 -1
  48. package/styles/ui-input.css +1 -1
  49. package/styles/ui-menu-item.css +1 -1
  50. package/styles/ui-menu.css +1 -1
  51. package/styles/ui-popover.css +1 -1
  52. package/styles/ui-radio-group.css +1 -1
  53. package/styles/ui-radio.css +1 -1
  54. package/styles/ui-reel.css +1 -1
  55. package/styles/ui-search-result-row.css +1 -1
  56. package/styles/ui-search-shell.css +11 -2
  57. package/styles/ui-select.css +1 -1
  58. package/styles/ui-separator.css +1 -1
  59. package/styles/ui-sidebar.css +1 -1
  60. package/styles/ui-stack.css +1 -1
  61. package/styles/ui-switch.css +1 -1
  62. package/styles/ui-switcher.css +1 -1
  63. package/styles/ui-tabs.css +1 -1
  64. package/styles/ui-textarea.css +1 -1
  65. package/styles/ui-toast-region.css +1 -1
  66. package/styles/ui-tooltip.css +1 -1
  67. package/styles/ui-top-bar.css +1 -1
  68. package/styles/ui-tree-item.css +10 -2
  69. package/styles/ui-tree.css +1 -1
  70. package/vanilla/UiAffordanceScope.d.ts +1 -1
  71. package/vanilla/UiAffordanceScope.js +2 -2
  72. package/vanilla/UiAvatar.d.ts +1 -1
  73. package/vanilla/UiAvatar.js +2 -2
  74. package/vanilla/UiAvatarGroup.d.ts +1 -1
  75. package/vanilla/UiAvatarGroup.js +2 -2
  76. package/vanilla/UiBadge.d.ts +1 -1
  77. package/vanilla/UiBadge.js +2 -2
  78. package/vanilla/UiButton.d.ts +3 -1
  79. package/vanilla/UiButton.js +3 -3
  80. package/vanilla/UiCallout.d.ts +1 -1
  81. package/vanilla/UiCallout.js +2 -2
  82. package/vanilla/UiCheckbox.d.ts +1 -1
  83. package/vanilla/UiCheckbox.js +2 -2
  84. package/vanilla/UiCluster.d.ts +1 -1
  85. package/vanilla/UiCluster.js +2 -2
  86. package/vanilla/UiCombobox.d.ts +1 -1
  87. package/vanilla/UiCombobox.js +3 -3
  88. package/vanilla/UiContainer.d.ts +1 -1
  89. package/vanilla/UiContainer.js +2 -2
  90. package/vanilla/UiContextMenu.d.ts +1 -1
  91. package/vanilla/UiContextMenu.js +2 -2
  92. package/vanilla/UiDialog.d.ts +1 -1
  93. package/vanilla/UiDialog.js +2 -2
  94. package/vanilla/UiDisclosure.d.ts +1 -1
  95. package/vanilla/UiDisclosure.js +2 -2
  96. package/vanilla/UiEditable.d.ts +1 -1
  97. package/vanilla/UiEditable.js +2 -2
  98. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  99. package/vanilla/UiEditorInsertTableGrid.js +3 -3
  100. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  101. package/vanilla/UiEditorMentionMenu.js +3 -3
  102. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  103. package/vanilla/UiEditorSlashMenu.js +2 -2
  104. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  105. package/vanilla/UiEditorTableContextMenu.js +3 -3
  106. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  107. package/vanilla/UiEditorTableOverlay.js +3 -3
  108. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  109. package/vanilla/UiEditorTableToolbar.js +3 -3
  110. package/vanilla/UiEditorToolbar.d.ts +1 -1
  111. package/vanilla/UiEditorToolbar.js +2 -2
  112. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  113. package/vanilla/UiFloatingActionButton.js +2 -2
  114. package/vanilla/UiFormField.d.ts +1 -1
  115. package/vanilla/UiFormField.js +15 -6
  116. package/vanilla/UiGrid.d.ts +1 -1
  117. package/vanilla/UiGrid.js +2 -2
  118. package/vanilla/UiIcon.d.ts +1 -1
  119. package/vanilla/UiIcon.js +3 -3
  120. package/vanilla/UiIconButton.d.ts +1 -1
  121. package/vanilla/UiIconButton.js +2 -2
  122. package/vanilla/UiInput.d.ts +1 -1
  123. package/vanilla/UiInput.js +2 -2
  124. package/vanilla/UiMenu.d.ts +1 -1
  125. package/vanilla/UiMenu.js +2 -2
  126. package/vanilla/UiMenuItem.d.ts +1 -1
  127. package/vanilla/UiMenuItem.js +2 -2
  128. package/vanilla/UiPopover.d.ts +1 -1
  129. package/vanilla/UiPopover.js +2 -2
  130. package/vanilla/UiRadio.d.ts +1 -1
  131. package/vanilla/UiRadio.js +2 -2
  132. package/vanilla/UiRadioGroup.d.ts +1 -1
  133. package/vanilla/UiRadioGroup.js +2 -2
  134. package/vanilla/UiReel.d.ts +1 -1
  135. package/vanilla/UiReel.js +2 -2
  136. package/vanilla/UiSearchResultRow.d.ts +1 -1
  137. package/vanilla/UiSearchResultRow.js +2 -2
  138. package/vanilla/UiSearchShell.d.ts +1 -1
  139. package/vanilla/UiSearchShell.js +2 -2
  140. package/vanilla/UiSelect.d.ts +1 -1
  141. package/vanilla/UiSelect.js +2 -2
  142. package/vanilla/UiSeparator.d.ts +1 -1
  143. package/vanilla/UiSeparator.js +2 -2
  144. package/vanilla/UiSidebar.d.ts +1 -1
  145. package/vanilla/UiSidebar.js +2 -2
  146. package/vanilla/UiStack.d.ts +1 -1
  147. package/vanilla/UiStack.js +2 -2
  148. package/vanilla/UiSwitch.d.ts +1 -1
  149. package/vanilla/UiSwitch.js +2 -2
  150. package/vanilla/UiSwitcher.d.ts +1 -1
  151. package/vanilla/UiSwitcher.js +2 -2
  152. package/vanilla/UiTabs.d.ts +1 -1
  153. package/vanilla/UiTabs.js +3 -3
  154. package/vanilla/UiTextarea.d.ts +1 -1
  155. package/vanilla/UiTextarea.js +2 -2
  156. package/vanilla/UiToastRegion.d.ts +1 -1
  157. package/vanilla/UiToastRegion.js +3 -3
  158. package/vanilla/UiTooltip.d.ts +1 -1
  159. package/vanilla/UiTooltip.js +2 -2
  160. package/vanilla/UiTopBar.d.ts +1 -1
  161. package/vanilla/UiTopBar.js +1 -1
  162. package/vanilla/UiTree.d.ts +1 -1
  163. package/vanilla/UiTree.js +2 -2
  164. package/vanilla/UiTreeItem.d.ts +1 -1
  165. package/vanilla/UiTreeItem.js +2 -2
  166. package/vue/UiAffordanceScope.d.ts +2 -2
  167. package/vue/UiAffordanceScope.vue +92 -73
  168. package/vue/UiAvatar.d.ts +7 -7
  169. package/vue/UiAvatar.vue +145 -105
  170. package/vue/UiAvatarGroup.d.ts +4 -4
  171. package/vue/UiAvatarGroup.vue +134 -118
  172. package/vue/UiBadge.d.ts +4 -4
  173. package/vue/UiBadge.vue +113 -114
  174. package/vue/UiButton.d.ts +10 -6
  175. package/vue/UiButton.vue +289 -248
  176. package/vue/UiCallout.d.ts +2 -2
  177. package/vue/UiCallout.vue +154 -87
  178. package/vue/UiCheckbox.d.ts +14 -10
  179. package/vue/UiCheckbox.vue +228 -162
  180. package/vue/UiCluster.d.ts +2 -2
  181. package/vue/UiCluster.vue +53 -60
  182. package/vue/UiCombobox.d.ts +36 -32
  183. package/vue/UiCombobox.vue +1005 -416
  184. package/vue/UiContainer.d.ts +2 -2
  185. package/vue/UiContainer.vue +48 -51
  186. package/vue/UiContextMenu.d.ts +6 -4
  187. package/vue/UiContextMenu.vue +205 -116
  188. package/vue/UiDialog.d.ts +11 -9
  189. package/vue/UiDialog.vue +287 -212
  190. package/vue/UiDisclosure.d.ts +8 -6
  191. package/vue/UiDisclosure.vue +248 -159
  192. package/vue/UiEditable.d.ts +16 -12
  193. package/vue/UiEditable.vue +325 -205
  194. package/vue/UiEditorInsertTableGrid.d.ts +8 -8
  195. package/vue/UiEditorInsertTableGrid.vue +216 -157
  196. package/vue/UiEditorMentionMenu.d.ts +9 -9
  197. package/vue/UiEditorMentionMenu.vue +265 -222
  198. package/vue/UiEditorSlashMenu.d.ts +7 -7
  199. package/vue/UiEditorSlashMenu.vue +286 -240
  200. package/vue/UiEditorTableContextMenu.d.ts +5 -5
  201. package/vue/UiEditorTableContextMenu.vue +306 -193
  202. package/vue/UiEditorTableOverlay.d.ts +2 -2
  203. package/vue/UiEditorTableOverlay.vue +609 -369
  204. package/vue/UiEditorTableToolbar.d.ts +7 -7
  205. package/vue/UiEditorTableToolbar.vue +443 -268
  206. package/vue/UiEditorToolbar.d.ts +2 -2
  207. package/vue/UiEditorToolbar.vue +134 -121
  208. package/vue/UiFloatingActionButton.d.ts +6 -6
  209. package/vue/UiFloatingActionButton.vue +100 -99
  210. package/vue/UiFormField.d.ts +6 -6
  211. package/vue/UiFormField.vue +112 -80
  212. package/vue/UiGrid.d.ts +2 -2
  213. package/vue/UiGrid.vue +51 -57
  214. package/vue/UiIcon.d.ts +2 -2
  215. package/vue/UiIcon.vue +118 -89
  216. package/vue/UiIconButton.d.ts +11 -11
  217. package/vue/UiIconButton.vue +283 -217
  218. package/vue/UiInput.d.ts +9 -9
  219. package/vue/UiInput.vue +153 -127
  220. package/vue/UiMenu.d.ts +8 -6
  221. package/vue/UiMenu.vue +217 -143
  222. package/vue/UiMenuItem.d.ts +4 -4
  223. package/vue/UiMenuItem.vue +52 -46
  224. package/vue/UiPopover.d.ts +8 -6
  225. package/vue/UiPopover.vue +197 -137
  226. package/vue/UiRadio.d.ts +14 -10
  227. package/vue/UiRadio.vue +183 -117
  228. package/vue/UiRadioGroup.d.ts +14 -12
  229. package/vue/UiRadioGroup.vue +172 -111
  230. package/vue/UiReel.d.ts +3 -3
  231. package/vue/UiReel.vue +77 -77
  232. package/vue/UiSearchResultRow.d.ts +4 -4
  233. package/vue/UiSearchResultRow.vue +124 -115
  234. package/vue/UiSearchShell.d.ts +10 -8
  235. package/vue/UiSearchShell.vue +245 -176
  236. package/vue/UiSelect.d.ts +9 -9
  237. package/vue/UiSelect.vue +162 -134
  238. package/vue/UiSeparator.d.ts +2 -2
  239. package/vue/UiSeparator.vue +22 -27
  240. package/vue/UiSidebar.d.ts +20 -18
  241. package/vue/UiSidebar.vue +312 -224
  242. package/vue/UiStack.d.ts +3 -3
  243. package/vue/UiStack.vue +64 -70
  244. package/vue/UiSwitch.d.ts +12 -8
  245. package/vue/UiSwitch.vue +218 -150
  246. package/vue/UiSwitcher.d.ts +3 -3
  247. package/vue/UiSwitcher.vue +73 -75
  248. package/vue/UiTabs.d.ts +10 -8
  249. package/vue/UiTabs.vue +251 -210
  250. package/vue/UiTextarea.d.ts +11 -11
  251. package/vue/UiTextarea.vue +155 -128
  252. package/vue/UiToastRegion.d.ts +10 -8
  253. package/vue/UiToastRegion.vue +261 -198
  254. package/vue/UiTooltip.d.ts +14 -12
  255. package/vue/UiTooltip.vue +241 -177
  256. package/vue/UiTopBar.vue +51 -42
  257. package/vue/UiTree.d.ts +8 -6
  258. package/vue/UiTree.vue +157 -70
  259. package/vue/UiTreeItem.d.ts +24 -22
  260. package/vue/UiTreeItem.vue +456 -339
  261. package/vue/chunks/UiAffordanceScope.js +9 -16
  262. package/vue/chunks/UiAvatar.js +23 -29
  263. package/vue/chunks/UiAvatarGroup.js +16 -39
  264. package/vue/chunks/UiBadge.js +3 -12
  265. package/vue/chunks/UiButton.js +15 -18
  266. package/vue/chunks/UiCallout.js +8 -17
  267. package/vue/chunks/UiCheckbox.js +37 -40
  268. package/vue/chunks/UiCluster.js +3 -12
  269. package/vue/chunks/UiCombobox.js +224 -266
  270. package/vue/chunks/UiContainer.js +3 -12
  271. package/vue/chunks/UiContextMenu.js +39 -34
  272. package/vue/chunks/UiDialog.js +36 -39
  273. package/vue/chunks/UiDisclosure.js +43 -48
  274. package/vue/chunks/UiEditable.js +55 -57
  275. package/vue/chunks/UiEditorInsertTableGrid.js +55 -73
  276. package/vue/chunks/UiEditorMentionMenu.js +40 -81
  277. package/vue/chunks/UiEditorSlashMenu.js +28 -52
  278. package/vue/chunks/UiEditorTableContextMenu.js +32 -56
  279. package/vue/chunks/UiEditorTableOverlay.js +58 -82
  280. package/vue/chunks/UiEditorTableToolbar.js +61 -85
  281. package/vue/chunks/UiEditorToolbar.js +4 -13
  282. package/vue/chunks/UiFloatingActionButton.js +7 -21
  283. package/vue/chunks/UiFormField.js +15 -12
  284. package/vue/chunks/UiGrid.js +3 -12
  285. package/vue/chunks/UiIcon.js +20 -43
  286. package/vue/chunks/UiIconButton.js +16 -28
  287. package/vue/chunks/UiInput.js +20 -25
  288. package/vue/chunks/UiMenu.js +29 -33
  289. package/vue/chunks/UiMenuItem.js +4 -10
  290. package/vue/chunks/UiPopover.js +28 -29
  291. package/vue/chunks/UiRadio.js +36 -39
  292. package/vue/chunks/UiRadioGroup.js +30 -34
  293. package/vue/chunks/UiReel.js +6 -15
  294. package/vue/chunks/UiSearchResultRow.js +6 -19
  295. package/vue/chunks/UiSearchShell.js +25 -28
  296. package/vue/chunks/UiSelect.js +20 -23
  297. package/vue/chunks/UiSeparator.js +2 -8
  298. package/vue/chunks/UiSidebar.js +39 -44
  299. package/vue/chunks/UiStack.js +6 -15
  300. package/vue/chunks/UiSwitch.js +35 -38
  301. package/vue/chunks/UiSwitcher.js +6 -15
  302. package/vue/chunks/UiTabs.js +47 -85
  303. package/vue/chunks/UiTextarea.js +21 -26
  304. package/vue/chunks/UiToastRegion.js +38 -72
  305. package/vue/chunks/UiTooltip.js +34 -35
  306. package/vue/chunks/UiTopBar.js +1 -1
  307. package/vue/chunks/UiTree.js +20 -15
  308. package/vue/chunks/UiTreeItem.js +85 -102
  309. package/vue/components.css +3994 -3801
package/vue/UiButton.vue CHANGED
@@ -1,257 +1,298 @@
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
- };
12
-
13
- const props = withDefaults(defineProps<{
14
- disabled?: boolean | null;
15
- size?: "sm" | "md" | "lg" | null;
16
- variant?: "outline" | "solid" | "danger" | "ghost" | "link" | null;
17
- }>(), {
18
- disabled: false,
19
- size: "md",
20
- variant: "outline",
21
- });
22
-
23
- /** The resolved values the styles' :host-state() rules test. */
24
- const hostState = computed(() => (["variant","size"] as const).flatMap((name) => {
25
- const value = read(name);
26
- const tokens: string[] = hn.t(value) ? [name] : [];
27
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
28
- return tokens;
29
- }).join(" "));
30
-
31
- function read(name: string): unknown {
32
- return (props as Record<string, unknown>)[name];
33
- }
34
-
3
+ import { computed } from 'vue'
4
+
5
+ defineOptions({ inheritAttrs: false })
6
+
7
+ const props = withDefaults(
8
+ defineProps<{
9
+ align?: 'center' | 'start'
10
+ disabled?: boolean
11
+ size?: 'sm' | 'md' | 'lg'
12
+ stretch?: boolean
13
+ variant?: 'outline' | 'solid' | 'danger' | 'ghost' | 'link'
14
+ }>(),
15
+ {
16
+ align: 'center',
17
+ disabled: false,
18
+ size: 'md',
19
+ stretch: false,
20
+ variant: 'outline',
21
+ },
22
+ )
23
+
24
+ /** The values the styles' :host-state() rules test. */
25
+ const hostState = computed(() =>
26
+ [
27
+ props.variant && `variant variant=${props.variant}`,
28
+ props.align && `align align=${props.align}`,
29
+ props.stretch && 'stretch',
30
+ props.size && `size size=${props.size}`,
31
+ ].filter(Boolean).join(' ')
32
+ )
35
33
  </script>
36
34
 
37
35
  <template>
38
- <button data-component="ui-button" type="button" v-bind="$attrs" :disabled="hn.attr(props.disabled)" :data-ui-button-state="hostState || undefined"><slot></slot></button>
36
+ <button
37
+ data-component="ui-button"
38
+ type="button"
39
+ v-bind="$attrs"
40
+ :disabled="disabled"
41
+ :data-ui-button-state="hostState || undefined"
42
+ >
43
+ <slot />
44
+ </button>
39
45
  </template>
40
46
 
41
47
  <style scoped>
42
48
  [data-component~="ui-button"] {
43
- display: inline-flex;
44
- align-items: center;
45
- justify-content: center;
46
- vertical-align: middle;
47
- color: var(--ui-action-secondary-text, var(--ui-text-primary));
48
- }
49
-
50
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"] {
51
- color: var(--ui-action-primary-text, var(--ui-text-on-accent));
52
- }
53
-
54
- [data-component~="ui-button"] {
55
- appearance: none;
56
- min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md, 2.5rem));
57
- border: 1px solid var(--ui-button-border, var(--ui-border-strong));
58
- border-radius: var(--ui-button-radius, var(--ui-radius-2));
59
- background: var(--ui-button-surface, var(--ui-surface-elevated));
60
- color: var(--ui-button-text, var(--ui-action-secondary-text, var(--ui-text-primary)));
61
- font: inherit;
62
- font-weight: var(--ui-font-medium, 500);
63
- line-height: var(--ui-line-height-tight);
64
- padding: var(--ui-space-2) var(--ui-space-3);
65
- background-image: var(--ui-raised-highlight, none);
66
- box-shadow: var(--ui-button-shadow, var(--ui-raised, var(--ui-shadow-xs)));
67
- cursor: pointer;
68
- transition:
69
- background-color var(--ui-motion-fast) var(--ui-motion-ease),
70
- border-color var(--ui-motion-fast) var(--ui-motion-ease),
71
- color var(--ui-motion-fast) var(--ui-motion-ease),
72
- box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
73
- transform var(--ui-motion-fast) var(--ui-motion-ease);
74
- margin: 0;
75
- }
76
-
77
- @supports (text-box-trim: trim-both) {
78
- [data-component~="ui-button"] {
79
- text-box-trim: trim-both;
80
- text-box-edge: cap alphabetic;
81
- }
82
- }
83
-
84
- [data-component~="ui-button"][data-ui-button-state~="size=sm"] {
85
- min-block-size: var(--ui-control-size-sm, 2rem);
86
- padding: var(--ui-space-1) var(--ui-space-2);
87
- font-size: 0.875rem;
88
- }
89
-
90
- [data-component~="ui-button"][data-ui-button-state~="size=lg"] {
91
- min-block-size: var(--ui-control-size-lg, 3rem);
92
- padding: var(--ui-space-3) var(--ui-space-4);
93
- font-size: 1rem;
94
- }
95
-
96
- [data-component~="ui-button"]:hover:enabled {
97
- background: var(--ui-action-secondary-surface-hover, var(--ui-surface-muted));
98
- border-color: var(--ui-control-border-hover, var(--ui-border-strong));
99
- }
100
-
101
- [data-component~="ui-button"]:active:enabled {
102
- background: var(--ui-surface-subtle);
103
- }
104
-
105
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"] {
106
- border-color: var(--ui-action-primary-surface, var(--ui-accent-solid));
107
- background: var(--ui-action-primary-surface, var(--ui-accent-solid));
108
- color: var(--ui-action-primary-text, var(--ui-text-on-accent));
109
- box-shadow: var(--ui-button-solid-shadow, inset 0 1px rgb(255 255 255 / 0.16), var(--ui-shadow-xs));
110
- }
111
-
112
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"]:hover:enabled {
113
- background: var(--ui-action-primary-surface-hover, var(--ui-accent-hover));
114
- border-color: var(--ui-action-primary-surface-hover, var(--ui-accent-hover));
115
- box-shadow: var(--ui-shadow-sm);
116
- transform: translateY(-1px);
117
- }
118
-
119
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"]:active:enabled {
120
- background: var(--ui-action-primary-surface-active, var(--ui-accent-active));
121
- border-color: var(--ui-action-primary-surface-active, var(--ui-accent-active));
122
- box-shadow: none;
123
- transform: translateY(0);
124
- }
125
-
126
- [data-component~="ui-button"][data-ui-button-state~="variant=danger"] {
127
- border-color: var(--ui-danger-solid);
128
- background: var(--ui-danger-solid);
129
- color: var(--ui-text-on-accent);
130
- box-shadow: var(--ui-button-danger-shadow, inset 0 1px rgb(255 255 255 / 0.14), var(--ui-shadow-xs));
131
- }
132
-
133
- [data-component~="ui-button"][data-ui-button-state~="variant=danger"]:hover:enabled {
134
- background: var(--ui-danger-hover);
135
- border-color: var(--ui-danger-hover);
136
- box-shadow: var(--ui-shadow-sm);
137
- transform: translateY(-1px);
138
- }
139
-
140
- [data-component~="ui-button"][data-ui-button-state~="variant=danger"]:active:enabled {
141
- box-shadow: none;
142
- transform: translateY(0);
143
- }
144
-
145
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"] {
146
- border-color: transparent;
147
- background: transparent;
148
- box-shadow: none;
149
- color: var(--ui-button-ghost-text, var(--ui-action-secondary-text, var(--ui-text-primary)));
150
- }
151
-
152
- /* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
153
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:hover:enabled {
154
- background: var(--ui-button-ghost-hover, color-mix(in srgb, currentColor 8%, transparent));
155
- border-color: transparent;
156
- }
157
-
158
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:active:enabled {
159
- background: var(--ui-button-ghost-active, color-mix(in srgb, currentColor 14%, transparent));
160
- border-color: transparent;
161
- }
162
-
163
- /* A soft halo that transitions in with the other box-shadow changes, layered on the raised shadow. */
164
- [data-component~="ui-button"]:focus-visible {
165
- outline: none;
166
- box-shadow:
167
- var(--ui-button-shadow, var(--ui-raised, var(--ui-shadow-xs))),
168
- var(--ui-focus-halo);
169
- }
170
-
171
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"]:focus-visible {
172
- box-shadow:
173
- var(--ui-button-solid-shadow, inset 0 1px rgb(255 255 255 / 0.16), var(--ui-shadow-xs)),
174
- var(--ui-focus-halo);
175
- }
176
-
177
- /* Disabled colours fall back to each variant's own; ghost and link take only the text colour. */
178
- [data-component~="ui-button"]:disabled {
179
- opacity: var(--ui-button-disabled-opacity, 0.6);
180
- cursor: not-allowed;
181
- border-color: var(--ui-button-disabled-border, var(--ui-button-border, var(--ui-border-strong)));
182
- background-color: var(--ui-button-disabled-surface, var(--ui-button-surface, var(--ui-surface-elevated)));
183
- color: var(--ui-button-disabled-text, var(--ui-button-text, var(--ui-action-secondary-text, var(--ui-text-primary))));
184
- }
185
-
186
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"]:disabled {
187
- border-color: var(--ui-button-disabled-border, var(--ui-action-primary-surface, var(--ui-accent-solid)));
188
- background-color: var(--ui-button-disabled-surface, var(--ui-action-primary-surface, var(--ui-accent-solid)));
189
- color: var(--ui-button-disabled-text, var(--ui-action-primary-text, var(--ui-text-on-accent)));
190
- }
191
-
192
- [data-component~="ui-button"][data-ui-button-state~="variant=danger"]:disabled {
193
- border-color: var(--ui-button-disabled-border, var(--ui-danger-solid));
194
- background-color: var(--ui-button-disabled-surface, var(--ui-danger-solid));
195
- color: var(--ui-button-disabled-text, var(--ui-text-on-accent));
196
- }
197
-
198
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:disabled {
199
- border-color: transparent;
200
- background-color: transparent;
201
- color: var(--ui-button-disabled-text, var(--ui-button-ghost-text, var(--ui-action-secondary-text, var(--ui-text-primary))));
202
- }
203
-
204
- @media (pointer: coarse) {
205
- [data-component~="ui-button"] {
206
- min-block-size: var(--ui-control-min-block-size, 2.75rem);
207
- }
208
- }
209
-
210
- /* Link: an inline text action. No box, padding, or minimum height (inline targets are exempt under
211
- WCAG 2.5.8); the inherited font; an underline that strengthens on hover; a visible focus ring. */
212
- [data-component~="ui-button"][data-ui-button-state~="variant=link"] {
213
- display: inline;
214
- min-block-size: 0;
215
- padding: 0;
216
- border: 0;
217
- border-radius: var(--ui-radius-sm, 4px);
218
- background: none;
219
- box-shadow: none;
220
- font: inherit;
221
- color: var(--ui-button-link-color, var(--ui-text-secondary));
222
- text-decoration-line: underline;
223
- text-decoration-thickness: 1px;
224
- text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
225
- text-underline-offset: 0.2em;
226
- transition: color var(--ui-motion-fast) var(--ui-motion-ease), text-decoration-color var(--ui-motion-fast) var(--ui-motion-ease);
227
- }
228
-
229
- [data-component~="ui-button"][data-ui-button-state~="variant=link"]:hover:enabled {
230
- color: var(--ui-button-link-hover-color, var(--ui-text-primary));
231
- text-decoration-color: currentColor;
232
- background: none;
233
- transform: none;
234
- }
235
-
236
- [data-component~="ui-button"][data-ui-button-state~="variant=link"]:active:enabled {
237
- background: none;
238
- transform: none;
239
- }
240
-
241
- [data-component~="ui-button"][data-ui-button-state~="variant=link"]:disabled {
242
- background: none;
243
- color: var(--ui-button-disabled-text, var(--ui-button-link-color, var(--ui-text-secondary)));
244
- }
245
-
246
- [data-component~="ui-button"][data-ui-button-state~="variant=link"]:focus-visible {
247
- box-shadow: none;
248
- /* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
249
- outline: 2px solid var(--ui-focus-ring, currentColor);
250
- outline-offset: 2px;
251
- }
252
-
253
- /* A component that sets its display still honours the hidden attribute on its root. */
254
- [data-component~="ui-button"][hidden] {
255
- display: none;
256
- }
49
+ display: inline-flex;
50
+ align-items: center;
51
+ justify-content: center;
52
+ vertical-align: middle;
53
+ color: var(--ui-action-secondary-text, var(--ui-text-primary));
54
+ }
55
+
56
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"] {
57
+ color: var(--ui-action-primary-text, var(--ui-text-on-accent));
58
+ }
59
+
60
+ [data-component~="ui-button"][data-ui-button-state~="align=start"] {
61
+ justify-content: flex-start;
62
+ text-align: start;
63
+ }
64
+
65
+ [data-component~="ui-button"][data-ui-button-state~="stretch"] {
66
+ display: flex;
67
+ inline-size: 100%;
68
+ }
69
+
70
+ [data-component~="ui-button"] {
71
+ appearance: none;
72
+ min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md, 2.5rem));
73
+ border: 1px solid var(--ui-button-border, var(--ui-border-strong));
74
+ border-radius: var(--ui-button-radius, var(--ui-radius-2));
75
+ background: var(--ui-button-surface, var(--ui-surface-elevated));
76
+ color: var(--ui-button-text, var(--ui-action-secondary-text, var(--ui-text-primary)));
77
+ font: inherit;
78
+ font-weight: var(--ui-font-medium, 500);
79
+ line-height: var(--ui-line-height-tight);
80
+ padding: var(--ui-space-2) var(--ui-space-3);
81
+ background-image: var(--ui-raised-highlight, none);
82
+ box-shadow: var(--ui-button-shadow, var(--ui-raised, var(--ui-shadow-xs)));
83
+ cursor: pointer;
84
+ transition:
85
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
86
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
87
+ color var(--ui-motion-fast) var(--ui-motion-ease),
88
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
89
+ transform var(--ui-motion-fast) var(--ui-motion-ease);
90
+ margin: 0;
91
+ }
92
+
93
+ @supports (text-box-trim: trim-both) {
94
+ [data-component~="ui-button"] {
95
+ text-box-trim: trim-both;
96
+ text-box-edge: cap alphabetic;
97
+ }
98
+ }
99
+
100
+ [data-component~="ui-button"][data-ui-button-state~="size=sm"] {
101
+ min-block-size: var(--ui-control-size-sm, 2rem);
102
+ padding: var(--ui-space-1) var(--ui-space-2);
103
+ font-size: 0.875rem;
104
+ }
105
+
106
+ [data-component~="ui-button"][data-ui-button-state~="size=lg"] {
107
+ min-block-size: var(--ui-control-size-lg, 3rem);
108
+ padding: var(--ui-space-3) var(--ui-space-4);
109
+ font-size: 1rem;
110
+ }
111
+
112
+ [data-component~="ui-button"]:hover:enabled {
113
+ background: var(--ui-action-secondary-surface-hover, var(--ui-surface-muted));
114
+ border-color: var(--ui-control-border-hover, var(--ui-border-strong));
115
+ }
116
+
117
+ [data-component~="ui-button"]:active:enabled {
118
+ background: var(--ui-surface-subtle);
119
+ }
120
+
121
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"] {
122
+ border-color: var(--ui-action-primary-surface, var(--ui-accent-solid));
123
+ background: var(--ui-action-primary-surface, var(--ui-accent-solid));
124
+ color: var(--ui-action-primary-text, var(--ui-text-on-accent));
125
+ box-shadow: var(
126
+ --ui-button-solid-shadow,
127
+ inset 0 1px rgb(255 255 255 / 0.16),
128
+ var(--ui-shadow-xs)
129
+ );
130
+ }
131
+
132
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"]:hover:enabled {
133
+ background: var(--ui-action-primary-surface-hover, var(--ui-accent-hover));
134
+ border-color: var(--ui-action-primary-surface-hover, var(--ui-accent-hover));
135
+ box-shadow: var(--ui-shadow-sm);
136
+ transform: translateY(-1px);
137
+ }
138
+
139
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"]:active:enabled {
140
+ background: var(--ui-action-primary-surface-active, var(--ui-accent-active));
141
+ border-color: var(--ui-action-primary-surface-active, var(--ui-accent-active));
142
+ box-shadow: none;
143
+ transform: translateY(0);
144
+ }
145
+
146
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"] {
147
+ border-color: var(--ui-danger-solid);
148
+ background: var(--ui-danger-solid);
149
+ color: var(--ui-text-on-accent);
150
+ box-shadow: var(
151
+ --ui-button-danger-shadow,
152
+ inset 0 1px rgb(255 255 255 / 0.14),
153
+ var(--ui-shadow-xs)
154
+ );
155
+ }
156
+
157
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"]:hover:enabled {
158
+ background: var(--ui-danger-hover);
159
+ border-color: var(--ui-danger-hover);
160
+ box-shadow: var(--ui-shadow-sm);
161
+ transform: translateY(-1px);
162
+ }
163
+
164
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"]:active:enabled {
165
+ box-shadow: none;
166
+ transform: translateY(0);
167
+ }
168
+
169
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"] {
170
+ border-color: transparent;
171
+ background: transparent;
172
+ box-shadow: none;
173
+ color: var(--ui-button-ghost-text, var(--ui-action-secondary-text, var(--ui-text-primary)));
174
+ }
175
+
176
+ /* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
177
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:hover:enabled {
178
+ background: var(--ui-button-ghost-hover, color-mix(in srgb, currentColor 8%, transparent));
179
+ border-color: transparent;
180
+ }
181
+
182
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:active:enabled {
183
+ background: var(--ui-button-ghost-active, color-mix(in srgb, currentColor 14%, transparent));
184
+ border-color: transparent;
185
+ }
186
+
187
+ /* A soft halo that transitions in with the other box-shadow changes, layered on the raised shadow. */
188
+ [data-component~="ui-button"]:focus-visible {
189
+ outline: none;
190
+ box-shadow:
191
+ var(--ui-button-shadow, var(--ui-raised, var(--ui-shadow-xs))),
192
+ var(--ui-focus-halo);
193
+ }
194
+
195
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"]:focus-visible {
196
+ box-shadow:
197
+ var(--ui-button-solid-shadow, inset 0 1px rgb(255 255 255 / 0.16), var(--ui-shadow-xs)),
198
+ var(--ui-focus-halo);
199
+ }
200
+
201
+ /* Disabled colours fall back to each variant's own; ghost and link take only the text colour. */
202
+ [data-component~="ui-button"]:disabled {
203
+ opacity: var(--ui-button-disabled-opacity, 0.6);
204
+ cursor: not-allowed;
205
+ border-color: var(--ui-button-disabled-border, var(--ui-button-border, var(--ui-border-strong)));
206
+ background-color: var(
207
+ --ui-button-disabled-surface,
208
+ var(--ui-button-surface, var(--ui-surface-elevated))
209
+ );
210
+ color: var(
211
+ --ui-button-disabled-text,
212
+ var(--ui-button-text, var(--ui-action-secondary-text, var(--ui-text-primary)))
213
+ );
214
+ }
215
+
216
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"]:disabled {
217
+ border-color: var(
218
+ --ui-button-disabled-border,
219
+ var(--ui-action-primary-surface, var(--ui-accent-solid))
220
+ );
221
+ background-color: var(
222
+ --ui-button-disabled-surface,
223
+ var(--ui-action-primary-surface, var(--ui-accent-solid))
224
+ );
225
+ color: var(--ui-button-disabled-text, var(--ui-action-primary-text, var(--ui-text-on-accent)));
226
+ }
227
+
228
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"]:disabled {
229
+ border-color: var(--ui-button-disabled-border, var(--ui-danger-solid));
230
+ background-color: var(--ui-button-disabled-surface, var(--ui-danger-solid));
231
+ color: var(--ui-button-disabled-text, var(--ui-text-on-accent));
232
+ }
233
+
234
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"]:disabled {
235
+ border-color: transparent;
236
+ background-color: transparent;
237
+ color: var(
238
+ --ui-button-disabled-text,
239
+ var(--ui-button-ghost-text, var(--ui-action-secondary-text, var(--ui-text-primary)))
240
+ );
241
+ }
242
+
243
+ @media (pointer: coarse) {
244
+ [data-component~="ui-button"] {
245
+ min-block-size: var(--ui-control-min-block-size, 2.75rem);
246
+ }
247
+ }
248
+
249
+ /* Link: an inline text action. No box, padding, or minimum height (inline targets are exempt under
250
+ WCAG 2.5.8); the inherited font; an underline that strengthens on hover; a visible focus ring. */
251
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"] {
252
+ display: inline;
253
+ min-block-size: 0;
254
+ padding: 0;
255
+ border: 0;
256
+ border-radius: var(--ui-radius-sm, 4px);
257
+ background: none;
258
+ box-shadow: none;
259
+ font: inherit;
260
+ color: var(--ui-button-link-color, var(--ui-text-secondary));
261
+ text-decoration-line: underline;
262
+ text-decoration-thickness: 1px;
263
+ text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
264
+ text-underline-offset: 0.2em;
265
+ transition:
266
+ color var(--ui-motion-fast) var(--ui-motion-ease),
267
+ text-decoration-color var(--ui-motion-fast) var(--ui-motion-ease);
268
+ }
269
+
270
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"]:hover:enabled {
271
+ color: var(--ui-button-link-hover-color, var(--ui-text-primary));
272
+ text-decoration-color: currentColor;
273
+ background: none;
274
+ transform: none;
275
+ }
276
+
277
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"]:active:enabled {
278
+ background: none;
279
+ transform: none;
280
+ }
281
+
282
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"]:disabled {
283
+ background: none;
284
+ color: var(--ui-button-disabled-text, var(--ui-button-link-color, var(--ui-text-secondary)));
285
+ }
286
+
287
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"]:focus-visible {
288
+ box-shadow: none;
289
+ /* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
290
+ outline: 2px solid var(--ui-focus-ring, currentColor);
291
+ outline-offset: 2px;
292
+ }
293
+
294
+ /* A component that sets its display still honours the hidden attribute on its root. */
295
+ [data-component~="ui-button"][hidden] {
296
+ display: none;
297
+ }
257
298
  </style>
@@ -1,12 +1,12 @@
1
1
  type __VLS_Props = {
2
- tone?: "info" | "note" | "warning" | "success" | "danger" | null;
2
+ tone?: 'info' | 'note' | 'warning' | 'success' | 'danger';
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
- tone: "info" | "note" | "warning" | "success" | "danger" | null;
9
+ tone: "info" | "note" | "warning" | "success" | "danger";
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;