@techsio/ui-kit 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 (183) hide show
  1. package/README.md +165 -0
  2. package/dist/atoms/badge.js +66 -0
  3. package/dist/atoms/button.js +275 -0
  4. package/dist/atoms/error-text.js +38 -0
  5. package/dist/atoms/extra-text.js +27 -0
  6. package/dist/atoms/icon.js +42 -0
  7. package/dist/atoms/image.js +11 -0
  8. package/dist/atoms/input.js +83 -0
  9. package/dist/atoms/label.js +43 -0
  10. package/dist/atoms/link-button.js +51 -0
  11. package/dist/atoms/link.js +23 -0
  12. package/dist/atoms/numeric-input.js +221 -0
  13. package/dist/atoms/rating.js +117 -0
  14. package/dist/atoms/textarea.js +81 -0
  15. package/dist/atoms/tooltip.js +119 -0
  16. package/dist/molecules/accordion.js +245 -0
  17. package/dist/molecules/breadcrumb.js +168 -0
  18. package/dist/molecules/carousel.js +333 -0
  19. package/dist/molecules/checkbox.js +92 -0
  20. package/dist/molecules/color-select.js +159 -0
  21. package/dist/molecules/combobox.js +253 -0
  22. package/dist/molecules/dialog.js +313 -0
  23. package/dist/molecules/form-checkbox.js +59 -0
  24. package/dist/molecules/form-input.js +55 -0
  25. package/dist/molecules/form-numeric-input.js +47 -0
  26. package/dist/molecules/form-textarea.js +54 -0
  27. package/dist/molecules/menu.js +302 -0
  28. package/dist/molecules/pagination.js +184 -0
  29. package/dist/molecules/popover.js +152 -0
  30. package/dist/molecules/product-card.js +194 -0
  31. package/dist/molecules/search-form.js +106 -0
  32. package/dist/molecules/select.js +217 -0
  33. package/dist/molecules/slider.js +249 -0
  34. package/dist/molecules/steps.js +178 -0
  35. package/dist/molecules/switch.js +109 -0
  36. package/dist/molecules/tabs.js +211 -0
  37. package/dist/molecules/toast.js +126 -0
  38. package/dist/molecules/tree-view.js +451 -0
  39. package/dist/organisms/footer.js +209 -0
  40. package/dist/organisms/header.js +245 -0
  41. package/dist/organisms/table.js +233 -0
  42. package/dist/src/atoms/badge.d.ts +59 -0
  43. package/dist/src/atoms/badge.d.ts.map +1 -0
  44. package/dist/src/atoms/button.d.ts +97 -0
  45. package/dist/src/atoms/button.d.ts.map +1 -0
  46. package/dist/src/atoms/error-text.d.ts +29 -0
  47. package/dist/src/atoms/error-text.d.ts.map +1 -0
  48. package/dist/src/atoms/extra-text.d.ts +27 -0
  49. package/dist/src/atoms/extra-text.d.ts.map +1 -0
  50. package/dist/src/atoms/icon.d.ts +65 -0
  51. package/dist/src/atoms/icon.d.ts.map +1 -0
  52. package/dist/src/atoms/image.d.ts +17 -0
  53. package/dist/src/atoms/image.d.ts.map +1 -0
  54. package/dist/src/atoms/input.d.ts +78 -0
  55. package/dist/src/atoms/input.d.ts.map +1 -0
  56. package/dist/src/atoms/label.d.ts +41 -0
  57. package/dist/src/atoms/label.d.ts.map +1 -0
  58. package/dist/src/atoms/link-button.d.ts +129 -0
  59. package/dist/src/atoms/link-button.d.ts.map +1 -0
  60. package/dist/src/atoms/link.d.ts +17 -0
  61. package/dist/src/atoms/link.d.ts.map +1 -0
  62. package/dist/src/atoms/numeric-input.d.ts +64 -0
  63. package/dist/src/atoms/numeric-input.d.ts.map +1 -0
  64. package/dist/src/atoms/rating.d.ts +108 -0
  65. package/dist/src/atoms/rating.d.ts.map +1 -0
  66. package/dist/src/atoms/textarea.d.ts +81 -0
  67. package/dist/src/atoms/textarea.d.ts.map +1 -0
  68. package/dist/src/atoms/tooltip.d.ts +88 -0
  69. package/dist/src/atoms/tooltip.d.ts.map +1 -0
  70. package/dist/src/molecules/accordion.d.ts +182 -0
  71. package/dist/src/molecules/accordion.d.ts.map +1 -0
  72. package/dist/src/molecules/breadcrumb.d.ts +117 -0
  73. package/dist/src/molecules/breadcrumb.d.ts.map +1 -0
  74. package/dist/src/molecules/carousel.d.ts +261 -0
  75. package/dist/src/molecules/carousel.d.ts.map +1 -0
  76. package/dist/src/molecules/checkbox.d.ts +19 -0
  77. package/dist/src/molecules/checkbox.d.ts.map +1 -0
  78. package/dist/src/molecules/color-select.d.ts +20 -0
  79. package/dist/src/molecules/color-select.d.ts.map +1 -0
  80. package/dist/src/molecules/combobox.d.ts +141 -0
  81. package/dist/src/molecules/combobox.d.ts.map +1 -0
  82. package/dist/src/molecules/dialog.d.ts +234 -0
  83. package/dist/src/molecules/dialog.d.ts.map +1 -0
  84. package/dist/src/molecules/form-checkbox.d.ts +15 -0
  85. package/dist/src/molecules/form-checkbox.d.ts.map +1 -0
  86. package/dist/src/molecules/form-input.d.ts +14 -0
  87. package/dist/src/molecules/form-input.d.ts.map +1 -0
  88. package/dist/src/molecules/form-numeric-input.d.ts +14 -0
  89. package/dist/src/molecules/form-numeric-input.d.ts.map +1 -0
  90. package/dist/src/molecules/form-textarea.d.ts +14 -0
  91. package/dist/src/molecules/form-textarea.d.ts.map +1 -0
  92. package/dist/src/molecules/menu.d.ts +153 -0
  93. package/dist/src/molecules/menu.d.ts.map +1 -0
  94. package/dist/src/molecules/pagination.d.ts +123 -0
  95. package/dist/src/molecules/pagination.d.ts.map +1 -0
  96. package/dist/src/molecules/popover.d.ts +124 -0
  97. package/dist/src/molecules/popover.d.ts.map +1 -0
  98. package/dist/src/molecules/product-card.d.ts +160 -0
  99. package/dist/src/molecules/product-card.d.ts.map +1 -0
  100. package/dist/src/molecules/search-form.d.ts +39 -0
  101. package/dist/src/molecules/search-form.d.ts.map +1 -0
  102. package/dist/src/molecules/select.d.ts +126 -0
  103. package/dist/src/molecules/select.d.ts.map +1 -0
  104. package/dist/src/molecules/slider.d.ts +120 -0
  105. package/dist/src/molecules/slider.d.ts.map +1 -0
  106. package/dist/src/molecules/steps.d.ts +96 -0
  107. package/dist/src/molecules/steps.d.ts.map +1 -0
  108. package/dist/src/molecules/switch.d.ts +71 -0
  109. package/dist/src/molecules/switch.d.ts.map +1 -0
  110. package/dist/src/molecules/tabs.d.ts +207 -0
  111. package/dist/src/molecules/tabs.d.ts.map +1 -0
  112. package/dist/src/molecules/toast.d.ts +83 -0
  113. package/dist/src/molecules/toast.d.ts.map +1 -0
  114. package/dist/src/molecules/tree-view.d.ts +202 -0
  115. package/dist/src/molecules/tree-view.d.ts.map +1 -0
  116. package/dist/src/organisms/footer.d.ts +254 -0
  117. package/dist/src/organisms/footer.d.ts.map +1 -0
  118. package/dist/src/organisms/header.d.ts +186 -0
  119. package/dist/src/organisms/header.d.ts.map +1 -0
  120. package/dist/src/organisms/table.d.ts +250 -0
  121. package/dist/src/organisms/table.d.ts.map +1 -0
  122. package/dist/src/templates/accordion.d.ts +15 -0
  123. package/dist/src/templates/accordion.d.ts.map +1 -0
  124. package/dist/src/templates/carousel.d.ts +13 -0
  125. package/dist/src/templates/carousel.d.ts.map +1 -0
  126. package/dist/src/templates/numeric-input.d.ts +14 -0
  127. package/dist/src/templates/numeric-input.d.ts.map +1 -0
  128. package/dist/src/templates/product-card.d.ts +33 -0
  129. package/dist/src/templates/product-card.d.ts.map +1 -0
  130. package/dist/src/templates/tabs.d.ts +16 -0
  131. package/dist/src/templates/tabs.d.ts.map +1 -0
  132. package/dist/src/types/zag.d.ts +19 -0
  133. package/dist/src/types/zag.d.ts.map +1 -0
  134. package/dist/src/utils.d.ts +4 -0
  135. package/dist/src/utils.d.ts.map +1 -0
  136. package/dist/templates/accordion.js +37 -0
  137. package/dist/templates/carousel.js +55 -0
  138. package/dist/templates/numeric-input.js +49 -0
  139. package/dist/templates/product-card.js +92 -0
  140. package/dist/templates/tabs.js +34 -0
  141. package/dist/types/zag.js +0 -0
  142. package/dist/utils.js +20 -0
  143. package/package.json +126 -0
  144. package/src/tokens/_base.css +25 -0
  145. package/src/tokens/_colors.css +5 -0
  146. package/src/tokens/_layout.css +34 -0
  147. package/src/tokens/_semantic.css +360 -0
  148. package/src/tokens/_spacing.css +22 -0
  149. package/src/tokens/_typography.css +17 -0
  150. package/src/tokens/components/atoms/_badge.css +61 -0
  151. package/src/tokens/components/atoms/_button.css +215 -0
  152. package/src/tokens/components/atoms/_icon.css +122 -0
  153. package/src/tokens/components/atoms/_input.css +125 -0
  154. package/src/tokens/components/atoms/_numeric-input.css +57 -0
  155. package/src/tokens/components/atoms/_rating.css +33 -0
  156. package/src/tokens/components/atoms/_textarea.css +93 -0
  157. package/src/tokens/components/atoms/_tooltip.css +21 -0
  158. package/src/tokens/components/components.css +32 -0
  159. package/src/tokens/components/molecules/_accordion.css +85 -0
  160. package/src/tokens/components/molecules/_breadcrumb.css +44 -0
  161. package/src/tokens/components/molecules/_carousel.css +72 -0
  162. package/src/tokens/components/molecules/_checkbox.css +29 -0
  163. package/src/tokens/components/molecules/_color-select.css +61 -0
  164. package/src/tokens/components/molecules/_combobox.css +116 -0
  165. package/src/tokens/components/molecules/_dialog.css +75 -0
  166. package/src/tokens/components/molecules/_menu.css +48 -0
  167. package/src/tokens/components/molecules/_pagination.css +75 -0
  168. package/src/tokens/components/molecules/_popover.css +39 -0
  169. package/src/tokens/components/molecules/_product-card.css +85 -0
  170. package/src/tokens/components/molecules/_search-form.css +10 -0
  171. package/src/tokens/components/molecules/_select.css +88 -0
  172. package/src/tokens/components/molecules/_slider.css +75 -0
  173. package/src/tokens/components/molecules/_steps.css +54 -0
  174. package/src/tokens/components/molecules/_switch.css +62 -0
  175. package/src/tokens/components/molecules/_tabs.css +69 -0
  176. package/src/tokens/components/molecules/_toast.css +77 -0
  177. package/src/tokens/components/molecules/_tree-view.css +80 -0
  178. package/src/tokens/components/molecules/index.css +2 -0
  179. package/src/tokens/components/organisms/_footer.css +90 -0
  180. package/src/tokens/components/organisms/_header.css +86 -0
  181. package/src/tokens/components/organisms/_table.css +63 -0
  182. package/src/tokens/index.css +67 -0
  183. package/src/tokens/tokens-only.css +66 -0
