@widgetic/design-system 0.5.22 → 0.5.23

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 (246) hide show
  1. package/README.md +2 -0
  2. package/dist/components/CopyableHeader.svelte +260 -448
  3. package/dist/components/CopyableHeader.svelte.d.ts +8 -5
  4. package/dist/components/EmptyState.svelte +100 -128
  5. package/dist/components/EmptyState.svelte.d.ts +16 -19
  6. package/dist/components/GenerateLoader.svelte +17 -10
  7. package/dist/components/PasswordInput.svelte +41 -44
  8. package/dist/components/PasswordInput.svelte.d.ts +2 -0
  9. package/dist/components/ThumbHashImage.svelte +117 -119
  10. package/dist/components/WScrollArea.svelte +47 -41
  11. package/dist/components/chat/ActivityRow.svelte +115 -0
  12. package/dist/components/chat/ActivityRow.svelte.d.ts +18 -0
  13. package/dist/components/chat/ChatHeader.svelte +114 -0
  14. package/dist/components/chat/ChatHeader.svelte.d.ts +26 -0
  15. package/dist/components/chat/Composer.svelte +172 -0
  16. package/dist/components/chat/Composer.svelte.d.ts +27 -0
  17. package/dist/components/chat/Message.svelte +158 -0
  18. package/dist/components/chat/Message.svelte.d.ts +28 -0
  19. package/dist/components/chat/OptionRow.svelte +59 -0
  20. package/dist/components/chat/OptionRow.svelte.d.ts +14 -0
  21. package/dist/components/chat/PlanCard.svelte +220 -0
  22. package/dist/components/chat/PlanCard.svelte.d.ts +34 -0
  23. package/dist/components/chat/QuestionCard.svelte +265 -0
  24. package/dist/components/chat/QuestionCard.svelte.d.ts +38 -0
  25. package/dist/components/chat/ScrollToBottom.svelte +51 -0
  26. package/dist/components/chat/ScrollToBottom.svelte.d.ts +11 -0
  27. package/dist/components/chat/SuggestionCard.svelte +79 -0
  28. package/dist/components/chat/SuggestionCard.svelte.d.ts +20 -0
  29. package/dist/components/chat/TaskRow.svelte +59 -0
  30. package/dist/components/chat/TaskRow.svelte.d.ts +11 -0
  31. package/dist/components/chat/composerLogic.d.ts +16 -0
  32. package/dist/components/chat/composerLogic.js +29 -0
  33. package/dist/components/chat/index.d.ts +16 -0
  34. package/dist/components/chat/index.js +16 -0
  35. package/dist/components/chat/questionCardLogic.d.ts +11 -0
  36. package/dist/components/chat/questionCardLogic.js +39 -0
  37. package/dist/components/index.d.ts +10 -1
  38. package/dist/components/index.js +10 -0
  39. package/dist/components/modals/ActionModal.svelte +186 -180
  40. package/dist/components/modals/BaseModal.svelte +402 -399
  41. package/dist/components/modals/BaseModal.svelte.d.ts +1 -0
  42. package/dist/components/modals/NewItemDialog.svelte +200 -243
  43. package/dist/components/modals/Portal.svelte +107 -105
  44. package/dist/components/modals/README.md +16 -2
  45. package/dist/components/modals/RenameDialog.svelte +234 -292
  46. package/dist/components/navigation/Breadcrumbs.svelte +415 -377
  47. package/dist/components/navigation/Breadcrumbs.svelte.d.ts +3 -2
  48. package/dist/components/navigation/types.d.ts +2 -0
  49. package/dist/components/pdf/PDFViewer.svelte +1 -1
  50. package/dist/components/search-input/SearchInput.svelte +51 -104
  51. package/dist/components/search-input/SearchInput.svelte.d.ts +9 -27
  52. package/dist/components/shad-editor/editor.css +1 -1
  53. package/dist/components/shad-editor/i18n/messages.d.ts +1 -1
  54. package/dist/components/shad-editor/i18n/messages.js +1 -1
  55. package/dist/components/shell/AppShell.svelte +52 -0
  56. package/dist/components/shell/AppShell.svelte.d.ts +13 -0
  57. package/dist/components/shell/Banner.svelte +90 -0
  58. package/dist/components/shell/Banner.svelte.d.ts +61 -0
  59. package/dist/components/shell/ErrorState.svelte +60 -0
  60. package/dist/components/shell/ErrorState.svelte.d.ts +13 -0
  61. package/dist/components/shell/Link.svelte +63 -0
  62. package/dist/components/shell/Link.svelte.d.ts +53 -0
  63. package/dist/components/shell/NavDrawer.svelte +117 -0
  64. package/dist/components/shell/NavDrawer.svelte.d.ts +10 -0
  65. package/dist/components/shell/NavRow.svelte +128 -0
  66. package/dist/components/shell/NavRow.svelte.d.ts +65 -0
  67. package/dist/components/shell/NavSectionLabel.svelte +27 -0
  68. package/dist/components/shell/NavSectionLabel.svelte.d.ts +9 -0
  69. package/dist/components/shell/NotificationRow.svelte +76 -0
  70. package/dist/components/shell/NotificationRow.svelte.d.ts +16 -0
  71. package/dist/components/shell/PageHeader.svelte +42 -0
  72. package/dist/components/shell/PageHeader.svelte.d.ts +12 -0
  73. package/dist/components/shell/ProfileRow.svelte +95 -0
  74. package/dist/components/shell/ProfileRow.svelte.d.ts +54 -0
  75. package/dist/components/shell/SettingsDialog.svelte +118 -0
  76. package/dist/components/shell/SettingsDialog.svelte.d.ts +19 -0
  77. package/dist/components/shell/SettingsNav.svelte +46 -0
  78. package/dist/components/shell/SettingsNav.svelte.d.ts +11 -0
  79. package/dist/components/shell/Sidebar.svelte +82 -0
  80. package/dist/components/shell/Sidebar.svelte.d.ts +25 -0
  81. package/dist/components/shell/Stat.svelte +63 -0
  82. package/dist/components/shell/Stat.svelte.d.ts +58 -0
  83. package/dist/components/shell/TopBar.svelte +37 -0
  84. package/dist/components/shell/TopBar.svelte.d.ts +11 -0
  85. package/dist/components/shell/WidgetRow.svelte +126 -0
  86. package/dist/components/shell/WidgetRow.svelte.d.ts +78 -0
  87. package/dist/components/shell/error-state-messages.d.ts +7 -0
  88. package/dist/components/shell/error-state-messages.js +9 -0
  89. package/dist/components/shell/index.d.ts +22 -0
  90. package/dist/components/shell/index.js +25 -0
  91. package/dist/components/shell/link-external.d.ts +2 -0
  92. package/dist/components/shell/link-external.js +7 -0
  93. package/dist/components/shell/messages.d.ts +7 -0
  94. package/dist/components/shell/messages.js +5 -0
  95. package/dist/components/shell/settings-nav-types.d.ts +12 -0
  96. package/dist/components/shell/settings-nav-types.js +3 -0
  97. package/dist/components/shell/shell-utils.d.ts +7 -0
  98. package/dist/components/shell/shell-utils.js +27 -0
  99. package/dist/components/shell/stat-tone.d.ts +3 -0
  100. package/dist/components/shell/stat-tone.js +11 -0
  101. package/dist/components/toast/ToasterModal.svelte +102 -168
  102. package/dist/components/toast/ToasterModal.svelte.d.ts +2 -12
  103. package/dist/components/ui/accordion/accordion-content.svelte +3 -2
  104. package/dist/components/ui/accordion/accordion-item.svelte +10 -1
  105. package/dist/components/ui/accordion/accordion-trigger.svelte +4 -3
  106. package/dist/components/ui/alert/alert-description.svelte +5 -1
  107. package/dist/components/ui/alert/alert-title.svelte +2 -1
  108. package/dist/components/ui/alert/index.d.ts +13 -11
  109. package/dist/components/ui/alert/index.js +4 -4
  110. package/dist/components/ui/avatar/avatar-utils.d.ts +2 -0
  111. package/dist/components/ui/avatar/avatar-utils.js +9 -0
  112. package/dist/components/ui/avatar/avatar.svelte +63 -0
  113. package/dist/components/ui/avatar/avatar.svelte.d.ts +80 -0
  114. package/dist/components/ui/avatar/index.d.ts +4 -0
  115. package/dist/components/ui/avatar/index.js +4 -0
  116. package/dist/components/ui/badge/badge.svelte +22 -10
  117. package/dist/components/ui/badge/badge.svelte.d.ts +14 -15
  118. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +2 -2
  119. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +1 -1
  120. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +1 -1
  121. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +2 -2
  122. package/dist/components/ui/button/button-padding.d.ts +9 -0
  123. package/dist/components/ui/button/button-padding.js +15 -0
  124. package/dist/components/ui/button/button.svelte +81 -31
  125. package/dist/components/ui/button/button.svelte.d.ts +48 -29
  126. package/dist/components/ui/calendar/calendar-cell.svelte +1 -1
  127. package/dist/components/ui/calendar/calendar-head-cell.svelte +1 -1
  128. package/dist/components/ui/calendar/calendar-next-button.svelte +2 -2
  129. package/dist/components/ui/calendar/calendar-prev-button.svelte +2 -2
  130. package/dist/components/ui/card/card-description.svelte +1 -1
  131. package/dist/components/ui/card/card-title.svelte +1 -1
  132. package/dist/components/ui/card/card.svelte +1 -1
  133. package/dist/components/ui/checkbox/checkbox.svelte +9 -5
  134. package/dist/components/ui/chip/chip.svelte +48 -0
  135. package/dist/components/ui/chip/chip.svelte.d.ts +13 -0
  136. package/dist/components/ui/chip/index.d.ts +2 -0
  137. package/dist/components/ui/chip/index.js +2 -0
  138. package/dist/components/ui/command/command-dialog.svelte +1 -1
  139. package/dist/components/ui/command/command-input.svelte +4 -4
  140. package/dist/components/ui/command/command-item.svelte +1 -1
  141. package/dist/components/ui/command/command.svelte +1 -1
  142. package/dist/components/ui/dialog/dialog-content.svelte +4 -4
  143. package/dist/components/ui/dialog/dialog-description.svelte +1 -1
  144. package/dist/components/ui/dialog/dialog-overlay.svelte +1 -1
  145. package/dist/components/ui/dialog/dialog-title.svelte +1 -1
  146. package/dist/components/ui/drawer/drawer-content.svelte +1 -1
  147. package/dist/components/ui/drawer/drawer-overlay.svelte +1 -1
  148. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +5 -5
  149. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +1 -1
  150. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +1 -1
  151. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +20 -2
  152. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +4 -0
  153. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +5 -1
  154. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +3 -3
  155. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +2 -1
  156. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +1 -1
  157. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +3 -3
  158. package/dist/components/ui/field/field-ids.d.ts +7 -0
  159. package/dist/components/ui/field/field-ids.js +15 -0
  160. package/dist/components/ui/field/field.svelte +62 -0
  161. package/dist/components/ui/field/field.svelte.d.ts +21 -0
  162. package/dist/components/ui/field/index.d.ts +3 -0
  163. package/dist/components/ui/field/index.js +3 -0
  164. package/dist/components/ui/hover-card/hover-card-content.svelte +1 -1
  165. package/dist/components/ui/icon-button/icon-button.svelte +72 -0
  166. package/dist/components/ui/icon-button/icon-button.svelte.d.ts +90 -0
  167. package/dist/components/ui/icon-button/index.d.ts +2 -0
  168. package/dist/components/ui/icon-button/index.js +4 -0
  169. package/dist/components/ui/input/index.d.ts +1 -0
  170. package/dist/components/ui/input/input.svelte +11 -4
  171. package/dist/components/ui/input/input.svelte.d.ts +4 -1
  172. package/dist/components/ui/input-otp/input-otp-separator.svelte +2 -2
  173. package/dist/components/ui/input-otp/input-otp-slot.svelte +5 -4
  174. package/dist/components/ui/input-otp/input-otp-slot.svelte.d.ts +1 -1
  175. package/dist/components/ui/input-otp/input-otp.svelte +1 -1
  176. package/dist/components/ui/label/label.svelte +3 -2
  177. package/dist/components/ui/popover/popover-content.svelte +1 -1
  178. package/dist/components/ui/progress/progress.svelte +19 -5
  179. package/dist/components/ui/progress/progress.svelte.d.ts +4 -2
  180. package/dist/components/ui/radio-group/radio-group-item.svelte +4 -4
  181. package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte +1 -1
  182. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +2 -2
  183. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +2 -2
  184. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +4 -1
  185. package/dist/components/ui/scroll-area/scroll-area.svelte +1 -1
  186. package/dist/components/ui/select/select-content.svelte +1 -3
  187. package/dist/components/ui/select/select-item.svelte +5 -4
  188. package/dist/components/ui/select/select-scroll-down-button.svelte +2 -2
  189. package/dist/components/ui/select/select-scroll-up-button.svelte +2 -2
  190. package/dist/components/ui/select/select-trigger.svelte +4 -3
  191. package/dist/components/ui/skeleton/index.d.ts +2 -0
  192. package/dist/components/ui/skeleton/index.js +2 -0
  193. package/dist/components/ui/skeleton/skeleton.svelte +24 -0
  194. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +8 -0
  195. package/dist/components/ui/slider/slider.svelte +5 -10
  196. package/dist/components/ui/sonner/sonner.svelte +19 -13
  197. package/dist/components/ui/stepper-button/index.d.ts +3 -0
  198. package/dist/components/ui/stepper-button/index.js +2 -0
  199. package/dist/components/ui/stepper-button/stepper-button.svelte +37 -0
  200. package/dist/components/ui/stepper-button/stepper-button.svelte.d.ts +9 -0
  201. package/dist/components/ui/switch/switch.svelte +8 -3
  202. package/dist/components/ui/table/table-cell.svelte +1 -1
  203. package/dist/components/ui/table/table-head.svelte +1 -1
  204. package/dist/components/ui/table/table-row.svelte +1 -1
  205. package/dist/components/ui/tabs/tabs-list.svelte +1 -1
  206. package/dist/components/ui/tabs/tabs-trigger.svelte +1 -1
  207. package/dist/components/ui/tag/index.d.ts +2 -0
  208. package/dist/components/ui/tag/index.js +2 -0
  209. package/dist/components/ui/tag/tag.svelte +42 -0
  210. package/dist/components/ui/tag/tag.svelte.d.ts +11 -0
  211. package/dist/components/ui/textarea/textarea.svelte +4 -3
  212. package/dist/components/ui/textarea/textarea.svelte.d.ts +2 -2
  213. package/dist/components/ui/toggle/toggle.svelte +9 -9
  214. package/dist/components/ui/toggle/toggle.svelte.d.ts +14 -21
  215. package/dist/components/ui/tooltip/tooltip-content.svelte +1 -1
  216. package/dist/fonts/Inter/Inter-Black.woff2 +0 -0
  217. package/dist/fonts/Inter/Inter-BlackItalic.woff2 +0 -0
  218. package/dist/fonts/Inter/Inter-Bold.woff2 +0 -0
  219. package/dist/fonts/Inter/Inter-BoldItalic.woff2 +0 -0
  220. package/dist/fonts/Inter/Inter-ExtraBold.woff2 +0 -0
  221. package/dist/fonts/Inter/Inter-ExtraBoldItalic.woff2 +0 -0
  222. package/dist/fonts/Inter/Inter-ExtraLight-BETA.woff2 +0 -0
  223. package/dist/fonts/Inter/Inter-ExtraLightItalic-BETA.woff2 +0 -0
  224. package/dist/fonts/Inter/Inter-Italic.woff2 +0 -0
  225. package/dist/fonts/Inter/Inter-Light-BETA.woff2 +0 -0
  226. package/dist/fonts/Inter/Inter-LightItalic-BETA.woff2 +0 -0
  227. package/dist/fonts/Inter/Inter-Medium.woff2 +0 -0
  228. package/dist/fonts/Inter/Inter-MediumItalic.woff2 +0 -0
  229. package/dist/fonts/Inter/Inter-Regular.woff2 +0 -0
  230. package/dist/fonts/Inter/Inter-SemiBold.woff2 +0 -0
  231. package/dist/fonts/Inter/Inter-SemiBoldItalic.woff2 +0 -0
  232. package/dist/fonts/Inter/Inter-Thin-BETA.woff2 +0 -0
  233. package/dist/fonts/Inter/Inter-ThinItalic-BETA.woff2 +0 -0
  234. package/dist/fonts/Inter/Inter-italic.var.woff2 +0 -0
  235. package/dist/fonts/Inter/Inter-upright.var.woff2 +0 -0
  236. package/dist/fonts/Inter/Inter.var.woff2 +0 -0
  237. package/dist/fonts/JetBrainsMono/JetBrainsMono-Regular.woff2 +0 -0
  238. package/dist/i18n/audit/designSystemWords.d.ts +1 -1
  239. package/dist/i18n/audit/designSystemWords.js +1 -1
  240. package/dist/styles/fonts.css +18 -14
  241. package/dist/styles/global.css +7 -19
  242. package/dist/styles/tokens.css +332 -0
  243. package/dist/utils.d.ts +27 -0
  244. package/dist/utils.js +33 -2
  245. package/package.json +2 -1
  246. package/tailwind.config.ts +7 -47
