@tribepad/themis 1.0.0 → 1.0.1

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 (326) hide show
  1. package/dist/elements/Accordion/index.js +325 -66
  2. package/dist/elements/Accordion/index.js.map +1 -1
  3. package/dist/elements/Accordion/index.mjs +317 -3
  4. package/dist/elements/Accordion/index.mjs.map +1 -1
  5. package/dist/elements/Avatar/index.js +461 -45
  6. package/dist/elements/Avatar/index.js.map +1 -1
  7. package/dist/elements/Avatar/index.mjs +456 -3
  8. package/dist/elements/Avatar/index.mjs.map +1 -1
  9. package/dist/elements/Badge/index.js +238 -36
  10. package/dist/elements/Badge/index.js.map +1 -1
  11. package/dist/elements/Badge/index.mjs +234 -4
  12. package/dist/elements/Badge/index.mjs.map +1 -1
  13. package/dist/elements/Breadcrumbs/index.js +808 -39
  14. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  15. package/dist/elements/Breadcrumbs/index.mjs +810 -7
  16. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  17. package/dist/elements/Button/index.js +282 -19
  18. package/dist/elements/Button/index.js.map +1 -1
  19. package/dist/elements/Button/index.mjs +283 -4
  20. package/dist/elements/Button/index.mjs.map +1 -1
  21. package/dist/elements/ButtonGroup/index.js +229 -56
  22. package/dist/elements/ButtonGroup/index.js.map +1 -1
  23. package/dist/elements/ButtonGroup/index.mjs +222 -3
  24. package/dist/elements/ButtonGroup/index.mjs.map +1 -1
  25. package/dist/elements/Card/Card.d.ts.map +1 -1
  26. package/dist/elements/Card/index.js +563 -67
  27. package/dist/elements/Card/index.js.map +1 -1
  28. package/dist/elements/Card/index.mjs +560 -6
  29. package/dist/elements/Card/index.mjs.map +1 -1
  30. package/dist/elements/Carousel/index.js +782 -14
  31. package/dist/elements/Carousel/index.js.map +1 -1
  32. package/dist/elements/Carousel/index.mjs +786 -8
  33. package/dist/elements/Carousel/index.mjs.map +1 -1
  34. package/dist/elements/Chart/index.js +1833 -36
  35. package/dist/elements/Chart/index.js.map +1 -1
  36. package/dist/elements/Chart/index.mjs +1832 -4
  37. package/dist/elements/Chart/index.mjs.map +1 -1
  38. package/dist/elements/Checkbox/index.js +310 -39
  39. package/dist/elements/Checkbox/index.js.map +1 -1
  40. package/dist/elements/Checkbox/index.mjs +306 -4
  41. package/dist/elements/Checkbox/index.mjs.map +1 -1
  42. package/dist/elements/CheckboxGroup/index.js +445 -59
  43. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  44. package/dist/elements/CheckboxGroup/index.mjs +439 -4
  45. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  46. package/dist/elements/DatePicker/index.js +871 -89
  47. package/dist/elements/DatePicker/index.js.map +1 -1
  48. package/dist/elements/DatePicker/index.mjs +853 -4
  49. package/dist/elements/DatePicker/index.mjs.map +1 -1
  50. package/dist/elements/Dropdown/index.js +189 -35
  51. package/dist/elements/Dropdown/index.js.map +1 -1
  52. package/dist/elements/Dropdown/index.mjs +184 -2
  53. package/dist/elements/Dropdown/index.mjs.map +1 -1
  54. package/dist/elements/FileField/index.js +1532 -129
  55. package/dist/elements/FileField/index.js.map +1 -1
  56. package/dist/elements/FileField/index.mjs +1507 -7
  57. package/dist/elements/FileField/index.mjs.map +1 -1
  58. package/dist/elements/FormLayout/index.js +166 -11
  59. package/dist/elements/FormLayout/index.js.map +1 -1
  60. package/dist/elements/FormLayout/index.mjs +167 -2
  61. package/dist/elements/FormLayout/index.mjs.map +1 -1
  62. package/dist/elements/Modal/index.js +228 -46
  63. package/dist/elements/Modal/index.js.map +1 -1
  64. package/dist/elements/Modal/index.mjs +220 -1
  65. package/dist/elements/Modal/index.mjs.map +1 -1
  66. package/dist/elements/NumberField/index.js +659 -48
  67. package/dist/elements/NumberField/index.js.map +1 -1
  68. package/dist/elements/NumberField/index.mjs +654 -6
  69. package/dist/elements/NumberField/index.mjs.map +1 -1
  70. package/dist/elements/OTPInput/index.js +729 -6
  71. package/dist/elements/OTPInput/index.js.map +1 -1
  72. package/dist/elements/OTPInput/index.mjs +732 -2
  73. package/dist/elements/OTPInput/index.mjs.map +1 -1
  74. package/dist/elements/Panel/index.js +326 -27
  75. package/dist/elements/Panel/index.js.map +1 -1
  76. package/dist/elements/Panel/index.mjs +323 -2
  77. package/dist/elements/Panel/index.mjs.map +1 -1
  78. package/dist/elements/Progress/index.js +181 -22
  79. package/dist/elements/Progress/index.js.map +1 -1
  80. package/dist/elements/Progress/index.mjs +181 -3
  81. package/dist/elements/Progress/index.mjs.map +1 -1
  82. package/dist/elements/RadioGroup/index.js +358 -34
  83. package/dist/elements/RadioGroup/index.js.map +1 -1
  84. package/dist/elements/RadioGroup/index.mjs +359 -4
  85. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  86. package/dist/elements/Resizable/components/ResizableHandle.d.ts +0 -8
  87. package/dist/elements/Resizable/components/ResizableHandle.d.ts.map +1 -1
  88. package/dist/elements/Resizable/components/ResizablePanel.d.ts +0 -8
  89. package/dist/elements/Resizable/components/ResizablePanel.d.ts.map +1 -1
  90. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts +0 -8
  91. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts.map +1 -1
  92. package/dist/elements/Resizable/components/ResizablePopover.d.ts +0 -8
  93. package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -1
  94. package/dist/elements/Resizable/index.js +1568 -51
  95. package/dist/elements/Resizable/index.js.map +1 -1
  96. package/dist/elements/Resizable/index.mjs +1566 -6
  97. package/dist/elements/Resizable/index.mjs.map +1 -1
  98. package/dist/elements/Select/index.js +580 -22
  99. package/dist/elements/Select/index.js.map +1 -1
  100. package/dist/elements/Select/index.mjs +582 -2
  101. package/dist/elements/Select/index.mjs.map +1 -1
  102. package/dist/elements/Skeleton/index.js +77 -15
  103. package/dist/elements/Skeleton/index.js.map +1 -1
  104. package/dist/elements/Skeleton/index.mjs +78 -3
  105. package/dist/elements/Skeleton/index.mjs.map +1 -1
  106. package/dist/elements/Switch/index.js +153 -21
  107. package/dist/elements/Switch/index.js.map +1 -1
  108. package/dist/elements/Switch/index.mjs +149 -5
  109. package/dist/elements/Switch/index.mjs.map +1 -1
  110. package/dist/elements/Table/index.js +589 -68
  111. package/dist/elements/Table/index.js.map +1 -1
  112. package/dist/elements/Table/index.mjs +578 -5
  113. package/dist/elements/Table/index.mjs.map +1 -1
  114. package/dist/elements/Tabs/index.js +328 -63
  115. package/dist/elements/Tabs/index.js.map +1 -1
  116. package/dist/elements/Tabs/index.mjs +320 -3
  117. package/dist/elements/Tabs/index.mjs.map +1 -1
  118. package/dist/elements/TextField/index.js +695 -51
  119. package/dist/elements/TextField/index.js.map +1 -1
  120. package/dist/elements/TextField/index.mjs +684 -7
  121. package/dist/elements/TextField/index.mjs.map +1 -1
  122. package/dist/elements/TimeField/index.js +244 -33
  123. package/dist/elements/TimeField/index.js.map +1 -1
  124. package/dist/elements/TimeField/index.mjs +238 -2
  125. package/dist/elements/TimeField/index.mjs.map +1 -1
  126. package/dist/elements/Toast/index.js +727 -48
  127. package/dist/elements/Toast/index.js.map +1 -1
  128. package/dist/elements/Toast/index.mjs +724 -5
  129. package/dist/elements/Toast/index.mjs.map +1 -1
  130. package/dist/elements/Tooltip/index.js +315 -49
  131. package/dist/elements/Tooltip/index.js.map +1 -1
  132. package/dist/elements/Tooltip/index.mjs +310 -4
  133. package/dist/elements/Tooltip/index.mjs.map +1 -1
  134. package/dist/elements/index.js +12417 -799
  135. package/dist/elements/index.js.map +1 -1
  136. package/dist/elements/index.mjs +12233 -40
  137. package/dist/elements/index.mjs.map +1 -1
  138. package/dist/index.js +12452 -825
  139. package/dist/index.js.map +1 -1
  140. package/dist/index.mjs +12262 -42
  141. package/dist/index.mjs.map +1 -1
  142. package/dist/schemas/index.js +47 -21
  143. package/dist/schemas/index.js.map +1 -1
  144. package/dist/schemas/index.mjs +47 -2
  145. package/dist/schemas/index.mjs.map +1 -1
  146. package/dist/styles/index.js +161 -147
  147. package/dist/styles/index.js.map +1 -1
  148. package/dist/styles/index.mjs +128 -2
  149. package/dist/styles/index.mjs.map +1 -1
  150. package/dist/utils/index.js +7 -7
  151. package/dist/utils/index.js.map +1 -1
  152. package/dist/utils/index.mjs +9 -2
  153. package/dist/utils/index.mjs.map +1 -1
  154. package/package.json +1 -1
  155. package/dist/Carousel-NTZX5TOW.js +0 -16
  156. package/dist/Carousel-NTZX5TOW.js.map +0 -1
  157. package/dist/Carousel-YH3DOQJU.mjs +0 -7
  158. package/dist/Carousel-YH3DOQJU.mjs.map +0 -1
  159. package/dist/chunk-2HIUTHMU.mjs +0 -234
  160. package/dist/chunk-2HIUTHMU.mjs.map +0 -1
  161. package/dist/chunk-34GTFTDO.js +0 -431
  162. package/dist/chunk-34GTFTDO.js.map +0 -1
  163. package/dist/chunk-3H7ASYR7.js +0 -250
  164. package/dist/chunk-3H7ASYR7.js.map +0 -1
  165. package/dist/chunk-3IEN7JOP.js +0 -316
  166. package/dist/chunk-3IEN7JOP.js.map +0 -1
  167. package/dist/chunk-3JHN4GAL.js +0 -326
  168. package/dist/chunk-3JHN4GAL.js.map +0 -1
  169. package/dist/chunk-3MJPASQU.js +0 -232
  170. package/dist/chunk-3MJPASQU.js.map +0 -1
  171. package/dist/chunk-3XD2JUL3.js +0 -572
  172. package/dist/chunk-3XD2JUL3.js.map +0 -1
  173. package/dist/chunk-3YOY2VJ6.js +0 -189
  174. package/dist/chunk-3YOY2VJ6.js.map +0 -1
  175. package/dist/chunk-4DU5JSXB.js +0 -408
  176. package/dist/chunk-4DU5JSXB.js.map +0 -1
  177. package/dist/chunk-4E4E2GSS.js +0 -352
  178. package/dist/chunk-4E4E2GSS.js.map +0 -1
  179. package/dist/chunk-4NHAP4AN.mjs +0 -3
  180. package/dist/chunk-4NHAP4AN.mjs.map +0 -1
  181. package/dist/chunk-4S33J5NY.mjs +0 -415
  182. package/dist/chunk-4S33J5NY.mjs.map +0 -1
  183. package/dist/chunk-5SMGRT3G.mjs +0 -354
  184. package/dist/chunk-5SMGRT3G.mjs.map +0 -1
  185. package/dist/chunk-5SVLJN2C.mjs +0 -22
  186. package/dist/chunk-5SVLJN2C.mjs.map +0 -1
  187. package/dist/chunk-66WTU4EB.mjs +0 -299
  188. package/dist/chunk-66WTU4EB.mjs.map +0 -1
  189. package/dist/chunk-6S25NMOT.mjs +0 -335
  190. package/dist/chunk-6S25NMOT.mjs.map +0 -1
  191. package/dist/chunk-6SP7UB3D.js +0 -4
  192. package/dist/chunk-6SP7UB3D.js.map +0 -1
  193. package/dist/chunk-6TYWWQHM.mjs +0 -565
  194. package/dist/chunk-6TYWWQHM.mjs.map +0 -1
  195. package/dist/chunk-A3YUJA6W.mjs +0 -384
  196. package/dist/chunk-A3YUJA6W.mjs.map +0 -1
  197. package/dist/chunk-A6KEDVUR.js +0 -61
  198. package/dist/chunk-A6KEDVUR.js.map +0 -1
  199. package/dist/chunk-A77RUEWL.js +0 -730
  200. package/dist/chunk-A77RUEWL.js.map +0 -1
  201. package/dist/chunk-AA4IKMPE.mjs +0 -3
  202. package/dist/chunk-AA4IKMPE.mjs.map +0 -1
  203. package/dist/chunk-AKIA6GW6.mjs +0 -163
  204. package/dist/chunk-AKIA6GW6.mjs.map +0 -1
  205. package/dist/chunk-AL6P275L.mjs +0 -435
  206. package/dist/chunk-AL6P275L.mjs.map +0 -1
  207. package/dist/chunk-AZ3RJYTB.js +0 -37
  208. package/dist/chunk-AZ3RJYTB.js.map +0 -1
  209. package/dist/chunk-B5Q4UPL6.js +0 -32
  210. package/dist/chunk-B5Q4UPL6.js.map +0 -1
  211. package/dist/chunk-B6DHPMDP.mjs +0 -335
  212. package/dist/chunk-B6DHPMDP.mjs.map +0 -1
  213. package/dist/chunk-BDXKKMBZ.mjs +0 -184
  214. package/dist/chunk-BDXKKMBZ.mjs.map +0 -1
  215. package/dist/chunk-BL6E2DLZ.mjs +0 -52
  216. package/dist/chunk-BL6E2DLZ.mjs.map +0 -1
  217. package/dist/chunk-CGFDS4XS.mjs +0 -121
  218. package/dist/chunk-CGFDS4XS.mjs.map +0 -1
  219. package/dist/chunk-CJIW5TKI.js +0 -139
  220. package/dist/chunk-CJIW5TKI.js.map +0 -1
  221. package/dist/chunk-CKNISJOQ.js +0 -314
  222. package/dist/chunk-CKNISJOQ.js.map +0 -1
  223. package/dist/chunk-D6CBOECS.mjs +0 -1757
  224. package/dist/chunk-D6CBOECS.mjs.map +0 -1
  225. package/dist/chunk-DDWEVC2S.js +0 -166
  226. package/dist/chunk-DDWEVC2S.js.map +0 -1
  227. package/dist/chunk-DZ556D2F.mjs +0 -176
  228. package/dist/chunk-DZ556D2F.mjs.map +0 -1
  229. package/dist/chunk-E2KQFV3O.mjs +0 -10
  230. package/dist/chunk-E2KQFV3O.mjs.map +0 -1
  231. package/dist/chunk-EMMLADSC.js +0 -126
  232. package/dist/chunk-EMMLADSC.js.map +0 -1
  233. package/dist/chunk-EP4WOI5D.mjs +0 -926
  234. package/dist/chunk-EP4WOI5D.mjs.map +0 -1
  235. package/dist/chunk-FJRXLJC2.mjs +0 -160
  236. package/dist/chunk-FJRXLJC2.mjs.map +0 -1
  237. package/dist/chunk-FKQI434R.js +0 -345
  238. package/dist/chunk-FKQI434R.js.map +0 -1
  239. package/dist/chunk-FPKEAJRZ.mjs +0 -100
  240. package/dist/chunk-FPKEAJRZ.mjs.map +0 -1
  241. package/dist/chunk-FWQYB22U.js +0 -183
  242. package/dist/chunk-FWQYB22U.js.map +0 -1
  243. package/dist/chunk-GD5GHTMA.js +0 -189
  244. package/dist/chunk-GD5GHTMA.js.map +0 -1
  245. package/dist/chunk-GE5XTSDZ.js +0 -447
  246. package/dist/chunk-GE5XTSDZ.js.map +0 -1
  247. package/dist/chunk-GVE47ZAX.mjs +0 -32
  248. package/dist/chunk-GVE47ZAX.mjs.map +0 -1
  249. package/dist/chunk-HK46BT5U.mjs +0 -18
  250. package/dist/chunk-HK46BT5U.mjs.map +0 -1
  251. package/dist/chunk-HQVRMR6N.js +0 -365
  252. package/dist/chunk-HQVRMR6N.js.map +0 -1
  253. package/dist/chunk-HSGBJPJO.mjs +0 -398
  254. package/dist/chunk-HSGBJPJO.mjs.map +0 -1
  255. package/dist/chunk-I3AUTOMZ.mjs +0 -125
  256. package/dist/chunk-I3AUTOMZ.mjs.map +0 -1
  257. package/dist/chunk-IEI5LD5C.mjs +0 -1161
  258. package/dist/chunk-IEI5LD5C.mjs.map +0 -1
  259. package/dist/chunk-IIPTC2X7.mjs +0 -118
  260. package/dist/chunk-IIPTC2X7.mjs.map +0 -1
  261. package/dist/chunk-J7TLHF2Q.js +0 -4
  262. package/dist/chunk-J7TLHF2Q.js.map +0 -1
  263. package/dist/chunk-JJOWXFXQ.mjs +0 -765
  264. package/dist/chunk-JJOWXFXQ.mjs.map +0 -1
  265. package/dist/chunk-JPTSS2OA.mjs +0 -3
  266. package/dist/chunk-JPTSS2OA.mjs.map +0 -1
  267. package/dist/chunk-KFXXRLTP.js +0 -396
  268. package/dist/chunk-KFXXRLTP.js.map +0 -1
  269. package/dist/chunk-KPRRBSG6.mjs +0 -272
  270. package/dist/chunk-KPRRBSG6.mjs.map +0 -1
  271. package/dist/chunk-NFSBGRDB.mjs +0 -57
  272. package/dist/chunk-NFSBGRDB.mjs.map +0 -1
  273. package/dist/chunk-NGJVCFTM.js +0 -219
  274. package/dist/chunk-NGJVCFTM.js.map +0 -1
  275. package/dist/chunk-NSQ6MZJ6.mjs +0 -728
  276. package/dist/chunk-NSQ6MZJ6.mjs.map +0 -1
  277. package/dist/chunk-NYQYHT76.mjs +0 -296
  278. package/dist/chunk-NYQYHT76.mjs.map +0 -1
  279. package/dist/chunk-OLJJGI5B.js +0 -1193
  280. package/dist/chunk-OLJJGI5B.js.map +0 -1
  281. package/dist/chunk-Q3572X2J.js +0 -292
  282. package/dist/chunk-Q3572X2J.js.map +0 -1
  283. package/dist/chunk-QH7N7D4I.mjs +0 -210
  284. package/dist/chunk-QH7N7D4I.mjs.map +0 -1
  285. package/dist/chunk-R7XUIV25.js +0 -466
  286. package/dist/chunk-R7XUIV25.js.map +0 -1
  287. package/dist/chunk-RFFO4KPM.js +0 -135
  288. package/dist/chunk-RFFO4KPM.js.map +0 -1
  289. package/dist/chunk-RFX7QKA7.mjs +0 -180
  290. package/dist/chunk-RFX7QKA7.mjs.map +0 -1
  291. package/dist/chunk-SN5LFAP3.js +0 -940
  292. package/dist/chunk-SN5LFAP3.js.map +0 -1
  293. package/dist/chunk-T4COXKQ3.js +0 -24
  294. package/dist/chunk-T4COXKQ3.js.map +0 -1
  295. package/dist/chunk-TS54QM27.js +0 -125
  296. package/dist/chunk-TS54QM27.js.map +0 -1
  297. package/dist/chunk-UE2S4PCX.mjs +0 -220
  298. package/dist/chunk-UE2S4PCX.mjs.map +0 -1
  299. package/dist/chunk-UTW3QX2A.mjs +0 -282
  300. package/dist/chunk-UTW3QX2A.mjs.map +0 -1
  301. package/dist/chunk-V74LGMAE.js +0 -1767
  302. package/dist/chunk-V74LGMAE.js.map +0 -1
  303. package/dist/chunk-VIREG536.js +0 -12
  304. package/dist/chunk-VIREG536.js.map +0 -1
  305. package/dist/chunk-VY7M7346.js +0 -4
  306. package/dist/chunk-VY7M7346.js.map +0 -1
  307. package/dist/chunk-W3TJOO7H.mjs +0 -319
  308. package/dist/chunk-W3TJOO7H.mjs.map +0 -1
  309. package/dist/chunk-WIUOB36M.js +0 -54
  310. package/dist/chunk-WIUOB36M.js.map +0 -1
  311. package/dist/chunk-WJGLM4CY.js +0 -291
  312. package/dist/chunk-WJGLM4CY.js.map +0 -1
  313. package/dist/chunk-WNURH5OO.mjs +0 -453
  314. package/dist/chunk-WNURH5OO.mjs.map +0 -1
  315. package/dist/chunk-X25TNRSD.mjs +0 -364
  316. package/dist/chunk-X25TNRSD.mjs.map +0 -1
  317. package/dist/chunk-Y3GT7ETK.js +0 -108
  318. package/dist/chunk-Y3GT7ETK.js.map +0 -1
  319. package/dist/chunk-Z4FRNOF6.mjs +0 -115
  320. package/dist/chunk-Z4FRNOF6.mjs.map +0 -1
  321. package/dist/chunk-ZMYLD3BN.js +0 -166
  322. package/dist/chunk-ZMYLD3BN.js.map +0 -1
  323. package/dist/chunk-ZP2KV6EX.js +0 -815
  324. package/dist/chunk-ZP2KV6EX.js.map +0 -1
  325. package/dist/chunk-ZVKXFELU.js +0 -366
  326. package/dist/chunk-ZVKXFELU.js.map +0 -1
