@invergent/ui-sdk 0.0.0-stage → 2.19.0

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 (332) hide show
  1. package/README.md +62 -2
  2. package/dist/accordion.cjs +97 -0
  3. package/dist/accordion.cjs.map +1 -0
  4. package/dist/accordion.d.cts +10 -0
  5. package/dist/accordion.d.ts +10 -0
  6. package/dist/accordion.js +92 -0
  7. package/dist/accordion.js.map +1 -0
  8. package/dist/alert.cjs +82 -0
  9. package/dist/alert.cjs.map +1 -0
  10. package/dist/alert.d.cts +14 -0
  11. package/dist/alert.d.ts +14 -0
  12. package/dist/alert.js +77 -0
  13. package/dist/alert.js.map +1 -0
  14. package/dist/avatar.cjs +110 -0
  15. package/dist/avatar.cjs.map +1 -0
  16. package/dist/avatar.d.cts +14 -0
  17. package/dist/avatar.d.ts +14 -0
  18. package/dist/avatar.js +103 -0
  19. package/dist/avatar.js.map +1 -0
  20. package/dist/badge.cjs +47 -0
  21. package/dist/badge.cjs.map +1 -0
  22. package/dist/badge.d.cts +13 -0
  23. package/dist/badge.d.ts +13 -0
  24. package/dist/badge.js +44 -0
  25. package/dist/badge.js.map +1 -0
  26. package/dist/brand-beam.cjs +2303 -0
  27. package/dist/brand-beam.cjs.map +1 -0
  28. package/dist/brand-beam.d.cts +36 -0
  29. package/dist/brand-beam.d.ts +36 -0
  30. package/dist/brand-beam.js +2301 -0
  31. package/dist/brand-beam.js.map +1 -0
  32. package/dist/button.cjs +17 -0
  33. package/dist/button.cjs.map +1 -0
  34. package/dist/button.d.cts +14 -0
  35. package/dist/button.d.ts +14 -0
  36. package/dist/button.js +4 -0
  37. package/dist/button.js.map +1 -0
  38. package/dist/card.cjs +109 -0
  39. package/dist/card.cjs.map +1 -0
  40. package/dist/card.d.cts +14 -0
  41. package/dist/card.d.ts +14 -0
  42. package/dist/card.js +101 -0
  43. package/dist/card.js.map +1 -0
  44. package/dist/chart.cjs +275 -0
  45. package/dist/chart.cjs.map +1 -0
  46. package/dist/chart.d.cts +47 -0
  47. package/dist/chart.d.ts +47 -0
  48. package/dist/chart.js +247 -0
  49. package/dist/chart.js.map +1 -0
  50. package/dist/checkbox.cjs +41 -0
  51. package/dist/checkbox.cjs.map +1 -0
  52. package/dist/checkbox.d.cts +7 -0
  53. package/dist/checkbox.d.ts +7 -0
  54. package/dist/checkbox.js +39 -0
  55. package/dist/checkbox.js.map +1 -0
  56. package/dist/chip.cjs +92 -0
  57. package/dist/chip.cjs.map +1 -0
  58. package/dist/chip.d.cts +33 -0
  59. package/dist/chip.d.ts +33 -0
  60. package/dist/chip.js +86 -0
  61. package/dist/chip.js.map +1 -0
  62. package/dist/choice-card.cjs +127 -0
  63. package/dist/choice-card.cjs.map +1 -0
  64. package/dist/choice-card.d.cts +20 -0
  65. package/dist/choice-card.d.ts +20 -0
  66. package/dist/choice-card.js +124 -0
  67. package/dist/choice-card.js.map +1 -0
  68. package/dist/chunk-2UHRDVPT.cjs +183 -0
  69. package/dist/chunk-2UHRDVPT.cjs.map +1 -0
  70. package/dist/chunk-5CRE35VX.js +20 -0
  71. package/dist/chunk-5CRE35VX.js.map +1 -0
  72. package/dist/chunk-6ARYCL4L.cjs +30 -0
  73. package/dist/chunk-6ARYCL4L.cjs.map +1 -0
  74. package/dist/chunk-6JCVTRUK.js +21 -0
  75. package/dist/chunk-6JCVTRUK.js.map +1 -0
  76. package/dist/chunk-6YHDDRIM.cjs +13 -0
  77. package/dist/chunk-6YHDDRIM.cjs.map +1 -0
  78. package/dist/chunk-A44JJ6NH.js +58 -0
  79. package/dist/chunk-A44JJ6NH.js.map +1 -0
  80. package/dist/chunk-CPAFEXKR.js +63 -0
  81. package/dist/chunk-CPAFEXKR.js.map +1 -0
  82. package/dist/chunk-CTIEUG5L.js +28 -0
  83. package/dist/chunk-CTIEUG5L.js.map +1 -0
  84. package/dist/chunk-DSDDDYG3.cjs +60 -0
  85. package/dist/chunk-DSDDDYG3.cjs.map +1 -0
  86. package/dist/chunk-IB7LTHEQ.js +55 -0
  87. package/dist/chunk-IB7LTHEQ.js.map +1 -0
  88. package/dist/chunk-ID7MWMJO.cjs +162 -0
  89. package/dist/chunk-ID7MWMJO.cjs.map +1 -0
  90. package/dist/chunk-IVMZANP7.cjs +67 -0
  91. package/dist/chunk-IVMZANP7.cjs.map +1 -0
  92. package/dist/chunk-L73QIINW.js +157 -0
  93. package/dist/chunk-L73QIINW.js.map +1 -0
  94. package/dist/chunk-LZGII7SX.js +11 -0
  95. package/dist/chunk-LZGII7SX.js.map +1 -0
  96. package/dist/chunk-M677T75H.js +24 -0
  97. package/dist/chunk-M677T75H.js.map +1 -0
  98. package/dist/chunk-OAVCB3MR.cjs +26 -0
  99. package/dist/chunk-OAVCB3MR.cjs.map +1 -0
  100. package/dist/chunk-RVX6SN4U.cjs +23 -0
  101. package/dist/chunk-RVX6SN4U.cjs.map +1 -0
  102. package/dist/chunk-T74Z3WTK.js +151 -0
  103. package/dist/chunk-T74Z3WTK.js.map +1 -0
  104. package/dist/chunk-UOUXW63J.cjs +22 -0
  105. package/dist/chunk-UOUXW63J.cjs.map +1 -0
  106. package/dist/chunk-VBICNC43.cjs +61 -0
  107. package/dist/chunk-VBICNC43.cjs.map +1 -0
  108. package/dist/collapsible-header.cjs +66 -0
  109. package/dist/collapsible-header.cjs.map +1 -0
  110. package/dist/collapsible-header.d.cts +15 -0
  111. package/dist/collapsible-header.d.ts +15 -0
  112. package/dist/collapsible-header.js +63 -0
  113. package/dist/collapsible-header.js.map +1 -0
  114. package/dist/collapsible.cjs +38 -0
  115. package/dist/collapsible.cjs.map +1 -0
  116. package/dist/collapsible.d.cts +8 -0
  117. package/dist/collapsible.d.ts +8 -0
  118. package/dist/collapsible.js +34 -0
  119. package/dist/collapsible.js.map +1 -0
  120. package/dist/color-picker.cjs +60 -0
  121. package/dist/color-picker.cjs.map +1 -0
  122. package/dist/color-picker.d.cts +12 -0
  123. package/dist/color-picker.d.ts +12 -0
  124. package/dist/color-picker.js +57 -0
  125. package/dist/color-picker.js.map +1 -0
  126. package/dist/confirm-dialog.cjs +72 -0
  127. package/dist/confirm-dialog.cjs.map +1 -0
  128. package/dist/confirm-dialog.d.cts +19 -0
  129. package/dist/confirm-dialog.d.ts +19 -0
  130. package/dist/confirm-dialog.js +70 -0
  131. package/dist/confirm-dialog.js.map +1 -0
  132. package/dist/control-styles.cjs +16 -0
  133. package/dist/control-styles.cjs.map +1 -0
  134. package/dist/control-styles.d.cts +7 -0
  135. package/dist/control-styles.d.ts +7 -0
  136. package/dist/control-styles.js +10 -0
  137. package/dist/control-styles.js.map +1 -0
  138. package/dist/dialog.cjs +50 -0
  139. package/dist/dialog.cjs.map +1 -0
  140. package/dist/dialog.d.cts +20 -0
  141. package/dist/dialog.d.ts +20 -0
  142. package/dist/dialog.js +5 -0
  143. package/dist/dialog.js.map +1 -0
  144. package/dist/dropdown-menu.cjs +265 -0
  145. package/dist/dropdown-menu.cjs.map +1 -0
  146. package/dist/dropdown-menu.d.cts +32 -0
  147. package/dist/dropdown-menu.d.ts +32 -0
  148. package/dist/dropdown-menu.js +249 -0
  149. package/dist/dropdown-menu.js.map +1 -0
  150. package/dist/empty-state.cjs +50 -0
  151. package/dist/empty-state.cjs.map +1 -0
  152. package/dist/empty-state.d.cts +23 -0
  153. package/dist/empty-state.d.ts +23 -0
  154. package/dist/empty-state.js +47 -0
  155. package/dist/empty-state.js.map +1 -0
  156. package/dist/field.cjs +221 -0
  157. package/dist/field.cjs.map +1 -0
  158. package/dist/field.d.cts +30 -0
  159. package/dist/field.d.ts +30 -0
  160. package/dist/field.js +210 -0
  161. package/dist/field.js.map +1 -0
  162. package/dist/input-group.cjs +148 -0
  163. package/dist/input-group.cjs.map +1 -0
  164. package/dist/input-group.d.cts +20 -0
  165. package/dist/input-group.d.ts +20 -0
  166. package/dist/input-group.js +141 -0
  167. package/dist/input-group.js.map +1 -0
  168. package/dist/input.cjs +13 -0
  169. package/dist/input.cjs.map +1 -0
  170. package/dist/input.d.cts +6 -0
  171. package/dist/input.d.ts +6 -0
  172. package/dist/input.js +4 -0
  173. package/dist/input.js.map +1 -0
  174. package/dist/label.cjs +13 -0
  175. package/dist/label.cjs.map +1 -0
  176. package/dist/label.d.cts +7 -0
  177. package/dist/label.d.ts +7 -0
  178. package/dist/label.js +4 -0
  179. package/dist/label.js.map +1 -0
  180. package/dist/lib/utils.cjs +12 -0
  181. package/dist/lib/utils.cjs.map +1 -0
  182. package/dist/lib/utils.d.cts +5 -0
  183. package/dist/lib/utils.d.ts +5 -0
  184. package/dist/lib/utils.js +3 -0
  185. package/dist/lib/utils.js.map +1 -0
  186. package/dist/list-row.cjs +188 -0
  187. package/dist/list-row.cjs.map +1 -0
  188. package/dist/list-row.d.cts +51 -0
  189. package/dist/list-row.d.ts +51 -0
  190. package/dist/list-row.js +164 -0
  191. package/dist/list-row.js.map +1 -0
  192. package/dist/pill-tabs.cjs +109 -0
  193. package/dist/pill-tabs.cjs.map +1 -0
  194. package/dist/pill-tabs.d.cts +24 -0
  195. package/dist/pill-tabs.d.ts +24 -0
  196. package/dist/pill-tabs.js +107 -0
  197. package/dist/pill-tabs.js.map +1 -0
  198. package/dist/popover.cjs +88 -0
  199. package/dist/popover.cjs.map +1 -0
  200. package/dist/popover.d.cts +13 -0
  201. package/dist/popover.d.ts +13 -0
  202. package/dist/popover.js +80 -0
  203. package/dist/popover.js.map +1 -0
  204. package/dist/progress-bar.cjs +28 -0
  205. package/dist/progress-bar.cjs.map +1 -0
  206. package/dist/progress-bar.d.cts +11 -0
  207. package/dist/progress-bar.d.ts +11 -0
  208. package/dist/progress-bar.js +26 -0
  209. package/dist/progress-bar.js.map +1 -0
  210. package/dist/scroll-area.cjs +63 -0
  211. package/dist/scroll-area.cjs.map +1 -0
  212. package/dist/scroll-area.d.cts +8 -0
  213. package/dist/scroll-area.d.ts +8 -0
  214. package/dist/scroll-area.js +60 -0
  215. package/dist/scroll-area.js.map +1 -0
  216. package/dist/section-label.cjs +30 -0
  217. package/dist/section-label.cjs.map +1 -0
  218. package/dist/section-label.d.cts +13 -0
  219. package/dist/section-label.d.ts +13 -0
  220. package/dist/section-label.js +28 -0
  221. package/dist/section-label.js.map +1 -0
  222. package/dist/segmented-control.cjs +75 -0
  223. package/dist/segmented-control.cjs.map +1 -0
  224. package/dist/segmented-control.d.cts +26 -0
  225. package/dist/segmented-control.d.ts +26 -0
  226. package/dist/segmented-control.js +53 -0
  227. package/dist/segmented-control.js.map +1 -0
  228. package/dist/select.cjs +193 -0
  229. package/dist/select.cjs.map +1 -0
  230. package/dist/select.d.cts +18 -0
  231. package/dist/select.d.ts +18 -0
  232. package/dist/select.js +182 -0
  233. package/dist/select.js.map +1 -0
  234. package/dist/separator.cjs +13 -0
  235. package/dist/separator.cjs.map +1 -0
  236. package/dist/separator.d.cts +7 -0
  237. package/dist/separator.d.ts +7 -0
  238. package/dist/separator.js +4 -0
  239. package/dist/separator.js.map +1 -0
  240. package/dist/sidebar.cjs +29 -0
  241. package/dist/sidebar.cjs.map +1 -0
  242. package/dist/sidebar.d.cts +58 -0
  243. package/dist/sidebar.d.ts +58 -0
  244. package/dist/sidebar.js +4 -0
  245. package/dist/sidebar.js.map +1 -0
  246. package/dist/skeleton.cjs +19 -0
  247. package/dist/skeleton.cjs.map +1 -0
  248. package/dist/skeleton.d.cts +5 -0
  249. package/dist/skeleton.d.ts +5 -0
  250. package/dist/skeleton.js +17 -0
  251. package/dist/skeleton.js.map +1 -0
  252. package/dist/sonner.cjs +40 -0
  253. package/dist/sonner.cjs.map +1 -0
  254. package/dist/sonner.d.cts +6 -0
  255. package/dist/sonner.d.ts +6 -0
  256. package/dist/sonner.js +38 -0
  257. package/dist/sonner.js.map +1 -0
  258. package/dist/sparkline.cjs +44 -0
  259. package/dist/sparkline.cjs.map +1 -0
  260. package/dist/sparkline.d.cts +12 -0
  261. package/dist/sparkline.d.ts +12 -0
  262. package/dist/sparkline.js +42 -0
  263. package/dist/sparkline.js.map +1 -0
  264. package/dist/spinner.cjs +13 -0
  265. package/dist/spinner.cjs.map +1 -0
  266. package/dist/spinner.d.cts +5 -0
  267. package/dist/spinner.d.ts +5 -0
  268. package/dist/spinner.js +11 -0
  269. package/dist/spinner.js.map +1 -0
  270. package/dist/stat-card.cjs +65 -0
  271. package/dist/stat-card.cjs.map +1 -0
  272. package/dist/stat-card.d.cts +22 -0
  273. package/dist/stat-card.d.ts +22 -0
  274. package/dist/stat-card.js +61 -0
  275. package/dist/stat-card.js.map +1 -0
  276. package/dist/status-dot.cjs +32 -0
  277. package/dist/status-dot.cjs.map +1 -0
  278. package/dist/status-dot.d.cts +11 -0
  279. package/dist/status-dot.d.ts +11 -0
  280. package/dist/status-dot.js +29 -0
  281. package/dist/status-dot.js.map +1 -0
  282. package/dist/switch.cjs +38 -0
  283. package/dist/switch.cjs.map +1 -0
  284. package/dist/switch.d.cts +9 -0
  285. package/dist/switch.d.ts +9 -0
  286. package/dist/switch.js +36 -0
  287. package/dist/switch.js.map +1 -0
  288. package/dist/table.cjs +118 -0
  289. package/dist/table.cjs.map +1 -0
  290. package/dist/table.d.cts +13 -0
  291. package/dist/table.d.ts +13 -0
  292. package/dist/table.js +109 -0
  293. package/dist/table.js.map +1 -0
  294. package/dist/tabs.cjs +124 -0
  295. package/dist/tabs.cjs.map +1 -0
  296. package/dist/tabs.d.cts +15 -0
  297. package/dist/tabs.d.ts +15 -0
  298. package/dist/tabs.js +118 -0
  299. package/dist/tabs.js.map +1 -0
  300. package/dist/text-link.cjs +51 -0
  301. package/dist/text-link.cjs.map +1 -0
  302. package/dist/text-link.d.cts +15 -0
  303. package/dist/text-link.d.ts +15 -0
  304. package/dist/text-link.js +48 -0
  305. package/dist/text-link.js.map +1 -0
  306. package/dist/textarea.cjs +13 -0
  307. package/dist/textarea.cjs.map +1 -0
  308. package/dist/textarea.d.cts +6 -0
  309. package/dist/textarea.d.ts +6 -0
  310. package/dist/textarea.js +4 -0
  311. package/dist/textarea.js.map +1 -0
  312. package/dist/theme.css +109 -0
  313. package/dist/toggle-group.cjs +155 -0
  314. package/dist/toggle-group.cjs.map +1 -0
  315. package/dist/toggle-group.d.cts +31 -0
  316. package/dist/toggle-group.d.ts +31 -0
  317. package/dist/toggle-group.js +130 -0
  318. package/dist/toggle-group.js.map +1 -0
  319. package/dist/toggle.cjs +21 -0
  320. package/dist/toggle.cjs.map +1 -0
  321. package/dist/toggle.d.cts +23 -0
  322. package/dist/toggle.d.ts +23 -0
  323. package/dist/toggle.js +4 -0
  324. package/dist/toggle.js.map +1 -0
  325. package/dist/tokens.css +77 -0
  326. package/dist/tooltip.cjs +25 -0
  327. package/dist/tooltip.cjs.map +1 -0
  328. package/dist/tooltip.d.cts +10 -0
  329. package/dist/tooltip.d.ts +10 -0
  330. package/dist/tooltip.js +4 -0
  331. package/dist/tooltip.js.map +1 -0
  332. package/package.json +60 -4
