@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,769 @@
1
+ /**
2
+ * Panel Component - Storybook Stories
3
+ *
4
+ * Interactive examples and documentation for the Panel component
5
+ *
6
+ * IMPORTANT: The Panel component must be a SIBLING of <main>, not a child.
7
+ * This allows it to participate in the CSS Grid layout and appear beside
8
+ * the main content, not inside it.
9
+ *
10
+ * @see panel-prd.md DOC-002 (Storybook Stories Requirements)
11
+ * @see ADR 0007 (Accessibility Decisions)
12
+ * @see Storybook (when running)
13
+ */
14
+
15
+ import { useState, type ReactElement } from 'react';
16
+ import type { Meta, StoryObj } from '@storybook/nextjs';
17
+ import { Panel } from './Panel';
18
+ import { Button } from '../Button';
19
+
20
+ const meta = {
21
+ title: 'Elements/Panel',
22
+ component: Panel,
23
+ tags: ['autodocs'],
24
+ parameters: {
25
+ layout: 'fullscreen',
26
+ docs: {
27
+ description: {
28
+ component:
29
+ 'Accessible non-modal sidebar panel using the disclosure pattern with a complementary region for WCAG 2.2 AAA compliance. Designed for master-detail patterns where panel content supplements main content without blocking interaction.\n\n**Important:** The Panel must be a sibling of your main content in the grid layout, not nested inside it.',
30
+ },
31
+ },
32
+ },
33
+ argTypes: {
34
+ position: {
35
+ control: 'select',
36
+ options: ['left', 'right'],
37
+ description: 'Panel position (left or right side)',
38
+ },
39
+ width: {
40
+ control: 'select',
41
+ options: ['sm', 'md', 'lg', 'xl', 'auto'],
42
+ description:
43
+ 'Panel width: sm=300px, md=400px, lg=500px, xl=600px, auto=content',
44
+ },
45
+ defaultOpen: {
46
+ control: 'boolean',
47
+ description: 'Default open state (uncontrolled mode)',
48
+ },
49
+ mobileBreakpoint: {
50
+ control: 'number',
51
+ description: 'Width in pixels below which panel renders as modal',
52
+ },
53
+ },
54
+ } satisfies Meta<typeof Panel>;
55
+
56
+ export default meta;
57
+ type Story = StoryObj<typeof meta>;
58
+
59
+ // ============================================================================
60
+ // Default Story
61
+ // ============================================================================
62
+
63
+ /**
64
+ * Default Panel
65
+ * Basic panel with trigger, header, body, and footer.
66
+ * Note: Panel is a sibling of main in the grid, with trigger inside main.
67
+ */
68
+ export const Default: Story = {
69
+ render: function DefaultPanel(): ReactElement {
70
+ const [isOpen, setIsOpen] = useState(false);
71
+
72
+ return (
73
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
74
+ <main className="p-4">
75
+ <h1 className="text-2xl font-bold mb-4">Main Content</h1>
76
+ <p className="text-[var(--muted-foreground)] mb-4">
77
+ Click the button to open the panel. The panel renders beside this
78
+ content, not over it.
79
+ </p>
80
+ <Button onClick={() => setIsOpen(true)}>Open Panel</Button>
81
+ </main>
82
+ <Panel isOpen={isOpen} onOpenChange={setIsOpen}>
83
+ <Panel.Content>
84
+ <Panel.Header>
85
+ <Panel.Title>Panel Title</Panel.Title>
86
+ <Panel.Description>
87
+ This is a description of the panel content.
88
+ </Panel.Description>
89
+ </Panel.Header>
90
+ <Panel.Body>
91
+ <p>Panel body content goes here. This area is scrollable.</p>
92
+ </Panel.Body>
93
+ <Panel.Footer>
94
+ <Panel.Close>
95
+ <Button variant="outline">Cancel</Button>
96
+ </Panel.Close>
97
+ <Button>Save</Button>
98
+ </Panel.Footer>
99
+ </Panel.Content>
100
+ </Panel>
101
+ </div>
102
+ );
103
+ },
104
+ };
105
+
106
+ // ============================================================================
107
+ // Position Variants
108
+ // ============================================================================
109
+
110
+ /**
111
+ * Position Left
112
+ * Panel appears on the left side
113
+ */
114
+ export const PositionLeft: Story = {
115
+ render: () => (
116
+ <div className="grid min-h-[400px] grid-cols-[auto_1fr]">
117
+ <Panel position="left" defaultOpen>
118
+ <Panel.Content>
119
+ <Panel.Header>
120
+ <Panel.Title>Left Panel</Panel.Title>
121
+ <Panel.Description>
122
+ This panel opens on the left side.
123
+ </Panel.Description>
124
+ </Panel.Header>
125
+ <Panel.Body>
126
+ <p>Content for the left-positioned panel.</p>
127
+ </Panel.Body>
128
+ </Panel.Content>
129
+ </Panel>
130
+ <main className="p-4">
131
+ <h1 className="text-2xl font-bold mb-4">Main Content</h1>
132
+ <p className="text-[var(--muted-foreground)]">
133
+ The panel is on the left side of this content.
134
+ </p>
135
+ </main>
136
+ </div>
137
+ ),
138
+ };
139
+
140
+ // ============================================================================
141
+ // Width Variants
142
+ // ============================================================================
143
+
144
+ /**
145
+ * Width Small (300px)
146
+ */
147
+ export const WidthSmall: Story = {
148
+ render: () => (
149
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
150
+ <main className="p-4">
151
+ <h1 className="text-2xl font-bold mb-4">Small Width Panel</h1>
152
+ <p className="text-[var(--muted-foreground)]">
153
+ The panel on the right is 300px wide.
154
+ </p>
155
+ </main>
156
+ <Panel width="sm" defaultOpen>
157
+ <Panel.Content>
158
+ <Panel.Header>
159
+ <Panel.Title>Small Panel</Panel.Title>
160
+ </Panel.Header>
161
+ <Panel.Body>
162
+ <p>300px width panel content.</p>
163
+ </Panel.Body>
164
+ </Panel.Content>
165
+ </Panel>
166
+ </div>
167
+ ),
168
+ };
169
+
170
+ /**
171
+ * Width Large (500px)
172
+ */
173
+ export const WidthLarge: Story = {
174
+ render: () => (
175
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
176
+ <main className="p-4">
177
+ <h1 className="text-2xl font-bold mb-4">Large Width Panel</h1>
178
+ <p className="text-[var(--muted-foreground)]">
179
+ The panel on the right is 500px wide.
180
+ </p>
181
+ </main>
182
+ <Panel width="lg" defaultOpen>
183
+ <Panel.Content>
184
+ <Panel.Header>
185
+ <Panel.Title>Large Panel</Panel.Title>
186
+ </Panel.Header>
187
+ <Panel.Body>
188
+ <p>500px width panel content.</p>
189
+ </Panel.Body>
190
+ </Panel.Content>
191
+ </Panel>
192
+ </div>
193
+ ),
194
+ };
195
+
196
+ /**
197
+ * Width Extra Large (600px)
198
+ */
199
+ export const WidthXLarge: Story = {
200
+ render: () => (
201
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
202
+ <main className="p-4">
203
+ <h1 className="text-2xl font-bold mb-4">Extra Large Width Panel</h1>
204
+ <p className="text-[var(--muted-foreground)]">
205
+ The panel on the right is 600px wide.
206
+ </p>
207
+ </main>
208
+ <Panel width="xl" defaultOpen>
209
+ <Panel.Content>
210
+ <Panel.Header>
211
+ <Panel.Title>Extra Large Panel</Panel.Title>
212
+ </Panel.Header>
213
+ <Panel.Body>
214
+ <p>600px width panel content.</p>
215
+ </Panel.Body>
216
+ </Panel.Content>
217
+ </Panel>
218
+ </div>
219
+ ),
220
+ };
221
+
222
+ // ============================================================================
223
+ // Controlled Mode
224
+ // ============================================================================
225
+
226
+ /**
227
+ * Controlled Mode
228
+ * External state management with isOpen and onOpenChange
229
+ */
230
+ export const Controlled: Story = {
231
+ render: function ControlledPanel(): ReactElement {
232
+ const [isOpen, setIsOpen] = useState(false);
233
+
234
+ return (
235
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
236
+ <main className="p-4">
237
+ <h1 className="text-2xl font-bold mb-4">Controlled Panel</h1>
238
+ <p className="mb-4 text-[var(--muted-foreground)]">
239
+ Panel state: {isOpen ? 'Open' : 'Closed'}
240
+ </p>
241
+ <div className="flex gap-2">
242
+ <Button onClick={() => setIsOpen(true)}>Open Panel</Button>
243
+ <Button variant="outline" onClick={() => setIsOpen(false)}>
244
+ Close Panel
245
+ </Button>
246
+ </div>
247
+ </main>
248
+ <Panel
249
+ isOpen={isOpen}
250
+ onOpenChange={setIsOpen}
251
+ onClose={() => console.log('Panel closed!')}
252
+ >
253
+ <Panel.Content>
254
+ <Panel.Header>
255
+ <Panel.Title>Controlled Panel</Panel.Title>
256
+ <Panel.Description>
257
+ This panel is controlled externally.
258
+ </Panel.Description>
259
+ </Panel.Header>
260
+ <Panel.Body>
261
+ <p>State managed outside the component.</p>
262
+ </Panel.Body>
263
+ <Panel.Footer>
264
+ <Panel.Close>
265
+ <Button>Done</Button>
266
+ </Panel.Close>
267
+ </Panel.Footer>
268
+ </Panel.Content>
269
+ </Panel>
270
+ </div>
271
+ );
272
+ },
273
+ };
274
+
275
+ // ============================================================================
276
+ // No Close Button
277
+ // ============================================================================
278
+
279
+ /**
280
+ * No Close Button
281
+ * Panel without the built-in close button
282
+ */
283
+ export const NoCloseButton: Story = {
284
+ render: function NoCloseButtonPanel(): ReactElement {
285
+ const [isOpen, setIsOpen] = useState(true);
286
+
287
+ return (
288
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
289
+ <main className="p-4">
290
+ <h1 className="text-2xl font-bold mb-4">Panel Without Close Button</h1>
291
+ <p className="text-[var(--muted-foreground)] mb-4">
292
+ Use the button below or press Escape to toggle.
293
+ </p>
294
+ <Button onClick={() => setIsOpen(!isOpen)}>Toggle Panel</Button>
295
+ </main>
296
+ <Panel isOpen={isOpen} onOpenChange={setIsOpen}>
297
+ <Panel.Content showClose={false}>
298
+ <Panel.Header>
299
+ <Panel.Title>No Close Button</Panel.Title>
300
+ <Panel.Description>
301
+ Use the trigger or footer button to close.
302
+ </Panel.Description>
303
+ </Panel.Header>
304
+ <Panel.Body>
305
+ <p>
306
+ This panel has no built-in close button. Press Escape or click
307
+ the trigger to close.
308
+ </p>
309
+ </Panel.Body>
310
+ <Panel.Footer>
311
+ <Panel.Close>
312
+ <Button variant="outline">Close</Button>
313
+ </Panel.Close>
314
+ </Panel.Footer>
315
+ </Panel.Content>
316
+ </Panel>
317
+ </div>
318
+ );
319
+ },
320
+ };
321
+
322
+ // ============================================================================
323
+ // Content Variants
324
+ // ============================================================================
325
+
326
+ /**
327
+ * With Header
328
+ * Panel with title and description in header
329
+ */
330
+ export const WithHeader: Story = {
331
+ render: () => (
332
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
333
+ <main className="p-4">
334
+ <h1 className="text-2xl font-bold mb-4">Panel with Header</h1>
335
+ <p className="text-[var(--muted-foreground)]">
336
+ The panel shows a header with title and description.
337
+ </p>
338
+ </main>
339
+ <Panel defaultOpen>
340
+ <Panel.Content>
341
+ <Panel.Header>
342
+ <Panel.Title>Panel Header</Panel.Title>
343
+ <Panel.Description>
344
+ The header contains the title and an optional description. It
345
+ provides context for the panel content.
346
+ </Panel.Description>
347
+ </Panel.Header>
348
+ <Panel.Body>
349
+ <p>Main panel content here.</p>
350
+ </Panel.Body>
351
+ </Panel.Content>
352
+ </Panel>
353
+ </div>
354
+ ),
355
+ };
356
+
357
+ /**
358
+ * With Footer
359
+ * Panel with action buttons in footer
360
+ */
361
+ export const WithFooter: Story = {
362
+ render: () => (
363
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
364
+ <main className="p-4">
365
+ <h1 className="text-2xl font-bold mb-4">Panel with Footer</h1>
366
+ <p className="text-[var(--muted-foreground)]">
367
+ The panel has action buttons in the footer.
368
+ </p>
369
+ </main>
370
+ <Panel defaultOpen>
371
+ <Panel.Content>
372
+ <Panel.Header>
373
+ <Panel.Title>Footer Actions</Panel.Title>
374
+ </Panel.Header>
375
+ <Panel.Body>
376
+ <p>Panel content with action buttons below.</p>
377
+ </Panel.Body>
378
+ <Panel.Footer>
379
+ <Panel.Close>
380
+ <Button variant="outline">Cancel</Button>
381
+ </Panel.Close>
382
+ <Button variant="destructive">Delete</Button>
383
+ <Button>Save</Button>
384
+ </Panel.Footer>
385
+ </Panel.Content>
386
+ </Panel>
387
+ </div>
388
+ ),
389
+ };
390
+
391
+ /**
392
+ * Full Structure
393
+ * Panel with header, body, and footer
394
+ */
395
+ export const FullStructure: Story = {
396
+ render: () => (
397
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto]">
398
+ <main className="p-4">
399
+ <h1 className="text-2xl font-bold mb-4">Full Panel Structure</h1>
400
+ <p className="text-[var(--muted-foreground)]">
401
+ The panel demonstrates header, body, and footer components.
402
+ </p>
403
+ </main>
404
+ <Panel defaultOpen>
405
+ <Panel.Content>
406
+ <Panel.Header>
407
+ <Panel.Title>Complete Panel</Panel.Title>
408
+ <Panel.Description>
409
+ This panel demonstrates all structural components.
410
+ </Panel.Description>
411
+ </Panel.Header>
412
+ <Panel.Body>
413
+ <div className="space-y-4">
414
+ <p>
415
+ The body contains the main content of the panel. It can include
416
+ any elements.
417
+ </p>
418
+ <ul className="list-disc pl-4 space-y-2">
419
+ <li>Lists</li>
420
+ <li>Forms</li>
421
+ <li>Images</li>
422
+ <li>Tables</li>
423
+ </ul>
424
+ </div>
425
+ </Panel.Body>
426
+ <Panel.Footer>
427
+ <Panel.Close>
428
+ <Button variant="outline">Cancel</Button>
429
+ </Panel.Close>
430
+ <Button>Confirm</Button>
431
+ </Panel.Footer>
432
+ </Panel.Content>
433
+ </Panel>
434
+ </div>
435
+ ),
436
+ };
437
+
438
+ // ============================================================================
439
+ // Scrollable Content
440
+ // ============================================================================
441
+
442
+ /**
443
+ * Scrollable Content
444
+ * Panel with long scrollable body content
445
+ */
446
+ export const ScrollableContent: Story = {
447
+ render: () => (
448
+ <div className="grid h-[500px] grid-cols-[1fr_auto]">
449
+ <main className="p-4 overflow-auto">
450
+ <h1 className="text-2xl font-bold mb-4">Scrollable Panel</h1>
451
+ <p className="text-[var(--muted-foreground)]">
452
+ The panel body scrolls when content exceeds available height.
453
+ </p>
454
+ </main>
455
+ <Panel defaultOpen>
456
+ <Panel.Content>
457
+ <Panel.Header>
458
+ <Panel.Title>Scrollable Body</Panel.Title>
459
+ </Panel.Header>
460
+ <Panel.Body>
461
+ <div className="space-y-4">
462
+ {Array.from({ length: 20 }, (_, i) => (
463
+ <div key={i} className="p-4 border rounded">
464
+ <h3 className="font-semibold">Item {i + 1}</h3>
465
+ <p className="text-[var(--muted-foreground)]">
466
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
467
+ </p>
468
+ </div>
469
+ ))}
470
+ </div>
471
+ </Panel.Body>
472
+ <Panel.Footer>
473
+ <Button>Done</Button>
474
+ </Panel.Footer>
475
+ </Panel.Content>
476
+ </Panel>
477
+ </div>
478
+ ),
479
+ };
480
+
481
+ // ============================================================================
482
+ // Form Content
483
+ // ============================================================================
484
+
485
+ /**
486
+ * Form Content
487
+ * Panel with form elements inside
488
+ */
489
+ export const FormContent: Story = {
490
+ render: () => (
491
+ <div className="grid min-h-[500px] grid-cols-[1fr_auto]">
492
+ <main className="p-4">
493
+ <h1 className="text-2xl font-bold mb-4">Panel with Form</h1>
494
+ <p className="text-[var(--muted-foreground)]">
495
+ The panel contains a form for editing settings.
496
+ </p>
497
+ </main>
498
+ <Panel defaultOpen>
499
+ <Panel.Content>
500
+ <Panel.Header>
501
+ <Panel.Title>Edit Settings</Panel.Title>
502
+ <Panel.Description>
503
+ Make changes to your settings here.
504
+ </Panel.Description>
505
+ </Panel.Header>
506
+ <Panel.Body>
507
+ <form
508
+ id="settings-form"
509
+ onSubmit={(e) => {
510
+ e.preventDefault();
511
+ alert('Form submitted!');
512
+ }}
513
+ >
514
+ <div className="space-y-4">
515
+ <div>
516
+ <label
517
+ htmlFor="name"
518
+ className="block text-sm font-medium mb-1"
519
+ >
520
+ Name
521
+ </label>
522
+ <input
523
+ id="name"
524
+ type="text"
525
+ className="w-full px-3 py-2 border rounded-md bg-[var(--background)] border-[var(--border)]"
526
+ defaultValue="John Smith"
527
+ />
528
+ </div>
529
+ <div>
530
+ <label
531
+ htmlFor="email"
532
+ className="block text-sm font-medium mb-1"
533
+ >
534
+ Email
535
+ </label>
536
+ <input
537
+ id="email"
538
+ type="email"
539
+ className="w-full px-3 py-2 border rounded-md bg-[var(--background)] border-[var(--border)]"
540
+ defaultValue="john@example.com"
541
+ />
542
+ </div>
543
+ <div>
544
+ <label
545
+ htmlFor="role"
546
+ className="block text-sm font-medium mb-1"
547
+ >
548
+ Role
549
+ </label>
550
+ <select
551
+ id="role"
552
+ className="w-full px-3 py-2 border rounded-md bg-[var(--background)] border-[var(--border)]"
553
+ >
554
+ <option>Admin</option>
555
+ <option>User</option>
556
+ <option>Guest</option>
557
+ </select>
558
+ </div>
559
+ </div>
560
+ </form>
561
+ </Panel.Body>
562
+ <Panel.Footer>
563
+ <Panel.Close>
564
+ <Button variant="outline">Cancel</Button>
565
+ </Panel.Close>
566
+ <Button type="submit" form="settings-form">
567
+ Save Changes
568
+ </Button>
569
+ </Panel.Footer>
570
+ </Panel.Content>
571
+ </Panel>
572
+ </div>
573
+ ),
574
+ };
575
+
576
+ // ============================================================================
577
+ // Master-Detail Pattern
578
+ // ============================================================================
579
+
580
+ interface Candidate {
581
+ id: string;
582
+ name: string;
583
+ role: string;
584
+ status: string;
585
+ email: string;
586
+ phone: string;
587
+ }
588
+
589
+ const candidates: Candidate[] = [
590
+ {
591
+ id: '1',
592
+ name: 'John Smith',
593
+ role: 'Software Engineer',
594
+ status: 'Interview',
595
+ email: 'john@example.com',
596
+ phone: '+1 555-0101',
597
+ },
598
+ {
599
+ id: '2',
600
+ name: 'Jane Doe',
601
+ role: 'Product Manager',
602
+ status: 'Screening',
603
+ email: 'jane@example.com',
604
+ phone: '+1 555-0102',
605
+ },
606
+ {
607
+ id: '3',
608
+ name: 'Bob Wilson',
609
+ role: 'UX Designer',
610
+ status: 'Offer',
611
+ email: 'bob@example.com',
612
+ phone: '+1 555-0103',
613
+ },
614
+ ];
615
+
616
+ /**
617
+ * Candidate Profile (Master-Detail)
618
+ * Real-world example: clicking a candidate shows their profile in panel
619
+ */
620
+ export const CandidateProfile: Story = {
621
+ render: function CandidateProfilePanel(): ReactElement {
622
+ const [selected, setSelected] = useState<Candidate | null>(null);
623
+
624
+ return (
625
+ <div className="grid min-h-[500px] grid-cols-[1fr_auto]">
626
+ <main className="p-4">
627
+ <h1 className="text-2xl font-bold mb-4">Candidates</h1>
628
+ <p className="text-[var(--muted-foreground)] mb-4">
629
+ Click a candidate to view their profile. The panel opens beside the
630
+ list without covering it.
631
+ </p>
632
+ <div className="space-y-2">
633
+ {candidates.map((candidate) => (
634
+ <div
635
+ key={candidate.id}
636
+ className="p-4 border rounded cursor-pointer hover:bg-[var(--accent)]"
637
+ onClick={() => setSelected(candidate)}
638
+ >
639
+ <div className="font-semibold">{candidate.name}</div>
640
+ <div className="text-sm text-[var(--muted-foreground)]">
641
+ {candidate.role} - {candidate.status}
642
+ </div>
643
+ </div>
644
+ ))}
645
+ </div>
646
+ </main>
647
+ <Panel
648
+ isOpen={!!selected}
649
+ onOpenChange={(open) => !open && setSelected(null)}
650
+ >
651
+ <Panel.Content>
652
+ <Panel.Header>
653
+ <Panel.Title>{selected?.name ?? 'Candidate'}</Panel.Title>
654
+ <Panel.Description>{selected?.role}</Panel.Description>
655
+ </Panel.Header>
656
+ <Panel.Body>
657
+ {selected && (
658
+ <div className="space-y-4">
659
+ <div>
660
+ <div className="text-sm font-medium text-[var(--muted-foreground)]">
661
+ Status
662
+ </div>
663
+ <div>{selected.status}</div>
664
+ </div>
665
+ <div>
666
+ <div className="text-sm font-medium text-[var(--muted-foreground)]">
667
+ Email
668
+ </div>
669
+ <div>{selected.email}</div>
670
+ </div>
671
+ <div>
672
+ <div className="text-sm font-medium text-[var(--muted-foreground)]">
673
+ Phone
674
+ </div>
675
+ <div>{selected.phone}</div>
676
+ </div>
677
+ </div>
678
+ )}
679
+ </Panel.Body>
680
+ <Panel.Footer>
681
+ <Panel.Close>
682
+ <Button variant="outline">Close</Button>
683
+ </Panel.Close>
684
+ <Button>Send Email</Button>
685
+ </Panel.Footer>
686
+ </Panel.Content>
687
+ </Panel>
688
+ </div>
689
+ );
690
+ },
691
+ };
692
+
693
+ // ============================================================================
694
+ // Grid Layout
695
+ // ============================================================================
696
+
697
+ /**
698
+ * Grid Layout
699
+ * Panel in CSS Grid layout demonstrating Focus Not Obscured (WCAG 2.4.12)
700
+ */
701
+ export const GridLayout: Story = {
702
+ render: () => (
703
+ <div className="grid min-h-[400px] grid-cols-[1fr_auto] gap-4 p-4 bg-[var(--background)]">
704
+ <main className="border border-dashed border-[var(--border)] p-4 rounded">
705
+ <h2 className="font-bold mb-2">Main Content Area</h2>
706
+ <p className="text-[var(--muted-foreground)] mb-4">
707
+ The panel is a CSS Grid sibling, not an overlay. Both areas remain
708
+ fully interactive.
709
+ </p>
710
+ <Button variant="outline">Focusable Button</Button>
711
+ </main>
712
+ <Panel defaultOpen>
713
+ <Panel.Content>
714
+ <Panel.Header>
715
+ <Panel.Title>Side Panel</Panel.Title>
716
+ </Panel.Header>
717
+ <Panel.Body>
718
+ <p>
719
+ This panel participates in the grid layout. Main content is never
720
+ obscured.
721
+ </p>
722
+ </Panel.Body>
723
+ </Panel.Content>
724
+ </Panel>
725
+ </div>
726
+ ),
727
+ };
728
+
729
+ // ============================================================================
730
+ // All Themes
731
+ // ============================================================================
732
+
733
+ /**
734
+ * All Themes
735
+ * Preview panel in all 4 themes
736
+ */
737
+ export const AllThemes: Story = {
738
+ parameters: {
739
+ layout: 'padded',
740
+ },
741
+ render: () => (
742
+ <div className="grid grid-cols-2 gap-8">
743
+ {(['light', 'dark', 'highContrast', 'colorblind'] as const).map(
744
+ (theme) => (
745
+ <div
746
+ key={theme}
747
+ data-theme={theme}
748
+ className="p-4 border rounded bg-[var(--background)] text-[var(--foreground)]"
749
+ >
750
+ <h3 className="font-bold mb-2 capitalize">{theme} Theme</h3>
751
+ <div className="grid grid-cols-[1fr_auto] min-h-[200px]">
752
+ <div className="p-2 text-sm">Main content</div>
753
+ <Panel defaultOpen width="sm">
754
+ <Panel.Content>
755
+ <Panel.Header>
756
+ <Panel.Title as="h4">Panel</Panel.Title>
757
+ </Panel.Header>
758
+ <Panel.Body>
759
+ <p className="text-sm">Theme: {theme}</p>
760
+ </Panel.Body>
761
+ </Panel.Content>
762
+ </Panel>
763
+ </div>
764
+ </div>
765
+ )
766
+ )}
767
+ </div>
768
+ ),
769
+ };