@ziioapp/ui 0.1.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 (244) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +47 -0
  3. package/THIRD_PARTY_NOTICES.md +3 -0
  4. package/dist/base.css +2 -0
  5. package/dist/hooks/use-mobile.d.ts +1 -0
  6. package/dist/hooks/use-mobile.js +15 -0
  7. package/dist/lib/official-themes.d.ts +76 -0
  8. package/dist/lib/official-themes.js +102 -0
  9. package/dist/lib/utils.d.ts +2 -0
  10. package/dist/lib/utils.js +5 -0
  11. package/dist/registry/registry.json +427 -0
  12. package/dist/registry/ziio-ui.json +421 -0
  13. package/dist/shadcn/components/accordion.d.ts +6 -0
  14. package/dist/shadcn/components/accordion.js +18 -0
  15. package/dist/shadcn/components/alert-dialog.d.ts +18 -0
  16. package/dist/shadcn/components/alert-dialog.js +44 -0
  17. package/dist/shadcn/components/alert.d.ts +10 -0
  18. package/dist/shadcn/components/alert.js +29 -0
  19. package/dist/shadcn/components/aspect-ratio.d.ts +4 -0
  20. package/dist/shadcn/components/aspect-ratio.js +9 -0
  21. package/dist/shadcn/components/attachment.d.ts +23 -0
  22. package/dist/shadcn/components/attachment.js +70 -0
  23. package/dist/shadcn/components/avatar.d.ts +11 -0
  24. package/dist/shadcn/components/avatar.js +25 -0
  25. package/dist/shadcn/components/badge.d.ts +7 -0
  26. package/dist/shadcn/components/badge.js +34 -0
  27. package/dist/shadcn/components/breadcrumb.d.ts +10 -0
  28. package/dist/shadcn/components/breadcrumb.js +38 -0
  29. package/dist/shadcn/components/bubble.d.ts +16 -0
  30. package/dist/shadcn/components/bubble.js +61 -0
  31. package/dist/shadcn/components/button-group.d.ts +10 -0
  32. package/dist/shadcn/components/button-group.js +37 -0
  33. package/dist/shadcn/components/button.d.ts +8 -0
  34. package/dist/shadcn/components/button.js +35 -0
  35. package/dist/shadcn/components/calendar.d.ts +10 -0
  36. package/dist/shadcn/components/calendar.js +77 -0
  37. package/dist/shadcn/components/card.d.ts +11 -0
  38. package/dist/shadcn/components/card.js +26 -0
  39. package/dist/shadcn/components/carousel.d.ts +28 -0
  40. package/dist/shadcn/components/carousel.js +92 -0
  41. package/dist/shadcn/components/chart.d.ts +44 -0
  42. package/dist/shadcn/components/chart.js +133 -0
  43. package/dist/shadcn/components/checkbox.d.ts +3 -0
  44. package/dist/shadcn/components/checkbox.js +10 -0
  45. package/dist/shadcn/components/collapsible.d.ts +5 -0
  46. package/dist/shadcn/components/collapsible.js +14 -0
  47. package/dist/shadcn/components/combobox.d.ts +24 -0
  48. package/dist/shadcn/components/combobox.js +59 -0
  49. package/dist/shadcn/components/command.d.ts +19 -0
  50. package/dist/shadcn/components/command.js +37 -0
  51. package/dist/shadcn/components/context-menu.d.ts +29 -0
  52. package/dist/shadcn/components/context-menu.js +53 -0
  53. package/dist/shadcn/components/dialog.d.ts +17 -0
  54. package/dist/shadcn/components/dialog.js +39 -0
  55. package/dist/shadcn/components/direction.d.ts +1 -0
  56. package/dist/shadcn/components/direction.js +3 -0
  57. package/dist/shadcn/components/drawer.d.ts +16 -0
  58. package/dist/shadcn/components/drawer.js +76 -0
  59. package/dist/shadcn/components/dropdown-menu.d.ts +29 -0
  60. package/dist/shadcn/components/dropdown-menu.js +53 -0
  61. package/dist/shadcn/components/empty.d.ts +11 -0
  62. package/dist/shadcn/components/empty.js +34 -0
  63. package/dist/shadcn/components/field.d.ts +24 -0
  64. package/dist/shadcn/components/field.js +69 -0
  65. package/dist/shadcn/components/hover-card.d.ts +5 -0
  66. package/dist/shadcn/components/hover-card.js +15 -0
  67. package/dist/shadcn/components/input-group.d.ts +18 -0
  68. package/dist/shadcn/components/input-group.js +59 -0
  69. package/dist/shadcn/components/input-otp.d.ts +11 -0
  70. package/dist/shadcn/components/input-otp.js +22 -0
  71. package/dist/shadcn/components/input.d.ts +3 -0
  72. package/dist/shadcn/components/input.js +9 -0
  73. package/dist/shadcn/components/item.d.ts +22 -0
  74. package/dist/shadcn/components/item.js +80 -0
  75. package/dist/shadcn/components/kbd.d.ts +3 -0
  76. package/dist/shadcn/components/kbd.js +10 -0
  77. package/dist/shadcn/components/label.d.ts +3 -0
  78. package/dist/shadcn/components/label.js +9 -0
  79. package/dist/shadcn/components/marker.d.ts +10 -0
  80. package/dist/shadcn/components/marker.js +36 -0
  81. package/dist/shadcn/components/menubar.d.ts +29 -0
  82. package/dist/shadcn/components/menubar.js +58 -0
  83. package/dist/shadcn/components/message-scroller.d.ts +10 -0
  84. package/dist/shadcn/components/message-scroller.js +27 -0
  85. package/dist/shadcn/components/message.d.ts +10 -0
  86. package/dist/shadcn/components/message.js +23 -0
  87. package/dist/shadcn/components/native-select.d.ts +8 -0
  88. package/dist/shadcn/components/native-select.js +15 -0
  89. package/dist/shadcn/components/navigation-menu.d.ts +11 -0
  90. package/dist/shadcn/components/navigation-menu.js +32 -0
  91. package/dist/shadcn/components/pagination.d.ts +17 -0
  92. package/dist/shadcn/components/pagination.js +28 -0
  93. package/dist/shadcn/components/popover.d.ts +9 -0
  94. package/dist/shadcn/components/popover.js +25 -0
  95. package/dist/shadcn/components/progress.d.ts +7 -0
  96. package/dist/shadcn/components/progress.js +21 -0
  97. package/dist/shadcn/components/questionnaire.d.ts +19 -0
  98. package/dist/shadcn/components/questionnaire.js +54 -0
  99. package/dist/shadcn/components/radio-group.d.ts +5 -0
  100. package/dist/shadcn/components/radio-group.js +13 -0
  101. package/dist/shadcn/components/resizable.d.ts +7 -0
  102. package/dist/shadcn/components/resizable.js +15 -0
  103. package/dist/shadcn/components/scroll-area.d.ts +4 -0
  104. package/dist/shadcn/components/scroll-area.js +12 -0
  105. package/dist/shadcn/components/select.d.ts +15 -0
  106. package/dist/shadcn/components/select.js +36 -0
  107. package/dist/shadcn/components/separator.d.ts +3 -0
  108. package/dist/shadcn/components/separator.js +9 -0
  109. package/dist/shadcn/components/sheet.d.ts +14 -0
  110. package/dist/shadcn/components/sheet.js +39 -0
  111. package/dist/shadcn/components/sidebar.d.ts +63 -0
  112. package/dist/shadcn/components/sidebar.js +257 -0
  113. package/dist/shadcn/components/skeleton.d.ts +2 -0
  114. package/dist/shadcn/components/skeleton.js +7 -0
  115. package/dist/shadcn/components/slider.d.ts +3 -0
  116. package/dist/shadcn/components/slider.js +13 -0
  117. package/dist/shadcn/components/sonner.d.ts +3 -0
  118. package/dist/shadcn/components/sonner.js +26 -0
  119. package/dist/shadcn/components/spinner.d.ts +2 -0
  120. package/dist/shadcn/components/spinner.js +8 -0
  121. package/dist/shadcn/components/switch.d.ts +5 -0
  122. package/dist/shadcn/components/switch.js +9 -0
  123. package/dist/shadcn/components/table.d.ts +10 -0
  124. package/dist/shadcn/components/table.js +30 -0
  125. package/dist/shadcn/components/tabs.d.ts +10 -0
  126. package/dist/shadcn/components/tabs.js +30 -0
  127. package/dist/shadcn/components/textarea.d.ts +3 -0
  128. package/dist/shadcn/components/textarea.js +8 -0
  129. package/dist/shadcn/components/toast.d.ts +15 -0
  130. package/dist/shadcn/components/toast.js +68 -0
  131. package/dist/shadcn/components/toggle-group.d.ts +10 -0
  132. package/dist/shadcn/components/toggle-group.js +26 -0
  133. package/dist/shadcn/components/toggle.d.ts +8 -0
  134. package/dist/shadcn/components/toggle.js +27 -0
  135. package/dist/shadcn/components/tooltip.d.ts +6 -0
  136. package/dist/shadcn/components/tooltip.js +18 -0
  137. package/dist/shadcn/hooks/use-mobile.d.ts +1 -0
  138. package/dist/shadcn/hooks/use-mobile.js +16 -0
  139. package/dist/size-report.json +80 -0
  140. package/dist/styles/app-loading.css +40 -0
  141. package/dist/styles/bases/base-mauve.css +71 -0
  142. package/dist/styles/bases/base-mist.css +71 -0
  143. package/dist/styles/bases/base-neutral.css +71 -0
  144. package/dist/styles/bases/base-olive.css +71 -0
  145. package/dist/styles/bases/base-stone.css +71 -0
  146. package/dist/styles/bases/base-taupe.css +71 -0
  147. package/dist/styles/bases/base-zinc.css +71 -0
  148. package/dist/styles/chart.css +18 -0
  149. package/dist/styles/charts/chart-amber.css +18 -0
  150. package/dist/styles/charts/chart-blue.css +18 -0
  151. package/dist/styles/charts/chart-rose.css +18 -0
  152. package/dist/styles/charts/chart-teal.css +18 -0
  153. package/dist/styles/compiled/luma.css +2 -0
  154. package/dist/styles/compiled/lyra.css +2 -0
  155. package/dist/styles/compiled/maia.css +2 -0
  156. package/dist/styles/compiled/mira.css +2 -0
  157. package/dist/styles/compiled/nova.css +2 -0
  158. package/dist/styles/compiled/rhea.css +2 -0
  159. package/dist/styles/compiled/sera.css +2 -0
  160. package/dist/styles/compiled/vega.css +2 -0
  161. package/dist/styles/index.css +52 -0
  162. package/dist/styles/official/bases/base-mauve.css +67 -0
  163. package/dist/styles/official/bases/base-mist.css +67 -0
  164. package/dist/styles/official/bases/base-neutral.css +67 -0
  165. package/dist/styles/official/bases/base-olive.css +67 -0
  166. package/dist/styles/official/bases/base-stone.css +67 -0
  167. package/dist/styles/official/bases/base-taupe.css +67 -0
  168. package/dist/styles/official/bases/base-zinc.css +67 -0
  169. package/dist/styles/official/charts/chart-amber.css +14 -0
  170. package/dist/styles/official/charts/chart-blue.css +14 -0
  171. package/dist/styles/official/charts/chart-cyan.css +14 -0
  172. package/dist/styles/official/charts/chart-emerald.css +14 -0
  173. package/dist/styles/official/charts/chart-fuchsia.css +14 -0
  174. package/dist/styles/official/charts/chart-green.css +14 -0
  175. package/dist/styles/official/charts/chart-indigo.css +14 -0
  176. package/dist/styles/official/charts/chart-lime.css +14 -0
  177. package/dist/styles/official/charts/chart-mauve.css +14 -0
  178. package/dist/styles/official/charts/chart-mist.css +14 -0
  179. package/dist/styles/official/charts/chart-neutral.css +14 -0
  180. package/dist/styles/official/charts/chart-olive.css +14 -0
  181. package/dist/styles/official/charts/chart-orange.css +14 -0
  182. package/dist/styles/official/charts/chart-pink.css +14 -0
  183. package/dist/styles/official/charts/chart-purple.css +14 -0
  184. package/dist/styles/official/charts/chart-red.css +14 -0
  185. package/dist/styles/official/charts/chart-rose.css +14 -0
  186. package/dist/styles/official/charts/chart-sky.css +14 -0
  187. package/dist/styles/official/charts/chart-stone.css +14 -0
  188. package/dist/styles/official/charts/chart-taupe.css +14 -0
  189. package/dist/styles/official/charts/chart-teal.css +14 -0
  190. package/dist/styles/official/charts/chart-violet.css +14 -0
  191. package/dist/styles/official/charts/chart-yellow.css +14 -0
  192. package/dist/styles/official/charts/chart-zinc.css +14 -0
  193. package/dist/styles/official/themes/theme-amber.css +26 -0
  194. package/dist/styles/official/themes/theme-blue.css +26 -0
  195. package/dist/styles/official/themes/theme-cyan.css +26 -0
  196. package/dist/styles/official/themes/theme-emerald.css +26 -0
  197. package/dist/styles/official/themes/theme-fuchsia.css +26 -0
  198. package/dist/styles/official/themes/theme-green.css +26 -0
  199. package/dist/styles/official/themes/theme-indigo.css +26 -0
  200. package/dist/styles/official/themes/theme-lime.css +26 -0
  201. package/dist/styles/official/themes/theme-mauve.css +67 -0
  202. package/dist/styles/official/themes/theme-mist.css +67 -0
  203. package/dist/styles/official/themes/theme-neutral.css +67 -0
  204. package/dist/styles/official/themes/theme-olive.css +67 -0
  205. package/dist/styles/official/themes/theme-orange.css +26 -0
  206. package/dist/styles/official/themes/theme-pink.css +26 -0
  207. package/dist/styles/official/themes/theme-purple.css +26 -0
  208. package/dist/styles/official/themes/theme-red.css +26 -0
  209. package/dist/styles/official/themes/theme-rose.css +27 -0
  210. package/dist/styles/official/themes/theme-sky.css +26 -0
  211. package/dist/styles/official/themes/theme-stone.css +67 -0
  212. package/dist/styles/official/themes/theme-taupe.css +67 -0
  213. package/dist/styles/official/themes/theme-teal.css +26 -0
  214. package/dist/styles/official/themes/theme-violet.css +26 -0
  215. package/dist/styles/official/themes/theme-yellow.css +26 -0
  216. package/dist/styles/official/themes/theme-zinc.css +67 -0
  217. package/dist/styles/runtime.css +6 -0
  218. package/dist/styles/shadcn-utilities.css +629 -0
  219. package/dist/styles/shadcn.css +169 -0
  220. package/dist/styles/source.css +1 -0
  221. package/dist/styles/styles/all.css +8 -0
  222. package/dist/styles/styles/style-luma.css +1744 -0
  223. package/dist/styles/styles/style-lyra.css +1723 -0
  224. package/dist/styles/styles/style-maia.css +1745 -0
  225. package/dist/styles/styles/style-mira.css +1750 -0
  226. package/dist/styles/styles/style-nova.css +1748 -0
  227. package/dist/styles/styles/style-rhea.css +1744 -0
  228. package/dist/styles/styles/style-sera.css +1735 -0
  229. package/dist/styles/styles/style-vega.css +1748 -0
  230. package/dist/styles/theme-base.css +102 -0
  231. package/dist/styles/themes/theme-atmosphere-coffee.css +72 -0
  232. package/dist/styles/themes/theme-atmosphere-halloween.css +72 -0
  233. package/dist/styles/themes/theme-atmosphere-literary.css +72 -0
  234. package/dist/styles/themes/theme-atmosphere-sakura.css +72 -0
  235. package/dist/styles/themes/theme-blue.css +20 -0
  236. package/dist/styles/themes/theme-indigo.css +20 -0
  237. package/dist/styles/themes/theme-morandi-dust.css +72 -0
  238. package/dist/styles/themes/theme-morandi-fog.css +72 -0
  239. package/dist/styles/themes/theme-morandi-sage.css +72 -0
  240. package/dist/styles/themes/theme-rose.css +20 -0
  241. package/dist/styles.css +2 -0
  242. package/package.json +108 -0
  243. package/upstream/components.json +870 -0
  244. package/upstream/lock.json +101 -0
