@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,661 @@
1
+ /**
2
+ * Tabs Component Storybook Stories
3
+ *
4
+ * @see tabs-prd.md FR-001 to FR-016 (Tabs Requirements)
5
+ * @see plan.md (Implementation Plan)
6
+ */
7
+
8
+ import type { Meta, StoryObj } from '@storybook/nextjs';
9
+ import { useState, type Key } from 'react';
10
+ import { Tabs, TabList, Tab, TabPanel } from './Tabs';
11
+ import { Settings, User, Bell, Mail, CreditCard, Lock } from 'lucide-react';
12
+
13
+ const meta = {
14
+ title: 'Elements/Tabs',
15
+ component: Tabs,
16
+ parameters: {
17
+ layout: 'centered',
18
+ docs: {
19
+ description: {
20
+ component:
21
+ 'Accessible tabbed interface component with WCAG 2.2 AAA compliance, React Aria primitives, horizontal/vertical orientation, keyboard activation modes, React 19.2 Activity state preservation, and icon/badge support.',
22
+ },
23
+ },
24
+ },
25
+ tags: ['autodocs'],
26
+ argTypes: {
27
+ orientation: {
28
+ control: 'select',
29
+ options: ['horizontal', 'vertical'],
30
+ description: 'Tab layout orientation',
31
+ },
32
+ keyboardActivation: {
33
+ control: 'select',
34
+ options: ['automatic', 'manual'],
35
+ description: 'Keyboard activation mode',
36
+ },
37
+ isDisabled: {
38
+ control: 'boolean',
39
+ description: 'Disable all tabs',
40
+ },
41
+ },
42
+ } satisfies Meta<typeof Tabs>;
43
+
44
+ export default meta;
45
+ type Story = StoryObj<typeof meta>;
46
+
47
+ // ============================================================================
48
+ // Default Stories
49
+ // ============================================================================
50
+
51
+ /**
52
+ * Default: Basic 3-tab layout with first tab selected
53
+ */
54
+ export const Default: Story = {
55
+ render: () => (
56
+ <Tabs defaultSelectedKey="account" className="w-[400px]">
57
+ <TabList aria-label="Account settings">
58
+ <Tab id="account">Account</Tab>
59
+ <Tab id="password">Password</Tab>
60
+ <Tab id="settings">Settings</Tab>
61
+ </TabList>
62
+ <TabPanel id="account">
63
+ <div className="p-4">
64
+ <h3 className="text-lg font-semibold mb-2">Account Information</h3>
65
+ <p className="text-sm text-[var(--muted-foreground)]">
66
+ Manage your account details and preferences.
67
+ </p>
68
+ </div>
69
+ </TabPanel>
70
+ <TabPanel id="password">
71
+ <div className="p-4">
72
+ <h3 className="text-lg font-semibold mb-2">Password Settings</h3>
73
+ <p className="text-sm text-[var(--muted-foreground)]">
74
+ Update your password and security settings.
75
+ </p>
76
+ </div>
77
+ </TabPanel>
78
+ <TabPanel id="settings">
79
+ <div className="p-4">
80
+ <h3 className="text-lg font-semibold mb-2">General Settings</h3>
81
+ <p className="text-sm text-[var(--muted-foreground)]">
82
+ Configure application preferences.
83
+ </p>
84
+ </div>
85
+ </TabPanel>
86
+ </Tabs>
87
+ ),
88
+ };
89
+
90
+ // ============================================================================
91
+ // Orientation Stories
92
+ // ============================================================================
93
+
94
+ /**
95
+ * Horizontal: Default horizontal layout
96
+ */
97
+ export const Horizontal: Story = {
98
+ render: () => (
99
+ <Tabs orientation="horizontal" className="w-[400px]">
100
+ <TabList aria-label="Horizontal tabs">
101
+ <Tab id="tab1">Tab 1</Tab>
102
+ <Tab id="tab2">Tab 2</Tab>
103
+ <Tab id="tab3">Tab 3</Tab>
104
+ </TabList>
105
+ <TabPanel id="tab1">
106
+ <div className="p-4">Content for Tab 1</div>
107
+ </TabPanel>
108
+ <TabPanel id="tab2">
109
+ <div className="p-4">Content for Tab 2</div>
110
+ </TabPanel>
111
+ <TabPanel id="tab3">
112
+ <div className="p-4">Content for Tab 3</div>
113
+ </TabPanel>
114
+ </Tabs>
115
+ ),
116
+ };
117
+
118
+ /**
119
+ * Vertical: Vertical orientation with tabs on the left
120
+ */
121
+ export const Vertical: Story = {
122
+ render: () => (
123
+ <Tabs orientation="vertical" className="flex gap-4 w-[500px]">
124
+ <TabList aria-label="Vertical tabs" className="w-[150px]">
125
+ <Tab id="profile">Profile</Tab>
126
+ <Tab id="billing">Billing</Tab>
127
+ <Tab id="security">Security</Tab>
128
+ <Tab id="notifications">Notifications</Tab>
129
+ </TabList>
130
+ <div className="flex-1">
131
+ <TabPanel id="profile">
132
+ <div className="p-4 border border-[var(--border)] rounded-md">
133
+ <h3 className="font-semibold mb-2">Profile Settings</h3>
134
+ <p className="text-sm text-[var(--muted-foreground)]">
135
+ Manage your profile information.
136
+ </p>
137
+ </div>
138
+ </TabPanel>
139
+ <TabPanel id="billing">
140
+ <div className="p-4 border border-[var(--border)] rounded-md">
141
+ <h3 className="font-semibold mb-2">Billing Information</h3>
142
+ <p className="text-sm text-[var(--muted-foreground)]">
143
+ Manage payment methods and billing history.
144
+ </p>
145
+ </div>
146
+ </TabPanel>
147
+ <TabPanel id="security">
148
+ <div className="p-4 border border-[var(--border)] rounded-md">
149
+ <h3 className="font-semibold mb-2">Security Settings</h3>
150
+ <p className="text-sm text-[var(--muted-foreground)]">
151
+ Two-factor authentication and security preferences.
152
+ </p>
153
+ </div>
154
+ </TabPanel>
155
+ <TabPanel id="notifications">
156
+ <div className="p-4 border border-[var(--border)] rounded-md">
157
+ <h3 className="font-semibold mb-2">Notification Preferences</h3>
158
+ <p className="text-sm text-[var(--muted-foreground)]">
159
+ Choose what notifications you want to receive.
160
+ </p>
161
+ </div>
162
+ </TabPanel>
163
+ </div>
164
+ </Tabs>
165
+ ),
166
+ };
167
+
168
+ // ============================================================================
169
+ // State Stories
170
+ // ============================================================================
171
+
172
+ /**
173
+ * Disabled: All tabs disabled
174
+ */
175
+ export const Disabled: Story = {
176
+ render: () => (
177
+ <Tabs isDisabled className="w-[400px]">
178
+ <TabList aria-label="Disabled tabs">
179
+ <Tab id="tab1">Tab 1</Tab>
180
+ <Tab id="tab2">Tab 2</Tab>
181
+ <Tab id="tab3">Tab 3</Tab>
182
+ </TabList>
183
+ <TabPanel id="tab1">
184
+ <div className="p-4">Content 1</div>
185
+ </TabPanel>
186
+ <TabPanel id="tab2">
187
+ <div className="p-4">Content 2</div>
188
+ </TabPanel>
189
+ <TabPanel id="tab3">
190
+ <div className="p-4">Content 3</div>
191
+ </TabPanel>
192
+ </Tabs>
193
+ ),
194
+ };
195
+
196
+ /**
197
+ * DisabledIndividual: Individual tabs disabled using disabledKeys
198
+ */
199
+ export const DisabledIndividual: Story = {
200
+ render: () => (
201
+ <Tabs disabledKeys={['tab2']} className="w-[400px]">
202
+ <TabList aria-label="Tabs with disabled option">
203
+ <Tab id="tab1">Available</Tab>
204
+ <Tab id="tab2">Disabled</Tab>
205
+ <Tab id="tab3">Available</Tab>
206
+ </TabList>
207
+ <TabPanel id="tab1">
208
+ <div className="p-4">This tab is available.</div>
209
+ </TabPanel>
210
+ <TabPanel id="tab2">
211
+ <div className="p-4">This tab is disabled.</div>
212
+ </TabPanel>
213
+ <TabPanel id="tab3">
214
+ <div className="p-4">This tab is also available.</div>
215
+ </TabPanel>
216
+ </Tabs>
217
+ ),
218
+ };
219
+
220
+ // ============================================================================
221
+ // Icon and Badge Stories
222
+ // ============================================================================
223
+
224
+ /**
225
+ * WithIcons: Tabs with lucide icons
226
+ */
227
+ export const WithIcons: Story = {
228
+ render: () => (
229
+ <Tabs className="w-[500px]">
230
+ <TabList aria-label="Settings with icons">
231
+ <Tab id="account">
232
+ <User className="h-4 w-4" aria-hidden="true" />
233
+ Account
234
+ </Tab>
235
+ <Tab id="security">
236
+ <Lock className="h-4 w-4" aria-hidden="true" />
237
+ Security
238
+ </Tab>
239
+ <Tab id="notifications">
240
+ <Bell className="h-4 w-4" aria-hidden="true" />
241
+ Notifications
242
+ </Tab>
243
+ </TabList>
244
+ <TabPanel id="account">
245
+ <div className="p-4">Account settings content</div>
246
+ </TabPanel>
247
+ <TabPanel id="security">
248
+ <div className="p-4">Security settings content</div>
249
+ </TabPanel>
250
+ <TabPanel id="notifications">
251
+ <div className="p-4">Notification settings content</div>
252
+ </TabPanel>
253
+ </Tabs>
254
+ ),
255
+ };
256
+
257
+ /**
258
+ * WithBadges: Tabs with notification badges
259
+ */
260
+ export const WithBadges: Story = {
261
+ render: () => (
262
+ <Tabs className="w-[500px]">
263
+ <TabList aria-label="Navigation with badges">
264
+ <Tab id="inbox">
265
+ Inbox
266
+ <span
267
+ className="ml-2 inline-flex items-center justify-center px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--primary)] text-[var(--primary-foreground)]"
268
+ aria-label="12 unread messages"
269
+ >
270
+ 12
271
+ </span>
272
+ </Tab>
273
+ <Tab id="drafts">
274
+ Drafts
275
+ <span
276
+ className="ml-2 inline-flex items-center justify-center px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--secondary)] text-[var(--secondary-foreground)]"
277
+ aria-label="3 drafts"
278
+ >
279
+ 3
280
+ </span>
281
+ </Tab>
282
+ <Tab id="sent">Sent</Tab>
283
+ </TabList>
284
+ <TabPanel id="inbox">
285
+ <div className="p-4">Your inbox messages</div>
286
+ </TabPanel>
287
+ <TabPanel id="drafts">
288
+ <div className="p-4">Your draft messages</div>
289
+ </TabPanel>
290
+ <TabPanel id="sent">
291
+ <div className="p-4">Your sent messages</div>
292
+ </TabPanel>
293
+ </Tabs>
294
+ ),
295
+ };
296
+
297
+ /**
298
+ * IconsAndBadges: Combined icons and badges
299
+ */
300
+ export const IconsAndBadges: Story = {
301
+ render: () => (
302
+ <Tabs className="w-[600px]">
303
+ <TabList aria-label="Full navigation">
304
+ <Tab id="messages">
305
+ <Mail className="h-4 w-4" aria-hidden="true" />
306
+ Messages
307
+ <span
308
+ className="inline-flex items-center justify-center px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--destructive)] text-[var(--destructive-foreground)]"
309
+ aria-label="5 unread"
310
+ >
311
+ 5
312
+ </span>
313
+ </Tab>
314
+ <Tab id="billing">
315
+ <CreditCard className="h-4 w-4" aria-hidden="true" />
316
+ Billing
317
+ </Tab>
318
+ <Tab id="settings">
319
+ <Settings className="h-4 w-4" aria-hidden="true" />
320
+ Settings
321
+ </Tab>
322
+ </TabList>
323
+ <TabPanel id="messages">
324
+ <div className="p-4">Messages content</div>
325
+ </TabPanel>
326
+ <TabPanel id="billing">
327
+ <div className="p-4">Billing content</div>
328
+ </TabPanel>
329
+ <TabPanel id="settings">
330
+ <div className="p-4">Settings content</div>
331
+ </TabPanel>
332
+ </Tabs>
333
+ ),
334
+ };
335
+
336
+ // ============================================================================
337
+ // Overflow Story
338
+ // ============================================================================
339
+
340
+ /**
341
+ * Overflow: Many tabs that require scrolling
342
+ */
343
+ export const Overflow: Story = {
344
+ render: () => (
345
+ <div className="w-[400px]">
346
+ <Tabs>
347
+ <TabList aria-label="Many tabs">
348
+ <Tab id="tab1">Dashboard</Tab>
349
+ <Tab id="tab2">Analytics</Tab>
350
+ <Tab id="tab3">Reports</Tab>
351
+ <Tab id="tab4">Users</Tab>
352
+ <Tab id="tab5">Settings</Tab>
353
+ <Tab id="tab6">Billing</Tab>
354
+ <Tab id="tab7">Support</Tab>
355
+ <Tab id="tab8">Documentation</Tab>
356
+ </TabList>
357
+ <TabPanel id="tab1">
358
+ <div className="p-4">Dashboard content</div>
359
+ </TabPanel>
360
+ <TabPanel id="tab2">
361
+ <div className="p-4">Analytics content</div>
362
+ </TabPanel>
363
+ <TabPanel id="tab3">
364
+ <div className="p-4">Reports content</div>
365
+ </TabPanel>
366
+ <TabPanel id="tab4">
367
+ <div className="p-4">Users content</div>
368
+ </TabPanel>
369
+ <TabPanel id="tab5">
370
+ <div className="p-4">Settings content</div>
371
+ </TabPanel>
372
+ <TabPanel id="tab6">
373
+ <div className="p-4">Billing content</div>
374
+ </TabPanel>
375
+ <TabPanel id="tab7">
376
+ <div className="p-4">Support content</div>
377
+ </TabPanel>
378
+ <TabPanel id="tab8">
379
+ <div className="p-4">Documentation content</div>
380
+ </TabPanel>
381
+ </Tabs>
382
+ </div>
383
+ ),
384
+ };
385
+
386
+ /**
387
+ * ManyTabs: 8+ tabs demonstrating overflow
388
+ */
389
+ export const ManyTabs: Story = {
390
+ render: () => (
391
+ <div className="w-[500px]">
392
+ <Tabs>
393
+ <TabList aria-label="Extended navigation">
394
+ {Array.from({ length: 10 }, (_, i) => (
395
+ <Tab key={`tab${i + 1}`} id={`tab${i + 1}`}>
396
+ Tab {i + 1}
397
+ </Tab>
398
+ ))}
399
+ </TabList>
400
+ {Array.from({ length: 10 }, (_, i) => (
401
+ <TabPanel key={`tab${i + 1}`} id={`tab${i + 1}`}>
402
+ <div className="p-4">Content for Tab {i + 1}</div>
403
+ </TabPanel>
404
+ ))}
405
+ </Tabs>
406
+ </div>
407
+ ),
408
+ };
409
+
410
+ /**
411
+ * LongLabels: Tabs with very long text labels
412
+ */
413
+ export const LongLabels: Story = {
414
+ render: () => (
415
+ <div className="w-[400px]">
416
+ <Tabs>
417
+ <TabList aria-label="Long label tabs">
418
+ <Tab id="tab1">Account Settings and Preferences</Tab>
419
+ <Tab id="tab2">Security and Privacy Options</Tab>
420
+ <Tab id="tab3">Notification Configuration</Tab>
421
+ </TabList>
422
+ <TabPanel id="tab1">
423
+ <div className="p-4">Account settings content</div>
424
+ </TabPanel>
425
+ <TabPanel id="tab2">
426
+ <div className="p-4">Security settings content</div>
427
+ </TabPanel>
428
+ <TabPanel id="tab3">
429
+ <div className="p-4">Notification settings content</div>
430
+ </TabPanel>
431
+ </Tabs>
432
+ </div>
433
+ ),
434
+ };
435
+
436
+ // ============================================================================
437
+ // Keyboard Activation Story
438
+ // ============================================================================
439
+
440
+ /**
441
+ * ManualActivation: Arrow keys focus tabs, Enter/Space selects
442
+ */
443
+ export const ManualActivation: Story = {
444
+ render: () => (
445
+ <Tabs keyboardActivation="manual" className="w-[400px]">
446
+ <TabList aria-label="Manual activation tabs">
447
+ <Tab id="tab1">Tab 1</Tab>
448
+ <Tab id="tab2">Tab 2</Tab>
449
+ <Tab id="tab3">Tab 3</Tab>
450
+ </TabList>
451
+ <TabPanel id="tab1">
452
+ <div className="p-4">
453
+ <p className="text-sm text-[var(--muted-foreground)]">
454
+ Use arrow keys to focus tabs, then press Enter or Space to select.
455
+ </p>
456
+ </div>
457
+ </TabPanel>
458
+ <TabPanel id="tab2">
459
+ <div className="p-4">Content for Tab 2</div>
460
+ </TabPanel>
461
+ <TabPanel id="tab3">
462
+ <div className="p-4">Content for Tab 3</div>
463
+ </TabPanel>
464
+ </Tabs>
465
+ ),
466
+ };
467
+
468
+ // ============================================================================
469
+ // Link Tabs Story
470
+ // ============================================================================
471
+
472
+ /**
473
+ * LinkTabs: Tabs with href for navigation
474
+ */
475
+ export const LinkTabs: Story = {
476
+ render: () => (
477
+ <Tabs className="w-[400px]">
478
+ <TabList aria-label="Navigation links">
479
+ <Tab id="home" href="#home">
480
+ Home
481
+ </Tab>
482
+ <Tab id="about" href="#about">
483
+ About
484
+ </Tab>
485
+ <Tab id="contact" href="#contact">
486
+ Contact
487
+ </Tab>
488
+ </TabList>
489
+ <TabPanel id="home">
490
+ <div className="p-4">Home page content</div>
491
+ </TabPanel>
492
+ <TabPanel id="about">
493
+ <div className="p-4">About page content</div>
494
+ </TabPanel>
495
+ <TabPanel id="contact">
496
+ <div className="p-4">Contact page content</div>
497
+ </TabPanel>
498
+ </Tabs>
499
+ ),
500
+ };
501
+
502
+ // ============================================================================
503
+ // RTL Story
504
+ // ============================================================================
505
+
506
+ /**
507
+ * RTL: Right-to-left layout
508
+ */
509
+ export const RTL: Story = {
510
+ render: () => (
511
+ <div dir="rtl" className="w-[400px]">
512
+ <Tabs>
513
+ <TabList aria-label="RTL tabs">
514
+ <Tab id="tab1">علامة التبويب 1</Tab>
515
+ <Tab id="tab2">علامة التبويب 2</Tab>
516
+ <Tab id="tab3">علامة التبويب 3</Tab>
517
+ </TabList>
518
+ <TabPanel id="tab1">
519
+ <div className="p-4">محتوى علامة التبويب 1</div>
520
+ </TabPanel>
521
+ <TabPanel id="tab2">
522
+ <div className="p-4">محتوى علامة التبويب 2</div>
523
+ </TabPanel>
524
+ <TabPanel id="tab3">
525
+ <div className="p-4">محتوى علامة التبويب 3</div>
526
+ </TabPanel>
527
+ </Tabs>
528
+ </div>
529
+ ),
530
+ };
531
+
532
+ // ============================================================================
533
+ // State Preservation Story (FR-016)
534
+ // ============================================================================
535
+
536
+ /**
537
+ * PreserveState: Form with React Activity state preservation
538
+ */
539
+ export const PreserveState: Story = {
540
+ render: function PreserveStateDemo() {
541
+ const [selected, setSelected] = useState<Key>('form');
542
+
543
+ return (
544
+ <div className="w-[500px]">
545
+ <p className="text-sm text-[var(--muted-foreground)] mb-4">
546
+ Type in the form, switch tabs, then switch back - your input is preserved!
547
+ </p>
548
+ <Tabs selectedKey={selected} onSelectionChange={setSelected}>
549
+ <TabList aria-label="State preservation demo">
550
+ <Tab id="form">Form with State</Tab>
551
+ <Tab id="other">Other Content</Tab>
552
+ </TabList>
553
+ <TabPanel id="form" preserveState>
554
+ <div className="p-4 space-y-4">
555
+ <div>
556
+ <label className="block text-sm font-medium mb-1">Name</label>
557
+ <input
558
+ type="text"
559
+ className="w-full px-3 py-2 border border-[var(--border)] rounded-md"
560
+ placeholder="Enter your name"
561
+ />
562
+ </div>
563
+ <div>
564
+ <label className="block text-sm font-medium mb-1">Email</label>
565
+ <input
566
+ type="email"
567
+ className="w-full px-3 py-2 border border-[var(--border)] rounded-md"
568
+ placeholder="Enter your email"
569
+ />
570
+ </div>
571
+ <div>
572
+ <label className="block text-sm font-medium mb-1">Message</label>
573
+ <textarea
574
+ className="w-full px-3 py-2 border border-[var(--border)] rounded-md"
575
+ rows={3}
576
+ placeholder="Enter your message"
577
+ />
578
+ </div>
579
+ </div>
580
+ </TabPanel>
581
+ <TabPanel id="other">
582
+ <div className="p-4">
583
+ <p className="text-sm text-[var(--muted-foreground)]">
584
+ This is other content. Switch back to the form tab to see your
585
+ inputs preserved.
586
+ </p>
587
+ </div>
588
+ </TabPanel>
589
+ </Tabs>
590
+ </div>
591
+ );
592
+ },
593
+ };
594
+
595
+ // ============================================================================
596
+ // Controlled Story
597
+ // ============================================================================
598
+
599
+ /**
600
+ * Controlled: Externally controlled selection
601
+ */
602
+ export const Controlled: Story = {
603
+ render: function ControlledTabs() {
604
+ const [selected, setSelected] = useState<Key>('tab1');
605
+
606
+ return (
607
+ <div className="w-[400px]">
608
+ <div className="flex gap-2 mb-4">
609
+ <button
610
+ onClick={() => setSelected('tab1')}
611
+ className={`px-3 py-1 text-sm rounded-md ${
612
+ selected === 'tab1'
613
+ ? 'bg-[var(--primary)] text-[var(--primary-foreground)]'
614
+ : 'bg-[var(--secondary)] text-[var(--secondary-foreground)]'
615
+ }`}
616
+ >
617
+ Select Tab 1
618
+ </button>
619
+ <button
620
+ onClick={() => setSelected('tab2')}
621
+ className={`px-3 py-1 text-sm rounded-md ${
622
+ selected === 'tab2'
623
+ ? 'bg-[var(--primary)] text-[var(--primary-foreground)]'
624
+ : 'bg-[var(--secondary)] text-[var(--secondary-foreground)]'
625
+ }`}
626
+ >
627
+ Select Tab 2
628
+ </button>
629
+ <button
630
+ onClick={() => setSelected('tab3')}
631
+ className={`px-3 py-1 text-sm rounded-md ${
632
+ selected === 'tab3'
633
+ ? 'bg-[var(--primary)] text-[var(--primary-foreground)]'
634
+ : 'bg-[var(--secondary)] text-[var(--secondary-foreground)]'
635
+ }`}
636
+ >
637
+ Select Tab 3
638
+ </button>
639
+ </div>
640
+ <Tabs selectedKey={selected} onSelectionChange={setSelected}>
641
+ <TabList aria-label="Controlled tabs">
642
+ <Tab id="tab1">Tab 1</Tab>
643
+ <Tab id="tab2">Tab 2</Tab>
644
+ <Tab id="tab3">Tab 3</Tab>
645
+ </TabList>
646
+ <TabPanel id="tab1">
647
+ <div className="p-4">
648
+ <p>Selected via external button or tab click.</p>
649
+ </div>
650
+ </TabPanel>
651
+ <TabPanel id="tab2">
652
+ <div className="p-4">Content for Tab 2</div>
653
+ </TabPanel>
654
+ <TabPanel id="tab3">
655
+ <div className="p-4">Content for Tab 3</div>
656
+ </TabPanel>
657
+ </Tabs>
658
+ </div>
659
+ );
660
+ },
661
+ };