@zentauri-ui/zentauri-components 0.0.91 → 0.0.93

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 (168) hide show
  1. package/README.md +36 -4
  2. package/dist/chunk-BZSIXBA7.js +70 -0
  3. package/dist/chunk-BZSIXBA7.js.map +1 -0
  4. package/dist/chunk-E5UX537J.js +11 -0
  5. package/dist/chunk-E5UX537J.js.map +1 -0
  6. package/dist/chunk-MEWYFWBX.mjs +14 -0
  7. package/dist/chunk-MEWYFWBX.mjs.map +1 -0
  8. package/dist/chunk-VJHD7QZH.mjs +73 -0
  9. package/dist/chunk-VJHD7QZH.mjs.map +1 -0
  10. package/dist/ui/accordion.js +51 -57
  11. package/dist/ui/accordion.js.map +1 -1
  12. package/dist/ui/{accordion.cjs → accordion.mjs} +38 -67
  13. package/dist/ui/accordion.mjs.map +1 -0
  14. package/dist/ui/{alert.d.cts → alert.d.mts} +1 -1
  15. package/dist/ui/alert.d.ts +1 -1
  16. package/dist/ui/alert.js +40 -46
  17. package/dist/ui/alert.js.map +1 -1
  18. package/dist/ui/{alert.cjs → alert.mjs} +29 -66
  19. package/dist/ui/alert.mjs.map +1 -0
  20. package/dist/ui/{badge.d.cts → badge.d.mts} +1 -1
  21. package/dist/ui/badge.d.ts +1 -1
  22. package/dist/ui/badge.js +20 -26
  23. package/dist/ui/badge.js.map +1 -1
  24. package/dist/ui/{badge.cjs → badge.mjs} +17 -48
  25. package/dist/ui/badge.mjs.map +1 -0
  26. package/dist/ui/{buttons.d.cts → buttons.d.mts} +1 -1
  27. package/dist/ui/buttons.d.ts +1 -1
  28. package/dist/ui/buttons.js +18 -87
  29. package/dist/ui/buttons.js.map +1 -1
  30. package/dist/ui/buttons.mjs +109 -0
  31. package/dist/ui/buttons.mjs.map +1 -0
  32. package/dist/ui/{card.d.cts → card.d.mts} +1 -1
  33. package/dist/ui/card.d.ts +1 -1
  34. package/dist/ui/card.js +40 -46
  35. package/dist/ui/card.js.map +1 -1
  36. package/dist/ui/{card.cjs → card.mjs} +26 -65
  37. package/dist/ui/card.mjs.map +1 -0
  38. package/dist/ui/{divider.d.cts → divider.d.mts} +2 -2
  39. package/dist/ui/divider.d.ts +2 -2
  40. package/dist/ui/divider.js +30 -36
  41. package/dist/ui/divider.js.map +1 -1
  42. package/dist/ui/{divider.cjs → divider.mjs} +22 -55
  43. package/dist/ui/divider.mjs.map +1 -0
  44. package/dist/ui/{drawer.d.cts → drawer.d.mts} +3 -3
  45. package/dist/ui/drawer.d.ts +3 -3
  46. package/dist/ui/drawer.js +64 -70
  47. package/dist/ui/drawer.js.map +1 -1
  48. package/dist/ui/{drawer.cjs → drawer.mjs} +48 -77
  49. package/dist/ui/drawer.mjs.map +1 -0
  50. package/dist/ui/{dropdown.d.cts → dropdown.d.mts} +4 -4
  51. package/dist/ui/dropdown.d.ts +4 -4
  52. package/dist/ui/dropdown.js +43 -49
  53. package/dist/ui/dropdown.js.map +1 -1
  54. package/dist/ui/{dropdown.cjs → dropdown.mjs} +34 -62
  55. package/dist/ui/dropdown.mjs.map +1 -0
  56. package/dist/ui/{empty-state.d.cts → empty-state.d.mts} +1 -1
  57. package/dist/ui/empty-state.d.ts +1 -1
  58. package/dist/ui/empty-state.js +31 -37
  59. package/dist/ui/empty-state.js.map +1 -1
  60. package/dist/ui/empty-state.mjs +150 -0
  61. package/dist/ui/empty-state.mjs.map +1 -0
  62. package/dist/ui/{inputs.d.cts → inputs.d.mts} +2 -2
  63. package/dist/ui/inputs.d.ts +2 -2
  64. package/dist/ui/inputs.js +26 -32
  65. package/dist/ui/inputs.js.map +1 -1
  66. package/dist/ui/{inputs.cjs → inputs.mjs} +21 -51
  67. package/dist/ui/inputs.mjs.map +1 -0
  68. package/dist/ui/{modal.d.cts → modal.d.mts} +3 -3
  69. package/dist/ui/modal.d.ts +3 -3
  70. package/dist/ui/modal.js +69 -75
  71. package/dist/ui/modal.js.map +1 -1
  72. package/dist/ui/{modal.cjs → modal.mjs} +53 -79
  73. package/dist/ui/modal.mjs.map +1 -0
  74. package/dist/ui/{pagination.d.cts → pagination.d.mts} +3 -3
  75. package/dist/ui/pagination.d.ts +3 -3
  76. package/dist/ui/pagination.js +48 -117
  77. package/dist/ui/pagination.js.map +1 -1
  78. package/dist/ui/{pagination.cjs → pagination.mjs} +35 -131
  79. package/dist/ui/pagination.mjs.map +1 -0
  80. package/dist/ui/{progress.d.cts → progress.d.mts} +5 -5
  81. package/dist/ui/progress.d.ts +5 -5
  82. package/dist/ui/progress.js +37 -43
  83. package/dist/ui/progress.js.map +1 -1
  84. package/dist/ui/{progress.cjs → progress.mjs} +25 -60
  85. package/dist/ui/progress.mjs.map +1 -0
  86. package/dist/ui/{select.d.cts → select.d.mts} +4 -4
  87. package/dist/ui/select.d.ts +4 -4
  88. package/dist/ui/select.js +43 -49
  89. package/dist/ui/select.js.map +1 -1
  90. package/dist/ui/{select.cjs → select.mjs} +31 -68
  91. package/dist/ui/select.mjs.map +1 -0
  92. package/dist/ui/{skeleton.d.cts → skeleton.d.mts} +3 -3
  93. package/dist/ui/skeleton.d.ts +3 -3
  94. package/dist/ui/skeleton.js +45 -51
  95. package/dist/ui/skeleton.js.map +1 -1
  96. package/dist/ui/{skeleton.cjs → skeleton.mjs} +31 -67
  97. package/dist/ui/skeleton.mjs.map +1 -0
  98. package/dist/ui/{spinner.d.cts → spinner.d.mts} +3 -3
  99. package/dist/ui/spinner.d.ts +3 -3
  100. package/dist/ui/spinner.js +34 -40
  101. package/dist/ui/spinner.js.map +1 -1
  102. package/dist/ui/{spinner.cjs → spinner.mjs} +27 -57
  103. package/dist/ui/spinner.mjs.map +1 -0
  104. package/dist/ui/{table.d.cts → table.d.mts} +4 -4
  105. package/dist/ui/table.d.ts +4 -4
  106. package/dist/ui/table.js +43 -49
  107. package/dist/ui/table.js.map +1 -1
  108. package/dist/ui/{table.cjs → table.mjs} +26 -65
  109. package/dist/ui/table.mjs.map +1 -0
  110. package/dist/ui/{tabs.d.cts → tabs.d.mts} +1 -1
  111. package/dist/ui/tabs.d.ts +1 -1
  112. package/dist/ui/tabs.js +41 -47
  113. package/dist/ui/tabs.js.map +1 -1
  114. package/dist/ui/{tabs.cjs → tabs.mjs} +29 -59
  115. package/dist/ui/tabs.mjs.map +1 -0
  116. package/dist/ui/{toast.d.cts → toast.d.mts} +1 -1
  117. package/dist/ui/toast.d.ts +1 -1
  118. package/dist/ui/toast.js +57 -63
  119. package/dist/ui/toast.js.map +1 -1
  120. package/dist/ui/{toast.cjs → toast.mjs} +43 -74
  121. package/dist/ui/toast.mjs.map +1 -0
  122. package/dist/ui/{toggle.d.cts → toggle.d.mts} +1 -1
  123. package/dist/ui/toggle.d.ts +1 -1
  124. package/dist/ui/toggle.js +23 -29
  125. package/dist/ui/toggle.js.map +1 -1
  126. package/dist/ui/{toggle.cjs → toggle.mjs} +19 -50
  127. package/dist/ui/toggle.mjs.map +1 -0
  128. package/dist/ui/{tooltip.d.cts → tooltip.d.mts} +2 -2
  129. package/dist/ui/tooltip.d.ts +2 -2
  130. package/dist/ui/tooltip.js +29 -35
  131. package/dist/ui/tooltip.js.map +1 -1
  132. package/dist/ui/{tooltip.cjs → tooltip.mjs} +26 -58
  133. package/dist/ui/tooltip.mjs.map +1 -0
  134. package/dist/variants-Dd9pe-ov.d.mts +8 -0
  135. package/dist/variants-Dd9pe-ov.d.ts +8 -0
  136. package/package.json +10 -15
  137. package/dist/ui/accordion.cjs.map +0 -1
  138. package/dist/ui/alert.cjs.map +0 -1
  139. package/dist/ui/badge.cjs.map +0 -1
  140. package/dist/ui/buttons.cjs +0 -202
  141. package/dist/ui/buttons.cjs.map +0 -1
  142. package/dist/ui/card.cjs.map +0 -1
  143. package/dist/ui/divider.cjs.map +0 -1
  144. package/dist/ui/drawer.cjs.map +0 -1
  145. package/dist/ui/dropdown.cjs.map +0 -1
  146. package/dist/ui/empty-state.cjs +0 -186
  147. package/dist/ui/empty-state.cjs.map +0 -1
  148. package/dist/ui/index.cjs +0 -5764
  149. package/dist/ui/index.cjs.map +0 -1
  150. package/dist/ui/index.d.cts +0 -27
  151. package/dist/ui/index.d.ts +0 -27
  152. package/dist/ui/index.js +0 -5626
  153. package/dist/ui/index.js.map +0 -1
  154. package/dist/ui/inputs.cjs.map +0 -1
  155. package/dist/ui/modal.cjs.map +0 -1
  156. package/dist/ui/pagination.cjs.map +0 -1
  157. package/dist/ui/progress.cjs.map +0 -1
  158. package/dist/ui/select.cjs.map +0 -1
  159. package/dist/ui/skeleton.cjs.map +0 -1
  160. package/dist/ui/spinner.cjs.map +0 -1
  161. package/dist/ui/table.cjs.map +0 -1
  162. package/dist/ui/tabs.cjs.map +0 -1
  163. package/dist/ui/toast.cjs.map +0 -1
  164. package/dist/ui/toggle.cjs.map +0 -1
  165. package/dist/ui/tooltip.cjs.map +0 -1
  166. package/dist/variants-1Bx3BEeS.d.cts +0 -8
  167. package/dist/variants-1Bx3BEeS.d.ts +0 -8
  168. /package/dist/ui/{accordion.d.cts → accordion.d.mts} +0 -0