@@ -0,0 +1,15 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const textLinkVariants: (props?: ({
7
+ variant?: "default" | "muted" | null | undefined;
8
+ size?: "default" | "sm" | "inline" | null | undefined;
9
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
10
+ declare function TextLink({ className, variant, size, asChild, ...props }: React.ComponentProps<"a"> & VariantProps<typeof textLinkVariants> & {
11
+ /** Render as the single child (a router link, a button). */
12
+ asChild?: boolean;
13
+ }): react_jsx_runtime.JSX.Element;
14
+
15
+ export { TextLink, textLinkVariants };
@@ -0,0 +1,48 @@
1
+ import { cn } from './chunk-LZGII7SX.js';
2
+ import { cva } from 'class-variance-authority';
3
+ import { Slot } from 'radix-ui';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var textLinkVariants = cva(
7
+ "cursor-pointer font-medium transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5",
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: "text-amber-500 hover:text-amber-400",
12
+ muted: "text-muted-foreground hover:text-foreground"
13
+ },
14
+ size: {
15
+ default: "-mx-2 inline-flex min-h-11 w-fit items-center gap-1.5 rounded-lg px-2 text-[13px] pointer-fine:mx-0 pointer-fine:min-h-0 pointer-fine:px-0",
16
+ sm: "-mx-2 inline-flex min-h-11 w-fit items-center gap-1 rounded-lg px-2 text-[12px] pointer-fine:mx-0 pointer-fine:min-h-0 pointer-fine:px-0",
17
+ inline: "rounded-[2px] underline underline-offset-2"
18
+ }
19
+ },
20
+ defaultVariants: {
21
+ variant: "default",
22
+ size: "default"
23
+ }
24
+ }
25
+ );
26
+ function TextLink({
27
+ className,
28
+ variant = "default",
29
+ size = "default",
30
+ asChild = false,
31
+ ...props
32
+ }) {
33
+ const Comp = asChild ? Slot.Root : "a";
34
+ return /* @__PURE__ */ jsx(
35
+ Comp,
36
+ {
37
+ "data-slot": "text-link",
38
+ "data-variant": variant,
39
+ "data-size": size,
40
+ className: cn(textLinkVariants({ variant, size }), className),
41
+ ...props
42
+ }
43
+ );
44
+ }
45
+
46
+ export { TextLink, textLinkVariants };
47
+ //# sourceMappingURL=text-link.js.map
48
+ //# sourceMappingURL=text-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/text-link.tsx"],"names":[],"mappings":";;;;;AAYA,IAAM,gBAAA,GAAmB,GAAA;AAAA,EACvB,gPAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,qCAAA;AAAA,QACT,KAAA,EAAO;AAAA,OACT;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EACE,4IAAA;AAAA,QACF,EAAA,EAAI,0IAAA;AAAA,QACJ,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAEA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,OAAA,GAAU,KAAA;AAAA,EACV,GAAG;AACL,CAAA,EAIK;AACH,EAAA,MAAM,IAAA,GAAO,OAAA,GAAU,IAAA,CAAK,IAAA,GAAO,GAAA;AAEnC,EAAA,uBACE,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,SAAA,EAAW,GAAG,gBAAA,CAAiB,EAAE,SAAS,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MAC3D,GAAG;AAAA;AAAA,GACN;AAEJ","file":"text-link.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"./lib/utils\"\n\n// The Work console's text links. `default` is its amber link (\"Manage\n// channels\", \"View all →\"), `muted` the quiet one that brightens on hover\n// (\"Cancel\", \"Back\"). No underline when standing alone: the colour carries\n// it. A standalone link reaches 44px on touch without moving its text (the\n// negative margin eats the padding); `inline` is for a link inside a\n// sentence, underlined there so it reads as one.\nconst textLinkVariants = cva(\n \"cursor-pointer font-medium transition-colors outline-none focus-visible:ring-2 focus-visible:ring-ring/40 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-3.5\",\n {\n variants: {\n variant: {\n default: \"text-amber-500 hover:text-amber-400\",\n muted: \"text-muted-foreground hover:text-foreground\",\n },\n size: {\n default:\n \"-mx-2 inline-flex min-h-11 w-fit items-center gap-1.5 rounded-lg px-2 text-[13px] pointer-fine:mx-0 pointer-fine:min-h-0 pointer-fine:px-0\",\n sm: \"-mx-2 inline-flex min-h-11 w-fit items-center gap-1 rounded-lg px-2 text-[12px] pointer-fine:mx-0 pointer-fine:min-h-0 pointer-fine:px-0\",\n inline: \"rounded-[2px] underline underline-offset-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction TextLink({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"a\"> &\n VariantProps<typeof textLinkVariants> & {\n /** Render as the single child (a router link, a button). */\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"a\"\n\n return (\n <Comp\n data-slot=\"text-link\"\n data-variant={variant}\n data-size={size}\n className={cn(textLinkVariants({ variant, size }), className)}\n {...props}\n />\n )\n}\n\nexport { TextLink, textLinkVariants }\n"]}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var chunkUOUXW63J_cjs = require('./chunk-UOUXW63J.cjs');
4
+ require('./chunk-6YHDDRIM.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "Textarea", {
9
+ enumerable: true,
10
+ get: function () { return chunkUOUXW63J_cjs.Textarea; }
11
+ });
12
+ //# sourceMappingURL=textarea.cjs.map
13
+ //# sourceMappingURL=textarea.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"textarea.cjs"}
@@ -0,0 +1,6 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
5
+
6
+ export { Textarea };
@@ -0,0 +1,6 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
5
+
6
+ export { Textarea };
@@ -0,0 +1,4 @@
1
+ export { Textarea } from './chunk-5CRE35VX.js';
2
+ import './chunk-LZGII7SX.js';
3
+ //# sourceMappingURL=textarea.js.map
4
+ //# sourceMappingURL=textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"textarea.js"}
package/dist/theme.css ADDED
@@ -0,0 +1,109 @@
1
+ /* The Tailwind side of the theme: import it once, after `tailwindcss`,
2
+ in the app's stylesheet. It brings the tokens, the fonts, the type scale,
3
+ the colour and radius utilities, the dark variant and the base styles,
4
+ and points Tailwind at this package's components. */
5
+
6
+ @import "./tokens.css";
7
+ @import "@fontsource-variable/fraunces";
8
+ @import "@fontsource-variable/inter";
9
+ @import "@fontsource-variable/jetbrains-mono";
10
+
11
+ /* The components in this package (their source, or the built files where
12
+ the package is installed), so their classes are generated. */
13
+ @source "./";
14
+
15
+ @custom-variant dark (&:is(.dark *));
16
+
17
+ /* The apps read almost entirely at text-sm and text-xs, and 14/12px is too
18
+ small a default. One pixel up across the reading sizes — type only:
19
+ spacing stays rem-based against the unchanged root, so density holds.
20
+ Heading sizes (lg and up) are untouched. */
21
+ @theme {
22
+ --text-xs: 0.8125rem;
23
+ --text-xs--line-height: 1.125rem;
24
+ --text-sm: 0.9375rem;
25
+ --text-sm--line-height: 1.375rem;
26
+ --text-base: 1.0625rem;
27
+ }
28
+
29
+ @theme inline {
30
+ --font-heading: var(--font-sans);
31
+ --font-sans: var(--sans);
32
+ --font-serif: var(--serif);
33
+ --font-mono: var(--mono);
34
+ --color-sidebar-ring: var(--sidebar-ring);
35
+ --color-sidebar-border: var(--sidebar-border);
36
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
37
+ --color-sidebar-accent: var(--sidebar-accent);
38
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
39
+ --color-sidebar-primary: var(--sidebar-primary);
40
+ --color-sidebar-foreground: var(--sidebar-foreground);
41
+ --color-sidebar: var(--sidebar);
42
+ --color-chart-5: var(--chart-5);
43
+ --color-chart-4: var(--chart-4);
44
+ --color-chart-3: var(--chart-3);
45
+ --color-chart-2: var(--chart-2);
46
+ --color-chart-1: var(--chart-1);
47
+ --color-ring: var(--ring);
48
+ --color-input: var(--input);
49
+ --color-border: var(--border);
50
+ --color-destructive: var(--destructive);
51
+ --color-accent-foreground: var(--accent-foreground);
52
+ --color-accent: var(--accent);
53
+ --color-muted-foreground: var(--muted-foreground);
54
+ --color-muted: var(--muted);
55
+ --color-secondary-foreground: var(--secondary-foreground);
56
+ --color-secondary: var(--secondary);
57
+ --color-primary-foreground: var(--primary-foreground);
58
+ --color-primary: var(--primary);
59
+ --color-popover-foreground: var(--popover-foreground);
60
+ --color-popover: var(--popover);
61
+ --color-card-foreground: var(--card-foreground);
62
+ --color-card: var(--card);
63
+ --color-surface: var(--surface);
64
+ --color-foreground: var(--foreground);
65
+ --color-background: var(--background);
66
+ --color-line: var(--line);
67
+ --color-subtle: var(--subtle);
68
+ --color-faint: var(--faint);
69
+ --color-success: var(--success);
70
+ --radius-sm: calc(var(--radius) * 0.6);
71
+ --radius-md: calc(var(--radius) * 0.8);
72
+ --radius-lg: var(--radius);
73
+ --radius-xl: calc(var(--radius) * 1.4);
74
+ --radius-2xl: calc(var(--radius) * 1.8);
75
+ --radius-3xl: calc(var(--radius) * 2.2);
76
+ --radius-4xl: calc(var(--radius) * 2.6);
77
+ }
78
+
79
+ ::placeholder {
80
+ color: var(--faint);
81
+ }
82
+
83
+ @layer base {
84
+ * {
85
+ @apply border-border outline-ring/50;
86
+ }
87
+ body {
88
+ @apply bg-background text-foreground;
89
+ }
90
+ html {
91
+ @apply font-sans;
92
+ /* Landscape rotation on iOS otherwise inflates every font size. */
93
+ -webkit-text-size-adjust: 100%;
94
+ text-size-adjust: 100%;
95
+ }
96
+ h1,
97
+ h2,
98
+ h3,
99
+ h4,
100
+ h5,
101
+ h6 {
102
+ @apply font-serif;
103
+ letter-spacing: -0.01em;
104
+ }
105
+ }
106
+
107
+ .font-heading {
108
+ @apply font-serif;
109
+ }
@@ -0,0 +1,155 @@
1
+ 'use strict';
2
+
3
+ var chunkIVMZANP7_cjs = require('./chunk-IVMZANP7.cjs');
4
+ var chunk6YHDDRIM_cjs = require('./chunk-6YHDDRIM.cjs');
5
+ var React = require('react');
6
+ var radixUi = require('radix-ui');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
+
29
+ var ToggleGroupContext = React__namespace.createContext({
30
+ size: "default",
31
+ variant: "default",
32
+ spacing: 0,
33
+ orientation: "horizontal"
34
+ });
35
+ var JOINED_TRACK = {
36
+ default: "gap-1 rounded-full bg-foreground/[0.06] p-1",
37
+ outline: "gap-0 rounded-[10px] border border-foreground/10 p-0.5"
38
+ };
39
+ var JOINED_ITEM = {
40
+ default: "rounded-full border-transparent bg-transparent px-4 font-semibold text-muted-foreground hover:text-foreground data-[state=on]:border-transparent data-[state=on]:bg-amber-400 data-[state=on]:text-stone-950",
41
+ outline: "rounded-[8px] border-transparent bg-transparent px-3 text-[12.5px] font-normal text-muted-foreground hover:text-foreground data-[state=on]:border-transparent data-[state=on]:bg-foreground/[0.08] data-[state=on]:font-medium data-[state=on]:text-foreground"
42
+ };
43
+ function ToggleGroup({
44
+ className,
45
+ variant,
46
+ size,
47
+ spacing = 0,
48
+ orientation = "horizontal",
49
+ children,
50
+ ...props
51
+ }) {
52
+ return /* @__PURE__ */ jsxRuntime.jsx(
53
+ radixUi.ToggleGroup.Root,
54
+ {
55
+ "data-slot": "toggle-group",
56
+ "data-variant": variant,
57
+ "data-size": size,
58
+ "data-spacing": spacing,
59
+ "data-orientation": orientation,
60
+ style: { "--gap": spacing },
61
+ className: chunk6YHDDRIM_cjs.cn(
62
+ // `w-fit` sizes to content and refuses to shrink, so a segmented
63
+ // control wider than a phone dragged the whole page sideways rather
64
+ // than containing itself. Capped at its container, scrolling inside
65
+ // as a last resort — call sites should still shorten their labels.
66
+ "group/toggle-group no-scrollbar flex w-fit max-w-full flex-row items-center gap-[--spacing(var(--gap))] overflow-x-auto data-vertical:flex-col data-vertical:items-stretch",
67
+ spacing === 0 && JOINED_TRACK[variant ?? "default"],
68
+ className
69
+ ),
70
+ ...props,
71
+ children: /* @__PURE__ */ jsxRuntime.jsx(
72
+ ToggleGroupContext.Provider,
73
+ {
74
+ value: { variant, size, spacing, orientation },
75
+ children
76
+ }
77
+ )
78
+ }
79
+ );
80
+ }
81
+ function ToggleGroupItem({
82
+ className,
83
+ children,
84
+ variant = "default",
85
+ size = "default",
86
+ ...props
87
+ }) {
88
+ const context = React__namespace.useContext(ToggleGroupContext);
89
+ const itemVariant = context.variant || variant;
90
+ const itemSize = context.size || size;
91
+ return /* @__PURE__ */ jsxRuntime.jsx(
92
+ radixUi.ToggleGroup.Item,
93
+ {
94
+ "data-slot": "toggle-group-item",
95
+ "data-variant": itemVariant,
96
+ "data-size": itemSize,
97
+ "data-spacing": context.spacing,
98
+ className: chunk6YHDDRIM_cjs.cn(
99
+ "shrink-0 focus:z-10 focus-visible:z-10",
100
+ chunkIVMZANP7_cjs.toggleVariants({ variant: itemVariant, size: itemSize }),
101
+ context.spacing === 0 && JOINED_ITEM[itemVariant ?? "default"],
102
+ className
103
+ ),
104
+ ...props,
105
+ children
106
+ }
107
+ );
108
+ }
109
+ function ViewSwitch({
110
+ views,
111
+ value,
112
+ onChange,
113
+ label = "Show",
114
+ className
115
+ }) {
116
+ return /* @__PURE__ */ jsxRuntime.jsx(
117
+ ToggleGroup,
118
+ {
119
+ type: "single",
120
+ variant: "outline",
121
+ "aria-label": label,
122
+ value,
123
+ onValueChange: (v) => {
124
+ if (v) onChange(v);
125
+ },
126
+ className,
127
+ children: views.map((v) => /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupItem, { value: v.id, children: v.label }, v.id))
128
+ }
129
+ );
130
+ }
131
+ function useRememberedView(key, views) {
132
+ const [view, setView] = React__namespace.useState(() => {
133
+ try {
134
+ const saved = localStorage.getItem(key);
135
+ return views.find((v) => v === saved) ?? views[0];
136
+ } catch {
137
+ return views[0];
138
+ }
139
+ });
140
+ const choose = (v) => {
141
+ setView(v);
142
+ try {
143
+ localStorage.setItem(key, v);
144
+ } catch {
145
+ }
146
+ };
147
+ return [view, choose];
148
+ }
149
+
150
+ exports.ToggleGroup = ToggleGroup;
151
+ exports.ToggleGroupItem = ToggleGroupItem;
152
+ exports.ViewSwitch = ViewSwitch;
153
+ exports.useRememberedView = useRememberedView;
154
+ //# sourceMappingURL=toggle-group.cjs.map
155
+ //# sourceMappingURL=toggle-group.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toggle-group.tsx"],"names":["React","jsx","ToggleGroupPrimitive","cn","toggleVariants"],"mappings":"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","file":"toggle-group.cjs","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { type VariantProps } from \"class-variance-authority\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"./lib/utils\"\nimport { toggleVariants } from \"./toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\n// With spacing the items are separate toggles, drawn as `toggle` draws them.\n// Joined (spacing 0) they are one segmented control, as the Work console\n// draws its two: `default` is the Work / Dev switch — a round track with the\n// picked segment an amber pill — and `outline` its view switch (Steps |\n// Stats, Open | Resolved) — a 10px bordered track, the picked segment a\n// faint fill.\nconst JOINED_TRACK = {\n default: \"gap-1 rounded-full bg-foreground/[0.06] p-1\",\n outline: \"gap-0 rounded-[10px] border border-foreground/10 p-0.5\",\n} as const\n\nconst JOINED_ITEM = {\n default:\n \"rounded-full border-transparent bg-transparent px-4 font-semibold text-muted-foreground hover:text-foreground data-[state=on]:border-transparent data-[state=on]:bg-amber-400 data-[state=on]:text-stone-950\",\n outline:\n \"rounded-[8px] border-transparent bg-transparent px-3 text-[12.5px] font-normal text-muted-foreground hover:text-foreground data-[state=on]:border-transparent data-[state=on]:bg-foreground/[0.08] data-[state=on]:font-medium data-[state=on]:text-foreground\",\n} as const\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n // `w-fit` sizes to content and refuses to shrink, so a segmented\n // control wider than a phone dragged the whole page sideways rather\n // than containing itself. Capped at its container, scrolling inside\n // as a last resort — call sites should still shorten their labels.\n \"group/toggle-group no-scrollbar flex w-fit max-w-full flex-row items-center gap-[--spacing(var(--gap))] overflow-x-auto data-vertical:flex-col data-vertical:items-stretch\",\n spacing === 0 && JOINED_TRACK[variant ?? \"default\"],\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n const itemVariant = context.variant || variant\n const itemSize = context.size || size\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={itemVariant}\n data-size={itemSize}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 focus:z-10 focus-visible:z-10\",\n toggleVariants({ variant: itemVariant, size: itemSize }),\n context.spacing === 0 && JOINED_ITEM[itemVariant ?? \"default\"],\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\n/**\n * A tab's two or three views (Steps | Stats, Members | Recent alerts): the\n * Work view switch. One view is always picked — clicking the picked one\n * again does not clear it.\n */\nfunction ViewSwitch<T extends string>({\n views,\n value,\n onChange,\n label = \"Show\",\n className,\n}: {\n views: readonly { id: T; label: React.ReactNode }[]\n value: T\n onChange: (v: T) => void\n label?: string\n className?: string\n}) {\n return (\n <ToggleGroup\n type=\"single\"\n variant=\"outline\"\n aria-label={label}\n value={value}\n onValueChange={(v) => {\n if (v) onChange(v as T)\n }}\n className={className}\n >\n {views.map((v) => (\n <ToggleGroupItem key={v.id} value={v.id}>\n {v.label}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n )\n}\n\n/** The view last chosen under `key`, else the first; storage may be off. */\nfunction useRememberedView<T extends string>(\n key: string,\n views: readonly T[]\n): [T, (v: T) => void] {\n const [view, setView] = React.useState<T>(() => {\n try {\n const saved = localStorage.getItem(key)\n return views.find((v) => v === saved) ?? views[0]\n } catch {\n return views[0]\n }\n })\n const choose = (v: T) => {\n setView(v)\n try {\n localStorage.setItem(key, v)\n } catch {\n // A private window keeps the choice for this visit only.\n }\n }\n return [view, choose]\n}\n\nexport { ToggleGroup, ToggleGroupItem, ViewSwitch, useRememberedView }\n"]}
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import { ToggleGroup as ToggleGroup$1 } from 'radix-ui';
5
+ import { toggleVariants } from './toggle.cjs';
6
+ import 'class-variance-authority/types';
7
+
8
+ declare function ToggleGroup({ className, variant, size, spacing, orientation, children, ...props }: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants> & {
9
+ spacing?: number;
10
+ orientation?: "horizontal" | "vertical";
11
+ }): react_jsx_runtime.JSX.Element;
12
+ declare function ToggleGroupItem({ className, children, variant, size, ...props }: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
13
+ /**
14
+ * A tab's two or three views (Steps | Stats, Members | Recent alerts): the
15
+ * Work view switch. One view is always picked — clicking the picked one
16
+ * again does not clear it.
17
+ */
18
+ declare function ViewSwitch<T extends string>({ views, value, onChange, label, className, }: {
19
+ views: readonly {
20
+ id: T;
21
+ label: React.ReactNode;
22
+ }[];
23
+ value: T;
24
+ onChange: (v: T) => void;
25
+ label?: string;
26
+ className?: string;
27
+ }): react_jsx_runtime.JSX.Element;
28
+ /** The view last chosen under `key`, else the first; storage may be off. */
29
+ declare function useRememberedView<T extends string>(key: string, views: readonly T[]): [T, (v: T) => void];
30
+
31
+ export { ToggleGroup, ToggleGroupItem, ViewSwitch, useRememberedView };
@@ -0,0 +1,31 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import { ToggleGroup as ToggleGroup$1 } from 'radix-ui';
5
+ import { toggleVariants } from './toggle.js';
6
+ import 'class-variance-authority/types';
7
+
8
+ declare function ToggleGroup({ className, variant, size, spacing, orientation, children, ...props }: React.ComponentProps<typeof ToggleGroup$1.Root> & VariantProps<typeof toggleVariants> & {
9
+ spacing?: number;
10
+ orientation?: "horizontal" | "vertical";
11
+ }): react_jsx_runtime.JSX.Element;
12
+ declare function ToggleGroupItem({ className, children, variant, size, ...props }: React.ComponentProps<typeof ToggleGroup$1.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
13
+ /**
14
+ * A tab's two or three views (Steps | Stats, Members | Recent alerts): the
15
+ * Work view switch. One view is always picked — clicking the picked one
16
+ * again does not clear it.
17
+ */
18
+ declare function ViewSwitch<T extends string>({ views, value, onChange, label, className, }: {
19
+ views: readonly {
20
+ id: T;
21
+ label: React.ReactNode;
22
+ }[];
23
+ value: T;
24
+ onChange: (v: T) => void;
25
+ label?: string;
26
+ className?: string;
27
+ }): react_jsx_runtime.JSX.Element;
28
+ /** The view last chosen under `key`, else the first; storage may be off. */
29
+ declare function useRememberedView<T extends string>(key: string, views: readonly T[]): [T, (v: T) => void];
30
+
31
+ export { ToggleGroup, ToggleGroupItem, ViewSwitch, useRememberedView };
@@ -0,0 +1,130 @@
1
+ import { toggleVariants } from './chunk-CPAFEXKR.js';
2
+ import { cn } from './chunk-LZGII7SX.js';
3
+ import * as React from 'react';
4
+ import { ToggleGroup as ToggleGroup$1 } from 'radix-ui';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var ToggleGroupContext = React.createContext({
8
+ size: "default",
9
+ variant: "default",
10
+ spacing: 0,
11
+ orientation: "horizontal"
12
+ });
13
+ var JOINED_TRACK = {
14
+ default: "gap-1 rounded-full bg-foreground/[0.06] p-1",
15
+ outline: "gap-0 rounded-[10px] border border-foreground/10 p-0.5"
16
+ };
17
+ var JOINED_ITEM = {
18
+ default: "rounded-full border-transparent bg-transparent px-4 font-semibold text-muted-foreground hover:text-foreground data-[state=on]:border-transparent data-[state=on]:bg-amber-400 data-[state=on]:text-stone-950",
19
+ outline: "rounded-[8px] border-transparent bg-transparent px-3 text-[12.5px] font-normal text-muted-foreground hover:text-foreground data-[state=on]:border-transparent data-[state=on]:bg-foreground/[0.08] data-[state=on]:font-medium data-[state=on]:text-foreground"
20
+ };
21
+ function ToggleGroup({
22
+ className,
23
+ variant,
24
+ size,
25
+ spacing = 0,
26
+ orientation = "horizontal",
27
+ children,
28
+ ...props
29
+ }) {
30
+ return /* @__PURE__ */ jsx(
31
+ ToggleGroup$1.Root,
32
+ {
33
+ "data-slot": "toggle-group",
34
+ "data-variant": variant,
35
+ "data-size": size,
36
+ "data-spacing": spacing,
37
+ "data-orientation": orientation,
38
+ style: { "--gap": spacing },
39
+ className: cn(
40
+ // `w-fit` sizes to content and refuses to shrink, so a segmented
41
+ // control wider than a phone dragged the whole page sideways rather
42
+ // than containing itself. Capped at its container, scrolling inside
43
+ // as a last resort — call sites should still shorten their labels.
44
+ "group/toggle-group no-scrollbar flex w-fit max-w-full flex-row items-center gap-[--spacing(var(--gap))] overflow-x-auto data-vertical:flex-col data-vertical:items-stretch",
45
+ spacing === 0 && JOINED_TRACK[variant ?? "default"],
46
+ className
47
+ ),
48
+ ...props,
49
+ children: /* @__PURE__ */ jsx(
50
+ ToggleGroupContext.Provider,
51
+ {
52
+ value: { variant, size, spacing, orientation },
53
+ children
54
+ }
55
+ )
56
+ }
57
+ );
58
+ }
59
+ function ToggleGroupItem({
60
+ className,
61
+ children,
62
+ variant = "default",
63
+ size = "default",
64
+ ...props
65
+ }) {
66
+ const context = React.useContext(ToggleGroupContext);
67
+ const itemVariant = context.variant || variant;
68
+ const itemSize = context.size || size;
69
+ return /* @__PURE__ */ jsx(
70
+ ToggleGroup$1.Item,
71
+ {
72
+ "data-slot": "toggle-group-item",
73
+ "data-variant": itemVariant,
74
+ "data-size": itemSize,
75
+ "data-spacing": context.spacing,
76
+ className: cn(
77
+ "shrink-0 focus:z-10 focus-visible:z-10",
78
+ toggleVariants({ variant: itemVariant, size: itemSize }),
79
+ context.spacing === 0 && JOINED_ITEM[itemVariant ?? "default"],
80
+ className
81
+ ),
82
+ ...props,
83
+ children
84
+ }
85
+ );
86
+ }
87
+ function ViewSwitch({
88
+ views,
89
+ value,
90
+ onChange,
91
+ label = "Show",
92
+ className
93
+ }) {
94
+ return /* @__PURE__ */ jsx(
95
+ ToggleGroup,
96
+ {
97
+ type: "single",
98
+ variant: "outline",
99
+ "aria-label": label,
100
+ value,
101
+ onValueChange: (v) => {
102
+ if (v) onChange(v);
103
+ },
104
+ className,
105
+ children: views.map((v) => /* @__PURE__ */ jsx(ToggleGroupItem, { value: v.id, children: v.label }, v.id))
106
+ }
107
+ );
108
+ }
109
+ function useRememberedView(key, views) {
110
+ const [view, setView] = React.useState(() => {
111
+ try {
112
+ const saved = localStorage.getItem(key);
113
+ return views.find((v) => v === saved) ?? views[0];
114
+ } catch {
115
+ return views[0];
116
+ }
117
+ });
118
+ const choose = (v) => {
119
+ setView(v);
120
+ try {
121
+ localStorage.setItem(key, v);
122
+ } catch {
123
+ }
124
+ };
125
+ return [view, choose];
126
+ }
127
+
128
+ export { ToggleGroup, ToggleGroupItem, ViewSwitch, useRememberedView };
129
+ //# sourceMappingURL=toggle-group.js.map
130
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toggle-group.tsx"],"names":["ToggleGroupPrimitive"],"mappings":"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","file":"toggle-group.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { type VariantProps } from \"class-variance-authority\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"./lib/utils\"\nimport { toggleVariants } from \"./toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\n// With spacing the items are separate toggles, drawn as `toggle` draws them.\n// Joined (spacing 0) they are one segmented control, as the Work console\n// draws its two: `default` is the Work / Dev switch — a round track with the\n// picked segment an amber pill — and `outline` its view switch (Steps |\n// Stats, Open | Resolved) — a 10px bordered track, the picked segment a\n// faint fill.\nconst JOINED_TRACK = {\n default: \"gap-1 rounded-full bg-foreground/[0.06] p-1\",\n outline: \"gap-0 rounded-[10px] border border-foreground/10 p-0.5\",\n} as const\n\nconst JOINED_ITEM = {\n default:\n \"rounded-full border-transparent bg-transparent px-4 font-semibold text-muted-foreground hover:text-foreground data-[state=on]:border-transparent data-[state=on]:bg-amber-400 data-[state=on]:text-stone-950\",\n outline:\n \"rounded-[8px] border-transparent bg-transparent px-3 text-[12.5px] font-normal text-muted-foreground hover:text-foreground data-[state=on]:border-transparent data-[state=on]:bg-foreground/[0.08] data-[state=on]:font-medium data-[state=on]:text-foreground\",\n} as const\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n // `w-fit` sizes to content and refuses to shrink, so a segmented\n // control wider than a phone dragged the whole page sideways rather\n // than containing itself. Capped at its container, scrolling inside\n // as a last resort — call sites should still shorten their labels.\n \"group/toggle-group no-scrollbar flex w-fit max-w-full flex-row items-center gap-[--spacing(var(--gap))] overflow-x-auto data-vertical:flex-col data-vertical:items-stretch\",\n spacing === 0 && JOINED_TRACK[variant ?? \"default\"],\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n const itemVariant = context.variant || variant\n const itemSize = context.size || size\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={itemVariant}\n data-size={itemSize}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 focus:z-10 focus-visible:z-10\",\n toggleVariants({ variant: itemVariant, size: itemSize }),\n context.spacing === 0 && JOINED_ITEM[itemVariant ?? \"default\"],\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\n/**\n * A tab's two or three views (Steps | Stats, Members | Recent alerts): the\n * Work view switch. One view is always picked — clicking the picked one\n * again does not clear it.\n */\nfunction ViewSwitch<T extends string>({\n views,\n value,\n onChange,\n label = \"Show\",\n className,\n}: {\n views: readonly { id: T; label: React.ReactNode }[]\n value: T\n onChange: (v: T) => void\n label?: string\n className?: string\n}) {\n return (\n <ToggleGroup\n type=\"single\"\n variant=\"outline\"\n aria-label={label}\n value={value}\n onValueChange={(v) => {\n if (v) onChange(v as T)\n }}\n className={className}\n >\n {views.map((v) => (\n <ToggleGroupItem key={v.id} value={v.id}>\n {v.label}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n )\n}\n\n/** The view last chosen under `key`, else the first; storage may be off. */\nfunction useRememberedView<T extends string>(\n key: string,\n views: readonly T[]\n): [T, (v: T) => void] {\n const [view, setView] = React.useState<T>(() => {\n try {\n const saved = localStorage.getItem(key)\n return views.find((v) => v === saved) ?? views[0]\n } catch {\n return views[0]\n }\n })\n const choose = (v: T) => {\n setView(v)\n try {\n localStorage.setItem(key, v)\n } catch {\n // A private window keeps the choice for this visit only.\n }\n }\n return [view, choose]\n}\n\nexport { ToggleGroup, ToggleGroupItem, ViewSwitch, useRememberedView }\n"]}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunkIVMZANP7_cjs = require('./chunk-IVMZANP7.cjs');
4
+ require('./chunk-6YHDDRIM.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "FilterPill", {
9
+ enumerable: true,
10
+ get: function () { return chunkIVMZANP7_cjs.FilterPill; }
11
+ });
12
+ Object.defineProperty(exports, "Toggle", {
13
+ enumerable: true,
14
+ get: function () { return chunkIVMZANP7_cjs.Toggle; }
15
+ });
16
+ Object.defineProperty(exports, "toggleVariants", {
17
+ enumerable: true,
18
+ get: function () { return chunkIVMZANP7_cjs.toggleVariants; }
19
+ });
20
+ //# sourceMappingURL=toggle.cjs.map
21
+ //# sourceMappingURL=toggle.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"toggle.cjs"}
@@ -0,0 +1,23 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+ import { Toggle as Toggle$1 } from 'radix-ui';
6
+
7
+ declare const toggleVariants: (props?: ({
8
+ variant?: "default" | "outline" | null | undefined;
9
+ size?: "default" | "sm" | "lg" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ declare function Toggle({ className, variant, size, ...props }: React.ComponentProps<typeof Toggle$1.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
12
+ /**
13
+ * The Work filter pill (a row of them filters a list: "All channels",
14
+ * "Slack 3"…). An empty filter stays clickable, just quieter.
15
+ */
16
+ declare function FilterPill({ on, onClick, dim, className, ...props }: Omit<React.ComponentProps<typeof Toggle$1.Root>, "pressed" | "onPressedChange" | "onClick"> & {
17
+ on: boolean;
18
+ onClick: () => void;
19
+ /** Nothing behind it yet: still clickable, just quieter. */
20
+ dim?: boolean;
21
+ }): react_jsx_runtime.JSX.Element;
22
+
23
+ export { FilterPill, Toggle, toggleVariants };