@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.
- package/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +114 -0
- package/dist/Carousel-NTZX5TOW.js +16 -0
- package/dist/Carousel-NTZX5TOW.js.map +1 -0
- package/dist/Carousel-YH3DOQJU.mjs +7 -0
- package/dist/Carousel-YH3DOQJU.mjs.map +1 -0
- package/dist/chunk-2HIUTHMU.mjs +234 -0
- package/dist/chunk-2HIUTHMU.mjs.map +1 -0
- package/dist/chunk-34GTFTDO.js +431 -0
- package/dist/chunk-34GTFTDO.js.map +1 -0
- package/dist/chunk-3H7ASYR7.js +250 -0
- package/dist/chunk-3H7ASYR7.js.map +1 -0
- package/dist/chunk-3IEN7JOP.js +316 -0
- package/dist/chunk-3IEN7JOP.js.map +1 -0
- package/dist/chunk-3JHN4GAL.js +326 -0
- package/dist/chunk-3JHN4GAL.js.map +1 -0
- package/dist/chunk-3MJPASQU.js +232 -0
- package/dist/chunk-3MJPASQU.js.map +1 -0
- package/dist/chunk-3XD2JUL3.js +572 -0
- package/dist/chunk-3XD2JUL3.js.map +1 -0
- package/dist/chunk-3YOY2VJ6.js +189 -0
- package/dist/chunk-3YOY2VJ6.js.map +1 -0
- package/dist/chunk-4DU5JSXB.js +408 -0
- package/dist/chunk-4DU5JSXB.js.map +1 -0
- package/dist/chunk-4E4E2GSS.js +352 -0
- package/dist/chunk-4E4E2GSS.js.map +1 -0
- package/dist/chunk-4NHAP4AN.mjs +3 -0
- package/dist/chunk-4NHAP4AN.mjs.map +1 -0
- package/dist/chunk-4S33J5NY.mjs +415 -0
- package/dist/chunk-4S33J5NY.mjs.map +1 -0
- package/dist/chunk-5SMGRT3G.mjs +354 -0
- package/dist/chunk-5SMGRT3G.mjs.map +1 -0
- package/dist/chunk-5SVLJN2C.mjs +22 -0
- package/dist/chunk-5SVLJN2C.mjs.map +1 -0
- package/dist/chunk-66WTU4EB.mjs +299 -0
- package/dist/chunk-66WTU4EB.mjs.map +1 -0
- package/dist/chunk-6S25NMOT.mjs +335 -0
- package/dist/chunk-6S25NMOT.mjs.map +1 -0
- package/dist/chunk-6SP7UB3D.js +4 -0
- package/dist/chunk-6SP7UB3D.js.map +1 -0
- package/dist/chunk-6TYWWQHM.mjs +565 -0
- package/dist/chunk-6TYWWQHM.mjs.map +1 -0
- package/dist/chunk-A3YUJA6W.mjs +384 -0
- package/dist/chunk-A3YUJA6W.mjs.map +1 -0
- package/dist/chunk-A6KEDVUR.js +61 -0
- package/dist/chunk-A6KEDVUR.js.map +1 -0
- package/dist/chunk-A77RUEWL.js +730 -0
- package/dist/chunk-A77RUEWL.js.map +1 -0
- package/dist/chunk-AA4IKMPE.mjs +3 -0
- package/dist/chunk-AA4IKMPE.mjs.map +1 -0
- package/dist/chunk-AKIA6GW6.mjs +163 -0
- package/dist/chunk-AKIA6GW6.mjs.map +1 -0
- package/dist/chunk-AL6P275L.mjs +435 -0
- package/dist/chunk-AL6P275L.mjs.map +1 -0
- package/dist/chunk-AZ3RJYTB.js +37 -0
- package/dist/chunk-AZ3RJYTB.js.map +1 -0
- package/dist/chunk-B5Q4UPL6.js +32 -0
- package/dist/chunk-B5Q4UPL6.js.map +1 -0
- package/dist/chunk-B6DHPMDP.mjs +335 -0
- package/dist/chunk-B6DHPMDP.mjs.map +1 -0
- package/dist/chunk-BDXKKMBZ.mjs +184 -0
- package/dist/chunk-BDXKKMBZ.mjs.map +1 -0
- package/dist/chunk-BL6E2DLZ.mjs +52 -0
- package/dist/chunk-BL6E2DLZ.mjs.map +1 -0
- package/dist/chunk-CGFDS4XS.mjs +121 -0
- package/dist/chunk-CGFDS4XS.mjs.map +1 -0
- package/dist/chunk-CJIW5TKI.js +139 -0
- package/dist/chunk-CJIW5TKI.js.map +1 -0
- package/dist/chunk-CKNISJOQ.js +314 -0
- package/dist/chunk-CKNISJOQ.js.map +1 -0
- package/dist/chunk-D6CBOECS.mjs +1757 -0
- package/dist/chunk-D6CBOECS.mjs.map +1 -0
- package/dist/chunk-DDWEVC2S.js +166 -0
- package/dist/chunk-DDWEVC2S.js.map +1 -0
- package/dist/chunk-DZ556D2F.mjs +176 -0
- package/dist/chunk-DZ556D2F.mjs.map +1 -0
- package/dist/chunk-E2KQFV3O.mjs +10 -0
- package/dist/chunk-E2KQFV3O.mjs.map +1 -0
- package/dist/chunk-EMMLADSC.js +126 -0
- package/dist/chunk-EMMLADSC.js.map +1 -0
- package/dist/chunk-EP4WOI5D.mjs +926 -0
- package/dist/chunk-EP4WOI5D.mjs.map +1 -0
- package/dist/chunk-FJRXLJC2.mjs +160 -0
- package/dist/chunk-FJRXLJC2.mjs.map +1 -0
- package/dist/chunk-FKQI434R.js +345 -0
- package/dist/chunk-FKQI434R.js.map +1 -0
- package/dist/chunk-FPKEAJRZ.mjs +100 -0
- package/dist/chunk-FPKEAJRZ.mjs.map +1 -0
- package/dist/chunk-FWQYB22U.js +183 -0
- package/dist/chunk-FWQYB22U.js.map +1 -0
- package/dist/chunk-GD5GHTMA.js +189 -0
- package/dist/chunk-GD5GHTMA.js.map +1 -0
- package/dist/chunk-GE5XTSDZ.js +447 -0
- package/dist/chunk-GE5XTSDZ.js.map +1 -0
- package/dist/chunk-GVE47ZAX.mjs +32 -0
- package/dist/chunk-GVE47ZAX.mjs.map +1 -0
- package/dist/chunk-HK46BT5U.mjs +18 -0
- package/dist/chunk-HK46BT5U.mjs.map +1 -0
- package/dist/chunk-HQVRMR6N.js +365 -0
- package/dist/chunk-HQVRMR6N.js.map +1 -0
- package/dist/chunk-HSGBJPJO.mjs +398 -0
- package/dist/chunk-HSGBJPJO.mjs.map +1 -0
- package/dist/chunk-I3AUTOMZ.mjs +125 -0
- package/dist/chunk-I3AUTOMZ.mjs.map +1 -0
- package/dist/chunk-IEI5LD5C.mjs +1161 -0
- package/dist/chunk-IEI5LD5C.mjs.map +1 -0
- package/dist/chunk-IIPTC2X7.mjs +118 -0
- package/dist/chunk-IIPTC2X7.mjs.map +1 -0
- package/dist/chunk-J7TLHF2Q.js +4 -0
- package/dist/chunk-J7TLHF2Q.js.map +1 -0
- package/dist/chunk-JJOWXFXQ.mjs +765 -0
- package/dist/chunk-JJOWXFXQ.mjs.map +1 -0
- package/dist/chunk-JPTSS2OA.mjs +3 -0
- package/dist/chunk-JPTSS2OA.mjs.map +1 -0
- package/dist/chunk-KFXXRLTP.js +396 -0
- package/dist/chunk-KFXXRLTP.js.map +1 -0
- package/dist/chunk-KPRRBSG6.mjs +272 -0
- package/dist/chunk-KPRRBSG6.mjs.map +1 -0
- package/dist/chunk-NFSBGRDB.mjs +57 -0
- package/dist/chunk-NFSBGRDB.mjs.map +1 -0
- package/dist/chunk-NGJVCFTM.js +219 -0
- package/dist/chunk-NGJVCFTM.js.map +1 -0
- package/dist/chunk-NSQ6MZJ6.mjs +728 -0
- package/dist/chunk-NSQ6MZJ6.mjs.map +1 -0
- package/dist/chunk-NYQYHT76.mjs +296 -0
- package/dist/chunk-NYQYHT76.mjs.map +1 -0
- package/dist/chunk-OLJJGI5B.js +1193 -0
- package/dist/chunk-OLJJGI5B.js.map +1 -0
- package/dist/chunk-Q3572X2J.js +292 -0
- package/dist/chunk-Q3572X2J.js.map +1 -0
- package/dist/chunk-QH7N7D4I.mjs +210 -0
- package/dist/chunk-QH7N7D4I.mjs.map +1 -0
- package/dist/chunk-R7XUIV25.js +466 -0
- package/dist/chunk-R7XUIV25.js.map +1 -0
- package/dist/chunk-RFFO4KPM.js +135 -0
- package/dist/chunk-RFFO4KPM.js.map +1 -0
- package/dist/chunk-RFX7QKA7.mjs +180 -0
- package/dist/chunk-RFX7QKA7.mjs.map +1 -0
- package/dist/chunk-SN5LFAP3.js +940 -0
- package/dist/chunk-SN5LFAP3.js.map +1 -0
- package/dist/chunk-T4COXKQ3.js +24 -0
- package/dist/chunk-T4COXKQ3.js.map +1 -0
- package/dist/chunk-TS54QM27.js +125 -0
- package/dist/chunk-TS54QM27.js.map +1 -0
- package/dist/chunk-UE2S4PCX.mjs +220 -0
- package/dist/chunk-UE2S4PCX.mjs.map +1 -0
- package/dist/chunk-UTW3QX2A.mjs +282 -0
- package/dist/chunk-UTW3QX2A.mjs.map +1 -0
- package/dist/chunk-V74LGMAE.js +1767 -0
- package/dist/chunk-V74LGMAE.js.map +1 -0
- package/dist/chunk-VIREG536.js +12 -0
- package/dist/chunk-VIREG536.js.map +1 -0
- package/dist/chunk-VY7M7346.js +4 -0
- package/dist/chunk-VY7M7346.js.map +1 -0
- package/dist/chunk-W3TJOO7H.mjs +319 -0
- package/dist/chunk-W3TJOO7H.mjs.map +1 -0
- package/dist/chunk-WIUOB36M.js +54 -0
- package/dist/chunk-WIUOB36M.js.map +1 -0
- package/dist/chunk-WJGLM4CY.js +291 -0
- package/dist/chunk-WJGLM4CY.js.map +1 -0
- package/dist/chunk-WNURH5OO.mjs +453 -0
- package/dist/chunk-WNURH5OO.mjs.map +1 -0
- package/dist/chunk-X25TNRSD.mjs +364 -0
- package/dist/chunk-X25TNRSD.mjs.map +1 -0
- package/dist/chunk-Y3GT7ETK.js +108 -0
- package/dist/chunk-Y3GT7ETK.js.map +1 -0
- package/dist/chunk-Z4FRNOF6.mjs +115 -0
- package/dist/chunk-Z4FRNOF6.mjs.map +1 -0
- package/dist/chunk-ZMYLD3BN.js +166 -0
- package/dist/chunk-ZMYLD3BN.js.map +1 -0
- package/dist/chunk-ZP2KV6EX.js +815 -0
- package/dist/chunk-ZP2KV6EX.js.map +1 -0
- package/dist/chunk-ZVKXFELU.js +366 -0
- package/dist/chunk-ZVKXFELU.js.map +1 -0
- package/dist/elements/Accordion/Accordion.d.ts +139 -0
- package/dist/elements/Accordion/Accordion.d.ts.map +1 -0
- package/dist/elements/Accordion/Accordion.types.d.ts +143 -0
- package/dist/elements/Accordion/Accordion.types.d.ts.map +1 -0
- package/dist/elements/Accordion/index.d.ts +13 -0
- package/dist/elements/Accordion/index.d.ts.map +1 -0
- package/dist/elements/Accordion/index.js +78 -0
- package/dist/elements/Accordion/index.js.map +1 -0
- package/dist/elements/Accordion/index.mjs +5 -0
- package/dist/elements/Accordion/index.mjs.map +1 -0
- package/dist/elements/Avatar/Avatar.d.ts +51 -0
- package/dist/elements/Avatar/Avatar.d.ts.map +1 -0
- package/dist/elements/Avatar/Avatar.types.d.ts +145 -0
- package/dist/elements/Avatar/Avatar.types.d.ts.map +1 -0
- package/dist/elements/Avatar/AvatarGroup.d.ts +32 -0
- package/dist/elements/Avatar/AvatarGroup.d.ts.map +1 -0
- package/dist/elements/Avatar/index.d.ts +11 -0
- package/dist/elements/Avatar/index.d.ts.map +1 -0
- package/dist/elements/Avatar/index.js +54 -0
- package/dist/elements/Avatar/index.js.map +1 -0
- package/dist/elements/Avatar/index.mjs +5 -0
- package/dist/elements/Avatar/index.mjs.map +1 -0
- package/dist/elements/Badge/Badge.d.ts +39 -0
- package/dist/elements/Badge/Badge.d.ts.map +1 -0
- package/dist/elements/Badge/Badge.types.d.ts +76 -0
- package/dist/elements/Badge/Badge.types.d.ts.map +1 -0
- package/dist/elements/Badge/index.d.ts +18 -0
- package/dist/elements/Badge/index.d.ts.map +1 -0
- package/dist/elements/Badge/index.js +43 -0
- package/dist/elements/Badge/index.js.map +1 -0
- package/dist/elements/Badge/index.mjs +6 -0
- package/dist/elements/Badge/index.mjs.map +1 -0
- package/dist/elements/Breadcrumbs/Breadcrumbs.d.ts +91 -0
- package/dist/elements/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
- package/dist/elements/Breadcrumbs/Breadcrumbs.types.d.ts +114 -0
- package/dist/elements/Breadcrumbs/Breadcrumbs.types.d.ts.map +1 -0
- package/dist/elements/Breadcrumbs/index.d.ts +14 -0
- package/dist/elements/Breadcrumbs/index.d.ts.map +1 -0
- package/dist/elements/Breadcrumbs/index.js +54 -0
- package/dist/elements/Breadcrumbs/index.js.map +1 -0
- package/dist/elements/Breadcrumbs/index.mjs +9 -0
- package/dist/elements/Breadcrumbs/index.mjs.map +1 -0
- package/dist/elements/Button/Button.d.ts +92 -0
- package/dist/elements/Button/Button.d.ts.map +1 -0
- package/dist/elements/Button/Button.types.d.ts +54 -0
- package/dist/elements/Button/Button.types.d.ts.map +1 -0
- package/dist/elements/Button/index.d.ts +18 -0
- package/dist/elements/Button/index.d.ts.map +1 -0
- package/dist/elements/Button/index.js +27 -0
- package/dist/elements/Button/index.js.map +1 -0
- package/dist/elements/Button/index.mjs +6 -0
- package/dist/elements/Button/index.mjs.map +1 -0
- package/dist/elements/ButtonGroup/ButtonGroup.d.ts +53 -0
- package/dist/elements/ButtonGroup/ButtonGroup.d.ts.map +1 -0
- package/dist/elements/ButtonGroup/ButtonGroup.types.d.ts +98 -0
- package/dist/elements/ButtonGroup/ButtonGroup.types.d.ts.map +1 -0
- package/dist/elements/ButtonGroup/ButtonGroup.utils.d.ts +60 -0
- package/dist/elements/ButtonGroup/ButtonGroup.utils.d.ts.map +1 -0
- package/dist/elements/ButtonGroup/ButtonGroup.variants.d.ts +39 -0
- package/dist/elements/ButtonGroup/ButtonGroup.variants.d.ts.map +1 -0
- package/dist/elements/ButtonGroup/ButtonGroupContext.d.ts +42 -0
- package/dist/elements/ButtonGroup/ButtonGroupContext.d.ts.map +1 -0
- package/dist/elements/ButtonGroup/index.d.ts +35 -0
- package/dist/elements/ButtonGroup/index.d.ts.map +1 -0
- package/dist/elements/ButtonGroup/index.js +66 -0
- package/dist/elements/ButtonGroup/index.js.map +1 -0
- package/dist/elements/ButtonGroup/index.mjs +5 -0
- package/dist/elements/ButtonGroup/index.mjs.map +1 -0
- package/dist/elements/Card/Card.d.ts +104 -0
- package/dist/elements/Card/Card.d.ts.map +1 -0
- package/dist/elements/Card/Card.types.d.ts +227 -0
- package/dist/elements/Card/Card.types.d.ts.map +1 -0
- package/dist/elements/Card/index.d.ts +38 -0
- package/dist/elements/Card/index.d.ts.map +1 -0
- package/dist/elements/Card/index.js +85 -0
- package/dist/elements/Card/index.js.map +1 -0
- package/dist/elements/Card/index.mjs +8 -0
- package/dist/elements/Card/index.mjs.map +1 -0
- package/dist/elements/Carousel/Carousel.d.ts +13 -0
- package/dist/elements/Carousel/Carousel.d.ts.map +1 -0
- package/dist/elements/Carousel/Carousel.types.d.ts +65 -0
- package/dist/elements/Carousel/Carousel.types.d.ts.map +1 -0
- package/dist/elements/Carousel/LazyCarousel.d.ts +46 -0
- package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -0
- package/dist/elements/Carousel/index.d.ts +5 -0
- package/dist/elements/Carousel/index.d.ts.map +1 -0
- package/dist/elements/Carousel/index.js +23 -0
- package/dist/elements/Carousel/index.js.map +1 -0
- package/dist/elements/Carousel/index.mjs +10 -0
- package/dist/elements/Carousel/index.mjs.map +1 -0
- package/dist/elements/Chart/Chart.d.ts +44 -0
- package/dist/elements/Chart/Chart.d.ts.map +1 -0
- package/dist/elements/Chart/Chart.types.d.ts +254 -0
- package/dist/elements/Chart/Chart.types.d.ts.map +1 -0
- package/dist/elements/Chart/ChartAnnouncer.d.ts +24 -0
- package/dist/elements/Chart/ChartAnnouncer.d.ts.map +1 -0
- package/dist/elements/Chart/ChartAxis.d.ts +42 -0
- package/dist/elements/Chart/ChartAxis.d.ts.map +1 -0
- package/dist/elements/Chart/ChartBarSeries.d.ts +54 -0
- package/dist/elements/Chart/ChartBarSeries.d.ts.map +1 -0
- package/dist/elements/Chart/ChartContext.d.ts +46 -0
- package/dist/elements/Chart/ChartContext.d.ts.map +1 -0
- package/dist/elements/Chart/ChartDataPoint.d.ts +56 -0
- package/dist/elements/Chart/ChartDataPoint.d.ts.map +1 -0
- package/dist/elements/Chart/ChartDataTable.d.ts +35 -0
- package/dist/elements/Chart/ChartDataTable.d.ts.map +1 -0
- package/dist/elements/Chart/ChartGrid.d.ts +32 -0
- package/dist/elements/Chart/ChartGrid.d.ts.map +1 -0
- package/dist/elements/Chart/ChartLegend.d.ts +32 -0
- package/dist/elements/Chart/ChartLegend.d.ts.map +1 -0
- package/dist/elements/Chart/ChartLineSeries.d.ts +52 -0
- package/dist/elements/Chart/ChartLineSeries.d.ts.map +1 -0
- package/dist/elements/Chart/ChartSVG.d.ts +62 -0
- package/dist/elements/Chart/ChartSVG.d.ts.map +1 -0
- package/dist/elements/Chart/ChartTooltip.d.ts +45 -0
- package/dist/elements/Chart/ChartTooltip.d.ts.map +1 -0
- package/dist/elements/Chart/chart.constants.d.ts +108 -0
- package/dist/elements/Chart/chart.constants.d.ts.map +1 -0
- package/dist/elements/Chart/chart.variants.d.ts +45 -0
- package/dist/elements/Chart/chart.variants.d.ts.map +1 -0
- package/dist/elements/Chart/index.d.ts +12 -0
- package/dist/elements/Chart/index.d.ts.map +1 -0
- package/dist/elements/Chart/index.js +47 -0
- package/dist/elements/Chart/index.js.map +1 -0
- package/dist/elements/Chart/index.mjs +6 -0
- package/dist/elements/Chart/index.mjs.map +1 -0
- package/dist/elements/Chart/useChartDimensions.d.ts +18 -0
- package/dist/elements/Chart/useChartDimensions.d.ts.map +1 -0
- package/dist/elements/Chart/useChartKeyboard.d.ts +42 -0
- package/dist/elements/Chart/useChartKeyboard.d.ts.map +1 -0
- package/dist/elements/Chart/useRovingTabIndex.d.ts +46 -0
- package/dist/elements/Chart/useRovingTabIndex.d.ts.map +1 -0
- package/dist/elements/Checkbox/Checkbox.d.ts +94 -0
- package/dist/elements/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/elements/Checkbox/Checkbox.types.d.ts +82 -0
- package/dist/elements/Checkbox/Checkbox.types.d.ts.map +1 -0
- package/dist/elements/Checkbox/index.d.ts +7 -0
- package/dist/elements/Checkbox/index.d.ts.map +1 -0
- package/dist/elements/Checkbox/index.js +47 -0
- package/dist/elements/Checkbox/index.js.map +1 -0
- package/dist/elements/Checkbox/index.mjs +6 -0
- package/dist/elements/Checkbox/index.mjs.map +1 -0
- package/dist/elements/CheckboxGroup/CheckboxGroup.d.ts +130 -0
- package/dist/elements/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
- package/dist/elements/CheckboxGroup/CheckboxGroup.types.d.ts +142 -0
- package/dist/elements/CheckboxGroup/CheckboxGroup.types.d.ts.map +1 -0
- package/dist/elements/CheckboxGroup/index.d.ts +10 -0
- package/dist/elements/CheckboxGroup/index.d.ts.map +1 -0
- package/dist/elements/CheckboxGroup/index.js +71 -0
- package/dist/elements/CheckboxGroup/index.js.map +1 -0
- package/dist/elements/CheckboxGroup/index.mjs +6 -0
- package/dist/elements/CheckboxGroup/index.mjs.map +1 -0
- package/dist/elements/DatePicker/Calendar.d.ts +16 -0
- package/dist/elements/DatePicker/Calendar.d.ts.map +1 -0
- package/dist/elements/DatePicker/DateField.d.ts +13 -0
- package/dist/elements/DatePicker/DateField.d.ts.map +1 -0
- package/dist/elements/DatePicker/DatePicker.d.ts +16 -0
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/elements/DatePicker/DatePicker.types.d.ts +390 -0
- package/dist/elements/DatePicker/DatePicker.types.d.ts.map +1 -0
- package/dist/elements/DatePicker/DatePicker.variants.d.ts +42 -0
- package/dist/elements/DatePicker/DatePicker.variants.d.ts.map +1 -0
- package/dist/elements/DatePicker/DateRangePicker.d.ts +13 -0
- package/dist/elements/DatePicker/DateRangePicker.d.ts.map +1 -0
- package/dist/elements/DatePicker/index.d.ts +14 -0
- package/dist/elements/DatePicker/index.d.ts.map +1 -0
- package/dist/elements/DatePicker/index.js +123 -0
- package/dist/elements/DatePicker/index.js.map +1 -0
- package/dist/elements/DatePicker/index.mjs +6 -0
- package/dist/elements/DatePicker/index.mjs.map +1 -0
- package/dist/elements/Dropdown/Dropdown.d.ts +197 -0
- package/dist/elements/Dropdown/Dropdown.d.ts.map +1 -0
- package/dist/elements/Dropdown/Dropdown.types.d.ts +175 -0
- package/dist/elements/Dropdown/Dropdown.types.d.ts.map +1 -0
- package/dist/elements/Dropdown/index.d.ts +12 -0
- package/dist/elements/Dropdown/index.d.ts.map +1 -0
- package/dist/elements/Dropdown/index.js +41 -0
- package/dist/elements/Dropdown/index.js.map +1 -0
- package/dist/elements/Dropdown/index.mjs +4 -0
- package/dist/elements/Dropdown/index.mjs.map +1 -0
- package/dist/elements/FileField/FileField.d.ts +46 -0
- package/dist/elements/FileField/FileField.d.ts.map +1 -0
- package/dist/elements/FileField/FileField.types.d.ts +99 -0
- package/dist/elements/FileField/FileField.types.d.ts.map +1 -0
- package/dist/elements/FileField/FileField.variants.d.ts +49 -0
- package/dist/elements/FileField/FileField.variants.d.ts.map +1 -0
- package/dist/elements/FileField/FilePreview.d.ts +27 -0
- package/dist/elements/FileField/FilePreview.d.ts.map +1 -0
- package/dist/elements/FileField/FileProgress.d.ts +35 -0
- package/dist/elements/FileField/FileProgress.d.ts.map +1 -0
- package/dist/elements/FileField/FileProgress.variants.d.ts +55 -0
- package/dist/elements/FileField/FileProgress.variants.d.ts.map +1 -0
- package/dist/elements/FileField/index.d.ts +41 -0
- package/dist/elements/FileField/index.d.ts.map +1 -0
- package/dist/elements/FileField/index.js +138 -0
- package/dist/elements/FileField/index.js.map +1 -0
- package/dist/elements/FileField/index.mjs +9 -0
- package/dist/elements/FileField/index.mjs.map +1 -0
- package/dist/elements/FileField/useFilePreview.d.ts +46 -0
- package/dist/elements/FileField/useFilePreview.d.ts.map +1 -0
- package/dist/elements/FileField/utils.d.ts +134 -0
- package/dist/elements/FileField/utils.d.ts.map +1 -0
- package/dist/elements/FormLayout/FormLayout.d.ts +51 -0
- package/dist/elements/FormLayout/FormLayout.d.ts.map +1 -0
- package/dist/elements/FormLayout/FormLayout.types.d.ts +66 -0
- package/dist/elements/FormLayout/FormLayout.types.d.ts.map +1 -0
- package/dist/elements/FormLayout/index.d.ts +3 -0
- package/dist/elements/FormLayout/index.d.ts.map +1 -0
- package/dist/elements/FormLayout/index.js +17 -0
- package/dist/elements/FormLayout/index.js.map +1 -0
- package/dist/elements/FormLayout/index.mjs +4 -0
- package/dist/elements/FormLayout/index.mjs.map +1 -0
- package/dist/elements/Modal/Modal.d.ts +168 -0
- package/dist/elements/Modal/Modal.d.ts.map +1 -0
- package/dist/elements/Modal/Modal.types.d.ts +265 -0
- package/dist/elements/Modal/Modal.types.d.ts.map +1 -0
- package/dist/elements/Modal/index.d.ts +14 -0
- package/dist/elements/Modal/index.d.ts.map +1 -0
- package/dist/elements/Modal/index.js +52 -0
- package/dist/elements/Modal/index.js.map +1 -0
- package/dist/elements/Modal/index.mjs +3 -0
- package/dist/elements/Modal/index.mjs.map +1 -0
- package/dist/elements/NumberField/NumberField.d.ts +43 -0
- package/dist/elements/NumberField/NumberField.d.ts.map +1 -0
- package/dist/elements/NumberField/NumberField.types.d.ts +112 -0
- package/dist/elements/NumberField/NumberField.types.d.ts.map +1 -0
- package/dist/elements/NumberField/NumberField.variants.d.ts +82 -0
- package/dist/elements/NumberField/NumberField.variants.d.ts.map +1 -0
- package/dist/elements/NumberField/index.d.ts +25 -0
- package/dist/elements/NumberField/index.d.ts.map +1 -0
- package/dist/elements/NumberField/index.js +57 -0
- package/dist/elements/NumberField/index.js.map +1 -0
- package/dist/elements/NumberField/index.mjs +8 -0
- package/dist/elements/NumberField/index.mjs.map +1 -0
- package/dist/elements/OTPInput/OTPInput.d.ts +105 -0
- package/dist/elements/OTPInput/OTPInput.d.ts.map +1 -0
- package/dist/elements/OTPInput/OTPInput.styles.d.ts +83 -0
- package/dist/elements/OTPInput/OTPInput.styles.d.ts.map +1 -0
- package/dist/elements/OTPInput/OTPInput.types.d.ts +189 -0
- package/dist/elements/OTPInput/OTPInput.types.d.ts.map +1 -0
- package/dist/elements/OTPInput/components/OTPDigit.d.ts +51 -0
- package/dist/elements/OTPInput/components/OTPDigit.d.ts.map +1 -0
- package/dist/elements/OTPInput/hooks/useOTPInput.d.ts +36 -0
- package/dist/elements/OTPInput/hooks/useOTPInput.d.ts.map +1 -0
- package/dist/elements/OTPInput/hooks/useOTPKeyboard.d.ts +59 -0
- package/dist/elements/OTPInput/hooks/useOTPKeyboard.d.ts.map +1 -0
- package/dist/elements/OTPInput/index.d.ts +27 -0
- package/dist/elements/OTPInput/index.d.ts.map +1 -0
- package/dist/elements/OTPInput/index.js +13 -0
- package/dist/elements/OTPInput/index.js.map +1 -0
- package/dist/elements/OTPInput/index.mjs +4 -0
- package/dist/elements/OTPInput/index.mjs.map +1 -0
- package/dist/elements/Panel/Panel.d.ts +111 -0
- package/dist/elements/Panel/Panel.d.ts.map +1 -0
- package/dist/elements/Panel/Panel.types.d.ts +243 -0
- package/dist/elements/Panel/Panel.types.d.ts.map +1 -0
- package/dist/elements/Panel/index.d.ts +4 -0
- package/dist/elements/Panel/index.d.ts.map +1 -0
- package/dist/elements/Panel/index.js +33 -0
- package/dist/elements/Panel/index.js.map +1 -0
- package/dist/elements/Panel/index.mjs +4 -0
- package/dist/elements/Panel/index.mjs.map +1 -0
- package/dist/elements/Progress/Progress.d.ts +44 -0
- package/dist/elements/Progress/Progress.d.ts.map +1 -0
- package/dist/elements/Progress/Progress.types.d.ts +64 -0
- package/dist/elements/Progress/Progress.types.d.ts.map +1 -0
- package/dist/elements/Progress/index.d.ts +11 -0
- package/dist/elements/Progress/index.d.ts.map +1 -0
- package/dist/elements/Progress/index.js +30 -0
- package/dist/elements/Progress/index.js.map +1 -0
- package/dist/elements/Progress/index.mjs +5 -0
- package/dist/elements/Progress/index.mjs.map +1 -0
- package/dist/elements/RadioGroup/RadioGroup.d.ts +110 -0
- package/dist/elements/RadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/elements/RadioGroup/RadioGroup.types.d.ts +143 -0
- package/dist/elements/RadioGroup/RadioGroup.types.d.ts.map +1 -0
- package/dist/elements/RadioGroup/index.d.ts +10 -0
- package/dist/elements/RadioGroup/index.d.ts.map +1 -0
- package/dist/elements/RadioGroup/index.js +47 -0
- package/dist/elements/RadioGroup/index.js.map +1 -0
- package/dist/elements/RadioGroup/index.mjs +6 -0
- package/dist/elements/RadioGroup/index.mjs.map +1 -0
- package/dist/elements/Resizable/Resizable.types.d.ts +188 -0
- package/dist/elements/Resizable/Resizable.types.d.ts.map +1 -0
- package/dist/elements/Resizable/components/ResizableHandle.d.ts +28 -0
- package/dist/elements/Resizable/components/ResizableHandle.d.ts.map +1 -0
- package/dist/elements/Resizable/components/ResizablePanel.d.ts +24 -0
- package/dist/elements/Resizable/components/ResizablePanel.d.ts.map +1 -0
- package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts +26 -0
- package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts.map +1 -0
- package/dist/elements/Resizable/components/ResizablePopover.d.ts +45 -0
- package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -0
- package/dist/elements/Resizable/hooks/useResizable.d.ts +50 -0
- package/dist/elements/Resizable/hooks/useResizable.d.ts.map +1 -0
- package/dist/elements/Resizable/hooks/useResizableContext.d.ts +36 -0
- package/dist/elements/Resizable/hooks/useResizableContext.d.ts.map +1 -0
- package/dist/elements/Resizable/index.d.ts +37 -0
- package/dist/elements/Resizable/index.d.ts.map +1 -0
- package/dist/elements/Resizable/index.js +65 -0
- package/dist/elements/Resizable/index.js.map +1 -0
- package/dist/elements/Resizable/index.mjs +8 -0
- package/dist/elements/Resizable/index.mjs.map +1 -0
- package/dist/elements/Select/Select.d.ts +184 -0
- package/dist/elements/Select/Select.d.ts.map +1 -0
- package/dist/elements/Select/Select.types.d.ts +166 -0
- package/dist/elements/Select/Select.types.d.ts.map +1 -0
- package/dist/elements/Select/index.d.ts +35 -0
- package/dist/elements/Select/index.d.ts.map +1 -0
- package/dist/elements/Select/index.js +33 -0
- package/dist/elements/Select/index.js.map +1 -0
- package/dist/elements/Select/index.mjs +4 -0
- package/dist/elements/Select/index.mjs.map +1 -0
- package/dist/elements/Skeleton/Skeleton.d.ts +31 -0
- package/dist/elements/Skeleton/Skeleton.d.ts.map +1 -0
- package/dist/elements/Skeleton/Skeleton.types.d.ts +36 -0
- package/dist/elements/Skeleton/Skeleton.types.d.ts.map +1 -0
- package/dist/elements/Skeleton/index.d.ts +11 -0
- package/dist/elements/Skeleton/index.d.ts.map +1 -0
- package/dist/elements/Skeleton/index.js +22 -0
- package/dist/elements/Skeleton/index.js.map +1 -0
- package/dist/elements/Skeleton/index.mjs +5 -0
- package/dist/elements/Skeleton/index.mjs.map +1 -0
- package/dist/elements/Switch/Switch.d.ts +39 -0
- package/dist/elements/Switch/Switch.d.ts.map +1 -0
- package/dist/elements/Switch/Switch.types.d.ts +53 -0
- package/dist/elements/Switch/Switch.types.d.ts.map +1 -0
- package/dist/elements/Switch/index.d.ts +8 -0
- package/dist/elements/Switch/index.d.ts.map +1 -0
- package/dist/elements/Switch/index.js +49 -0
- package/dist/elements/Switch/index.js.map +1 -0
- package/dist/elements/Switch/index.mjs +31 -0
- package/dist/elements/Switch/index.mjs.map +1 -0
- package/dist/elements/Table/Table.d.ts +123 -0
- package/dist/elements/Table/Table.d.ts.map +1 -0
- package/dist/elements/Table/Table.types.d.ts +356 -0
- package/dist/elements/Table/Table.types.d.ts.map +1 -0
- package/dist/elements/Table/index.d.ts +5 -0
- package/dist/elements/Table/index.d.ts.map +1 -0
- package/dist/elements/Table/index.js +76 -0
- package/dist/elements/Table/index.js.map +1 -0
- package/dist/elements/Table/index.mjs +7 -0
- package/dist/elements/Table/index.mjs.map +1 -0
- package/dist/elements/Tabs/Tabs.d.ts +129 -0
- package/dist/elements/Tabs/Tabs.d.ts.map +1 -0
- package/dist/elements/Tabs/Tabs.types.d.ts +179 -0
- package/dist/elements/Tabs/Tabs.types.d.ts.map +1 -0
- package/dist/elements/Tabs/index.d.ts +12 -0
- package/dist/elements/Tabs/index.d.ts.map +1 -0
- package/dist/elements/Tabs/index.js +74 -0
- package/dist/elements/Tabs/index.js.map +1 -0
- package/dist/elements/Tabs/index.mjs +5 -0
- package/dist/elements/Tabs/index.mjs.map +1 -0
- package/dist/elements/TextField/TextField.d.ts +155 -0
- package/dist/elements/TextField/TextField.d.ts.map +1 -0
- package/dist/elements/TextField/TextField.types.d.ts +258 -0
- package/dist/elements/TextField/TextField.types.d.ts.map +1 -0
- package/dist/elements/TextField/index.css +23 -0
- package/dist/elements/TextField/index.css.map +1 -0
- package/dist/elements/TextField/index.d.ts +13 -0
- package/dist/elements/TextField/index.d.ts.map +1 -0
- package/dist/elements/TextField/index.js +260 -0
- package/dist/elements/TextField/index.js.map +1 -0
- package/dist/elements/TextField/index.mjs +207 -0
- package/dist/elements/TextField/index.mjs.map +1 -0
- package/dist/elements/TimeField/TimeField.d.ts +34 -0
- package/dist/elements/TimeField/TimeField.d.ts.map +1 -0
- package/dist/elements/TimeField/TimeField.types.d.ts +151 -0
- package/dist/elements/TimeField/TimeField.types.d.ts.map +1 -0
- package/dist/elements/TimeField/index.d.ts +24 -0
- package/dist/elements/TimeField/index.d.ts.map +1 -0
- package/dist/elements/TimeField/index.js +45 -0
- package/dist/elements/TimeField/index.js.map +1 -0
- package/dist/elements/TimeField/index.mjs +4 -0
- package/dist/elements/TimeField/index.mjs.map +1 -0
- package/dist/elements/Toast/Toast.d.ts +105 -0
- package/dist/elements/Toast/Toast.d.ts.map +1 -0
- package/dist/elements/Toast/Toast.types.d.ts +209 -0
- package/dist/elements/Toast/Toast.types.d.ts.map +1 -0
- package/dist/elements/Toast/ToastProvider.d.ts +37 -0
- package/dist/elements/Toast/ToastProvider.d.ts.map +1 -0
- package/dist/elements/Toast/Toaster.d.ts +18 -0
- package/dist/elements/Toast/Toaster.d.ts.map +1 -0
- package/dist/elements/Toast/index.d.ts +27 -0
- package/dist/elements/Toast/index.d.ts.map +1 -0
- package/dist/elements/Toast/index.js +60 -0
- package/dist/elements/Toast/index.js.map +1 -0
- package/dist/elements/Toast/index.mjs +7 -0
- package/dist/elements/Toast/index.mjs.map +1 -0
- package/dist/elements/Tooltip/Tooltip.d.ts +108 -0
- package/dist/elements/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/elements/Tooltip/Tooltip.types.d.ts +135 -0
- package/dist/elements/Tooltip/Tooltip.types.d.ts.map +1 -0
- package/dist/elements/Tooltip/index.d.ts +11 -0
- package/dist/elements/Tooltip/index.d.ts.map +1 -0
- package/dist/elements/Tooltip/index.js +59 -0
- package/dist/elements/Tooltip/index.js.map +1 -0
- package/dist/elements/Tooltip/index.mjs +6 -0
- package/dist/elements/Tooltip/index.mjs.map +1 -0
- package/dist/elements/index.css +23 -0
- package/dist/elements/index.css.map +1 -0
- package/dist/elements/index.d.ts +42 -0
- package/dist/elements/index.d.ts.map +1 -0
- package/dist/elements/index.js +839 -0
- package/dist/elements/index.js.map +1 -0
- package/dist/elements/index.mjs +42 -0
- package/dist/elements/index.mjs.map +1 -0
- package/dist/index.css +23 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +865 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +44 -0
- package/dist/index.mjs.map +1 -0
- package/dist/schemas/BaseComponentProps.d.ts +25 -0
- package/dist/schemas/BaseComponentProps.d.ts.map +1 -0
- package/dist/schemas/RegistryItem.d.ts +55 -0
- package/dist/schemas/RegistryItem.d.ts.map +1 -0
- package/dist/schemas/index.d.ts +3 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +29 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/index.mjs +4 -0
- package/dist/schemas/index.mjs.map +1 -0
- package/dist/styles/defaults.css +174 -0
- package/dist/styles/index.d.ts +7 -0
- package/dist/styles/index.d.ts.map +1 -0
- package/dist/styles/index.js +153 -0
- package/dist/styles/index.js.map +1 -0
- package/dist/styles/index.mjs +4 -0
- package/dist/styles/index.mjs.map +1 -0
- package/dist/styles/interaction-states.d.ts +96 -0
- package/dist/styles/interaction-states.d.ts.map +1 -0
- package/dist/styles/shared-variants.d.ts +120 -0
- package/dist/styles/shared-variants.d.ts.map +1 -0
- package/dist/styles/tokens.css +89 -0
- package/dist/utils/cn.d.ts +13 -0
- package/dist/utils/cn.d.ts.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +13 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +4 -0
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +228 -0
- package/src/elements/Accordion/Accordion.stories.tsx +793 -0
- package/src/elements/Avatar/Avatar.stories.tsx +408 -0
- package/src/elements/Badge/Badge.stories.tsx +509 -0
- package/src/elements/Breadcrumbs/Breadcrumbs.stories.tsx +623 -0
- package/src/elements/Button/Button.stories.tsx +670 -0
- package/src/elements/ButtonGroup/ButtonGroup.stories.tsx +658 -0
- package/src/elements/Card/Card.stories.tsx +570 -0
- package/src/elements/Carousel/Carousel.stories.tsx +597 -0
- package/src/elements/Chart/Chart.stories.tsx +616 -0
- package/src/elements/Checkbox/Checkbox.stories.tsx +514 -0
- package/src/elements/CheckboxGroup/CheckboxGroup.stories.tsx +1514 -0
- package/src/elements/DatePicker/DatePicker.stories.tsx +341 -0
- package/src/elements/Dropdown/Dropdown.stories.tsx +397 -0
- package/src/elements/FileField/FileField.stories.tsx +1021 -0
- package/src/elements/FileField/FileProgress.stories.tsx +359 -0
- package/src/elements/FormLayout/FormLayout.stories.tsx +637 -0
- package/src/elements/Modal/Modal.stories.tsx +640 -0
- package/src/elements/NumberField/NumberField.stories.tsx +678 -0
- package/src/elements/OTPInput/OTPInput.stories.tsx +404 -0
- package/src/elements/Panel/Panel.stories.tsx +769 -0
- package/src/elements/Progress/Progress.stories.tsx +668 -0
- package/src/elements/RadioGroup/RadioGroup.stories.tsx +1153 -0
- package/src/elements/Resizable/Resizable.stories.tsx +374 -0
- package/src/elements/Select/Select.stories.tsx +362 -0
- package/src/elements/Skeleton/Skeleton.stories.tsx +284 -0
- package/src/elements/Switch/Switch.stories.tsx +441 -0
- package/src/elements/Table/Table.stories.tsx +790 -0
- package/src/elements/Tabs/Tabs.stories.tsx +661 -0
- package/src/elements/TextField/TextField.stories.tsx +1878 -0
- package/src/elements/TimeField/TimeField.stories.tsx +671 -0
- package/src/elements/Toast/Toast.stories.tsx +971 -0
- package/src/elements/Tooltip/Tooltip.stories.tsx +748 -0
- package/tailwind.config.js +10 -0
- package/tailwind.config.v3.js +10 -0
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Carousel Component Stories
|
|
3
|
+
* Storybook stories for Carousel component demonstrating all features
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { Meta, StoryObj } from '@storybook/nextjs';
|
|
7
|
+
import { Carousel } from './Carousel';
|
|
8
|
+
import { useState } from 'react';
|
|
9
|
+
|
|
10
|
+
const meta = {
|
|
11
|
+
title: 'Elements/Carousel',
|
|
12
|
+
component: Carousel,
|
|
13
|
+
parameters: {
|
|
14
|
+
layout: 'centered',
|
|
15
|
+
docs: {
|
|
16
|
+
description: {
|
|
17
|
+
component:
|
|
18
|
+
'Accessible carousel component for rotating content with auto-rotation, manual navigation, and full React Node support. Compliant with WCAG 2.2 AA standards.',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
tags: ['autodocs'],
|
|
23
|
+
argTypes: {
|
|
24
|
+
items: {
|
|
25
|
+
control: false,
|
|
26
|
+
description: 'Array of React nodes to display as carousel items',
|
|
27
|
+
},
|
|
28
|
+
autoRotateInterval: {
|
|
29
|
+
control: 'number',
|
|
30
|
+
description: 'Auto-rotation interval in milliseconds (0 to disable)',
|
|
31
|
+
table: {
|
|
32
|
+
defaultValue: { summary: '5000' },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
defaultIndex: {
|
|
36
|
+
control: 'number',
|
|
37
|
+
description: 'Initial slide index (uncontrolled mode)',
|
|
38
|
+
table: {
|
|
39
|
+
defaultValue: { summary: '0' },
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
showNavigation: {
|
|
43
|
+
control: 'boolean',
|
|
44
|
+
description: 'Show navigation dots',
|
|
45
|
+
table: {
|
|
46
|
+
defaultValue: { summary: 'true' },
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
showPlayPause: {
|
|
50
|
+
control: 'boolean',
|
|
51
|
+
description: 'Show play/pause button',
|
|
52
|
+
table: {
|
|
53
|
+
defaultValue: { summary: 'true' },
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
respectReducedMotion: {
|
|
57
|
+
control: 'boolean',
|
|
58
|
+
description: 'Respect prefers-reduced-motion setting',
|
|
59
|
+
table: {
|
|
60
|
+
defaultValue: { summary: 'true' },
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
label: {
|
|
64
|
+
control: 'text',
|
|
65
|
+
description: 'Accessible label for the carousel',
|
|
66
|
+
table: {
|
|
67
|
+
defaultValue: { summary: 'Carousel' },
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
collapsible: {
|
|
71
|
+
control: 'boolean',
|
|
72
|
+
description: 'Enable minimize/maximize feature',
|
|
73
|
+
table: {
|
|
74
|
+
defaultValue: { summary: 'false' },
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
defaultMinimized: {
|
|
78
|
+
control: 'boolean',
|
|
79
|
+
description: 'Start in minimized state (uncontrolled mode)',
|
|
80
|
+
table: {
|
|
81
|
+
defaultValue: { summary: 'false' },
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
isMinimized: {
|
|
85
|
+
control: 'boolean',
|
|
86
|
+
description: 'Controlled minimized state',
|
|
87
|
+
},
|
|
88
|
+
minimizedLabel: {
|
|
89
|
+
control: 'text',
|
|
90
|
+
description: 'Label shown when carousel is minimized',
|
|
91
|
+
table: {
|
|
92
|
+
defaultValue: { summary: 'Carousel (minimized)' },
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
} satisfies Meta<typeof Carousel>;
|
|
97
|
+
|
|
98
|
+
export default meta;
|
|
99
|
+
type Story = StoryObj<typeof meta>;
|
|
100
|
+
|
|
101
|
+
// Simple text items
|
|
102
|
+
const textItems = [
|
|
103
|
+
<div key="1">Welcome to our platform</div>,
|
|
104
|
+
<div key="2">Discover amazing features</div>,
|
|
105
|
+
<div key="3">Get started today</div>,
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
// Rich content items
|
|
109
|
+
const richItems = [
|
|
110
|
+
<div key="1" className="space-y-2">
|
|
111
|
+
<h3 className="text-lg font-semibold">Welcome</h3>
|
|
112
|
+
<p className="text-sm">Start your journey with us today</p>
|
|
113
|
+
</div>,
|
|
114
|
+
<div key="2" className="space-y-2">
|
|
115
|
+
<h3 className="text-lg font-semibold">Explore</h3>
|
|
116
|
+
<p className="text-sm">Discover powerful features and tools</p>
|
|
117
|
+
</div>,
|
|
118
|
+
<div key="3" className="space-y-2">
|
|
119
|
+
<h3 className="text-lg font-semibold">Achieve</h3>
|
|
120
|
+
<p className="text-sm">Reach your goals with our platform</p>
|
|
121
|
+
</div>,
|
|
122
|
+
];
|
|
123
|
+
|
|
124
|
+
// Complex component items
|
|
125
|
+
const complexItems = [
|
|
126
|
+
<div key="1" className="flex items-center gap-4">
|
|
127
|
+
<div className="w-12 h-12 rounded-full bg-[var(--primary)] flex items-center justify-center text-[var(--primary-foreground)] font-bold">
|
|
128
|
+
1
|
|
129
|
+
</div>
|
|
130
|
+
<div>
|
|
131
|
+
<h4 className="font-semibold">Step One</h4>
|
|
132
|
+
<p className="text-sm">Create your account</p>
|
|
133
|
+
</div>
|
|
134
|
+
</div>,
|
|
135
|
+
<div key="2" className="flex items-center gap-4">
|
|
136
|
+
<div className="w-12 h-12 rounded-full bg-[var(--primary)] flex items-center justify-center text-[var(--primary-foreground)] font-bold">
|
|
137
|
+
2
|
|
138
|
+
</div>
|
|
139
|
+
<div>
|
|
140
|
+
<h4 className="font-semibold">Step Two</h4>
|
|
141
|
+
<p className="text-sm">Set up your profile</p>
|
|
142
|
+
</div>
|
|
143
|
+
</div>,
|
|
144
|
+
<div key="3" className="flex items-center gap-4">
|
|
145
|
+
<div className="w-12 h-12 rounded-full bg-[var(--primary)] flex items-center justify-center text-[var(--primary-foreground)] font-bold">
|
|
146
|
+
3
|
|
147
|
+
</div>
|
|
148
|
+
<div>
|
|
149
|
+
<h4 className="font-semibold">Step Three</h4>
|
|
150
|
+
<p className="text-sm">Start exploring</p>
|
|
151
|
+
</div>
|
|
152
|
+
</div>,
|
|
153
|
+
];
|
|
154
|
+
|
|
155
|
+
export const Default: Story = {
|
|
156
|
+
args: {
|
|
157
|
+
items: textItems,
|
|
158
|
+
autoRotateInterval: 5000,
|
|
159
|
+
showNavigation: true,
|
|
160
|
+
showPlayPause: true,
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
export const RichContent: Story = {
|
|
165
|
+
args: {
|
|
166
|
+
items: richItems,
|
|
167
|
+
autoRotateInterval: 5000,
|
|
168
|
+
label: 'Feature highlights',
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export const ComplexComponents: Story = {
|
|
173
|
+
args: {
|
|
174
|
+
items: complexItems,
|
|
175
|
+
autoRotateInterval: 5000,
|
|
176
|
+
label: 'Onboarding steps',
|
|
177
|
+
},
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
export const FastRotation: Story = {
|
|
181
|
+
args: {
|
|
182
|
+
items: textItems,
|
|
183
|
+
autoRotateInterval: 2000,
|
|
184
|
+
label: 'Fast rotating carousel',
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export const NoAutoRotation: Story = {
|
|
189
|
+
args: {
|
|
190
|
+
items: textItems,
|
|
191
|
+
autoRotateInterval: 0,
|
|
192
|
+
label: 'Manual navigation only',
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
export const NoNavigation: Story = {
|
|
197
|
+
args: {
|
|
198
|
+
items: textItems,
|
|
199
|
+
showNavigation: false,
|
|
200
|
+
autoRotateInterval: 5000,
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export const NoPlayPause: Story = {
|
|
205
|
+
args: {
|
|
206
|
+
items: textItems,
|
|
207
|
+
showPlayPause: false,
|
|
208
|
+
autoRotateInterval: 5000,
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
export const SingleItem: Story = {
|
|
213
|
+
args: {
|
|
214
|
+
items: [<div key="1">Only one item</div>],
|
|
215
|
+
autoRotateInterval: 5000,
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
export const StartAtSecondSlide: Story = {
|
|
220
|
+
args: {
|
|
221
|
+
items: textItems,
|
|
222
|
+
defaultIndex: 1,
|
|
223
|
+
autoRotateInterval: 5000,
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
export const CustomSlideLabels: Story = {
|
|
228
|
+
args: {
|
|
229
|
+
items: textItems,
|
|
230
|
+
slideLabel: (index: number, total: number) => `Item ${index + 1} of ${total}`,
|
|
231
|
+
autoRotateInterval: 5000,
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
// Controlled example
|
|
236
|
+
export const Controlled: Story = {
|
|
237
|
+
render: function ControlledCarousel() {
|
|
238
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
239
|
+
const [isPaused, setIsPaused] = useState(false);
|
|
240
|
+
|
|
241
|
+
return (
|
|
242
|
+
<div className="space-y-4">
|
|
243
|
+
<Carousel
|
|
244
|
+
items={textItems}
|
|
245
|
+
currentIndex={currentIndex}
|
|
246
|
+
onIndexChange={setCurrentIndex}
|
|
247
|
+
isPaused={isPaused}
|
|
248
|
+
onPauseChange={setIsPaused}
|
|
249
|
+
autoRotateInterval={5000}
|
|
250
|
+
/>
|
|
251
|
+
<div className="text-sm text-[var(--muted-foreground)] text-center">
|
|
252
|
+
Current slide: {currentIndex + 1} | Paused: {isPaused ? 'Yes' : 'No'}
|
|
253
|
+
</div>
|
|
254
|
+
</div>
|
|
255
|
+
);
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
export const CustomStyling: Story = {
|
|
260
|
+
args: {
|
|
261
|
+
items: richItems,
|
|
262
|
+
autoRotateInterval: 5000,
|
|
263
|
+
className: 'max-w-md',
|
|
264
|
+
slideClassName: 'bg-[var(--primary)]/20 border-2 border-[var(--primary)]',
|
|
265
|
+
navigationClassName: 'justify-center',
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
// Accessibility demonstration
|
|
270
|
+
export const ReducedMotion: Story = {
|
|
271
|
+
args: {
|
|
272
|
+
items: textItems,
|
|
273
|
+
autoRotateInterval: 5000,
|
|
274
|
+
respectReducedMotion: true,
|
|
275
|
+
label: 'Respects prefers-reduced-motion',
|
|
276
|
+
},
|
|
277
|
+
parameters: {
|
|
278
|
+
docs: {
|
|
279
|
+
description: {
|
|
280
|
+
story:
|
|
281
|
+
'This carousel respects the user\'s prefers-reduced-motion setting. If enabled, auto-rotation will be disabled automatically.',
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
// Collapsible feature demonstrations
|
|
288
|
+
export const Collapsible: Story = {
|
|
289
|
+
args: {
|
|
290
|
+
items: richItems,
|
|
291
|
+
collapsible: true,
|
|
292
|
+
autoRotateInterval: 5000,
|
|
293
|
+
label: 'Tips carousel',
|
|
294
|
+
minimizedLabel: 'Tips',
|
|
295
|
+
},
|
|
296
|
+
parameters: {
|
|
297
|
+
docs: {
|
|
298
|
+
description: {
|
|
299
|
+
story:
|
|
300
|
+
'Carousel with collapsible feature. Click the minimize button to collapse it, revealing content below. Click expand to show the full carousel again.',
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
export const CollapsibleMinimizedByDefault: Story = {
|
|
307
|
+
args: {
|
|
308
|
+
items: richItems,
|
|
309
|
+
collapsible: true,
|
|
310
|
+
defaultMinimized: true,
|
|
311
|
+
autoRotateInterval: 5000,
|
|
312
|
+
label: 'Tips carousel',
|
|
313
|
+
minimizedLabel: 'Tips',
|
|
314
|
+
},
|
|
315
|
+
parameters: {
|
|
316
|
+
docs: {
|
|
317
|
+
description: {
|
|
318
|
+
story:
|
|
319
|
+
'Carousel that starts in minimized state. Click the expand button to show the full carousel.',
|
|
320
|
+
},
|
|
321
|
+
},
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
// Controlled collapsible example
|
|
326
|
+
export const ControlledCollapsible: Story = {
|
|
327
|
+
render: function ControlledCollapsibleCarousel() {
|
|
328
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
329
|
+
const [isPaused, setIsPaused] = useState(false);
|
|
330
|
+
const [isMinimized, setIsMinimized] = useState(false);
|
|
331
|
+
|
|
332
|
+
return (
|
|
333
|
+
<div className="space-y-4">
|
|
334
|
+
<Carousel
|
|
335
|
+
items={richItems}
|
|
336
|
+
currentIndex={currentIndex}
|
|
337
|
+
onIndexChange={setCurrentIndex}
|
|
338
|
+
isPaused={isPaused}
|
|
339
|
+
onPauseChange={setIsPaused}
|
|
340
|
+
collapsible={true}
|
|
341
|
+
isMinimized={isMinimized}
|
|
342
|
+
onMinimizeChange={setIsMinimized}
|
|
343
|
+
autoRotateInterval={5000}
|
|
344
|
+
label="Controlled tips carousel"
|
|
345
|
+
minimizedLabel="Tips"
|
|
346
|
+
/>
|
|
347
|
+
<div className="text-sm text-[var(--muted-foreground)] text-center space-y-1">
|
|
348
|
+
<div>Current slide: {currentIndex + 1} | Paused: {isPaused ? 'Yes' : 'No'}</div>
|
|
349
|
+
<div>Minimized: {isMinimized ? 'Yes' : 'No'}</div>
|
|
350
|
+
</div>
|
|
351
|
+
<div className="flex gap-2 justify-center">
|
|
352
|
+
<button
|
|
353
|
+
onClick={() => setIsMinimized(!isMinimized)}
|
|
354
|
+
className="px-3 py-1 text-sm bg-[var(--primary)] text-[var(--primary-foreground)] rounded"
|
|
355
|
+
>
|
|
356
|
+
Toggle Minimize
|
|
357
|
+
</button>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
);
|
|
361
|
+
},
|
|
362
|
+
parameters: {
|
|
363
|
+
docs: {
|
|
364
|
+
description: {
|
|
365
|
+
story:
|
|
366
|
+
'Fully controlled collapsible carousel. The parent component manages the minimized state and can toggle it programmatically.',
|
|
367
|
+
},
|
|
368
|
+
},
|
|
369
|
+
},
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
// Demo with content behind carousel
|
|
373
|
+
export const CollapsibleWithContentBehind: Story = {
|
|
374
|
+
render: function CollapsibleWithContent() {
|
|
375
|
+
return (
|
|
376
|
+
<div className="space-y-4 w-[400px]">
|
|
377
|
+
<Carousel
|
|
378
|
+
items={richItems}
|
|
379
|
+
collapsible={true}
|
|
380
|
+
autoRotateInterval={0}
|
|
381
|
+
label="Tips"
|
|
382
|
+
minimizedLabel="Tips"
|
|
383
|
+
/>
|
|
384
|
+
<div className="p-4 bg-[var(--card)] border border-[var(--border)] rounded-lg">
|
|
385
|
+
<h3 className="font-semibold mb-2">Content Below Carousel</h3>
|
|
386
|
+
<p className="text-sm text-[var(--muted-foreground)]">
|
|
387
|
+
This content is visible below the carousel. When the carousel overlaps or takes too much
|
|
388
|
+
space, you can minimize it to focus on this content. Click the minimize button (chevron
|
|
389
|
+
up icon) to collapse the carousel.
|
|
390
|
+
</p>
|
|
391
|
+
</div>
|
|
392
|
+
</div>
|
|
393
|
+
);
|
|
394
|
+
},
|
|
395
|
+
parameters: {
|
|
396
|
+
docs: {
|
|
397
|
+
description: {
|
|
398
|
+
story:
|
|
399
|
+
'Demonstrates the collapsible feature use case: minimize the carousel to reveal content below it.',
|
|
400
|
+
},
|
|
401
|
+
},
|
|
402
|
+
},
|
|
403
|
+
};
|
|
404
|
+
|
|
405
|
+
// =============================================================================
|
|
406
|
+
// Per-Item Timing Stories
|
|
407
|
+
// =============================================================================
|
|
408
|
+
|
|
409
|
+
// Items with different content complexity
|
|
410
|
+
const perItemTimingItems = [
|
|
411
|
+
<div key="1" className="space-y-1">
|
|
412
|
+
<h3 className="text-lg font-semibold">Quick Tip</h3>
|
|
413
|
+
<p className="text-sm">Short announcement (3 seconds)</p>
|
|
414
|
+
</div>,
|
|
415
|
+
<div key="2" className="space-y-2">
|
|
416
|
+
<h3 className="text-lg font-semibold">Detailed Feature</h3>
|
|
417
|
+
<p className="text-sm">
|
|
418
|
+
This slide has more content and requires more time to read. It showcases
|
|
419
|
+
a new feature with multiple bullet points:
|
|
420
|
+
</p>
|
|
421
|
+
<ul className="text-sm list-disc list-inside ml-2">
|
|
422
|
+
<li>Feature point one</li>
|
|
423
|
+
<li>Feature point two</li>
|
|
424
|
+
<li>Feature point three</li>
|
|
425
|
+
</ul>
|
|
426
|
+
<p className="text-xs text-[var(--muted-foreground)]">(10 seconds)</p>
|
|
427
|
+
</div>,
|
|
428
|
+
<div key="3" className="space-y-1">
|
|
429
|
+
<h3 className="text-lg font-semibold">Call to Action</h3>
|
|
430
|
+
<p className="text-sm">Ready to get started? (5 seconds)</p>
|
|
431
|
+
</div>,
|
|
432
|
+
];
|
|
433
|
+
|
|
434
|
+
export const PerItemTiming: Story = {
|
|
435
|
+
args: {
|
|
436
|
+
items: perItemTimingItems,
|
|
437
|
+
itemDurations: [3000, 10000, 5000], // 3s, 10s, 5s
|
|
438
|
+
label: 'Per-item timing carousel',
|
|
439
|
+
},
|
|
440
|
+
parameters: {
|
|
441
|
+
docs: {
|
|
442
|
+
description: {
|
|
443
|
+
story:
|
|
444
|
+
'Carousel with per-item viewing durations. Each slide displays for its specified duration: Quick Tip (3s), Detailed Feature (10s), Call to Action (5s).',
|
|
445
|
+
},
|
|
446
|
+
},
|
|
447
|
+
},
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
export const PerItemTimingWithProgress: Story = {
|
|
451
|
+
render: function PerItemTimingWithProgressIndicator() {
|
|
452
|
+
const [elapsed, setElapsed] = useState(0);
|
|
453
|
+
const durations = [3000, 10000, 5000];
|
|
454
|
+
const total = durations.reduce((a, b) => a + b, 0);
|
|
455
|
+
|
|
456
|
+
return (
|
|
457
|
+
<div className="space-y-4 w-[400px]">
|
|
458
|
+
<Carousel
|
|
459
|
+
items={perItemTimingItems}
|
|
460
|
+
itemDurations={durations}
|
|
461
|
+
onElapsedTimeChange={setElapsed}
|
|
462
|
+
label="Per-item timing with progress"
|
|
463
|
+
/>
|
|
464
|
+
<div className="space-y-2">
|
|
465
|
+
<div className="flex justify-between text-xs text-[var(--muted-foreground)]">
|
|
466
|
+
<span>Elapsed: {(elapsed / 1000).toFixed(0)}s</span>
|
|
467
|
+
<span>Total: {total / 1000}s</span>
|
|
468
|
+
</div>
|
|
469
|
+
<div className="h-2 bg-[var(--muted)] rounded-full overflow-hidden">
|
|
470
|
+
<div
|
|
471
|
+
className="h-full bg-[var(--primary)] transition-all duration-1000"
|
|
472
|
+
style={{ width: `${(elapsed / total) * 100}%` }}
|
|
473
|
+
/>
|
|
474
|
+
</div>
|
|
475
|
+
</div>
|
|
476
|
+
</div>
|
|
477
|
+
);
|
|
478
|
+
},
|
|
479
|
+
parameters: {
|
|
480
|
+
docs: {
|
|
481
|
+
description: {
|
|
482
|
+
story:
|
|
483
|
+
'Per-item timing carousel with an external progress indicator using the onElapsedTimeChange callback.',
|
|
484
|
+
},
|
|
485
|
+
},
|
|
486
|
+
},
|
|
487
|
+
};
|
|
488
|
+
|
|
489
|
+
export const PerItemTimingControlled: Story = {
|
|
490
|
+
render: function PerItemTimingControlledCarousel() {
|
|
491
|
+
const [elapsed, setElapsed] = useState(0);
|
|
492
|
+
const [isPaused, setIsPaused] = useState(false);
|
|
493
|
+
const durations = [3000, 10000, 5000];
|
|
494
|
+
const total = durations.reduce((a, b) => a + b, 0);
|
|
495
|
+
|
|
496
|
+
const jumpToSlide = (slideIndex: number) => {
|
|
497
|
+
// Calculate the start time for the selected slide
|
|
498
|
+
let startTime = 0;
|
|
499
|
+
for (let i = 0; i < slideIndex; i++) {
|
|
500
|
+
startTime += durations[i];
|
|
501
|
+
}
|
|
502
|
+
setElapsed(startTime);
|
|
503
|
+
};
|
|
504
|
+
|
|
505
|
+
return (
|
|
506
|
+
<div className="space-y-4 w-[400px]">
|
|
507
|
+
<Carousel
|
|
508
|
+
items={perItemTimingItems}
|
|
509
|
+
itemDurations={durations}
|
|
510
|
+
elapsedTime={elapsed}
|
|
511
|
+
onElapsedTimeChange={setElapsed}
|
|
512
|
+
isPaused={isPaused}
|
|
513
|
+
onPauseChange={setIsPaused}
|
|
514
|
+
label="Controlled per-item timing"
|
|
515
|
+
/>
|
|
516
|
+
<div className="space-y-2">
|
|
517
|
+
<div className="flex justify-between text-xs text-[var(--muted-foreground)]">
|
|
518
|
+
<span>Elapsed: {(elapsed / 1000).toFixed(0)}s</span>
|
|
519
|
+
<span>Paused: {isPaused ? 'Yes' : 'No'}</span>
|
|
520
|
+
</div>
|
|
521
|
+
<div className="h-2 bg-[var(--muted)] rounded-full overflow-hidden">
|
|
522
|
+
<div
|
|
523
|
+
className="h-full bg-[var(--primary)] transition-all duration-100"
|
|
524
|
+
style={{ width: `${(elapsed / total) * 100}%` }}
|
|
525
|
+
/>
|
|
526
|
+
</div>
|
|
527
|
+
<div className="flex gap-2 justify-center flex-wrap">
|
|
528
|
+
<button
|
|
529
|
+
onClick={() => jumpToSlide(0)}
|
|
530
|
+
className="px-3 py-1 text-xs bg-[var(--secondary)] text-[var(--secondary-foreground)] rounded"
|
|
531
|
+
>
|
|
532
|
+
Jump to Slide 1
|
|
533
|
+
</button>
|
|
534
|
+
<button
|
|
535
|
+
onClick={() => jumpToSlide(1)}
|
|
536
|
+
className="px-3 py-1 text-xs bg-[var(--secondary)] text-[var(--secondary-foreground)] rounded"
|
|
537
|
+
>
|
|
538
|
+
Jump to Slide 2
|
|
539
|
+
</button>
|
|
540
|
+
<button
|
|
541
|
+
onClick={() => jumpToSlide(2)}
|
|
542
|
+
className="px-3 py-1 text-xs bg-[var(--secondary)] text-[var(--secondary-foreground)] rounded"
|
|
543
|
+
>
|
|
544
|
+
Jump to Slide 3
|
|
545
|
+
</button>
|
|
546
|
+
</div>
|
|
547
|
+
</div>
|
|
548
|
+
</div>
|
|
549
|
+
);
|
|
550
|
+
},
|
|
551
|
+
parameters: {
|
|
552
|
+
docs: {
|
|
553
|
+
description: {
|
|
554
|
+
story:
|
|
555
|
+
'Fully controlled per-item timing carousel. Use the buttons to jump to specific slides, which updates the elapsed time to match.',
|
|
556
|
+
},
|
|
557
|
+
},
|
|
558
|
+
},
|
|
559
|
+
};
|
|
560
|
+
|
|
561
|
+
export const MixedDurations: Story = {
|
|
562
|
+
args: {
|
|
563
|
+
items: [
|
|
564
|
+
<div key="1">Very quick tip (1 second minimum)</div>,
|
|
565
|
+
<div key="2">Standard announcement (5 seconds)</div>,
|
|
566
|
+
<div key="3">Extended content with lots of detail to read (15 seconds)</div>,
|
|
567
|
+
<div key="4">Final reminder (3 seconds)</div>,
|
|
568
|
+
],
|
|
569
|
+
itemDurations: [1000, 5000, 15000, 3000], // 1s, 5s, 15s, 3s = 24s total
|
|
570
|
+
label: 'Mixed duration carousel',
|
|
571
|
+
},
|
|
572
|
+
parameters: {
|
|
573
|
+
docs: {
|
|
574
|
+
description: {
|
|
575
|
+
story:
|
|
576
|
+
'Carousel with widely varying durations from 1 second to 15 seconds, demonstrating flexibility for different content types.',
|
|
577
|
+
},
|
|
578
|
+
},
|
|
579
|
+
},
|
|
580
|
+
};
|
|
581
|
+
|
|
582
|
+
export const PerItemTimingFallback: Story = {
|
|
583
|
+
args: {
|
|
584
|
+
items: textItems,
|
|
585
|
+
itemDurations: [3000, 5000], // Intentionally mismatched length
|
|
586
|
+
autoRotateInterval: 2000, // Falls back to this
|
|
587
|
+
label: 'Fallback to autoRotateInterval',
|
|
588
|
+
},
|
|
589
|
+
parameters: {
|
|
590
|
+
docs: {
|
|
591
|
+
description: {
|
|
592
|
+
story:
|
|
593
|
+
'When itemDurations length does not match items length, the carousel falls back to using autoRotateInterval (2 seconds). Check the console for a warning message.',
|
|
594
|
+
},
|
|
595
|
+
},
|
|
596
|
+
},
|
|
597
|
+
};
|