@@ -1,49 +1,22 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use client";
19
2
 
20
- // src/ui/dropdown/index.ts
21
- var dropdown_exports = {};
22
- __export(dropdown_exports, {
23
- Dropdown: () => Dropdown,
24
- DropdownContent: () => DropdownContent,
25
- DropdownItem: () => DropdownItem,
26
- DropdownTrigger: () => DropdownTrigger,
27
- contentVariants: () => contentVariants,
28
- itemVariants: () => itemVariants,
29
- triggerVariants: () => triggerVariants
30
- });
31
- module.exports = __toCommonJS(dropdown_exports);
3
+ import {
4
+ cn
5
+ } from "../chunk-MEWYFWBX.mjs";
32
6
 
33
7
  // src/ui/dropdown/dropdown.tsx
34
- var import_react = require("react");
35
- var import_fi = require("react-icons/fi");
36
-
37
- // src/lib/utils.ts
38
- var import_clsx = require("clsx");
39
- var import_tailwind_merge = require("tailwind-merge");
40
- function cn(...inputs) {
41
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
42
- }
8
+ import {
9
+ createContext,
10
+ useContext,
11
+ useState,
12
+ useRef,
13
+ useEffect
14
+ } from "react";
15
+ import { FiCheck } from "react-icons/fi";
43
16
 
44
17
  // src/ui/dropdown/variants.ts
