art-bd-ui 1.0.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 (162) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/components/buttons/button/button.js +43 -0
  3. package/dist/cjs/components/buttons/icon-button/icon-button.js +33 -0
  4. package/dist/cjs/components/buttons/toggle/toggle.js +34 -0
  5. package/dist/cjs/components/buttons/toggle-group/toggle-group.js +31 -0
  6. package/dist/cjs/components/forms/checkbox/checkbox.js +52 -0
  7. package/dist/cjs/components/forms/input/input.js +38 -0
  8. package/dist/cjs/components/forms/label/label.js +38 -0
  9. package/dist/cjs/components/forms/radio/radio.js +22 -0
  10. package/dist/cjs/components/forms/select/select.js +72 -0
  11. package/dist/cjs/components/forms/switch/switch.js +51 -0
  12. package/dist/cjs/components/forms/textarea/textarea.js +37 -0
  13. package/dist/cjs/components/layout/box/box.js +19 -0
  14. package/dist/cjs/components/layout/flex/flex.js +14 -0
  15. package/dist/cjs/components/layout/grid/grid.js +14 -0
  16. package/dist/cjs/components/media/aspect-ratio/aspect-ratio.js +31 -0
  17. package/dist/cjs/components/media/avatar/avatar.js +27 -0
  18. package/dist/cjs/components/media/icon/icon.js +27 -0
  19. package/dist/cjs/components/popovers/dialog/dialog.js +69 -0
  20. package/dist/cjs/components/popovers/drawer/drawer.js +82 -0
  21. package/dist/cjs/components/popovers/popover/popover.js +66 -0
  22. package/dist/cjs/components/popovers/sheet/sheet.js +94 -0
  23. package/dist/cjs/components/popovers/toast/toast.js +75 -0
  24. package/dist/cjs/components/popovers/tooltip/tooltip.js +45 -0
  25. package/dist/cjs/components/typography/heading/heading.js +55 -0
  26. package/dist/cjs/components/typography/text/text.js +57 -0
  27. package/dist/cjs/components/ui/alert/alert.js +34 -0
  28. package/dist/cjs/components/ui/badge/badge.js +31 -0
  29. package/dist/cjs/components/ui/button/button.js +42 -0
  30. package/dist/cjs/components/ui/calendar/calendar.js +24 -0
  31. package/dist/cjs/components/ui/command/command.js +83 -0
  32. package/dist/cjs/components/ui/data-table/components/cell.js +24 -0
  33. package/dist/cjs/components/ui/data-table/components/column-group.js +45 -0
  34. package/dist/cjs/components/ui/data-table/components/table-body.js +47 -0
  35. package/dist/cjs/components/ui/data-table/components/table-fallback.js +28 -0
  36. package/dist/cjs/components/ui/data-table/components/table-head.js +56 -0
  37. package/dist/cjs/components/ui/data-table/components/table-placeholder.js +18 -0
  38. package/dist/cjs/components/ui/data-table/data-table.js +97 -0
  39. package/dist/cjs/components/ui/data-table/hooks/contextHooks.js +75 -0
  40. package/dist/cjs/components/ui/data-table/hooks/useStickyColumns.js +98 -0
  41. package/dist/cjs/components/ui/data-table/utils.js +26 -0
  42. package/dist/cjs/components/ui/date-picker/date-picker.js +15 -0
  43. package/dist/cjs/components/ui/dropdown-menu/dropdown-menu.js +100 -0
  44. package/dist/cjs/components/ui/icon/icon.js +27 -0
  45. package/dist/cjs/components/ui/link/link.js +32 -0
  46. package/dist/cjs/components/ui/pagination/pagination.js +51 -0
  47. package/dist/cjs/components/ui/progress/progress.js +13 -0
  48. package/dist/cjs/components/ui/sidebar/sidebar.js +331 -0
  49. package/dist/cjs/components/ui/table/components/cell.js +30 -0
  50. package/dist/cjs/components/ui/table/components/row.js +25 -0
  51. package/dist/cjs/components/ui/table/components/table-body.js +13 -0
  52. package/dist/cjs/components/ui/table/components/table-caption.js +13 -0
  53. package/dist/cjs/components/ui/table/components/table-footer.js +13 -0
  54. package/dist/cjs/components/ui/table/components/table-head.js +30 -0
  55. package/dist/cjs/components/ui/table/components/table-header.js +13 -0
  56. package/dist/cjs/components/ui/table/table.js +36 -0
  57. package/dist/cjs/components/ui/tabs/tabs.js +47 -0
  58. package/dist/cjs/components/utility/empty-state/empty-state.js +29 -0
  59. package/dist/cjs/components/utility/separator/separator.js +14 -0
  60. package/dist/cjs/components/utility/skeleton/skeleton.js +13 -0
  61. package/dist/cjs/components/utility/status-controller/status-controller.js +12 -0
  62. package/dist/cjs/hooks/use-mobile.js +21 -0
  63. package/dist/cjs/hooks/useControlled.js +19 -0
  64. package/dist/cjs/hooks/useFirstMountState.js +16 -0
  65. package/dist/cjs/hooks/useForkRef.js +23 -0
  66. package/dist/cjs/hooks/useLatest.js +12 -0
  67. package/dist/cjs/hooks/usePrevious.js +14 -0
  68. package/dist/cjs/hooks/useScrollState.js +39 -0
  69. package/dist/cjs/hooks/useStateRef.js +12 -0
  70. package/dist/cjs/hooks/useUpdateEffect.js +17 -0
  71. package/dist/cjs/index.js +237 -0
  72. package/dist/cjs/lib/utils.js +16 -0
  73. package/dist/cjs/styles/responsive.js +84 -0
  74. package/dist/cjs/styles/typography.js +25 -0
  75. package/dist/cjs/utils/addIf.js +5 -0
  76. package/dist/cjs/utils/chain.js +30 -0
  77. package/dist/cjs/utils/getBoundingRect.js +19 -0
  78. package/dist/cjs/utils/mergeProps.js +42 -0
  79. package/dist/cjs/utils/mergeRefs.js +18 -0
  80. package/dist/cjs/utils/toggle.js +16 -0
  81. package/dist/esm/components/buttons/button/button.js +40 -0
  82. package/dist/esm/components/buttons/icon-button/icon-button.js +31 -0
  83. package/dist/esm/components/buttons/toggle/toggle.js +31 -0
  84. package/dist/esm/components/buttons/toggle-group/toggle-group.js +28 -0
  85. package/dist/esm/components/forms/checkbox/checkbox.js +50 -0
  86. package/dist/esm/components/forms/input/input.js +36 -0
  87. package/dist/esm/components/forms/label/label.js +36 -0
  88. package/dist/esm/components/forms/radio/radio.js +19 -0
  89. package/dist/esm/components/forms/select/select.js +61 -0
  90. package/dist/esm/components/forms/switch/switch.js +49 -0
  91. package/dist/esm/components/forms/textarea/textarea.js +35 -0
  92. package/dist/esm/components/layout/box/box.js +17 -0
  93. package/dist/esm/components/layout/flex/flex.js +12 -0
  94. package/dist/esm/components/layout/grid/grid.js +12 -0
  95. package/dist/esm/components/media/aspect-ratio/aspect-ratio.js +10 -0
  96. package/dist/esm/components/media/avatar/avatar.js +23 -0
  97. package/dist/esm/components/media/icon/icon.js +25 -0
  98. package/dist/esm/components/popovers/dialog/dialog.js +60 -0
  99. package/dist/esm/components/popovers/drawer/drawer.js +74 -0
  100. package/dist/esm/components/popovers/popover/popover.js +61 -0
  101. package/dist/esm/components/popovers/sheet/sheet.js +86 -0
  102. package/dist/esm/components/popovers/toast/toast.js +67 -0
  103. package/dist/esm/components/popovers/tooltip/tooltip.js +40 -0
  104. package/dist/esm/components/typography/heading/heading.js +53 -0
  105. package/dist/esm/components/typography/text/text.js +55 -0
  106. package/dist/esm/components/ui/alert/alert.js +30 -0
  107. package/dist/esm/components/ui/badge/badge.js +28 -0
  108. package/dist/esm/components/ui/button/button.js +40 -0
  109. package/dist/esm/components/ui/calendar/calendar.js +22 -0
  110. package/dist/esm/components/ui/command/command.js +73 -0
  111. package/dist/esm/components/ui/data-table/components/cell.js +22 -0
  112. package/dist/esm/components/ui/data-table/components/column-group.js +43 -0
  113. package/dist/esm/components/ui/data-table/components/table-body.js +45 -0
  114. package/dist/esm/components/ui/data-table/components/table-fallback.js +26 -0
  115. package/dist/esm/components/ui/data-table/components/table-head.js +54 -0
  116. package/dist/esm/components/ui/data-table/components/table-placeholder.js +16 -0
  117. package/dist/esm/components/ui/data-table/data-table.js +95 -0
  118. package/dist/esm/components/ui/data-table/hooks/contextHooks.js +60 -0
  119. package/dist/esm/components/ui/data-table/hooks/useStickyColumns.js +96 -0
  120. package/dist/esm/components/ui/data-table/utils.js +22 -0
  121. package/dist/esm/components/ui/date-picker/date-picker.js +13 -0
  122. package/dist/esm/components/ui/dropdown-menu/dropdown-menu.js +84 -0
  123. package/dist/esm/components/ui/icon/icon.js +25 -0
  124. package/dist/esm/components/ui/link/link.js +30 -0
  125. package/dist/esm/components/ui/pagination/pagination.js +43 -0
  126. package/dist/esm/components/ui/progress/progress.js +11 -0
  127. package/dist/esm/components/ui/sidebar/sidebar.js +306 -0
  128. package/dist/esm/components/ui/table/components/cell.js +28 -0
  129. package/dist/esm/components/ui/table/components/row.js +23 -0
  130. package/dist/esm/components/ui/table/components/table-body.js +11 -0
  131. package/dist/esm/components/ui/table/components/table-caption.js +11 -0
  132. package/dist/esm/components/ui/table/components/table-footer.js +11 -0
  133. package/dist/esm/components/ui/table/components/table-head.js +28 -0
  134. package/dist/esm/components/ui/table/components/table-header.js +11 -0
  135. package/dist/esm/components/ui/table/table.js +26 -0
  136. package/dist/esm/components/ui/tabs/tabs.js +23 -0
  137. package/dist/esm/components/utility/empty-state/empty-state.js +27 -0
  138. package/dist/esm/components/utility/separator/separator.js +12 -0
  139. package/dist/esm/components/utility/skeleton/skeleton.js +11 -0
  140. package/dist/esm/components/utility/status-controller/status-controller.js +10 -0
  141. package/dist/esm/hooks/use-mobile.js +19 -0
  142. package/dist/esm/hooks/useControlled.js +17 -0
  143. package/dist/esm/hooks/useFirstMountState.js +14 -0
  144. package/dist/esm/hooks/useForkRef.js +21 -0
  145. package/dist/esm/hooks/useLatest.js +10 -0
  146. package/dist/esm/hooks/usePrevious.js +12 -0
  147. package/dist/esm/hooks/useScrollState.js +37 -0
  148. package/dist/esm/hooks/useStateRef.js +10 -0
  149. package/dist/esm/hooks/useUpdateEffect.js +15 -0
  150. package/dist/esm/index.js +63 -0
  151. package/dist/esm/lib/utils.js +13 -0
  152. package/dist/esm/styles/responsive.js +81 -0
  153. package/dist/esm/styles/typography.js +21 -0
  154. package/dist/esm/utils/addIf.js +3 -0
  155. package/dist/esm/utils/chain.js +28 -0
  156. package/dist/esm/utils/getBoundingRect.js +16 -0
  157. package/dist/esm/utils/mergeProps.js +40 -0
  158. package/dist/esm/utils/mergeRefs.js +15 -0
  159. package/dist/esm/utils/toggle.js +14 -0
  160. package/dist/styles.css +1 -0
  161. package/dist/types/index.d.ts +1418 -0
  162. package/package.json +114 -0