@@ -24,7 +24,7 @@
24
24
  </script>
25
25
 
26
26
  <ScrollAreaPrimitive.Root bind:ref dir={$textDirection} {...restProps} class={cn("relative overflow-hidden", className)}>
27
- <ScrollAreaPrimitive.Viewport class="h-full w-full rounded-[inherit]">
27
+ <ScrollAreaPrimitive.Viewport class="h-full w-full" style="border-radius: inherit">
28
28
  {@render children?.()}
29
29
  </ScrollAreaPrimitive.Viewport>
30
30
  {#if orientation === "vertical" || orientation === "both"}
@@ -5,8 +5,6 @@
5
5
  import { cn } from "../../../utils.js";
6
6
  import { useTextDirection } from "../../textDirection.js";
7
7
 
8
- // The library writes dir="ltr" on the floating element unless it is told the direction: left to right text and
9
- // alignment inside a menu of a right to left screen.
10
8
  const textDirection = useTextDirection();
11
9
 
12
10
  let {
@@ -27,7 +25,7 @@
27
25
  {sideOffset}
28
26
  dir={$textDirection}
29
27
  class={cn(
30
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 bg-popover text-popover-foreground relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
28
+ "relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
31
29
  className
32
30
  )}
33
31
  {...restProps}
@@ -1,11 +1,12 @@
1
+ <!-- Figma: Select Option (component set 170:135, node 170:135). -->
1
2
  <script lang="ts" module>
2
3
  import { Select as SelectPrimitive, type WithoutChild } from "bits-ui";
3
4
  export type SelectItemProps = WithoutChild<SelectPrimitive.ItemProps>;
4
5
  </script>
5
6
 
6
7
  <script lang="ts">
7
- import Check from "lucide-svelte/icons/check";
8
- import { cn } from "../../../utils.js";
8
+ import IconCheck from "@tabler/icons-svelte/icons/check";
9
+ import { cn } from "../../../utils.js";
9
10
 
10
11
  let {
11
12
  ref = $bindable(null),
@@ -21,7 +22,7 @@
21
22
  bind:ref
22
23
  {value}
23
24
  class={cn(
24
- "data-highlighted:bg-accent data-highlighted:text-accent-foreground relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50",
25
+ "relative flex h-8 w-full cursor-default select-none items-center gap-2 rounded-lg px-2 py-1.5 ps-8 text-body outline-hidden data-[highlighted]:bg-accent data-[selected]:bg-brand-subtle data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
25
26
  className
26
27
  )}
27
28
  {...restProps}
@@ -29,7 +30,7 @@
29
30
  {#snippet children({ selected, highlighted })}
30
31
  <span class="absolute start-2 flex size-3.5 items-center justify-center">
31
32
  {#if selected}
32
- <Check class="size-4" />
33
+ <IconCheck class="size-4 stroke-[1.333]" aria-hidden="true" />
33
34
  {/if}
34
35
  </span>
35
36
  {#if childrenProp}
@@ -4,7 +4,7 @@
4
4
  </script>
5
5
 
6
6
  <script lang="ts">
7
- import ChevronDown from "lucide-svelte/icons/chevron-down";
7
+ import IconChevronDown from "@tabler/icons-svelte/icons/chevron-down";
8
8
  import { cn } from "../../../utils.js";
9
9
 
10
10
  let {
@@ -19,5 +19,5 @@
19
19
  class={cn("flex cursor-default items-center justify-center py-1", className)}
20
20
  {...restProps}
21
21
  >
22
- <ChevronDown class="size-4" />
22
+ <IconChevronDown class="size-4 stroke-[1.333]" aria-hidden="true" />
23
23
  </SelectPrimitive.ScrollDownButton>
@@ -4,7 +4,7 @@
4
4
  </script>
5
5
 
6
6
  <script lang="ts">
7
- import ChevronUp from "lucide-svelte/icons/chevron-up";
7
+ import IconChevronUp from "@tabler/icons-svelte/icons/chevron-up";
8
8
  import { cn } from "../../../utils.js";
9
9
 
10
10
  let {
@@ -19,5 +19,5 @@
19
19
  class={cn("flex cursor-default items-center justify-center py-1", className)}
20
20
  {...restProps}
21
21
  >
22
- <ChevronUp class="size-4" />
22
+ <IconChevronUp class="size-4 stroke-[1.333]" aria-hidden="true" />
23
23
  </SelectPrimitive.ScrollUpButton>
@@ -1,10 +1,11 @@
1
+ <!-- Figma: Select (328:135) and Select Trigger (268:97). -->
1
2
  <script lang="ts" module>
2
3
  import { Select as SelectPrimitive, type WithoutChild } from "bits-ui";
3
4
  export type SelectTriggerProps = WithoutChild<SelectPrimitive.TriggerProps>;
4
5
  </script>
5
6
 
6
7
  <script lang="ts">
7
- import ChevronDown from "lucide-svelte/icons/chevron-down";
8
+ import IconChevronDown from "@tabler/icons-svelte/icons/chevron-down";
8
9
  import { cn } from "../../../utils.js";
9
10
 
10
11
  let {
@@ -18,11 +19,11 @@
18
19
  <SelectPrimitive.Trigger
19
20
  bind:ref
20
21
  class={cn(
21
- "border-input bg-background ring-offset-background data-placeholder:text-muted-foreground focus:ring-ring flex h-10 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:outline-hidden focus:ring-2 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
22
+ "flex h-9 w-full items-center justify-between gap-2 rounded-lg border border-input bg-background px-3 py-2 text-start text-body transition-colors duration-fast hover:bg-accent focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[placeholder]:text-muted-foreground aria-invalid:border-destructive [&>span]:line-clamp-1",
22
23
  className
23
24
  )}
24
25
  {...restProps}
25
26
  >
26
27
  {@render children?.()}
27
- <ChevronDown class="size-4 opacity-50" />
28
+ <IconChevronDown class="size-4 shrink-0 stroke-[1.333] opacity-50" aria-hidden="true" />
28
29
  </SelectPrimitive.Trigger>
@@ -0,0 +1,2 @@
1
+ import Root from "./skeleton.svelte";
2
+ export { Root, Root as Skeleton };
@@ -0,0 +1,2 @@
1
+ import Root from "./skeleton.svelte";
2
+ export { Root, Root as Skeleton };
@@ -0,0 +1,24 @@
1
+ <!-- Figma: Skeleton (component set 131:2, node 131:10). -->
2
+ <script lang="ts">
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import { cn } from "../../../utils.js";
5
+
6
+ let {
7
+ class: className,
8
+ pulse = "high",
9
+ ...restProps
10
+ }: HTMLAttributes<HTMLDivElement> & {
11
+ /** Figma Pulse: High (default) | Low (50% opacity). */
12
+ pulse?: "high" | "low";
13
+ } = $props();
14
+ </script>
15
+
16
+ <div
17
+ class={cn(
18
+ "rounded-lg bg-muted motion-reduce:opacity-100 motion-safe:animate-pulse",
19
+ pulse === "low" && "opacity-50",
20
+ className
21
+ )}
22
+ aria-hidden="true"
23
+ {...restProps}
24
+ ></div>
@@ -0,0 +1,8 @@
1
+ import type { HTMLAttributes } from "svelte/elements";
2
+ type $$ComponentProps = HTMLAttributes<HTMLDivElement> & {
3
+ /** Figma Pulse: High (default) | Low (50% opacity). */
4
+ pulse?: "high" | "low";
5
+ };
6
+ declare const Skeleton: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type Skeleton = ReturnType<typeof Skeleton>;
8
+ export default Skeleton;
@@ -1,14 +1,13 @@
1
+ <!-- Figma: IC Slider (Editor); track input, range primary, 4px track / 16px thumb. -->
1
2
  <script lang="ts" module>
2
3
  import { Slider as SliderPrimitive, type WithoutChildrenOrChild } from "bits-ui";
3
4
  export type SliderProps = WithoutChildrenOrChild<SliderPrimitive.RootProps>;
4
5
  </script>
5
6
 
6
7
  <script lang="ts">
7
- import { cn } from "../../../utils.js";
8
+ import { cn } from "../../../utils.js";
8
9
  import { useTextDirection } from "../../textDirection.js";
9
10
 
10
- // The slider of the library is left to right unless it is told: on a right to left screen the smallest value is at the
11
- // right end, like the rest of the screen, and the arrow keys follow.
12
11
  const textDirection = useTextDirection();
13
12
 
14
13
  let {
@@ -19,10 +18,6 @@
19
18
  }: SliderProps = $props();
20
19
  </script>
21
20
 
22
- <!--
23
- Discriminated Unions + Destructing (required for bindable) do not
24
- get along, so we shut typescript up by casting `value` to `never`.
25
- -->
26
21
  <SliderPrimitive.Root
27
22
  bind:value={value as never}
28
23
  bind:ref
@@ -31,13 +26,13 @@ get along, so we shut typescript up by casting `value` to `never`.
31
26
  {...restProps}
32
27
  >
33
28
  {#snippet children({ thumbs })}
34
- <span class="bg-secondary relative h-2 w-full grow overflow-hidden rounded-full">
35
- <SliderPrimitive.Range class="bg-primary absolute h-full" />
29
+ <span class="relative h-1 w-full grow overflow-hidden rounded-full bg-input">
30
+ <SliderPrimitive.Range class="absolute z-10 h-full rounded-full bg-primary" />
36
31
  </span>
37
32
  {#each thumbs as thumb}
38
33
  <SliderPrimitive.Thumb
39
34
  index={thumb}
40
- class="border-primary bg-background ring-offset-background focus-visible:ring-ring block size-5 rounded-full border-2 transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"
35
+ class="relative z-20 block size-4 rounded-full border-2 border-primary bg-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50"
41
36
  />
42
37
  {/each}
43
38
  {/snippet}
@@ -1,18 +1,20 @@
1
+ <!-- Figma: Toast (135:87) — flat popover surface, 1px border. -->
1
2
  <script lang="ts">
2
3
  import { Toaster as Sonner, type ToasterProps as SonnerProps } from "svelte-sonner";
3
4
 
4
- const browser = typeof window !== 'undefined';
5
+ const browser = typeof window !== "undefined";
5
6
 
6
7
  let restProps: SonnerProps = $props();
7
-
8
- // Determine theme based on browser preference, fallback to 'light'
9
- // This removes the dependency on mode-watcher which requires ModeWatcher component to be mounted
10
- function getTheme(): 'light' | 'dark' | 'system' {
11
- if (!browser) return 'light';
12
- if (typeof window !== 'undefined' && window.matchMedia?.('(prefers-color-scheme: dark)').matches) {
13
- return 'dark';
8
+
9
+ function getTheme(): "light" | "dark" | "system" {
10
+ if (!browser) return "light";
11
+ if (
12
+ typeof window !== "undefined" &&
13
+ window.matchMedia?.("(prefers-color-scheme: dark)").matches
14
+ ) {
15
+ return "dark";
14
16
  }
15
- return 'light';
17
+ return "light";
16
18
  }
17
19
  </script>
18
20
 
@@ -21,10 +23,14 @@
21
23
  class="toaster group"
22
24
  toastOptions={{
23
25
  classes: {
24
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
25
- description: "group-[.toast]:text-muted-foreground",
26
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
27
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",
26
+ toast:
27
+ "group toast group-[.toaster]:rounded-xl group-[.toaster]:border group-[.toaster]:border-border group-[.toaster]:bg-popover group-[.toaster]:text-popover-foreground",
28
+ description: "group-[.toast]:text-muted-foreground group-[.toast]:text-body",
29
+ title: "group-[.toast]:text-body-medium",
30
+ actionButton:
31
+ "group-[.toast]:h-8 group-[.toast]:rounded-lg group-[.toast]:border group-[.toast]:border-input group-[.toast]:bg-background group-[.toast]:px-2 group-[.toast]:text-label",
32
+ cancelButton:
33
+ "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground group-[.toast]:text-label",
28
34
  },
29
35
  }}
30
36
  {...restProps}
@@ -0,0 +1,3 @@
1
+ import Root from "./stepper-button.svelte";
2
+ export { Root, Root as StepperButton };
3
+ export type { StepperKind } from "./stepper-button.svelte";
@@ -0,0 +1,2 @@
1
+ import Root from "./stepper-button.svelte";
2
+ export { Root, Root as StepperButton };
@@ -0,0 +1,37 @@
1
+ <!-- Figma: Stepper Button (Editor / Atoms 171:81). -->
2
+ <script lang="ts">
3
+ import type { HTMLButtonAttributes } from "svelte/elements";
4
+ import IconMinus from "@tabler/icons-svelte/icons/minus";
5
+ import IconPlus from "@tabler/icons-svelte/icons/plus";
6
+ import { cn } from "../../../utils.js";
7
+
8
+ export type StepperKind = "plus" | "minus";
9
+
10
+ let {
11
+ class: className,
12
+ kind = "plus",
13
+ label,
14
+ disabled = false,
15
+ ...restProps
16
+ }: HTMLButtonAttributes & {
17
+ kind?: StepperKind;
18
+ label: string;
19
+ } = $props();
20
+ </script>
21
+
22
+ <button
23
+ type="button"
24
+ aria-label={label}
25
+ {disabled}
26
+ class={cn(
27
+ "inline-flex size-6 shrink-0 items-center justify-center rounded-lg bg-transparent text-foreground transition-colors duration-fast hover:bg-accent focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 press-feedback",
28
+ className
29
+ )}
30
+ {...restProps}
31
+ >
32
+ {#if kind === "minus"}
33
+ <IconMinus class="size-4 stroke-[1.333]" aria-hidden="true" />
34
+ {:else}
35
+ <IconPlus class="size-4 stroke-[1.333]" aria-hidden="true" />
36
+ {/if}
37
+ </button>
@@ -0,0 +1,9 @@
1
+ import type { HTMLButtonAttributes } from "svelte/elements";
2
+ export type StepperKind = "plus" | "minus";
3
+ type $$ComponentProps = HTMLButtonAttributes & {
4
+ kind?: StepperKind;
5
+ label: string;
6
+ };
7
+ declare const StepperButton: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type StepperButton = ReturnType<typeof StepperButton>;
9
+ export default StepperButton;
@@ -1,10 +1,11 @@
1
+ <!-- Figma: Switch (component set 103:21, node 103:2). -->
1
2
  <script lang="ts" module>
2
3
  import { Switch as SwitchPrimitive, type WithoutChildrenOrChild } from "bits-ui";
3
4
  export type SwitchProps = WithoutChildrenOrChild<SwitchPrimitive.RootProps>;
4
5
  </script>
5
6
 
6
7
  <script lang="ts">
7
- import { cn } from "../../../utils.js";
8
+ import { cn } from "../../../utils.js";
8
9
 
9
10
  let {
10
11
  ref = $bindable(null),
@@ -14,18 +15,22 @@
14
15
  }: SwitchProps = $props();
15
16
  </script>
16
17
 
18
+ <!--
19
+ The track is 36x20. `relative before:absolute before:inset-x-0 before:-inset-y-0.5` adds an invisible 2px above and below,
20
+ so the tap target is 36x24 (the minimum height of a target). Figma keeps the same 24px frame around the 20px track.
21
+ -->
17
22
  <SwitchPrimitive.Root
18
23
  bind:ref
19
24
  bind:checked
20
25
  class={cn(
21
- "focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
26
+ "peer relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border border-transparent bg-input p-0.5 transition-colors duration-base ease-out before:absolute before:inset-x-0 before:-inset-y-0.5 hover:bg-accent focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:hover:bg-primary/90",
22
27
  className
23
28
  )}
24
29
  {...restProps}
25
30
  >
26
31
  <SwitchPrimitive.Thumb
27
32
  class={cn(
28
- "bg-background pointer-events-none block size-5 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-5"
33
+ "pointer-events-none block size-4 rounded-full bg-background shadow-none transition-transform duration-base ease-out data-[state=checked]:translate-x-4 data-[state=checked]:bg-primary-foreground data-[state=unchecked]:translate-x-0 rtl:data-[state=checked]:-translate-x-4"
29
34
  )}
30
35
  />
31
36
  </SwitchPrimitive.Root>
@@ -18,7 +18,7 @@
18
18
 
19
19
  <td
20
20
  bind:this={ref}
21
- class={cn("p-4 align-middle [&:has([role=checkbox])]:pe-0", className)}
21
+ class={cn("text-body p-4 align-middle [&:has([role=checkbox])]:pe-0", className)}
22
22
  {...restProps}
23
23
  >
24
24
  {@render children?.()}
@@ -19,7 +19,7 @@
19
19
  <th
20
20
  bind:this={ref}
21
21
  class={cn(
22
- "text-muted-foreground h-12 px-4 text-start align-middle font-medium [&:has([role=checkbox])]:pe-0",
22
+ "text-caption-medium text-muted-foreground h-9 px-4 text-start align-middle [&:has([role=checkbox])]:pe-0",
23
23
  className
24
24
  )}
25
25
  {...restProps}
@@ -19,7 +19,7 @@
19
19
  <tr
20
20
  bind:this={ref}
21
21
  class={cn(
22
- "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
22
+ "border-border hover:bg-accent data-[state=selected]:bg-brand-subtle border-b transition-colors duration-fast",
23
23
  className
24
24
  )}
25
25
  {...restProps}
@@ -16,7 +16,7 @@
16
16
  <TabsPrimitive.List
17
17
  bind:ref
18
18
  class={cn(
19
- "bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",
19
+ "bg-accent text-muted-foreground inline-flex h-9 items-center justify-center gap-0.5 rounded-xl p-1",
20
20
  className
21
21
  )}
22
22
  {...restProps}
@@ -16,7 +16,7 @@
16
16
  <TabsPrimitive.Trigger
17
17
  bind:ref
18
18
  class={cn(
19
- "ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-2xs",
19
+ "text-label focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=inactive]:text-muted-foreground inline-flex h-7 items-center justify-center whitespace-nowrap rounded-lg px-3 transition-colors duration-fast focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[state=inactive]:hover:bg-accent data-[state=inactive]:hover:text-foreground",
20
20
  className
21
21
  )}
22
22
  {...restProps}
@@ -0,0 +1,2 @@
1
+ import Root from "./tag.svelte";
2
+ export { Root, Root as Tag };
@@ -0,0 +1,2 @@
1
+ import Root from "./tag.svelte";
2
+ export { Root, Root as Tag };
@@ -0,0 +1,42 @@
1
+ <!-- Figma: Tag (component set 170:116, node 170:116); radius/lg (8px). -->
2
+ <script lang="ts">
3
+ import type { HTMLAttributes } from "svelte/elements";
4
+ import IconX from "@tabler/icons-svelte/icons/x";
5
+ import { cn } from "../../../utils.js";
6
+
7
+ let {
8
+ class: className,
9
+ label,
10
+ showRemove = false,
11
+ removeLabel = "Remove tag",
12
+ disabled = false,
13
+ onRemove = undefined,
14
+ }: HTMLAttributes<HTMLSpanElement> & {
15
+ label: string;
16
+ showRemove?: boolean;
17
+ removeLabel?: string;
18
+ disabled?: boolean;
19
+ onRemove?: () => void;
20
+ } = $props();
21
+ </script>
22
+
23
+ <span
24
+ class={cn(
25
+ "inline-flex h-6 max-w-full items-center gap-1 rounded-lg border border-border bg-background px-2 text-label-small text-foreground transition-colors duration-fast",
26
+ disabled ? "pointer-events-none opacity-50" : "hover:bg-accent",
27
+ className
28
+ )}
29
+ >
30
+ <span class="truncate">{label}</span>
31
+ {#if showRemove && onRemove}
32
+ <button
33
+ type="button"
34
+ class="inline-flex size-4 shrink-0 items-center justify-center text-muted-foreground hover:text-foreground focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background"
35
+ aria-label={removeLabel}
36
+ {disabled}
37
+ onclick={onRemove}
38
+ >
39
+ <IconX class="size-4 stroke-[1.333]" aria-hidden="true" />
40
+ </button>
41
+ {/if}
42
+ </span>
@@ -0,0 +1,11 @@
1
+ import type { HTMLAttributes } from "svelte/elements";
2
+ type $$ComponentProps = HTMLAttributes<HTMLSpanElement> & {
3
+ label: string;
4
+ showRemove?: boolean;
5
+ removeLabel?: string;
6
+ disabled?: boolean;
7
+ onRemove?: () => void;
8
+ };
9
+ declare const Tag: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type Tag = ReturnType<typeof Tag>;
11
+ export default Tag;
@@ -1,11 +1,12 @@
1
+ <!-- Figma: Textarea (component set 328:152, node 328:152). -->
1
2
  <script lang="ts" module>
3
+ import type { HTMLTextareaAttributes } from "svelte/elements";
4
+ import type { WithElementRef, WithoutChildren } from "bits-ui";
2
5
 
3
6
  export type TextareaProps = WithoutChildren<WithElementRef<HTMLTextareaAttributes>>;
4
7
  </script>
5
8
 
6
9
  <script lang="ts">
7
- import type { WithElementRef, WithoutChildren } from "bits-ui";
8
- import type { HTMLTextareaAttributes } from "svelte/elements";
9
10
  import { cn } from "../../../utils.js";
10
11
 
11
12
  let {
@@ -19,7 +20,7 @@
19
20
  <textarea
20
21
  bind:this={ref}
21
22
  class={cn(
22
- "border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[80px] w-full rounded-md border px-3 py-2 text-sm focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
23
+ "flex min-h-[5.5rem] w-full min-w-0 rounded-lg border border-input bg-background px-3 py-2 text-body text-foreground transition-colors duration-fast placeholder:text-muted-foreground hover:bg-accent focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive",
23
24
  className
24
25
  )}
25
26
  bind:value
@@ -1,6 +1,6 @@
1
- export type TextareaProps = WithoutChildren<WithElementRef<HTMLTextareaAttributes>>;
2
- import type { WithElementRef, WithoutChildren } from "bits-ui";
3
1
  import type { HTMLTextareaAttributes } from "svelte/elements";
2
+ import type { WithElementRef, WithoutChildren } from "bits-ui";
3
+ export type TextareaProps = WithoutChildren<WithElementRef<HTMLTextareaAttributes>>;
4
4
  declare const Textarea: import("svelte").Component<Omit<WithElementRef<HTMLTextareaAttributes>, "children">, {}, "ref" | "value">;
5
5
  type Textarea = ReturnType<typeof Textarea>;
6
6
  export default Textarea;
@@ -1,18 +1,18 @@
1
+ <!-- Figma: Toolbar toggle pattern (brand-subtle when on). -->
1
2
  <script lang="ts" module>
2
- import { type VariantProps, tv } from "tailwind-variants";
3
+ import type { VariantProps } from "tailwind-variants";
3
4
 
4
5
  export const toggleVariants = tv({
5
- base: "ring-offset-background hover:bg-muted hover:text-muted-foreground focus-visible:ring-ring data-[state=on]:bg-accent data-[state=on]:text-accent-foreground inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
6
+ base: "inline-flex items-center justify-center gap-2 rounded-lg text-label transition-colors duration-fast focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-brand-subtle data-[state=on]:text-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.333] hover:bg-accent",
6
7
  variants: {
7
8
  variant: {
8
- default: "bg-transparent",
9
- outline:
10
- "border-input hover:bg-accent hover:text-accent-foreground border bg-transparent",
9
+ default: "bg-transparent text-foreground",
10
+ outline: "border border-input bg-background text-foreground hover:bg-accent",
11
11
  },
12
12
  size: {
13
- default: "h-10 min-w-10 px-3",
14
- sm: "h-9 min-w-9 px-2.5",
15
- lg: "h-11 min-w-11 px-5",
13
+ default: "h-9 min-w-9 px-3",
14
+ sm: "h-8 min-w-8 px-2",
15
+ lg: "h-9 min-w-9 px-3",
16
16
  },
17
17
  },
18
18
  defaultVariants: {
@@ -28,7 +28,7 @@
28
28
 
29
29
  <script lang="ts">
30
30
  import { Toggle as TogglePrimitive } from "bits-ui";
31
- import { cn } from "../../../utils.js";
31
+ import { cn, tv } from "../../../utils.js";
32
32
 
33
33
  let {
34
34
  ref = $bindable(null),
@@ -1,4 +1,4 @@
1
- import { type VariantProps } from "tailwind-variants";
1
+ import type { VariantProps } from "tailwind-variants";
2
2
  export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
3
3
  variant: {
4
4
  default: string;
@@ -9,15 +9,18 @@ export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
9
9
  sm: string;
10
10
  lg: string;
11
11
  };
12
- }, undefined, "ring-offset-background hover:bg-muted hover:text-muted-foreground focus-visible:ring-ring data-[state=on]:bg-accent data-[state=on]:text-accent-foreground inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", import("tailwind-variants/dist/config.js").TVConfig<{
13
- variant: {
14
- default: string;
15
- outline: string;
16
- };
17
- size: {
18
- default: string;
19
- sm: string;
20
- lg: string;
12
+ }, undefined, "inline-flex items-center justify-center gap-2 rounded-lg text-label transition-colors duration-fast focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-brand-subtle data-[state=on]:text-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.333] hover:bg-accent", {
13
+ responsiveVariants?: boolean | (string | number | symbol)[] | {
14
+ size?: boolean | (string | number | symbol)[] | undefined;
15
+ variant?: boolean | (string | number | symbol)[] | undefined;
16
+ } | undefined;
17
+ } & import("tailwind-variants/dist/config.js").TWMConfig & {
18
+ twMergeConfig: {
19
+ classGroups: {
20
+ "font-size": {
21
+ text: ("display-hero" | "heading-page" | "heading-section" | "body" | "body-medium" | "body-large" | "caption" | "caption-medium" | "label" | "label-small" | "code")[];
22
+ }[];
23
+ };
21
24
  };
22
25
  }, {
23
26
  variant: {
@@ -29,16 +32,6 @@ export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
29
32
  sm: string;
30
33
  lg: string;
31
34
  };
32
- }>, {
33
- variant: {
34
- default: string;
35
- outline: string;
36
- };
37
- size: {
38
- default: string;
39
- sm: string;
40
- lg: string;
41
- };
42
35
  }, undefined, import("tailwind-variants").TVReturnType<{
43
36
  variant: {
44
37
  default: string;
@@ -49,7 +42,7 @@ export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
49
42
  sm: string;
50
43
  lg: string;
51
44
  };
52
- }, undefined, "ring-offset-background hover:bg-muted hover:text-muted-foreground focus-visible:ring-ring data-[state=on]:bg-accent data-[state=on]:text-accent-foreground inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", import("tailwind-variants/dist/config.js").TVConfig<{
45
+ }, undefined, "inline-flex items-center justify-center gap-2 rounded-lg text-label transition-colors duration-fast focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-brand-subtle data-[state=on]:text-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:stroke-[1.333] hover:bg-accent", import("tailwind-variants/dist/config.js").TVConfig<{
53
46
  variant: {
54
47
  default: string;
55
48
  outline: string;
@@ -24,7 +24,7 @@
24
24
  {sideOffset}
25
25
  dir={$textDirection}
26
26
  class={cn(
27
- "bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md border px-3 py-1.5 text-sm shadow-md",
27
+ "bg-popover text-popover-foreground border-border text-caption animate-in fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-lg border px-3 py-1.5",
28
28
  className
29
29
  )}
30
30
  {...restProps}
Binary file
Binary file