@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,637 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FormLayout Storybook Stories
|
|
3
|
+
* Interactive documentation for all FormLayout variants
|
|
4
|
+
*
|
|
5
|
+
* @see FormLayout-tasks.md T011
|
|
6
|
+
* @see FormLayout-design-decisions.md (Visual specifications)
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import type { Meta, StoryObj } from '@storybook/nextjs';
|
|
10
|
+
import { FormLayout } from './FormLayout';
|
|
11
|
+
import { Button } from '../Button/Button';
|
|
12
|
+
import { TextField } from '../TextField/TextField';
|
|
13
|
+
|
|
14
|
+
const meta = {
|
|
15
|
+
title: 'Elements/FormLayout',
|
|
16
|
+
component: FormLayout,
|
|
17
|
+
parameters: {
|
|
18
|
+
layout: 'padded',
|
|
19
|
+
docs: {
|
|
20
|
+
description: {
|
|
21
|
+
component: `
|
|
22
|
+
FormLayout provides consistent structure for forms with semantic HTML and accessibility.
|
|
23
|
+
|
|
24
|
+
**Features:**
|
|
25
|
+
- Configurable heading hierarchy (h1-h6)
|
|
26
|
+
- Optional description text
|
|
27
|
+
- Required field explanation (always visible)
|
|
28
|
+
- Single or double column layouts (responsive)
|
|
29
|
+
- Three density variants (compact, default, comfortable)
|
|
30
|
+
- Optional actions footer
|
|
31
|
+
- **Form-level error messages** (red alert styling)
|
|
32
|
+
- **Form-level success messages** (green checkmark styling)
|
|
33
|
+
- **Auto-hide success messages** (configurable duration)
|
|
34
|
+
- WCAG 2.2 AAA compliant
|
|
35
|
+
- Semantic HTML5 elements
|
|
36
|
+
|
|
37
|
+
**Design Decisions:**
|
|
38
|
+
- Visual order: Error/Success Messages → Title → Description (optional) → Required Note
|
|
39
|
+
- Error messages use \`role="alert"\` with \`aria-live="assertive"\`
|
|
40
|
+
- Success messages use \`role="status"\` with \`aria-live="polite"\`
|
|
41
|
+
- Success messages can auto-hide after configurable duration
|
|
42
|
+
- Actions: space-between on desktop, stacked on mobile
|
|
43
|
+
- No max-width constraint (parent controls)
|
|
44
|
+
- Plain text required note (no icons)
|
|
45
|
+
`,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
tags: ['autodocs'],
|
|
50
|
+
argTypes: {
|
|
51
|
+
title: {
|
|
52
|
+
control: 'text',
|
|
53
|
+
description: 'Form title (required)',
|
|
54
|
+
},
|
|
55
|
+
requiredNote: {
|
|
56
|
+
control: 'text',
|
|
57
|
+
description: 'Explanation of required field indicators (required)',
|
|
58
|
+
},
|
|
59
|
+
description: {
|
|
60
|
+
control: 'text',
|
|
61
|
+
description: 'Form description/explanation (optional)',
|
|
62
|
+
},
|
|
63
|
+
columns: {
|
|
64
|
+
control: 'radio',
|
|
65
|
+
options: [1, 2],
|
|
66
|
+
description: 'Number of columns for form fields (1 or 2)',
|
|
67
|
+
},
|
|
68
|
+
headingLevel: {
|
|
69
|
+
control: 'select',
|
|
70
|
+
options: [1, 2, 3, 4, 5, 6],
|
|
71
|
+
description: 'Semantic heading level for title (h1-h6)',
|
|
72
|
+
},
|
|
73
|
+
density: {
|
|
74
|
+
control: 'radio',
|
|
75
|
+
options: ['default', 'compact', 'comfortable'],
|
|
76
|
+
description: 'Spacing between form fields',
|
|
77
|
+
},
|
|
78
|
+
errorMessage: {
|
|
79
|
+
control: 'text',
|
|
80
|
+
description: 'Form-level error message (optional)',
|
|
81
|
+
},
|
|
82
|
+
successMessage: {
|
|
83
|
+
control: 'text',
|
|
84
|
+
description: 'Form-level success message (optional)',
|
|
85
|
+
},
|
|
86
|
+
autoHideSuccess: {
|
|
87
|
+
control: 'boolean',
|
|
88
|
+
description: 'Auto-hide success message after duration',
|
|
89
|
+
},
|
|
90
|
+
autoHideDuration: {
|
|
91
|
+
control: 'number',
|
|
92
|
+
description: 'Duration in milliseconds before auto-hiding success message (default: 5000)',
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
} satisfies Meta<typeof FormLayout>;
|
|
96
|
+
|
|
97
|
+
export default meta;
|
|
98
|
+
type Story = StoryObj<typeof meta>;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Default FormLayout with minimal required props
|
|
102
|
+
* Single column layout with standard density
|
|
103
|
+
*/
|
|
104
|
+
export const Default: Story = {
|
|
105
|
+
args: {
|
|
106
|
+
title: 'Contact Form',
|
|
107
|
+
requiredNote: 'Required fields are marked with *',
|
|
108
|
+
children: (
|
|
109
|
+
<>
|
|
110
|
+
<TextField label="Name" isRequired />
|
|
111
|
+
<TextField label="Email" type="email" isRequired />
|
|
112
|
+
<TextField label="Message" />
|
|
113
|
+
</>
|
|
114
|
+
),
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* FormLayout with optional description text
|
|
120
|
+
*/
|
|
121
|
+
export const WithDescription: Story = {
|
|
122
|
+
args: {
|
|
123
|
+
title: 'Create Account',
|
|
124
|
+
requiredNote: '* indicates required field',
|
|
125
|
+
description: 'Fill in your details to create a new account. All information is kept secure.',
|
|
126
|
+
children: (
|
|
127
|
+
<>
|
|
128
|
+
<TextField label="Full Name" isRequired />
|
|
129
|
+
<TextField label="Email Address" type="email" isRequired />
|
|
130
|
+
<TextField label="Password" type="password" isRequired />
|
|
131
|
+
<TextField label="Confirm Password" type="password" isRequired />
|
|
132
|
+
</>
|
|
133
|
+
),
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* FormLayout without description (minimal)
|
|
139
|
+
*/
|
|
140
|
+
export const WithoutDescription: Story = {
|
|
141
|
+
args: {
|
|
142
|
+
title: 'Quick Form',
|
|
143
|
+
requiredNote: '* indicates required',
|
|
144
|
+
children: (
|
|
145
|
+
<>
|
|
146
|
+
<TextField label="Name" isRequired />
|
|
147
|
+
<TextField label="Email" type="email" isRequired />
|
|
148
|
+
</>
|
|
149
|
+
),
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* FormLayout with action buttons in footer
|
|
155
|
+
* Shows space-between alignment (Cancel left, Submit right)
|
|
156
|
+
*/
|
|
157
|
+
export const WithActions: Story = {
|
|
158
|
+
args: {
|
|
159
|
+
title: 'Registration Form',
|
|
160
|
+
requiredNote: 'Required fields are marked with *',
|
|
161
|
+
description: 'Complete all required fields to register.',
|
|
162
|
+
children: (
|
|
163
|
+
<>
|
|
164
|
+
<TextField label="Username" isRequired />
|
|
165
|
+
<TextField label="Email" type="email" isRequired />
|
|
166
|
+
<TextField label="Password" type="password" isRequired />
|
|
167
|
+
</>
|
|
168
|
+
),
|
|
169
|
+
actions: (
|
|
170
|
+
<>
|
|
171
|
+
<Button variant="outline">Cancel</Button>
|
|
172
|
+
<Button type="submit">Create Account</Button>
|
|
173
|
+
</>
|
|
174
|
+
),
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* FormLayout without actions footer
|
|
180
|
+
*/
|
|
181
|
+
export const WithoutActions: Story = {
|
|
182
|
+
args: {
|
|
183
|
+
title: 'Profile Information',
|
|
184
|
+
requiredNote: 'Required fields are marked with *',
|
|
185
|
+
children: (
|
|
186
|
+
<>
|
|
187
|
+
<TextField label="Display Name" isRequired />
|
|
188
|
+
<TextField label="Bio" />
|
|
189
|
+
<TextField label="Website" type="url" />
|
|
190
|
+
</>
|
|
191
|
+
),
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Double column layout (responsive)
|
|
197
|
+
* Single column on mobile, double on tablet/desktop (md breakpoint)
|
|
198
|
+
*/
|
|
199
|
+
export const DoubleColumn: Story = {
|
|
200
|
+
args: {
|
|
201
|
+
title: 'User Information',
|
|
202
|
+
requiredNote: '* indicates required field',
|
|
203
|
+
description: 'Please provide your contact information.',
|
|
204
|
+
columns: 2,
|
|
205
|
+
children: (
|
|
206
|
+
<>
|
|
207
|
+
<TextField label="First Name" isRequired />
|
|
208
|
+
<TextField label="Last Name" isRequired />
|
|
209
|
+
<TextField label="Email" type="email" isRequired />
|
|
210
|
+
<TextField label="Company" />
|
|
211
|
+
<TextField label="Job Title" />
|
|
212
|
+
</>
|
|
213
|
+
),
|
|
214
|
+
actions: (
|
|
215
|
+
<>
|
|
216
|
+
<Button variant="ghost">Cancel</Button>
|
|
217
|
+
<Button>Save Changes</Button>
|
|
218
|
+
</>
|
|
219
|
+
),
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Single column layout (explicit)
|
|
225
|
+
*/
|
|
226
|
+
export const SingleColumn: Story = {
|
|
227
|
+
args: {
|
|
228
|
+
title: 'Feedback Form',
|
|
229
|
+
requiredNote: 'Required fields are marked with *',
|
|
230
|
+
columns: 1,
|
|
231
|
+
children: (
|
|
232
|
+
<>
|
|
233
|
+
<TextField label="Name" isRequired />
|
|
234
|
+
<TextField label="Email" type="email" isRequired />
|
|
235
|
+
<TextField label="Subject" isRequired />
|
|
236
|
+
<TextField label="Message" isRequired />
|
|
237
|
+
</>
|
|
238
|
+
),
|
|
239
|
+
},
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Compact density (smaller gaps between fields)
|
|
244
|
+
* Best for space-constrained layouts
|
|
245
|
+
*/
|
|
246
|
+
export const CompactDensity: Story = {
|
|
247
|
+
args: {
|
|
248
|
+
title: 'Login',
|
|
249
|
+
requiredNote: '* indicates required',
|
|
250
|
+
density: 'compact',
|
|
251
|
+
children: (
|
|
252
|
+
<>
|
|
253
|
+
<TextField label="Email" type="email" isRequired />
|
|
254
|
+
<TextField label="Password" type="password" isRequired />
|
|
255
|
+
</>
|
|
256
|
+
),
|
|
257
|
+
actions: (
|
|
258
|
+
<>
|
|
259
|
+
<Button variant="link">Forgot password?</Button>
|
|
260
|
+
<Button>Sign In</Button>
|
|
261
|
+
</>
|
|
262
|
+
),
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Default density (standard gaps)
|
|
268
|
+
*/
|
|
269
|
+
export const DefaultDensity: Story = {
|
|
270
|
+
args: {
|
|
271
|
+
title: 'Settings',
|
|
272
|
+
requiredNote: 'Required fields are marked with *',
|
|
273
|
+
density: 'default',
|
|
274
|
+
children: (
|
|
275
|
+
<>
|
|
276
|
+
<TextField label="Display Name" isRequired />
|
|
277
|
+
<TextField label="Email" type="email" isRequired />
|
|
278
|
+
<TextField label="Bio" />
|
|
279
|
+
</>
|
|
280
|
+
),
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Comfortable density (larger gaps)
|
|
286
|
+
* Best for forms with more breathing room
|
|
287
|
+
*/
|
|
288
|
+
export const ComfortableDensity: Story = {
|
|
289
|
+
args: {
|
|
290
|
+
title: 'Contact Preferences',
|
|
291
|
+
requiredNote: '* indicates required field',
|
|
292
|
+
density: 'comfortable',
|
|
293
|
+
children: (
|
|
294
|
+
<>
|
|
295
|
+
<TextField label="Preferred Name" />
|
|
296
|
+
<TextField label="Contact Email" type="email" isRequired />
|
|
297
|
+
</>
|
|
298
|
+
),
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Different heading levels (h1-h6)
|
|
304
|
+
* Demonstrates proper heading hierarchy
|
|
305
|
+
*/
|
|
306
|
+
export const HeadingLevel1: Story = {
|
|
307
|
+
args: {
|
|
308
|
+
title: 'Main Registration',
|
|
309
|
+
requiredNote: 'Required fields are marked with *',
|
|
310
|
+
headingLevel: 1,
|
|
311
|
+
children: (
|
|
312
|
+
<>
|
|
313
|
+
<TextField label="Name" isRequired />
|
|
314
|
+
<TextField label="Email" type="email" isRequired />
|
|
315
|
+
</>
|
|
316
|
+
),
|
|
317
|
+
},
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
export const HeadingLevel3: Story = {
|
|
321
|
+
args: {
|
|
322
|
+
title: 'Section Form',
|
|
323
|
+
requiredNote: 'Required fields are marked with *',
|
|
324
|
+
headingLevel: 3,
|
|
325
|
+
children: (
|
|
326
|
+
<>
|
|
327
|
+
<TextField label="Name" isRequired />
|
|
328
|
+
<TextField label="Email" type="email" isRequired />
|
|
329
|
+
</>
|
|
330
|
+
),
|
|
331
|
+
},
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Complex form with all features
|
|
336
|
+
* Double column, with description, with actions, comfortable density
|
|
337
|
+
*/
|
|
338
|
+
export const ComplexForm: Story = {
|
|
339
|
+
args: {
|
|
340
|
+
title: 'Employee Registration',
|
|
341
|
+
requiredNote: '* indicates required field',
|
|
342
|
+
description: 'Please fill out all required information for the new employee.',
|
|
343
|
+
columns: 2,
|
|
344
|
+
density: 'comfortable',
|
|
345
|
+
headingLevel: 1,
|
|
346
|
+
children: (
|
|
347
|
+
<>
|
|
348
|
+
<TextField label="First Name" isRequired />
|
|
349
|
+
<TextField label="Last Name" isRequired />
|
|
350
|
+
<TextField label="Email" type="email" isRequired />
|
|
351
|
+
<TextField label="Department" isRequired />
|
|
352
|
+
<TextField label="Job Title" isRequired />
|
|
353
|
+
<TextField label="Manager" />
|
|
354
|
+
</>
|
|
355
|
+
),
|
|
356
|
+
actions: (
|
|
357
|
+
<>
|
|
358
|
+
<Button variant="outline">Cancel</Button>
|
|
359
|
+
<Button>Submit Registration</Button>
|
|
360
|
+
</>
|
|
361
|
+
),
|
|
362
|
+
},
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Minimal form (bare essentials)
|
|
367
|
+
*/
|
|
368
|
+
export const MinimalForm: Story = {
|
|
369
|
+
args: {
|
|
370
|
+
title: 'Subscribe',
|
|
371
|
+
requiredNote: '* required',
|
|
372
|
+
children: <TextField label="Email" type="email" isRequired />,
|
|
373
|
+
actions: <Button>Subscribe</Button>,
|
|
374
|
+
},
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Form with many fields (demonstrates scrolling)
|
|
379
|
+
*/
|
|
380
|
+
export const ManyFields: Story = {
|
|
381
|
+
args: {
|
|
382
|
+
title: 'Detailed Profile',
|
|
383
|
+
requiredNote: 'Required fields are marked with *',
|
|
384
|
+
description: 'Please provide as much information as possible.',
|
|
385
|
+
columns: 2,
|
|
386
|
+
children: (
|
|
387
|
+
<>
|
|
388
|
+
<TextField label="First Name" isRequired />
|
|
389
|
+
<TextField label="Last Name" isRequired />
|
|
390
|
+
<TextField label="Email" type="email" isRequired />
|
|
391
|
+
<TextField label="Address Line 1" isRequired />
|
|
392
|
+
<TextField label="Address Line 2" />
|
|
393
|
+
<TextField label="City" isRequired />
|
|
394
|
+
<TextField label="State/Province" isRequired />
|
|
395
|
+
<TextField label="Postal Code" isRequired />
|
|
396
|
+
<TextField label="Country" isRequired />
|
|
397
|
+
<TextField label="Occupation" />
|
|
398
|
+
<TextField label="Company" />
|
|
399
|
+
<TextField label="Website" type="url" />
|
|
400
|
+
</>
|
|
401
|
+
),
|
|
402
|
+
actions: (
|
|
403
|
+
<>
|
|
404
|
+
<Button variant="outline">Reset Form</Button>
|
|
405
|
+
<Button>Save Profile</Button>
|
|
406
|
+
</>
|
|
407
|
+
),
|
|
408
|
+
},
|
|
409
|
+
};
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* High contrast theme variant
|
|
413
|
+
*/
|
|
414
|
+
export const HighContrast: Story = {
|
|
415
|
+
args: {
|
|
416
|
+
title: 'High Contrast Form',
|
|
417
|
+
requiredNote: 'Required fields are marked with *',
|
|
418
|
+
description: 'Form displayed in high contrast mode for better visibility.',
|
|
419
|
+
children: (
|
|
420
|
+
<>
|
|
421
|
+
<TextField label="Name" isRequired />
|
|
422
|
+
<TextField label="Email" type="email" isRequired />
|
|
423
|
+
<TextField label="Message" />
|
|
424
|
+
</>
|
|
425
|
+
),
|
|
426
|
+
actions: (
|
|
427
|
+
<>
|
|
428
|
+
<Button variant="outline">Cancel</Button>
|
|
429
|
+
<Button>Submit</Button>
|
|
430
|
+
</>
|
|
431
|
+
),
|
|
432
|
+
},
|
|
433
|
+
parameters: {
|
|
434
|
+
// This would be configured in Storybook to show high contrast theme
|
|
435
|
+
backgrounds: { default: 'dark' },
|
|
436
|
+
},
|
|
437
|
+
};
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* Colorblind-friendly theme variant
|
|
441
|
+
*/
|
|
442
|
+
export const Colorblind: Story = {
|
|
443
|
+
args: {
|
|
444
|
+
title: 'Accessible Form',
|
|
445
|
+
requiredNote: '* indicates required field',
|
|
446
|
+
description: 'Form optimized for colorblind users.',
|
|
447
|
+
children: (
|
|
448
|
+
<>
|
|
449
|
+
<TextField label="Name" isRequired />
|
|
450
|
+
<TextField label="Email" type="email" isRequired />
|
|
451
|
+
</>
|
|
452
|
+
),
|
|
453
|
+
actions: <Button>Submit</Button>,
|
|
454
|
+
},
|
|
455
|
+
};
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* Custom styling example
|
|
459
|
+
*/
|
|
460
|
+
export const CustomStyling: Story = {
|
|
461
|
+
args: {
|
|
462
|
+
title: 'Custom Styled Form',
|
|
463
|
+
requiredNote: 'Required fields are marked with *',
|
|
464
|
+
className: 'max-w-2xl mx-auto p-6 border border-gray-200 rounded-lg shadow-sm',
|
|
465
|
+
children: (
|
|
466
|
+
<>
|
|
467
|
+
<TextField label="Name" isRequired />
|
|
468
|
+
<TextField label="Email" type="email" isRequired />
|
|
469
|
+
</>
|
|
470
|
+
),
|
|
471
|
+
actions: <Button>Submit</Button>,
|
|
472
|
+
},
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Error message display
|
|
477
|
+
* Shows form-level error with red styling and alert icon
|
|
478
|
+
*/
|
|
479
|
+
export const WithErrorMessage: Story = {
|
|
480
|
+
args: {
|
|
481
|
+
title: 'Login Form',
|
|
482
|
+
requiredNote: 'Required fields are marked with *',
|
|
483
|
+
errorMessage: 'Invalid email or password. Please try again.',
|
|
484
|
+
children: (
|
|
485
|
+
<>
|
|
486
|
+
<TextField label="Email" type="email" isRequired />
|
|
487
|
+
<TextField label="Password" type="password" isRequired />
|
|
488
|
+
</>
|
|
489
|
+
),
|
|
490
|
+
actions: (
|
|
491
|
+
<>
|
|
492
|
+
<Button variant="link">Forgot password?</Button>
|
|
493
|
+
<Button>Sign In</Button>
|
|
494
|
+
</>
|
|
495
|
+
),
|
|
496
|
+
},
|
|
497
|
+
};
|
|
498
|
+
|
|
499
|
+
/**
|
|
500
|
+
* Success message display
|
|
501
|
+
* Shows form-level success with green styling and checkmark icon
|
|
502
|
+
*/
|
|
503
|
+
export const WithSuccessMessage: Story = {
|
|
504
|
+
args: {
|
|
505
|
+
title: 'Profile Updated',
|
|
506
|
+
requiredNote: 'Required fields are marked with *',
|
|
507
|
+
successMessage: 'Your profile has been successfully updated.',
|
|
508
|
+
children: (
|
|
509
|
+
<>
|
|
510
|
+
<TextField label="Display Name" isRequired />
|
|
511
|
+
<TextField label="Email" type="email" isRequired />
|
|
512
|
+
<TextField label="Bio" />
|
|
513
|
+
</>
|
|
514
|
+
),
|
|
515
|
+
actions: (
|
|
516
|
+
<>
|
|
517
|
+
<Button variant="outline">Cancel</Button>
|
|
518
|
+
<Button>Save Changes</Button>
|
|
519
|
+
</>
|
|
520
|
+
),
|
|
521
|
+
},
|
|
522
|
+
};
|
|
523
|
+
|
|
524
|
+
/**
|
|
525
|
+
* Both error and success messages
|
|
526
|
+
* Demonstrates simultaneous display (error appears first)
|
|
527
|
+
*/
|
|
528
|
+
export const WithBothMessages: Story = {
|
|
529
|
+
args: {
|
|
530
|
+
title: 'Form Status',
|
|
531
|
+
requiredNote: 'Required fields are marked with *',
|
|
532
|
+
errorMessage: 'Some fields contain errors. Please review and correct them.',
|
|
533
|
+
successMessage: 'Previous changes were saved successfully.',
|
|
534
|
+
children: (
|
|
535
|
+
<>
|
|
536
|
+
<TextField label="Username" isRequired />
|
|
537
|
+
<TextField label="Email" type="email" isRequired />
|
|
538
|
+
</>
|
|
539
|
+
),
|
|
540
|
+
actions: <Button>Update</Button>,
|
|
541
|
+
},
|
|
542
|
+
};
|
|
543
|
+
|
|
544
|
+
/**
|
|
545
|
+
* Auto-hide success message (default duration: 5 seconds)
|
|
546
|
+
* Success message disappears automatically after specified duration
|
|
547
|
+
*/
|
|
548
|
+
export const WithAutoHideSuccess: Story = {
|
|
549
|
+
args: {
|
|
550
|
+
title: 'Quick Notification',
|
|
551
|
+
requiredNote: 'Required fields are marked with *',
|
|
552
|
+
successMessage: 'Form submitted successfully! This message will disappear in 5 seconds.',
|
|
553
|
+
autoHideSuccess: true,
|
|
554
|
+
children: (
|
|
555
|
+
<>
|
|
556
|
+
<TextField label="Name" isRequired />
|
|
557
|
+
<TextField label="Email" type="email" isRequired />
|
|
558
|
+
</>
|
|
559
|
+
),
|
|
560
|
+
actions: <Button>Submit</Button>,
|
|
561
|
+
},
|
|
562
|
+
};
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Auto-hide success message with custom duration (2 seconds)
|
|
566
|
+
* Faster auto-hide for quick feedback
|
|
567
|
+
*/
|
|
568
|
+
export const WithCustomAutoHideDuration: Story = {
|
|
569
|
+
args: {
|
|
570
|
+
title: 'Quick Feedback',
|
|
571
|
+
requiredNote: 'Required fields are marked with *',
|
|
572
|
+
successMessage: 'Saved! This message will disappear in 2 seconds.',
|
|
573
|
+
autoHideSuccess: true,
|
|
574
|
+
autoHideDuration: 2000,
|
|
575
|
+
children: (
|
|
576
|
+
<>
|
|
577
|
+
<TextField label="Setting" isRequired />
|
|
578
|
+
<TextField label="Value" />
|
|
579
|
+
</>
|
|
580
|
+
),
|
|
581
|
+
actions: <Button>Save</Button>,
|
|
582
|
+
},
|
|
583
|
+
};
|
|
584
|
+
|
|
585
|
+
/**
|
|
586
|
+
* Long error message
|
|
587
|
+
* Tests layout with longer error text
|
|
588
|
+
*/
|
|
589
|
+
export const WithLongErrorMessage: Story = {
|
|
590
|
+
args: {
|
|
591
|
+
title: 'Registration Failed',
|
|
592
|
+
requiredNote: 'Required fields are marked with *',
|
|
593
|
+
errorMessage: 'Unable to create your account at this time. The email address you provided is already in use. Please try a different email address or use the "Forgot Password" link if you already have an account.',
|
|
594
|
+
children: (
|
|
595
|
+
<>
|
|
596
|
+
<TextField label="Full Name" isRequired />
|
|
597
|
+
<TextField label="Email" type="email" isRequired />
|
|
598
|
+
<TextField label="Password" type="password" isRequired />
|
|
599
|
+
</>
|
|
600
|
+
),
|
|
601
|
+
actions: (
|
|
602
|
+
<>
|
|
603
|
+
<Button variant="outline">Cancel</Button>
|
|
604
|
+
<Button>Try Again</Button>
|
|
605
|
+
</>
|
|
606
|
+
),
|
|
607
|
+
},
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
/**
|
|
611
|
+
* Error message with double column layout
|
|
612
|
+
* Shows error messages work well with multi-column forms
|
|
613
|
+
*/
|
|
614
|
+
export const ErrorWithDoubleColumn: Story = {
|
|
615
|
+
args: {
|
|
616
|
+
title: 'Payment Information',
|
|
617
|
+
requiredNote: '* indicates required field',
|
|
618
|
+
errorMessage: 'Payment processing failed. Please check your card details and try again.',
|
|
619
|
+
columns: 2,
|
|
620
|
+
children: (
|
|
621
|
+
<>
|
|
622
|
+
<TextField label="Cardholder Name" isRequired />
|
|
623
|
+
<TextField label="Card Number" isRequired />
|
|
624
|
+
<TextField label="Expiry Date" isRequired />
|
|
625
|
+
<TextField label="CVV" isRequired />
|
|
626
|
+
<TextField label="Billing Address" isRequired />
|
|
627
|
+
<TextField label="Postal Code" isRequired />
|
|
628
|
+
</>
|
|
629
|
+
),
|
|
630
|
+
actions: (
|
|
631
|
+
<>
|
|
632
|
+
<Button variant="outline">Cancel</Button>
|
|
633
|
+
<Button>Process Payment</Button>
|
|
634
|
+
</>
|
|
635
|
+
),
|
|
636
|
+
},
|
|
637
|
+
};
|