@@ -0,0 +1,331 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var tslib = require('tslib');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var reactSlot = require('@radix-ui/react-slot');
7
+ var classVarianceAuthority = require('class-variance-authority');
8
+ var react = require('react');
9
+ var useMobile = require('../../../hooks/use-mobile.js');
10
+ var utils = require('../../../lib/utils.js');
11
+ var icon = require('../../media/icon/icon.js');
12
+ var button = require('../../buttons/button/button.js');
13
+ var input = require('../../forms/input/input.js');
14
+ var separator = require('../../utility/separator/separator.js');
15
+ var sheet = require('../../popovers/sheet/sheet.js');
16
+ var skeleton = require('../../utility/skeleton/skeleton.js');
17
+ var tooltip = require('../../popovers/tooltip/tooltip.js');
18
+
19
+ const SIDEBAR_COOKIE_NAME = "sidebar_state";
20
+ const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
21
+ const SIDEBAR_WIDTH = "16rem";
22
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
23
+ const SIDEBAR_WIDTH_ICON = "3rem";
24
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
25
+ const SidebarContext = react.createContext(null);
26
+ function useSidebar() {
27
+ const context = react.useContext(SidebarContext);
28
+ if (!context) {
29
+ throw new Error("useSidebar must be used within a SidebarProvider.");
30
+ }
31
+ return context;
32
+ }
33
+ function SidebarProvider(_a) {
34
+ var { defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children } = _a, props = tslib.__rest(_a, ["defaultOpen", "open", "onOpenChange", "className", "style", "children"]);
35
+ const isMobile = useMobile.useIsMobile();
36
+ const [openMobile, setOpenMobile] = react.useState(false);
37
+ // This is the internal state of the sidebar.
38
+ // We use openProp and setOpenProp for control from outside the component.
39
+ const [_open, _setOpen] = react.useState(defaultOpen);
40
+ const open = openProp !== null && openProp !== void 0 ? openProp : _open;
41
+ const setOpen = react.useCallback((value) => {
42
+ const openState = typeof value === "function" ? value(open) : value;
43
+ if (setOpenProp) {
44
+ setOpenProp(openState);
45
+ }
46
+ else {
47
+ _setOpen(openState);
48
+ }
49
+ // This sets the cookie to keep the sidebar state.
50
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
51
+ }, [setOpenProp, open]);
52
+ // Helper to toggle the sidebar.
53
+ const toggleSidebar = react.useCallback(() => {
54
+ return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);
55
+ }, [isMobile, setOpen, setOpenMobile]);
56
+ // Adds a keyboard shortcut to toggle the sidebar.
57
+ react.useEffect(() => {
58
+ const handleKeyDown = (event) => {
59
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
60
+ event.preventDefault();
61
+ toggleSidebar();
62
+ }
63
+ };
64
+ window.addEventListener("keydown", handleKeyDown);
65
+ return () => window.removeEventListener("keydown", handleKeyDown);
66
+ }, [toggleSidebar]);
67
+ // We add a state so that we can do data-state="expanded" or "collapsed".
68
+ // This makes it easier to style the sidebar with Tailwind classes.
69
+ const state = open ? "expanded" : "collapsed";
70
+ const contextValue = react.useMemo(() => ({
71
+ state,
72
+ open,
73
+ setOpen,
74
+ isMobile,
75
+ openMobile,
76
+ setOpenMobile,
77
+ toggleSidebar,
78
+ }), [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
79
+ return (jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: jsxRuntime.jsx(tooltip.TooltipProvider, { delayDuration: 0, children: jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-wrapper", style: Object.assign({ "--sidebar-width": SIDEBAR_WIDTH, "--sidebar-width-icon": SIDEBAR_WIDTH_ICON }, style), className: utils.cn("group/sidebar-wrapper flex min-h-svh w-full", "has-data-[variant=inset]:bg-sidebar", className) }, props, { children: children })) }) }));
80
+ }
81
+ function Sidebar(_a) {
82
+ var { side = "left", variant = "sidebar", collapsible = "offcanvas", className, children } = _a, props = tslib.__rest(_a, ["side", "variant", "collapsible", "className", "children"]);
83
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
84
+ if (collapsible === "none") {
85
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar", className: utils.cn("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", className) }, props, { children: children })));
86
+ }
87
+ if (isMobile) {
88
+ return (jsxRuntime.jsx(sheet.Sheet, Object.assign({ open: openMobile, onOpenChange: setOpenMobile }, props, { children: jsxRuntime.jsxs(sheet.SheetContent, { "data-sidebar": "sidebar", "data-slot": "sidebar", "data-mobile": "true", className: utils.cn("bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0", "[&>button]:hidden"), style: {
89
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE,
90
+ }, side: side, children: [jsxRuntime.jsxs(sheet.SheetHeader, { className: "sr-only", children: [jsxRuntime.jsx(sheet.SheetTitle, { children: "Sidebar" }), jsxRuntime.jsx(sheet.SheetDescription, { children: "Displays the mobile sidebar." })] }), jsxRuntime.jsx("div", { className: "flex h-full w-full flex-col", children: children })] }) })));
91
+ }
92
+ return (jsxRuntime.jsxs("div", { className: "group peer text-sidebar-foreground hidden md:block", "data-state": state, "data-collapsible": state === "collapsed" ? collapsible : "", "data-variant": variant, "data-side": side, "data-slot": "sidebar", children: [jsxRuntime.jsx("div", { "data-slot": "sidebar-gap", className: utils.cn(
93
+ // Base styles
94
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
95
+ // Collapsible styles
96
+ "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180",
97
+ // Variant-specific styles
98
+ variant === "floating" || variant === "inset"
99
+ ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]"
100
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)") }), jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-container", className: utils.cn(
101
+ // Base styles
102
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
103
+ // Side-specific styles
104
+ side === "left"
105
+ ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]"
106
+ : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
107
+ // Variant-specific styles
108
+ variant === "floating" || variant === "inset"
109
+ ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]"
110
+ : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className) }, props, { children: jsxRuntime.jsx("div", { "data-sidebar": "sidebar", "data-slot": "sidebar-inner", className: utils.cn("bg-sidebar flex h-full w-full flex-col", "group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"), children: children }) }))] }));
111
+ }
112
+ function SidebarTrigger(_a) {
113
+ var { className, onClick } = _a, props = tslib.__rest(_a, ["className", "onClick"]);
114
+ const { toggleSidebar } = useSidebar();
115
+ return (jsxRuntime.jsxs(button.Button, Object.assign({ "data-sidebar": "trigger", "data-slot": "sidebar-trigger", variant: "ghost", size: "icon", className: utils.cn("size-7", className), onClick: (event) => {
116
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
117
+ toggleSidebar();
118
+ } }, props, { children: [jsxRuntime.jsx(icon.Icon, { name: "panel-left" }), jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle Sidebar" })] })));
119
+ }
120
+ function SidebarRail(_a) {
121
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
122
+ const { toggleSidebar } = useSidebar();
123
+ return (jsxRuntime.jsx("button", Object.assign({ "data-sidebar": "rail", "data-slot": "sidebar-rail", "aria-label": "Toggle Sidebar", tabIndex: -1, onClick: toggleSidebar, title: "Toggle Sidebar", className: utils.cn(
124
+ // Base styles
125
+ "absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear", "after:absolute after:inset-y-0 after:left-1/2 after:w-[2px]",
126
+ // Side-specific styles
127
+ "group-data-[side=left]:-right-4 group-data-[side=right]:left-0",
128
+ // Cursor styles
129
+ "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",
130
+ // Hover and collapsible styles
131
+ "hover:after:bg-sidebar-border", "hover:group-data-[collapsible=offcanvas]:bg-sidebar", "group-data-[collapsible=offcanvas]:translate-x-0", "group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", "sm:flex", className) }, props)));
132
+ }
133
+ function SidebarInset(_a) {
134
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
135
+ return (jsxRuntime.jsx("main", Object.assign({ "data-slot": "sidebar-inset", className: utils.cn(
136
+ // Base styles
137
+ "bg-background relative flex w-full flex-1 flex-col",
138
+ // Inset variant styles
139
+ "md:peer-data-[variant=inset]:m-2", "md:peer-data-[variant=inset]:ml-0", "md:peer-data-[variant=inset]:rounded-xl", "md:peer-data-[variant=inset]:shadow-sm", "md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", className) }, props)));
140
+ }
141
+ function SidebarInput(_a) {
142
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
143
+ return (jsxRuntime.jsx(input.Input, Object.assign({ "data-slot": "sidebar-input", "data-sidebar": "input", className: utils.cn("bg-background h-8 w-full shadow-none", className) }, props)));
144
+ }
145
+ function SidebarHeader(_a) {
146
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
147
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-header", "data-sidebar": "header", className: utils.cn("flex flex-col gap-2 p-2", className) }, props)));
148
+ }
149
+ function SidebarFooter(_a) {
150
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
151
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-footer", "data-sidebar": "footer", className: utils.cn("flex flex-col gap-2 p-2", className) }, props)));
152
+ }
153
+ function SidebarSeparator(_a) {
154
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
155
+ return (jsxRuntime.jsx(separator.Separator, Object.assign({ "data-slot": "sidebar-separator", "data-sidebar": "separator", className: utils.cn("bg-sidebar-border mx-2 w-auto", className) }, props)));
156
+ }
157
+ function SidebarContent(_a) {
158
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
159
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-content", "data-sidebar": "content", className: utils.cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto", "group-data-[collapsible=icon]:overflow-hidden", className) }, props)));
160
+ }
161
+ function SidebarGroup(_a) {
162
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
163
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-group", "data-sidebar": "group", className: utils.cn("relative flex w-full min-w-0 flex-col p-2", className) }, props)));
164
+ }
165
+ function SidebarGroupLabel(_a) {
166
+ var { className, asChild = false } = _a, props = tslib.__rest(_a, ["className", "asChild"]);
167
+ const Comp = asChild ? reactSlot.Slot : "div";
168
+ return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-group-label", "data-sidebar": "group-label", className: utils.cn(
169
+ // Base styles
170
+ "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium", "outline-hidden transition-[margin,opacity] duration-200 ease-linear", "focus-visible:ring-2",
171
+ // Icon styles
172
+ "[&>svg]:size-4 [&>svg]:shrink-0",
173
+ // Collapsible styles
174
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className) }, props)));
175
+ }
176
+ function SidebarGroupAction(_a) {
177
+ var { className, asChild = false } = _a, props = tslib.__rest(_a, ["className", "asChild"]);
178
+ const Comp = asChild ? reactSlot.Slot : "button";
179
+ return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-group-action", "data-sidebar": "group-action", className: utils.cn(
180
+ // Base styles
181
+ "text-sidebar-foreground ring-sidebar-ring absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0", "outline-hidden transition-transform focus-visible:ring-2",
182
+ // Hover styles
183
+ "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
184
+ // Icon styles
185
+ "[&>svg]:size-4 [&>svg]:shrink-0",
186
+ // Mobile hit area
187
+ "after:absolute after:-inset-2 md:after:hidden",
188
+ // Collapsible styles
189
+ "group-data-[collapsible=icon]:hidden", className) }, props)));
190
+ }
191
+ function SidebarGroupContent(_a) {
192
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
193
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-group-content", "data-sidebar": "group-content", className: utils.cn("w-full text-sm", className) }, props)));
194
+ }
195
+ function SidebarMenu(_a) {
196
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
197
+ return (jsxRuntime.jsx("ul", Object.assign({ "data-slot": "sidebar-menu", "data-sidebar": "menu", className: utils.cn("flex w-full min-w-0 flex-col gap-1", className) }, props)));
198
+ }
199
+ function SidebarMenuItem(_a) {
200
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
201
+ return (jsxRuntime.jsx("li", Object.assign({ "data-slot": "sidebar-menu-item", "data-sidebar": "menu-item", className: utils.cn("group/menu-item relative", className) }, props)));
202
+ }
203
+ function SidebarMenuAction(_a) {
204
+ var { className, asChild = false, showOnHover = false } = _a, props = tslib.__rest(_a, ["className", "asChild", "showOnHover"]);
205
+ const Comp = asChild ? reactSlot.Slot : "button";
206
+ return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-menu-action", "data-sidebar": "menu-action", className: utils.cn(
207
+ // Base styles
208
+ "text-sidebar-foreground ring-sidebar-ring absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0", "outline-hidden transition-transform focus-visible:ring-2",
209
+ // Hover styles
210
+ "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground", "peer-hover/menu-button:text-sidebar-accent-foreground",
211
+ // Icon styles
212
+ "[&>svg]:size-4 [&>svg]:shrink-0",
213
+ // Mobile hit area
214
+ "after:absolute after:-inset-2 md:after:hidden",
215
+ // Size-specific styles
216
+ "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5",
217
+ // Collapsible styles
218
+ "group-data-[collapsible=icon]:hidden",
219
+ // Hover visibility
220
+ showOnHover &&
221
+ utils.cn("peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "group-focus-within/menu-item:opacity-100", "group-hover/menu-item:opacity-100", "data-[state=open]:opacity-100", "md:opacity-0"), className) }, props)));
222
+ }
223
+ function SidebarMenuBadge(_a) {
224
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
225
+ return (jsxRuntime.jsx("div", Object.assign({ "data-slot": "sidebar-menu-badge", "data-sidebar": "menu-badge", className: utils.cn(
226
+ // Base styles
227
+ "text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium", "tabular-nums select-none",
228
+ // Hover and active states
229
+ "peer-hover/menu-button:text-sidebar-accent-foreground", "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
230
+ // Size-specific styles
231
+ "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5",
232
+ // Collapsible styles
233
+ "group-data-[collapsible=icon]:hidden", className) }, props)));
234
+ }
235
+ function SidebarMenuSkeleton(_a) {
236
+ var { className, showIcon = false } = _a, props = tslib.__rest(_a, ["className", "showIcon"]);
237
+ const width = react.useMemo(() => {
238
+ return `${Math.floor(Math.random() * 40) + 50}%`;
239
+ }, []);
240
+ return (jsxRuntime.jsxs("div", Object.assign({ "data-slot": "sidebar-menu-skeleton", "data-sidebar": "menu-skeleton", className: utils.cn("flex h-8 items-center gap-2 rounded-md px-2", className) }, props, { children: [showIcon && jsxRuntime.jsx(skeleton.Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }), jsxRuntime.jsx(skeleton.Skeleton, { className: "h-4 max-w-(--skeleton-width) flex-1", "data-sidebar": "menu-skeleton-text", style: {
241
+ "--skeleton-width": width,
242
+ } })] })));
243
+ }
244
+ function SidebarMenuSub(_a) {
245
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
246
+ return (jsxRuntime.jsx("ul", Object.assign({ "data-slot": "sidebar-menu-sub", "data-sidebar": "menu-sub", className: utils.cn(
247
+ // Base styles
248
+ "border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5",
249
+ // Collapsible styles
250
+ "group-data-[collapsible=icon]:hidden", className) }, props)));
251
+ }
252
+ function SidebarMenuSubItem(_a) {
253
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
254
+ return (jsxRuntime.jsx("li", Object.assign({ "data-slot": "sidebar-menu-sub-item", "data-sidebar": "menu-sub-item", className: utils.cn("group/menu-sub-item relative", className) }, props)));
255
+ }
256
+ function SidebarMenuSubButton(_a) {
257
+ var { asChild = false, size = "md", isActive = false, className } = _a, props = tslib.__rest(_a, ["asChild", "size", "isActive", "className"]);
258
+ const Comp = asChild ? reactSlot.Slot : "a";
259
+ return (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-menu-sub-button", "data-sidebar": "menu-sub-button", "data-size": size, "data-active": isActive, className: utils.cn(
260
+ // Base styles
261
+ "text-sidebar-foreground ring-sidebar-ring flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2", "outline-hidden focus-visible:ring-2",
262
+ // Hover and active states
263
+ "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground", "active:bg-sidebar-accent active:text-sidebar-accent-foreground", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
264
+ // Icon styles
265
+ "[&>svg]:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
266
+ // Text styles
267
+ "[&>span:last-child]:truncate",
268
+ // Size-specific styles
269
+ size === "sm" && "text-xs", size === "md" && "text-sm",
270
+ // Disabled states
271
+ "disabled:pointer-events-none disabled:opacity-50", "aria-disabled:pointer-events-none aria-disabled:opacity-50",
272
+ // Collapsible styles
273
+ "group-data-[collapsible=icon]:hidden", className) }, props)));
274
+ }
275
+ const sidebarMenuButtonVariants = classVarianceAuthority.cva("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", {
276
+ variants: {
277
+ variant: {
278
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
279
+ outline: utils.cn("bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))]", "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"),
280
+ },
281
+ size: {
282
+ default: "h-8 text-sm",
283
+ sm: "h-7 text-xs",
284
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!",
285
+ },
286
+ },
287
+ defaultVariants: {
288
+ variant: "default",
289
+ size: "default",
290
+ },
291
+ });
292
+ function SidebarMenuButton(_a) {
293
+ var { asChild = false, isActive = false, variant = "default", size = "default", tooltip: tooltip$1, className } = _a, props = tslib.__rest(_a, ["asChild", "isActive", "variant", "size", "tooltip", "className"]);
294
+ const Comp = asChild ? reactSlot.Slot : "button";
295
+ const { isMobile, state } = useSidebar();
296
+ const button = (jsxRuntime.jsx(Comp, Object.assign({ "data-slot": "sidebar-menu-button", "data-sidebar": "menu-button", "data-size": size, "data-active": isActive, className: utils.cn(sidebarMenuButtonVariants({ variant, size }), className) }, props)));
297
+ if (!tooltip$1) {
298
+ return button;
299
+ }
300
+ if (typeof tooltip$1 === "string") {
301
+ tooltip$1 = {
302
+ children: tooltip$1,
303
+ };
304
+ }
305
+ return (jsxRuntime.jsxs(tooltip.Tooltip, { children: [jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: button }), jsxRuntime.jsx(tooltip.TooltipContent, Object.assign({ side: "right", align: "center", hidden: state !== "collapsed" || isMobile }, tooltip$1))] }));
306
+ }
307
+
308
+ exports.Sidebar = Sidebar;
309
+ exports.SidebarContent = SidebarContent;
310
+ exports.SidebarFooter = SidebarFooter;
311
+ exports.SidebarGroup = SidebarGroup;
312
+ exports.SidebarGroupAction = SidebarGroupAction;
313
+ exports.SidebarGroupContent = SidebarGroupContent;
314
+ exports.SidebarGroupLabel = SidebarGroupLabel;
315
+ exports.SidebarHeader = SidebarHeader;
316
+ exports.SidebarInput = SidebarInput;
317
+ exports.SidebarInset = SidebarInset;
318
+ exports.SidebarMenu = SidebarMenu;
319
+ exports.SidebarMenuAction = SidebarMenuAction;
320
+ exports.SidebarMenuBadge = SidebarMenuBadge;
321
+ exports.SidebarMenuButton = SidebarMenuButton;
322
+ exports.SidebarMenuItem = SidebarMenuItem;
323
+ exports.SidebarMenuSkeleton = SidebarMenuSkeleton;
324
+ exports.SidebarMenuSub = SidebarMenuSub;
325
+ exports.SidebarMenuSubButton = SidebarMenuSubButton;
326
+ exports.SidebarMenuSubItem = SidebarMenuSubItem;
327
+ exports.SidebarProvider = SidebarProvider;
328
+ exports.SidebarRail = SidebarRail;
329
+ exports.SidebarSeparator = SidebarSeparator;
330
+ exports.SidebarTrigger = SidebarTrigger;
331
+ exports.useSidebar = useSidebar;
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var utils = require('../../../../lib/utils.js');
7
+
8
+ const cellVariants = classVarianceAuthority.cva("p-2 bg-inherit align-middle whitespace-nowrap [&>[role=checkbox]]:translate-y-[2px]", {
9
+ variants: {
10
+ align: {
11
+ left: "text-left",
12
+ center: "text-center",
13
+ right: "text-right",
14
+ },
15
+ sticky: {
16
+ left: "sticky z-[2]",
17
+ right: "sticky z-[2]",
18
+ },
19
+ },
20
+ defaultVariants: {
21
+ align: "left",
22
+ },
23
+ });
24
+ const TableCell = (_a) => {
25
+ var { className, align, sticky } = _a, props = tslib.__rest(_a, ["className", "align", "sticky"]);
26
+ return (jsxRuntime.jsx("td", Object.assign({ "data-slot": "table-cell", "data-sticky": sticky, className: utils.cn(cellVariants({ align, sticky }), className) }, props)));
27
+ };
28
+ TableCell.displayName = "TableCell";
29
+
30
+ exports.TableCell = TableCell;
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var utils = require('../../../../lib/utils.js');
7
+
8
+ const rowVariants = classVarianceAuthority.cva("bg-white hover:bg-muted border-b transition-colors", {
9
+ variants: {
10
+ selected: {
11
+ true: "bg-muted",
12
+ false: "",
13
+ },
14
+ },
15
+ defaultVariants: {
16
+ selected: false,
17
+ },
18
+ });
19
+ const TableRow = (_a) => {
20
+ var { className, selected } = _a, props = tslib.__rest(_a, ["className", "selected"]);
21
+ return (jsxRuntime.jsx("tr", Object.assign({ "data-slot": "table-row", "data-selected": selected ? "selected" : undefined, className: utils.cn(rowVariants({ selected }), className) }, props)));
22
+ };
23
+ TableRow.displayName = "TableRow";
24
+
25
+ exports.TableRow = TableRow;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var utils = require('../../../../lib/utils.js');
6
+
7
+ const TableBody = (_a) => {
8
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
9
+ return jsxRuntime.jsx("tbody", Object.assign({ "data-slot": "table-body", className: utils.cn("[&_tr:last-child]:border-0", className) }, props));
10
+ };
11
+ TableBody.displayName = "TableBody";
12
+
13
+ exports.TableBody = TableBody;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var utils = require('../../../../lib/utils.js');
6
+
7
+ const TableCaption = (_a) => {
8
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
9
+ return (jsxRuntime.jsx("caption", Object.assign({ "data-slot": "table-caption", className: utils.cn("text-muted-foreground mt-4 text-sm", className) }, props)));
10
+ };
11
+ TableCaption.displayName = "TableCaption";
12
+
13
+ exports.TableCaption = TableCaption;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var utils = require('../../../../lib/utils.js');
6
+
7
+ const TableFooter = (_a) => {
8
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
9
+ return (jsxRuntime.jsx("tfoot", Object.assign({ "data-slot": "table-footer", className: utils.cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className) }, props)));
10
+ };
11
+ TableFooter.displayName = "TableFooter";
12
+
13
+ exports.TableFooter = TableFooter;
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var utils = require('../../../../lib/utils.js');
7
+
8
+ const cellVariants = classVarianceAuthority.cva("text-foreground h-10 px-2 text-left align-middle font-semibold whitespace-nowrap bg-white [&>[role=checkbox]]:translate-y-[2px]", {
9
+ variants: {
10
+ align: {
11
+ left: "text-left",
12
+ center: "text-center",
13
+ right: "text-right",
14
+ },
15
+ sticky: {
16
+ left: "sticky z-[4]!",
17
+ right: "sticky z-[4]!",
18
+ },
19
+ },
20
+ defaultVariants: {
21
+ align: "left",
22
+ },
23
+ });
24
+ const TableHead = (_a) => {
25
+ var { className, sticky } = _a, props = tslib.__rest(_a, ["className", "sticky"]);
26
+ return (jsxRuntime.jsx("th", Object.assign({ "data-slot": "table-head", "data-sticky": sticky, className: utils.cn(cellVariants({ sticky }), className) }, props)));
27
+ };
28
+ TableHead.displayName = "TableHead";
29
+
30
+ exports.TableHead = TableHead;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var utils = require('../../../../lib/utils.js');
6
+
7
+ const TableHeader = (_a) => {
8
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
9
+ return jsxRuntime.jsx("thead", Object.assign({ "data-slot": "table-header", className: utils.cn("[&_tr]:border-b", className) }, props));
10
+ };
11
+ TableHeader.displayName = "TableHeader";
12
+
13
+ exports.TableHeader = TableHeader;
@@ -0,0 +1,36 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var cell = require('./components/cell.js');
6
+ var row = require('./components/row.js');
7
+ var tableHead = require('./components/table-head.js');
8
+ var tableHeader = require('./components/table-header.js');
9
+ var tableBody = require('./components/table-body.js');
10
+ var tableFooter = require('./components/table-footer.js');
11
+ var tableCaption = require('./components/table-caption.js');
12
+ var utils = require('../../../lib/utils.js');
13
+
14
+ const Table = (_a) => {
15
+ var { className, stickyHeader, grid } = _a, props = tslib.__rest(_a, ["className", "stickyHeader", "grid"]);
16
+ return (jsxRuntime.jsx("table", Object.assign({ "data-slot": "table", className: utils.cn("w-full table-fixed caption-bottom text-sm", {
17
+ "[&_th]:sticky [&_th]:top-0 [&_th]:z-3": stickyHeader,
18
+ "[&_td]:border-r [&_td]:border-slate-200 [&_th]:border-r [&_th]:border-slate-200": grid,
19
+ }, className) }, props)));
20
+ };
21
+ Table.displayName = "Table";
22
+ const TableContainer = (_a) => {
23
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
24
+ return jsxRuntime.jsx("div", Object.assign({ "data-slot": "table-container", className: utils.cn("relative w-full overflow-auto", className) }, props));
25
+ };
26
+ TableContainer.displayName = "TableContainer";
27
+
28
+ exports.TableCell = cell.TableCell;
29
+ exports.TableRow = row.TableRow;
30
+ exports.TableHead = tableHead.TableHead;
31
+ exports.TableHeader = tableHeader.TableHeader;
32
+ exports.TableBody = tableBody.TableBody;
33
+ exports.TableFooter = tableFooter.TableFooter;
34
+ exports.TableCaption = tableCaption.TableCaption;
35
+ exports.Table = Table;
36
+ exports.TableContainer = TableContainer;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var TabsPrimitive = require('@radix-ui/react-tabs');
6
+ var utils = require('../../../lib/utils.js');
7
+
8
+ function _interopNamespaceDefault(e) {
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(TabsPrimitive);
26
+
27
+ function Tabs(_a) {
28
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
29
+ return jsxRuntime.jsx(TabsPrimitive__namespace.Root, Object.assign({ "data-slot": "tabs", className: utils.cn("flex flex-col gap-2", className) }, props));
30
+ }
31
+ function TabsList(_a) {
32
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
33
+ return (jsxRuntime.jsx(TabsPrimitive__namespace.List, Object.assign({ "data-slot": "tabs-list", className: utils.cn("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]", className) }, props)));
34
+ }
35
+ function TabsTrigger(_a) {
36
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
37
+ return (jsxRuntime.jsx(TabsPrimitive__namespace.Trigger, Object.assign({ "data-slot": "tabs-trigger", className: utils.cn("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className) }, props)));
38
+ }
39
+ function TabsContent(_a) {
40
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
41
+ return jsxRuntime.jsx(TabsPrimitive__namespace.Content, Object.assign({ "data-slot": "tabs-content", className: utils.cn("flex-1 outline-none", className) }, props));
42
+ }
43
+
44
+ exports.Tabs = Tabs;
45
+ exports.TabsContent = TabsContent;
46
+ exports.TabsList = TabsList;
47
+ exports.TabsTrigger = TabsTrigger;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var heading = require('../../typography/heading/heading.js');
6
+ var text = require('../../typography/text/text.js');
7
+ var button = require('../../buttons/button/button.js');
8
+ var flex = require('../../layout/flex/flex.js');
9
+
10
+ const EmptyStateBase = react.forwardRef((props, ref) => {
11
+ return jsxRuntime.jsx(flex.Flex, Object.assign({ ref: ref, direction: "col", justify: "center", align: "center", gap: 8 }, props));
12
+ });
13
+ const Image = (props) => jsxRuntime.jsx(flex.Flex, Object.assign({ align: "center", justify: "center" }, props));
14
+ const Title = (props) => jsxRuntime.jsx(heading.Heading, Object.assign({ level: 6, color: "primary" }, props));
15
+ const Description = (props) => jsxRuntime.jsx(text.Text, Object.assign({ type: "body", color: "primary" }, props));
16
+ const Action = (props) => jsxRuntime.jsx(button.Button, Object.assign({ variant: "default", size: "default" }, props));
17
+ const EmptyState = Object.assign(EmptyStateBase, {
18
+ Image,
19
+ Title,
20
+ Description,
21
+ Action,
22
+ });
23
+ Image.displayName = "EmptyState.Image";
24
+ Title.displayName = "EmptyState.Title";
25
+ Description.displayName = "EmptyState.Description";
26
+ Action.displayName = "EmptyState.Action";
27
+ EmptyState.displayName = "EmptyState";
28
+
29
+ exports.EmptyState = EmptyState;
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var reactSeparator = require('@radix-ui/react-separator');
6
+ var utils = require('../../../lib/utils.js');
7
+
8
+ const Separator = (_a) => {
9
+ var { className, orientation = "horizontal", decorative = true } = _a, props = tslib.__rest(_a, ["className", "orientation", "decorative"]);
10
+ return (jsxRuntime.jsx(reactSeparator.Root, Object.assign({ "data-slot": "separator-root", decorative: decorative, orientation: orientation, className: utils.cn("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className) }, props)));
11
+ };
12
+ Separator.displayName = "Separator";
13
+
14
+ exports.Separator = Separator;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var utils = require('../../../lib/utils.js');
6
+
7
+ const Skeleton = (_a) => {
8
+ var { className } = _a, props = tslib.__rest(_a, ["className"]);
9
+ return jsxRuntime.jsx("div", Object.assign({ "data-slot": "skeleton", className: utils.cn("bg-accent animate-pulse rounded-md", className) }, props));
10
+ };
11
+ Skeleton.displayName = "Skeleton";
12
+
13
+ exports.Skeleton = Skeleton;
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+
6
+ const Show = ({ when, fallback, children }) => when ? children : jsxRuntime.jsx(react.Fragment, { children: fallback });
7
+ const StatusController = ({ loading = false, error = false, empty = false, loadingFallback, errorFallback, emptyFallback, children, }) => {
8
+ return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(Show, { when: loading, children: loadingFallback }), jsxRuntime.jsx(Show, { when: !loading && error, children: errorFallback }), jsxRuntime.jsx(Show, { when: !loading && !error && empty, children: emptyFallback }), jsxRuntime.jsx(Show, { when: !loading && !error && !empty, children: children })] }));
9
+ };
10
+ StatusController.displayName = "StatusController";
11
+
12
+ exports.StatusController = StatusController;