@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,658 @@
1
+ /**
2
+ * ButtonGroup Component Stories
3
+ * Storybook stories demonstrating all ButtonGroup variants, orientations, and features
4
+ *
5
+ * @see buttongroup-prd.md for requirements
6
+ * @see spec.md FR-045 (Storybook stories requirement)
7
+ */
8
+
9
+ import type { Meta, StoryObj } from '@storybook/nextjs';
10
+ import {
11
+ Bold,
12
+ Italic,
13
+ Underline,
14
+ AlignLeft,
15
+ AlignCenter,
16
+ AlignRight,
17
+ AlignJustify,
18
+ Undo,
19
+ Redo,
20
+ Copy,
21
+ Scissors,
22
+ Clipboard,
23
+ Grid,
24
+ List,
25
+ Table,
26
+ Settings,
27
+ User,
28
+ LogOut,
29
+ } from 'lucide-react';
30
+ import { ButtonGroup, ButtonGroupSeparator } from './ButtonGroup';
31
+ import { Button } from '../Button/Button';
32
+
33
+ const meta = {
34
+ title: 'Elements/ButtonGroup',
35
+ component: ButtonGroup,
36
+ parameters: {
37
+ layout: 'centered',
38
+ docs: {
39
+ description: {
40
+ component:
41
+ 'Groups related buttons with connected styling, keyboard navigation (arrow keys), and WCAG 2.2 AAA compliance. Built on React Aria Toolbar for accessible toolbar patterns.',
42
+ },
43
+ },
44
+ },
45
+ tags: ['autodocs'],
46
+ argTypes: {
47
+ orientation: {
48
+ control: 'radio',
49
+ options: ['horizontal', 'vertical'],
50
+ description: 'Layout direction of the button group',
51
+ table: {
52
+ defaultValue: { summary: 'horizontal' },
53
+ },
54
+ },
55
+ variant: {
56
+ control: 'select',
57
+ options: ['default', 'destructive', 'outline', 'secondary', 'ghost'],
58
+ description: 'Default variant for all buttons (can be overridden per-button)',
59
+ },
60
+ size: {
61
+ control: 'select',
62
+ options: ['sm', 'default', 'lg', 'icon'],
63
+ description: 'Default size for all buttons (can be overridden per-button)',
64
+ },
65
+ isDisabled: {
66
+ control: 'boolean',
67
+ description: 'Disable all buttons in the group',
68
+ table: {
69
+ defaultValue: { summary: 'false' },
70
+ },
71
+ },
72
+ 'aria-label': {
73
+ control: 'text',
74
+ description: 'Accessible label for the toolbar (required for accessibility)',
75
+ },
76
+ },
77
+ } satisfies Meta<typeof ButtonGroup>;
78
+
79
+ export default meta;
80
+ type Story = StoryObj<typeof meta>;
81
+
82
+ // =============================================================================
83
+ // Basic Examples
84
+ // =============================================================================
85
+
86
+ export const Default: Story = {
87
+ render: (args) => (
88
+ <ButtonGroup {...args}>
89
+ <Button variant="outline">Left</Button>
90
+ <Button variant="outline">Center</Button>
91
+ <Button variant="outline">Right</Button>
92
+ </ButtonGroup>
93
+ ),
94
+ args: {
95
+ 'aria-label': 'Text alignment',
96
+ },
97
+ };
98
+
99
+ export const TwoButtons: Story = {
100
+ render: (args) => (
101
+ <ButtonGroup {...args}>
102
+ <Button variant="outline">Previous</Button>
103
+ <Button variant="outline">Next</Button>
104
+ </ButtonGroup>
105
+ ),
106
+ args: {
107
+ 'aria-label': 'Pagination',
108
+ },
109
+ };
110
+
111
+ export const SingleButton: Story = {
112
+ render: (args) => (
113
+ <ButtonGroup {...args}>
114
+ <Button variant="outline">Only Button</Button>
115
+ </ButtonGroup>
116
+ ),
117
+ args: {
118
+ 'aria-label': 'Single action',
119
+ },
120
+ parameters: {
121
+ docs: {
122
+ description: {
123
+ story: 'Single button in a group has no border radius modifications.',
124
+ },
125
+ },
126
+ },
127
+ };
128
+
129
+ // =============================================================================
130
+ // Orientation
131
+ // =============================================================================
132
+
133
+ export const Horizontal: Story = {
134
+ render: (args) => (
135
+ <ButtonGroup {...args}>
136
+ <Button variant="outline">First</Button>
137
+ <Button variant="outline">Second</Button>
138
+ <Button variant="outline">Third</Button>
139
+ </ButtonGroup>
140
+ ),
141
+ args: {
142
+ orientation: 'horizontal',
143
+ 'aria-label': 'Horizontal group',
144
+ },
145
+ };
146
+
147
+ export const Vertical: Story = {
148
+ render: (args) => (
149
+ <ButtonGroup {...args}>
150
+ <Button variant="outline">View Profile</Button>
151
+ <Button variant="outline">Settings</Button>
152
+ <Button variant="outline">Sign Out</Button>
153
+ </ButtonGroup>
154
+ ),
155
+ args: {
156
+ orientation: 'vertical',
157
+ 'aria-label': 'Account actions',
158
+ },
159
+ parameters: {
160
+ docs: {
161
+ description: {
162
+ story:
163
+ 'Vertical orientation for stacked layouts. Use Up/Down arrow keys to navigate.',
164
+ },
165
+ },
166
+ },
167
+ };
168
+
169
+ // =============================================================================
170
+ // Variants (Inherited from Group)
171
+ // =============================================================================
172
+
173
+ export const OutlineVariant: Story = {
174
+ render: (args) => (
175
+ <ButtonGroup {...args}>
176
+ <Button>Bold</Button>
177
+ <Button>Italic</Button>
178
+ <Button>Underline</Button>
179
+ </ButtonGroup>
180
+ ),
181
+ args: {
182
+ variant: 'outline',
183
+ 'aria-label': 'Text formatting',
184
+ },
185
+ parameters: {
186
+ docs: {
187
+ description: {
188
+ story: 'Group-level variant applies to all child buttons.',
189
+ },
190
+ },
191
+ },
192
+ };
193
+
194
+ export const SecondaryVariant: Story = {
195
+ render: (args) => (
196
+ <ButtonGroup {...args}>
197
+ <Button>Option A</Button>
198
+ <Button>Option B</Button>
199
+ <Button>Option C</Button>
200
+ </ButtonGroup>
201
+ ),
202
+ args: {
203
+ variant: 'secondary',
204
+ 'aria-label': 'Options',
205
+ },
206
+ };
207
+
208
+ export const GhostVariant: Story = {
209
+ render: (args) => (
210
+ <ButtonGroup {...args}>
211
+ <Button><Undo /></Button>
212
+ <Button><Redo /></Button>
213
+ </ButtonGroup>
214
+ ),
215
+ args: {
216
+ variant: 'ghost',
217
+ 'aria-label': 'Undo/Redo',
218
+ },
219
+ };
220
+
221
+ export const MixedVariants: Story = {
222
+ render: (args) => (
223
+ <ButtonGroup {...args}>
224
+ <Button>Save</Button>
225
+ <Button variant="outline">Cancel</Button>
226
+ <Button variant="destructive">Delete</Button>
227
+ </ButtonGroup>
228
+ ),
229
+ args: {
230
+ 'aria-label': 'Actions',
231
+ },
232
+ parameters: {
233
+ docs: {
234
+ description: {
235
+ story:
236
+ 'Individual buttons can override the group variant. Here, Save uses default, Cancel uses outline, Delete uses destructive.',
237
+ },
238
+ },
239
+ },
240
+ };
241
+
242
+ // =============================================================================
243
+ // Sizes
244
+ // =============================================================================
245
+
246
+ export const SmallSize: Story = {
247
+ render: (args) => (
248
+ <ButtonGroup {...args}>
249
+ <Button variant="outline">Small</Button>
250
+ <Button variant="outline">Buttons</Button>
251
+ <Button variant="outline">Here</Button>
252
+ </ButtonGroup>
253
+ ),
254
+ args: {
255
+ size: 'sm',
256
+ 'aria-label': 'Small buttons',
257
+ },
258
+ };
259
+
260
+ export const LargeSize: Story = {
261
+ render: (args) => (
262
+ <ButtonGroup {...args}>
263
+ <Button variant="outline">Large</Button>
264
+ <Button variant="outline">Buttons</Button>
265
+ <Button variant="outline">Here</Button>
266
+ </ButtonGroup>
267
+ ),
268
+ args: {
269
+ size: 'lg',
270
+ 'aria-label': 'Large buttons',
271
+ },
272
+ };
273
+
274
+ export const IconSize: Story = {
275
+ render: (args) => (
276
+ <ButtonGroup {...args}>
277
+ <Button variant="outline" aria-label="Bold"><Bold /></Button>
278
+ <Button variant="outline" aria-label="Italic"><Italic /></Button>
279
+ <Button variant="outline" aria-label="Underline"><Underline /></Button>
280
+ </ButtonGroup>
281
+ ),
282
+ args: {
283
+ size: 'icon',
284
+ 'aria-label': 'Text formatting',
285
+ },
286
+ };
287
+
288
+ export const AllSizes: Story = {
289
+ render: () => (
290
+ <div className="flex flex-col gap-6">
291
+ <div className="flex flex-col gap-2">
292
+ <span className="text-sm text-[var(--muted-foreground)]">Small (sm)</span>
293
+ <ButtonGroup size="sm" aria-label="Small buttons">
294
+ <Button variant="outline">A</Button>
295
+ <Button variant="outline">B</Button>
296
+ <Button variant="outline">C</Button>
297
+ </ButtonGroup>
298
+ </div>
299
+ <div className="flex flex-col gap-2">
300
+ <span className="text-sm text-[var(--muted-foreground)]">Default</span>
301
+ <ButtonGroup aria-label="Default buttons">
302
+ <Button variant="outline">A</Button>
303
+ <Button variant="outline">B</Button>
304
+ <Button variant="outline">C</Button>
305
+ </ButtonGroup>
306
+ </div>
307
+ <div className="flex flex-col gap-2">
308
+ <span className="text-sm text-[var(--muted-foreground)]">Large (lg)</span>
309
+ <ButtonGroup size="lg" aria-label="Large buttons">
310
+ <Button variant="outline">A</Button>
311
+ <Button variant="outline">B</Button>
312
+ <Button variant="outline">C</Button>
313
+ </ButtonGroup>
314
+ </div>
315
+ <div className="flex flex-col gap-2">
316
+ <span className="text-sm text-[var(--muted-foreground)]">Icon</span>
317
+ <ButtonGroup size="icon" aria-label="Icon buttons">
318
+ <Button variant="outline" aria-label="Grid"><Grid /></Button>
319
+ <Button variant="outline" aria-label="List"><List /></Button>
320
+ <Button variant="outline" aria-label="Table"><Table /></Button>
321
+ </ButtonGroup>
322
+ </div>
323
+ </div>
324
+ ),
325
+ parameters: {
326
+ docs: {
327
+ description: {
328
+ story: 'All size variants in one view.',
329
+ },
330
+ },
331
+ },
332
+ };
333
+
334
+ // =============================================================================
335
+ // Separators
336
+ // =============================================================================
337
+
338
+ export const WithSeparators: Story = {
339
+ render: (args) => (
340
+ <ButtonGroup {...args}>
341
+ <Button variant="ghost" aria-label="Undo"><Undo /></Button>
342
+ <Button variant="ghost" aria-label="Redo"><Redo /></Button>
343
+ <ButtonGroupSeparator />
344
+ <Button variant="ghost" aria-label="Cut"><Scissors /></Button>
345
+ <Button variant="ghost" aria-label="Copy"><Copy /></Button>
346
+ <Button variant="ghost" aria-label="Paste"><Clipboard /></Button>
347
+ </ButtonGroup>
348
+ ),
349
+ args: {
350
+ 'aria-label': 'Editor actions',
351
+ },
352
+ parameters: {
353
+ docs: {
354
+ description: {
355
+ story:
356
+ 'Separators visually divide related button groups. They are purely decorative (aria-hidden) and excluded from position calculations.',
357
+ },
358
+ },
359
+ },
360
+ };
361
+
362
+ export const MultipleSeparators: Story = {
363
+ render: (args) => (
364
+ <ButtonGroup {...args}>
365
+ <Button variant="outline" aria-label="Bold"><Bold /></Button>
366
+ <Button variant="outline" aria-label="Italic"><Italic /></Button>
367
+ <Button variant="outline" aria-label="Underline"><Underline /></Button>
368
+ <ButtonGroupSeparator />
369
+ <Button variant="outline" aria-label="Align left"><AlignLeft /></Button>
370
+ <Button variant="outline" aria-label="Align center"><AlignCenter /></Button>
371
+ <Button variant="outline" aria-label="Align right"><AlignRight /></Button>
372
+ <Button variant="outline" aria-label="Justify"><AlignJustify /></Button>
373
+ <ButtonGroupSeparator />
374
+ <Button variant="outline" aria-label="Undo"><Undo /></Button>
375
+ <Button variant="outline" aria-label="Redo"><Redo /></Button>
376
+ </ButtonGroup>
377
+ ),
378
+ args: {
379
+ 'aria-label': 'Text editor toolbar',
380
+ },
381
+ };
382
+
383
+ export const VerticalWithSeparator: Story = {
384
+ render: (args) => (
385
+ <ButtonGroup {...args}>
386
+ <Button variant="outline"><User className="mr-2" /> Profile</Button>
387
+ <Button variant="outline"><Settings className="mr-2" /> Settings</Button>
388
+ <ButtonGroupSeparator />
389
+ <Button variant="outline"><LogOut className="mr-2" /> Sign Out</Button>
390
+ </ButtonGroup>
391
+ ),
392
+ args: {
393
+ orientation: 'vertical',
394
+ 'aria-label': 'User menu',
395
+ },
396
+ };
397
+
398
+ // =============================================================================
399
+ // Disabled States
400
+ // =============================================================================
401
+
402
+ export const Disabled: Story = {
403
+ render: (args) => (
404
+ <ButtonGroup {...args}>
405
+ <Button variant="outline">Can&apos;t</Button>
406
+ <Button variant="outline">Click</Button>
407
+ <Button variant="outline">These</Button>
408
+ </ButtonGroup>
409
+ ),
410
+ args: {
411
+ isDisabled: true,
412
+ 'aria-label': 'Disabled group',
413
+ },
414
+ parameters: {
415
+ docs: {
416
+ description: {
417
+ story: 'All buttons are disabled when isDisabled is set on the group.',
418
+ },
419
+ },
420
+ },
421
+ };
422
+
423
+ export const MixedDisabledStates: Story = {
424
+ render: (args) => (
425
+ <ButtonGroup {...args}>
426
+ <Button variant="outline">Cut</Button>
427
+ <Button variant="outline">Copy</Button>
428
+ <Button variant="outline" isDisabled>Paste (Disabled)</Button>
429
+ </ButtonGroup>
430
+ ),
431
+ args: {
432
+ 'aria-label': 'Clipboard actions',
433
+ },
434
+ parameters: {
435
+ docs: {
436
+ description: {
437
+ story:
438
+ 'Individual buttons can be disabled. Disabled buttons are skipped during keyboard navigation.',
439
+ },
440
+ },
441
+ },
442
+ };
443
+
444
+ // =============================================================================
445
+ // Real-World Examples
446
+ // =============================================================================
447
+
448
+ export const TextFormattingToolbar: Story = {
449
+ render: () => (
450
+ <div className="rounded-lg border border-[var(--border)] p-4">
451
+ <div className="mb-4">
452
+ <ButtonGroup aria-label="Text formatting" size="icon">
453
+ <Button variant="outline" aria-label="Bold"><Bold /></Button>
454
+ <Button variant="outline" aria-label="Italic"><Italic /></Button>
455
+ <Button variant="outline" aria-label="Underline"><Underline /></Button>
456
+ </ButtonGroup>
457
+ </div>
458
+ <textarea
459
+ className="w-full h-24 rounded-md border border-[var(--input-border)] p-2 text-sm"
460
+ placeholder="Type some text here..."
461
+ defaultValue="Select text and click formatting buttons..."
462
+ />
463
+ </div>
464
+ ),
465
+ parameters: {
466
+ docs: {
467
+ description: {
468
+ story: 'Text formatting toolbar like you would find in a rich text editor.',
469
+ },
470
+ },
471
+ },
472
+ };
473
+
474
+ export const ViewSwitcher: Story = {
475
+ render: () => (
476
+ <div className="flex flex-col gap-4">
477
+ <ButtonGroup aria-label="View mode" size="icon">
478
+ <Button variant="secondary" aria-label="Grid view"><Grid /></Button>
479
+ <Button variant="outline" aria-label="List view"><List /></Button>
480
+ <Button variant="outline" aria-label="Table view"><Table /></Button>
481
+ </ButtonGroup>
482
+ <p className="text-sm text-[var(--muted-foreground)]">
483
+ Grid view selected (shows as secondary variant)
484
+ </p>
485
+ </div>
486
+ ),
487
+ parameters: {
488
+ docs: {
489
+ description: {
490
+ story:
491
+ 'View switcher pattern. The active view uses a different variant to indicate selection.',
492
+ },
493
+ },
494
+ },
495
+ };
496
+
497
+ export const PaginationControls: Story = {
498
+ render: () => (
499
+ <div className="flex items-center gap-4">
500
+ <span className="text-sm text-[var(--muted-foreground)]">Page 3 of 10</span>
501
+ <ButtonGroup aria-label="Pagination" variant="outline">
502
+ <Button>&laquo; First</Button>
503
+ <Button>&lsaquo; Prev</Button>
504
+ <Button>Next &rsaquo;</Button>
505
+ <Button>Last &raquo;</Button>
506
+ </ButtonGroup>
507
+ </div>
508
+ ),
509
+ };
510
+
511
+ export const AlignmentControls: Story = {
512
+ render: () => (
513
+ <ButtonGroup aria-label="Text alignment" variant="outline" size="icon">
514
+ <Button aria-label="Align left"><AlignLeft /></Button>
515
+ <Button aria-label="Align center"><AlignCenter /></Button>
516
+ <Button aria-label="Align right"><AlignRight /></Button>
517
+ <Button aria-label="Justify"><AlignJustify /></Button>
518
+ </ButtonGroup>
519
+ ),
520
+ };
521
+
522
+ export const AccountActions: Story = {
523
+ render: () => (
524
+ <div className="w-64">
525
+ <ButtonGroup orientation="vertical" variant="ghost" aria-label="Account">
526
+ <Button className="justify-start"><User className="mr-2" /> View Profile</Button>
527
+ <Button className="justify-start"><Settings className="mr-2" /> Account Settings</Button>
528
+ <ButtonGroupSeparator />
529
+ <Button className="justify-start text-[var(--destructive-background)]">
530
+ <LogOut className="mr-2" /> Sign Out
531
+ </Button>
532
+ </ButtonGroup>
533
+ </div>
534
+ ),
535
+ parameters: {
536
+ docs: {
537
+ description: {
538
+ story: 'Vertical button group for account dropdown menus.',
539
+ },
540
+ },
541
+ },
542
+ };
543
+
544
+ // =============================================================================
545
+ // Accessibility
546
+ // =============================================================================
547
+
548
+ export const KeyboardNavigation: Story = {
549
+ render: (args) => (
550
+ <div className="flex flex-col gap-4">
551
+ <ButtonGroup {...args}>
552
+ <Button variant="outline">First (Tab here)</Button>
553
+ <Button variant="outline">Second (ArrowRight)</Button>
554
+ <Button variant="outline">Third (ArrowRight)</Button>
555
+ </ButtonGroup>
556
+ <div className="text-sm text-[var(--muted-foreground)]">
557
+ <p><strong>Keyboard shortcuts:</strong></p>
558
+ <ul className="list-disc pl-4 mt-2">
559
+ <li><kbd>Tab</kbd> - Enter/exit the button group</li>
560
+ <li><kbd>Arrow Right/Left</kbd> - Navigate between buttons</li>
561
+ <li><kbd>Enter</kbd> or <kbd>Space</kbd> - Activate focused button</li>
562
+ </ul>
563
+ </div>
564
+ </div>
565
+ ),
566
+ args: {
567
+ 'aria-label': 'Keyboard navigation demo',
568
+ },
569
+ parameters: {
570
+ docs: {
571
+ description: {
572
+ story:
573
+ 'Use Tab to focus the group, then arrow keys to navigate between buttons. The group acts as a single tab stop (roving tabindex pattern).',
574
+ },
575
+ },
576
+ },
577
+ };
578
+
579
+ export const VerticalKeyboardNavigation: Story = {
580
+ render: (args) => (
581
+ <div className="flex gap-8">
582
+ <ButtonGroup {...args}>
583
+ <Button variant="outline">First (Tab here)</Button>
584
+ <Button variant="outline">Second (ArrowDown)</Button>
585
+ <Button variant="outline">Third (ArrowDown)</Button>
586
+ </ButtonGroup>
587
+ <div className="text-sm text-[var(--muted-foreground)]">
588
+ <p><strong>Vertical shortcuts:</strong></p>
589
+ <ul className="list-disc pl-4 mt-2">
590
+ <li><kbd>Arrow Down</kbd> - Next button</li>
591
+ <li><kbd>Arrow Up</kbd> - Previous button</li>
592
+ </ul>
593
+ </div>
594
+ </div>
595
+ ),
596
+ args: {
597
+ orientation: 'vertical',
598
+ 'aria-label': 'Vertical keyboard navigation demo',
599
+ },
600
+ };
601
+
602
+ // =============================================================================
603
+ // All Variants Grid
604
+ // =============================================================================
605
+
606
+ export const AllVariants: Story = {
607
+ render: () => (
608
+ <div className="flex flex-col gap-6">
609
+ <div className="flex flex-col gap-2">
610
+ <span className="text-sm text-[var(--muted-foreground)]">Default</span>
611
+ <ButtonGroup aria-label="Default variant">
612
+ <Button>One</Button>
613
+ <Button>Two</Button>
614
+ <Button>Three</Button>
615
+ </ButtonGroup>
616
+ </div>
617
+ <div className="flex flex-col gap-2">
618
+ <span className="text-sm text-[var(--muted-foreground)]">Outline</span>
619
+ <ButtonGroup variant="outline" aria-label="Outline variant">
620
+ <Button>One</Button>
621
+ <Button>Two</Button>
622
+ <Button>Three</Button>
623
+ </ButtonGroup>
624
+ </div>
625
+ <div className="flex flex-col gap-2">
626
+ <span className="text-sm text-[var(--muted-foreground)]">Secondary</span>
627
+ <ButtonGroup variant="secondary" aria-label="Secondary variant">
628
+ <Button>One</Button>
629
+ <Button>Two</Button>
630
+ <Button>Three</Button>
631
+ </ButtonGroup>
632
+ </div>
633
+ <div className="flex flex-col gap-2">
634
+ <span className="text-sm text-[var(--muted-foreground)]">Ghost</span>
635
+ <ButtonGroup variant="ghost" aria-label="Ghost variant">
636
+ <Button>One</Button>
637
+ <Button>Two</Button>
638
+ <Button>Three</Button>
639
+ </ButtonGroup>
640
+ </div>
641
+ <div className="flex flex-col gap-2">
642
+ <span className="text-sm text-[var(--muted-foreground)]">Destructive</span>
643
+ <ButtonGroup variant="destructive" aria-label="Destructive variant">
644
+ <Button>One</Button>
645
+ <Button>Two</Button>
646
+ <Button>Three</Button>
647
+ </ButtonGroup>
648
+ </div>
649
+ </div>
650
+ ),
651
+ parameters: {
652
+ docs: {
653
+ description: {
654
+ story: 'All variant types demonstrated with 3-button groups.',
655
+ },
656
+ },
657
+ },
658
+ };