@tribepad/themis 1.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 (654) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/README.md +114 -0
  4. package/dist/Carousel-NTZX5TOW.js +16 -0
  5. package/dist/Carousel-NTZX5TOW.js.map +1 -0
  6. package/dist/Carousel-YH3DOQJU.mjs +7 -0
  7. package/dist/Carousel-YH3DOQJU.mjs.map +1 -0
  8. package/dist/chunk-2HIUTHMU.mjs +234 -0
  9. package/dist/chunk-2HIUTHMU.mjs.map +1 -0
  10. package/dist/chunk-34GTFTDO.js +431 -0
  11. package/dist/chunk-34GTFTDO.js.map +1 -0
  12. package/dist/chunk-3H7ASYR7.js +250 -0
  13. package/dist/chunk-3H7ASYR7.js.map +1 -0
  14. package/dist/chunk-3IEN7JOP.js +316 -0
  15. package/dist/chunk-3IEN7JOP.js.map +1 -0
  16. package/dist/chunk-3JHN4GAL.js +326 -0
  17. package/dist/chunk-3JHN4GAL.js.map +1 -0
  18. package/dist/chunk-3MJPASQU.js +232 -0
  19. package/dist/chunk-3MJPASQU.js.map +1 -0
  20. package/dist/chunk-3XD2JUL3.js +572 -0
  21. package/dist/chunk-3XD2JUL3.js.map +1 -0
  22. package/dist/chunk-3YOY2VJ6.js +189 -0
  23. package/dist/chunk-3YOY2VJ6.js.map +1 -0
  24. package/dist/chunk-4DU5JSXB.js +408 -0
  25. package/dist/chunk-4DU5JSXB.js.map +1 -0
  26. package/dist/chunk-4E4E2GSS.js +352 -0
  27. package/dist/chunk-4E4E2GSS.js.map +1 -0
  28. package/dist/chunk-4NHAP4AN.mjs +3 -0
  29. package/dist/chunk-4NHAP4AN.mjs.map +1 -0
  30. package/dist/chunk-4S33J5NY.mjs +415 -0
  31. package/dist/chunk-4S33J5NY.mjs.map +1 -0
  32. package/dist/chunk-5SMGRT3G.mjs +354 -0
  33. package/dist/chunk-5SMGRT3G.mjs.map +1 -0
  34. package/dist/chunk-5SVLJN2C.mjs +22 -0
  35. package/dist/chunk-5SVLJN2C.mjs.map +1 -0
  36. package/dist/chunk-66WTU4EB.mjs +299 -0
  37. package/dist/chunk-66WTU4EB.mjs.map +1 -0
  38. package/dist/chunk-6S25NMOT.mjs +335 -0
  39. package/dist/chunk-6S25NMOT.mjs.map +1 -0
  40. package/dist/chunk-6SP7UB3D.js +4 -0
  41. package/dist/chunk-6SP7UB3D.js.map +1 -0
  42. package/dist/chunk-6TYWWQHM.mjs +565 -0
  43. package/dist/chunk-6TYWWQHM.mjs.map +1 -0
  44. package/dist/chunk-A3YUJA6W.mjs +384 -0
  45. package/dist/chunk-A3YUJA6W.mjs.map +1 -0
  46. package/dist/chunk-A6KEDVUR.js +61 -0
  47. package/dist/chunk-A6KEDVUR.js.map +1 -0
  48. package/dist/chunk-A77RUEWL.js +730 -0
  49. package/dist/chunk-A77RUEWL.js.map +1 -0
  50. package/dist/chunk-AA4IKMPE.mjs +3 -0
  51. package/dist/chunk-AA4IKMPE.mjs.map +1 -0
  52. package/dist/chunk-AKIA6GW6.mjs +163 -0
  53. package/dist/chunk-AKIA6GW6.mjs.map +1 -0
  54. package/dist/chunk-AL6P275L.mjs +435 -0
  55. package/dist/chunk-AL6P275L.mjs.map +1 -0
  56. package/dist/chunk-AZ3RJYTB.js +37 -0
  57. package/dist/chunk-AZ3RJYTB.js.map +1 -0
  58. package/dist/chunk-B5Q4UPL6.js +32 -0
  59. package/dist/chunk-B5Q4UPL6.js.map +1 -0
  60. package/dist/chunk-B6DHPMDP.mjs +335 -0
  61. package/dist/chunk-B6DHPMDP.mjs.map +1 -0
  62. package/dist/chunk-BDXKKMBZ.mjs +184 -0
  63. package/dist/chunk-BDXKKMBZ.mjs.map +1 -0
  64. package/dist/chunk-BL6E2DLZ.mjs +52 -0
  65. package/dist/chunk-BL6E2DLZ.mjs.map +1 -0
  66. package/dist/chunk-CGFDS4XS.mjs +121 -0
  67. package/dist/chunk-CGFDS4XS.mjs.map +1 -0
  68. package/dist/chunk-CJIW5TKI.js +139 -0
  69. package/dist/chunk-CJIW5TKI.js.map +1 -0
  70. package/dist/chunk-CKNISJOQ.js +314 -0
  71. package/dist/chunk-CKNISJOQ.js.map +1 -0
  72. package/dist/chunk-D6CBOECS.mjs +1757 -0
  73. package/dist/chunk-D6CBOECS.mjs.map +1 -0
  74. package/dist/chunk-DDWEVC2S.js +166 -0
  75. package/dist/chunk-DDWEVC2S.js.map +1 -0
  76. package/dist/chunk-DZ556D2F.mjs +176 -0
  77. package/dist/chunk-DZ556D2F.mjs.map +1 -0
  78. package/dist/chunk-E2KQFV3O.mjs +10 -0
  79. package/dist/chunk-E2KQFV3O.mjs.map +1 -0
  80. package/dist/chunk-EMMLADSC.js +126 -0
  81. package/dist/chunk-EMMLADSC.js.map +1 -0
  82. package/dist/chunk-EP4WOI5D.mjs +926 -0
  83. package/dist/chunk-EP4WOI5D.mjs.map +1 -0
  84. package/dist/chunk-FJRXLJC2.mjs +160 -0
  85. package/dist/chunk-FJRXLJC2.mjs.map +1 -0
  86. package/dist/chunk-FKQI434R.js +345 -0
  87. package/dist/chunk-FKQI434R.js.map +1 -0
  88. package/dist/chunk-FPKEAJRZ.mjs +100 -0
  89. package/dist/chunk-FPKEAJRZ.mjs.map +1 -0
  90. package/dist/chunk-FWQYB22U.js +183 -0
  91. package/dist/chunk-FWQYB22U.js.map +1 -0
  92. package/dist/chunk-GD5GHTMA.js +189 -0
  93. package/dist/chunk-GD5GHTMA.js.map +1 -0
  94. package/dist/chunk-GE5XTSDZ.js +447 -0
  95. package/dist/chunk-GE5XTSDZ.js.map +1 -0
  96. package/dist/chunk-GVE47ZAX.mjs +32 -0
  97. package/dist/chunk-GVE47ZAX.mjs.map +1 -0
  98. package/dist/chunk-HK46BT5U.mjs +18 -0
  99. package/dist/chunk-HK46BT5U.mjs.map +1 -0
  100. package/dist/chunk-HQVRMR6N.js +365 -0
  101. package/dist/chunk-HQVRMR6N.js.map +1 -0
  102. package/dist/chunk-HSGBJPJO.mjs +398 -0
  103. package/dist/chunk-HSGBJPJO.mjs.map +1 -0
  104. package/dist/chunk-I3AUTOMZ.mjs +125 -0
  105. package/dist/chunk-I3AUTOMZ.mjs.map +1 -0
  106. package/dist/chunk-IEI5LD5C.mjs +1161 -0
  107. package/dist/chunk-IEI5LD5C.mjs.map +1 -0
  108. package/dist/chunk-IIPTC2X7.mjs +118 -0
  109. package/dist/chunk-IIPTC2X7.mjs.map +1 -0
  110. package/dist/chunk-J7TLHF2Q.js +4 -0
  111. package/dist/chunk-J7TLHF2Q.js.map +1 -0
  112. package/dist/chunk-JJOWXFXQ.mjs +765 -0
  113. package/dist/chunk-JJOWXFXQ.mjs.map +1 -0
  114. package/dist/chunk-JPTSS2OA.mjs +3 -0
  115. package/dist/chunk-JPTSS2OA.mjs.map +1 -0
  116. package/dist/chunk-KFXXRLTP.js +396 -0
  117. package/dist/chunk-KFXXRLTP.js.map +1 -0
  118. package/dist/chunk-KPRRBSG6.mjs +272 -0
  119. package/dist/chunk-KPRRBSG6.mjs.map +1 -0
  120. package/dist/chunk-NFSBGRDB.mjs +57 -0
  121. package/dist/chunk-NFSBGRDB.mjs.map +1 -0
  122. package/dist/chunk-NGJVCFTM.js +219 -0
  123. package/dist/chunk-NGJVCFTM.js.map +1 -0
  124. package/dist/chunk-NSQ6MZJ6.mjs +728 -0
  125. package/dist/chunk-NSQ6MZJ6.mjs.map +1 -0
  126. package/dist/chunk-NYQYHT76.mjs +296 -0
  127. package/dist/chunk-NYQYHT76.mjs.map +1 -0
  128. package/dist/chunk-OLJJGI5B.js +1193 -0
  129. package/dist/chunk-OLJJGI5B.js.map +1 -0
  130. package/dist/chunk-Q3572X2J.js +292 -0
  131. package/dist/chunk-Q3572X2J.js.map +1 -0
  132. package/dist/chunk-QH7N7D4I.mjs +210 -0
  133. package/dist/chunk-QH7N7D4I.mjs.map +1 -0
  134. package/dist/chunk-R7XUIV25.js +466 -0
  135. package/dist/chunk-R7XUIV25.js.map +1 -0
  136. package/dist/chunk-RFFO4KPM.js +135 -0
  137. package/dist/chunk-RFFO4KPM.js.map +1 -0
  138. package/dist/chunk-RFX7QKA7.mjs +180 -0
  139. package/dist/chunk-RFX7QKA7.mjs.map +1 -0
  140. package/dist/chunk-SN5LFAP3.js +940 -0
  141. package/dist/chunk-SN5LFAP3.js.map +1 -0
  142. package/dist/chunk-T4COXKQ3.js +24 -0
  143. package/dist/chunk-T4COXKQ3.js.map +1 -0
  144. package/dist/chunk-TS54QM27.js +125 -0
  145. package/dist/chunk-TS54QM27.js.map +1 -0
  146. package/dist/chunk-UE2S4PCX.mjs +220 -0
  147. package/dist/chunk-UE2S4PCX.mjs.map +1 -0
  148. package/dist/chunk-UTW3QX2A.mjs +282 -0
  149. package/dist/chunk-UTW3QX2A.mjs.map +1 -0
  150. package/dist/chunk-V74LGMAE.js +1767 -0
  151. package/dist/chunk-V74LGMAE.js.map +1 -0
  152. package/dist/chunk-VIREG536.js +12 -0
  153. package/dist/chunk-VIREG536.js.map +1 -0
  154. package/dist/chunk-VY7M7346.js +4 -0
  155. package/dist/chunk-VY7M7346.js.map +1 -0
  156. package/dist/chunk-W3TJOO7H.mjs +319 -0
  157. package/dist/chunk-W3TJOO7H.mjs.map +1 -0
  158. package/dist/chunk-WIUOB36M.js +54 -0
  159. package/dist/chunk-WIUOB36M.js.map +1 -0
  160. package/dist/chunk-WJGLM4CY.js +291 -0
  161. package/dist/chunk-WJGLM4CY.js.map +1 -0
  162. package/dist/chunk-WNURH5OO.mjs +453 -0
  163. package/dist/chunk-WNURH5OO.mjs.map +1 -0
  164. package/dist/chunk-X25TNRSD.mjs +364 -0
  165. package/dist/chunk-X25TNRSD.mjs.map +1 -0
  166. package/dist/chunk-Y3GT7ETK.js +108 -0
  167. package/dist/chunk-Y3GT7ETK.js.map +1 -0
  168. package/dist/chunk-Z4FRNOF6.mjs +115 -0
  169. package/dist/chunk-Z4FRNOF6.mjs.map +1 -0
  170. package/dist/chunk-ZMYLD3BN.js +166 -0
  171. package/dist/chunk-ZMYLD3BN.js.map +1 -0
  172. package/dist/chunk-ZP2KV6EX.js +815 -0
  173. package/dist/chunk-ZP2KV6EX.js.map +1 -0
  174. package/dist/chunk-ZVKXFELU.js +366 -0
  175. package/dist/chunk-ZVKXFELU.js.map +1 -0
  176. package/dist/elements/Accordion/Accordion.d.ts +139 -0
  177. package/dist/elements/Accordion/Accordion.d.ts.map +1 -0
  178. package/dist/elements/Accordion/Accordion.types.d.ts +143 -0
  179. package/dist/elements/Accordion/Accordion.types.d.ts.map +1 -0
  180. package/dist/elements/Accordion/index.d.ts +13 -0
  181. package/dist/elements/Accordion/index.d.ts.map +1 -0
  182. package/dist/elements/Accordion/index.js +78 -0
  183. package/dist/elements/Accordion/index.js.map +1 -0
  184. package/dist/elements/Accordion/index.mjs +5 -0
  185. package/dist/elements/Accordion/index.mjs.map +1 -0
  186. package/dist/elements/Avatar/Avatar.d.ts +51 -0
  187. package/dist/elements/Avatar/Avatar.d.ts.map +1 -0
  188. package/dist/elements/Avatar/Avatar.types.d.ts +145 -0
  189. package/dist/elements/Avatar/Avatar.types.d.ts.map +1 -0
  190. package/dist/elements/Avatar/AvatarGroup.d.ts +32 -0
  191. package/dist/elements/Avatar/AvatarGroup.d.ts.map +1 -0
  192. package/dist/elements/Avatar/index.d.ts +11 -0
  193. package/dist/elements/Avatar/index.d.ts.map +1 -0
  194. package/dist/elements/Avatar/index.js +54 -0
  195. package/dist/elements/Avatar/index.js.map +1 -0
  196. package/dist/elements/Avatar/index.mjs +5 -0
  197. package/dist/elements/Avatar/index.mjs.map +1 -0
  198. package/dist/elements/Badge/Badge.d.ts +39 -0
  199. package/dist/elements/Badge/Badge.d.ts.map +1 -0
  200. package/dist/elements/Badge/Badge.types.d.ts +76 -0
  201. package/dist/elements/Badge/Badge.types.d.ts.map +1 -0
  202. package/dist/elements/Badge/index.d.ts +18 -0
  203. package/dist/elements/Badge/index.d.ts.map +1 -0
  204. package/dist/elements/Badge/index.js +43 -0
  205. package/dist/elements/Badge/index.js.map +1 -0
  206. package/dist/elements/Badge/index.mjs +6 -0
  207. package/dist/elements/Badge/index.mjs.map +1 -0
  208. package/dist/elements/Breadcrumbs/Breadcrumbs.d.ts +91 -0
  209. package/dist/elements/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  210. package/dist/elements/Breadcrumbs/Breadcrumbs.types.d.ts +114 -0
  211. package/dist/elements/Breadcrumbs/Breadcrumbs.types.d.ts.map +1 -0
  212. package/dist/elements/Breadcrumbs/index.d.ts +14 -0
  213. package/dist/elements/Breadcrumbs/index.d.ts.map +1 -0
  214. package/dist/elements/Breadcrumbs/index.js +54 -0
  215. package/dist/elements/Breadcrumbs/index.js.map +1 -0
  216. package/dist/elements/Breadcrumbs/index.mjs +9 -0
  217. package/dist/elements/Breadcrumbs/index.mjs.map +1 -0
  218. package/dist/elements/Button/Button.d.ts +92 -0
  219. package/dist/elements/Button/Button.d.ts.map +1 -0
  220. package/dist/elements/Button/Button.types.d.ts +54 -0
  221. package/dist/elements/Button/Button.types.d.ts.map +1 -0
  222. package/dist/elements/Button/index.d.ts +18 -0
  223. package/dist/elements/Button/index.d.ts.map +1 -0
  224. package/dist/elements/Button/index.js +27 -0
  225. package/dist/elements/Button/index.js.map +1 -0
  226. package/dist/elements/Button/index.mjs +6 -0
  227. package/dist/elements/Button/index.mjs.map +1 -0
  228. package/dist/elements/ButtonGroup/ButtonGroup.d.ts +53 -0
  229. package/dist/elements/ButtonGroup/ButtonGroup.d.ts.map +1 -0
  230. package/dist/elements/ButtonGroup/ButtonGroup.types.d.ts +98 -0
  231. package/dist/elements/ButtonGroup/ButtonGroup.types.d.ts.map +1 -0
  232. package/dist/elements/ButtonGroup/ButtonGroup.utils.d.ts +60 -0
  233. package/dist/elements/ButtonGroup/ButtonGroup.utils.d.ts.map +1 -0
  234. package/dist/elements/ButtonGroup/ButtonGroup.variants.d.ts +39 -0
  235. package/dist/elements/ButtonGroup/ButtonGroup.variants.d.ts.map +1 -0
  236. package/dist/elements/ButtonGroup/ButtonGroupContext.d.ts +42 -0
  237. package/dist/elements/ButtonGroup/ButtonGroupContext.d.ts.map +1 -0
  238. package/dist/elements/ButtonGroup/index.d.ts +35 -0
  239. package/dist/elements/ButtonGroup/index.d.ts.map +1 -0
  240. package/dist/elements/ButtonGroup/index.js +66 -0
  241. package/dist/elements/ButtonGroup/index.js.map +1 -0
  242. package/dist/elements/ButtonGroup/index.mjs +5 -0
  243. package/dist/elements/ButtonGroup/index.mjs.map +1 -0
  244. package/dist/elements/Card/Card.d.ts +104 -0
  245. package/dist/elements/Card/Card.d.ts.map +1 -0
  246. package/dist/elements/Card/Card.types.d.ts +227 -0
  247. package/dist/elements/Card/Card.types.d.ts.map +1 -0
  248. package/dist/elements/Card/index.d.ts +38 -0
  249. package/dist/elements/Card/index.d.ts.map +1 -0
  250. package/dist/elements/Card/index.js +85 -0
  251. package/dist/elements/Card/index.js.map +1 -0
  252. package/dist/elements/Card/index.mjs +8 -0
  253. package/dist/elements/Card/index.mjs.map +1 -0
  254. package/dist/elements/Carousel/Carousel.d.ts +13 -0
  255. package/dist/elements/Carousel/Carousel.d.ts.map +1 -0
  256. package/dist/elements/Carousel/Carousel.types.d.ts +65 -0
  257. package/dist/elements/Carousel/Carousel.types.d.ts.map +1 -0
  258. package/dist/elements/Carousel/LazyCarousel.d.ts +46 -0
  259. package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -0
  260. package/dist/elements/Carousel/index.d.ts +5 -0
  261. package/dist/elements/Carousel/index.d.ts.map +1 -0
  262. package/dist/elements/Carousel/index.js +23 -0
  263. package/dist/elements/Carousel/index.js.map +1 -0
  264. package/dist/elements/Carousel/index.mjs +10 -0
  265. package/dist/elements/Carousel/index.mjs.map +1 -0
  266. package/dist/elements/Chart/Chart.d.ts +44 -0
  267. package/dist/elements/Chart/Chart.d.ts.map +1 -0
  268. package/dist/elements/Chart/Chart.types.d.ts +254 -0
  269. package/dist/elements/Chart/Chart.types.d.ts.map +1 -0
  270. package/dist/elements/Chart/ChartAnnouncer.d.ts +24 -0
  271. package/dist/elements/Chart/ChartAnnouncer.d.ts.map +1 -0
  272. package/dist/elements/Chart/ChartAxis.d.ts +42 -0
  273. package/dist/elements/Chart/ChartAxis.d.ts.map +1 -0
  274. package/dist/elements/Chart/ChartBarSeries.d.ts +54 -0
  275. package/dist/elements/Chart/ChartBarSeries.d.ts.map +1 -0
  276. package/dist/elements/Chart/ChartContext.d.ts +46 -0
  277. package/dist/elements/Chart/ChartContext.d.ts.map +1 -0
  278. package/dist/elements/Chart/ChartDataPoint.d.ts +56 -0
  279. package/dist/elements/Chart/ChartDataPoint.d.ts.map +1 -0
  280. package/dist/elements/Chart/ChartDataTable.d.ts +35 -0
  281. package/dist/elements/Chart/ChartDataTable.d.ts.map +1 -0
  282. package/dist/elements/Chart/ChartGrid.d.ts +32 -0
  283. package/dist/elements/Chart/ChartGrid.d.ts.map +1 -0
  284. package/dist/elements/Chart/ChartLegend.d.ts +32 -0
  285. package/dist/elements/Chart/ChartLegend.d.ts.map +1 -0
  286. package/dist/elements/Chart/ChartLineSeries.d.ts +52 -0
  287. package/dist/elements/Chart/ChartLineSeries.d.ts.map +1 -0
  288. package/dist/elements/Chart/ChartSVG.d.ts +62 -0
  289. package/dist/elements/Chart/ChartSVG.d.ts.map +1 -0
  290. package/dist/elements/Chart/ChartTooltip.d.ts +45 -0
  291. package/dist/elements/Chart/ChartTooltip.d.ts.map +1 -0
  292. package/dist/elements/Chart/chart.constants.d.ts +108 -0
  293. package/dist/elements/Chart/chart.constants.d.ts.map +1 -0
  294. package/dist/elements/Chart/chart.variants.d.ts +45 -0
  295. package/dist/elements/Chart/chart.variants.d.ts.map +1 -0
  296. package/dist/elements/Chart/index.d.ts +12 -0
  297. package/dist/elements/Chart/index.d.ts.map +1 -0
  298. package/dist/elements/Chart/index.js +47 -0
  299. package/dist/elements/Chart/index.js.map +1 -0
  300. package/dist/elements/Chart/index.mjs +6 -0
  301. package/dist/elements/Chart/index.mjs.map +1 -0
  302. package/dist/elements/Chart/useChartDimensions.d.ts +18 -0
  303. package/dist/elements/Chart/useChartDimensions.d.ts.map +1 -0
  304. package/dist/elements/Chart/useChartKeyboard.d.ts +42 -0
  305. package/dist/elements/Chart/useChartKeyboard.d.ts.map +1 -0
  306. package/dist/elements/Chart/useRovingTabIndex.d.ts +46 -0
  307. package/dist/elements/Chart/useRovingTabIndex.d.ts.map +1 -0
  308. package/dist/elements/Checkbox/Checkbox.d.ts +94 -0
  309. package/dist/elements/Checkbox/Checkbox.d.ts.map +1 -0
  310. package/dist/elements/Checkbox/Checkbox.types.d.ts +82 -0
  311. package/dist/elements/Checkbox/Checkbox.types.d.ts.map +1 -0
  312. package/dist/elements/Checkbox/index.d.ts +7 -0
  313. package/dist/elements/Checkbox/index.d.ts.map +1 -0
  314. package/dist/elements/Checkbox/index.js +47 -0
  315. package/dist/elements/Checkbox/index.js.map +1 -0
  316. package/dist/elements/Checkbox/index.mjs +6 -0
  317. package/dist/elements/Checkbox/index.mjs.map +1 -0
  318. package/dist/elements/CheckboxGroup/CheckboxGroup.d.ts +130 -0
  319. package/dist/elements/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
  320. package/dist/elements/CheckboxGroup/CheckboxGroup.types.d.ts +142 -0
  321. package/dist/elements/CheckboxGroup/CheckboxGroup.types.d.ts.map +1 -0
  322. package/dist/elements/CheckboxGroup/index.d.ts +10 -0
  323. package/dist/elements/CheckboxGroup/index.d.ts.map +1 -0
  324. package/dist/elements/CheckboxGroup/index.js +71 -0
  325. package/dist/elements/CheckboxGroup/index.js.map +1 -0
  326. package/dist/elements/CheckboxGroup/index.mjs +6 -0
  327. package/dist/elements/CheckboxGroup/index.mjs.map +1 -0
  328. package/dist/elements/DatePicker/Calendar.d.ts +16 -0
  329. package/dist/elements/DatePicker/Calendar.d.ts.map +1 -0
  330. package/dist/elements/DatePicker/DateField.d.ts +13 -0
  331. package/dist/elements/DatePicker/DateField.d.ts.map +1 -0
  332. package/dist/elements/DatePicker/DatePicker.d.ts +16 -0
  333. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -0
  334. package/dist/elements/DatePicker/DatePicker.types.d.ts +390 -0
  335. package/dist/elements/DatePicker/DatePicker.types.d.ts.map +1 -0
  336. package/dist/elements/DatePicker/DatePicker.variants.d.ts +42 -0
  337. package/dist/elements/DatePicker/DatePicker.variants.d.ts.map +1 -0
  338. package/dist/elements/DatePicker/DateRangePicker.d.ts +13 -0
  339. package/dist/elements/DatePicker/DateRangePicker.d.ts.map +1 -0
  340. package/dist/elements/DatePicker/index.d.ts +14 -0
  341. package/dist/elements/DatePicker/index.d.ts.map +1 -0
  342. package/dist/elements/DatePicker/index.js +123 -0
  343. package/dist/elements/DatePicker/index.js.map +1 -0
  344. package/dist/elements/DatePicker/index.mjs +6 -0
  345. package/dist/elements/DatePicker/index.mjs.map +1 -0
  346. package/dist/elements/Dropdown/Dropdown.d.ts +197 -0
  347. package/dist/elements/Dropdown/Dropdown.d.ts.map +1 -0
  348. package/dist/elements/Dropdown/Dropdown.types.d.ts +175 -0
  349. package/dist/elements/Dropdown/Dropdown.types.d.ts.map +1 -0
  350. package/dist/elements/Dropdown/index.d.ts +12 -0
  351. package/dist/elements/Dropdown/index.d.ts.map +1 -0
  352. package/dist/elements/Dropdown/index.js +41 -0
  353. package/dist/elements/Dropdown/index.js.map +1 -0
  354. package/dist/elements/Dropdown/index.mjs +4 -0
  355. package/dist/elements/Dropdown/index.mjs.map +1 -0
  356. package/dist/elements/FileField/FileField.d.ts +46 -0
  357. package/dist/elements/FileField/FileField.d.ts.map +1 -0
  358. package/dist/elements/FileField/FileField.types.d.ts +99 -0
  359. package/dist/elements/FileField/FileField.types.d.ts.map +1 -0
  360. package/dist/elements/FileField/FileField.variants.d.ts +49 -0
  361. package/dist/elements/FileField/FileField.variants.d.ts.map +1 -0
  362. package/dist/elements/FileField/FilePreview.d.ts +27 -0
  363. package/dist/elements/FileField/FilePreview.d.ts.map +1 -0
  364. package/dist/elements/FileField/FileProgress.d.ts +35 -0
  365. package/dist/elements/FileField/FileProgress.d.ts.map +1 -0
  366. package/dist/elements/FileField/FileProgress.variants.d.ts +55 -0
  367. package/dist/elements/FileField/FileProgress.variants.d.ts.map +1 -0
  368. package/dist/elements/FileField/index.d.ts +41 -0
  369. package/dist/elements/FileField/index.d.ts.map +1 -0
  370. package/dist/elements/FileField/index.js +138 -0
  371. package/dist/elements/FileField/index.js.map +1 -0
  372. package/dist/elements/FileField/index.mjs +9 -0
  373. package/dist/elements/FileField/index.mjs.map +1 -0
  374. package/dist/elements/FileField/useFilePreview.d.ts +46 -0
  375. package/dist/elements/FileField/useFilePreview.d.ts.map +1 -0
  376. package/dist/elements/FileField/utils.d.ts +134 -0
  377. package/dist/elements/FileField/utils.d.ts.map +1 -0
  378. package/dist/elements/FormLayout/FormLayout.d.ts +51 -0
  379. package/dist/elements/FormLayout/FormLayout.d.ts.map +1 -0
  380. package/dist/elements/FormLayout/FormLayout.types.d.ts +66 -0
  381. package/dist/elements/FormLayout/FormLayout.types.d.ts.map +1 -0
  382. package/dist/elements/FormLayout/index.d.ts +3 -0
  383. package/dist/elements/FormLayout/index.d.ts.map +1 -0
  384. package/dist/elements/FormLayout/index.js +17 -0
  385. package/dist/elements/FormLayout/index.js.map +1 -0
  386. package/dist/elements/FormLayout/index.mjs +4 -0
  387. package/dist/elements/FormLayout/index.mjs.map +1 -0
  388. package/dist/elements/Modal/Modal.d.ts +168 -0
  389. package/dist/elements/Modal/Modal.d.ts.map +1 -0
  390. package/dist/elements/Modal/Modal.types.d.ts +265 -0
  391. package/dist/elements/Modal/Modal.types.d.ts.map +1 -0
  392. package/dist/elements/Modal/index.d.ts +14 -0
  393. package/dist/elements/Modal/index.d.ts.map +1 -0
  394. package/dist/elements/Modal/index.js +52 -0
  395. package/dist/elements/Modal/index.js.map +1 -0
  396. package/dist/elements/Modal/index.mjs +3 -0
  397. package/dist/elements/Modal/index.mjs.map +1 -0
  398. package/dist/elements/NumberField/NumberField.d.ts +43 -0
  399. package/dist/elements/NumberField/NumberField.d.ts.map +1 -0
  400. package/dist/elements/NumberField/NumberField.types.d.ts +112 -0
  401. package/dist/elements/NumberField/NumberField.types.d.ts.map +1 -0
  402. package/dist/elements/NumberField/NumberField.variants.d.ts +82 -0
  403. package/dist/elements/NumberField/NumberField.variants.d.ts.map +1 -0
  404. package/dist/elements/NumberField/index.d.ts +25 -0
  405. package/dist/elements/NumberField/index.d.ts.map +1 -0
  406. package/dist/elements/NumberField/index.js +57 -0
  407. package/dist/elements/NumberField/index.js.map +1 -0
  408. package/dist/elements/NumberField/index.mjs +8 -0
  409. package/dist/elements/NumberField/index.mjs.map +1 -0
  410. package/dist/elements/OTPInput/OTPInput.d.ts +105 -0
  411. package/dist/elements/OTPInput/OTPInput.d.ts.map +1 -0
  412. package/dist/elements/OTPInput/OTPInput.styles.d.ts +83 -0
  413. package/dist/elements/OTPInput/OTPInput.styles.d.ts.map +1 -0
  414. package/dist/elements/OTPInput/OTPInput.types.d.ts +189 -0
  415. package/dist/elements/OTPInput/OTPInput.types.d.ts.map +1 -0
  416. package/dist/elements/OTPInput/components/OTPDigit.d.ts +51 -0
  417. package/dist/elements/OTPInput/components/OTPDigit.d.ts.map +1 -0
  418. package/dist/elements/OTPInput/hooks/useOTPInput.d.ts +36 -0
  419. package/dist/elements/OTPInput/hooks/useOTPInput.d.ts.map +1 -0
  420. package/dist/elements/OTPInput/hooks/useOTPKeyboard.d.ts +59 -0
  421. package/dist/elements/OTPInput/hooks/useOTPKeyboard.d.ts.map +1 -0
  422. package/dist/elements/OTPInput/index.d.ts +27 -0
  423. package/dist/elements/OTPInput/index.d.ts.map +1 -0
  424. package/dist/elements/OTPInput/index.js +13 -0
  425. package/dist/elements/OTPInput/index.js.map +1 -0
  426. package/dist/elements/OTPInput/index.mjs +4 -0
  427. package/dist/elements/OTPInput/index.mjs.map +1 -0
  428. package/dist/elements/Panel/Panel.d.ts +111 -0
  429. package/dist/elements/Panel/Panel.d.ts.map +1 -0
  430. package/dist/elements/Panel/Panel.types.d.ts +243 -0
  431. package/dist/elements/Panel/Panel.types.d.ts.map +1 -0
  432. package/dist/elements/Panel/index.d.ts +4 -0
  433. package/dist/elements/Panel/index.d.ts.map +1 -0
  434. package/dist/elements/Panel/index.js +33 -0
  435. package/dist/elements/Panel/index.js.map +1 -0
  436. package/dist/elements/Panel/index.mjs +4 -0
  437. package/dist/elements/Panel/index.mjs.map +1 -0
  438. package/dist/elements/Progress/Progress.d.ts +44 -0
  439. package/dist/elements/Progress/Progress.d.ts.map +1 -0
  440. package/dist/elements/Progress/Progress.types.d.ts +64 -0
  441. package/dist/elements/Progress/Progress.types.d.ts.map +1 -0
  442. package/dist/elements/Progress/index.d.ts +11 -0
  443. package/dist/elements/Progress/index.d.ts.map +1 -0
  444. package/dist/elements/Progress/index.js +30 -0
  445. package/dist/elements/Progress/index.js.map +1 -0
  446. package/dist/elements/Progress/index.mjs +5 -0
  447. package/dist/elements/Progress/index.mjs.map +1 -0
  448. package/dist/elements/RadioGroup/RadioGroup.d.ts +110 -0
  449. package/dist/elements/RadioGroup/RadioGroup.d.ts.map +1 -0
  450. package/dist/elements/RadioGroup/RadioGroup.types.d.ts +143 -0
  451. package/dist/elements/RadioGroup/RadioGroup.types.d.ts.map +1 -0
  452. package/dist/elements/RadioGroup/index.d.ts +10 -0
  453. package/dist/elements/RadioGroup/index.d.ts.map +1 -0
  454. package/dist/elements/RadioGroup/index.js +47 -0
  455. package/dist/elements/RadioGroup/index.js.map +1 -0
  456. package/dist/elements/RadioGroup/index.mjs +6 -0
  457. package/dist/elements/RadioGroup/index.mjs.map +1 -0
  458. package/dist/elements/Resizable/Resizable.types.d.ts +188 -0
  459. package/dist/elements/Resizable/Resizable.types.d.ts.map +1 -0
  460. package/dist/elements/Resizable/components/ResizableHandle.d.ts +28 -0
  461. package/dist/elements/Resizable/components/ResizableHandle.d.ts.map +1 -0
  462. package/dist/elements/Resizable/components/ResizablePanel.d.ts +24 -0
  463. package/dist/elements/Resizable/components/ResizablePanel.d.ts.map +1 -0
  464. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts +26 -0
  465. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts.map +1 -0
  466. package/dist/elements/Resizable/components/ResizablePopover.d.ts +45 -0
  467. package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -0
  468. package/dist/elements/Resizable/hooks/useResizable.d.ts +50 -0
  469. package/dist/elements/Resizable/hooks/useResizable.d.ts.map +1 -0
  470. package/dist/elements/Resizable/hooks/useResizableContext.d.ts +36 -0
  471. package/dist/elements/Resizable/hooks/useResizableContext.d.ts.map +1 -0
  472. package/dist/elements/Resizable/index.d.ts +37 -0
  473. package/dist/elements/Resizable/index.d.ts.map +1 -0
  474. package/dist/elements/Resizable/index.js +65 -0
  475. package/dist/elements/Resizable/index.js.map +1 -0
  476. package/dist/elements/Resizable/index.mjs +8 -0
  477. package/dist/elements/Resizable/index.mjs.map +1 -0
  478. package/dist/elements/Select/Select.d.ts +184 -0
  479. package/dist/elements/Select/Select.d.ts.map +1 -0
  480. package/dist/elements/Select/Select.types.d.ts +166 -0
  481. package/dist/elements/Select/Select.types.d.ts.map +1 -0
  482. package/dist/elements/Select/index.d.ts +35 -0
  483. package/dist/elements/Select/index.d.ts.map +1 -0
  484. package/dist/elements/Select/index.js +33 -0
  485. package/dist/elements/Select/index.js.map +1 -0
  486. package/dist/elements/Select/index.mjs +4 -0
  487. package/dist/elements/Select/index.mjs.map +1 -0
  488. package/dist/elements/Skeleton/Skeleton.d.ts +31 -0
  489. package/dist/elements/Skeleton/Skeleton.d.ts.map +1 -0
  490. package/dist/elements/Skeleton/Skeleton.types.d.ts +36 -0
  491. package/dist/elements/Skeleton/Skeleton.types.d.ts.map +1 -0
  492. package/dist/elements/Skeleton/index.d.ts +11 -0
  493. package/dist/elements/Skeleton/index.d.ts.map +1 -0
  494. package/dist/elements/Skeleton/index.js +22 -0
  495. package/dist/elements/Skeleton/index.js.map +1 -0
  496. package/dist/elements/Skeleton/index.mjs +5 -0
  497. package/dist/elements/Skeleton/index.mjs.map +1 -0
  498. package/dist/elements/Switch/Switch.d.ts +39 -0
  499. package/dist/elements/Switch/Switch.d.ts.map +1 -0
  500. package/dist/elements/Switch/Switch.types.d.ts +53 -0
  501. package/dist/elements/Switch/Switch.types.d.ts.map +1 -0
  502. package/dist/elements/Switch/index.d.ts +8 -0
  503. package/dist/elements/Switch/index.d.ts.map +1 -0
  504. package/dist/elements/Switch/index.js +49 -0
  505. package/dist/elements/Switch/index.js.map +1 -0
  506. package/dist/elements/Switch/index.mjs +31 -0
  507. package/dist/elements/Switch/index.mjs.map +1 -0
  508. package/dist/elements/Table/Table.d.ts +123 -0
  509. package/dist/elements/Table/Table.d.ts.map +1 -0
  510. package/dist/elements/Table/Table.types.d.ts +356 -0
  511. package/dist/elements/Table/Table.types.d.ts.map +1 -0
  512. package/dist/elements/Table/index.d.ts +5 -0
  513. package/dist/elements/Table/index.d.ts.map +1 -0
  514. package/dist/elements/Table/index.js +76 -0
  515. package/dist/elements/Table/index.js.map +1 -0
  516. package/dist/elements/Table/index.mjs +7 -0
  517. package/dist/elements/Table/index.mjs.map +1 -0
  518. package/dist/elements/Tabs/Tabs.d.ts +129 -0
  519. package/dist/elements/Tabs/Tabs.d.ts.map +1 -0
  520. package/dist/elements/Tabs/Tabs.types.d.ts +179 -0
  521. package/dist/elements/Tabs/Tabs.types.d.ts.map +1 -0
  522. package/dist/elements/Tabs/index.d.ts +12 -0
  523. package/dist/elements/Tabs/index.d.ts.map +1 -0
  524. package/dist/elements/Tabs/index.js +74 -0
  525. package/dist/elements/Tabs/index.js.map +1 -0
  526. package/dist/elements/Tabs/index.mjs +5 -0
  527. package/dist/elements/Tabs/index.mjs.map +1 -0
  528. package/dist/elements/TextField/TextField.d.ts +155 -0
  529. package/dist/elements/TextField/TextField.d.ts.map +1 -0
  530. package/dist/elements/TextField/TextField.types.d.ts +258 -0
  531. package/dist/elements/TextField/TextField.types.d.ts.map +1 -0
  532. package/dist/elements/TextField/index.css +23 -0
  533. package/dist/elements/TextField/index.css.map +1 -0
  534. package/dist/elements/TextField/index.d.ts +13 -0
  535. package/dist/elements/TextField/index.d.ts.map +1 -0
  536. package/dist/elements/TextField/index.js +260 -0
  537. package/dist/elements/TextField/index.js.map +1 -0
  538. package/dist/elements/TextField/index.mjs +207 -0
  539. package/dist/elements/TextField/index.mjs.map +1 -0
  540. package/dist/elements/TimeField/TimeField.d.ts +34 -0
  541. package/dist/elements/TimeField/TimeField.d.ts.map +1 -0
  542. package/dist/elements/TimeField/TimeField.types.d.ts +151 -0
  543. package/dist/elements/TimeField/TimeField.types.d.ts.map +1 -0
  544. package/dist/elements/TimeField/index.d.ts +24 -0
  545. package/dist/elements/TimeField/index.d.ts.map +1 -0
  546. package/dist/elements/TimeField/index.js +45 -0
  547. package/dist/elements/TimeField/index.js.map +1 -0
  548. package/dist/elements/TimeField/index.mjs +4 -0
  549. package/dist/elements/TimeField/index.mjs.map +1 -0
  550. package/dist/elements/Toast/Toast.d.ts +105 -0
  551. package/dist/elements/Toast/Toast.d.ts.map +1 -0
  552. package/dist/elements/Toast/Toast.types.d.ts +209 -0
  553. package/dist/elements/Toast/Toast.types.d.ts.map +1 -0
  554. package/dist/elements/Toast/ToastProvider.d.ts +37 -0
  555. package/dist/elements/Toast/ToastProvider.d.ts.map +1 -0
  556. package/dist/elements/Toast/Toaster.d.ts +18 -0
  557. package/dist/elements/Toast/Toaster.d.ts.map +1 -0
  558. package/dist/elements/Toast/index.d.ts +27 -0
  559. package/dist/elements/Toast/index.d.ts.map +1 -0
  560. package/dist/elements/Toast/index.js +60 -0
  561. package/dist/elements/Toast/index.js.map +1 -0
  562. package/dist/elements/Toast/index.mjs +7 -0
  563. package/dist/elements/Toast/index.mjs.map +1 -0
  564. package/dist/elements/Tooltip/Tooltip.d.ts +108 -0
  565. package/dist/elements/Tooltip/Tooltip.d.ts.map +1 -0
  566. package/dist/elements/Tooltip/Tooltip.types.d.ts +135 -0
  567. package/dist/elements/Tooltip/Tooltip.types.d.ts.map +1 -0
  568. package/dist/elements/Tooltip/index.d.ts +11 -0
  569. package/dist/elements/Tooltip/index.d.ts.map +1 -0
  570. package/dist/elements/Tooltip/index.js +59 -0
  571. package/dist/elements/Tooltip/index.js.map +1 -0
  572. package/dist/elements/Tooltip/index.mjs +6 -0
  573. package/dist/elements/Tooltip/index.mjs.map +1 -0
  574. package/dist/elements/index.css +23 -0
  575. package/dist/elements/index.css.map +1 -0
  576. package/dist/elements/index.d.ts +42 -0
  577. package/dist/elements/index.d.ts.map +1 -0
  578. package/dist/elements/index.js +839 -0
  579. package/dist/elements/index.js.map +1 -0
  580. package/dist/elements/index.mjs +42 -0
  581. package/dist/elements/index.mjs.map +1 -0
  582. package/dist/index.css +23 -0
  583. package/dist/index.css.map +1 -0
  584. package/dist/index.d.ts +4 -0
  585. package/dist/index.d.ts.map +1 -0
  586. package/dist/index.js +865 -0
  587. package/dist/index.js.map +1 -0
  588. package/dist/index.mjs +44 -0
  589. package/dist/index.mjs.map +1 -0
  590. package/dist/schemas/BaseComponentProps.d.ts +25 -0
  591. package/dist/schemas/BaseComponentProps.d.ts.map +1 -0
  592. package/dist/schemas/RegistryItem.d.ts +55 -0
  593. package/dist/schemas/RegistryItem.d.ts.map +1 -0
  594. package/dist/schemas/index.d.ts +3 -0
  595. package/dist/schemas/index.d.ts.map +1 -0
  596. package/dist/schemas/index.js +29 -0
  597. package/dist/schemas/index.js.map +1 -0
  598. package/dist/schemas/index.mjs +4 -0
  599. package/dist/schemas/index.mjs.map +1 -0
  600. package/dist/styles/defaults.css +174 -0
  601. package/dist/styles/index.d.ts +7 -0
  602. package/dist/styles/index.d.ts.map +1 -0
  603. package/dist/styles/index.js +153 -0
  604. package/dist/styles/index.js.map +1 -0
  605. package/dist/styles/index.mjs +4 -0
  606. package/dist/styles/index.mjs.map +1 -0
  607. package/dist/styles/interaction-states.d.ts +96 -0
  608. package/dist/styles/interaction-states.d.ts.map +1 -0
  609. package/dist/styles/shared-variants.d.ts +120 -0
  610. package/dist/styles/shared-variants.d.ts.map +1 -0
  611. package/dist/styles/tokens.css +89 -0
  612. package/dist/utils/cn.d.ts +13 -0
  613. package/dist/utils/cn.d.ts.map +1 -0
  614. package/dist/utils/index.d.ts +2 -0
  615. package/dist/utils/index.d.ts.map +1 -0
  616. package/dist/utils/index.js +13 -0
  617. package/dist/utils/index.js.map +1 -0
  618. package/dist/utils/index.mjs +4 -0
  619. package/dist/utils/index.mjs.map +1 -0
  620. package/package.json +228 -0
  621. package/src/elements/Accordion/Accordion.stories.tsx +793 -0
  622. package/src/elements/Avatar/Avatar.stories.tsx +408 -0
  623. package/src/elements/Badge/Badge.stories.tsx +509 -0
  624. package/src/elements/Breadcrumbs/Breadcrumbs.stories.tsx +623 -0
  625. package/src/elements/Button/Button.stories.tsx +670 -0
  626. package/src/elements/ButtonGroup/ButtonGroup.stories.tsx +658 -0
  627. package/src/elements/Card/Card.stories.tsx +570 -0
  628. package/src/elements/Carousel/Carousel.stories.tsx +597 -0
  629. package/src/elements/Chart/Chart.stories.tsx +616 -0
  630. package/src/elements/Checkbox/Checkbox.stories.tsx +514 -0
  631. package/src/elements/CheckboxGroup/CheckboxGroup.stories.tsx +1514 -0
  632. package/src/elements/DatePicker/DatePicker.stories.tsx +341 -0
  633. package/src/elements/Dropdown/Dropdown.stories.tsx +397 -0
  634. package/src/elements/FileField/FileField.stories.tsx +1021 -0
  635. package/src/elements/FileField/FileProgress.stories.tsx +359 -0
  636. package/src/elements/FormLayout/FormLayout.stories.tsx +637 -0
  637. package/src/elements/Modal/Modal.stories.tsx +640 -0
  638. package/src/elements/NumberField/NumberField.stories.tsx +678 -0
  639. package/src/elements/OTPInput/OTPInput.stories.tsx +404 -0
  640. package/src/elements/Panel/Panel.stories.tsx +769 -0
  641. package/src/elements/Progress/Progress.stories.tsx +668 -0
  642. package/src/elements/RadioGroup/RadioGroup.stories.tsx +1153 -0
  643. package/src/elements/Resizable/Resizable.stories.tsx +374 -0
  644. package/src/elements/Select/Select.stories.tsx +362 -0
  645. package/src/elements/Skeleton/Skeleton.stories.tsx +284 -0
  646. package/src/elements/Switch/Switch.stories.tsx +441 -0
  647. package/src/elements/Table/Table.stories.tsx +790 -0
  648. package/src/elements/Tabs/Tabs.stories.tsx +661 -0
  649. package/src/elements/TextField/TextField.stories.tsx +1878 -0
  650. package/src/elements/TimeField/TimeField.stories.tsx +671 -0
  651. package/src/elements/Toast/Toast.stories.tsx +971 -0
  652. package/src/elements/Tooltip/Tooltip.stories.tsx +748 -0
  653. package/tailwind.config.js +10 -0
  654. package/tailwind.config.v3.js +10 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/elements/Select/Select.tsx","../src/elements/Select/Select.types.ts"],"names":["AriaSelect"],"mappings":"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","file":"chunk-6TYWWQHM.mjs","sourcesContent":["'use client';\n\n/**\n * Select Component - Implementation\n *\n * Accessible select/dropdown component combining React Aria primitives with ShadCN styling.\n * Follows Themis library patterns with compound component structure.\n *\n * @see select-prd.md (Full requirements)\n * @see Select.types.ts (Zod schemas)\n * @see plan.md (Implementation plan)\n */\n\nimport {\n forwardRef,\n Children,\n useId,\n useMemo,\n isValidElement,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport {\n Select as AriaSelect,\n Label,\n Button,\n SelectValue,\n Popover,\n ListBox,\n ListBoxItem,\n ListBoxSection,\n Header,\n Text,\n FieldError,\n} from 'react-aria-components';\nimport { cva } from 'class-variance-authority';\nimport { Check, CheckSquare, ChevronDown, Loader2, AlertCircle } from 'lucide-react';\nimport type {\n SelectProps,\n SelectItemProps,\n SelectSectionProps,\n SelectHeaderProps,\n} from './Select.types';\n\n/**\n * CVA Variants for Select Trigger Button\n *\n * @see plan.md Decision 14 (CVA variants)\n */\nexport const selectTriggerVariants = cva(\n [\n // Base styles\n 'flex',\n 'w-full',\n 'items-center',\n 'justify-between',\n 'rounded-md',\n 'border',\n 'bg-[var(--content-background)]',\n 'text-[var(--content-foreground)]',\n 'transition-colors',\n 'duration-200',\n 'outline-none',\n // Focus ring (WCAG 2.2 AAA - 7:1 contrast)\n 'focus-visible:ring-2',\n 'focus-visible:ring-[var(--ring)]',\n 'focus-visible:ring-offset-2',\n // Hover state\n 'hover:bg-[var(--accent)]/10',\n // Disabled state\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n // Loading state\n 'data-[loading=true]:cursor-wait',\n // Truncate text\n 'truncate',\n ],\n {\n variants: {\n size: {\n // All sizes use 44px minimum touch target for WCAG 2.2 AAA compliance\n // Visual height varies but touch area remains accessible\n sm: 'h-9 px-3 text-sm min-h-[44px]',\n default: 'h-11 px-4 text-base min-h-[44px]',\n lg: 'h-14 px-5 text-lg min-h-[44px]',\n },\n isInvalid: {\n true: 'border-[var(--destructive)]',\n false: 'border-[var(--input)] hover:border-[var(--input)]/80',\n },\n },\n defaultVariants: {\n size: 'default',\n isInvalid: false,\n },\n }\n);\n\n/**\n * CVA Variants for Select Items\n *\n * @see plan.md Decision 14 (CVA variants)\n */\nexport const selectItemVariants = cva(\n [\n // Base styles\n 'relative',\n 'flex',\n 'w-full',\n 'cursor-pointer',\n 'select-none',\n 'items-center',\n 'rounded-sm',\n 'outline-none',\n 'transition-colors',\n // Padding for checkmark icon (left side)\n 'pl-8',\n 'pr-2',\n // Hover state\n 'hover:bg-[var(--accent)]',\n 'hover:text-[var(--accent-foreground)]',\n // Focus state\n 'focus:bg-[var(--accent)]',\n 'focus:text-[var(--accent-foreground)]',\n // Selected state\n 'data-[selected=true]:bg-[var(--accent)]',\n 'data-[selected=true]:text-[var(--accent-foreground)]',\n // Disabled state\n 'data-[disabled=true]:pointer-events-none',\n 'data-[disabled=true]:opacity-50',\n 'data-[disabled=true]:text-[var(--menu-muted)]',\n ],\n {\n variants: {\n size: {\n // All sizes use 44px minimum touch target for WCAG 2.2 AAA compliance\n sm: 'h-9 py-1.5 text-sm min-h-[44px]',\n default: 'h-11 py-2 text-base min-h-[44px]',\n lg: 'h-14 py-3 text-lg min-h-[44px]',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n/**\n * CVA Variants for Select Popover\n *\n * @see plan.md Decision 14 (CVA variants)\n */\nexport const selectPopoverVariants = cva(\n [\n // Base styles - use menu tokens to match Dropdown styling\n 'z-50',\n 'w-[--trigger-width]',\n 'rounded-md',\n 'border',\n 'border-[var(--menu-border)]',\n 'bg-[var(--menu-background)]',\n 'text-[var(--menu-foreground)]',\n 'shadow-md',\n 'outline-none',\n 'overflow-auto',\n // Animations\n 'data-[entering]:animate-in',\n 'data-[entering]:fade-in-0',\n 'data-[entering]:zoom-in-95',\n 'data-[exiting]:animate-out',\n 'data-[exiting]:fade-out-0',\n 'data-[exiting]:zoom-out-95',\n ],\n {\n variants: {\n size: {\n sm: 'max-h-[200px] p-1',\n default: 'max-h-[300px] p-1',\n lg: 'max-h-[400px] p-1',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n/**\n * CVA Variants for Section Headers\n *\n * @see plan.md Decision 14 (CVA variants)\n */\nexport const selectSectionVariants = cva(\n [\n 'px-2',\n 'py-1.5',\n 'text-xs',\n 'font-semibold',\n 'text-[var(--menu-muted)]',\n 'uppercase',\n 'tracking-wider',\n ],\n {\n variants: {\n size: {\n sm: 'px-2 py-1 text-[10px]',\n default: 'px-2 py-1.5 text-xs',\n lg: 'px-3 py-2 text-sm',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n/**\n * CVA Variants for Error Messages\n *\n * @see plan.md Decision 14 (CVA variants)\n */\nexport const selectErrorVariants = cva(\n [\n 'flex',\n 'items-center',\n 'gap-1.5',\n 'text-sm',\n 'font-medium',\n 'text-[var(--destructive)]',\n 'mt-1.5',\n ],\n {\n variants: {\n size: {\n sm: 'text-xs mt-1',\n default: 'text-sm mt-1.5',\n lg: 'text-base mt-2',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n/**\n * Select Root Component (Single Selection Only)\n *\n * Main select component with controlled/uncontrolled modes for single selection.\n * For multiple selection, use MultiSelect component.\n *\n * @see select-prd.md US-1 (Basic Single Selection)\n * @see plan.md Decision 28 (Ref forwarding to trigger button)\n */\nconst SelectRoot = forwardRef<HTMLButtonElement, Omit<SelectProps, 'selectionMode'>>(\n (\n {\n // Display props\n label,\n placeholder,\n description,\n\n // Selection props\n value,\n defaultValue,\n\n // State props\n isOpen,\n isDisabled = false,\n isRequired = false,\n disabledKeys,\n\n // Validation props\n validate,\n validationBehavior = 'aria',\n errorMessage,\n\n // Loading state\n isLoading = false,\n emptyStateMessage,\n\n // Form integration\n name,\n\n // Size variant\n size = 'default',\n\n // Event handlers\n onChange,\n onOpenChange,\n\n // Standard props\n className,\n children,\n ...props\n },\n ref\n ) => {\n // Generate unique IDs for accessibility\n const labelId = useId();\n const descriptionId = useId();\n const errorId = useId();\n\n // Warn if >1000 items (Decision 22: Large Item Count Handling)\n const childCount = Children.count(children);\n if (childCount > 1000) {\n console.warn(\n 'Select has >1000 items. Consider using Autocomplete component for better performance.'\n );\n }\n\n // Determine if invalid based on errorMessage or validate function\n const isInvalid = Boolean(errorMessage);\n\n return (\n <AriaSelect\n value={value as string}\n defaultValue={defaultValue as string}\n onChange={(key) => {\n if (onChange) {\n onChange(key as string);\n }\n }}\n placeholder={placeholder}\n disabledKeys={disabledKeys}\n isOpen={isOpen}\n onOpenChange={onOpenChange}\n isDisabled={isDisabled || isLoading}\n isRequired={isRequired}\n name={name}\n validate={validate as ((value: unknown) => true | string | null | undefined) | undefined}\n validationBehavior={validationBehavior}\n isInvalid={isInvalid}\n className={className}\n {...props}\n >\n {/* Label */}\n <Label id={labelId} className=\"text-sm font-medium text-[var(--content-foreground)]\">\n {label}\n {isRequired && <span className=\"text-[var(--destructive)] ml-1\">*</span>}\n </Label>\n\n {/* Description (if provided) */}\n {description && (\n <Text id={descriptionId} slot=\"description\" className=\"text-sm text-[var(--menu-muted)] mt-1\">\n {description}\n </Text>\n )}\n\n {/* Trigger Button */}\n <Button\n ref={ref}\n className={selectTriggerVariants({ size, isInvalid })}\n aria-labelledby={labelId}\n aria-describedby={description ? descriptionId : errorMessage ? errorId : undefined}\n data-loading={isLoading}\n {...(isRequired && { 'aria-required': 'true' })}\n {...(isLoading && { 'aria-busy': 'true' })}\n {...((isDisabled || isLoading) && { 'aria-disabled': 'true' })}\n >\n <SelectValue className=\"flex-1 text-left truncate\" />\n\n {/* Loading spinner or chevron icon */}\n {isLoading ? (\n <Loader2 className=\"h-4 w-4 animate-spin text-[var(--menu-muted)]\" aria-hidden=\"true\" />\n ) : (\n <ChevronDown className=\"h-4 w-4 text-[var(--menu-muted)]\" aria-hidden=\"true\" />\n )}\n </Button>\n\n {/* Error Message */}\n <FieldError id={errorId} className={selectErrorVariants({ size })}>\n {({ validationErrors }) => {\n // Display custom errorMessage if provided, otherwise show validation errors\n const displayError = errorMessage || validationErrors.join(' ');\n return displayError ? (\n <>\n <AlertCircle className=\"h-4 w-4\" aria-hidden=\"true\" />\n {displayError}\n </>\n ) : null;\n }}\n </FieldError>\n\n {/* Popover with ListBox */}\n <Popover className={selectPopoverVariants({ size })}>\n <ListBox className=\"outline-none\">\n {/* Loading skeleton (if loading and has children) */}\n {isLoading && childCount > 0 && (\n <>\n {Array.from({ length: 3 }).map((_, i) => (\n <div\n key={`skeleton-${i}`}\n className=\"h-11 px-4 py-2\"\n >\n <div className=\"h-4 bg-[var(--accent-background)] rounded animate-pulse\" />\n </div>\n ))}\n </>\n )}\n\n {/* Items or empty state */}\n {!isLoading && (\n <>\n {children}\n {/* Empty state - render as disabled item so popover can open */}\n {childCount === 0 && (\n <ListBoxItem\n id=\"__empty__\"\n textValue=\"empty\"\n isDisabled\n className=\"py-6 text-center text-sm text-[var(--menu-muted)] cursor-default pointer-events-none\"\n >\n <span role=\"status\">\n {emptyStateMessage || 'No options available'}\n </span>\n </ListBoxItem>\n )}\n </>\n )}\n </ListBox>\n </Popover>\n </AriaSelect>\n );\n }\n);\n\nSelectRoot.displayName = 'Select';\n\n/**\n * MultiSelect Root Component (Multiple Selection)\n *\n * Select component for multiple selection. Uses different API from single Select.\n *\n * @see select-prd.md US-6 (Multiple Selection)\n * @see plan.md Decision 28 (Ref forwarding to trigger button)\n */\nconst MultiSelectRoot = forwardRef<HTMLButtonElement, SelectProps>(\n (\n {\n // Display props\n label,\n placeholder,\n description,\n\n // Selection props\n value,\n defaultValue,\n selectionMode: _selectionMode = 'multiple',\n\n // State props\n isOpen,\n isDisabled = false,\n isRequired = false,\n disabledKeys,\n\n // Validation props\n validate,\n validationBehavior = 'aria',\n errorMessage,\n\n // Loading state\n isLoading = false,\n emptyStateMessage,\n\n // Form integration\n name,\n\n // Size variant\n size = 'default',\n\n // Event handlers\n onChange,\n onOpenChange,\n\n // Standard props\n className,\n children,\n ...props\n },\n ref\n ) => {\n // Generate unique IDs for accessibility\n const labelId = useId();\n const descriptionId = useId();\n const errorId = useId();\n\n // Warn if >1000 items\n const childCount = Children.count(children);\n if (childCount > 1000) {\n console.warn(\n 'Select has >1000 items. Consider using Autocomplete component for better performance.'\n );\n }\n\n // Determine if invalid\n const isInvalid = Boolean(errorMessage);\n\n // Build value-to-label map for display (memoized to prevent recreation on every render)\n const valueToLabelMap = useMemo(() => {\n const map = new Map<string, string>();\n const processChildren = (nodes: ReactNode): void => {\n Children.forEach(nodes, (child) => {\n if (isValidElement(child)) {\n const element = child as ReactElement<{ value?: string; children?: ReactNode }>;\n if (element.type === SelectItem || element.props?.value) {\n const itemValue = element.props.value;\n const itemChildren = element.props.children;\n if (itemValue && typeof itemChildren === 'string') {\n map.set(itemValue, itemChildren);\n }\n }\n if (element.props?.children) {\n processChildren(element.props.children);\n }\n }\n });\n };\n processChildren(children);\n return map;\n }, [children]);\n\n // Multi-select display logic (Decision 5: Multi-select threshold)\n // Memoized to prevent recalculation on every render\n const displayValue = useMemo(() => {\n if (!value || !Array.isArray(value) || value.length === 0) {\n return placeholder || '';\n }\n\n if (value.length <= 2) {\n // Show item labels for 1-2 items\n const labels = value.map(v => valueToLabelMap.get(v as string) || v);\n return labels.join(', ');\n }\n\n // Show count for 3+ items\n return `${value.length} items selected`;\n }, [value, valueToLabelMap, placeholder]);\n\n return (\n <AriaSelect\n value={value as string[]}\n defaultValue={defaultValue as string[]}\n onChange={(keys) => {\n if (onChange) {\n onChange(keys as string[]);\n }\n }}\n selectionMode=\"multiple\"\n disabledKeys={disabledKeys}\n isOpen={isOpen}\n onOpenChange={onOpenChange}\n isDisabled={isDisabled || isLoading}\n isRequired={isRequired}\n name={name}\n validate={validate as ((value: unknown) => true | string | null | undefined) | undefined}\n validationBehavior={validationBehavior}\n isInvalid={isInvalid}\n className={className}\n {...props}\n >\n {/* Label */}\n <Label id={labelId} className=\"text-sm font-medium text-[var(--content-foreground)]\">\n {label}\n {isRequired && <span className=\"text-[var(--destructive)] ml-1\">*</span>}\n </Label>\n\n {/* Description */}\n {description && (\n <Text id={descriptionId} slot=\"description\" className=\"text-sm text-[var(--menu-muted)] mt-1\">\n {description}\n </Text>\n )}\n\n {/* Trigger Button */}\n <Button\n ref={ref}\n className={selectTriggerVariants({ size, isInvalid })}\n aria-labelledby={labelId}\n aria-describedby={description ? descriptionId : errorMessage ? errorId : undefined}\n data-loading={isLoading}\n {...(isRequired && { 'aria-required': 'true' })}\n {...(isLoading && { 'aria-busy': 'true' })}\n {...((isDisabled || isLoading) && { 'aria-disabled': 'true' })}\n >\n <span className=\"flex-1 text-left truncate\">\n {displayValue}\n </span>\n\n {/* Loading spinner or chevron icon */}\n {isLoading ? (\n <Loader2 className=\"h-4 w-4 animate-spin text-[var(--menu-muted)]\" aria-hidden=\"true\" />\n ) : (\n <ChevronDown className=\"h-4 w-4 text-[var(--menu-muted)]\" aria-hidden=\"true\" />\n )}\n </Button>\n\n {/* Error Message */}\n <FieldError id={errorId} className={selectErrorVariants({ size })}>\n {({ validationErrors }) => {\n // Display custom errorMessage if provided, otherwise show validation errors\n const displayError = errorMessage || validationErrors.join(' ');\n return displayError ? (\n <>\n <AlertCircle className=\"h-4 w-4\" aria-hidden=\"true\" />\n {displayError}\n </>\n ) : null;\n }}\n </FieldError>\n\n {/* Popover with ListBox */}\n <Popover className={selectPopoverVariants({ size })}>\n <ListBox className=\"outline-none\">\n {/* Loading skeleton */}\n {isLoading && childCount > 0 && (\n <>\n {Array.from({ length: 3 }).map((_, i) => (\n <div key={`skeleton-${i}`} className=\"h-11 px-4 py-2\">\n <div className=\"h-4 bg-[var(--accent-background)] rounded animate-pulse\" />\n </div>\n ))}\n </>\n )}\n\n {/* Items or empty state */}\n {!isLoading && (\n <>\n {children}\n {childCount === 0 && (\n <ListBoxItem\n id=\"__empty__\"\n textValue=\"empty\"\n isDisabled\n className=\"py-6 text-center text-sm text-[var(--menu-muted)] cursor-default pointer-events-none\"\n >\n <span role=\"status\">\n {emptyStateMessage || 'No options available'}\n </span>\n </ListBoxItem>\n )}\n </>\n )}\n </ListBox>\n </Popover>\n </AriaSelect>\n );\n }\n);\n\nMultiSelectRoot.displayName = 'MultiSelect';\n\n/**\n * Select.Item Component\n *\n * Individual selectable item with checkmark icon.\n *\n * @see select-prd.md US-1 (Basic Single Selection)\n * @see plan.md Decision 6 (Left-side checkmark)\n * @see plan.md Decision 23 (textValue required for custom children)\n */\nfunction SelectItem({ children, textValue, value, isDisabled = false, className, ...props }: SelectItemProps): ReactElement {\n // Validate textValue for custom children (Decision 23)\n if (!textValue && typeof children !== 'string') {\n const message = 'Select.Item with custom children requires textValue prop for accessibility';\n if (process.env.NODE_ENV === 'development') {\n throw new Error(message);\n } else {\n console.warn(message);\n }\n }\n\n return (\n <ListBoxItem\n id={value}\n textValue={textValue || (typeof children === 'string' ? children : undefined)}\n className={`${selectItemVariants({ size: 'default' })} ${className || ''}`}\n isDisabled={isDisabled}\n {...props}\n >\n {({ isSelected, selectionMode, isDisabled: itemDisabled }) => (\n <>\n {/* Checkmark icon (left side) - Decision 6 */}\n {selectionMode === 'multiple' ? (\n <CheckSquare\n className={`absolute left-2 h-4 w-4 ${isSelected ? 'visible' : 'invisible'}`}\n aria-hidden=\"true\"\n />\n ) : (\n isSelected && <Check className=\"absolute left-2 h-4 w-4\" aria-hidden=\"true\" />\n )}\n <span className={itemDisabled ? 'text-[var(--menu-muted)]' : ''}>\n {children}\n </span>\n </>\n )}\n </ListBoxItem>\n );\n}\n\nSelectItem.displayName = 'SelectItem';\n\n/**\n * Select.Section Component\n *\n * Groups related items with optional header.\n *\n * @see select-prd.md US-3 (Grouped Options with Sections)\n */\nfunction SelectSection({ children, className, ...props }: SelectSectionProps): ReactElement {\n return (\n <ListBoxSection className={`border-t border-[var(--border)] first:border-t-0 ${className || ''}`} {...props}>\n {children}\n </ListBoxSection>\n );\n}\n\nSelectSection.displayName = 'SelectSection';\n\n/**\n * Select.Header Component\n *\n * Section header with non-interactive label.\n *\n * @see select-prd.md US-3 (Grouped Options with Sections)\n */\nfunction SelectHeader({ children, className, ...props }: SelectHeaderProps): ReactElement {\n return (\n <Header className={`${selectSectionVariants({ size: 'default' })} ${className || ''}`} {...props}>\n {children}\n </Header>\n );\n}\n\nSelectHeader.displayName = 'SelectHeader';\n\n/**\n * Compound Component Exports\n *\n * Follows Themis library pattern using Object.assign() for compound components.\n *\n * @see GUIDE.mdx (Compound component pattern)\n */\nexport const Select = Object.assign(SelectRoot, {\n Item: SelectItem,\n Section: SelectSection,\n Header: SelectHeader,\n});\n\nexport const MultiSelect = Object.assign(MultiSelectRoot, {\n Item: SelectItem,\n Section: SelectSection,\n Header: SelectHeader,\n});\n\n// Named exports for individual components\nexport { SelectRoot, MultiSelectRoot, SelectItem, SelectSection, SelectHeader };\n","import { z } from 'zod';\nimport { BaseComponentPropsSchema } from '../../schemas/BaseComponentProps';\nimport type { ReactNode } from 'react';\nimport type {\n SelectProps as AriaSelectProps,\n ListBoxItemProps as AriaListBoxItemProps,\n} from 'react-aria-components';\n\n/**\n * Select size variants\n *\n * @see select-prd.md US-9 (Visual States - Size Variants)\n * @see plan.md Decision 4 (Include sm size with warning for desktop-only)\n */\nexport const SelectSizeSchema = z.enum(['sm', 'default', 'lg']);\nexport type SelectSize = z.infer<typeof SelectSizeSchema>;\n\n/**\n * Select selection mode\n *\n * @see select-prd.md US-6 (Multiple Selection)\n */\nexport const SelectionModeSchema = z.enum(['single', 'multiple']);\nexport type SelectionMode = z.infer<typeof SelectionModeSchema>;\n\n/**\n * Select validation behavior\n *\n * @see select-prd.md US-4 (Validation and Error Messages)\n */\nexport const ValidationBehaviorSchema = z.enum(['native', 'aria']);\nexport type ValidationBehavior = z.infer<typeof ValidationBehaviorSchema>;\n\n/**\n * Select root component props schema\n *\n * @see select-prd.md US-1 (Basic Single Selection)\n * @see select-prd.md US-4 (Validation and Error Messages)\n * @see select-prd.md US-5 (Disabled States)\n * @see select-prd.md US-6 (Multiple Selection)\n * @see select-prd.md US-7 (Async Data Loading)\n * @see select-prd.md US-10 (Form Integration)\n */\nexport const SelectPropsSchema = BaseComponentPropsSchema.extend({\n // Display props (US-1)\n label: z.string(), // Required for accessibility\n placeholder: z.string().optional(),\n description: z.string().optional(),\n\n // Selection props (US-1, US-6)\n value: z.union([z.string(), z.array(z.string())]).optional(),\n defaultValue: z.union([z.string(), z.array(z.string())]).optional(),\n selectionMode: SelectionModeSchema.optional().default('single'),\n\n // State props (US-1, US-5)\n isOpen: z.boolean().optional(),\n isDisabled: z.boolean().optional().default(false),\n isRequired: z.boolean().optional().default(false),\n disabledKeys: z.array(z.string()).optional(),\n\n // Validation props (US-4)\n validate: z\n .custom<(value: string | string[]) => string | undefined>()\n .optional(),\n validationBehavior: ValidationBehaviorSchema.optional().default('aria'),\n errorMessage: z.string().optional(),\n\n // Loading state (US-7)\n isLoading: z.boolean().optional().default(false),\n emptyStateMessage: z.string().optional(),\n\n // Form integration (US-10)\n name: z.string().optional(),\n\n // Size variant (US-9)\n size: SelectSizeSchema.optional().default('default'),\n\n // Event handlers (US-1)\n onChange: z\n .custom<(value: string | string[]) => void>()\n .optional(),\n onOpenChange: z.custom<(isOpen: boolean) => void>().optional(),\n\n // Children (Select.Item, Select.Section components)\n children: z.custom<ReactNode>(),\n});\n\nexport type SelectProps = z.infer<typeof SelectPropsSchema> &\n Omit<AriaSelectProps<object>, keyof z.infer<typeof SelectPropsSchema>>;\n\n/**\n * Select.Item props schema\n *\n * @see select-prd.md US-1 (Basic Single Selection)\n * @see select-prd.md US-5 (Disabled States)\n * @see select-prd.md US-8 (Custom Value Rendering)\n * @see plan.md Decision 23 (textValue required for custom children)\n */\nexport const SelectItemPropsSchema = BaseComponentPropsSchema.extend({\n // Item value (required)\n value: z.string(),\n\n // Text value for typeahead and accessibility (required for custom children)\n textValue: z.string().optional(),\n\n // Disabled state\n isDisabled: z.boolean().optional().default(false),\n\n // Item content\n children: z.custom<ReactNode>(),\n\n // Optional className for custom styling\n className: z.string().optional(),\n});\n\nexport type SelectItemProps = z.infer<typeof SelectItemPropsSchema> &\n Omit<AriaListBoxItemProps, keyof z.infer<typeof SelectItemPropsSchema>>;\n\n/**\n * Select.Section props schema\n *\n * @see select-prd.md US-3 (Grouped Options with Sections)\n */\nexport const SelectSectionPropsSchema = BaseComponentPropsSchema.extend({\n // Section content (typically Select.Header + Select.Item components)\n children: z.custom<ReactNode>(),\n\n // Optional className for custom styling\n className: z.string().optional(),\n});\n\nexport type SelectSectionProps = z.infer<typeof SelectSectionPropsSchema>;\n\n/**\n * Select.Header props schema (for section headers)\n *\n * @see select-prd.md US-3 (Grouped Options with Sections)\n */\nexport const SelectHeaderPropsSchema = BaseComponentPropsSchema.extend({\n // Header text\n children: z.custom<ReactNode>(),\n\n // Optional className for header styling\n className: z.string().optional(),\n});\n\nexport type SelectHeaderProps = z.infer<typeof SelectHeaderPropsSchema>;\n\n/**\n * CVA variant configuration types\n * Used for class-variance-authority integration\n */\nexport type SelectVariantSize = SelectSize;\nexport type SelectVariantSelectionMode = SelectionMode;\n"]}
@@ -0,0 +1,384 @@
1
+ import { Button } from './chunk-BDXKKMBZ.mjs';
2
+ import { cn } from './chunk-E2KQFV3O.mjs';
3
+ import { z } from 'zod';
4
+ import { cva } from 'class-variance-authority';
5
+ import { forwardRef } from 'react';
6
+ import { NumberField as NumberField$1, Label, Group, Input, Text, FieldError } from 'react-aria-components';
7
+ import { Minus, Plus } from 'lucide-react';
8
+ import { jsxs, jsx } from 'react/jsx-runtime';
9
+
10
+ var DEFAULT_MAX_VALUE = 4294967295;
11
+ var DEFAULT_MIN_VALUE = 0;
12
+ var NEGATIVE_MIN_VALUE = -2147483647;
13
+ var NumberFieldPropsSchema = z.object({
14
+ // Value props
15
+ /** Current value (controlled mode) */
16
+ value: z.number().nullable().optional(),
17
+ /** Default value (uncontrolled mode) */
18
+ defaultValue: z.number().optional(),
19
+ // Constraint props
20
+ /** Minimum allowed value (default: 0) */
21
+ minValue: z.number().optional(),
22
+ /** Maximum allowed value (default: 4294967295 / UINT32_MAX) */
23
+ maxValue: z.number().optional(),
24
+ /** Allow negative numbers (sets minValue to -2147483647 if not explicitly set) */
25
+ allowNegative: z.boolean().optional(),
26
+ /** Step increment for stepper buttons and arrow keys (default: 1) */
27
+ step: z.number().positive().optional(),
28
+ // Formatting props
29
+ /** Intl.NumberFormat options for locale-aware formatting */
30
+ formatOptions: z.custom().optional(),
31
+ // State props
32
+ /** Whether the field is disabled */
33
+ isDisabled: z.boolean().optional(),
34
+ /** Whether the field is read-only */
35
+ isReadOnly: z.boolean().optional(),
36
+ /** Whether the field is required */
37
+ isRequired: z.boolean().optional(),
38
+ /** Whether the field is in an invalid state */
39
+ isInvalid: z.boolean().optional(),
40
+ /** Whether scroll wheel adjustment is disabled */
41
+ isWheelDisabled: z.boolean().optional(),
42
+ // Validation props
43
+ /** Custom validation function that returns an error message or null */
44
+ validate: z.function().optional(),
45
+ /** Validation behavior: 'native' for HTML5 validation, 'aria' for ARIA-only */
46
+ validationBehavior: z.enum(["native", "aria"]).default("native"),
47
+ // Display props
48
+ /** Field label (required for accessibility) */
49
+ label: z.string(),
50
+ /** Description text below the field */
51
+ description: z.string().optional(),
52
+ /** Error message string or render function */
53
+ errorMessage: z.union([z.string(), z.function()]).optional(),
54
+ // Stepper props
55
+ /** Layout for stepper buttons */
56
+ stepperLayout: z.enum(["sides", "stacked", "hidden"]).default("sides"),
57
+ /** Custom aria-label for increment button */
58
+ incrementAriaLabel: z.string().optional(),
59
+ /** Custom aria-label for decrement button */
60
+ decrementAriaLabel: z.string().optional(),
61
+ // Form props
62
+ /** Name attribute for form submission */
63
+ name: z.string().optional(),
64
+ // Variant props
65
+ /** Size variant */
66
+ size: z.enum(["sm", "default", "lg"]).default("default"),
67
+ // Event props
68
+ /** Called when the numeric value changes */
69
+ onChange: z.function().optional(),
70
+ /** Called when the field gains focus */
71
+ onFocus: z.function().optional(),
72
+ /** Called when the field loses focus */
73
+ onBlur: z.function().optional(),
74
+ /** Called when focus state changes */
75
+ onFocusChange: z.function().optional(),
76
+ // Standard props
77
+ /** Additional CSS classes */
78
+ className: z.string().optional(),
79
+ /** Whether to auto-focus on mount */
80
+ autoFocus: z.boolean().optional()
81
+ });
82
+ var numberFieldVariants = cva(
83
+ [
84
+ // Base styles
85
+ "inline-flex items-center rounded-md border",
86
+ "bg-[var(--content-background)] text-[var(--content-foreground)]",
87
+ "transition-colors duration-200",
88
+ // Focus within
89
+ "focus-within:ring-2 focus-within:ring-[var(--ring)] focus-within:ring-offset-2",
90
+ // Disabled
91
+ "data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50"
92
+ ],
93
+ {
94
+ variants: {
95
+ size: {
96
+ sm: "h-9 text-sm",
97
+ default: "h-10 text-base",
98
+ lg: "h-12 text-lg"
99
+ },
100
+ isInvalid: {
101
+ true: "border-[var(--destructive)] focus-within:ring-[var(--destructive)]",
102
+ false: "border-[var(--input)] hover:border-[var(--input)]/80"
103
+ }
104
+ },
105
+ defaultVariants: {
106
+ size: "default",
107
+ isInvalid: false
108
+ }
109
+ }
110
+ );
111
+ var numberFieldInputVariants = cva(
112
+ [
113
+ // Base styles
114
+ "flex-1 bg-transparent text-center tabular-nums",
115
+ "min-w-0",
116
+ // Allow shrinking
117
+ // Focus
118
+ "focus:outline-none",
119
+ // Hide native spinners
120
+ "[appearance:textfield]",
121
+ "[&::-webkit-outer-spin-button]:appearance-none",
122
+ "[&::-webkit-inner-spin-button]:appearance-none"
123
+ ],
124
+ {
125
+ variants: {
126
+ size: {
127
+ sm: "px-2 text-sm",
128
+ default: "px-3 text-base",
129
+ lg: "px-4 text-lg"
130
+ }
131
+ },
132
+ defaultVariants: {
133
+ size: "default"
134
+ }
135
+ }
136
+ );
137
+ var numberFieldStepperVariants = cva(
138
+ [
139
+ // Base styles
140
+ "flex items-center justify-center",
141
+ "transition-colors duration-150",
142
+ "select-none",
143
+ // Hover
144
+ "hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]",
145
+ // Focus
146
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]",
147
+ "focus-visible:ring-inset",
148
+ // Active (pressed)
149
+ "active:bg-[var(--accent)]/80",
150
+ // Disabled
151
+ "disabled:pointer-events-none disabled:opacity-50"
152
+ ],
153
+ {
154
+ variants: {
155
+ size: {
156
+ sm: "min-w-8 min-h-8 text-sm",
157
+ default: "min-w-10 min-h-10 text-base",
158
+ lg: "min-w-12 min-h-12 text-lg"
159
+ },
160
+ position: {
161
+ left: "rounded-l-md border-r border-[var(--input)]",
162
+ right: "rounded-r-md border-l border-[var(--input)]",
163
+ top: "rounded-tr-md border-b border-l border-[var(--input)] h-1/2",
164
+ bottom: "rounded-br-md border-l border-[var(--input)] h-1/2"
165
+ }
166
+ },
167
+ defaultVariants: {
168
+ size: "default"
169
+ }
170
+ }
171
+ );
172
+ var numberFieldLabelVariants = cva(
173
+ [
174
+ "block font-medium text-[var(--content-foreground)]",
175
+ "mb-1.5",
176
+ // Required indicator
177
+ 'data-[required]:after:content-["*"] data-[required]:after:ml-0.5',
178
+ "data-[required]:after:text-[var(--destructive)]"
179
+ ],
180
+ {
181
+ variants: {
182
+ size: {
183
+ sm: "text-sm",
184
+ default: "text-sm",
185
+ lg: "text-base"
186
+ }
187
+ },
188
+ defaultVariants: {
189
+ size: "default"
190
+ }
191
+ }
192
+ );
193
+ var numberFieldDescriptionVariants = cva(
194
+ [
195
+ "text-[var(--menu-muted)]",
196
+ "mt-1"
197
+ ],
198
+ {
199
+ variants: {
200
+ size: {
201
+ sm: "text-xs",
202
+ default: "text-sm",
203
+ lg: "text-base"
204
+ }
205
+ },
206
+ defaultVariants: {
207
+ size: "default"
208
+ }
209
+ }
210
+ );
211
+ var numberFieldErrorVariants = cva(
212
+ [
213
+ "flex items-center gap-1",
214
+ "text-[var(--destructive)]",
215
+ "mt-1"
216
+ ],
217
+ {
218
+ variants: {
219
+ size: {
220
+ sm: "text-xs",
221
+ default: "text-sm",
222
+ lg: "text-base"
223
+ }
224
+ },
225
+ defaultVariants: {
226
+ size: "default"
227
+ }
228
+ }
229
+ );
230
+ var NumberField = forwardRef(
231
+ ({
232
+ // Display props
233
+ label,
234
+ description,
235
+ errorMessage,
236
+ // Variant props
237
+ size = "default",
238
+ stepperLayout = "sides",
239
+ // Custom props
240
+ allowNegative = false,
241
+ incrementAriaLabel,
242
+ decrementAriaLabel,
243
+ // Constraint props (apply defaults)
244
+ minValue,
245
+ maxValue,
246
+ // Standard props
247
+ className,
248
+ isInvalid,
249
+ isRequired,
250
+ isDisabled,
251
+ isReadOnly,
252
+ // All other props go to AriaNumberField
253
+ ...props
254
+ }, ref) => {
255
+ const effectiveMinValue = minValue ?? (allowNegative ? NEGATIVE_MIN_VALUE : DEFAULT_MIN_VALUE);
256
+ const effectiveMaxValue = maxValue ?? DEFAULT_MAX_VALUE;
257
+ const showSteppers = stepperLayout !== "hidden" && !isReadOnly;
258
+ const isStackedLayout = stepperLayout === "stacked";
259
+ return /* @__PURE__ */ jsxs(
260
+ NumberField$1,
261
+ {
262
+ ref,
263
+ className: cn("group flex flex-col", className),
264
+ minValue: effectiveMinValue,
265
+ maxValue: effectiveMaxValue,
266
+ isInvalid,
267
+ isRequired,
268
+ isDisabled,
269
+ isReadOnly,
270
+ ...props,
271
+ children: [
272
+ /* @__PURE__ */ jsx(
273
+ Label,
274
+ {
275
+ className: cn(numberFieldLabelVariants({ size })),
276
+ "data-required": isRequired || void 0,
277
+ children: label
278
+ }
279
+ ),
280
+ /* @__PURE__ */ jsxs(
281
+ Group,
282
+ {
283
+ className: cn(
284
+ numberFieldVariants({
285
+ size,
286
+ isInvalid: isInvalid ?? false
287
+ }),
288
+ isStackedLayout && "pr-0"
289
+ ),
290
+ children: [
291
+ showSteppers && !isStackedLayout && /* @__PURE__ */ jsx(
292
+ Button,
293
+ {
294
+ slot: "decrement",
295
+ variant: "ghost",
296
+ className: "!min-h-0 !min-w-0",
297
+ buttonVisualClassName: cn(
298
+ numberFieldStepperVariants({
299
+ size,
300
+ position: "left"
301
+ })
302
+ ),
303
+ "aria-label": decrementAriaLabel ?? "Decrease value",
304
+ children: /* @__PURE__ */ jsx(Minus, { className: "h-4 w-4", "aria-hidden": "true" })
305
+ }
306
+ ),
307
+ /* @__PURE__ */ jsx(
308
+ Input,
309
+ {
310
+ className: cn(numberFieldInputVariants({ size }))
311
+ }
312
+ ),
313
+ showSteppers && isStackedLayout && /* @__PURE__ */ jsxs("div", { className: "flex flex-col h-full", children: [
314
+ /* @__PURE__ */ jsx(
315
+ Button,
316
+ {
317
+ slot: "increment",
318
+ variant: "ghost",
319
+ className: "!min-h-0 !min-w-0",
320
+ buttonVisualClassName: cn(
321
+ numberFieldStepperVariants({
322
+ size,
323
+ position: "top"
324
+ })
325
+ ),
326
+ "aria-label": incrementAriaLabel ?? "Increase value",
327
+ children: /* @__PURE__ */ jsx(Plus, { className: "h-3 w-3", "aria-hidden": "true" })
328
+ }
329
+ ),
330
+ /* @__PURE__ */ jsx(
331
+ Button,
332
+ {
333
+ slot: "decrement",
334
+ variant: "ghost",
335
+ className: "!min-h-0 !min-w-0",
336
+ buttonVisualClassName: cn(
337
+ numberFieldStepperVariants({
338
+ size,
339
+ position: "bottom"
340
+ })
341
+ ),
342
+ "aria-label": decrementAriaLabel ?? "Decrease value",
343
+ children: /* @__PURE__ */ jsx(Minus, { className: "h-3 w-3", "aria-hidden": "true" })
344
+ }
345
+ )
346
+ ] }),
347
+ showSteppers && !isStackedLayout && /* @__PURE__ */ jsx(
348
+ Button,
349
+ {
350
+ slot: "increment",
351
+ variant: "ghost",
352
+ className: "!min-h-0 !min-w-0",
353
+ buttonVisualClassName: cn(
354
+ numberFieldStepperVariants({
355
+ size,
356
+ position: "right"
357
+ })
358
+ ),
359
+ "aria-label": incrementAriaLabel ?? "Increase value",
360
+ children: /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4", "aria-hidden": "true" })
361
+ }
362
+ )
363
+ ]
364
+ }
365
+ ),
366
+ description && /* @__PURE__ */ jsx(
367
+ Text,
368
+ {
369
+ slot: "description",
370
+ className: cn(numberFieldDescriptionVariants({ size })),
371
+ children: description
372
+ }
373
+ ),
374
+ /* @__PURE__ */ jsx(FieldError, { className: cn(numberFieldErrorVariants({ size })), children: errorMessage })
375
+ ]
376
+ }
377
+ );
378
+ }
379
+ );
380
+ NumberField.displayName = "NumberField";
381
+
382
+ export { DEFAULT_MAX_VALUE, DEFAULT_MIN_VALUE, NEGATIVE_MIN_VALUE, NumberField, NumberFieldPropsSchema, numberFieldDescriptionVariants, numberFieldErrorVariants, numberFieldInputVariants, numberFieldLabelVariants, numberFieldStepperVariants, numberFieldVariants };
383
+ //# sourceMappingURL=chunk-A3YUJA6W.mjs.map
384
+ //# sourceMappingURL=chunk-A3YUJA6W.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/elements/NumberField/NumberField.types.ts","../src/elements/NumberField/NumberField.variants.ts","../src/elements/NumberField/NumberField.tsx"],"names":["AriaNumberField","AriaLabel","AriaGroup","AriaInput","AriaText","AriaFieldError"],"mappings":"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","file":"chunk-A3YUJA6W.mjs","sourcesContent":["/**\n * NumberField Component Types\n *\n * Zod schemas and TypeScript types for the NumberField component.\n * CVA variants are in a separate file (NumberField.variants.ts) to separate\n * styling concerns from type definitions.\n *\n * Note: Zod schemas are used for contract tests and developer guardrails,\n * not runtime validation. This follows the established Themis pattern.\n *\n * @see {@link ../../docs/prd/numberfield-prd.md} for full requirements\n */\n\nimport { z } from 'zod';\nimport type {\n NumberFieldProps as AriaNumberFieldProps,\n ValidationResult,\n} from 'react-aria-components';\n\n// ============================================================================\n// Constants\n// ============================================================================\n\n/**\n * Default maximum value (UINT32_MAX) to prevent overflow/Infinity.\n */\nexport const DEFAULT_MAX_VALUE = 4294967295;\n\n/**\n * Default minimum value for non-negative numbers.\n */\nexport const DEFAULT_MIN_VALUE = 0;\n\n/**\n * Minimum value when allowNegative is enabled (INT32_MIN + 1).\n */\nexport const NEGATIVE_MIN_VALUE = -2147483647;\n\n// ============================================================================\n// Size Variant Type\n// ============================================================================\n\n/**\n * Size variants for NumberField component.\n * - 'sm': Compact size (36px height) - touch targets via padding\n * - 'default': Standard size (40px height) - AAA compliant\n * - 'lg': Large size (48px height) - AAA compliant\n */\nexport type NumberFieldSize = 'sm' | 'default' | 'lg';\n\n// ============================================================================\n// Stepper Layout Type\n// ============================================================================\n\n/**\n * Layout options for stepper buttons.\n * - 'sides': Buttons on left (-) and right (+) of input (default)\n * - 'stacked': Buttons stacked vertically on right side\n * - 'hidden': No stepper buttons (keyboard/typing only)\n */\nexport type StepperLayout = 'sides' | 'stacked' | 'hidden';\n\n// ============================================================================\n// Zod Schemas\n// ============================================================================\n\n/**\n * Zod schema for NumberField props validation.\n * Used for contract tests and developer guardrails, not runtime validation.\n */\nexport const NumberFieldPropsSchema = z.object({\n // Value props\n /** Current value (controlled mode) */\n value: z.number().nullable().optional(),\n /** Default value (uncontrolled mode) */\n defaultValue: z.number().optional(),\n\n // Constraint props\n /** Minimum allowed value (default: 0) */\n minValue: z.number().optional(),\n /** Maximum allowed value (default: 4294967295 / UINT32_MAX) */\n maxValue: z.number().optional(),\n /** Allow negative numbers (sets minValue to -2147483647 if not explicitly set) */\n allowNegative: z.boolean().optional(),\n /** Step increment for stepper buttons and arrow keys (default: 1) */\n step: z.number().positive().optional(),\n\n // Formatting props\n /** Intl.NumberFormat options for locale-aware formatting */\n formatOptions: z.custom<Intl.NumberFormatOptions>().optional(),\n\n // State props\n /** Whether the field is disabled */\n isDisabled: z.boolean().optional(),\n /** Whether the field is read-only */\n isReadOnly: z.boolean().optional(),\n /** Whether the field is required */\n isRequired: z.boolean().optional(),\n /** Whether the field is in an invalid state */\n isInvalid: z.boolean().optional(),\n /** Whether scroll wheel adjustment is disabled */\n isWheelDisabled: z.boolean().optional(),\n\n // Validation props\n /** Custom validation function that returns an error message or null */\n validate: z.function().optional(),\n /** Validation behavior: 'native' for HTML5 validation, 'aria' for ARIA-only */\n validationBehavior: z.enum(['native', 'aria']).default('native'),\n\n // Display props\n /** Field label (required for accessibility) */\n label: z.string(),\n /** Description text below the field */\n description: z.string().optional(),\n /** Error message string or render function */\n errorMessage: z.union([z.string(), z.function()]).optional(),\n\n // Stepper props\n /** Layout for stepper buttons */\n stepperLayout: z.enum(['sides', 'stacked', 'hidden']).default('sides'),\n /** Custom aria-label for increment button */\n incrementAriaLabel: z.string().optional(),\n /** Custom aria-label for decrement button */\n decrementAriaLabel: z.string().optional(),\n\n // Form props\n /** Name attribute for form submission */\n name: z.string().optional(),\n\n // Variant props\n /** Size variant */\n size: z.enum(['sm', 'default', 'lg']).default('default'),\n\n // Event props\n /** Called when the numeric value changes */\n onChange: z.function().optional(),\n /** Called when the field gains focus */\n onFocus: z.function().optional(),\n /** Called when the field loses focus */\n onBlur: z.function().optional(),\n /** Called when focus state changes */\n onFocusChange: z.function().optional(),\n\n // Standard props\n /** Additional CSS classes */\n className: z.string().optional(),\n /** Whether to auto-focus on mount */\n autoFocus: z.boolean().optional(),\n});\n\n// ============================================================================\n// TypeScript Types\n// ============================================================================\n\n/**\n * Custom props added to NumberField (not from React Aria).\n */\nexport interface ThemisNumberFieldCustomProps {\n /** Size variant: 'sm', 'default', or 'lg' */\n size?: NumberFieldSize;\n /** Field label (required for accessibility) */\n label: string;\n /** Description text below the field */\n description?: string;\n /** Error message when field is invalid */\n errorMessage?: string | ((validation: ValidationResult) => string);\n /** Layout for stepper buttons */\n stepperLayout?: StepperLayout;\n /** Custom aria-label for increment button */\n incrementAriaLabel?: string;\n /** Custom aria-label for decrement button */\n decrementAriaLabel?: string;\n /** Allow negative numbers (sets minValue to -2147483647 if not explicitly set) */\n allowNegative?: boolean;\n}\n\n/**\n * Props for the NumberField component.\n * Combines React Aria's NumberFieldProps with Themis-specific props.\n */\nexport type NumberFieldProps = Omit<AriaNumberFieldProps, 'children'> &\n ThemisNumberFieldCustomProps;\n","/**\n * NumberField Component CVA Variants\n *\n * Class Variance Authority (CVA) variant definitions for the NumberField component.\n * Separated from types to maintain clean separation of concerns.\n *\n * Styling uses semantic CSS tokens that map to ThemeProvider variables:\n * - --background: Input background color\n * - --foreground: Text color\n * - --input: Input border color (default state)\n * - --ring: Focus ring color\n * - --accent: Stepper button hover background\n * - --accent-foreground: Stepper button hover text\n * - --destructive: Error state border and text\n * - --muted-foreground: Placeholder/disabled text\n *\n * @see {@link ../../docs/prd/numberfield-prd.md} for full requirements\n */\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\n// ============================================================================\n// Container Variants\n// ============================================================================\n\n/**\n * Variants for the NumberField container (Group element).\n * Contains the input and stepper buttons.\n *\n * Size notes:\n * - sm (36px): Compact, touch targets achieved via padding\n * - default (40px): Standard size, AAA compliant touch targets\n * - lg (48px): Large size, enhanced touch targets\n */\nexport const numberFieldVariants = cva(\n [\n // Base styles\n 'inline-flex items-center rounded-md border',\n 'bg-[var(--content-background)] text-[var(--content-foreground)]',\n 'transition-colors duration-200',\n // Focus within\n 'focus-within:ring-2 focus-within:ring-[var(--ring)] focus-within:ring-offset-2',\n // Disabled\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-9 text-sm',\n default: 'h-10 text-base',\n lg: 'h-12 text-lg',\n },\n isInvalid: {\n true: 'border-[var(--destructive)] focus-within:ring-[var(--destructive)]',\n false: 'border-[var(--input)] hover:border-[var(--input)]/80',\n },\n },\n defaultVariants: {\n size: 'default',\n isInvalid: false,\n },\n }\n);\n\n// ============================================================================\n// Input Variants\n// ============================================================================\n\n/**\n * Variants for the numeric input element.\n * Hides native spinners and centers text.\n */\nexport const numberFieldInputVariants = cva(\n [\n // Base styles\n 'flex-1 bg-transparent text-center tabular-nums',\n 'min-w-0', // Allow shrinking\n // Focus\n 'focus:outline-none',\n // Hide native spinners\n '[appearance:textfield]',\n '[&::-webkit-outer-spin-button]:appearance-none',\n '[&::-webkit-inner-spin-button]:appearance-none',\n ],\n {\n variants: {\n size: {\n sm: 'px-2 text-sm',\n default: 'px-3 text-base',\n lg: 'px-4 text-lg',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n// ============================================================================\n// Stepper Button Variants\n// ============================================================================\n\n/**\n * Variants for the stepper buttons (increment/decrement).\n * Supports different positions for sides and stacked layouts.\n *\n * Touch target strategy:\n * - Visual button size varies with component size\n * - 44x44px minimum touch target achieved via padding/hit area\n */\nexport const numberFieldStepperVariants = cva(\n [\n // Base styles\n 'flex items-center justify-center',\n 'transition-colors duration-150',\n 'select-none',\n // Hover\n 'hover:bg-[var(--accent)] hover:text-[var(--accent-foreground)]',\n // Focus\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]',\n 'focus-visible:ring-inset',\n // Active (pressed)\n 'active:bg-[var(--accent)]/80',\n // Disabled\n 'disabled:pointer-events-none disabled:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'min-w-8 min-h-8 text-sm',\n default: 'min-w-10 min-h-10 text-base',\n lg: 'min-w-12 min-h-12 text-lg',\n },\n position: {\n left: 'rounded-l-md border-r border-[var(--input)]',\n right: 'rounded-r-md border-l border-[var(--input)]',\n top: 'rounded-tr-md border-b border-l border-[var(--input)] h-1/2',\n bottom: 'rounded-br-md border-l border-[var(--input)] h-1/2',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n// ============================================================================\n// Label Variants\n// ============================================================================\n\n/**\n * Variants for the NumberField label.\n */\nexport const numberFieldLabelVariants = cva(\n [\n 'block font-medium text-[var(--content-foreground)]',\n 'mb-1.5',\n // Required indicator\n 'data-[required]:after:content-[\"*\"] data-[required]:after:ml-0.5',\n 'data-[required]:after:text-[var(--destructive)]',\n ],\n {\n variants: {\n size: {\n sm: 'text-sm',\n default: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n// ============================================================================\n// Description Variants\n// ============================================================================\n\n/**\n * Variants for the description text below the field.\n */\nexport const numberFieldDescriptionVariants = cva(\n [\n 'text-[var(--menu-muted)]',\n 'mt-1',\n ],\n {\n variants: {\n size: {\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n// ============================================================================\n// Error Variants\n// ============================================================================\n\n/**\n * Variants for the error message display.\n */\nexport const numberFieldErrorVariants = cva(\n [\n 'flex items-center gap-1',\n 'text-[var(--destructive)]',\n 'mt-1',\n ],\n {\n variants: {\n size: {\n sm: 'text-xs',\n default: 'text-sm',\n lg: 'text-base',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n }\n);\n\n// ============================================================================\n// Variant Types (from CVA)\n// ============================================================================\n\n/**\n * Variant props for numberFieldVariants CVA function.\n */\nexport type NumberFieldVariantProps = VariantProps<typeof numberFieldVariants>;\n\n/**\n * Variant props for numberFieldInputVariants CVA function.\n */\nexport type NumberFieldInputVariantProps = VariantProps<typeof numberFieldInputVariants>;\n\n/**\n * Variant props for numberFieldStepperVariants CVA function.\n */\nexport type NumberFieldStepperVariantProps = VariantProps<typeof numberFieldStepperVariants>;\n","'use client';\n\n/**\n * NumberField Component\n *\n * A fully accessible numeric input component built on React Aria's NumberField primitive.\n * Provides keyboard-editable input with optional increment/decrement stepper buttons.\n *\n * Features:\n * - WCAG 2.2 AAA compliant (44x44px touch targets, 7:1 contrast)\n * - Spinbutton ARIA semantics\n * - Locale-aware number formatting via Intl.NumberFormat\n * - Configurable min/max/step constraints\n * - Optional stepper buttons (sides, stacked, or hidden layouts)\n * - Scroll wheel support\n * - Form integration with hidden input\n * - Full keyboard navigation (Arrow, Page Up/Down, Home/End)\n * - Screen reader accessible\n *\n * @see {@link ../../docs/prd/numberfield-prd.md} for full requirements\n */\n\nimport { forwardRef, type ReactElement } from 'react';\nimport {\n NumberField as AriaNumberField,\n Group as AriaGroup,\n Input as AriaInput,\n Label as AriaLabel,\n Text as AriaText,\n FieldError as AriaFieldError,\n} from 'react-aria-components';\nimport { Minus, Plus } from 'lucide-react';\nimport { Button } from '../Button';\nimport { cn } from '../../utils/cn';\nimport type { NumberFieldProps } from './NumberField.types';\nimport {\n DEFAULT_MAX_VALUE,\n DEFAULT_MIN_VALUE,\n NEGATIVE_MIN_VALUE,\n} from './NumberField.types';\nimport {\n numberFieldVariants,\n numberFieldInputVariants,\n numberFieldStepperVariants,\n numberFieldLabelVariants,\n numberFieldDescriptionVariants,\n numberFieldErrorVariants,\n} from './NumberField.variants';\n\n// =============================================================================\n// NumberField Component\n// =============================================================================\n\n/**\n * NumberField component for numeric input with optional stepper buttons.\n *\n * @example\n * ```tsx\n * import { NumberField } from '@tribepad/themis/elements/NumberField';\n *\n * // Basic usage\n * <NumberField label=\"Quantity\" />\n *\n * // With constraints\n * <NumberField\n * label=\"Quantity\"\n * minValue={1}\n * maxValue={100}\n * step={1}\n * defaultValue={5}\n * />\n *\n * // Currency formatting\n * <NumberField\n * label=\"Price\"\n * formatOptions={{ style: 'currency', currency: 'USD' }}\n * step={0.01}\n * defaultValue={9.99}\n * />\n *\n * // Allow negative numbers\n * <NumberField\n * label=\"Temperature\"\n * allowNegative\n * formatOptions={{ style: 'unit', unit: 'celsius' }}\n * />\n *\n * // Hidden steppers\n * <NumberField\n * label=\"Account Number\"\n * stepperLayout=\"hidden\"\n * />\n * ```\n */\nexport const NumberField = forwardRef<HTMLDivElement, NumberFieldProps>(\n (\n {\n // Display props\n label,\n description,\n errorMessage,\n // Variant props\n size = 'default',\n stepperLayout = 'sides',\n // Custom props\n allowNegative = false,\n incrementAriaLabel,\n decrementAriaLabel,\n // Constraint props (apply defaults)\n minValue,\n maxValue,\n // Standard props\n className,\n isInvalid,\n isRequired,\n isDisabled,\n isReadOnly,\n // All other props go to AriaNumberField\n ...props\n },\n ref\n ): ReactElement => {\n // Calculate effective min/max values\n const effectiveMinValue =\n minValue ?? (allowNegative ? NEGATIVE_MIN_VALUE : DEFAULT_MIN_VALUE);\n const effectiveMaxValue = maxValue ?? DEFAULT_MAX_VALUE;\n\n // Determine if steppers should be shown\n const showSteppers = stepperLayout !== 'hidden' && !isReadOnly;\n const isStackedLayout = stepperLayout === 'stacked';\n\n return (\n <AriaNumberField\n ref={ref}\n className={cn('group flex flex-col', className)}\n minValue={effectiveMinValue}\n maxValue={effectiveMaxValue}\n isInvalid={isInvalid}\n isRequired={isRequired}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n {...props}\n >\n {/* Label */}\n <AriaLabel\n className={cn(numberFieldLabelVariants({ size }))}\n data-required={isRequired || undefined}\n >\n {label}\n </AriaLabel>\n\n {/* Input Group */}\n <AriaGroup\n className={cn(\n numberFieldVariants({\n size,\n isInvalid: isInvalid ?? false,\n }),\n isStackedLayout && 'pr-0'\n )}\n >\n {/* Decrement Button (left side for sides layout) */}\n {showSteppers && !isStackedLayout && (\n <Button\n slot=\"decrement\"\n variant=\"ghost\"\n className=\"!min-h-0 !min-w-0\"\n buttonVisualClassName={cn(\n numberFieldStepperVariants({\n size,\n position: 'left',\n })\n )}\n aria-label={decrementAriaLabel ?? 'Decrease value'}\n >\n <Minus className=\"h-4 w-4\" aria-hidden=\"true\" />\n </Button>\n )}\n\n {/* Input */}\n <AriaInput\n className={cn(numberFieldInputVariants({ size }))}\n />\n\n {/* Stacked Layout Buttons */}\n {showSteppers && isStackedLayout && (\n <div className=\"flex flex-col h-full\">\n <Button\n slot=\"increment\"\n variant=\"ghost\"\n className=\"!min-h-0 !min-w-0\"\n buttonVisualClassName={cn(\n numberFieldStepperVariants({\n size,\n position: 'top',\n })\n )}\n aria-label={incrementAriaLabel ?? 'Increase value'}\n >\n <Plus className=\"h-3 w-3\" aria-hidden=\"true\" />\n </Button>\n <Button\n slot=\"decrement\"\n variant=\"ghost\"\n className=\"!min-h-0 !min-w-0\"\n buttonVisualClassName={cn(\n numberFieldStepperVariants({\n size,\n position: 'bottom',\n })\n )}\n aria-label={decrementAriaLabel ?? 'Decrease value'}\n >\n <Minus className=\"h-3 w-3\" aria-hidden=\"true\" />\n </Button>\n </div>\n )}\n\n {/* Increment Button (right side for sides layout) */}\n {showSteppers && !isStackedLayout && (\n <Button\n slot=\"increment\"\n variant=\"ghost\"\n className=\"!min-h-0 !min-w-0\"\n buttonVisualClassName={cn(\n numberFieldStepperVariants({\n size,\n position: 'right',\n })\n )}\n aria-label={incrementAriaLabel ?? 'Increase value'}\n >\n <Plus className=\"h-4 w-4\" aria-hidden=\"true\" />\n </Button>\n )}\n </AriaGroup>\n\n {/* Description */}\n {description && (\n <AriaText\n slot=\"description\"\n className={cn(numberFieldDescriptionVariants({ size }))}\n >\n {description}\n </AriaText>\n )}\n\n {/* Error Message */}\n <AriaFieldError className={cn(numberFieldErrorVariants({ size }))}>\n {errorMessage}\n </AriaFieldError>\n </AriaNumberField>\n );\n }\n);\n\nNumberField.displayName = 'NumberField';\n"]}
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var chunkVIREG536_js = require('./chunk-VIREG536.js');
4
+ var chunkT4COXKQ3_js = require('./chunk-T4COXKQ3.js');
5
+ var react = require('react');
6
+ var classVarianceAuthority = require('class-variance-authority');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+ var zod = require('zod');
9
+
10
+ var skeletonVariants = classVarianceAuthority.cva(
11
+ // Base styles - pulse animation and theme-aware background
12
+ "animate-pulse bg-[var(--accent-background)] relative",
13
+ {
14
+ variants: {
15
+ // Shape variants
16
+ variant: {
17
+ rectangle: "rounded-md",
18
+ // Default: 0.375rem border radius
19
+ circle: "rounded-full",
20
+ // Circular shape (for avatars, icons)
21
+ text: "rounded-sm h-4"
22
+ // Text line placeholder (1rem height, 0.125rem radius)
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ variant: "rectangle"
27
+ }
28
+ }
29
+ );
30
+ var Skeleton = react.memo(
31
+ react.forwardRef(
32
+ ({ className, variant, ...props }, ref) => {
33
+ return /* @__PURE__ */ jsxRuntime.jsx(
34
+ "div",
35
+ {
36
+ ref,
37
+ role: "status",
38
+ "aria-live": "polite",
39
+ "aria-busy": "true",
40
+ className: chunkVIREG536_js.cn(skeletonVariants({ variant }), className),
41
+ ...props,
42
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Loading..." })
43
+ }
44
+ );
45
+ }
46
+ )
47
+ );
48
+ Skeleton.displayName = "Skeleton";
49
+ var SkeletonPropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
50
+ // Variants - shape of the skeleton placeholder
51
+ variant: zod.z.enum(["rectangle", "circle", "text"]).optional().default("rectangle"),
52
+ // Custom className for width/height overrides
53
+ // Users can pass className="w-20 h-20" for custom sizing
54
+ className: zod.z.string().optional()
55
+ });
56
+
57
+ exports.Skeleton = Skeleton;
58
+ exports.SkeletonPropsSchema = SkeletonPropsSchema;
59
+ exports.skeletonVariants = skeletonVariants;
60
+ //# sourceMappingURL=chunk-A6KEDVUR.js.map
61
+ //# sourceMappingURL=chunk-A6KEDVUR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/elements/Skeleton/Skeleton.tsx","../src/elements/Skeleton/Skeleton.types.ts"],"names":["cva","memo","forwardRef","jsx","cn","BaseComponentPropsSchema","z"],"mappings":";;;;;;;;;AAoBA,IAAM,gBAAA,GAAmBA,0BAAA;AAAA;AAAA,EAEvB,sDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA;AAAA,MAER,OAAA,EAAS;AAAA,QACP,SAAA,EAAW,YAAA;AAAA;AAAA,QACX,MAAA,EAAQ,cAAA;AAAA;AAAA,QACR,IAAA,EAAM;AAAA;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAeA,IAAM,QAAA,GAAWC,UAAA;AAAA,EACfC,gBAAA;AAAA,IACE,CAAC,EAAE,SAAA,EAAW,SAAS,GAAG,KAAA,IAAS,GAAA,KAAQ;AACzC,MAAA,uBACEC,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,IAAA,EAAK,QAAA;AAAA,UACL,WAAA,EAAU,QAAA;AAAA,UACV,WAAA,EAAU,MAAA;AAAA,UACV,WAAWC,mBAAA,CAAG,gBAAA,CAAiB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,UACrD,GAAG,KAAA;AAAA,UAGJ,QAAA,kBAAAD,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,YAAA,EAAU;AAAA;AAAA,OACtC;AAAA,IAEJ;AAAA;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AC5DhB,IAAM,mBAAA,GAAsBE,0CAAyB,MAAA,CAAO;AAAA;AAAA,EAEjE,OAAA,EAASC,KAAA,CACN,IAAA,CAAK,CAAC,WAAA,EAAa,QAAA,EAAU,MAAM,CAAC,CAAA,CACpC,QAAA,EAAS,CACT,OAAA,CAAQ,WAAW,CAAA;AAAA;AAAA;AAAA,EAItB,SAAA,EAAWA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC","file":"chunk-A6KEDVUR.js","sourcesContent":["\"use client\";\n\n/**\n * Skeleton Component\n * Loading placeholder with pulse animation and theme-aware styling\n *\n * @see ShadCN Skeleton: https://ui.shadcn.com/docs/components/skeleton\n * @see spec.md FR-009 (WCAG 2.2 AAA - 7:1 contrast ratio)\n * @see tasks.md Phase 2 (Green Phase - Implementation)\n * @see constitution.md Principle IV (Accessibility First)\n */\n\nimport { forwardRef, memo, type HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n/**\n * Skeleton variant styles using CVA\n * @see tasks.md Phase 2.2 (CVA Variant Definitions)\n */\nconst skeletonVariants = cva(\n // Base styles - pulse animation and theme-aware background\n \"animate-pulse bg-[var(--accent-background)] relative\",\n {\n variants: {\n // Shape variants\n variant: {\n rectangle: \"rounded-md\", // Default: 0.375rem border radius\n circle: \"rounded-full\", // Circular shape (for avatars, icons)\n text: \"rounded-sm h-4\", // Text line placeholder (1rem height, 0.125rem radius)\n },\n },\n defaultVariants: {\n variant: \"rectangle\",\n },\n }\n);\n\nexport interface SkeletonProps\n extends HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {\n variant?: 'rectangle' | 'circle' | 'text';\n className?: string;\n}\n\n/**\n * Skeleton Component\n * Non-interactive loading placeholder with pulse animation\n *\n * @see tasks.md Phase 2.4 (Component Implementation)\n */\nconst Skeleton = memo(\n forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"status\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n className={cn(skeletonVariants({ variant }), className)}\n {...props}\n >\n {/* Screen reader text for accessibility */}\n <span className=\"sr-only\">Loading...</span>\n </div>\n );\n }\n )\n);\n\nSkeleton.displayName = \"Skeleton\";\n\nexport { Skeleton, skeletonVariants };\n","import { z } from 'zod';\nimport { BaseComponentPropsSchema } from '../../schemas/BaseComponentProps';\n\n/**\n * Skeleton props schema extending BaseComponentProps\n *\n * @see ShadCN Skeleton: https://ui.shadcn.com/docs/components/skeleton\n * @see tasks.md Phase 1.1 (Type System)\n * @see spec.md FR-009 (WCAG 2.2 AAA - 7:1 contrast ratio)\n * @see constitution.md Principle IV (Accessibility First)\n */\nexport const SkeletonPropsSchema = BaseComponentPropsSchema.extend({\n // Variants - shape of the skeleton placeholder\n variant: z\n .enum(['rectangle', 'circle', 'text'])\n .optional()\n .default('rectangle'),\n\n // Custom className for width/height overrides\n // Users can pass className=\"w-20 h-20\" for custom sizing\n className: z.string().optional(),\n});\n\nexport type SkeletonProps = z.infer<typeof SkeletonPropsSchema>;\n\n/**\n * CVA variant configuration type\n * Used for class-variance-authority integration\n */\nexport type SkeletonVariant = z.infer<typeof SkeletonPropsSchema>['variant'];\n"]}