@dimasbaguspm/versaur 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/README.md +81 -0
  2. package/dist/alert-DzSPXqwS.js +167 -0
  3. package/dist/app-bar-B4nQkgdL.js +92 -0
  4. package/dist/avatar-Bsn24V6g.js +91 -0
  5. package/dist/badge-DqLCHm9q.js +184 -0
  6. package/dist/bottom-bar-DOQ3gVwW.js +73 -0
  7. package/dist/breadcrumbs-PJV3izUu.js +59 -0
  8. package/dist/button-C8OibEPE.js +81 -0
  9. package/dist/button-float-B8tdLJkX.js +107 -0
  10. package/dist/button-icon-CWji4cBA.js +89 -0
  11. package/dist/calendar-CkLj89o2.js +112 -0
  12. package/dist/checkbox-input-CSboebwt.js +167 -0
  13. package/dist/chip-input-C1PJPDFq.js +189 -0
  14. package/dist/cn-Ca4KprQ1.js +2730 -0
  15. package/dist/components/alert/alert.atoms.d.ts +6 -0
  16. package/dist/components/alert/alert.d.ts +31 -0
  17. package/dist/components/alert/alert.stories.d.ts +42 -0
  18. package/dist/components/alert/helpers.d.ts +14 -0
  19. package/dist/components/alert/index.d.ts +2 -0
  20. package/dist/components/alert/types.d.ts +50 -0
  21. package/dist/components/alert.js +4 -0
  22. package/dist/components/app-bar/app-bar.atoms.d.ts +21 -0
  23. package/dist/components/app-bar/app-bar.d.ts +8 -0
  24. package/dist/components/app-bar/app-bar.stories.d.ts +19 -0
  25. package/dist/components/app-bar/helpers.d.ts +6 -0
  26. package/dist/components/app-bar/index.d.ts +2 -0
  27. package/dist/components/app-bar/types.d.ts +39 -0
  28. package/dist/components/app-bar.js +4 -0
  29. package/dist/components/avatar/avatar.atoms.d.ts +13 -0
  30. package/dist/components/avatar/avatar.d.ts +24 -0
  31. package/dist/components/avatar/avatar.stories.d.ts +42 -0
  32. package/dist/components/avatar/helpers.d.ts +14 -0
  33. package/dist/components/avatar/index.d.ts +2 -0
  34. package/dist/components/avatar/types.d.ts +46 -0
  35. package/dist/components/avatar.js +4 -0
  36. package/dist/components/badge/badge.d.ts +24 -0
  37. package/dist/components/badge/badge.stories.d.ts +46 -0
  38. package/dist/components/badge/helpers.d.ts +10 -0
  39. package/dist/components/badge/index.d.ts +2 -0
  40. package/dist/components/badge/types.d.ts +44 -0
  41. package/dist/components/badge.js +4 -0
  42. package/dist/components/bottom-bar/bottom-bar.atoms.d.ts +2 -0
  43. package/dist/components/bottom-bar/bottom-bar.d.ts +4 -0
  44. package/dist/components/bottom-bar/bottom-bar.stories.d.ts +6 -0
  45. package/dist/components/bottom-bar/helpers.d.ts +7 -0
  46. package/dist/components/bottom-bar/index.d.ts +2 -0
  47. package/dist/components/bottom-bar/types.d.ts +32 -0
  48. package/dist/components/bottom-bar.js +4 -0
  49. package/dist/components/breadcrumbs/breadcrumbs.atoms.d.ts +9 -0
  50. package/dist/components/breadcrumbs/breadcrumbs.d.ts +16 -0
  51. package/dist/components/breadcrumbs/breadcrumbs.stories.d.ts +7 -0
  52. package/dist/components/breadcrumbs/helpers.d.ts +7 -0
  53. package/dist/components/breadcrumbs/index.d.ts +2 -0
  54. package/dist/components/breadcrumbs/types.d.ts +21 -0
  55. package/dist/components/breadcrumbs.js +4 -0
  56. package/dist/components/button/button.d.ts +3 -0
  57. package/dist/components/button/button.stories.d.ts +50 -0
  58. package/dist/components/button/index.d.ts +2 -0
  59. package/dist/components/button/types.d.ts +30 -0
  60. package/dist/components/button-float/button-float.d.ts +8 -0
  61. package/dist/components/button-float/button-float.stories.d.ts +27 -0
  62. package/dist/components/button-float/helpers.d.ts +4 -0
  63. package/dist/components/button-float/index.d.ts +2 -0
  64. package/dist/components/button-float/types.d.ts +31 -0
  65. package/dist/components/button-float.js +4 -0
  66. package/dist/components/button-icon/button-icon.d.ts +3 -0
  67. package/dist/components/button-icon/button-icon.stories.d.ts +45 -0
  68. package/dist/components/button-icon/index.d.ts +2 -0
  69. package/dist/components/button-icon/types.d.ts +48 -0
  70. package/dist/components/button-icon.js +4 -0
  71. package/dist/components/button.js +4 -0
  72. package/dist/components/calendar/calendar.d.ts +8 -0
  73. package/dist/components/calendar/calendar.stories.d.ts +6 -0
  74. package/dist/components/calendar/index.d.ts +2 -0
  75. package/dist/components/calendar/types.d.ts +20 -0
  76. package/dist/components/calendar.js +4 -0
  77. package/dist/components/checkbox-input/checkbox-input.atoms.d.ts +9 -0
  78. package/dist/components/checkbox-input/checkbox-input.d.ts +5 -0
  79. package/dist/components/checkbox-input/checkbox-input.stories.d.ts +44 -0
  80. package/dist/components/checkbox-input/context.d.ts +10 -0
  81. package/dist/components/checkbox-input/helpers.d.ts +11 -0
  82. package/dist/components/checkbox-input/index.d.ts +2 -0
  83. package/dist/components/checkbox-input/types.d.ts +46 -0
  84. package/dist/components/checkbox-input.js +4 -0
  85. package/dist/components/chip-input/chip-input.atoms.d.ts +10 -0
  86. package/dist/components/chip-input/chip-input.d.ts +5 -0
  87. package/dist/components/chip-input/chip-input.stories.d.ts +12 -0
  88. package/dist/components/chip-input/context.d.ts +11 -0
  89. package/dist/components/chip-input/helpers.d.ts +4 -0
  90. package/dist/components/chip-input/index.d.ts +2 -0
  91. package/dist/components/chip-input/types.d.ts +51 -0
  92. package/dist/components/chip-input.js +4 -0
  93. package/dist/components/date-single-picker-input/date-single-picker-input.atoms.d.ts +13 -0
  94. package/dist/components/date-single-picker-input/date-single-picker-input.d.ts +10 -0
  95. package/dist/components/date-single-picker-input/date-single-picker-input.docked.d.ts +14 -0
  96. package/dist/components/date-single-picker-input/date-single-picker-input.docked.stories.d.ts +10 -0
  97. package/dist/components/date-single-picker-input/date-single-picker-input.modal.d.ts +15 -0
  98. package/dist/components/date-single-picker-input/date-single-picker-input.modal.stories.d.ts +10 -0
  99. package/dist/components/date-single-picker-input/helpers.d.ts +3 -0
  100. package/dist/components/date-single-picker-input/index.d.ts +2 -0
  101. package/dist/components/date-single-picker-input/types.d.ts +75 -0
  102. package/dist/components/date-single-picker-input/use-date-single-picker.d.ts +10 -0
  103. package/dist/components/date-single-picker-input.js +4 -0
  104. package/dist/components/drawer/context.d.ts +11 -0
  105. package/dist/components/drawer/drawer.atoms.d.ts +23 -0
  106. package/dist/components/drawer/drawer.d.ts +16 -0
  107. package/dist/components/drawer/drawer.stories.d.ts +41 -0
  108. package/dist/components/drawer/helpers.d.ts +39 -0
  109. package/dist/components/drawer/index.d.ts +10 -0
  110. package/dist/components/drawer/types.d.ts +93 -0
  111. package/dist/components/drawer.js +9 -0
  112. package/dist/components/icon/helpers.d.ts +4 -0
  113. package/dist/components/icon/icon.d.ts +8 -0
  114. package/dist/components/icon/icon.stories.d.ts +39 -0
  115. package/dist/components/icon/index.d.ts +2 -0
  116. package/dist/components/icon/types.d.ts +13 -0
  117. package/dist/components/icon.js +4 -0
  118. package/dist/components/index.d.ts +29 -0
  119. package/dist/components/loading-indicator/helpers.d.ts +9 -0
  120. package/dist/components/loading-indicator/index.d.ts +1 -0
  121. package/dist/components/loading-indicator/loading-indicator.atoms.d.ts +10 -0
  122. package/dist/components/loading-indicator/loading-indicator.d.ts +7 -0
  123. package/dist/components/loading-indicator/loading-indicator.stories.d.ts +16 -0
  124. package/dist/components/loading-indicator/types.d.ts +29 -0
  125. package/dist/components/loading-indicator.js +4 -0
  126. package/dist/components/menu/context.d.ts +13 -0
  127. package/dist/components/menu/helpers.d.ts +8 -0
  128. package/dist/components/menu/index.d.ts +2 -0
  129. package/dist/components/menu/menu.atoms.d.ts +14 -0
  130. package/dist/components/menu/menu.d.ts +7 -0
  131. package/dist/components/menu/menu.stories.d.ts +22 -0
  132. package/dist/components/menu/types.d.ts +36 -0
  133. package/dist/components/menu/use-menu.d.ts +3 -0
  134. package/dist/components/menu.js +4 -0
  135. package/dist/components/modal/helpers.d.ts +7 -0
  136. package/dist/components/modal/index.d.ts +2 -0
  137. package/dist/components/modal/modal.atoms.d.ts +8 -0
  138. package/dist/components/modal/modal.d.ts +7 -0
  139. package/dist/components/modal/modal.stories.d.ts +13 -0
  140. package/dist/components/modal/types.d.ts +48 -0
  141. package/dist/components/modal/use-escape-close.d.ts +6 -0
  142. package/dist/components/modal/use-focus-trap.d.ts +6 -0
  143. package/dist/components/modal.js +4 -0
  144. package/dist/components/radio-input/context.d.ts +11 -0
  145. package/dist/components/radio-input/helpers.d.ts +11 -0
  146. package/dist/components/radio-input/index.d.ts +2 -0
  147. package/dist/components/radio-input/radio-input.atoms.d.ts +9 -0
  148. package/dist/components/radio-input/radio-input.d.ts +5 -0
  149. package/dist/components/radio-input/radio-input.stories.d.ts +74 -0
  150. package/dist/components/radio-input/types.d.ts +54 -0
  151. package/dist/components/radio-input.js +4 -0
  152. package/dist/components/segment-multiple-input/context.d.ts +12 -0
  153. package/dist/components/segment-multiple-input/helpers.d.ts +15 -0
  154. package/dist/components/segment-multiple-input/index.d.ts +2 -0
  155. package/dist/components/segment-multiple-input/segment-multiple-input.atoms.d.ts +12 -0
  156. package/dist/components/segment-multiple-input/segment-multiple-input.d.ts +7 -0
  157. package/dist/components/segment-multiple-input/segment-multiple-input.stories.d.ts +66 -0
  158. package/dist/components/segment-multiple-input/types.d.ts +55 -0
  159. package/dist/components/segment-multiple-input.js +4 -0
  160. package/dist/components/segment-single-input/context.d.ts +12 -0
  161. package/dist/components/segment-single-input/helpers.d.ts +15 -0
  162. package/dist/components/segment-single-input/index.d.ts +2 -0
  163. package/dist/components/segment-single-input/segment-single-input.atoms.d.ts +11 -0
  164. package/dist/components/segment-single-input/segment-single-input.d.ts +7 -0
  165. package/dist/components/segment-single-input/segment-single-input.stories.d.ts +57 -0
  166. package/dist/components/segment-single-input/types.d.ts +55 -0
  167. package/dist/components/segment-single-input.js +4 -0
  168. package/dist/components/select-input/helpers.d.ts +3 -0
  169. package/dist/components/select-input/index.d.ts +2 -0
  170. package/dist/components/select-input/select-input.d.ts +9 -0
  171. package/dist/components/select-input/select-input.stories.d.ts +50 -0
  172. package/dist/components/select-input/types.d.ts +29 -0
  173. package/dist/components/select-input.js +4 -0
  174. package/dist/components/skeleton/helpers.d.ts +6 -0
  175. package/dist/components/skeleton/index.d.ts +2 -0
  176. package/dist/components/skeleton/skeleton.d.ts +6 -0
  177. package/dist/components/skeleton/skeleton.stories.d.ts +25 -0
  178. package/dist/components/skeleton/types.d.ts +17 -0
  179. package/dist/components/skeleton.js +4 -0
  180. package/dist/components/snackbar/helpers.d.ts +8 -0
  181. package/dist/components/snackbar/index.d.ts +2 -0
  182. package/dist/components/snackbar/snackbar.atoms.d.ts +10 -0
  183. package/dist/components/snackbar/snackbar.d.ts +6 -0
  184. package/dist/components/snackbar/snackbar.stories.d.ts +8 -0
  185. package/dist/components/snackbar/types.d.ts +40 -0
  186. package/dist/components/snackbar.js +4 -0
  187. package/dist/components/switch-input/helpers.d.ts +18 -0
  188. package/dist/components/switch-input/index.d.ts +3 -0
  189. package/dist/components/switch-input/switch-input.atoms.d.ts +28 -0
  190. package/dist/components/switch-input/switch-input.d.ts +6 -0
  191. package/dist/components/switch-input/switch-input.stories.d.ts +10 -0
  192. package/dist/components/switch-input/types.d.ts +49 -0
  193. package/dist/components/switch-input.js +7 -0
  194. package/dist/components/tabs/context.d.ts +3 -0
  195. package/dist/components/tabs/helpers.d.ts +8 -0
  196. package/dist/components/tabs/index.d.ts +2 -0
  197. package/dist/components/tabs/tabs.atoms.d.ts +10 -0
  198. package/dist/components/tabs/tabs.d.ts +5 -0
  199. package/dist/components/tabs/tabs.stories.d.ts +17 -0
  200. package/dist/components/tabs/types.d.ts +41 -0
  201. package/dist/components/tabs/use-tab-indicator.d.ts +13 -0
  202. package/dist/components/tabs.js +4 -0
  203. package/dist/components/text/helpers.d.ts +18 -0
  204. package/dist/components/text/index.d.ts +2 -0
  205. package/dist/components/text/text.d.ts +7 -0
  206. package/dist/components/text/text.stories.d.ts +14 -0
  207. package/dist/components/text/types.d.ts +30 -0
  208. package/dist/components/text-input/helpers.d.ts +3 -0
  209. package/dist/components/text-input/index.d.ts +2 -0
  210. package/dist/components/text-input/text-input.d.ts +9 -0
  211. package/dist/components/text-input/text-input.stories.d.ts +20 -0
  212. package/dist/components/text-input/types.d.ts +33 -0
  213. package/dist/components/text-input.js +4 -0
  214. package/dist/components/text.js +4 -0
  215. package/dist/components/textarea-input/helpers.d.ts +4 -0
  216. package/dist/components/textarea-input/index.d.ts +2 -0
  217. package/dist/components/textarea-input/textarea-input.d.ts +10 -0
  218. package/dist/components/textarea-input/textarea-input.stories.d.ts +50 -0
  219. package/dist/components/textarea-input/types.d.ts +40 -0
  220. package/dist/components/textarea-input.js +4 -0
  221. package/dist/components/tile/helpers.d.ts +8 -0
  222. package/dist/components/tile/index.d.ts +2 -0
  223. package/dist/components/tile/tile.d.ts +11 -0
  224. package/dist/components/tile/tile.stories.d.ts +35 -0
  225. package/dist/components/tile/types.d.ts +23 -0
  226. package/dist/components/tile.js +4 -0
  227. package/dist/components/top-bar/helpers.d.ts +26 -0
  228. package/dist/components/top-bar/index.d.ts +2 -0
  229. package/dist/components/top-bar/top-bar.atoms.d.ts +6 -0
  230. package/dist/components/top-bar/top-bar.d.ts +8 -0
  231. package/dist/components/top-bar/top-bar.stories.d.ts +15 -0
  232. package/dist/components/top-bar/types.d.ts +38 -0
  233. package/dist/components/top-bar.js +4 -0
  234. package/dist/date-single-picker-input--Ew0O9NQ.js +252 -0
  235. package/dist/drawer-DrnAR2a4.js +218 -0
  236. package/dist/helpers-CEDtBUGM.js +37 -0
  237. package/dist/hooks/index.d.ts +1 -0
  238. package/dist/hooks/index.js +1 -0
  239. package/dist/icon-D-lTZMHY.js +44 -0
  240. package/dist/index-DU1SCUkk.js +329 -0
  241. package/dist/index.d.ts +2 -0
  242. package/dist/index.js +68 -0
  243. package/dist/loading-indicator-BZMnT5PA.js +168 -0
  244. package/dist/menu-BZvilMF7.js +174 -0
  245. package/dist/modal-BGAtqMl9.js +149 -0
  246. package/dist/radio-input-BRGoevZY.js +173 -0
  247. package/dist/segment-multiple-input-VwHCqFd6.js +229 -0
  248. package/dist/segment-single-input-Cqoo7-C2.js +228 -0
  249. package/dist/select-input-DCb0usvK.js +108 -0
  250. package/dist/skeleton-D4X5USf_.js +59 -0
  251. package/dist/snackbar-CYias-fJ.js +79 -0
  252. package/dist/styles.css +115 -0
  253. package/dist/switch-input-C5s1lvYh.js +186 -0
  254. package/dist/tabs-C8aRKfxS.js +216 -0
  255. package/dist/text-B7e-au41.js +120 -0
  256. package/dist/text-input-BsWvUk_H.js +73 -0
  257. package/dist/textarea-input-DZExXEE8.js +102 -0
  258. package/dist/tile-Du7YciCG.js +51 -0
  259. package/dist/top-bar-ErHvwR4K.js +62 -0
  260. package/package.json +97 -0