45
- var import_class_variance_authority = require("class-variance-authority");
46
- var triggerVariants = (0, import_class_variance_authority.cva)(
18
+ import { cva } from "class-variance-authority";
19
+ var triggerVariants = cva(
47
20
  "inline-flex items-center justify-between rounded-md font-medium transition focus:outline-none cursor-pointer",
48
21
  {
49
22
  variants: {
@@ -87,7 +60,7 @@ var triggerVariants = (0, import_class_variance_authority.cva)(
87
60
  }
88
61
  }
89
62
  );
90
- var contentVariants = (0, import_class_variance_authority.cva)(
63
+ var contentVariants = cva(
91
64
  "absolute min-w-[200px] rounded-md p-2 shadow-md z-50 border",
92
65
  {
93
66
  variants: {
@@ -112,7 +85,7 @@ var contentVariants = (0, import_class_variance_authority.cva)(
112
85
  }
113
86
  }
114
87
  );
115
- var itemVariants = (0, import_class_variance_authority.cva)(
88
+ var itemVariants = cva(
116
89
  "flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors",
117
90
  {
118
91
  variants: {
@@ -152,10 +125,10 @@ var itemVariants = (0, import_class_variance_authority.cva)(
152
125
  );
153
126
 
154
127
  // src/ui/dropdown/dropdown.tsx
155
- var import_jsx_runtime = require("react/jsx-runtime");
156
- var DropdownContext = (0, import_react.createContext)(null);
128
+ import { jsx, jsxs } from "react/jsx-runtime";
129
+ var DropdownContext = createContext(null);
157
130
  var useDropdown = () => {
158
- const ctx = (0, import_react.useContext)(DropdownContext);
131
+ const ctx = useContext(DropdownContext);
159
132
  if (!ctx) throw new Error("Use inside Dropdown");
160
133
  return ctx;
161
134
  };
@@ -166,8 +139,8 @@ var Dropdown = ({
166
139
  onOpenChange,
167
140
  multiSelect = false
168
141
  }) => {
169
- const [uncontrolledOpen, setUncontrolledOpen] = (0, import_react.useState)(defaultOpen);
170
- const [selectedValues, setSelectedValues] = (0, import_react.useState)([]);
142
+ const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
143
+ const [selectedValues, setSelectedValues] = useState([]);
171
144
  const open = controlledOpen ?? uncontrolledOpen;
172
145
  const setOpen = (val) => {
173
146
  if (controlledOpen !== void 0) {
@@ -187,7 +160,7 @@ var Dropdown = ({
187
160
  (prev) => prev.includes(value) ? prev.filter((v) => v !== value) : [...prev, value]
188
161
  );
189
162
  };
190
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
163
+ return /* @__PURE__ */ jsx(
191
164
  DropdownContext.Provider,
192
165
  {
193
166
  value: {
@@ -198,7 +171,7 @@ var Dropdown = ({
198
171
  toggleSelect,
199
172
  multiSelect
200
173
  },
201
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative inline-block", children })
174
+ children: /* @__PURE__ */ jsx("div", { className: "relative inline-block", children })
202
175
  }
203
176
  );
204
177
  };
@@ -210,7 +183,7 @@ var DropdownTrigger = ({
210
183
  ...props
211
184
  }) => {
212
185
  const { toggle } = useDropdown();
213
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
186
+ return /* @__PURE__ */ jsx(
214
187
  "button",
215
188
  {
216
189
  onClick: toggle,
@@ -229,8 +202,8 @@ var DropdownContent = ({
229
202
  ...props
230
203
  }) => {
231
204
  const { open, setOpen } = useDropdown();
232
- const ref = (0, import_react.useRef)(null);
233
- (0, import_react.useEffect)(() => {
205
+ const ref = useRef(null);
206
+ useEffect(() => {
234
207
  const handleClickOutside = (e) => {
235
208
  if (ref.current && !ref.current.contains(e.target)) {
236
209
  setOpen(false);
@@ -240,7 +213,7 @@ var DropdownContent = ({
240
213
  return () => document.removeEventListener("mousedown", handleClickOutside);
241
214
  }, [setOpen]);
242
215
  if (!open) return null;
243
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
216
+ return /* @__PURE__ */ jsx(
244
217
  "div",
245
218
  {
246
219
  ref,
@@ -266,7 +239,7 @@ var DropdownItem = ({
266
239
  toggleSelect(value);
267
240
  onSelect?.();
268
241
  };
269
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
242
+ return /* @__PURE__ */ jsxs(
270
243
  "div",
271
244
  {
272
245
  tabIndex: 0,
@@ -277,20 +250,19 @@ var DropdownItem = ({
277
250
  className: cn(itemVariants({ variant }), className),
278
251
  ...props,
279
252
  children: [
280
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
253
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
281
254
  leftIcon,
282
255
  children
283
256
  ] }),
284
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2", children: [
285
- isSelected && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_fi.FiCheck, {}),
257
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
258
+ isSelected && /* @__PURE__ */ jsx(FiCheck, {}),
286
259
  rightIcon
287
260
  ] })
288
261
  ]
289
262
  }
290
263
  );
291
264
  };
292
- // Annotate the CommonJS export names for ESM import in node:
293
- 0 && (module.exports = {
265
+ export {
294
266
  Dropdown,
295
267
  DropdownContent,
296
268
  DropdownItem,
@@ -298,5 +270,5 @@ var DropdownItem = ({
298
270
  contentVariants,
299
271
  itemVariants,
300
272
  triggerVariants
301
- });
302
- //# sourceMappingURL=dropdown.cjs.map
273
+ };
274
+ //# sourceMappingURL=dropdown.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ui/dropdown/dropdown.tsx","../../src/ui/dropdown/variants.ts"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useRef,\n useEffect,\n} from \"react\";\nimport { FiCheck } from \"react-icons/fi\";\nimport { cn } from \"../../lib/utils\";\nimport type { DropdownContextType, DropdownProps, DropdownTriggerProps, DropdownContentProps, DropdownItemProps } from \"./types\";\nimport { triggerVariants, contentVariants, itemVariants } from \"./variants\";\n\n/* =========================\n Context\n========================= */\nconst DropdownContext = createContext<DropdownContextType | null>(null);\n\nconst useDropdown = () => {\n const ctx = useContext(DropdownContext);\n if (!ctx) throw new Error(\"Use inside Dropdown\");\n return ctx;\n};\n\n/* =========================\n Root\n========================= */\nexport const Dropdown = ({\n children,\n defaultOpen = false,\n open: controlledOpen,\n onOpenChange,\n multiSelect = false,\n}: DropdownProps) => {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [selectedValues, setSelectedValues] = useState<string[]>([]);\n\n const open = controlledOpen ?? uncontrolledOpen;\n\n const setOpen = (val: boolean) => {\n if (controlledOpen !== undefined) {\n onOpenChange?.(val);\n } else {\n setUncontrolledOpen(val);\n }\n };\n\n const toggle = () => setOpen(!open);\n\n const toggleSelect = (value: string) => {\n if (!multiSelect) {\n setSelectedValues([value]);\n setOpen(false);\n return;\n }\n\n setSelectedValues((prev) =>\n prev.includes(value)\n ? prev.filter((v) => v !== value)\n : [...prev, value]\n );\n };\n\n return (\n <DropdownContext.Provider\n value={{\n open,\n setOpen,\n toggle,\n selectedValues,\n toggleSelect,\n multiSelect,\n }}\n >\n <div className=\"relative inline-block\">{children}</div>\n </DropdownContext.Provider>\n );\n};\n\n/* =========================\n Trigger\n========================= */\nexport const DropdownTrigger = ({\n children,\n className,\n variant,\n size,\n ...props\n}: DropdownTriggerProps) => {\n const { toggle } = useDropdown();\n\n return (\n <button\n onClick={toggle}\n className={cn(triggerVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </button>\n );\n};\n\n/* =========================\n Content\n========================= */\nexport const DropdownContent = ({\n children,\n className,\n placement = \"bottom\",\n spacing = \"default\",\n divider,\n ...props\n}: DropdownContentProps) => {\n const { open, setOpen } = useDropdown();\n const ref = useRef<HTMLDivElement>(null);\n\n // click outside\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () =>\n document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [setOpen]);\n\n if (!open) return null;\n\n return (\n <div\n ref={ref}\n className={cn(contentVariants({ placement, spacing }), className, divider && \"divide-y divide-current\")}\n {...props}\n >\n {children}\n </div>\n );\n};\n\n/* =========================\n Item\n========================= */\nexport const DropdownItem = ({\n children,\n value,\n className,\n variant,\n onSelect,\n leftIcon,\n rightIcon,\n ...props\n}: DropdownItemProps) => {\n const { toggleSelect, selectedValues } = useDropdown();\n const isSelected = selectedValues.includes(value);\n\n const handleClick = () => {\n toggleSelect(value);\n onSelect?.();\n };\n\n return (\n <div\n tabIndex={0}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") handleClick();\n }}\n className={cn(itemVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {leftIcon}\n {children}\n </div>\n\n <div className=\"flex items-center gap-2\">\n {isSelected && <FiCheck />}\n {rightIcon}\n </div>\n </div>\n );\n};","import { cva } from \"class-variance-authority\";\n\nexport const triggerVariants = cva(\n \"inline-flex items-center justify-between rounded-md font-medium transition focus:outline-none cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-gray-900 text-white\",\n outline: \"border border-gray-300\",\n ghost: \"bg-transparent\",\n white: \"bg-white text-gray-900\",\n black: \"bg-black text-white\",\n sky: \"border border-sky-600 text-sky-600\",\n rose: \"border border-rose-600 text-rose-600\",\n purple: \"border border-purple-600 text-purple-600\",\n pink: \"border border-pink-600 text-pink-600\",\n orange: \"border border-orange-600 text-orange-600\",\n yellow: \"border border-yellow-600 text-yellow-600\",\n teal: \"border border-teal-600 text-teal-600\",\n indigo: \"border border-indigo-600 text-indigo-600\",\n emerald: \"border border-emerald-600 text-emerald-600\",\n gray: \"border border-gray-600 text-gray-600\",\n amber: \"border border-amber-600 text-amber-600\",\n violet: \"border border-violet-600 text-violet-600\",\n \"gradient-blue\": \"bg-gradient-to-r from-blue-600 to-purple-600 text-gradient-to-r from-blue-600 to-purple-600\",\n \"gradient-green\": \"bg-gradient-to-r from-green-600 to-lime-600 text-gradient-to-r from-green-600 to-lime-600\",\n \"gradient-red\": \"bg-gradient-to-r from-red-600 to-pink-600 text-gradient-to-r from-red-600 to-pink-600\",\n \"gradient-yellow\": \"bg-gradient-to-r from-yellow-600 to-orange-600 text-gradient-to-r from-yellow-600 to-orange-600\",\n \"gradient-purple\": \"bg-gradient-to-r from-purple-600 to-pink-600 text-gradient-to-r from-purple-600 to-pink-600\",\n \"gradient-teal\": \"bg-gradient-to-r from-teal-600 to-cyan-600 text-gradient-to-r from-teal-600 to-cyan-600\",\n \"gradient-indigo\": \"bg-gradient-to-r from-indigo-600 to-purple-600 text-gradient-to-r from-indigo-600 to-purple-600\",\n \"gradient-pink\": \"bg-gradient-to-r from-pink-600 to-rose-600 text-gradient-to-r from-pink-600 to-rose-600\",\n \"gradient-orange\": \"bg-gradient-to-r from-orange-600 to-red-600 text-gradient-to-r from-orange-600 to-red-600\",\n },\n size: {\n sm: \"px-2 py-1 text-sm\",\n md: \"px-3 py-2 text-base\",\n lg: \"px-4 py-3 text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport const contentVariants = cva(\n \"absolute min-w-[200px] rounded-md p-2 shadow-md z-50 border\",\n {\n variants: {\n placement: {\n top: \"bottom-full mb-2\",\n bottom: \"top-full mt-2\",\n left: \"right-full mr-2\",\n right: \"left-full ml-2\",\n },\n spacing:{\n none: \"space-y-0\",\n default: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-5\",\n }\n },\n defaultVariants: {\n placement: \"bottom\",\n spacing: \"default\",\n },\n }\n);\n\nexport const itemVariants = cva(\n \"flex items-center justify-between px-3 py-2 text-sm cursor-pointer rounded-md transition-colors\",\n {\n variants: {\n variant: {\n default: \"hover:bg-gray-100 hover:text-gray-900 text-gray-100\",\n outline: \"hover:bg-gray-100 hover:text-gray-900 border border-white text-gray-100\",\n ghost: \"hover:bg-gray-100 hover:text-gray-900 bg-transparent text-gray-100\",\n white: \"hover:bg-gray-100 hover:text-gray-900 bg-white text-gray-900\",\n black: \"hover:bg-gray-100 hover:text-gray-900 bg-black text-white\",\n sky: \"hover:bg-sky-100 hover:text-sky-600 bg-sky-200 text-sky-800\",\n rose: \"hover:bg-rose-100 hover:text-rose-600 bg-rose-200 text-rose-800\",\n purple: \"hover:bg-purple-100 hover:text-purple-600 bg-purple-200 text-purple-800\",\n pink: \"hover:bg-pink-100 hover:text-pink-600 bg-pink-200 text-pink-800\",\n orange: \"hover:bg-orange-100 hover:text-orange-600 bg-orange-200 text-orange-800\",\n yellow: \"hover:bg-yellow-100 hover:text-yellow-600 bg-yellow-200 text-yellow-800\",\n teal: \"hover:bg-teal-100 hover:text-teal-600 bg-teal-200 text-teal-800\",\n indigo: \"hover:bg-indigo-100 hover:text-indigo-600 bg-indigo-200 text-indigo-800\",\n emerald: \"hover:bg-emerald-100 hover:text-emerald-600 bg-emerald-200 text-emerald-800\",\n gray: \"hover:bg-gray-100 hover:text-gray-900 bg-gray-200 text-gray-800\",\n amber: \"hover:bg-amber-100 hover:text-amber-600 bg-amber-200 text-amber-800\",\n violet: \"hover:bg-violet-100 hover:text-violet-600 bg-violet-200 text-violet-800\",\n \"gradient-blue\": \"hover:bg-gradient-to-r from-blue-600 to-purple-600 hover:text-blue-900 bg-gradient-to-r from-blue-200 to-purple-200 text-blue-800\",\n \"gradient-green\": \"hover:bg-gradient-to-r from-green-600 to-lime-600 hover:text-green-900 bg-gradient-to-r from-green-200 to-lime-200 text-green-800\",\n \"gradient-red\": \"hover:bg-gradient-to-r from-red-600 to-pink-600 hover:text-red-900 bg-gradient-to-r from-red-200 to-pink-200 text-red-800\",\n \"gradient-yellow\": \"hover:bg-gradient-to-r from-yellow-600 to-orange-600 hover:text-yellow-900 bg-gradient-to-r from-yellow-200 to-orange-200 text-yellow-800\",\n \"gradient-purple\": \"hover:bg-gradient-to-r from-purple-600 to-pink-600 hover:text-purple-900 bg-gradient-to-r from-purple-200 to-pink-200 text-purple-800\",\n \"gradient-teal\": \"hover:bg-gradient-to-r from-teal-600 to-cyan-600 hover:text-teal-900 bg-gradient-to-r from-teal-200 to-cyan-200 text-teal-800\",\n \"gradient-indigo\": \"hover:bg-gradient-to-r from-indigo-600 to-purple-600 hover:text-indigo-900 bg-gradient-to-r from-indigo-200 to-purple-200 text-indigo-800\",\n \"gradient-pink\": \"hover:bg-gradient-to-r from-pink-600 to-rose-600 hover:text-pink-900 bg-gradient-to-r from-pink-200 to-rose-200 text-pink-800\",\n \"gradient-orange\": \"hover:bg-gradient-to-r from-orange-600 to-red-600 hover:text-orange-900 bg-gradient-to-r from-orange-200 to-red-200 text-orange-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);"],"mappings":"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","names":[]}
@@ -7,7 +7,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
7
7
  declare const emptyStateVariants: (props?: ({
8
8
  size?: "sm" | "md" | "lg" | null | undefined;
9
9
  appearance?: "default" | "ghost" | "card" | null | undefined;
10
- align?: "end" | "center" | "start" | null | undefined;
10
+ align?: "start" | "center" | "end" | null | undefined;
11
11
  } & class_variance_authority_types.ClassProp) | undefined) => string;
12
12
  declare const emptyStateTitleVariants: (props?: ({
13
13
  size?: "sm" | "md" | "lg" | null | undefined;
@@ -7,7 +7,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
7
7
  declare const emptyStateVariants: (props?: ({
8
8
  size?: "sm" | "md" | "lg" | null | undefined;
9
9
  appearance?: "default" | "ghost" | "card" | null | undefined;
10
- align?: "end" | "center" | "start" | null | undefined;
10
+ align?: "start" | "center" | "end" | null | undefined;
11
11
  } & class_variance_authority_types.ClassProp) | undefined) => string;
12
12
  declare const emptyStateTitleVariants: (props?: ({
13
13
  size?: "sm" | "md" | "lg" | null | undefined;
@@ -1,16 +1,10 @@
1
- "use client";
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
2
 
3
+ var _chunkE5UX537Jjs = require('../chunk-E5UX537J.js');
3
4
 
4
5
  // src/ui/empty-state/empty-state.tsx
5
- import { createContext, useContext, useMemo } from "react";
6
- import { motion } from "framer-motion";
7
-
8
- // src/lib/utils.ts
9
- import { clsx } from "clsx";
10
- import { twMerge } from "tailwind-merge";
11
- function cn(...inputs) {
12
- return twMerge(clsx(inputs));
13
- }
6
+ var _react = require('react');
7
+ var _framermotion = require('framer-motion');
14
8
 
15
9
  // src/ui/empty-state/animations.ts
16
10
  var emptyStateAnimationPresets = {
@@ -32,8 +26,8 @@ var emptyStateAnimationPresets = {
32
26
  };
33
27
 
34
28
  // src/ui/empty-state/variants.ts
35
- import { cva } from "class-variance-authority";
36
- var emptyStateVariants = cva("flex w-full flex-col items-center text-center", {
29
+ var _classvarianceauthority = require('class-variance-authority');
30
+ var emptyStateVariants = _classvarianceauthority.cva.call(void 0, "flex w-full flex-col items-center text-center", {
37
31
  variants: {
38
32
  size: {
39
33
  sm: "gap-2 p-4 text-sm",
@@ -57,7 +51,7 @@ var emptyStateVariants = cva("flex w-full flex-col items-center text-center", {
57
51
  align: "center"
58
52
  }
59
53
  });
60
- var emptyStateTitleVariants = cva("font-semibold tracking-tight", {
54
+ var emptyStateTitleVariants = _classvarianceauthority.cva.call(void 0, "font-semibold tracking-tight", {
61
55
  variants: {
62
56
  size: {
63
57
  sm: "text-base",
@@ -67,7 +61,7 @@ var emptyStateTitleVariants = cva("font-semibold tracking-tight", {
67
61
  },
68
62
  defaultVariants: { size: "md" }
69
63
  });
70
- var emptyStateDescriptionVariants = cva("max-w-md text-slate-400", {
64
+ var emptyStateDescriptionVariants = _classvarianceauthority.cva.call(void 0, "max-w-md text-slate-400", {
71
65
  variants: {
72
66
  size: {
73
67
  sm: "text-xs",
@@ -79,10 +73,10 @@ var emptyStateDescriptionVariants = cva("max-w-md text-slate-400", {
79
73
  });
80
74
 
81
75
  // src/ui/empty-state/empty-state.tsx
82
- import { jsx } from "react/jsx-runtime";
83
- var EmptyStateSizeContext = createContext("md");
76
+ var _jsxruntime = require('react/jsx-runtime');
77
+ var EmptyStateSizeContext = _react.createContext.call(void 0, "md");
84
78
  function useEmptyStateSize() {
85
- return useContext(EmptyStateSizeContext);
79
+ return _react.useContext.call(void 0, EmptyStateSizeContext);
86
80
  }
87
81
  function EmptyState(props) {
88
82
  const {
@@ -96,14 +90,14 @@ function EmptyState(props) {
96
90
  ...rest
97
91
  } = props;
98
92
  const motionProps = emptyStateAnimationPresets[animation];
99
- const ctx = useMemo(() => size ?? "md", [size]);
100
- return /* @__PURE__ */ jsx(EmptyStateSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
101
- motion.section,
93
+ const ctx = _react.useMemo.call(void 0, () => _nullishCoalesce(size, () => ( "md")), [size]);
94
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, EmptyStateSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
95
+ _framermotion.motion.section,
102
96
  {
103
97
  ref,
104
98
  "data-slot": "empty-state",
105
99
  "aria-live": "polite",
106
- className: cn(emptyStateVariants({ size, appearance, align }), className),
100
+ className: _chunkE5UX537Jjs.cn.call(void 0, emptyStateVariants({ size, appearance, align }), className),
107
101
  initial: animation === "none" ? false : void 0,
108
102
  ...motionProps,
109
103
  ...rest,
@@ -113,12 +107,12 @@ function EmptyState(props) {
113
107
  }
114
108
  EmptyState.displayName = "EmptyState";
115
109
  function EmptyStateIcon({ className, children }) {
116
- return /* @__PURE__ */ jsx("div", { "data-slot": "empty-state-icon", className: cn("text-slate-300", className), children });
110
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-slot": "empty-state-icon", className: _chunkE5UX537Jjs.cn.call(void 0, "text-slate-300", className), children });
117
111
  }
118
112
  EmptyStateIcon.displayName = "EmptyStateIcon";
119
113
  function EmptyStateTitle({ className, children }) {
120
114
  const size = useEmptyStateSize();
121
- return /* @__PURE__ */ jsx("h2", { "data-slot": "empty-state-title", className: cn(emptyStateTitleVariants({ size }), className), children });
115
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { "data-slot": "empty-state-title", className: _chunkE5UX537Jjs.cn.call(void 0, emptyStateTitleVariants({ size }), className), children });
122
116
  }
123
117
  EmptyStateTitle.displayName = "EmptyStateTitle";
124
118
  function EmptyStateDescription({
@@ -126,29 +120,29 @@ function EmptyStateDescription({
126
120
  children
127
121
  }) {
128
122
  const size = useEmptyStateSize();
129
- return /* @__PURE__ */ jsx(
123
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
130
124
  "p",
131
125
  {
132
126
  "data-slot": "empty-state-description",
133
- className: cn(emptyStateDescriptionVariants({ size }), className),
127
+ className: _chunkE5UX537Jjs.cn.call(void 0, emptyStateDescriptionVariants({ size }), className),
134
128
  children
135
129
  }
136
130
  );
137
131
  }
138
132
  EmptyStateDescription.displayName = "EmptyStateDescription";
139
133
  function EmptyStateAction({ className, children }) {
140
- return /* @__PURE__ */ jsx("div", { "data-slot": "empty-state-action", className: cn("mt-2", className), children });
134
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-slot": "empty-state-action", className: _chunkE5UX537Jjs.cn.call(void 0, "mt-2", className), children });
141
135
  }
142
136
  EmptyStateAction.displayName = "EmptyStateAction";
143
- export {
144
- EmptyState,
145
- EmptyStateAction,
146
- EmptyStateDescription,
147
- EmptyStateIcon,
148
- EmptyStateTitle,
149
- emptyStateAnimationPresets,
150
- emptyStateDescriptionVariants,
151
- emptyStateTitleVariants,
152
- emptyStateVariants
153
- };
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+ exports.EmptyState = EmptyState; exports.EmptyStateAction = EmptyStateAction; exports.EmptyStateDescription = EmptyStateDescription; exports.EmptyStateIcon = EmptyStateIcon; exports.EmptyStateTitle = EmptyStateTitle; exports.emptyStateAnimationPresets = emptyStateAnimationPresets; exports.emptyStateDescriptionVariants = emptyStateDescriptionVariants; exports.emptyStateTitleVariants = emptyStateTitleVariants; exports.emptyStateVariants = emptyStateVariants;
154
148
  //# sourceMappingURL=empty-state.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/empty-state/empty-state.tsx","../../src/lib/utils.ts","../../src/ui/empty-state/animations.ts","../../src/ui/empty-state/variants.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { emptyStateAnimationPresets } from \"./animations\";\nimport type { EmptyStateProps, EmptyStateSectionProps } from \"./types\";\nimport {\n emptyStateDescriptionVariants,\n emptyStateTitleVariants,\n emptyStateVariants,\n} from \"./variants\";\n\ntype EmptyStateSize = NonNullable<EmptyStateProps[\"size\"]>;\n\nconst EmptyStateSizeContext = createContext<EmptyStateSize>(\"md\");\n\nfunction useEmptyStateSize(): EmptyStateSize {\n return useContext(EmptyStateSizeContext);\n}\n\nexport function EmptyState(props: EmptyStateProps) {\n const {\n className,\n size = \"md\",\n appearance,\n align,\n animation = \"none\",\n children,\n ref,\n ...rest\n } = props;\n const motionProps = emptyStateAnimationPresets[animation];\n const ctx = useMemo(() => size ?? \"md\", [size]);\n\n return (\n <EmptyStateSizeContext.Provider value={ctx}>\n <motion.section\n ref={ref}\n data-slot=\"empty-state\"\n aria-live=\"polite\"\n className={cn(emptyStateVariants({ size, appearance, align }), className)}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.section>\n </EmptyStateSizeContext.Provider>\n );\n}\n\nEmptyState.displayName = \"EmptyState\";\n\nexport function EmptyStateIcon({ className, children }: EmptyStateSectionProps) {\n return (\n <div data-slot=\"empty-state-icon\" className={cn(\"text-slate-300\", className)}>\n {children}\n </div>\n );\n}\n\nEmptyStateIcon.displayName = \"EmptyStateIcon\";\n\nexport function EmptyStateTitle({ className, children }: EmptyStateSectionProps) {\n const size = useEmptyStateSize();\n return (\n <h2 data-slot=\"empty-state-title\" className={cn(emptyStateTitleVariants({ size }), className)}>\n {children}\n </h2>\n );\n}\n\nEmptyStateTitle.displayName = \"EmptyStateTitle\";\n\nexport function EmptyStateDescription({\n className,\n children,\n}: EmptyStateSectionProps) {\n const size = useEmptyStateSize();\n return (\n <p\n data-slot=\"empty-state-description\"\n className={cn(emptyStateDescriptionVariants({ size }), className)}\n >\n {children}\n </p>\n );\n}\n\nEmptyStateDescription.displayName = \"EmptyStateDescription\";\n\nexport function EmptyStateAction({ className, children }: EmptyStateSectionProps) {\n return (\n <div data-slot=\"empty-state-action\" className={cn(\"mt-2\", className)}>\n {children}\n </div>\n );\n}\n\nEmptyStateAction.displayName = \"EmptyStateAction\";\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { EmptyStateAnimation } from \"./types\";\n\ntype EmptyStatePresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"initial\" | \"animate\" | \"transition\" | \"whileHover\"\n>;\n\nexport type EmptyStateAnimationPresets = Record<\n EmptyStateAnimation,\n EmptyStatePresetMotionProps\n>;\n\nexport const emptyStateAnimationPresets: EmptyStateAnimationPresets = {\n none: {},\n float: {\n whileHover: { y: -4 },\n transition: { type: \"spring\", stiffness: 260, damping: 22 },\n },\n fade: {\n initial: { opacity: 0, y: 8 },\n animate: { opacity: 1, y: 0 },\n transition: { duration: 0.25, ease: \"easeOut\" },\n },\n \"slide-up\": {\n initial: { opacity: 0, y: 16 },\n animate: { opacity: 1, y: 0 },\n transition: { type: \"spring\", stiffness: 380, damping: 28 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const emptyStateVariants = cva(\"flex w-full flex-col items-center text-center\", {\n variants: {\n size: {\n sm: \"gap-2 p-4 text-sm\",\n md: \"gap-3 p-6 text-sm\",\n lg: \"gap-4 p-8 text-base\",\n },\n appearance: {\n default: \"text-slate-50\",\n ghost: \"text-slate-200\",\n card: \"rounded-2xl border border-white/10 bg-white/5 p-8 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.35)]\",\n },\n align: {\n start: \"items-start text-left\",\n center: \"items-center text-center\",\n end: \"items-end text-right\",\n },\n },\n defaultVariants: {\n size: \"md\",\n appearance: \"default\",\n align: \"center\",\n },\n});\n\nexport const emptyStateTitleVariants = cva(\"font-semibold tracking-tight\", {\n variants: {\n size: {\n sm: \"text-base\",\n md: \"text-lg\",\n lg: \"text-xl\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport const emptyStateDescriptionVariants = cva(\"max-w-md text-slate-400\", {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n"],"mappings":";;;;AAEA,SAAS,eAAe,YAAY,eAAe;AACnD,SAAS,cAAc;;;ACHvB,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACSO,IAAM,6BAAyD;AAAA,EACpE,MAAM,CAAC;AAAA,EACP,OAAO;AAAA,IACL,YAAY,EAAE,GAAG,GAAG;AAAA,IACpB,YAAY,EAAE,MAAM,UAAU,WAAW,KAAK,SAAS,GAAG;AAAA,EAC5D;AAAA,EACA,MAAM;AAAA,IACJ,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,IAC5B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,IAC5B,YAAY,EAAE,UAAU,MAAM,MAAM,UAAU;AAAA,EAChD;AAAA,EACA,YAAY;AAAA,IACV,SAAS,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,IAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,IAC5B,YAAY,EAAE,MAAM,UAAU,WAAW,KAAK,SAAS,GAAG;AAAA,EAC5D;AACF;;;AC9BA,SAAS,WAAW;AAEb,IAAM,qBAAqB,IAAI,iDAAiD;AAAA,EACrF,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,IACA,YAAY;AAAA,MACV,SAAS;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,IACA,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,IACP;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,EACT;AACF,CAAC;AAEM,IAAM,0BAA0B,IAAI,gCAAgC;AAAA,EACzE,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,iBAAiB,EAAE,MAAM,KAAK;AAChC,CAAC;AAEM,IAAM,gCAAgC,IAAI,2BAA2B;AAAA,EAC1E,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,iBAAiB,EAAE,MAAM,KAAK;AAChC,CAAC;;;AHRK;AAtBN,IAAM,wBAAwB,cAA8B,IAAI;AAEhE,SAAS,oBAAoC;AAC3C,SAAO,WAAW,qBAAqB;AACzC;AAEO,SAAS,WAAW,OAAwB;AACjD,QAAM;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,cAAc,2BAA2B,SAAS;AACxD,QAAM,MAAM,QAAQ,MAAM,QAAQ,MAAM,CAAC,IAAI,CAAC;AAE9C,SACE,oBAAC,sBAAsB,UAAtB,EAA+B,OAAO,KACrC;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,aAAU;AAAA,MACV,WAAW,GAAG,mBAAmB,EAAE,MAAM,YAAY,MAAM,CAAC,GAAG,SAAS;AAAA,MACxE,SAAS,cAAc,SAAS,QAAQ;AAAA,MACvC,GAAG;AAAA,MACH,GAAG;AAAA,MAEH;AAAA;AAAA,EACH,GACF;AAEJ;AAEA,WAAW,cAAc;AAElB,SAAS,eAAe,EAAE,WAAW,SAAS,GAA2B;AAC9E,SACE,oBAAC,SAAI,aAAU,oBAAmB,WAAW,GAAG,kBAAkB,SAAS,GACxE,UACH;AAEJ;AAEA,eAAe,cAAc;AAEtB,SAAS,gBAAgB,EAAE,WAAW,SAAS,GAA2B;AAC/E,QAAM,OAAO,kBAAkB;AAC/B,SACE,oBAAC,QAAG,aAAU,qBAAoB,WAAW,GAAG,wBAAwB,EAAE,KAAK,CAAC,GAAG,SAAS,GACzF,UACH;AAEJ;AAEA,gBAAgB,cAAc;AAEvB,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AACF,GAA2B;AACzB,QAAM,OAAO,kBAAkB;AAC/B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,8BAA8B,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MAE/D;AAAA;AAAA,EACH;AAEJ;AAEA,sBAAsB,cAAc;AAE7B,SAAS,iBAAiB,EAAE,WAAW,SAAS,GAA2B;AAChF,SACE,oBAAC,SAAI,aAAU,sBAAqB,WAAW,GAAG,QAAQ,SAAS,GAChE,UACH;AAEJ;AAEA,iBAAiB,cAAc;","names":[]}
1
+ {"version":3,"sources":["/Users/shubham/Desktop/Repos/NEXT%20JS/zentauri-ui/packages/components/dist/ui/empty-state.js"],"names":[],"mappings":"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","file":"/Users/shubham/Desktop/Repos/NEXT JS/zentauri-ui/packages/components/dist/ui/empty-state.js","sourcesContent":[null]}
@@ -0,0 +1,150 @@
1
+ "use client";
2
+
3
+ import {
4
+ cn
5
+ } from "../chunk-MEWYFWBX.mjs";
6
+
7
+ // src/ui/empty-state/empty-state.tsx
8
+ import { createContext, useContext, useMemo } from "react";
9
+ import { motion } from "framer-motion";
10
+
11
+ // src/ui/empty-state/animations.ts
12
+ var emptyStateAnimationPresets = {
13
+ none: {},
14
+ float: {
15
+ whileHover: { y: -4 },
16
+ transition: { type: "spring", stiffness: 260, damping: 22 }
17
+ },
18
+ fade: {
19
+ initial: { opacity: 0, y: 8 },
20
+ animate: { opacity: 1, y: 0 },
21
+ transition: { duration: 0.25, ease: "easeOut" }
22
+ },
23
+ "slide-up": {
24
+ initial: { opacity: 0, y: 16 },
25
+ animate: { opacity: 1, y: 0 },
26
+ transition: { type: "spring", stiffness: 380, damping: 28 }
27
+ }
28
+ };
29
+
30
+ // src/ui/empty-state/variants.ts
31
+ import { cva } from "class-variance-authority";
32
+ var emptyStateVariants = cva("flex w-full flex-col items-center text-center", {
33
+ variants: {
34
+ size: {
35
+ sm: "gap-2 p-4 text-sm",
36
+ md: "gap-3 p-6 text-sm",
37
+ lg: "gap-4 p-8 text-base"
38
+ },
39
+ appearance: {
40
+ default: "text-slate-50",
41
+ ghost: "text-slate-200",
42
+ card: "rounded-2xl border border-white/10 bg-white/5 p-8 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.35)]"
43
+ },
44
+ align: {
45
+ start: "items-start text-left",
46
+ center: "items-center text-center",
47
+ end: "items-end text-right"
48
+ }
49
+ },
50
+ defaultVariants: {
51
+ size: "md",
52
+ appearance: "default",
53
+ align: "center"
54
+ }
55
+ });
56
+ var emptyStateTitleVariants = cva("font-semibold tracking-tight", {
57
+ variants: {
58
+ size: {
59
+ sm: "text-base",
60
+ md: "text-lg",
61
+ lg: "text-xl"
62
+ }
63
+ },
64
+ defaultVariants: { size: "md" }
65
+ });
66
+ var emptyStateDescriptionVariants = cva("max-w-md text-slate-400", {
67
+ variants: {
68
+ size: {
69
+ sm: "text-xs",
70
+ md: "text-sm",
71
+ lg: "text-base"
72
+ }
73
+ },
74
+ defaultVariants: { size: "md" }
75
+ });
76
+
77
+ // src/ui/empty-state/empty-state.tsx
78
+ import { jsx } from "react/jsx-runtime";
79
+ var EmptyStateSizeContext = createContext("md");
80
+ function useEmptyStateSize() {
81
+ return useContext(EmptyStateSizeContext);
82
+ }
83
+ function EmptyState(props) {
84
+ const {
85
+ className,
86
+ size = "md",
87
+ appearance,
88
+ align,
89
+ animation = "none",
90
+ children,
91
+ ref,
92
+ ...rest
93
+ } = props;
94
+ const motionProps = emptyStateAnimationPresets[animation];
95
+ const ctx = useMemo(() => size ?? "md", [size]);
96
+ return /* @__PURE__ */ jsx(EmptyStateSizeContext.Provider, { value: ctx, children: /* @__PURE__ */ jsx(
97
+ motion.section,
98
+ {
99
+ ref,
100
+ "data-slot": "empty-state",
101
+ "aria-live": "polite",
102
+ className: cn(emptyStateVariants({ size, appearance, align }), className),
103
+ initial: animation === "none" ? false : void 0,
104
+ ...motionProps,
105
+ ...rest,
106
+ children
107
+ }
108
+ ) });
109
+ }
110
+ EmptyState.displayName = "EmptyState";
111
+ function EmptyStateIcon({ className, children }) {
112
+ return /* @__PURE__ */ jsx("div", { "data-slot": "empty-state-icon", className: cn("text-slate-300", className), children });
113
+ }
114
+ EmptyStateIcon.displayName = "EmptyStateIcon";
115
+ function EmptyStateTitle({ className, children }) {
116
+ const size = useEmptyStateSize();
117
+ return /* @__PURE__ */ jsx("h2", { "data-slot": "empty-state-title", className: cn(emptyStateTitleVariants({ size }), className), children });
118
+ }
119
+ EmptyStateTitle.displayName = "EmptyStateTitle";
120
+ function EmptyStateDescription({
121
+ className,
122
+ children
123
+ }) {
124
+ const size = useEmptyStateSize();
125
+ return /* @__PURE__ */ jsx(
126
+ "p",
127
+ {
128
+ "data-slot": "empty-state-description",
129
+ className: cn(emptyStateDescriptionVariants({ size }), className),
130
+ children
131
+ }
132
+ );
133
+ }
134
+ EmptyStateDescription.displayName = "EmptyStateDescription";
135
+ function EmptyStateAction({ className, children }) {
136
+ return /* @__PURE__ */ jsx("div", { "data-slot": "empty-state-action", className: cn("mt-2", className), children });
137
+ }
138
+ EmptyStateAction.displayName = "EmptyStateAction";
139
+ export {
140
+ EmptyState,
141
+ EmptyStateAction,
142
+ EmptyStateDescription,
143
+ EmptyStateIcon,
144
+ EmptyStateTitle,
145
+ emptyStateAnimationPresets,
146
+ emptyStateDescriptionVariants,
147
+ emptyStateTitleVariants,
148
+ emptyStateVariants
149
+ };
150
+ //# sourceMappingURL=empty-state.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/ui/empty-state/empty-state.tsx","../../src/ui/empty-state/animations.ts","../../src/ui/empty-state/variants.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext, useMemo } from \"react\";\nimport { motion } from \"framer-motion\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport { emptyStateAnimationPresets } from \"./animations\";\nimport type { EmptyStateProps, EmptyStateSectionProps } from \"./types\";\nimport {\n emptyStateDescriptionVariants,\n emptyStateTitleVariants,\n emptyStateVariants,\n} from \"./variants\";\n\ntype EmptyStateSize = NonNullable<EmptyStateProps[\"size\"]>;\n\nconst EmptyStateSizeContext = createContext<EmptyStateSize>(\"md\");\n\nfunction useEmptyStateSize(): EmptyStateSize {\n return useContext(EmptyStateSizeContext);\n}\n\nexport function EmptyState(props: EmptyStateProps) {\n const {\n className,\n size = \"md\",\n appearance,\n align,\n animation = \"none\",\n children,\n ref,\n ...rest\n } = props;\n const motionProps = emptyStateAnimationPresets[animation];\n const ctx = useMemo(() => size ?? \"md\", [size]);\n\n return (\n <EmptyStateSizeContext.Provider value={ctx}>\n <motion.section\n ref={ref}\n data-slot=\"empty-state\"\n aria-live=\"polite\"\n className={cn(emptyStateVariants({ size, appearance, align }), className)}\n initial={animation === \"none\" ? false : undefined}\n {...motionProps}\n {...rest}\n >\n {children}\n </motion.section>\n </EmptyStateSizeContext.Provider>\n );\n}\n\nEmptyState.displayName = \"EmptyState\";\n\nexport function EmptyStateIcon({ className, children }: EmptyStateSectionProps) {\n return (\n <div data-slot=\"empty-state-icon\" className={cn(\"text-slate-300\", className)}>\n {children}\n </div>\n );\n}\n\nEmptyStateIcon.displayName = \"EmptyStateIcon\";\n\nexport function EmptyStateTitle({ className, children }: EmptyStateSectionProps) {\n const size = useEmptyStateSize();\n return (\n <h2 data-slot=\"empty-state-title\" className={cn(emptyStateTitleVariants({ size }), className)}>\n {children}\n </h2>\n );\n}\n\nEmptyStateTitle.displayName = \"EmptyStateTitle\";\n\nexport function EmptyStateDescription({\n className,\n children,\n}: EmptyStateSectionProps) {\n const size = useEmptyStateSize();\n return (\n <p\n data-slot=\"empty-state-description\"\n className={cn(emptyStateDescriptionVariants({ size }), className)}\n >\n {children}\n </p>\n );\n}\n\nEmptyStateDescription.displayName = \"EmptyStateDescription\";\n\nexport function EmptyStateAction({ className, children }: EmptyStateSectionProps) {\n return (\n <div data-slot=\"empty-state-action\" className={cn(\"mt-2\", className)}>\n {children}\n </div>\n );\n}\n\nEmptyStateAction.displayName = \"EmptyStateAction\";\n","import type { HTMLMotionProps } from \"framer-motion\";\n\nimport type { EmptyStateAnimation } from \"./types\";\n\ntype EmptyStatePresetMotionProps = Pick<\n HTMLMotionProps<\"div\">,\n \"initial\" | \"animate\" | \"transition\" | \"whileHover\"\n>;\n\nexport type EmptyStateAnimationPresets = Record<\n EmptyStateAnimation,\n EmptyStatePresetMotionProps\n>;\n\nexport const emptyStateAnimationPresets: EmptyStateAnimationPresets = {\n none: {},\n float: {\n whileHover: { y: -4 },\n transition: { type: \"spring\", stiffness: 260, damping: 22 },\n },\n fade: {\n initial: { opacity: 0, y: 8 },\n animate: { opacity: 1, y: 0 },\n transition: { duration: 0.25, ease: \"easeOut\" },\n },\n \"slide-up\": {\n initial: { opacity: 0, y: 16 },\n animate: { opacity: 1, y: 0 },\n transition: { type: \"spring\", stiffness: 380, damping: 28 },\n },\n};\n","import { cva } from \"class-variance-authority\";\n\nexport const emptyStateVariants = cva(\"flex w-full flex-col items-center text-center\", {\n variants: {\n size: {\n sm: \"gap-2 p-4 text-sm\",\n md: \"gap-3 p-6 text-sm\",\n lg: \"gap-4 p-8 text-base\",\n },\n appearance: {\n default: \"text-slate-50\",\n ghost: \"text-slate-200\",\n card: \"rounded-2xl border border-white/10 bg-white/5 p-8 text-slate-50 shadow-[0_18px_48px_rgba(15,23,42,0.35)]\",\n },\n align: {\n start: \"items-start text-left\",\n center: \"items-center text-center\",\n end: \"items-end text-right\",\n },\n },\n defaultVariants: {\n size: \"md\",\n appearance: \"default\",\n align: \"center\",\n },\n});\n\nexport const emptyStateTitleVariants = cva(\"font-semibold tracking-tight\", {\n variants: {\n size: {\n sm: \"text-base\",\n md: \"text-lg\",\n lg: \"text-xl\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n\nexport const emptyStateDescriptionVariants = cva(\"max-w-md text-slate-400\", {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n },\n },\n defaultVariants: { size: \"md\" },\n});\n"],"mappings":"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","names":[]}
@@ -4,8 +4,8 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
 
6
6
  declare const inputVariants: (props?: ({
7
- as?: "input" | "textarea" | "checkbox" | "radio" | "file" | null | undefined;
8
- appearance?: "default" | "pink" | "orange" | "indigo" | "success" | "warning" | "error" | "info" | "violet" | "amber" | null | undefined;
7
+ as?: "input" | "textarea" | "file" | "checkbox" | "radio" | null | undefined;
8
+ appearance?: "default" | "warning" | "error" | "success" | "info" | "violet" | "amber" | "pink" | "indigo" | "orange" | null | undefined;
9
9
  size?: "sm" | "md" | "lg" | null | undefined;
10
10
  ring?: boolean | null | undefined;
11
11
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -4,8 +4,8 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
 
6
6
  declare const inputVariants: (props?: ({
7
- as?: "input" | "textarea" | "checkbox" | "radio" | "file" | null | undefined;
8
- appearance?: "default" | "pink" | "orange" | "indigo" | "success" | "warning" | "error" | "info" | "violet" | "amber" | null | undefined;
7
+ as?: "input" | "textarea" | "file" | "checkbox" | "radio" | null | undefined;
8
+ appearance?: "default" | "warning" | "error" | "success" | "info" | "violet" | "amber" | "pink" | "indigo" | "orange" | null | undefined;
9
9
  size?: "sm" | "md" | "lg" | null | undefined;
10
10
  ring?: boolean | null | undefined;
11
11
  } & class_variance_authority_types.ClassProp) | undefined) => string;