@axtec/components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +12 -0
  2. package/dist/components/ActionBar/ActionBar.d.ts +10 -0
  3. package/dist/components/ActionBar/index.d.ts +1 -0
  4. package/dist/components/ActionLayout/ActionLayout.d.ts +15 -0
  5. package/dist/components/ActionLayout/index.d.ts +1 -0
  6. package/dist/components/Alert/Alert.d.ts +9 -0
  7. package/dist/components/AlertBox/AlertBox.d.ts +15 -0
  8. package/dist/components/AlertBox/index.d.ts +1 -0
  9. package/dist/components/AlertModal/AlertModal.d.ts +14 -0
  10. package/dist/components/AlertModal/index.d.ts +1 -0
  11. package/dist/components/AutoComplete/AutoComplete.d.ts +17 -0
  12. package/dist/components/AutoComplete/index.d.ts +1 -0
  13. package/dist/components/Avatar/Avatar.d.ts +8 -0
  14. package/dist/components/AvatarCard/AvatarCard.d.ts +27 -0
  15. package/dist/components/AvatarCard/index.d.ts +1 -0
  16. package/dist/components/AverageRating/AverageRating.d.ts +8 -0
  17. package/dist/components/AverageRating/index.d.ts +1 -0
  18. package/dist/components/Badge/Badge.d.ts +9 -0
  19. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +15 -0
  20. package/dist/components/Button/Button.d.ts +9 -0
  21. package/dist/components/ButtonGroup/ButtonGroup.d.ts +11 -0
  22. package/dist/components/ButtonGroup/index.d.ts +1 -0
  23. package/dist/components/Card/Card.d.ts +56 -0
  24. package/dist/components/Checkbox/Checkbox.d.ts +6 -0
  25. package/dist/components/ConfirmModal/ConfirmModal.d.ts +18 -0
  26. package/dist/components/ConfirmModal/index.d.ts +1 -0
  27. package/dist/components/DatePicker/DatePicker.d.ts +13 -0
  28. package/dist/components/DatePicker/index.d.ts +1 -0
  29. package/dist/components/Drawer/Drawer.d.ts +10 -0
  30. package/dist/components/Drawer/index.d.ts +1 -0
  31. package/dist/components/Dropdown/Dropdown.d.ts +21 -0
  32. package/dist/components/EmptyData/EmptyData.d.ts +9 -0
  33. package/dist/components/EmptyData/index.d.ts +1 -0
  34. package/dist/components/FileUploader/FileUploader.d.ts +10 -0
  35. package/dist/components/FileUploader/index.d.ts +1 -0
  36. package/dist/components/IconButton/IconButton.d.ts +7 -0
  37. package/dist/components/IconButton/index.d.ts +1 -0
  38. package/dist/components/Image/Image.d.ts +13 -0
  39. package/dist/components/Image/index.d.ts +1 -0
  40. package/dist/components/ImageGrid/ImageGrid.d.ts +19 -0
  41. package/dist/components/ImageGrid/index.d.ts +1 -0
  42. package/dist/components/ImageUploading/ImageUploading.d.ts +7 -0
  43. package/dist/components/ImageUploading/index.d.ts +1 -0
  44. package/dist/components/Input/Input.d.ts +7 -0
  45. package/dist/components/LinkButton/LinkButton.d.ts +15 -0
  46. package/dist/components/LinkButton/index.d.ts +1 -0
  47. package/dist/components/Loader/Loader.d.ts +6 -0
  48. package/dist/components/LoadingModal/LoadingModal.d.ts +6 -0
  49. package/dist/components/LoadingModal/index.d.ts +1 -0
  50. package/dist/components/Logo/AxtecLogo.d.ts +5 -0
  51. package/dist/components/Logo/MyHomeVaultLogo.d.ts +5 -0
  52. package/dist/components/Logo/index.d.ts +2 -0
  53. package/dist/components/LogoLoader/LogoLoader.d.ts +5 -0
  54. package/dist/components/LogoLoader/index.d.ts +1 -0
  55. package/dist/components/MenuText/MenuText.d.ts +7 -0
  56. package/dist/components/MenuText/index.d.ts +1 -0
  57. package/dist/components/Modal/Modal.d.ts +10 -0
  58. package/dist/components/MultiItemSelect/MultiItemSelect.d.ts +13 -0
  59. package/dist/components/MultiItemSelect/index.d.ts +1 -0
  60. package/dist/components/Notification/Notification.d.ts +11 -0
  61. package/dist/components/Notification/index.d.ts +1 -0
  62. package/dist/components/Pagination/Pagination.d.ts +8 -0
  63. package/dist/components/Panel/Panel.d.ts +40 -0
  64. package/dist/components/Panel/index.d.ts +1 -0
  65. package/dist/components/PhotoLibrary/PhotoLibrary.d.ts +14 -0
  66. package/dist/components/PhotoLibrary/index.d.ts +1 -0
  67. package/dist/components/Pill/Pill.d.ts +11 -0
  68. package/dist/components/Pill/index.d.ts +1 -0
  69. package/dist/components/Progress/Progress.d.ts +10 -0
  70. package/dist/components/QuickActions/QuickActions.d.ts +8 -0
  71. package/dist/components/QuickActions/index.d.ts +1 -0
  72. package/dist/components/RadioGroup/RadioGroup.d.ts +15 -0
  73. package/dist/components/Rating/Rating.d.ts +11 -0
  74. package/dist/components/Rating/index.d.ts +1 -0
  75. package/dist/components/Row/Row.d.ts +10 -0
  76. package/dist/components/Row/index.d.ts +1 -0
  77. package/dist/components/ScrollableModal/ScrollableModal.d.ts +17 -0
  78. package/dist/components/ScrollableModal/index.d.ts +1 -0
  79. package/dist/components/Select/Select.d.ts +16 -0
  80. package/dist/components/Skeleton/Skeleton.d.ts +18 -0
  81. package/dist/components/StatisticsChart/StatisticsChart.d.ts +43 -0
  82. package/dist/components/StatisticsChart/index.d.ts +1 -0
  83. package/dist/components/StatisticsLegend/StatisticsLegend.d.ts +22 -0
  84. package/dist/components/StatisticsLegend/index.d.ts +1 -0
  85. package/dist/components/StatusIndicator/StatusIndicator.d.ts +21 -0
  86. package/dist/components/StatusIndicator/index.d.ts +1 -0
  87. package/dist/components/StepList/StepList.d.ts +8 -0
  88. package/dist/components/StepList/index.d.ts +1 -0
  89. package/dist/components/TabView/TabView.d.ts +17 -0
  90. package/dist/components/TabView/index.d.ts +1 -0
  91. package/dist/components/Table/Table.d.ts +19 -0
  92. package/dist/components/Tabs/Tabs.d.ts +16 -0
  93. package/dist/components/TaskList/TaskList.d.ts +20 -0
  94. package/dist/components/TaskList/index.d.ts +1 -0
  95. package/dist/components/Textarea/Textarea.d.ts +7 -0
  96. package/dist/components/Toggle/Toggle.d.ts +10 -0
  97. package/dist/components/ToggleButton/ToggleButton.d.ts +8 -0
  98. package/dist/components/ToggleButton/index.d.ts +1 -0
  99. package/dist/components/Tooltip/Tooltip.d.ts +9 -0
  100. package/dist/components/TrendIndicator/TrendIndicator.d.ts +8 -0
  101. package/dist/components/TrendIndicator/index.d.ts +1 -0
  102. package/dist/components/Typography/CardHeading.d.ts +6 -0
  103. package/dist/components/Typography/PageHeading.d.ts +6 -0
  104. package/dist/components/Typography/SectionHeading.d.ts +10 -0
  105. package/dist/components/Typography/SubsectionHeading.d.ts +6 -0
  106. package/dist/components/Typography/Text.d.ts +10 -0
  107. package/dist/components/Typography/index.d.ts +5 -0
  108. package/dist/components/index.d.ts +62 -0
  109. package/dist/index.css +1 -0
  110. package/dist/index.d.ts +3 -0
  111. package/dist/index.js +153 -0
  112. package/dist/index.js.map +1 -0
  113. package/dist/index10.js +104 -0
  114. package/dist/index10.js.map +1 -0
  115. package/dist/index11.js +42 -0
  116. package/dist/index11.js.map +1 -0
  117. package/dist/index12.js +82 -0
  118. package/dist/index12.js.map +1 -0
  119. package/dist/index13.js +28 -0
  120. package/dist/index13.js.map +1 -0
  121. package/dist/index14.js +22 -0
  122. package/dist/index14.js.map +1 -0
  123. package/dist/index15.js +42 -0
  124. package/dist/index15.js.map +1 -0
  125. package/dist/index16.js +76 -0
  126. package/dist/index16.js.map +1 -0
  127. package/dist/index17.js +53 -0
  128. package/dist/index17.js.map +1 -0
  129. package/dist/index18.js +16 -0
  130. package/dist/index18.js.map +1 -0
  131. package/dist/index19.js +157 -0
  132. package/dist/index19.js.map +1 -0
  133. package/dist/index20.js +21 -0
  134. package/dist/index20.js.map +1 -0
  135. package/dist/index21.js +49 -0
  136. package/dist/index21.js.map +1 -0
  137. package/dist/index22.js +53 -0
  138. package/dist/index22.js.map +1 -0
  139. package/dist/index23.js +82 -0
  140. package/dist/index23.js.map +1 -0
  141. package/dist/index24.js +223 -0
  142. package/dist/index24.js.map +1 -0
  143. package/dist/index25.js +55 -0
  144. package/dist/index25.js.map +1 -0
  145. package/dist/index26.js +81 -0
  146. package/dist/index26.js.map +1 -0
  147. package/dist/index27.js +27 -0
  148. package/dist/index27.js.map +1 -0
  149. package/dist/index28.js +81 -0
  150. package/dist/index28.js.map +1 -0
  151. package/dist/index29.js +36 -0
  152. package/dist/index29.js.map +1 -0
  153. package/dist/index3.js +9 -0
  154. package/dist/index3.js.map +1 -0
  155. package/dist/index30.js +95 -0
  156. package/dist/index30.js.map +1 -0
  157. package/dist/index31.js +63 -0
  158. package/dist/index31.js.map +1 -0
  159. package/dist/index32.js +48 -0
  160. package/dist/index32.js.map +1 -0
  161. package/dist/index33.js +51 -0
  162. package/dist/index33.js.map +1 -0
  163. package/dist/index34.js +55 -0
  164. package/dist/index34.js.map +1 -0
  165. package/dist/index35.js +31 -0
  166. package/dist/index35.js.map +1 -0
  167. package/dist/index36.js +57 -0
  168. package/dist/index36.js.map +1 -0
  169. package/dist/index37.js +52 -0
  170. package/dist/index37.js.map +1 -0
  171. package/dist/index38.js +16 -0
  172. package/dist/index38.js.map +1 -0
  173. package/dist/index39.js +85 -0
  174. package/dist/index39.js.map +1 -0
  175. package/dist/index4.js +36 -0
  176. package/dist/index4.js.map +1 -0
  177. package/dist/index40.js +52 -0
  178. package/dist/index40.js.map +1 -0
  179. package/dist/index41.js +22 -0
  180. package/dist/index41.js.map +1 -0
  181. package/dist/index42.js +37 -0
  182. package/dist/index42.js.map +1 -0
  183. package/dist/index43.js +18 -0
  184. package/dist/index43.js.map +1 -0
  185. package/dist/index44.js +94 -0
  186. package/dist/index44.js.map +1 -0
  187. package/dist/index45.js +72 -0
  188. package/dist/index45.js.map +1 -0
  189. package/dist/index46.js +125 -0
  190. package/dist/index46.js.map +1 -0
  191. package/dist/index47.js +43 -0
  192. package/dist/index47.js.map +1 -0
  193. package/dist/index48.js +59 -0
  194. package/dist/index48.js.map +1 -0
  195. package/dist/index49.js +19 -0
  196. package/dist/index49.js.map +1 -0
  197. package/dist/index5.js +24 -0
  198. package/dist/index5.js.map +1 -0
  199. package/dist/index50.js +68 -0
  200. package/dist/index50.js.map +1 -0
  201. package/dist/index51.js +57 -0
  202. package/dist/index51.js.map +1 -0
  203. package/dist/index52.js +40 -0
  204. package/dist/index52.js.map +1 -0
  205. package/dist/index53.js +69 -0
  206. package/dist/index53.js.map +1 -0
  207. package/dist/index54.js +25 -0
  208. package/dist/index54.js.map +1 -0
  209. package/dist/index55.js +107 -0
  210. package/dist/index55.js.map +1 -0
  211. package/dist/index56.js +71 -0
  212. package/dist/index56.js.map +1 -0
  213. package/dist/index57.js +239 -0
  214. package/dist/index57.js.map +1 -0
  215. package/dist/index58.js +105 -0
  216. package/dist/index58.js.map +1 -0
  217. package/dist/index59.js +39 -0
  218. package/dist/index59.js.map +1 -0
  219. package/dist/index6.js +47 -0
  220. package/dist/index6.js.map +1 -0
  221. package/dist/index60.js +21 -0
  222. package/dist/index60.js.map +1 -0
  223. package/dist/index61.js +63 -0
  224. package/dist/index61.js.map +1 -0
  225. package/dist/index62.js +64 -0
  226. package/dist/index62.js.map +1 -0
  227. package/dist/index63.js +78 -0
  228. package/dist/index63.js.map +1 -0
  229. package/dist/index64.js +112 -0
  230. package/dist/index64.js.map +1 -0
  231. package/dist/index65.js +43 -0
  232. package/dist/index65.js.map +1 -0
  233. package/dist/index66.js +51 -0
  234. package/dist/index66.js.map +1 -0
  235. package/dist/index67.js +79 -0
  236. package/dist/index67.js.map +1 -0
  237. package/dist/index68.js +57 -0
  238. package/dist/index68.js.map +1 -0
  239. package/dist/index69.js +71 -0
  240. package/dist/index69.js.map +1 -0
  241. package/dist/index7.js +80 -0
  242. package/dist/index7.js.map +1 -0
  243. package/dist/index70.js +39 -0
  244. package/dist/index70.js.map +1 -0
  245. package/dist/index71.js +17 -0
  246. package/dist/index71.js.map +1 -0
  247. package/dist/index72.js +2267 -0
  248. package/dist/index72.js.map +1 -0
  249. package/dist/index8.js +82 -0
  250. package/dist/index8.js.map +1 -0
  251. package/dist/index9.js +97 -0
  252. package/dist/index9.js.map +1 -0
  253. package/dist/lib/utils.d.ts +2 -0
  254. package/dist/logos/axtec-logo.png +0 -0
  255. package/dist/logos/mhv-icon.svg +5 -0
  256. package/dist/logos/mhv-logo.png +0 -0
  257. package/dist/logos/mhv-logo.svg +23 -0
  258. package/package.json +63 -0