@@ -0,0 +1,250 @@
1
+ import { type ComponentPropsWithoutRef, type RefObject } from 'react';
2
+ import type { VariantProps } from 'tailwind-variants';
3
+ declare const tableVariants: import("tailwind-variants").TVReturnType<{
4
+ variant: {
5
+ line: {
6
+ root: string;
7
+ row: string;
8
+ };
9
+ outline: {
10
+ root: string;
11
+ };
12
+ striped: {
13
+ row: string;
14
+ };
15
+ };
16
+ interactive: {
17
+ true: {
18
+ row: string;
19
+ };
20
+ };
21
+ size: {
22
+ sm: {
23
+ cell: string;
24
+ columnHeader: string;
25
+ caption: string;
26
+ };
27
+ md: {
28
+ cell: string;
29
+ columnHeader: string;
30
+ caption: string;
31
+ };
32
+ lg: {
33
+ cell: string;
34
+ columnHeader: string;
35
+ caption: string;
36
+ };
37
+ };
38
+ stickyHeader: {
39
+ true: {
40
+ columnHeader: string;
41
+ };
42
+ };
43
+ stickyFirstColumn: {
44
+ true: {
45
+ columnHeader: string[];
46
+ cell: string[];
47
+ };
48
+ };
49
+ showColumnBorder: {
50
+ true: {
51
+ columnHeader: string;
52
+ cell: string;
53
+ };
54
+ };
55
+ captionPlacement: {
56
+ top: {
57
+ caption: string;
58
+ };
59
+ bottom: {
60
+ caption: string;
61
+ };
62
+ };
63
+ }, {
64
+ root: string[];
65
+ caption: string[];
66
+ header: string[];
67
+ body: string;
68
+ footer: string[];
69
+ row: string[];
70
+ columnHeader: string[];
71
+ cell: string[];
72
+ }, undefined, {
73
+ variant: {
74
+ line: {
75
+ root: string;
76
+ row: string;
77
+ };
78
+ outline: {
79
+ root: string;
80
+ };
81
+ striped: {
82
+ row: string;
83
+ };
84
+ };
85
+ interactive: {
86
+ true: {
87
+ row: string;
88
+ };
89
+ };
90
+ size: {
91
+ sm: {
92
+ cell: string;
93
+ columnHeader: string;
94
+ caption: string;
95
+ };
96
+ md: {
97
+ cell: string;
98
+ columnHeader: string;
99
+ caption: string;
100
+ };
101
+ lg: {
102
+ cell: string;
103
+ columnHeader: string;
104
+ caption: string;
105
+ };
106
+ };
107
+ stickyHeader: {
108
+ true: {
109
+ columnHeader: string;
110
+ };
111
+ };
112
+ stickyFirstColumn: {
113
+ true: {
114
+ columnHeader: string[];
115
+ cell: string[];
116
+ };
117
+ };
118
+ showColumnBorder: {
119
+ true: {
120
+ columnHeader: string;
121
+ cell: string;
122
+ };
123
+ };
124
+ captionPlacement: {
125
+ top: {
126
+ caption: string;
127
+ };
128
+ bottom: {
129
+ caption: string;
130
+ };
131
+ };
132
+ }, {
133
+ root: string[];
134
+ caption: string[];
135
+ header: string[];
136
+ body: string;
137
+ footer: string[];
138
+ row: string[];
139
+ columnHeader: string[];
140
+ cell: string[];
141
+ }, import("tailwind-variants").TVReturnType<{
142
+ variant: {
143
+ line: {
144
+ root: string;
145
+ row: string;
146
+ };
147
+ outline: {
148
+ root: string;
149
+ };
150
+ striped: {
151
+ row: string;
152
+ };
153
+ };
154
+ interactive: {
155
+ true: {
156
+ row: string;
157
+ };
158
+ };
159
+ size: {
160
+ sm: {
161
+ cell: string;
162
+ columnHeader: string;
163
+ caption: string;
164
+ };
165
+ md: {
166
+ cell: string;
167
+ columnHeader: string;
168
+ caption: string;
169
+ };
170
+ lg: {
171
+ cell: string;
172
+ columnHeader: string;
173
+ caption: string;
174
+ };
175
+ };
176
+ stickyHeader: {
177
+ true: {
178
+ columnHeader: string;
179
+ };
180
+ };
181
+ stickyFirstColumn: {
182
+ true: {
183
+ columnHeader: string[];
184
+ cell: string[];
185
+ };
186
+ };
187
+ showColumnBorder: {
188
+ true: {
189
+ columnHeader: string;
190
+ cell: string;
191
+ };
192
+ };
193
+ captionPlacement: {
194
+ top: {
195
+ caption: string;
196
+ };
197
+ bottom: {
198
+ caption: string;
199
+ };
200
+ };
201
+ }, {
202
+ root: string[];
203
+ caption: string[];
204
+ header: string[];
205
+ body: string;
206
+ footer: string[];
207
+ row: string[];
208
+ columnHeader: string[];
209
+ cell: string[];
210
+ }, undefined, unknown, unknown, undefined>>;
211
+ interface TableProps extends VariantProps<typeof tableVariants>, ComponentPropsWithoutRef<'table'> {
212
+ ref?: RefObject<HTMLTableElement>;
213
+ }
214
+ export declare function Table({ variant, size, interactive, stickyHeader, stickyFirstColumn, showColumnBorder, captionPlacement, children, ref, className, ...props }: TableProps): import("react/jsx-runtime").JSX.Element;
215
+ export declare namespace Table {
216
+ var Caption: ({ children, ref, className, ...props }: TableCaptionProps) => import("react/jsx-runtime").JSX.Element;
217
+ var Header: ({ children, ref, className, ...props }: TableHeaderProps) => import("react/jsx-runtime").JSX.Element;
218
+ var Body: ({ children, ref, className, ...props }: TableBodyProps) => import("react/jsx-runtime").JSX.Element;
219
+ var Footer: ({ children, ref, className, ...props }: TableFooterProps) => import("react/jsx-runtime").JSX.Element;
220
+ var Row: ({ children, ref, className, selected, ...props }: TableRowProps) => import("react/jsx-runtime").JSX.Element;
221
+ var ColumnHeader: ({ children, ref, className, numeric, ...props }: TableColumnHeaderProps) => import("react/jsx-runtime").JSX.Element;
222
+ var Cell: ({ children, ref, className, numeric, ...props }: TableCellProps) => import("react/jsx-runtime").JSX.Element;
223
+ var displayName: string;
224
+ }
225
+ interface TableCaptionProps extends ComponentPropsWithoutRef<'caption'> {
226
+ ref?: RefObject<HTMLTableCaptionElement>;
227
+ }
228
+ interface TableHeaderProps extends ComponentPropsWithoutRef<'thead'> {
229
+ ref?: RefObject<HTMLTableSectionElement>;
230
+ }
231
+ interface TableBodyProps extends ComponentPropsWithoutRef<'tbody'> {
232
+ ref?: RefObject<HTMLTableSectionElement>;
233
+ }
234
+ interface TableFooterProps extends ComponentPropsWithoutRef<'tfoot'> {
235
+ ref?: RefObject<HTMLTableSectionElement>;
236
+ }
237
+ interface TableRowProps extends ComponentPropsWithoutRef<'tr'> {
238
+ ref?: RefObject<HTMLTableRowElement>;
239
+ selected?: boolean;
240
+ }
241
+ interface TableColumnHeaderProps extends ComponentPropsWithoutRef<'th'> {
242
+ ref?: RefObject<HTMLTableCellElement>;
243
+ numeric?: boolean;
244
+ }
245
+ interface TableCellProps extends ComponentPropsWithoutRef<'td'> {
246
+ ref?: RefObject<HTMLTableCellElement>;
247
+ numeric?: boolean;
248
+ }
249
+ export {};
250
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/organisms/table.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EAGf,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA4FjB,CAAA;AAyBF,UAAU,UACR,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC,EACxC,wBAAwB,CAAC,OAAO,CAAC;IACnC,GAAG,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAA;CAClC;AAED,wBAAgB,KAAK,CAAC,EACpB,OAAO,EACP,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACT,EAAE,UAAU,2CA6BZ;yBAzCe,KAAK;0DAqDlB,iBAAiB;yDAoBjB,gBAAgB;uDAoBhB,cAAc;yDAoBd,gBAAgB;gEAsBhB,aAAa;wEA2Bb,sBAAsB;gEA4BtB,cAAc;;;AAlJjB,UAAU,iBAAkB,SAAQ,wBAAwB,CAAC,SAAS,CAAC;IACrE,GAAG,CAAC,EAAE,SAAS,CAAC,uBAAuB,CAAC,CAAA;CACzC;AAkBD,UAAU,gBAAiB,SAAQ,wBAAwB,CAAC,OAAO,CAAC;IAClE,GAAG,CAAC,EAAE,SAAS,CAAC,uBAAuB,CAAC,CAAA;CACzC;AAkBD,UAAU,cAAe,SAAQ,wBAAwB,CAAC,OAAO,CAAC;IAChE,GAAG,CAAC,EAAE,SAAS,CAAC,uBAAuB,CAAC,CAAA;CACzC;AAkBD,UAAU,gBAAiB,SAAQ,wBAAwB,CAAC,OAAO,CAAC;IAClE,GAAG,CAAC,EAAE,SAAS,CAAC,uBAAuB,CAAC,CAAA;CACzC;AAkBD,UAAU,aAAc,SAAQ,wBAAwB,CAAC,IAAI,CAAC;IAC5D,GAAG,CAAC,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAwBD,UAAU,sBAAuB,SAAQ,wBAAwB,CAAC,IAAI,CAAC;IACrE,GAAG,CAAC,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAyBD,UAAU,cAAe,SAAQ,wBAAwB,CAAC,IAAI,CAAC;IAC7D,GAAG,CAAC,EAAE,SAAS,CAAC,oBAAoB,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB"}
@@ -0,0 +1,15 @@
1
+ import type { IconType } from '../atoms/icon';
2
+ import { type AccordionProps } from '../molecules/accordion';
3
+ export interface AccordionItem {
4
+ value: string;
5
+ title: string;
6
+ content: React.ReactNode;
7
+ disabled?: boolean;
8
+ }
9
+ export interface AccordionTemplateProps extends Omit<AccordionProps, 'children'> {
10
+ items: AccordionItem[];
11
+ showIndicator?: boolean;
12
+ indicatorIcon?: IconType;
13
+ }
14
+ export declare function AccordionTemplate({ items, showIndicator, indicatorIcon, variant, size, shadow, collapsible, multiple, defaultValue, value, onChange, ref, className, ...accordionProps }: AccordionTemplateProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/templates/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IACxC,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,QAAQ,CAAA;CACzB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,aAAoB,EACpB,aAA8C,EAC9C,OAAmB,EACnB,IAAW,EACX,MAAe,EACf,WAAkB,EAClB,QAAgB,EAChB,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,GAAG,EACH,SAAS,EACT,GAAG,cAAc,EAClB,EAAE,sBAAsB,2CA8BxB"}
@@ -0,0 +1,13 @@
1
+ import type { ElementType } from 'react';
2
+ import type { IconType } from '../atoms/icon';
3
+ import { type CarouselRootProps, type CarouselSlide } from '../molecules/carousel';
4
+ export interface CarouselTemplateProps<T extends ElementType> extends Omit<CarouselRootProps<T>, 'children' | 'slideCount'> {
5
+ slides: CarouselSlide[];
6
+ showControls?: boolean;
7
+ showIndicators?: boolean;
8
+ showAutoplay?: boolean;
9
+ prevIcon?: IconType;
10
+ nextIcon?: IconType;
11
+ }
12
+ export declare function CarouselTemplate<T extends ElementType>({ slides, showControls, showIndicators, showAutoplay, prevIcon, nextIcon, size, objectFit, aspectRatio, orientation, loop, autoplay, allowMouseDrag, slidesPerPage, slidesPerMove, spacing, padding, imageAs, width, height, className, onPageChange, ...carouselProps }: CarouselTemplateProps<T>): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=carousel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../src/templates/carousel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,WAAW,CAC1D,SAAQ,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IAC7D,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,EAAE,EACtD,MAAM,EACN,YAAmB,EACnB,cAAqB,EACrB,YAAoB,EACpB,QAAqC,EACrC,QAAqC,EACrC,IAAI,EACJ,SAAS,EACT,WAAW,EACX,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,aAAa,EACb,aAAa,EACb,OAAO,EACP,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EACT,YAAY,EACZ,GAAG,aAAa,EACjB,EAAE,qBAAqB,CAAC,CAAC,CAAC,2CAgD1B"}
@@ -0,0 +1,14 @@
1
+ import type { Ref } from 'react';
2
+ import type { IconType } from '../atoms/icon';
3
+ import { type NumericInputProps } from '../atoms/numeric-input';
4
+ export interface NumericInputTemplateProps extends Omit<NumericInputProps, 'children' | 'ref'> {
5
+ showControls?: boolean;
6
+ showScrubber?: boolean;
7
+ controlsPosition?: 'right' | 'sides';
8
+ incrementIcon?: IconType;
9
+ decrementIcon?: IconType;
10
+ className?: string;
11
+ ref?: Ref<HTMLDivElement>;
12
+ }
13
+ export declare function NumericInputTemplate({ showControls, showScrubber, controlsPosition, incrementIcon, decrementIcon, className, ref, ...numericInputProps }: NumericInputTemplateProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=numeric-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-input.d.ts","sourceRoot":"","sources":["../../../src/templates/numeric-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE7E,MAAM,WAAW,yBACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,KAAK,CAAC;IACnD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IACpC,aAAa,CAAC,EAAE,QAAQ,CAAA;IACxB,aAAa,CAAC,EAAE,QAAQ,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,EACnC,YAAmB,EACnB,YAAoB,EACpB,gBAA0B,EAC1B,aAAoD,EACpD,aAAoD,EACpD,SAAS,EACT,GAAG,EACH,GAAG,iBAAiB,EACrB,EAAE,yBAAyB,2CAgC3B"}
@@ -0,0 +1,33 @@
1
+ import { type BadgeProps } from '../atoms/badge';
2
+ import { type ProductCardProps } from '../molecules/product-card';
3
+ export interface ProductCardTemplateProps extends Pick<ProductCardProps, 'layout'> {
4
+ image?: {
5
+ src: string;
6
+ alt: string;
7
+ };
8
+ name?: string;
9
+ price?: string;
10
+ originalPrice?: string;
11
+ badges?: BadgeProps[];
12
+ rating?: {
13
+ value: number;
14
+ /** Total number of rating items to display (e.g., 5 for 5 stars) */
15
+ count?: number;
16
+ /** Number of reviews/ratings from users */
17
+ reviewCount?: number;
18
+ };
19
+ stock?: {
20
+ status?: 'in-stock' | 'limited-stock' | 'out-of-stock';
21
+ label: string;
22
+ };
23
+ showActions?: boolean;
24
+ onAddToCart?: () => void;
25
+ onViewDetails?: () => void;
26
+ onAddToWishlist?: () => void;
27
+ cartButtonText?: string;
28
+ detailButtonText?: string;
29
+ wishlistButtonText?: string;
30
+ className?: string;
31
+ }
32
+ export declare function ProductCardTemplate({ image, name, price, originalPrice, badges, rating, stock, showActions, onAddToCart, onViewDetails, onAddToWishlist, cartButtonText, detailButtonText, wishlistButtonText, layout, className, }: ProductCardTemplateProps): import("react/jsx-runtime").JSX.Element;
33
+ //# sourceMappingURL=product-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../../../src/templates/product-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAG9E,MAAM,WAAW,wBACf,SAAQ,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;IACxC,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAA;QACb,oEAAoE;QACpE,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,2CAA2C;QAC3C,WAAW,CAAC,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,UAAU,GAAG,eAAe,GAAG,cAAc,CAAA;QACtD,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,IAAI,EACJ,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,EACL,WAAkB,EAClB,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAA8B,EAC9B,gBAAiC,EACjC,kBAAsC,EACtC,MAAiB,EACjB,SAAS,GACV,EAAE,wBAAwB,2CAiG1B"}
@@ -0,0 +1,16 @@
1
+ import type * as React from 'react';
2
+ import type { Ref } from 'react';
3
+ import { type TabsProps } from '../molecules/tabs';
4
+ export interface TabItem {
5
+ value: string;
6
+ label: string;
7
+ content: React.ReactNode;
8
+ disabled?: boolean;
9
+ }
10
+ export interface TabsTemplateProps extends Omit<TabsProps, 'children' | 'ref'> {
11
+ items: TabItem[];
12
+ showIndicator?: boolean;
13
+ ref?: Ref<HTMLDivElement>;
14
+ }
15
+ export declare function TabsTemplate({ items, showIndicator, variant, size, fitted, justify, orientation, defaultValue, value, onValueChange, ref, className, ...tabsProps }: TabsTemplateProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/templates/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAA;AACnC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAExD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,KAAK,CAAC;IAC5E,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,aAAqB,EACrB,OAAmB,EACnB,IAAW,EACX,MAAc,EACd,OAAiB,EACjB,WAA0B,EAC1B,YAAY,EACZ,KAAK,EACL,aAAa,EACb,GAAG,EACH,SAAS,EACT,GAAG,SAAS,EACb,EAAE,iBAAiB,2CAmCnB"}
@@ -0,0 +1,19 @@
1
+ export type * as Accordion from '@zag-js/accordion';
2
+ export type * as Carousel from '@zag-js/carousel';
3
+ export type * as Checkbox from '@zag-js/checkbox';
4
+ export type * as Combobox from '@zag-js/combobox';
5
+ export type * as Dialog from '@zag-js/dialog';
6
+ export type * as Menu from '@zag-js/menu';
7
+ export type * as NumberInput from '@zag-js/number-input';
8
+ export type * as Pagination from '@zag-js/pagination';
9
+ export type * as Popover from '@zag-js/popover';
10
+ export type * as RatingGroup from '@zag-js/rating-group';
11
+ export type * as Select from '@zag-js/select';
12
+ export type * as Slider from '@zag-js/slider';
13
+ export type * as Steps from '@zag-js/steps';
14
+ export type * as Switch from '@zag-js/switch';
15
+ export type * as Tabs from '@zag-js/tabs';
16
+ export type * as Toast from '@zag-js/toast';
17
+ export type * as Tooltip from '@zag-js/tooltip';
18
+ export type * as TreeView from '@zag-js/tree-view';
19
+ //# sourceMappingURL=zag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zag.d.ts","sourceRoot":"","sources":["../../../src/types/zag.ts"],"names":[],"mappings":"AAAA,YAAY,KAAK,SAAS,MAAM,mBAAmB,CAAA;AACnD,YAAY,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AACjD,YAAY,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AACjD,YAAY,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AACjD,YAAY,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAC7C,YAAY,KAAK,IAAI,MAAM,cAAc,CAAA;AACzC,YAAY,KAAK,WAAW,MAAM,sBAAsB,CAAA;AACxD,YAAY,KAAK,UAAU,MAAM,oBAAoB,CAAA;AACrD,YAAY,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC/C,YAAY,KAAK,WAAW,MAAM,sBAAsB,CAAA;AACxD,YAAY,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAC7C,YAAY,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAC7C,YAAY,KAAK,KAAK,MAAM,eAAe,CAAA;AAC3C,YAAY,KAAK,MAAM,MAAM,gBAAgB,CAAA;AAC7C,YAAY,KAAK,IAAI,MAAM,cAAc,CAAA;AACzC,YAAY,KAAK,KAAK,MAAM,eAAe,CAAA;AAC3C,YAAY,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC/C,YAAY,KAAK,QAAQ,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { TV } from 'tailwind-variants';
2
+ export declare const tv: TV;
3
+ export declare function slugify(str: string): string;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAA;AAS3C,eAAO,MAAM,EAAE,EAAE,EAMf,CAAA;AAEF,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,UASlC"}
@@ -0,0 +1,37 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Accordion } from "../molecules/accordion.js";
3
+ function AccordionTemplate({ items, showIndicator = true, indicatorIcon = 'token-icon-accordion-chevron', variant = 'default', size = 'md', shadow = 'none', collapsible = true, multiple = false, defaultValue, value, onChange, ref, className, ...accordionProps }) {
4
+ return /*#__PURE__*/ jsx(Accordion, {
5
+ ref: ref,
6
+ variant: variant,
7
+ size: size,
8
+ shadow: shadow,
9
+ collapsible: collapsible,
10
+ multiple: multiple,
11
+ defaultValue: defaultValue,
12
+ value: value,
13
+ onChange: onChange,
14
+ className: className,
15
+ ...accordionProps,
16
+ children: items.map((item)=>/*#__PURE__*/ jsxs(Accordion.Item, {
17
+ value: item.value,
18
+ disabled: item.disabled,
19
+ children: [
20
+ /*#__PURE__*/ jsxs(Accordion.Header, {
21
+ children: [
22
+ /*#__PURE__*/ jsx(Accordion.Title, {
23
+ children: item.title
24
+ }),
25
+ showIndicator && /*#__PURE__*/ jsx(Accordion.Indicator, {
26
+ icon: indicatorIcon
27
+ })
28
+ ]
29
+ }),
30
+ /*#__PURE__*/ jsx(Accordion.Content, {
31
+ children: item.content
32
+ })
33
+ ]
34
+ }, item.value))
35
+ });
36
+ }
37
+ export { AccordionTemplate };
@@ -0,0 +1,55 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Carousel } from "../molecules/carousel.js";
3
+ function CarouselTemplate({ slides, showControls = true, showIndicators = true, showAutoplay = false, prevIcon = 'token-icon-carousel-prev', nextIcon = 'token-icon-carousel-next', size, objectFit, aspectRatio, orientation, loop, autoplay, allowMouseDrag, slidesPerPage, slidesPerMove, spacing, padding, imageAs, width, height, className, onPageChange, ...carouselProps }) {
4
+ return /*#__PURE__*/ jsxs(Carousel, {
5
+ size: size,
6
+ objectFit: objectFit,
7
+ aspectRatio: aspectRatio,
8
+ orientation: orientation,
9
+ slideCount: slides.length,
10
+ loop: loop,
11
+ autoplay: autoplay,
12
+ allowMouseDrag: allowMouseDrag,
13
+ slidesPerPage: slidesPerPage,
14
+ slidesPerMove: slidesPerMove,
15
+ spacing: spacing,
16
+ padding: padding,
17
+ imageAs: imageAs,
18
+ width: width,
19
+ height: height,
20
+ className: className,
21
+ onPageChange: onPageChange,
22
+ ...carouselProps,
23
+ children: [
24
+ /*#__PURE__*/ jsx(Carousel.Slides, {
25
+ slides: slides,
26
+ imageAs: imageAs,
27
+ width: width,
28
+ height: height
29
+ }),
30
+ (showControls || showIndicators) && /*#__PURE__*/ jsxs(Carousel.Control, {
31
+ children: [
32
+ showControls && /*#__PURE__*/ jsx(Carousel.Previous, {
33
+ icon: prevIcon
34
+ }),
35
+ showControls && showIndicators && /*#__PURE__*/ jsx("div", {
36
+ className: "flex-1"
37
+ }),
38
+ showIndicators && /*#__PURE__*/ jsx(Carousel.Indicators, {
39
+ children: slides.map((slide, index)=>/*#__PURE__*/ jsx(Carousel.Indicator, {
40
+ index: index
41
+ }, slide.id))
42
+ }),
43
+ showControls && showIndicators && /*#__PURE__*/ jsx("div", {
44
+ className: "flex-1"
45
+ }),
46
+ showControls && /*#__PURE__*/ jsx(Carousel.Next, {
47
+ icon: nextIcon
48
+ })
49
+ ]
50
+ }),
51
+ showAutoplay && /*#__PURE__*/ jsx(Carousel.Autoplay, {})
52
+ ]
53
+ });
54
+ }
55
+ export { CarouselTemplate };
@@ -0,0 +1,49 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { NumericInput } from "../atoms/numeric-input.js";
3
+ function NumericInputTemplate({ showControls = true, showScrubber = false, controlsPosition = 'right', incrementIcon = 'token-icon-numeric-input-increment', decrementIcon = 'token-icon-numeric-input-decrement', className, ref, ...numericInputProps }) {
4
+ if ('right' === controlsPosition) return /*#__PURE__*/ jsx(NumericInput, {
5
+ ...numericInputProps,
6
+ ref: ref,
7
+ className: className,
8
+ children: /*#__PURE__*/ jsxs(NumericInput.Control, {
9
+ children: [
10
+ showScrubber && /*#__PURE__*/ jsx(NumericInput.Scrubber, {}),
11
+ /*#__PURE__*/ jsx(NumericInput.Input, {}),
12
+ showControls && /*#__PURE__*/ jsxs(NumericInput.TriggerContainer, {
13
+ children: [
14
+ /*#__PURE__*/ jsx(NumericInput.IncrementTrigger, {
15
+ icon: incrementIcon
16
+ }),
17
+ /*#__PURE__*/ jsx(NumericInput.DecrementTrigger, {
18
+ icon: decrementIcon
19
+ })
20
+ ]
21
+ })
22
+ ]
23
+ })
24
+ });
25
+ return /*#__PURE__*/ jsx(NumericInput, {
26
+ ...numericInputProps,
27
+ ref: ref,
28
+ className: className,
29
+ children: /*#__PURE__*/ jsxs("div", {
30
+ className: "flex items-center gap-50",
31
+ children: [
32
+ showControls && /*#__PURE__*/ jsx(NumericInput.DecrementTrigger, {
33
+ icon: decrementIcon
34
+ }),
35
+ /*#__PURE__*/ jsxs(NumericInput.Control, {
36
+ className: "flex-1",
37
+ children: [
38
+ showScrubber && /*#__PURE__*/ jsx(NumericInput.Scrubber, {}),
39
+ /*#__PURE__*/ jsx(NumericInput.Input, {})
40
+ ]
41
+ }),
42
+ showControls && /*#__PURE__*/ jsx(NumericInput.IncrementTrigger, {
43
+ icon: incrementIcon
44
+ })
45
+ ]
46
+ })
47
+ });
48
+ }
49
+ export { NumericInputTemplate };
@@ -0,0 +1,92 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Badge } from "../atoms/badge.js";
3
+ import { ProductCard } from "../molecules/product-card.js";
4
+ import { slugify } from "../utils.js";
5
+ function ProductCardTemplate({ image, name, price, originalPrice, badges, rating, stock, showActions = true, onAddToCart, onViewDetails, onAddToWishlist, cartButtonText = 'Add to Cart', detailButtonText = 'View Details', wishlistButtonText = 'Add to Wishlist', layout = 'column', className }) {
6
+ return /*#__PURE__*/ jsxs(ProductCard, {
7
+ layout: layout,
8
+ className: className,
9
+ children: [
10
+ image && /*#__PURE__*/ jsx(ProductCard.Image, {
11
+ src: image.src,
12
+ alt: image.alt
13
+ }),
14
+ badges && badges.length > 0 && /*#__PURE__*/ jsx(ProductCard.Badges, {
15
+ children: badges.map((badge)=>{
16
+ if ('dynamic' === badge.variant) return /*#__PURE__*/ jsx(Badge, {
17
+ variant: "dynamic",
18
+ bgColor: badge.bgColor,
19
+ fgColor: badge.fgColor,
20
+ borderColor: badge.borderColor,
21
+ children: badge.children
22
+ }, slugify(badge.children));
23
+ return /*#__PURE__*/ jsx(Badge, {
24
+ variant: badge.variant,
25
+ children: badge.children
26
+ }, slugify(badge.children));
27
+ })
28
+ }),
29
+ name && /*#__PURE__*/ jsx(ProductCard.Name, {
30
+ children: name
31
+ }),
32
+ (price || originalPrice) && /*#__PURE__*/ jsxs("div", {
33
+ className: "flex items-baseline gap-100",
34
+ children: [
35
+ originalPrice && /*#__PURE__*/ jsx("span", {
36
+ className: "text-fg-muted line-through",
37
+ children: originalPrice
38
+ }),
39
+ price && /*#__PURE__*/ jsx(ProductCard.Price, {
40
+ children: price
41
+ })
42
+ ]
43
+ }),
44
+ rating && /*#__PURE__*/ jsxs("div", {
45
+ className: "flex items-center gap-100",
46
+ children: [
47
+ /*#__PURE__*/ jsx(ProductCard.Rating, {
48
+ rating: {
49
+ value: rating.value,
50
+ count: rating.count
51
+ }
52
+ }),
53
+ rating.reviewCount && /*#__PURE__*/ jsxs("span", {
54
+ className: "text-fg-muted text-sm",
55
+ children: [
56
+ "(",
57
+ rating.reviewCount,
58
+ ")"
59
+ ]
60
+ })
61
+ ]
62
+ }),
63
+ stock && /*#__PURE__*/ jsx(ProductCard.Stock, {
64
+ status: stock.status || 'in-stock',
65
+ children: stock.label
66
+ }),
67
+ showActions && (onAddToCart || onViewDetails || onAddToWishlist) && /*#__PURE__*/ jsxs(ProductCard.Actions, {
68
+ children: [
69
+ onAddToCart && /*#__PURE__*/ jsx(ProductCard.Button, {
70
+ buttonVariant: "cart",
71
+ icon: "token-icon-cart-button",
72
+ onClick: onAddToCart,
73
+ children: cartButtonText
74
+ }),
75
+ onViewDetails && /*#__PURE__*/ jsx(ProductCard.Button, {
76
+ buttonVariant: "detail",
77
+ icon: "token-icon-detail-button",
78
+ onClick: onViewDetails,
79
+ children: detailButtonText
80
+ }),
81
+ onAddToWishlist && /*#__PURE__*/ jsx(ProductCard.Button, {
82
+ buttonVariant: "wishlist",
83
+ icon: "token-icon-wishlist-button",
84
+ onClick: onAddToWishlist,
85
+ children: wishlistButtonText
86
+ })
87
+ ]
88
+ })
89
+ ]
90
+ });
91
+ }
92
+ export { ProductCardTemplate };