package/README.md ADDED
@@ -0,0 +1,81 @@
1
+ # Versaur UI Library
2
+
3
+ A modern React UI library built with TypeScript and Tailwind CSS, featuring tree-shakable
4
+ components, comprehensive testing, and Storybook documentation.
5
+
6
+ ## Features
7
+
8
+ - 🎨 **Tailwind CSS 4** - Modern styling with CSS-in-JS
9
+ - 📦 **Tree Shakable** - Subpath exports for optimal bundle size
10
+ - 🔧 **TypeScript** - Full type safety and IntelliSense
11
+ - 📚 **Storybook** - Interactive component documentation
12
+ - 🧪 **Vitest** - Fast unit testing with React Testing Library
13
+ - ⚡ **Vite** - Lightning-fast development and build
14
+ - 🎯 **Modern React** - Built with React 19 and hooks
15
+ - 🎨 **Design Tokens** - Consistent color palette and spacing
16
+
17
+
18
+ ## Installation
19
+
20
+ ```bash
21
+ yarn install versaur
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ ### Import all components
27
+
28
+ ```tsx
29
+ import { Button, Input, Card } from 'versaur'
30
+ ```
31
+
32
+ ### Tree-shakable imports
33
+
34
+ ```tsx
35
+ // Import only what you need
36
+ import { Button } from 'versaur/components'
37
+ import Button from 'versaur/components/button'
38
+ ```
39
+
40
+ ## Testing
41
+
42
+ The library includes comprehensive testing setup:
43
+
44
+ - **Vitest** - Fast unit testing
45
+ - **React Testing Library** - Component testing utilities
46
+ - **jsdom** - DOM environment for testing
47
+
48
+ ```bash
49
+ # Run all tests
50
+ yarn test
51
+
52
+ # Run tests with coverage
53
+ yarn test:coverage
54
+
55
+ # Run tests with UI
56
+ yarn test:ui
57
+ ```
58
+
59
+ ## Storybook
60
+
61
+ Interactive component documentation and testing:
62
+
63
+ ```bash
64
+ # Start Storybook development server
65
+ yarn storybook
66
+
67
+ # Build Storybook for production
68
+ yarn build-storybook
69
+ ```
70
+
71
+ ## Contributing
72
+
73
+ 1. Fork the repository
74
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
75
+ 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
76
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
77
+ 5. Open a Pull Request
78
+
79
+ ## License
80
+
81
+ MIT © [Dimas Bagus Prayogo Mukti]
@@ -0,0 +1,167 @@
1
+ import { c as o, j as a } from "./index-DU1SCUkk.js";
2
+ import { forwardRef as n } from "react";
3
+ import { c as l } from "./cn-Ca4KprQ1.js";
4
+ const g = o(
5
+ "relative flex items-center gap-1 rounded-md p-2 text-sm transition-all duration-200",
6
+ {
7
+ variants: {
8
+ variant: {
9
+ default: "",
10
+ outline: "border"
11
+ },
12
+ color: {
13
+ // Core colors
14
+ primary: "",
15
+ secondary: "",
16
+ tertiary: "",
17
+ ghost: "",
18
+ neutral: "",
19
+ // Semantic colors
20
+ success: "",
21
+ info: "",
22
+ warning: "",
23
+ danger: ""
24
+ }
25
+ },
26
+ compoundVariants: [
27
+ // Default variant styles (soft backgrounds)
28
+ {
29
+ variant: "default",
30
+ color: "primary",
31
+ class: "bg-coral/10 text-coral border border-coral/20"
32
+ },
33
+ {
34
+ variant: "default",
35
+ color: "secondary",
36
+ class: "bg-sage/10 text-sage border border-sage/20"
37
+ },
38
+ {
39
+ variant: "default",
40
+ color: "tertiary",
41
+ class: "bg-mist/10 text-mist border border-mist/20"
42
+ },
43
+ {
44
+ variant: "default",
45
+ color: "ghost",
46
+ class: "bg-slate/10 text-slate border border-slate/20"
47
+ },
48
+ {
49
+ variant: "default",
50
+ color: "neutral",
51
+ class: "bg-neutral/50 text-foreground border border-border"
52
+ },
53
+ {
54
+ variant: "default",
55
+ color: "success",
56
+ class: "bg-success/10 text-success border border-success/20"
57
+ },
58
+ {
59
+ variant: "default",
60
+ color: "info",
61
+ class: "bg-info/10 text-info border border-info/20"
62
+ },
63
+ {
64
+ variant: "default",
65
+ color: "warning",
66
+ class: "bg-warning/10 text-warning border border-warning/20"
67
+ },
68
+ {
69
+ variant: "default",
70
+ color: "danger",
71
+ class: "bg-danger/10 text-danger border border-danger/20"
72
+ },
73
+ // Outline variant styles
74
+ {
75
+ variant: "outline",
76
+ color: "primary",
77
+ class: "bg-transparent text-coral border-coral"
78
+ },
79
+ {
80
+ variant: "outline",
81
+ color: "secondary",
82
+ class: "bg-transparent text-sage border-sage"
83
+ },
84
+ {
85
+ variant: "outline",
86
+ color: "tertiary",
87
+ class: "bg-transparent text-mist border-mist"
88
+ },
89
+ {
90
+ variant: "outline",
91
+ color: "ghost",
92
+ class: "bg-transparent text-slate border-slate"
93
+ },
94
+ {
95
+ variant: "outline",
96
+ color: "neutral",
97
+ class: "bg-transparent text-foreground border-border"
98
+ },
99
+ {
100
+ variant: "outline",
101
+ color: "success",
102
+ class: "bg-transparent text-success border-success"
103
+ },
104
+ {
105
+ variant: "outline",
106
+ color: "info",
107
+ class: "bg-transparent text-info border-info"
108
+ },
109
+ {
110
+ variant: "outline",
111
+ color: "warning",
112
+ class: "bg-transparent text-warning border-warning"
113
+ },
114
+ {
115
+ variant: "outline",
116
+ color: "danger",
117
+ class: "bg-transparent text-danger border-danger"
118
+ }
119
+ ],
120
+ defaultVariants: {
121
+ variant: "default",
122
+ color: "neutral"
123
+ }
124
+ }
125
+ ), u = o(
126
+ "flex-shrink-0 flex justify-center items-center ",
127
+ {
128
+ variants: {
129
+ size: {
130
+ sm: "w-4 h-4",
131
+ md: "w-5 h-5",
132
+ lg: "w-6 h-6"
133
+ }
134
+ },
135
+ defaultVariants: {
136
+ size: "md"
137
+ }
138
+ }
139
+ ), c = n(
140
+ ({ className: t, children: e, ...r }, s) => /* @__PURE__ */ a.jsx("div", { ref: s, className: l(u(), t), ...r, children: e })
141
+ ), f = n(
142
+ ({
143
+ variant: t = "default",
144
+ color: e = "neutral",
145
+ icon: r,
146
+ className: s,
147
+ children: i,
148
+ ...d
149
+ }, b) => /* @__PURE__ */ a.jsxs(
150
+ "div",
151
+ {
152
+ ref: b,
153
+ role: "alert",
154
+ className: l(g({ variant: t, color: e }), s),
155
+ ...d,
156
+ children: [
157
+ r && /* @__PURE__ */ a.jsx(c, { children: r }),
158
+ /* @__PURE__ */ a.jsx("div", { className: "flex-1", children: i })
159
+ ]
160
+ }
161
+ )
162
+ ), p = Object.assign(f, {
163
+ Icon: c
164
+ });
165
+ export {
166
+ p as A
167
+ };
@@ -0,0 +1,92 @@
1
+ import { c as i, j as r } from "./index-DU1SCUkk.js";
2
+ import { c as s } from "./cn-Ca4KprQ1.js";
3
+ import { forwardRef as n } from "react";
4
+ const l = i(
5
+ "w-full flex items-center px-4 py-3 gap-2 bg-white",
6
+ {
7
+ variants: {
8
+ variant: {
9
+ primary: "",
10
+ secondary: "",
11
+ tertiary: "",
12
+ ghost: "",
13
+ neutral: ""
14
+ }
15
+ },
16
+ defaultVariants: {
17
+ variant: "primary"
18
+ }
19
+ }
20
+ ), p = i(
21
+ "flex flex-col justify-center w-full min-w-0 ",
22
+ {
23
+ variants: {
24
+ placement: {
25
+ start: "items-start",
26
+ center: "items-center",
27
+ end: "items-end"
28
+ }
29
+ },
30
+ defaultVariants: {
31
+ placement: "start"
32
+ }
33
+ }
34
+ ), m = n(
35
+ ({ children: t, className: a }, e) => /* @__PURE__ */ r.jsx("div", { ref: e, className: s("flex items-center", a), children: t })
36
+ ), o = n(
37
+ ({ children: t, className: a }, e) => /* @__PURE__ */ r.jsx(
38
+ "div",
39
+ {
40
+ ref: e,
41
+ className: s("font-semibold text-lg truncate min-w-0", a),
42
+ children: t
43
+ }
44
+ )
45
+ ), x = n(
46
+ ({ children: t, className: a }, e) => /* @__PURE__ */ r.jsx(
47
+ "div",
48
+ {
49
+ ref: e,
50
+ className: s("text-xs text-slate-400 truncate min-w-0", a),
51
+ children: t
52
+ }
53
+ )
54
+ ), d = n(
55
+ ({ children: t, className: a }, e) => /* @__PURE__ */ r.jsx(
56
+ "div",
57
+ {
58
+ ref: e,
59
+ className: s("flex items-center flex-grow justify-end gap-2", a),
60
+ children: t
61
+ }
62
+ )
63
+ ), f = n(
64
+ ({ children: t, className: a, placement: e }, c) => /* @__PURE__ */ r.jsx(
65
+ "div",
66
+ {
67
+ ref: c,
68
+ className: s(p({ placement: e }), a),
69
+ children: t
70
+ }
71
+ )
72
+ ), u = ({
73
+ children: t,
74
+ className: a,
75
+ variant: e = "primary"
76
+ }) => /* @__PURE__ */ r.jsx(
77
+ "header",
78
+ {
79
+ className: s(l({ variant: e }), a),
80
+ role: "banner",
81
+ children: t
82
+ }
83
+ ), B = Object.assign(u, {
84
+ Leading: m,
85
+ Headline: o,
86
+ Subtitle: x,
87
+ Trailing: d,
88
+ Center: f
89
+ });
90
+ export {
91
+ B as A
92
+ };
@@ -0,0 +1,91 @@
1
+ import { c as l, j as c } from "./index-DU1SCUkk.js";
2
+ import { forwardRef as d, useState as g, useEffect as f, useCallback as h } from "react";
3
+ import { c as u } from "./cn-Ca4KprQ1.js";
4
+ const w = l(
5
+ "inline-flex items-center justify-center font-medium text-white overflow-hidden transition-all duration-200 select-none relative",
6
+ {
7
+ variants: {
8
+ variant: {
9
+ // Core variants using Versaur color system
10
+ primary: "bg-coral text-white",
11
+ secondary: "bg-sage text-white",
12
+ tertiary: "bg-mist text-white",
13
+ ghost: "bg-slate text-white",
14
+ neutral: "bg-neutral text-foreground border border-border",
15
+ // Semantic variants
16
+ success: "bg-success text-white",
17
+ info: "bg-info text-white",
18
+ warning: "bg-warning text-white",
19
+ danger: "bg-danger text-white"
20
+ },
21
+ size: {
22
+ xs: "h-6 w-6 text-xs",
23
+ sm: "h-8 w-8 text-sm",
24
+ md: "h-10 w-10 text-base",
25
+ lg: "h-12 w-12 text-lg",
26
+ xl: "h-16 w-16 text-xl"
27
+ },
28
+ shape: {
29
+ circle: "rounded-full",
30
+ square: "rounded-none",
31
+ rounded: "rounded-md"
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ variant: "primary",
36
+ size: "md",
37
+ shape: "circle"
38
+ }
39
+ }
40
+ ), b = l(
41
+ "absolute inset-0 h-full w-full object-cover"
42
+ ), v = d(
43
+ ({
44
+ variant: e = "primary",
45
+ size: r = "md",
46
+ shape: a = "circle",
47
+ className: t,
48
+ children: s,
49
+ ...n
50
+ }, i) => /* @__PURE__ */ c.jsx(
51
+ "div",
52
+ {
53
+ ref: i,
54
+ className: u(w({ variant: e, size: r, shape: a }), t),
55
+ ...n,
56
+ children: s
57
+ }
58
+ )
59
+ ), p = d(
60
+ ({ src: e, alt: r, className: a, onError: t, ...s }, n) => {
61
+ const [i, o] = g(!1);
62
+ f(() => {
63
+ o(!1);
64
+ }, [e]);
65
+ const m = h(
66
+ (x) => {
67
+ o(!0), t?.(x);
68
+ },
69
+ [t]
70
+ );
71
+ return i ? null : /* @__PURE__ */ c.jsx(
72
+ "img",
73
+ {
74
+ ref: n,
75
+ src: e,
76
+ alt: r,
77
+ className: u(b(), a),
78
+ onError: m,
79
+ ...s
80
+ }
81
+ );
82
+ }
83
+ ), A = Object.assign(v, {
84
+ /**
85
+ * AvatarImage sub-component for displaying images with fallback behavior
86
+ */
87
+ Image: p
88
+ });
89
+ export {
90
+ A
91
+ };
@@ -0,0 +1,184 @@
1
+ import { c as d, j as t } from "./index-DU1SCUkk.js";
2
+ import { forwardRef as m } from "react";
3
+ import { c as g } from "./cn-Ca4KprQ1.js";
4
+ const f = d(
5
+ "inline-flex items-center justify-center font-medium transition-all duration-200 select-none text-xs px-2 py-0.5 gap-1 min-h-[1.25rem]",
6
+ {
7
+ variants: {
8
+ variant: {
9
+ default: "",
10
+ outline: "border bg-transparent"
11
+ },
12
+ color: {
13
+ // Core colors
14
+ primary: "",
15
+ secondary: "",
16
+ tertiary: "",
17
+ ghost: "",
18
+ neutral: "",
19
+ // Semantic colors
20
+ success: "",
21
+ info: "",
22
+ warning: "",
23
+ danger: ""
24
+ },
25
+ shape: {
26
+ rounded: "rounded-full",
27
+ square: "rounded-md"
28
+ },
29
+ iconOnly: {
30
+ true: "",
31
+ false: ""
32
+ }
33
+ },
34
+ compoundVariants: [
35
+ // Default variant color combinations - using light/soft backgrounds
36
+ {
37
+ variant: "default",
38
+ color: "primary",
39
+ className: "bg-coral/15 text-coral"
40
+ },
41
+ {
42
+ variant: "default",
43
+ color: "secondary",
44
+ className: "bg-sage/15 text-sage"
45
+ },
46
+ {
47
+ variant: "default",
48
+ color: "tertiary",
49
+ className: "bg-mist/15 text-mist"
50
+ },
51
+ {
52
+ variant: "default",
53
+ color: "ghost",
54
+ className: "bg-slate/15 text-slate"
55
+ },
56
+ {
57
+ variant: "default",
58
+ color: "neutral",
59
+ className: "bg-neutral text-foreground"
60
+ },
61
+ {
62
+ variant: "default",
63
+ color: "success",
64
+ className: "bg-success/15 text-success"
65
+ },
66
+ {
67
+ variant: "default",
68
+ color: "info",
69
+ className: "bg-info/15 text-info"
70
+ },
71
+ {
72
+ variant: "default",
73
+ color: "warning",
74
+ className: "bg-warning/15 text-warning"
75
+ },
76
+ {
77
+ variant: "default",
78
+ color: "danger",
79
+ className: "bg-danger/15 text-danger"
80
+ },
81
+ // Outline variant color combinations
82
+ {
83
+ variant: "outline",
84
+ color: "primary",
85
+ className: "border-coral text-coral"
86
+ },
87
+ {
88
+ variant: "outline",
89
+ color: "secondary",
90
+ className: "border-sage text-sage"
91
+ },
92
+ {
93
+ variant: "outline",
94
+ color: "tertiary",
95
+ className: "border-mist text-mist"
96
+ },
97
+ {
98
+ variant: "outline",
99
+ color: "ghost",
100
+ className: "border-slate text-slate"
101
+ },
102
+ {
103
+ variant: "outline",
104
+ color: "neutral",
105
+ className: "border-neutral text-foreground"
106
+ },
107
+ {
108
+ variant: "outline",
109
+ color: "success",
110
+ className: "border-success text-success"
111
+ },
112
+ {
113
+ variant: "outline",
114
+ color: "info",
115
+ className: "border-info text-info"
116
+ },
117
+ {
118
+ variant: "outline",
119
+ color: "warning",
120
+ className: "border-warning text-warning"
121
+ },
122
+ {
123
+ variant: "outline",
124
+ color: "danger",
125
+ className: "border-danger text-danger"
126
+ },
127
+ // Icon-only size adjustments
128
+ {
129
+ iconOnly: !0,
130
+ className: "px-1 py-1 w-5 h-5"
131
+ }
132
+ ],
133
+ defaultVariants: {
134
+ variant: "default",
135
+ color: "primary",
136
+ shape: "square",
137
+ iconOnly: !1
138
+ }
139
+ }
140
+ ), x = m(
141
+ ({
142
+ variant: n = "default",
143
+ shape: o = "square",
144
+ color: l = "primary",
145
+ iconLeft: e,
146
+ iconRight: r,
147
+ className: c,
148
+ children: a,
149
+ ...i
150
+ }, u) => {
151
+ const s = !(a != null && a !== "") && !!(e || r);
152
+ return /* @__PURE__ */ t.jsx(
153
+ "span",
154
+ {
155
+ ref: u,
156
+ className: g(
157
+ f({
158
+ variant: n,
159
+ color: l,
160
+ shape: o,
161
+ iconOnly: s
162
+ }),
163
+ c
164
+ ),
165
+ ...i,
166
+ children: s ? (
167
+ // Icon-only mode: display only the icon
168
+ e || r
169
+ ) : (
170
+ // Normal mode: display icon(s) and text
171
+ /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
172
+ e,
173
+ a,
174
+ r
175
+ ] })
176
+ )
177
+ }
178
+ );
179
+ }
180
+ );
181
+ x.displayName = "Badge";
182
+ export {
183
+ x as B
184
+ };
@@ -0,0 +1,73 @@
1
+ import { c as i, j as s } from "./index-DU1SCUkk.js";
2
+ import { forwardRef as m } from "react";
3
+ const l = i(
4
+ "absolute bottom-0 left-0 w-full flex justify-between items-center bg-white border-t border-coral/10 z-40 safe-bottom px-6 py-1",
5
+ {
6
+ variants: {
7
+ variant: {
8
+ primary: "",
9
+ secondary: "",
10
+ ghost: "",
11
+ neutral: "",
12
+ tertiary: ""
13
+ },
14
+ size: {
15
+ sm: "h-12 text-sm",
16
+ md: "h-16 text-base",
17
+ lg: "h-20 text-lg"
18
+ }
19
+ },
20
+ defaultVariants: {
21
+ variant: "primary",
22
+ size: "md"
23
+ }
24
+ }
25
+ ), c = i(
26
+ "flex flex-col items-center justify-center gap-1 px-2 py-1 rounded transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary",
27
+ {
28
+ variants: {
29
+ active: {
30
+ true: "font-semibold text-coral",
31
+ false: "text-slate"
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ active: !1
36
+ }
37
+ }
38
+ ), f = m(
39
+ ({ icon: e, label: t, active: a = !1, className: o, ...r }, n) => /* @__PURE__ */ s.jsxs(
40
+ "button",
41
+ {
42
+ ref: n,
43
+ type: "button",
44
+ "aria-current": a ? "page" : void 0,
45
+ className: c({ active: a, className: o }),
46
+ ...r,
47
+ children: [
48
+ e,
49
+ t && /* @__PURE__ */ s.jsx("span", { className: "text-xs mt-0.5", children: t })
50
+ ]
51
+ }
52
+ )
53
+ ), x = ({
54
+ children: e,
55
+ variant: t = "primary",
56
+ size: a = "md",
57
+ className: o,
58
+ ...r
59
+ }) => /* @__PURE__ */ s.jsx(
60
+ "nav",
61
+ {
62
+ role: "navigation",
63
+ "aria-label": "Bottom navigation",
64
+ className: l({ variant: t, size: a, className: o }),
65
+ ...r,
66
+ children: e
67
+ }
68
+ ), p = Object.assign(x, {
69
+ Item: f
70
+ });
71
+ export {
72
+ p as B
73
+ };