@@ -1,291 +0,0 @@
1
- 'use strict';
2
-
3
- var chunk3YOY2VJ6_js = require('./chunk-3YOY2VJ6.js');
4
- var chunkVIREG536_js = require('./chunk-VIREG536.js');
5
- var chunkT4COXKQ3_js = require('./chunk-T4COXKQ3.js');
6
- var react = require('react');
7
- var lucideReact = require('lucide-react');
8
- var zod = require('zod');
9
- var classVarianceAuthority = require('class-variance-authority');
10
- var jsxRuntime = require('react/jsx-runtime');
11
-
12
- var FlipButtonPositionSchema = zod.z.enum([
13
- "top-right",
14
- "top-left",
15
- "bottom-right",
16
- "bottom-left"
17
- ]);
18
- var FlipButtonLabelSchema = zod.z.object({
19
- show: zod.z.string().optional(),
20
- hide: zod.z.string().optional()
21
- });
22
- var FlipButtonIconSchema = zod.z.object({
23
- /** Icon to show on front side button (default: RotateCcw) */
24
- front: zod.z.custom().optional(),
25
- /** Icon to show on back side button (default: same as front or RotateCcw) */
26
- back: zod.z.custom().optional()
27
- });
28
- var CardPropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
29
- // Flip functionality
30
- /** Enable flip animation feature */
31
- flippable: zod.z.boolean().optional().default(false),
32
- /** Content to display on the back side of the card */
33
- backContent: zod.z.custom().optional(),
34
- /** Controlled mode: current flip state */
35
- isFlipped: zod.z.boolean().optional(),
36
- /** Uncontrolled mode: initial flip state */
37
- defaultFlipped: zod.z.boolean().optional().default(false),
38
- /** Callback fired when flip state changes */
39
- onFlipChange: zod.z.custom().optional(),
40
- // Flip button configuration
41
- /** Position of the flip button on the card */
42
- flipButtonPosition: FlipButtonPositionSchema.optional().default("top-right"),
43
- /** Custom labels for the flip button title attribute */
44
- flipButtonLabel: FlipButtonLabelSchema.optional(),
45
- /** Custom icons for the flip button (default: RotateCcw) */
46
- flipButtonIcon: FlipButtonIconSchema.optional(),
47
- /** Duration of flip animation in milliseconds */
48
- flipDuration: zod.z.number().optional().default(600)
49
- });
50
- var CardHeaderPropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
51
- children: zod.z.custom()
52
- });
53
- var CardTitlePropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
54
- /** Heading level (h1-h6) - defaults to h3 */
55
- as: zod.z.enum(["h1", "h2", "h3", "h4", "h5", "h6"]).optional().default("h3"),
56
- children: zod.z.custom()
57
- });
58
- var CardDescriptionPropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
59
- children: zod.z.custom()
60
- });
61
- var CardContentPropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
62
- children: zod.z.custom()
63
- });
64
- var CardFooterPropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
65
- children: zod.z.custom()
66
- });
67
- var CardActionPropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
68
- children: zod.z.custom()
69
- });
70
- var flipButtonPositionVariants = classVarianceAuthority.cva(
71
- [
72
- "absolute z-10 min-h-[44px] min-w-[44px] p-2",
73
- "flex items-center justify-center",
74
- "rounded-full bg-[var(--accent-background)]",
75
- "text-[var(--primary-action)] hover:text-[var(--primary-action-hover)]",
76
- "transition-colors duration-200",
77
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]"
78
- ],
79
- {
80
- variants: {
81
- position: {
82
- "top-right": "top-2 right-2",
83
- "top-left": "top-2 left-2",
84
- "bottom-right": "bottom-2 right-2",
85
- "bottom-left": "bottom-2 left-2"
86
- }
87
- },
88
- defaultVariants: {
89
- position: "top-right"
90
- }
91
- }
92
- );
93
- var Card = react.forwardRef(
94
- (props, ref) => {
95
- const {
96
- children,
97
- className,
98
- flippable = false,
99
- backContent,
100
- isFlipped: controlledFlipped,
101
- defaultFlipped = false,
102
- onFlipChange,
103
- flipButtonPosition = "top-right",
104
- flipButtonLabel,
105
- flipButtonIcon,
106
- flipDuration = 600,
107
- ...rest
108
- } = props;
109
- const [internalFlipped, setInternalFlipped] = react.useState(defaultFlipped);
110
- const isControlled = controlledFlipped !== void 0;
111
- const flipped = isControlled ? controlledFlipped : internalFlipped;
112
- const handleFlip = react.useCallback(() => {
113
- const newState = !flipped;
114
- if (!isControlled) {
115
- setInternalFlipped(newState);
116
- }
117
- onFlipChange?.(newState);
118
- }, [flipped, isControlled, onFlipChange]);
119
- if (!flippable) {
120
- return /* @__PURE__ */ jsxRuntime.jsx(
121
- "article",
122
- {
123
- ref,
124
- className: chunkVIREG536_js.cn(
125
- "rounded-lg border border-[var(--border)] bg-[var(--content-background)] text-[var(--content-foreground)] shadow-sm",
126
- className
127
- ),
128
- ...rest,
129
- children
130
- }
131
- );
132
- }
133
- const showLabel = flipButtonLabel?.show ?? "Show more details";
134
- const hideLabel = flipButtonLabel?.hide ?? "Show less details";
135
- const defaultIcon = /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RotateCcw, { className: "h-5 w-5", "aria-hidden": "true" });
136
- const frontIcon = flipButtonIcon?.front ?? defaultIcon;
137
- const backIcon = flipButtonIcon?.back ?? flipButtonIcon?.front ?? defaultIcon;
138
- const FlipButton = ({ label, icon }) => /* @__PURE__ */ jsxRuntime.jsx(
139
- chunk3YOY2VJ6_js.Button,
140
- {
141
- variant: "ghost",
142
- visualSize: "icon",
143
- "aria-hidden": "true",
144
- excludeFromTabOrder: true,
145
- onPress: handleFlip,
146
- className: flipButtonPositionVariants({ position: flipButtonPosition }),
147
- "aria-label": label,
148
- children: icon
149
- }
150
- );
151
- return /* @__PURE__ */ jsxRuntime.jsx(
152
- "article",
153
- {
154
- ref,
155
- className: chunkVIREG536_js.cn("relative", className),
156
- style: { perspective: "1000px" },
157
- ...rest,
158
- children: /* @__PURE__ */ jsxRuntime.jsxs(
159
- "div",
160
- {
161
- className: chunkVIREG536_js.cn(
162
- "relative transition-transform",
163
- "motion-reduce:transition-none"
164
- ),
165
- style: {
166
- transformStyle: "preserve-3d",
167
- transitionDuration: `${flipDuration}ms`,
168
- transform: flipped ? "rotateY(180deg)" : "rotateY(0deg)"
169
- },
170
- "data-flipped": flipped,
171
- children: [
172
- /* @__PURE__ */ jsxRuntime.jsxs(
173
- "div",
174
- {
175
- className: "relative rounded-lg border border-[var(--border)] bg-[var(--content-background)] text-[var(--content-foreground)] shadow-sm",
176
- style: { backfaceVisibility: "hidden" },
177
- "data-side": "front",
178
- children: [
179
- children,
180
- /* @__PURE__ */ jsxRuntime.jsx(FlipButton, { label: showLabel, icon: frontIcon })
181
- ]
182
- }
183
- ),
184
- /* @__PURE__ */ jsxRuntime.jsxs(
185
- "div",
186
- {
187
- className: "absolute inset-0 overflow-y-auto rounded-lg border border-[var(--border)] bg-[var(--content-background)] text-[var(--content-foreground)] shadow-sm",
188
- style: {
189
- backfaceVisibility: "hidden",
190
- transform: "rotateY(180deg)"
191
- },
192
- "data-side": "back",
193
- children: [
194
- backContent,
195
- /* @__PURE__ */ jsxRuntime.jsx(FlipButton, { label: hideLabel, icon: backIcon })
196
- ]
197
- }
198
- )
199
- ]
200
- }
201
- )
202
- }
203
- );
204
- }
205
- );
206
- Card.displayName = "Card";
207
- var CardHeader = react.forwardRef(
208
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
209
- "header",
210
- {
211
- ref,
212
- className: chunkVIREG536_js.cn("flex flex-col space-y-1.5 p-6", className),
213
- ...props,
214
- children
215
- }
216
- )
217
- );
218
- CardHeader.displayName = "CardHeader";
219
- var CardTitle = react.forwardRef(
220
- ({ className, as: Comp = "h3", children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
221
- Comp,
222
- {
223
- ref,
224
- className: chunkVIREG536_js.cn("text-2xl font-semibold leading-none tracking-tight", className),
225
- ...props,
226
- children
227
- }
228
- )
229
- );
230
- CardTitle.displayName = "CardTitle";
231
- var CardDescription = react.forwardRef(
232
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
233
- "p",
234
- {
235
- ref,
236
- className: chunkVIREG536_js.cn("text-sm text-[var(--content-foreground-muted)]", className),
237
- ...props,
238
- children
239
- }
240
- )
241
- );
242
- CardDescription.displayName = "CardDescription";
243
- var CardContent = react.forwardRef(
244
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: chunkVIREG536_js.cn("p-6 pt-0", className), ...props, children })
245
- );
246
- CardContent.displayName = "CardContent";
247
- var CardFooter = react.forwardRef(
248
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
249
- "footer",
250
- {
251
- ref,
252
- className: chunkVIREG536_js.cn("flex items-center p-6 pt-0", className),
253
- ...props,
254
- children
255
- }
256
- )
257
- );
258
- CardFooter.displayName = "CardFooter";
259
- var CardAction = react.forwardRef(
260
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
261
- "div",
262
- {
263
- ref,
264
- className: chunkVIREG536_js.cn("ml-auto", className),
265
- ...props,
266
- children
267
- }
268
- )
269
- );
270
- CardAction.displayName = "CardAction";
271
-
272
- exports.Card = Card;
273
- exports.CardAction = CardAction;
274
- exports.CardActionPropsSchema = CardActionPropsSchema;
275
- exports.CardContent = CardContent;
276
- exports.CardContentPropsSchema = CardContentPropsSchema;
277
- exports.CardDescription = CardDescription;
278
- exports.CardDescriptionPropsSchema = CardDescriptionPropsSchema;
279
- exports.CardFooter = CardFooter;
280
- exports.CardFooterPropsSchema = CardFooterPropsSchema;
281
- exports.CardHeader = CardHeader;
282
- exports.CardHeaderPropsSchema = CardHeaderPropsSchema;
283
- exports.CardPropsSchema = CardPropsSchema;
284
- exports.CardTitle = CardTitle;
285
- exports.CardTitlePropsSchema = CardTitlePropsSchema;
286
- exports.FlipButtonIconSchema = FlipButtonIconSchema;
287
- exports.FlipButtonLabelSchema = FlipButtonLabelSchema;
288
- exports.FlipButtonPositionSchema = FlipButtonPositionSchema;
289
- exports.flipButtonPositionVariants = flipButtonPositionVariants;
290
- //# sourceMappingURL=chunk-WJGLM4CY.js.map
291
- //# sourceMappingURL=chunk-WJGLM4CY.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/elements/Card/Card.types.ts","../src/elements/Card/Card.tsx"],"names":["z","BaseComponentPropsSchema","cva","forwardRef","useState","useCallback","jsx","cn","RotateCcw","Button","jsxs"],"mappings":"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","file":"chunk-WJGLM4CY.js","sourcesContent":["import { z } from 'zod';\nimport { cva } from 'class-variance-authority';\nimport { BaseComponentPropsSchema } from '../../schemas/BaseComponentProps';\nimport type { ReactNode } from 'react';\n\n/**\n * Flip button position variants\n * Controls where the flip button appears on the card\n *\n * @see card-prd.md US-5 (Flip Button Position)\n */\nexport const FlipButtonPositionSchema = z.enum([\n 'top-right',\n 'top-left',\n 'bottom-right',\n 'bottom-left',\n]);\nexport type FlipButtonPosition = z.infer<typeof FlipButtonPositionSchema>;\n\n/**\n * Flip button label configuration\n * Custom labels for the flip button title attribute\n *\n * @see card-prd.md US-6 (Custom Labels)\n */\nexport const FlipButtonLabelSchema = z.object({\n show: z.string().optional(),\n hide: z.string().optional(),\n});\nexport type FlipButtonLabel = z.infer<typeof FlipButtonLabelSchema>;\n\n/**\n * Flip button icon configuration\n * Custom icons for the front and back flip buttons\n */\nexport const FlipButtonIconSchema = z.object({\n /** Icon to show on front side button (default: RotateCcw) */\n front: z.custom<ReactNode>().optional(),\n /** Icon to show on back side button (default: same as front or RotateCcw) */\n back: z.custom<ReactNode>().optional(),\n});\nexport type FlipButtonIcon = z.infer<typeof FlipButtonIconSchema>;\n\n/**\n * Card root component props schema\n *\n * @see card-prd.md US-1 (Basic Card Container)\n * @see card-prd.md US-2 (Flippable Card)\n * @see card-prd.md US-3 (Controlled/Uncontrolled State)\n */\nexport const CardPropsSchema = BaseComponentPropsSchema.extend({\n // Flip functionality\n /** Enable flip animation feature */\n flippable: z.boolean().optional().default(false),\n\n /** Content to display on the back side of the card */\n backContent: z.custom<ReactNode>().optional(),\n\n /** Controlled mode: current flip state */\n isFlipped: z.boolean().optional(),\n\n /** Uncontrolled mode: initial flip state */\n defaultFlipped: z.boolean().optional().default(false),\n\n /** Callback fired when flip state changes */\n onFlipChange: z.custom<(isFlipped: boolean) => void>().optional(),\n\n // Flip button configuration\n /** Position of the flip button on the card */\n flipButtonPosition: FlipButtonPositionSchema.optional().default('top-right'),\n\n /** Custom labels for the flip button title attribute */\n flipButtonLabel: FlipButtonLabelSchema.optional(),\n\n /** Custom icons for the flip button (default: RotateCcw) */\n flipButtonIcon: FlipButtonIconSchema.optional(),\n\n /** Duration of flip animation in milliseconds */\n flipDuration: z.number().optional().default(600),\n});\n\nexport type CardProps = z.infer<typeof CardPropsSchema>;\n\n/**\n * CardHeader props schema\n *\n * @see card-prd.md US-1 (Basic Card Container)\n */\nexport const CardHeaderPropsSchema = BaseComponentPropsSchema.extend({\n children: z.custom<ReactNode>(),\n});\n\nexport type CardHeaderProps = z.infer<typeof CardHeaderPropsSchema>;\n\n/**\n * CardTitle props schema\n *\n * @see card-prd.md US-1 (Basic Card Container)\n */\nexport const CardTitlePropsSchema = BaseComponentPropsSchema.extend({\n /** Heading level (h1-h6) - defaults to h3 */\n as: z.enum(['h1', 'h2', 'h3', 'h4', 'h5', 'h6']).optional().default('h3'),\n\n children: z.custom<ReactNode>(),\n});\n\nexport type CardTitleProps = z.infer<typeof CardTitlePropsSchema>;\n\n/**\n * CardDescription props schema\n *\n * @see card-prd.md US-1 (Basic Card Container)\n */\nexport const CardDescriptionPropsSchema = BaseComponentPropsSchema.extend({\n children: z.custom<ReactNode>(),\n});\n\nexport type CardDescriptionProps = z.infer<typeof CardDescriptionPropsSchema>;\n\n/**\n * CardContent props schema\n *\n * @see card-prd.md US-1 (Basic Card Container)\n */\nexport const CardContentPropsSchema = BaseComponentPropsSchema.extend({\n children: z.custom<ReactNode>(),\n});\n\nexport type CardContentProps = z.infer<typeof CardContentPropsSchema>;\n\n/**\n * CardFooter props schema\n *\n * @see card-prd.md US-1 (Basic Card Container)\n */\nexport const CardFooterPropsSchema = BaseComponentPropsSchema.extend({\n children: z.custom<ReactNode>(),\n});\n\nexport type CardFooterProps = z.infer<typeof CardFooterPropsSchema>;\n\n/**\n * CardAction props schema\n *\n * @see card-prd.md US-1 (Basic Card Container)\n */\nexport const CardActionPropsSchema = BaseComponentPropsSchema.extend({\n children: z.custom<ReactNode>(),\n});\n\nexport type CardActionProps = z.infer<typeof CardActionPropsSchema>;\n\n/**\n * CVA variants for flip button positioning\n *\n * Provides consistent positioning classes for the flip button\n * based on the flipButtonPosition prop.\n *\n * Buttons are rendered INSIDE both front and back sides so they\n * flip along with the card content for a more natural feel.\n *\n * @see card-prd.md US-5 (Flip Button Position)\n */\nexport const flipButtonPositionVariants = cva(\n [\n 'absolute z-10 min-h-[44px] min-w-[44px] p-2',\n 'flex items-center justify-center',\n 'rounded-full bg-[var(--accent-background)]',\n 'text-[var(--primary-action)] hover:text-[var(--primary-action-hover)]',\n 'transition-colors duration-200',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]',\n ],\n {\n variants: {\n position: {\n 'top-right': 'top-2 right-2',\n 'top-left': 'top-2 left-2',\n 'bottom-right': 'bottom-2 right-2',\n 'bottom-left': 'bottom-2 left-2',\n },\n },\n defaultVariants: {\n position: 'top-right',\n },\n }\n);\n","/**\n * Card Component (TDD Stub)\n *\n * This is a minimal stub to allow tests to run during the RED phase.\n * Full implementation will be added in the GREEN phase.\n *\n * @see card-prd.md (Product Requirements)\n * @see plan.md (Implementation Plan)\n */\n\nimport { forwardRef, useState, useCallback, type HTMLAttributes, type ReactNode } from 'react';\nimport { RotateCcw } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Button } from '../Button';\nimport {\n flipButtonPositionVariants,\n type CardProps,\n type CardHeaderProps,\n type CardTitleProps,\n type CardDescriptionProps,\n type CardContentProps,\n type CardFooterProps,\n type CardActionProps,\n} from './Card.types';\n\n// ============================================================================\n// Card (Root Component)\n// ============================================================================\n\nexport const Card = forwardRef<HTMLElement, CardProps & HTMLAttributes<HTMLElement>>(\n (props, ref) => {\n const {\n children,\n className,\n flippable = false,\n backContent,\n isFlipped: controlledFlipped,\n defaultFlipped = false,\n onFlipChange,\n flipButtonPosition = 'top-right',\n flipButtonLabel,\n flipButtonIcon,\n flipDuration = 600,\n ...rest\n } = props;\n\n // Controlled/uncontrolled state\n const [internalFlipped, setInternalFlipped] = useState(defaultFlipped);\n const isControlled = controlledFlipped !== undefined;\n const flipped = isControlled ? controlledFlipped : internalFlipped;\n\n const handleFlip = useCallback(() => {\n const newState = !flipped;\n if (!isControlled) {\n setInternalFlipped(newState);\n }\n onFlipChange?.(newState);\n }, [flipped, isControlled, onFlipChange]);\n\n // Non-flippable card\n if (!flippable) {\n return (\n <article\n ref={ref}\n className={cn(\n 'rounded-lg border border-[var(--border)] bg-[var(--content-background)] text-[var(--content-foreground)] shadow-sm',\n className\n )}\n {...rest}\n >\n {children}\n </article>\n );\n }\n\n // Flippable card\n const showLabel = flipButtonLabel?.show ?? 'Show more details';\n const hideLabel = flipButtonLabel?.hide ?? 'Show less details';\n\n // Default icon\n const defaultIcon = <RotateCcw className=\"h-5 w-5\" aria-hidden=\"true\" />;\n // Custom icons (back defaults to front if not specified)\n const frontIcon = flipButtonIcon?.front ?? defaultIcon;\n const backIcon = flipButtonIcon?.back ?? flipButtonIcon?.front ?? defaultIcon;\n\n // Flip button component - rendered on both front and back\n const FlipButton = ({ label, icon }: { label: string; icon: ReactNode }) => (\n <Button\n variant=\"ghost\"\n visualSize=\"icon\"\n aria-hidden=\"true\"\n excludeFromTabOrder\n onPress={handleFlip}\n className={flipButtonPositionVariants({ position: flipButtonPosition })}\n aria-label={label}\n >\n {icon}\n </Button>\n );\n\n return (\n <article\n ref={ref}\n className={cn('relative', className)}\n style={{ perspective: '1000px' }}\n {...rest}\n >\n {/* Flipper container - handles 3D transform */}\n <div\n className={cn(\n 'relative transition-transform',\n 'motion-reduce:transition-none'\n )}\n style={{\n transformStyle: 'preserve-3d',\n transitionDuration: `${flipDuration}ms`,\n transform: flipped ? 'rotateY(180deg)' : 'rotateY(0deg)',\n }}\n data-flipped={flipped}\n >\n {/* Front side */}\n <div\n className=\"relative rounded-lg border border-[var(--border)] bg-[var(--content-background)] text-[var(--content-foreground)] shadow-sm\"\n style={{ backfaceVisibility: 'hidden' }}\n data-side=\"front\"\n >\n {children}\n <FlipButton label={showLabel} icon={frontIcon} />\n </div>\n\n {/* Back side - scrollable if content overflows */}\n <div\n className=\"absolute inset-0 overflow-y-auto rounded-lg border border-[var(--border)] bg-[var(--content-background)] text-[var(--content-foreground)] shadow-sm\"\n style={{\n backfaceVisibility: 'hidden',\n transform: 'rotateY(180deg)',\n }}\n data-side=\"back\"\n >\n {backContent}\n <FlipButton label={hideLabel} icon={backIcon} />\n </div>\n </div>\n </article>\n );\n }\n);\n\nCard.displayName = 'Card';\n\n// ============================================================================\n// CardHeader\n// ============================================================================\n\nexport const CardHeader = forwardRef<HTMLElement, CardHeaderProps & HTMLAttributes<HTMLElement>>(\n ({ className, children, ...props }, ref) => (\n <header\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-6', className)}\n {...props}\n >\n {children}\n </header>\n )\n);\n\nCardHeader.displayName = 'CardHeader';\n\n// ============================================================================\n// CardTitle\n// ============================================================================\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, CardTitleProps & HTMLAttributes<HTMLHeadingElement>>(\n ({ className, as: Comp = 'h3', children, ...props }, ref) => (\n <Comp\n ref={ref}\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n {...props}\n >\n {children}\n </Comp>\n )\n);\n\nCardTitle.displayName = 'CardTitle';\n\n// ============================================================================\n// CardDescription\n// ============================================================================\n\nexport const CardDescription = forwardRef<HTMLParagraphElement, CardDescriptionProps & HTMLAttributes<HTMLParagraphElement>>(\n ({ className, children, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-[var(--content-foreground-muted)]', className)}\n {...props}\n >\n {children}\n </p>\n )\n);\n\nCardDescription.displayName = 'CardDescription';\n\n// ============================================================================\n// CardContent\n// ============================================================================\n\nexport const CardContent = forwardRef<HTMLDivElement, CardContentProps & HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props}>\n {children}\n </div>\n )\n);\n\nCardContent.displayName = 'CardContent';\n\n// ============================================================================\n// CardFooter\n// ============================================================================\n\nexport const CardFooter = forwardRef<HTMLElement, CardFooterProps & HTMLAttributes<HTMLElement>>(\n ({ className, children, ...props }, ref) => (\n <footer\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n >\n {children}\n </footer>\n )\n);\n\nCardFooter.displayName = 'CardFooter';\n\n// ============================================================================\n// CardAction\n// ============================================================================\n\nexport const CardAction = forwardRef<HTMLDivElement, CardActionProps & HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('ml-auto', className)}\n {...props}\n >\n {children}\n </div>\n )\n);\n\nCardAction.displayName = 'CardAction';\n"]}