@@ -0,0 +1,95 @@
1
+ import { jsxs as r, Fragment as b, jsx as e } from "react/jsx-runtime";
2
+ import { useState as c } from "react";
3
+ import { cn as i } from "./index3.js";
4
+ import { Dialog as w, DialogPanel as j } from "@headlessui/react";
5
+ import { XMarkIcon as C } from "@heroicons/react/24/outline";
6
+ const k = {
7
+ auto: "",
8
+ square: "aspect-square",
9
+ video: "aspect-video",
10
+ "4/3": "aspect-[4/3]",
11
+ "3/2": "aspect-[3/2]"
12
+ }, O = ({
13
+ src: m,
14
+ alt: o = "",
15
+ fallbackSrc: f = "/png/No_Img.png",
16
+ enablePreview: t = !0,
17
+ aspectRatio: u = "auto",
18
+ objectFit: s = "cover",
19
+ className: d,
20
+ imageClassName: p,
21
+ children: h
22
+ }) => {
23
+ const [a, v] = c(!1), [g, l] = c(!1), n = a ? f : m, x = () => {
24
+ v(!0);
25
+ }, N = () => {
26
+ t && !a && l(!0);
27
+ };
28
+ return /* @__PURE__ */ r(b, { children: [
29
+ /* @__PURE__ */ r(
30
+ "div",
31
+ {
32
+ className: i(
33
+ "relative overflow-hidden",
34
+ k[u],
35
+ t && !a && "cursor-pointer",
36
+ d
37
+ ),
38
+ onClick: N,
39
+ children: [
40
+ /* @__PURE__ */ e(
41
+ "img",
42
+ {
43
+ src: n,
44
+ alt: o,
45
+ onError: x,
46
+ className: i(
47
+ "w-full h-full",
48
+ s === "cover" && "object-cover",
49
+ s === "contain" && "object-contain",
50
+ s === "fill" && "object-fill",
51
+ s === "none" && "object-none",
52
+ p
53
+ )
54
+ }
55
+ ),
56
+ h
57
+ ]
58
+ }
59
+ ),
60
+ /* @__PURE__ */ r(
61
+ w,
62
+ {
63
+ open: g,
64
+ onClose: () => l(!1),
65
+ className: "relative z-50",
66
+ children: [
67
+ /* @__PURE__ */ e("div", { className: "fixed inset-0 bg-black", "aria-hidden": "true" }),
68
+ /* @__PURE__ */ e("div", { className: "fixed inset-0 flex items-center justify-center", children: /* @__PURE__ */ r(j, { className: "relative w-full h-full flex items-center justify-center", children: [
69
+ /* @__PURE__ */ e(
70
+ "button",
71
+ {
72
+ onClick: () => l(!1),
73
+ className: "absolute top-8 left-8 p-2 rounded-full bg-white hover:bg-slate-100 transition-colors",
74
+ "aria-label": "Close preview",
75
+ children: /* @__PURE__ */ e(C, { className: "w-6 h-6 text-slate-700" })
76
+ }
77
+ ),
78
+ /* @__PURE__ */ e(
79
+ "img",
80
+ {
81
+ src: n,
82
+ alt: o,
83
+ className: "max-w-full max-h-full object-contain"
84
+ }
85
+ )
86
+ ] }) })
87
+ ]
88
+ }
89
+ )
90
+ ] });
91
+ };
92
+ export {
93
+ O as Image
94
+ };
95
+ //# sourceMappingURL=index30.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index30.js","sources":["../src/components/Image/Image.tsx"],"sourcesContent":["import { useState, type ReactNode } from 'react'\nimport { cn } from '@/lib/utils'\nimport { Dialog, DialogPanel } from '@headlessui/react'\nimport { XMarkIcon } from '@heroicons/react/24/outline'\n\nexport interface ImageProps {\n src: string\n alt?: string\n fallbackSrc?: string\n enablePreview?: boolean\n aspectRatio?: 'auto' | 'square' | 'video' | '4/3' | '3/2'\n objectFit?: 'cover' | 'contain' | 'fill' | 'none'\n className?: string\n imageClassName?: string\n children?: ReactNode\n}\n\nconst aspectRatioClasses = {\n auto: '',\n square: 'aspect-square',\n video: 'aspect-video',\n '4/3': 'aspect-[4/3]',\n '3/2': 'aspect-[3/2]',\n}\n\nexport const Image = ({\n src,\n alt = '',\n fallbackSrc = '/png/No_Img.png',\n enablePreview = true,\n aspectRatio = 'auto',\n objectFit = 'cover',\n className,\n imageClassName,\n children,\n}: ImageProps) => {\n const [hasError, setHasError] = useState(false)\n const [isPreviewOpen, setIsPreviewOpen] = useState(false)\n\n const imageSrc = hasError ? fallbackSrc : src\n\n const handleError = () => {\n setHasError(true)\n }\n\n const handleClick = () => {\n if (enablePreview && !hasError) {\n setIsPreviewOpen(true)\n }\n }\n\n return (\n <>\n <div\n className={cn(\n 'relative overflow-hidden',\n aspectRatioClasses[aspectRatio],\n enablePreview && !hasError && 'cursor-pointer',\n className\n )}\n onClick={handleClick}\n >\n <img\n src={imageSrc}\n alt={alt}\n onError={handleError}\n className={cn(\n 'w-full h-full',\n objectFit === 'cover' && 'object-cover',\n objectFit === 'contain' && 'object-contain',\n objectFit === 'fill' && 'object-fill',\n objectFit === 'none' && 'object-none',\n imageClassName\n )}\n />\n {children}\n </div>\n\n {/* Preview Modal */}\n <Dialog\n open={isPreviewOpen}\n onClose={() => setIsPreviewOpen(false)}\n className=\"relative z-50\"\n >\n <div className=\"fixed inset-0 bg-black\" aria-hidden=\"true\" />\n\n <div className=\"fixed inset-0 flex items-center justify-center\">\n <DialogPanel className=\"relative w-full h-full flex items-center justify-center\">\n <button\n onClick={() => setIsPreviewOpen(false)}\n className=\"absolute top-8 left-8 p-2 rounded-full bg-white hover:bg-slate-100 transition-colors\"\n aria-label=\"Close preview\"\n >\n <XMarkIcon className=\"w-6 h-6 text-slate-700\" />\n </button>\n\n <img\n src={imageSrc}\n alt={alt}\n className=\"max-w-full max-h-full object-contain\"\n />\n </DialogPanel>\n </div>\n </Dialog>\n </>\n )\n}\n"],"names":["aspectRatioClasses","Image","src","alt","fallbackSrc","enablePreview","aspectRatio","objectFit","className","imageClassName","children","hasError","setHasError","useState","isPreviewOpen","setIsPreviewOpen","imageSrc","handleError","handleClick","jsxs","Fragment","cn","jsx","Dialog","DialogPanel","XMarkIcon"],"mappings":";;;;;AAiBA,MAAMA,IAAqB;AAAA,EACzB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT,GAEaC,IAAQ,CAAC;AAAA,EACpB,KAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,aAAAC,IAAc;AAAA,EACd,eAAAC,IAAgB;AAAA,EAChB,aAAAC,IAAc;AAAA,EACd,WAAAC,IAAY;AAAA,EACZ,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AACF,MAAkB;AAChB,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAAS,EAAK,GACxC,CAACC,GAAeC,CAAgB,IAAIF,EAAS,EAAK,GAElDG,IAAWL,IAAWP,IAAcF,GAEpCe,IAAc,MAAM;AACxB,IAAAL,EAAY,EAAI;AAAA,EAClB,GAEMM,IAAc,MAAM;AACxB,IAAIb,KAAiB,CAACM,KACpBI,EAAiB,EAAI;AAAA,EAEzB;AAEA,SACE,gBAAAI,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWE;AAAA,UACT;AAAA,UACArB,EAAmBM,CAAW;AAAA,UAC9BD,KAAiB,CAACM,KAAY;AAAA,UAC9BH;AAAA,QAAA;AAAA,QAEF,SAASU;AAAA,QAET,UAAA;AAAA,UAAA,gBAAAI;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKN;AAAA,cACL,KAAAb;AAAA,cACA,SAASc;AAAA,cACT,WAAWI;AAAA,gBACT;AAAA,gBACAd,MAAc,WAAW;AAAA,gBACzBA,MAAc,aAAa;AAAA,gBAC3BA,MAAc,UAAU;AAAA,gBACxBA,MAAc,UAAU;AAAA,gBACxBE;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,UAEDC;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAIH,gBAAAS;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,MAAMT;AAAA,QACN,SAAS,MAAMC,EAAiB,EAAK;AAAA,QACrC,WAAU;AAAA,QAEV,UAAA;AAAA,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAU,0BAAyB,eAAY,QAAO;AAAA,4BAE1D,OAAA,EAAI,WAAU,kDACb,UAAA,gBAAAH,EAACK,GAAA,EAAY,WAAU,2DACrB,UAAA;AAAA,YAAA,gBAAAF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAMP,EAAiB,EAAK;AAAA,gBACrC,WAAU;AAAA,gBACV,cAAW;AAAA,gBAEX,UAAA,gBAAAO,EAACG,GAAA,EAAU,WAAU,yBAAA,CAAyB;AAAA,cAAA;AAAA,YAAA;AAAA,YAGhD,gBAAAH;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAKN;AAAA,gBACL,KAAAb;AAAA,gBACA,WAAU;AAAA,cAAA;AAAA,YAAA;AAAA,UACZ,EAAA,CACF,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
@@ -0,0 +1,63 @@
1
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
2
+ import { cn as i } from "./index3.js";
3
+ import { PlusIcon as m } from "@heroicons/react/24/outline";
4
+ const d = {
5
+ 2: "grid-cols-2",
6
+ 3: "grid-cols-3",
7
+ 4: "grid-cols-4",
8
+ 5: "grid-cols-5",
9
+ 6: "grid-cols-6"
10
+ }, p = ({ item: a, onClick: n }) => {
11
+ const { name: r, image: l, url: t, isTemplate: e } = a, o = /* @__PURE__ */ s(
12
+ "div",
13
+ {
14
+ className: i(
15
+ "aspect-video rounded overflow-hidden mb-1.5 cursor-pointer",
16
+ "bg-cover bg-center bg-no-repeat",
17
+ "flex items-center justify-center",
18
+ e ? "bg-primary-50" : "bg-slate-200"
19
+ ),
20
+ style: l && !e ? { backgroundImage: `url(${l})` } : void 0,
21
+ onClick: n,
22
+ children: e && /* @__PURE__ */ c("div", { className: "flex flex-col items-center gap-2", children: [
23
+ /* @__PURE__ */ s(m, { className: "w-8 h-8 text-primary-500" }),
24
+ /* @__PURE__ */ s("span", { className: "text-sm font-semibold text-slate-900", children: r })
25
+ ] })
26
+ }
27
+ );
28
+ return t && !e ? /* @__PURE__ */ s("li", { className: "flex flex-col", children: /* @__PURE__ */ c("a", { href: t, className: "no-underline", children: [
29
+ o,
30
+ /* @__PURE__ */ s("span", { className: "text-sm font-semibold text-slate-900 truncate", children: r })
31
+ ] }) }) : /* @__PURE__ */ c("li", { className: "flex flex-col", children: [
32
+ o,
33
+ !e && /* @__PURE__ */ s("span", { className: "text-sm font-semibold text-slate-900 truncate", children: r })
34
+ ] });
35
+ }, u = ({
36
+ items: a,
37
+ columns: n = 4,
38
+ gap: r = 36,
39
+ onItemClick: l,
40
+ className: t
41
+ }) => /* @__PURE__ */ s(
42
+ "ul",
43
+ {
44
+ className: i(
45
+ "list-none m-0 p-0 grid",
46
+ d[n],
47
+ t
48
+ ),
49
+ style: { gap: `14px ${r}px` },
50
+ children: a.map((e) => /* @__PURE__ */ s(
51
+ p,
52
+ {
53
+ item: e,
54
+ onClick: () => l == null ? void 0 : l(e)
55
+ },
56
+ e.id || e.name
57
+ ))
58
+ }
59
+ );
60
+ export {
61
+ u as ImageGrid
62
+ };
63
+ //# sourceMappingURL=index31.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index31.js","sources":["../src/components/ImageGrid/ImageGrid.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { PlusIcon } from '@heroicons/react/24/outline'\n\nexport interface ImageGridItem {\n id?: string\n name: string\n image?: string\n url?: string\n isTemplate?: boolean\n}\n\nexport interface ImageGridProps {\n items: ImageGridItem[]\n columns?: 2 | 3 | 4 | 5 | 6\n gap?: number\n onItemClick?: (item: ImageGridItem) => void\n className?: string\n}\n\nconst columnStyles = {\n 2: 'grid-cols-2',\n 3: 'grid-cols-3',\n 4: 'grid-cols-4',\n 5: 'grid-cols-5',\n 6: 'grid-cols-6',\n}\n\nexport interface ImageGridItemProps {\n item: ImageGridItem\n onClick?: () => void\n}\n\nconst ImageGridItemComponent = ({ item, onClick }: ImageGridItemProps) => {\n const { name, image, url, isTemplate } = item\n\n const imageContent = (\n <div\n className={cn(\n 'aspect-video rounded overflow-hidden mb-1.5 cursor-pointer',\n 'bg-cover bg-center bg-no-repeat',\n 'flex items-center justify-center',\n isTemplate ? 'bg-primary-50' : 'bg-slate-200'\n )}\n style={image && !isTemplate ? { backgroundImage: `url(${image})` } : undefined}\n onClick={onClick}\n >\n {isTemplate && (\n <div className=\"flex flex-col items-center gap-2\">\n <PlusIcon className=\"w-8 h-8 text-primary-500\" />\n <span className=\"text-sm font-semibold text-slate-900\">{name}</span>\n </div>\n )}\n </div>\n )\n\n if (url && !isTemplate) {\n return (\n <li className=\"flex flex-col\">\n <a href={url} className=\"no-underline\">\n {imageContent}\n <span className=\"text-sm font-semibold text-slate-900 truncate\">\n {name}\n </span>\n </a>\n </li>\n )\n }\n\n return (\n <li className=\"flex flex-col\">\n {imageContent}\n {!isTemplate && (\n <span className=\"text-sm font-semibold text-slate-900 truncate\">\n {name}\n </span>\n )}\n </li>\n )\n}\n\nexport const ImageGrid = ({\n items,\n columns = 4,\n gap = 36,\n onItemClick,\n className,\n}: ImageGridProps) => {\n return (\n <ul\n className={cn(\n 'list-none m-0 p-0 grid',\n columnStyles[columns],\n className\n )}\n style={{ gap: `14px ${gap}px` }}\n >\n {items.map((item) => (\n <ImageGridItemComponent\n key={item.id || item.name}\n item={item}\n onClick={() => onItemClick?.(item)}\n />\n ))}\n </ul>\n )\n}\n"],"names":["columnStyles","ImageGridItemComponent","item","onClick","name","image","url","isTemplate","imageContent","jsx","cn","jsxs","PlusIcon","ImageGrid","items","columns","gap","onItemClick","className"],"mappings":";;;AAmBA,MAAMA,IAAe;AAAA,EACnB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL,GAOMC,IAAyB,CAAC,EAAE,MAAAC,GAAM,SAAAC,QAAkC;AACxE,QAAM,EAAE,MAAAC,GAAM,OAAAC,GAAO,KAAAC,GAAK,YAAAC,MAAeL,GAEnCM,IACJ,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAH,IAAa,kBAAkB;AAAA,MAAA;AAAA,MAEjC,OAAOF,KAAS,CAACE,IAAa,EAAE,iBAAiB,OAAOF,CAAK,IAAA,IAAQ;AAAA,MACrE,SAAAF;AAAA,MAEC,UAAAI,KACC,gBAAAI,EAAC,OAAA,EAAI,WAAU,oCACb,UAAA;AAAA,QAAA,gBAAAF,EAACG,GAAA,EAAS,WAAU,2BAAA,CAA2B;AAAA,QAC/C,gBAAAH,EAAC,QAAA,EAAK,WAAU,wCAAwC,UAAAL,EAAA,CAAK;AAAA,MAAA,EAAA,CAC/D;AAAA,IAAA;AAAA,EAAA;AAKN,SAAIE,KAAO,CAACC,IAER,gBAAAE,EAAC,QAAG,WAAU,iBACZ,4BAAC,KAAA,EAAE,MAAMH,GAAK,WAAU,gBACrB,UAAA;AAAA,IAAAE;AAAA,IACD,gBAAAC,EAAC,QAAA,EAAK,WAAU,iDACb,UAAAL,EAAA,CACH;AAAA,EAAA,EAAA,CACF,EAAA,CACF,IAKF,gBAAAO,EAAC,MAAA,EAAG,WAAU,iBACX,UAAA;AAAA,IAAAH;AAAA,IACA,CAACD,KACA,gBAAAE,EAAC,QAAA,EAAK,WAAU,iDACb,UAAAL,EAAA,CACH;AAAA,EAAA,GAEJ;AAEJ,GAEaS,IAAY,CAAC;AAAA,EACxB,OAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,KAAAC,IAAM;AAAA,EACN,aAAAC;AAAA,EACA,WAAAC;AACF,MAEI,gBAAAT;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAV,EAAae,CAAO;AAAA,MACpBG;AAAA,IAAA;AAAA,IAEF,OAAO,EAAE,KAAK,QAAQF,CAAG,KAAA;AAAA,IAExB,UAAAF,EAAM,IAAI,CAACZ,MACV,gBAAAO;AAAA,MAACR;AAAA,MAAA;AAAA,QAEC,MAAAC;AAAA,QACA,SAAS,MAAMe,KAAA,gBAAAA,EAAcf;AAAA,MAAI;AAAA,MAF5BA,EAAK,MAAMA,EAAK;AAAA,IAAA,CAIxB;AAAA,EAAA;AAAA;"}
@@ -0,0 +1,48 @@
1
+ import { jsxs as e, jsx as t, Fragment as o } from "react/jsx-runtime";
2
+ import { cn as r } from "./index3.js";
3
+ const h = ({
4
+ image: i,
5
+ progress: a,
6
+ url: l,
7
+ className: s
8
+ }) => {
9
+ const n = l || i, d = a >= 100 || !!l;
10
+ return /* @__PURE__ */ e(
11
+ "div",
12
+ {
13
+ className: r(
14
+ "relative aspect-square rounded-lg overflow-hidden bg-slate-200",
15
+ s
16
+ ),
17
+ children: [
18
+ /* @__PURE__ */ t(
19
+ "div",
20
+ {
21
+ className: "absolute inset-0 bg-cover bg-center",
22
+ style: { backgroundImage: `url(${n})` }
23
+ }
24
+ ),
25
+ !d && /* @__PURE__ */ e(o, { children: [
26
+ /* @__PURE__ */ t("div", { className: "absolute inset-0 bg-black/50" }),
27
+ /* @__PURE__ */ e("div", { className: "absolute inset-x-4 top-1/2 -translate-y-1/2", children: [
28
+ /* @__PURE__ */ t("div", { className: "h-1.5 bg-white/30 rounded-full overflow-hidden", children: /* @__PURE__ */ t(
29
+ "div",
30
+ {
31
+ className: "h-full bg-white rounded-full transition-all duration-300",
32
+ style: { width: `${Math.min(a, 100)}%` }
33
+ }
34
+ ) }),
35
+ /* @__PURE__ */ e("div", { className: "text-center text-white text-xs mt-2 font-medium", children: [
36
+ Math.round(a),
37
+ "%"
38
+ ] })
39
+ ] })
40
+ ] })
41
+ ]
42
+ }
43
+ );
44
+ };
45
+ export {
46
+ h as ImageUploading
47
+ };
48
+ //# sourceMappingURL=index32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index32.js","sources":["../src/components/ImageUploading/ImageUploading.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\n\nexport interface ImageUploadingProps {\n image: string\n progress: number\n url?: string\n className?: string\n}\n\nexport const ImageUploading = ({\n image,\n progress,\n url,\n className,\n}: ImageUploadingProps) => {\n const displayImage = url || image\n const isComplete = progress >= 100 || !!url\n\n return (\n <div\n className={cn(\n 'relative aspect-square rounded-lg overflow-hidden bg-slate-200',\n className\n )}\n >\n {/* Background Image */}\n <div\n className=\"absolute inset-0 bg-cover bg-center\"\n style={{ backgroundImage: `url(${displayImage})` }}\n />\n\n {/* Loading Overlay */}\n {!isComplete && (\n <>\n <div className=\"absolute inset-0 bg-black/50\" />\n\n {/* Progress Bar */}\n <div className=\"absolute inset-x-4 top-1/2 -translate-y-1/2\">\n <div className=\"h-1.5 bg-white/30 rounded-full overflow-hidden\">\n <div\n className=\"h-full bg-white rounded-full transition-all duration-300\"\n style={{ width: `${Math.min(progress, 100)}%` }}\n />\n </div>\n <div className=\"text-center text-white text-xs mt-2 font-medium\">\n {Math.round(progress)}%\n </div>\n </div>\n </>\n )}\n </div>\n )\n}\n"],"names":["ImageUploading","image","progress","url","className","displayImage","isComplete","jsxs","cn","jsx","Fragment"],"mappings":";;AASO,MAAMA,IAAiB,CAAC;AAAA,EAC7B,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,KAAAC;AAAA,EACA,WAAAC;AACF,MAA2B;AACzB,QAAMC,IAAeF,KAAOF,GACtBK,IAAaJ,KAAY,OAAO,CAAC,CAACC;AAExC,SACE,gBAAAI;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAIF,UAAA;AAAA,QAAA,gBAAAK;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,iBAAiB,OAAOJ,CAAY,IAAA;AAAA,UAAI;AAAA,QAAA;AAAA,QAIlD,CAACC,KACA,gBAAAC,EAAAG,GAAA,EACE,UAAA;AAAA,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,+BAAA,CAA+B;AAAA,UAG9C,gBAAAF,EAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,YAAA,gBAAAE,EAAC,OAAA,EAAI,WAAU,kDACb,UAAA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO,EAAE,OAAO,GAAG,KAAK,IAAIP,GAAU,GAAG,CAAC,IAAA;AAAA,cAAI;AAAA,YAAA,GAElD;AAAA,YACA,gBAAAK,EAAC,OAAA,EAAI,WAAU,mDACZ,UAAA;AAAA,cAAA,KAAK,MAAML,CAAQ;AAAA,cAAE;AAAA,YAAA,EAAA,CACxB;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -0,0 +1,51 @@
1
+ import { jsxs as l, jsx as s } from "react/jsx-runtime";
2
+ import { forwardRef as m } from "react";
3
+ import { cn as d } from "./index3.js";
4
+ const u = m(
5
+ ({ className: i, label: t, error: e, helperText: o, id: a, ...n }, c) => {
6
+ const r = a || (t == null ? void 0 : t.toLowerCase().replace(/\s+/g, "-"));
7
+ return /* @__PURE__ */ l("div", { className: "w-full", children: [
8
+ t && /* @__PURE__ */ s(
9
+ "label",
10
+ {
11
+ htmlFor: r,
12
+ className: "block text-sm font-medium text-slate-700 mb-1.5",
13
+ children: t
14
+ }
15
+ ),
16
+ /* @__PURE__ */ s(
17
+ "input",
18
+ {
19
+ ref: c,
20
+ id: r,
21
+ className: d(
22
+ "w-full px-4 py-2.5 text-base",
23
+ "bg-white border rounded-lg",
24
+ "transition-colors duration-200",
25
+ "placeholder:text-slate-400",
26
+ "focus:outline-none focus:ring-2 focus:ring-offset-0",
27
+ e ? "border-red-500 focus:border-red-500 focus:ring-red-500" : "border-slate-300 focus:border-primary-500 focus:ring-primary-500",
28
+ "disabled:bg-slate-50 disabled:text-slate-500 disabled:cursor-not-allowed",
29
+ i
30
+ ),
31
+ ...n
32
+ }
33
+ ),
34
+ (e || o) && /* @__PURE__ */ s(
35
+ "p",
36
+ {
37
+ className: d(
38
+ "mt-1.5 text-sm",
39
+ e ? "text-red-600" : "text-slate-500"
40
+ ),
41
+ children: e || o
42
+ }
43
+ )
44
+ ] });
45
+ }
46
+ );
47
+ u.displayName = "Input";
48
+ export {
49
+ u as Input
50
+ };
51
+ //# sourceMappingURL=index33.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index33.js","sources":["../src/components/Input/Input.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes } from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n label?: string\n error?: string\n helperText?: string\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, label, error, helperText, id, ...props }, ref) => {\n const inputId = id || label?.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n htmlFor={inputId}\n className=\"block text-sm font-medium text-slate-700 mb-1.5\"\n >\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={cn(\n 'w-full px-4 py-2.5 text-base',\n 'bg-white border rounded-lg',\n 'transition-colors duration-200',\n 'placeholder:text-slate-400',\n 'focus:outline-none focus:ring-2 focus:ring-offset-0',\n error\n ? 'border-red-500 focus:border-red-500 focus:ring-red-500'\n : 'border-slate-300 focus:border-primary-500 focus:ring-primary-500',\n 'disabled:bg-slate-50 disabled:text-slate-500 disabled:cursor-not-allowed',\n className\n )}\n {...props}\n />\n {(error || helperText) && (\n <p\n className={cn(\n 'mt-1.5 text-sm',\n error ? 'text-red-600' : 'text-slate-500'\n )}\n >\n {error || helperText}\n </p>\n )}\n </div>\n )\n }\n)\n\nInput.displayName = 'Input'\n"],"names":["Input","forwardRef","className","label","error","helperText","id","props","ref","inputId","jsxs","jsx","cn"],"mappings":";;;AASO,MAAMA,IAAQC;AAAA,EACnB,CAAC,EAAE,WAAAC,GAAW,OAAAC,GAAO,OAAAC,GAAO,YAAAC,GAAY,IAAAC,GAAI,GAAGC,EAAA,GAASC,MAAQ;AAC9D,UAAMC,IAAUH,MAAMH,KAAA,gBAAAA,EAAO,cAAc,QAAQ,QAAQ;AAE3D,WACE,gBAAAO,EAAC,OAAA,EAAI,WAAU,UACZ,UAAA;AAAA,MAAAP,KACC,gBAAAQ;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAASF;AAAA,UACT,WAAU;AAAA,UAET,UAAAN;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,gBAAAQ;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAH;AAAA,UACA,IAAIC;AAAA,UACJ,WAAWG;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACAR,IACI,2DACA;AAAA,YACJ;AAAA,YACAF;AAAA,UAAA;AAAA,UAED,GAAGK;AAAA,QAAA;AAAA,MAAA;AAAA,OAEJH,KAASC,MACT,gBAAAM;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWC;AAAA,YACT;AAAA,YACAR,IAAQ,iBAAiB;AAAA,UAAA;AAAA,UAG1B,UAAAA,KAASC;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ,GAEJ;AAAA,EAEJ;AACF;AAEAL,EAAM,cAAc;"}
@@ -0,0 +1,55 @@
1
+ import { jsx as e, jsxs as h, Fragment as f } from "react/jsx-runtime";
2
+ import { cn as n } from "./index3.js";
3
+ const v = {
4
+ default: "text-slate-700 hover:text-slate-900",
5
+ primary: "text-primary-500 hover:text-primary-600",
6
+ muted: "text-slate-500 hover:text-slate-600"
7
+ }, b = ({
8
+ label: i,
9
+ href: r,
10
+ onClick: o,
11
+ leftIcon: l,
12
+ rightIcon: c,
13
+ variant: m = "default",
14
+ underline: p = !0,
15
+ disabled: t = !1,
16
+ target: u,
17
+ rel: x,
18
+ className: d
19
+ }) => {
20
+ const s = n(
21
+ "inline-flex items-center gap-2 transition-colors",
22
+ v[m],
23
+ p && "hover:underline",
24
+ t && "opacity-50 cursor-not-allowed pointer-events-none",
25
+ d
26
+ ), a = /* @__PURE__ */ h(f, { children: [
27
+ l,
28
+ /* @__PURE__ */ e("span", { children: i }),
29
+ c
30
+ ] });
31
+ return r && !t ? /* @__PURE__ */ e(
32
+ "a",
33
+ {
34
+ href: r,
35
+ target: u,
36
+ rel: x,
37
+ className: n(s, "no-underline"),
38
+ onClick: o,
39
+ children: a
40
+ }
41
+ ) : /* @__PURE__ */ e(
42
+ "button",
43
+ {
44
+ type: "button",
45
+ onClick: o,
46
+ disabled: t,
47
+ className: n(s, "bg-transparent border-none cursor-pointer p-0"),
48
+ children: a
49
+ }
50
+ );
51
+ };
52
+ export {
53
+ b as LinkButton
54
+ };
55
+ //# sourceMappingURL=index34.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index34.js","sources":["../src/components/LinkButton/LinkButton.tsx"],"sourcesContent":["import { type ReactNode } from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface LinkButtonProps {\n label: string\n href?: string\n onClick?: () => void\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n variant?: 'default' | 'primary' | 'muted'\n underline?: boolean\n disabled?: boolean\n target?: string\n rel?: string\n className?: string\n}\n\nconst variantStyles = {\n default: 'text-slate-700 hover:text-slate-900',\n primary: 'text-primary-500 hover:text-primary-600',\n muted: 'text-slate-500 hover:text-slate-600',\n}\n\nexport const LinkButton = ({\n label,\n href,\n onClick,\n leftIcon,\n rightIcon,\n variant = 'default',\n underline = true,\n disabled = false,\n target,\n rel,\n className,\n}: LinkButtonProps) => {\n const commonClasses = cn(\n 'inline-flex items-center gap-2 transition-colors',\n variantStyles[variant],\n underline && 'hover:underline',\n disabled && 'opacity-50 cursor-not-allowed pointer-events-none',\n className\n )\n\n const content = (\n <>\n {leftIcon}\n <span>{label}</span>\n {rightIcon}\n </>\n )\n\n if (href && !disabled) {\n return (\n <a\n href={href}\n target={target}\n rel={rel}\n className={cn(commonClasses, 'no-underline')}\n onClick={onClick}\n >\n {content}\n </a>\n )\n }\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n disabled={disabled}\n className={cn(commonClasses, 'bg-transparent border-none cursor-pointer p-0')}\n >\n {content}\n </button>\n )\n}\n"],"names":["variantStyles","LinkButton","label","href","onClick","leftIcon","rightIcon","variant","underline","disabled","target","rel","className","commonClasses","cn","content","jsxs","Fragment","jsx"],"mappings":";;AAiBA,MAAMA,IAAgB;AAAA,EACpB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT,GAEaC,IAAa,CAAC;AAAA,EACzB,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,UAAAC,IAAW;AAAA,EACX,QAAAC;AAAA,EACA,KAAAC;AAAA,EACA,WAAAC;AACF,MAAuB;AACrB,QAAMC,IAAgBC;AAAA,IACpB;AAAA,IACAd,EAAcO,CAAO;AAAA,IACrBC,KAAa;AAAA,IACbC,KAAY;AAAA,IACZG;AAAA,EAAA,GAGIG,IACJ,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAZ;AAAA,IACD,gBAAAa,EAAC,UAAM,UAAAhB,EAAA,CAAM;AAAA,IACZI;AAAA,EAAA,GACH;AAGF,SAAIH,KAAQ,CAACM,IAET,gBAAAS;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAAf;AAAA,MACA,QAAAO;AAAA,MACA,KAAAC;AAAA,MACA,WAAWG,EAAGD,GAAe,cAAc;AAAA,MAC3C,SAAAT;AAAA,MAEC,UAAAW;AAAA,IAAA;AAAA,EAAA,IAML,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAAd;AAAA,MACA,UAAAK;AAAA,MACA,WAAWK,EAAGD,GAAe,+CAA+C;AAAA,MAE3E,UAAAE;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -0,0 +1,31 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { cn as a } from "./index3.js";
3
+ const n = {
4
+ sm: "h-4 w-4 border-2",
5
+ md: "h-6 w-6 border-2",
6
+ lg: "h-8 w-8 border-3"
7
+ }, d = {
8
+ primary: "border-primary-500 border-t-transparent",
9
+ white: "border-white border-t-transparent",
10
+ current: "border-current border-t-transparent"
11
+ };
12
+ function l({ size: e = "md", color: o = "primary", className: t }) {
13
+ return /* @__PURE__ */ r(
14
+ "div",
15
+ {
16
+ className: a(
17
+ "animate-spin rounded-full",
18
+ n[e],
19
+ d[o],
20
+ t
21
+ ),
22
+ role: "status",
23
+ "aria-label": "Loading",
24
+ children: /* @__PURE__ */ r("span", { className: "sr-only", children: "Loading..." })
25
+ }
26
+ );
27
+ }
28
+ export {
29
+ l as Loader
30
+ };
31
+ //# sourceMappingURL=index35.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index35.js","sources":["../src/components/Loader/Loader.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\n\nexport interface LoaderProps {\n size?: 'sm' | 'md' | 'lg'\n color?: 'primary' | 'white' | 'current'\n className?: string\n}\n\nconst sizeStyles = {\n sm: 'h-4 w-4 border-2',\n md: 'h-6 w-6 border-2',\n lg: 'h-8 w-8 border-3',\n}\n\nconst colorStyles = {\n primary: 'border-primary-500 border-t-transparent',\n white: 'border-white border-t-transparent',\n current: 'border-current border-t-transparent',\n}\n\nexport function Loader({ size = 'md', color = 'primary', className }: LoaderProps) {\n return (\n <div\n className={cn(\n 'animate-spin rounded-full',\n sizeStyles[size],\n colorStyles[color],\n className\n )}\n role=\"status\"\n aria-label=\"Loading\"\n >\n <span className=\"sr-only\">Loading...</span>\n </div>\n )\n}\n"],"names":["sizeStyles","colorStyles","Loader","size","color","className","jsx","cn"],"mappings":";;AAQA,MAAMA,IAAa;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,IAAc;AAAA,EAClB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AACX;AAEO,SAASC,EAAO,EAAE,MAAAC,IAAO,MAAM,OAAAC,IAAQ,WAAW,WAAAC,KAA0B;AACjF,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAP,EAAWG,CAAI;AAAA,QACfF,EAAYG,CAAK;AAAA,QACjBC;AAAA,MAAA;AAAA,MAEF,MAAK;AAAA,MACL,cAAW;AAAA,MAEX,UAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,aAAA,CAAU;AAAA,IAAA;AAAA,EAAA;AAG1C;"}
@@ -0,0 +1,57 @@
1
+ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
+ import { Fragment as a } from "react";
3
+ import { Transition as n, Dialog as s, TransitionChild as o, DialogPanel as c } from "@headlessui/react";
4
+ import { cn as d } from "./index3.js";
5
+ import { Loader as m } from "./index35.js";
6
+ function y({
7
+ open: r,
8
+ message: t = "Please wait...",
9
+ className: l
10
+ }) {
11
+ return /* @__PURE__ */ e(n, { show: r, as: a, children: /* @__PURE__ */ i(s, { onClose: () => {
12
+ }, className: "relative z-50", children: [
13
+ /* @__PURE__ */ e(
14
+ o,
15
+ {
16
+ as: a,
17
+ enter: "ease-out duration-300",
18
+ enterFrom: "opacity-0",
19
+ enterTo: "opacity-100",
20
+ leave: "ease-in duration-200",
21
+ leaveFrom: "opacity-100",
22
+ leaveTo: "opacity-0",
23
+ children: /* @__PURE__ */ e("div", { className: "fixed inset-0 bg-black/50", "aria-hidden": "true" })
24
+ }
25
+ ),
26
+ /* @__PURE__ */ e("div", { className: "fixed inset-0 flex items-center justify-center p-4", children: /* @__PURE__ */ e(
27
+ o,
28
+ {
29
+ as: a,
30
+ enter: "ease-out duration-300",
31
+ enterFrom: "opacity-0 scale-95",
32
+ enterTo: "opacity-100 scale-100",
33
+ leave: "ease-in duration-200",
34
+ leaveFrom: "opacity-100 scale-100",
35
+ leaveTo: "opacity-0 scale-95",
36
+ children: /* @__PURE__ */ e(
37
+ c,
38
+ {
39
+ className: d(
40
+ "w-full max-w-xs bg-white rounded-2xl shadow-xl p-8",
41
+ "transform transition-all",
42
+ l
43
+ ),
44
+ children: /* @__PURE__ */ i("div", { className: "flex flex-col items-center gap-4", children: [
45
+ /* @__PURE__ */ e(m, { size: "lg" }),
46
+ t && /* @__PURE__ */ e("p", { className: "text-sm text-slate-600 text-center", children: t })
47
+ ] })
48
+ }
49
+ )
50
+ }
51
+ ) })
52
+ ] }) });
53
+ }
54
+ export {
55
+ y as LoadingModal
56
+ };
57
+ //# sourceMappingURL=index36.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index36.js","sources":["../src/components/LoadingModal/LoadingModal.tsx"],"sourcesContent":["import { Fragment } from 'react'\nimport {\n Dialog,\n DialogPanel,\n Transition,\n TransitionChild,\n} from '@headlessui/react'\nimport { cn } from '@/lib/utils'\nimport { Loader } from '../Loader/Loader'\n\nexport interface LoadingModalProps {\n open: boolean\n message?: string\n className?: string\n}\n\nexport function LoadingModal({\n open,\n message = 'Please wait...',\n className,\n}: LoadingModalProps) {\n // Non-dismissible - empty onClose handler\n const handleClose = () => {}\n\n return (\n <Transition show={open} as={Fragment}>\n <Dialog onClose={handleClose} className=\"relative z-50\">\n {/* Backdrop */}\n <TransitionChild\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div className=\"fixed inset-0 bg-black/50\" aria-hidden=\"true\" />\n </TransitionChild>\n\n {/* Modal */}\n <div className=\"fixed inset-0 flex items-center justify-center p-4\">\n <TransitionChild\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0 scale-95\"\n enterTo=\"opacity-100 scale-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100 scale-100\"\n leaveTo=\"opacity-0 scale-95\"\n >\n <DialogPanel\n className={cn(\n 'w-full max-w-xs bg-white rounded-2xl shadow-xl p-8',\n 'transform transition-all',\n className\n )}\n >\n <div className=\"flex flex-col items-center gap-4\">\n <Loader size=\"lg\" />\n {message && (\n <p className=\"text-sm text-slate-600 text-center\">{message}</p>\n )}\n </div>\n </DialogPanel>\n </TransitionChild>\n </div>\n </Dialog>\n </Transition>\n )\n}\n"],"names":["LoadingModal","open","message","className","jsx","Transition","Fragment","jsxs","Dialog","TransitionChild","DialogPanel","cn","Loader"],"mappings":";;;;;AAgBO,SAASA,EAAa;AAAA,EAC3B,MAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,WAAAC;AACF,GAAsB;AAIpB,SACE,gBAAAC,EAACC,GAAA,EAAW,MAAMJ,GAAM,IAAIK,GAC1B,UAAA,gBAAAC,EAACC,GAAA,EAAO,SAJQ,MAAM;AAAA,EAAC,GAIO,WAAU,iBAEtC,UAAA;AAAA,IAAA,gBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAIH;AAAA,QACJ,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAQ;AAAA,QACR,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAQ;AAAA,QAER,UAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,6BAA4B,eAAY,OAAA,CAAO;AAAA,MAAA;AAAA,IAAA;AAAA,IAIhE,gBAAAA,EAAC,OAAA,EAAI,WAAU,sDACb,UAAA,gBAAAA;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,IAAIH;AAAA,QACJ,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAQ;AAAA,QACR,OAAM;AAAA,QACN,WAAU;AAAA,QACV,SAAQ;AAAA,QAER,UAAA,gBAAAF;AAAA,UAACM;AAAA,UAAA;AAAA,YACC,WAAWC;AAAA,cACT;AAAA,cACA;AAAA,cACAR;AAAA,YAAA;AAAA,YAGF,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,oCACb,UAAA;AAAA,cAAA,gBAAAH,EAACQ,GAAA,EAAO,MAAK,KAAA,CAAK;AAAA,cACjBV,KACC,gBAAAE,EAAC,KAAA,EAAE,WAAU,sCAAsC,UAAAF,EAAA,CAAQ;AAAA,YAAA,EAAA,CAE/D;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,EACF,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;"}
@@ -0,0 +1,52 @@
1
+ import { jsx as l, jsxs as i } from "react/jsx-runtime";
2
+ import { cn as e } from "./index3.js";
3
+ const d = ({
4
+ size: r = 32,
5
+ className: t
6
+ }) => /* @__PURE__ */ l(
7
+ "div",
8
+ {
9
+ className: e("text-primary-500 animate-pulse", t),
10
+ style: { width: r, height: r },
11
+ children: /* @__PURE__ */ i(
12
+ "svg",
13
+ {
14
+ width: "100%",
15
+ height: "100%",
16
+ viewBox: "0 0 26 38",
17
+ fill: "none",
18
+ xmlns: "http://www.w3.org/2000/svg",
19
+ children: [
20
+ /* @__PURE__ */ i("g", { clipPath: "url(#clip0_logo_loader)", children: [
21
+ /* @__PURE__ */ l(
22
+ "path",
23
+ {
24
+ d: "M3.20184 20.0024C3.18659 14.7589 3.20184 14.0649 3.20184 13.3401C3.20184 7.66477 7.66916 3.31575 13.0208 3.31575C18.3724 3.31575 22.6568 7.92695 22.6568 13.6023C22.6568 14.6047 22.6568 15.4067 22.6568 16.4245L25.8281 17.9513C25.8281 16.5325 25.8281 15.0519 25.8281 13.6023C25.8281 6.09172 20.1106 0 13.0208 0C5.94627 0 0 6.15341 0 13.6485C0 14.7898 0 16.1469 0 21.6834L3.20184 20.0024Z",
25
+ fill: "currentColor"
26
+ }
27
+ ),
28
+ /* @__PURE__ */ l(
29
+ "path",
30
+ {
31
+ d: "M12.8988 13.0471L0 19.0617V22.6242L12.8988 16.5016L22.5653 22.0381V34.7305H22.1537H17.0765H16.0549V38H17.0765H22.1537H25.8129V19.9099L12.8988 13.0471Z",
32
+ fill: "currentColor"
33
+ }
34
+ ),
35
+ /* @__PURE__ */ l(
36
+ "path",
37
+ {
38
+ d: "M10.9015 34.7305H7.07453H3.24758V23.1485L0 24.7679V38H23.7698V34.7305H10.9015Z",
39
+ fill: "currentColor"
40
+ }
41
+ )
42
+ ] }),
43
+ /* @__PURE__ */ l("defs", { children: /* @__PURE__ */ l("clipPath", { id: "clip0_logo_loader", children: /* @__PURE__ */ l("rect", { width: "26", height: "38", fill: "white" }) }) })
44
+ ]
45
+ }
46
+ )
47
+ }
48
+ );
49
+ export {
50
+ d as LogoLoader
51
+ };
52
+ //# sourceMappingURL=index37.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index37.js","sources":["../src/components/LogoLoader/LogoLoader.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\n\nexport interface LogoLoaderProps {\n size?: number\n className?: string\n}\n\nexport const LogoLoader = ({\n size = 32,\n className,\n}: LogoLoaderProps) => {\n return (\n <div\n className={cn('text-primary-500 animate-pulse', className)}\n style={{ width: size, height: size }}\n >\n <svg\n width=\"100%\"\n height=\"100%\"\n viewBox=\"0 0 26 38\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_logo_loader)\">\n <path\n d=\"M3.20184 20.0024C3.18659 14.7589 3.20184 14.0649 3.20184 13.3401C3.20184 7.66477 7.66916 3.31575 13.0208 3.31575C18.3724 3.31575 22.6568 7.92695 22.6568 13.6023C22.6568 14.6047 22.6568 15.4067 22.6568 16.4245L25.8281 17.9513C25.8281 16.5325 25.8281 15.0519 25.8281 13.6023C25.8281 6.09172 20.1106 0 13.0208 0C5.94627 0 0 6.15341 0 13.6485C0 14.7898 0 16.1469 0 21.6834L3.20184 20.0024Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.8988 13.0471L0 19.0617V22.6242L12.8988 16.5016L22.5653 22.0381V34.7305H22.1537H17.0765H16.0549V38H17.0765H22.1537H25.8129V19.9099L12.8988 13.0471Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M10.9015 34.7305H7.07453H3.24758V23.1485L0 24.7679V38H23.7698V34.7305H10.9015Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_logo_loader\">\n <rect width=\"26\" height=\"38\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n )\n}\n"],"names":["LogoLoader","size","className","jsx","cn","jsxs"],"mappings":";;AAOO,MAAMA,IAAa,CAAC;AAAA,EACzB,MAAAC,IAAO;AAAA,EACP,WAAAC;AACF,MAEI,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC,EAAG,kCAAkCF,CAAS;AAAA,IACzD,OAAO,EAAE,OAAOD,GAAM,QAAQA,EAAA;AAAA,IAE9B,UAAA,gBAAAI;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAM;AAAA,QACN,QAAO;AAAA,QACP,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,OAAM;AAAA,QAEN,UAAA;AAAA,UAAA,gBAAAA,EAAC,KAAA,EAAE,UAAS,2BACV,UAAA;AAAA,YAAA,gBAAAF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,GAAE;AAAA,gBACF,MAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAEP,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,GAAE;AAAA,gBACF,MAAK;AAAA,cAAA;AAAA,YAAA;AAAA,YAEP,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,GAAE;AAAA,gBACF,MAAK;AAAA,cAAA;AAAA,YAAA;AAAA,UACP,GACF;AAAA,UACA,gBAAAA,EAAC,QAAA,EACC,UAAA,gBAAAA,EAAC,YAAA,EAAS,IAAG,qBACX,UAAA,gBAAAA,EAAC,QAAA,EAAK,OAAM,MAAK,QAAO,MAAK,MAAK,SAAQ,GAC5C,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAAA;"}
@@ -0,0 +1,16 @@
1
+ import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
+ import { cn as a } from "./index3.js";
3
+ const l = ({
4
+ title: s,
5
+ text: r,
6
+ label: t,
7
+ className: i
8
+ }) => /* @__PURE__ */ m("div", { className: a("relative py-4 px-4", i), children: [
9
+ /* @__PURE__ */ e("div", { className: "text-sm font-semibold text-slate-500 mb-1", children: s }),
10
+ /* @__PURE__ */ e("div", { className: "text-sm text-primary-500", children: r }),
11
+ t && /* @__PURE__ */ e("div", { className: "absolute right-4 top-4 text-sm text-green-500", children: t })
12
+ ] });
13
+ export {
14
+ l as MenuText
15
+ };
16
+ //# sourceMappingURL=index38.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index38.js","sources":["../src/components/MenuText/MenuText.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\n\nexport interface MenuTextProps {\n title: string\n text: string\n label?: string\n className?: string\n}\n\nexport const MenuText = ({\n title,\n text,\n label,\n className,\n}: MenuTextProps) => {\n return (\n <div className={cn('relative py-4 px-4', className)}>\n <div className=\"text-sm font-semibold text-slate-500 mb-1\">\n {title}\n </div>\n <div className=\"text-sm text-primary-500\">\n {text}\n </div>\n {label && (\n <div className=\"absolute right-4 top-4 text-sm text-green-500\">\n {label}\n </div>\n )}\n </div>\n )\n}\n"],"names":["MenuText","title","text","label","className","cn","jsx"],"mappings":";;AASO,MAAMA,IAAW,CAAC;AAAA,EACvB,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AACF,wBAEK,OAAA,EAAI,WAAWC,EAAG,sBAAsBD,CAAS,GAChD,UAAA;AAAA,EAAA,gBAAAE,EAAC,OAAA,EAAI,WAAU,6CACZ,UAAAL,GACH;AAAA,EACA,gBAAAK,EAAC,OAAA,EAAI,WAAU,4BACZ,UAAAJ,GACH;AAAA,EACCC,KACC,gBAAAG,EAAC,OAAA,EAAI,WAAU,iDACZ,UAAAH,EAAA,CACH;AAAA,GAEJ;"}
@@ -0,0 +1,85 @@
1
+ import { jsx as e, jsxs as a } from "react/jsx-runtime";
2
+ import { Fragment as t } from "react";
3
+ import { Transition as d, Dialog as x, TransitionChild as r, DialogPanel as p, DialogTitle as u } from "@headlessui/react";
4
+ import { XMarkIcon as h } from "@heroicons/react/24/outline";
5
+ import { cn as l } from "./index3.js";
6
+ const f = {
7
+ sm: "max-w-sm",
8
+ md: "max-w-md",
9
+ lg: "max-w-lg",
10
+ xl: "max-w-xl",
11
+ "2xl": "max-w-2xl"
12
+ };
13
+ function N({
14
+ open: s,
15
+ onClose: i,
16
+ title: o,
17
+ children: n,
18
+ maxWidth: c = "md",
19
+ className: m
20
+ }) {
21
+ return /* @__PURE__ */ e(d, { show: s, as: t, children: /* @__PURE__ */ a(x, { onClose: i, className: "relative z-50", children: [
22
+ /* @__PURE__ */ e(
23
+ r,
24
+ {
25
+ as: t,
26
+ enter: "ease-out duration-300",
27
+ enterFrom: "opacity-0",
28
+ enterTo: "opacity-100",
29
+ leave: "ease-in duration-200",
30
+ leaveFrom: "opacity-100",
31
+ leaveTo: "opacity-0",
32
+ children: /* @__PURE__ */ e("div", { className: "fixed inset-0 bg-black/50", "aria-hidden": "true" })
33
+ }
34
+ ),
35
+ /* @__PURE__ */ e("div", { className: "fixed inset-0 flex items-center justify-center p-4", children: /* @__PURE__ */ e(
36
+ r,
37
+ {
38
+ as: t,
39
+ enter: "ease-out duration-300",
40
+ enterFrom: "opacity-0 scale-95",
41
+ enterTo: "opacity-100 scale-100",
42
+ leave: "ease-in duration-200",
43
+ leaveFrom: "opacity-100 scale-100",
44
+ leaveTo: "opacity-0 scale-95",
45
+ children: /* @__PURE__ */ a(
46
+ p,
47
+ {
48
+ className: l(
49
+ "w-full bg-white rounded-2xl shadow-xl",
50
+ "transform transition-all",
51
+ f[c],
52
+ m
53
+ ),
54
+ children: [
55
+ o && /* @__PURE__ */ a("div", { className: "flex items-center justify-between px-6 py-4 border-b border-slate-200", children: [
56
+ /* @__PURE__ */ e(u, { className: "text-lg font-semibold text-slate-900", children: o }),
57
+ /* @__PURE__ */ a(
58
+ "button",
59
+ {
60
+ type: "button",
61
+ onClick: i,
62
+ className: l(
63
+ "p-1 rounded-lg transition-colors duration-200",
64
+ "text-slate-400 hover:text-slate-600 hover:bg-slate-100",
65
+ "focus:outline-none focus:ring-2 focus:ring-primary-500"
66
+ ),
67
+ children: [
68
+ /* @__PURE__ */ e(h, { className: "h-5 w-5" }),
69
+ /* @__PURE__ */ e("span", { className: "sr-only", children: "Close" })
70
+ ]
71
+ }
72
+ )
73
+ ] }),
74
+ /* @__PURE__ */ e("div", { className: "p-6", children: n })
75
+ ]
76
+ }
77
+ )
78
+ }
79
+ ) })
80
+ ] }) });
81
+ }
82
+ export {
83
+ N as Modal
84
+ };
85
+ //# sourceMappingURL=index39.js.map