@@ -0,0 +1,257 @@
1
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
2
+ "use client";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { PanelLeftIcon } from "lucide-react";
5
+ import * as React from "react";
6
+ import { mergeProps } from "@base-ui/react/merge-props";
7
+ import { useRender } from "@base-ui/react/use-render";
8
+ import { cva } from "class-variance-authority";
9
+ import { cn } from "@ziioapp/ui/lib/utils";
10
+ import { useIsMobile } from "@ziioapp/ui/hooks/use-mobile";
11
+ import { Button } from "@ziioapp/ui/components/button";
12
+ import { Input } from "@ziioapp/ui/components/input";
13
+ import { Separator } from "@ziioapp/ui/components/separator";
14
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle, } from "@ziioapp/ui/components/sheet";
15
+ import { Skeleton } from "@ziioapp/ui/components/skeleton";
16
+ import { Tooltip, TooltipContent, TooltipTrigger, } from "@ziioapp/ui/components/tooltip";
17
+ const SIDEBAR_COOKIE_NAME = "sidebar_state";
18
+ const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
19
+ const SIDEBAR_WIDTH = "16rem";
20
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
21
+ const SIDEBAR_WIDTH_ICON = "3rem";
22
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
23
+ const SidebarContext = React.createContext(null);
24
+ function useSidebar() {
25
+ const context = React.useContext(SidebarContext);
26
+ if (!context) {
27
+ throw new Error("useSidebar must be used within a SidebarProvider.");
28
+ }
29
+ return context;
30
+ }
31
+ function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }) {
32
+ const isMobile = useIsMobile();
33
+ const [openMobile, setOpenMobile] = React.useState(false);
34
+ // This is the internal state of the sidebar.
35
+ // We use openProp and setOpenProp for control from outside the component.
36
+ const [_open, _setOpen] = React.useState(defaultOpen);
37
+ const open = openProp ?? _open;
38
+ const setOpen = React.useCallback((value) => {
39
+ const openState = typeof value === "function" ? value(open) : value;
40
+ if (setOpenProp) {
41
+ setOpenProp(openState);
42
+ }
43
+ else {
44
+ _setOpen(openState);
45
+ }
46
+ // This sets the cookie to keep the sidebar state.
47
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
48
+ }, [setOpenProp, open]);
49
+ // Helper to toggle the sidebar.
50
+ const toggleSidebar = React.useCallback(() => {
51
+ return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);
52
+ }, [isMobile, setOpen, setOpenMobile]);
53
+ // Adds a keyboard shortcut to toggle the sidebar.
54
+ React.useEffect(() => {
55
+ const handleKeyDown = (event) => {
56
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT &&
57
+ (event.metaKey || event.ctrlKey)) {
58
+ event.preventDefault();
59
+ toggleSidebar();
60
+ }
61
+ };
62
+ window.addEventListener("keydown", handleKeyDown);
63
+ return () => window.removeEventListener("keydown", handleKeyDown);
64
+ }, [toggleSidebar]);
65
+ // We add a state so that we can do data-state="expanded" or "collapsed".
66
+ // This makes it easier to style the sidebar with Tailwind classes.
67
+ const state = open ? "expanded" : "collapsed";
68
+ const contextValue = React.useMemo(() => ({
69
+ state,
70
+ open,
71
+ setOpen,
72
+ isMobile,
73
+ openMobile,
74
+ setOpenMobile,
75
+ toggleSidebar,
76
+ }), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
77
+ return (_jsx(SidebarContext.Provider, { value: contextValue, children: _jsx("div", { "data-slot": "sidebar-wrapper", style: {
78
+ "--sidebar-width": SIDEBAR_WIDTH,
79
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
80
+ ...style,
81
+ }, className: cn("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar", className), ...props, children: children }) }));
82
+ }
83
+ function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, dir, ...props }) {
84
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
85
+ if (collapsible === "none") {
86
+ return (_jsx("div", { "data-slot": "sidebar", className: cn("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className), ...props, children: children }));
87
+ }
88
+ if (isMobile) {
89
+ return (_jsx(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: _jsxs(SheetContent, { dir: dir, "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden", style: {
90
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE,
91
+ }, side: side, children: [_jsxs(SheetHeader, { className: "sr-only", children: [_jsx(SheetTitle, { children: "Sidebar" }), _jsx(SheetDescription, { children: "Displays the mobile sidebar." })] }), _jsx("div", { className: "flex h-full w-full flex-col", children: children })] }) }));
92
+ }
93
+ return (_jsxs("div", { className: "group peer hidden text-sidebar-foreground md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: [_jsx("div", { "data-slot": "sidebar-gap", className: cn("cn-sidebar-gap relative w-(--sidebar-width) bg-transparent", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset"
94
+ ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
95
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)") }), _jsx("div", { "data-slot": "sidebar-container", "data-side": side, className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",
96
+ // Adjust the padding for floating and inset variants.
97
+ variant === "floating" || variant === "inset"
98
+ ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
99
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className), ...props, children: _jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: "cn-sidebar-inner flex size-full flex-col", children: children }) })] }));
100
+ }
101
+ function SidebarTrigger({ className, onClick, ...props }) {
102
+ const { toggleSidebar } = useSidebar();
103
+ return (_jsxs(Button, { "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon-sm", className: cn("cn-sidebar-trigger", className), onClick: (event) => {
104
+ onClick?.(event);
105
+ toggleSidebar();
106
+ }, ...props, children: [_jsx(PanelLeftIcon, { className: "cn-rtl-flip" }), _jsx("span", { className: "sr-only", children: "Toggle Sidebar" })] }));
107
+ }
108
+ function SidebarRail({ className, ...props }) {
109
+ const { toggleSidebar } = useSidebar();
110
+ return (_jsx("button", { "data-sidebar": "rail", "data-slot": "sidebar-rail", "aria-label": "Toggle Sidebar", tabIndex: -1, onClick: toggleSidebar, title: "Toggle Sidebar", className: cn("cn-sidebar-rail absolute inset-y-0 z-20 hidden w-4 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className), ...props }));
111
+ }
112
+ function SidebarInset({ className, ...props }) {
113
+ return (_jsx("main", { "data-slot": "sidebar-inset", className: cn("cn-sidebar-inset relative flex w-full flex-1 flex-col", className), ...props }));
114
+ }
115
+ function SidebarInput({ className, ...props }) {
116
+ return (_jsx(Input, { "data-slot": "sidebar-input", "data-sidebar": "input", className: cn("cn-sidebar-input", className), ...props }));
117
+ }
118
+ function SidebarHeader({ className, ...props }) {
119
+ return (_jsx("div", { "data-slot": "sidebar-header", "data-sidebar": "header", className: cn("cn-sidebar-header flex flex-col", className), ...props }));
120
+ }
121
+ function SidebarFooter({ className, ...props }) {
122
+ return (_jsx("div", { "data-slot": "sidebar-footer", "data-sidebar": "footer", className: cn("cn-sidebar-footer flex flex-col", className), ...props }));
123
+ }
124
+ function SidebarSeparator({ className, ...props }) {
125
+ return (_jsx(Separator, { "data-slot": "sidebar-separator", "data-sidebar": "separator", className: cn("cn-sidebar-separator w-auto", className), ...props }));
126
+ }
127
+ function SidebarContent({ className, ...props }) {
128
+ return (_jsx("div", { "data-slot": "sidebar-content", "data-sidebar": "content", className: cn("cn-sidebar-content flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden", className), ...props }));
129
+ }
130
+ function SidebarGroup({ className, ...props }) {
131
+ return (_jsx("div", { "data-slot": "sidebar-group", "data-sidebar": "group", className: cn("cn-sidebar-group relative flex w-full min-w-0 flex-col", className), ...props }));
132
+ }
133
+ function SidebarGroupLabel({ className, render, ...props }) {
134
+ return useRender({
135
+ defaultTagName: "div",
136
+ props: mergeProps({
137
+ className: cn("cn-sidebar-group-label flex shrink-0 items-center outline-hidden [&>svg]:shrink-0", className),
138
+ }, props),
139
+ render,
140
+ state: {
141
+ slot: "sidebar-group-label",
142
+ sidebar: "group-label",
143
+ },
144
+ });
145
+ }
146
+ function SidebarGroupAction({ className, render, ...props }) {
147
+ return useRender({
148
+ defaultTagName: "button",
149
+ props: mergeProps({
150
+ className: cn("cn-sidebar-group-action flex aspect-square items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0", className),
151
+ }, props),
152
+ render,
153
+ state: {
154
+ slot: "sidebar-group-action",
155
+ sidebar: "group-action",
156
+ },
157
+ });
158
+ }
159
+ function SidebarGroupContent({ className, ...props }) {
160
+ return (_jsx("div", { "data-slot": "sidebar-group-content", "data-sidebar": "group-content", className: cn("cn-sidebar-group-content w-full", className), ...props }));
161
+ }
162
+ function SidebarMenu({ className, ...props }) {
163
+ return (_jsx("ul", { "data-slot": "sidebar-menu", "data-sidebar": "menu", className: cn("cn-sidebar-menu flex w-full min-w-0 flex-col", className), ...props }));
164
+ }
165
+ function SidebarMenuItem({ className, ...props }) {
166
+ return (_jsx("li", { "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
167
+ }
168
+ const sidebarMenuButtonVariants = cva("cn-sidebar-menu-button peer/menu-button group/menu-button flex w-full items-center overflow-hidden outline-hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate", {
169
+ variants: {
170
+ variant: {
171
+ default: "cn-sidebar-menu-button-variant-default",
172
+ outline: "cn-sidebar-menu-button-variant-outline",
173
+ },
174
+ size: {
175
+ default: "cn-sidebar-menu-button-size-default",
176
+ sm: "cn-sidebar-menu-button-size-sm",
177
+ lg: "cn-sidebar-menu-button-size-lg",
178
+ },
179
+ },
180
+ defaultVariants: {
181
+ variant: "default",
182
+ size: "default",
183
+ },
184
+ });
185
+ function SidebarMenuButton({ render, isActive = false, variant = "default", size = "default", tooltip, className, ...props }) {
186
+ const { isMobile, state } = useSidebar();
187
+ const comp = useRender({
188
+ defaultTagName: "button",
189
+ props: mergeProps({
190
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
191
+ }, props),
192
+ render: !tooltip ? render : _jsx(TooltipTrigger, { render: render }),
193
+ state: {
194
+ slot: "sidebar-menu-button",
195
+ sidebar: "menu-button",
196
+ size,
197
+ active: isActive,
198
+ },
199
+ });
200
+ if (!tooltip) {
201
+ return comp;
202
+ }
203
+ if (typeof tooltip === "string") {
204
+ tooltip = {
205
+ children: tooltip,
206
+ };
207
+ }
208
+ return (_jsxs(Tooltip, { children: [comp, _jsx(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })] }));
209
+ }
210
+ function SidebarMenuAction({ className, render, showOnHover = false, ...props }) {
211
+ return useRender({
212
+ defaultTagName: "button",
213
+ props: mergeProps({
214
+ className: cn("cn-sidebar-menu-action flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0", showOnHover &&
215
+ "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-active/menu-button:text-sidebar-accent-foreground aria-expanded:opacity-100 md:opacity-0", className),
216
+ }, props),
217
+ render,
218
+ state: {
219
+ slot: "sidebar-menu-action",
220
+ sidebar: "menu-action",
221
+ },
222
+ });
223
+ }
224
+ function SidebarMenuBadge({ className, ...props }) {
225
+ return (_jsx("div", { "data-slot": "sidebar-menu-badge", "data-sidebar": "menu-badge", className: cn("cn-sidebar-menu-badge flex items-center justify-center tabular-nums select-none group-data-[collapsible=icon]:hidden", className), ...props }));
226
+ }
227
+ function SidebarMenuSkeleton({ className, showIcon = false, ...props }) {
228
+ // Random width between 50 to 90%.
229
+ const [width] = React.useState(() => {
230
+ return `${Math.floor(Math.random() * 40) + 50}%`;
231
+ });
232
+ return (_jsxs("div", { "data-slot": "sidebar-menu-skeleton", "data-sidebar": "menu-skeleton", className: cn("cn-sidebar-menu-skeleton flex items-center", className), ...props, children: [showIcon && (_jsx(Skeleton, { className: "cn-sidebar-menu-skeleton-icon", "data-sidebar": "menu-skeleton-icon" })), _jsx(Skeleton, { className: "cn-sidebar-menu-skeleton-text max-w-(--skeleton-width) flex-1", "data-sidebar": "menu-skeleton-text", style: {
233
+ "--skeleton-width": width,
234
+ } })] }));
235
+ }
236
+ function SidebarMenuSub({ className, ...props }) {
237
+ return (_jsx("ul", { "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: cn("cn-sidebar-menu-sub flex min-w-0 flex-col", className), ...props }));
238
+ }
239
+ function SidebarMenuSubItem({ className, ...props }) {
240
+ return (_jsx("li", { "data-slot": "sidebar-menu-sub-item", "data-sidebar": "menu-sub-item", className: cn("group/menu-sub-item relative", className), ...props }));
241
+ }
242
+ function SidebarMenuSubButton({ render, size = "md", isActive = false, className, ...props }) {
243
+ return useRender({
244
+ defaultTagName: "a",
245
+ props: mergeProps({
246
+ className: cn("cn-sidebar-menu-sub-button flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0", className),
247
+ }, props),
248
+ render,
249
+ state: {
250
+ slot: "sidebar-menu-sub-button",
251
+ sidebar: "menu-sub-button",
252
+ size,
253
+ active: isActive,
254
+ },
255
+ });
256
+ }
257
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar, };
@@ -0,0 +1,2 @@
1
+ declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
2
+ export { Skeleton };
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
3
+ import { cn } from "@ziioapp/ui/lib/utils";
4
+ function Skeleton({ className, ...props }) {
5
+ return (_jsx("div", { "data-slot": "skeleton", className: cn("cn-skeleton animate-pulse", className), ...props }));
6
+ }
7
+ export { Skeleton };
@@ -0,0 +1,3 @@
1
+ import { Slider as SliderPrimitive } from "@base-ui/react/slider";
2
+ declare function Slider({ className, defaultValue, value, min, max, ...props }: SliderPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
3
+ export { Slider };
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
3
+ import { Slider as SliderPrimitive } from "@base-ui/react/slider";
4
+ import { cn } from "@ziioapp/ui/lib/utils";
5
+ function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }) {
6
+ const _values = Array.isArray(value)
7
+ ? value
8
+ : Array.isArray(defaultValue)
9
+ ? defaultValue
10
+ : [min, max];
11
+ return (_jsx(SliderPrimitive.Root, { className: cn("data-horizontal:w-full data-vertical:h-full", className), "data-slot": "slider", defaultValue: defaultValue, value: value, min: min, max: max, thumbAlignment: "edge", ...props, children: _jsxs(SliderPrimitive.Control, { className: "cn-slider relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:w-auto data-vertical:flex-col", children: [_jsx(SliderPrimitive.Track, { "data-slot": "slider-track", className: "cn-slider-track relative grow overflow-hidden select-none", children: _jsx(SliderPrimitive.Indicator, { "data-slot": "slider-range", className: "cn-slider-range select-none data-horizontal:h-full data-vertical:w-full" }) }), Array.from({ length: _values.length }, (_, index) => (_jsx(SliderPrimitive.Thumb, { "data-slot": "slider-thumb", className: "cn-slider-thumb block shrink-0 select-none disabled:pointer-events-none disabled:opacity-50" }, index)))] }) }));
12
+ }
13
+ export { Slider };
@@ -0,0 +1,3 @@
1
+ import { type ToasterProps } from "sonner";
2
+ declare const Toaster: ({ ...props }: ToasterProps) => import("react/jsx-runtime").JSX.Element;
3
+ export { Toaster };
@@ -0,0 +1,26 @@
1
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
2
+ "use client";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { CircleCheckIcon, InfoIcon, Loader2Icon, OctagonXIcon, TriangleAlertIcon } from "lucide-react";
5
+ import { useTheme } from "next-themes";
6
+ import { Toaster as Sonner } from "sonner";
7
+ const Toaster = ({ ...props }) => {
8
+ const { theme = "system" } = useTheme();
9
+ return (_jsx(Sonner, { theme: theme, className: "toaster group", icons: {
10
+ success: (_jsx(CircleCheckIcon, { className: "size-4" })),
11
+ info: (_jsx(InfoIcon, { className: "size-4" })),
12
+ warning: (_jsx(TriangleAlertIcon, { className: "size-4" })),
13
+ error: (_jsx(OctagonXIcon, { className: "size-4" })),
14
+ loading: (_jsx(Loader2Icon, { className: "size-4 animate-spin" })),
15
+ }, style: {
16
+ "--normal-bg": "var(--popover)",
17
+ "--normal-text": "var(--popover-foreground)",
18
+ "--normal-border": "var(--border)",
19
+ "--border-radius": "var(--radius)",
20
+ }, toastOptions: {
21
+ classNames: {
22
+ toast: "cn-toast",
23
+ },
24
+ }, ...props }));
25
+ };
26
+ export { Toaster };
@@ -0,0 +1,2 @@
1
+ declare function Spinner({ className, ...props }: React.ComponentProps<"svg">): import("react/jsx-runtime").JSX.Element;
2
+ export { Spinner };
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
3
+ import { Loader2Icon } from "lucide-react";
4
+ import { cn } from "@ziioapp/ui/lib/utils";
5
+ function Spinner({ className, ...props }) {
6
+ return (_jsx(Loader2Icon, { "data-slot": "spinner", role: "status", "aria-label": "Loading", className: cn("size-4 animate-spin", className), ...props }));
7
+ }
8
+ export { Spinner };
@@ -0,0 +1,5 @@
1
+ import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
2
+ declare function Switch({ className, size, ...props }: SwitchPrimitive.Root.Props & {
3
+ size?: "sm" | "default";
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export { Switch };
@@ -0,0 +1,9 @@
1
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
2
+ "use client";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
5
+ import { cn } from "@ziioapp/ui/lib/utils";
6
+ function Switch({ className, size = "default", ...props }) {
7
+ return (_jsx(SwitchPrimitive.Root, { "data-slot": "switch", "data-size": size, className: cn("cn-switch peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-disabled:cursor-not-allowed data-disabled:opacity-50", className), ...props, children: _jsx(SwitchPrimitive.Thumb, { "data-slot": "switch-thumb", className: "cn-switch-thumb pointer-events-none block ring-0 transition-transform" }) }));
8
+ }
9
+ export { Switch };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ declare function Table({ className, ...props }: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
3
+ declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): import("react/jsx-runtime").JSX.Element;
4
+ declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): import("react/jsx-runtime").JSX.Element;
5
+ declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): import("react/jsx-runtime").JSX.Element;
6
+ declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): import("react/jsx-runtime").JSX.Element;
7
+ declare function TableHead({ className, ...props }: React.ComponentProps<"th">): import("react/jsx-runtime").JSX.Element;
8
+ declare function TableCell({ className, ...props }: React.ComponentProps<"td">): import("react/jsx-runtime").JSX.Element;
9
+ declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): import("react/jsx-runtime").JSX.Element;
10
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
@@ -0,0 +1,30 @@
1
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
2
+ "use client";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import * as React from "react";
5
+ import { cn } from "@ziioapp/ui/lib/utils";
6
+ function Table({ className, ...props }) {
7
+ return (_jsx("div", { "data-slot": "table-container", className: "cn-table-container", children: _jsx("table", { "data-slot": "table", className: cn("cn-table", className), ...props }) }));
8
+ }
9
+ function TableHeader({ className, ...props }) {
10
+ return (_jsx("thead", { "data-slot": "table-header", className: cn("cn-table-header", className), ...props }));
11
+ }
12
+ function TableBody({ className, ...props }) {
13
+ return (_jsx("tbody", { "data-slot": "table-body", className: cn("cn-table-body", className), ...props }));
14
+ }
15
+ function TableFooter({ className, ...props }) {
16
+ return (_jsx("tfoot", { "data-slot": "table-footer", className: cn("cn-table-footer", className), ...props }));
17
+ }
18
+ function TableRow({ className, ...props }) {
19
+ return (_jsx("tr", { "data-slot": "table-row", className: cn("cn-table-row has-aria-expanded:bg-muted/50", className), ...props }));
20
+ }
21
+ function TableHead({ className, ...props }) {
22
+ return (_jsx("th", { "data-slot": "table-head", className: cn("cn-table-head", className), ...props }));
23
+ }
24
+ function TableCell({ className, ...props }) {
25
+ return (_jsx("td", { "data-slot": "table-cell", className: cn("cn-table-cell", className), ...props }));
26
+ }
27
+ function TableCaption({ className, ...props }) {
28
+ return (_jsx("caption", { "data-slot": "table-caption", className: cn("cn-table-caption", className), ...props }));
29
+ }
30
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
@@ -0,0 +1,10 @@
1
+ import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare function Tabs({ className, orientation, ...props }: TabsPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
4
+ declare const tabsListVariants: (props?: ({
5
+ variant?: "line" | "default" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function TabsList({ className, variant, ...props }: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>): import("react/jsx-runtime").JSX.Element;
8
+ declare function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props): import("react/jsx-runtime").JSX.Element;
9
+ declare function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props): import("react/jsx-runtime").JSX.Element;
10
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
@@ -0,0 +1,30 @@
1
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
2
+ "use client";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
5
+ import { cva } from "class-variance-authority";
6
+ import { cn } from "@ziioapp/ui/lib/utils";
7
+ function Tabs({ className, orientation = "horizontal", ...props }) {
8
+ return (_jsx(TabsPrimitive.Root, { "data-slot": "tabs", "data-orientation": orientation, className: cn("cn-tabs group/tabs flex data-horizontal:flex-col", className), ...props }));
9
+ }
10
+ const tabsListVariants = cva("cn-tabs-list group/tabs-list inline-flex w-fit items-center justify-center text-muted-foreground group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col", {
11
+ variants: {
12
+ variant: {
13
+ default: "cn-tabs-list-variant-default bg-muted",
14
+ line: "cn-tabs-list-variant-line gap-1 bg-transparent",
15
+ },
16
+ },
17
+ defaultVariants: {
18
+ variant: "default",
19
+ },
20
+ });
21
+ function TabsList({ className, variant = "default", ...props }) {
22
+ return (_jsx(TabsPrimitive.List, { "data-slot": "tabs-list", "data-variant": variant, className: cn(tabsListVariants({ variant }), className), ...props }));
23
+ }
24
+ function TabsTrigger({ className, ...props }) {
25
+ return (_jsx(TabsPrimitive.Tab, { "data-slot": "tabs-trigger", className: cn("cn-tabs-trigger relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0", "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground", "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", className), ...props }));
26
+ }
27
+ function TabsContent({ className, ...props }) {
28
+ return (_jsx(TabsPrimitive.Panel, { "data-slot": "tabs-content", className: cn("cn-tabs-content flex-1 outline-none", className), ...props }));
29
+ }
30
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">): import("react/jsx-runtime").JSX.Element;
3
+ export { Textarea };
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
3
+ import * as React from "react";
4
+ import { cn } from "@ziioapp/ui/lib/utils";
5
+ function Textarea({ className, ...props }) {
6
+ return (_jsx("textarea", { "data-slot": "textarea", className: cn("cn-textarea flex field-sizing-content min-h-16 w-full outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50", className), ...props }));
7
+ }
8
+ export { Textarea };
@@ -0,0 +1,15 @@
1
+ import { Toast as ToastPrimitive } from "@base-ui/react/toast";
2
+ declare const toast: import("@base-ui/react").ToastManager<any>;
3
+ declare function ToastProvider({ ...props }: ToastPrimitive.Provider.Props): import("react/jsx-runtime").JSX.Element;
4
+ declare function ToastPortal({ ...props }: ToastPrimitive.Portal.Props): import("react/jsx-runtime").JSX.Element;
5
+ declare function ToastViewport({ className, ...props }: ToastPrimitive.Viewport.Props): import("react/jsx-runtime").JSX.Element;
6
+ declare function Toast({ className, ...props }: ToastPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
7
+ declare function ToastContent({ className, ...props }: ToastPrimitive.Content.Props): import("react/jsx-runtime").JSX.Element;
8
+ declare function ToastTitle({ className, ...props }: ToastPrimitive.Title.Props): import("react/jsx-runtime").JSX.Element;
9
+ declare function ToastDescription({ className, ...props }: ToastPrimitive.Description.Props): import("react/jsx-runtime").JSX.Element;
10
+ declare function ToastAction({ className, render, ...props }: ToastPrimitive.Action.Props): import("react/jsx-runtime").JSX.Element;
11
+ declare function ToastClose({ className, children, render, ...props }: ToastPrimitive.Close.Props): import("react/jsx-runtime").JSX.Element;
12
+ declare function Toaster({ children, toastManager, ...props }: ToastPrimitive.Provider.Props): import("react/jsx-runtime").JSX.Element;
13
+ declare const createToastManager: typeof ToastPrimitive.createToastManager;
14
+ declare const useToastManager: typeof ToastPrimitive.useToastManager;
15
+ export { Toaster, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, createToastManager, toast, useToastManager, };
@@ -0,0 +1,68 @@
1
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
2
+ "use client";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { CircleCheckIcon, InfoIcon, Loader2Icon, OctagonXIcon, TriangleAlertIcon, XIcon } from "lucide-react";
5
+ import * as React from "react";
6
+ import { Toast as ToastPrimitive } from "@base-ui/react/toast";
7
+ import { cn } from "@ziioapp/ui/lib/utils";
8
+ import { Button } from "@ziioapp/ui/components/button";
9
+ const toast = ToastPrimitive.createToastManager();
10
+ function ToastProvider({ ...props }) {
11
+ return _jsx(ToastPrimitive.Provider, { ...props });
12
+ }
13
+ function ToastPortal({ ...props }) {
14
+ return _jsx(ToastPrimitive.Portal, { "data-slot": "toast-portal", ...props });
15
+ }
16
+ function ToastViewport({ className, ...props }) {
17
+ return (_jsx(ToastPrimitive.Viewport, { "data-slot": "toast-viewport", className: cn("pointer-events-none fixed inset-x-4 bottom-4 z-50 mx-auto w-auto max-w-sm outline-none sm:right-4 sm:left-auto sm:mx-0 sm:w-full", className), ...props }));
18
+ }
19
+ function Toast({ className, ...props }) {
20
+ return (_jsx(ToastPrimitive.Root, { "data-slot": "toast", className: cn("cn-toast group/toast pointer-events-auto absolute right-0 bottom-0 z-[calc(1000-var(--toast-index))] w-full origin-bottom border bg-popover text-popover-foreground shadow-lg will-change-transform outline-none select-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "[--gap:0.75rem] [--height:var(--toast-frontmost-height,var(--toast-height))] [--offset-y:calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y))] [--peek:0.75rem] [--scale:calc(max(0,1-(var(--toast-index)*0.1)))] [--shrink:calc(1-var(--scale))]", "h-(--height) [transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))] [transition:transform_500ms_cubic-bezier(0.22,1,0.36,1),opacity_500ms,height_150ms]", "after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']", "data-expanded:h-(--toast-height) data-expanded:[transform:translateX(var(--toast-swipe-movement-x))_translateY(var(--offset-y))]", "data-limited:opacity-0 data-starting-style:[transform:translateY(150%)]", "[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]", "data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]", "data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]", "data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]", "data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]", "data-expanded:data-ending-style:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]", "data-expanded:data-ending-style:data-[swipe-direction=left]:[transform:translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))]", "data-expanded:data-ending-style:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]", "data-expanded:data-ending-style:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]", className), ...props }));
21
+ }
22
+ function ToastContent({ className, ...props }) {
23
+ return (_jsx(ToastPrimitive.Content, { "data-slot": "toast-content", className: cn("flex h-full items-center gap-3 overflow-hidden p-4 transition-opacity duration-250 ease-[cubic-bezier(0.22,1,0.36,1)] data-behind:opacity-0 data-expanded:opacity-100", className), ...props }));
24
+ }
25
+ function ToastTitle({ className, ...props }) {
26
+ return (_jsx(ToastPrimitive.Title, { "data-slot": "toast-title", className: cn("text-sm font-medium", className), ...props }));
27
+ }
28
+ function ToastDescription({ className, ...props }) {
29
+ return (_jsx(ToastPrimitive.Description, { "data-slot": "toast-description", className: cn("text-sm text-muted-foreground", className), ...props }));
30
+ }
31
+ function ToastAction({ className, render = _jsx(Button, { variant: "outline", size: "sm" }), ...props }) {
32
+ return (_jsx(ToastPrimitive.Action, { "data-slot": "toast-action", render: render, className: cn("shrink-0", className), ...props }));
33
+ }
34
+ function ToastClose({ className, children, render = _jsx(Button, { variant: "ghost", size: "icon-sm" }), ...props }) {
35
+ return (_jsx(ToastPrimitive.Close, { "data-slot": "toast-close", "aria-label": "Close toast", render: render, className: cn("relative shrink-0 text-muted-foreground after:absolute after:-inset-2 after:content-[''] hover:text-foreground", className), ...props, children: children ?? (_jsx(XIcon, { "aria-hidden": "true" })) }));
36
+ }
37
+ function ToastIcon({ type }) {
38
+ let icon = null;
39
+ if (type === "success") {
40
+ icon = (_jsx(CircleCheckIcon, { "aria-hidden": "true" }));
41
+ }
42
+ if (type === "info") {
43
+ icon = (_jsx(InfoIcon, { "aria-hidden": "true" }));
44
+ }
45
+ if (type === "warning") {
46
+ icon = (_jsx(TriangleAlertIcon, { "aria-hidden": "true" }));
47
+ }
48
+ if (type === "error") {
49
+ icon = (_jsx(OctagonXIcon, { className: "text-destructive", "aria-hidden": "true" }));
50
+ }
51
+ if (type === "loading") {
52
+ icon = (_jsx(Loader2Icon, { className: "animate-spin", "aria-hidden": "true" }));
53
+ }
54
+ if (!icon) {
55
+ return null;
56
+ }
57
+ return (_jsx("span", { "data-slot": "toast-icon", className: "shrink-0 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", children: icon }));
58
+ }
59
+ function ToastList() {
60
+ const { toasts } = ToastPrimitive.useToastManager();
61
+ return toasts.map((toastItem) => (_jsx(Toast, { toast: toastItem, children: _jsxs(ToastContent, { children: [_jsx(ToastIcon, { type: toastItem.type }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [_jsx(ToastTitle, {}), _jsx(ToastDescription, {})] }), _jsx(ToastAction, {}), _jsx(ToastClose, {})] }) }, toastItem.id)));
62
+ }
63
+ function Toaster({ children, toastManager = toast, ...props }) {
64
+ return (_jsxs(ToastProvider, { toastManager: toastManager, ...props, children: [children, _jsx(ToastPortal, { children: _jsx(ToastViewport, { children: _jsx(ToastList, {}) }) })] }));
65
+ }
66
+ const createToastManager = ToastPrimitive.createToastManager;
67
+ const useToastManager = ToastPrimitive.useToastManager;
68
+ export { Toaster, Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, createToastManager, toast, useToastManager, };
@@ -0,0 +1,10 @@
1
+ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
2
+ import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group";
3
+ import { type VariantProps } from "class-variance-authority";
4
+ import { toggleVariants } from "@ziioapp/ui/components/toggle";
5
+ declare function ToggleGroup({ className, variant, size, spacing, orientation, children, ...props }: ToggleGroupPrimitive.Props & VariantProps<typeof toggleVariants> & {
6
+ spacing?: number;
7
+ orientation?: "horizontal" | "vertical";
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ declare function ToggleGroupItem({ className, children, variant, size, ...props }: TogglePrimitive.Props & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
10
+ export { ToggleGroup, ToggleGroupItem };
@@ -0,0 +1,26 @@
1
+ // Generated from locked shadcn upstream; edit scripts/sync-upstream.mjs, not this file.
2
+ "use client";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import * as React from "react";
5
+ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
6
+ import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group";
7
+ import {} from "class-variance-authority";
8
+ import { cn } from "@ziioapp/ui/lib/utils";
9
+ import { toggleVariants } from "@ziioapp/ui/components/toggle";
10
+ const ToggleGroupContext = React.createContext({
11
+ size: "default",
12
+ variant: "default",
13
+ spacing: 2,
14
+ orientation: "horizontal",
15
+ });
16
+ function ToggleGroup({ className, variant, size, spacing = 2, orientation = "horizontal", children, ...props }) {
17
+ return (_jsx(ToggleGroupPrimitive, { "data-slot": "toggle-group", "data-variant": variant, "data-size": size, "data-spacing": spacing, "data-orientation": orientation, style: { "--gap": spacing }, className: cn("cn-toggle-group group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-vertical:flex-col data-vertical:items-stretch", className), ...props, children: _jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing, orientation }, children: children }) }));
18
+ }
19
+ function ToggleGroupItem({ className, children, variant = "default", size = "default", ...props }) {
20
+ const context = React.useContext(ToggleGroupContext);
21
+ return (_jsx(TogglePrimitive, { "data-slot": "toggle-group-item", "data-variant": context.variant || variant, "data-size": context.size || size, "data-spacing": context.spacing, className: cn("cn-toggle-group-item shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t", toggleVariants({
22
+ variant: context.variant || variant,
23
+ size: context.size || size,
24
+ }), className), ...props, children: children }));
25
+ }
26
+ export { ToggleGroup, ToggleGroupItem };
@@ -0,0 +1,8 @@
1
+ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const toggleVariants: (props?: ({
4
+ variant?: "default" | "outline" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function Toggle({ className, variant, size, ...props }: TogglePrimitive.Props & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
8
+ export { Toggle, toggleVariants };