@postenbring/hedwig-react 0.0.81 → 0.0.83
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/dist/accordion/accordion-content.d.ts +6 -2
- package/dist/accordion/accordion-content.d.ts.map +1 -0
- package/dist/accordion/accordion-header.d.ts +6 -2
- package/dist/accordion/accordion-header.d.ts.map +1 -0
- package/dist/accordion/accordion-item.d.ts +24 -3
- package/dist/accordion/accordion-item.d.ts.map +1 -0
- package/dist/accordion/accordion.d.ts +44 -2
- package/dist/accordion/accordion.d.ts.map +1 -0
- package/dist/accordion/accordion.js +102 -4
- package/dist/accordion/accordion.js.map +1 -1
- package/dist/accordion/accordion.mjs +5 -1
- package/dist/accordion/context.d.ts +7 -2
- package/dist/accordion/context.d.ts.map +1 -0
- package/dist/accordion/index.d.ts +9 -9
- package/dist/accordion/index.d.ts.map +1 -0
- package/dist/accordion/index.js +52 -53
- package/dist/accordion/index.js.map +1 -1
- package/dist/accordion/index.mjs +7 -7
- package/dist/badge/badge.d.ts +21 -5
- package/dist/badge/badge.d.ts.map +1 -0
- package/dist/badge/index.d.ts +3 -6
- package/dist/badge/index.d.ts.map +1 -0
- package/dist/box/box.d.ts +50 -4
- package/dist/box/box.d.ts.map +1 -0
- package/dist/box/box.js +15 -14
- package/dist/box/box.js.map +1 -1
- package/dist/box/box.mjs +1 -1
- package/dist/box/index.d.ts +3 -4
- package/dist/box/index.d.ts.map +1 -0
- package/dist/box/index.js +16 -19
- package/dist/box/index.js.map +1 -1
- package/dist/box/index.mjs +4 -5
- package/dist/breadcrumbs/breadcrumbs.d.ts +33 -2
- package/dist/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/breadcrumbs/index.d.ts +3 -2
- package/dist/breadcrumbs/index.d.ts.map +1 -0
- package/dist/button/button.d.ts +33 -3
- package/dist/button/button.d.ts.map +1 -0
- package/dist/button/index.d.ts +3 -3
- package/dist/button/index.d.ts.map +1 -0
- package/dist/card/card.d.ts +69 -12
- package/dist/card/card.d.ts.map +1 -0
- package/dist/card/card.js +17 -6
- package/dist/card/card.js.map +1 -1
- package/dist/card/card.mjs +1 -1
- package/dist/card/index.d.ts +3 -12
- package/dist/card/index.d.ts.map +1 -0
- package/dist/card/index.js +18 -19
- package/dist/card/index.js.map +1 -1
- package/dist/card/index.mjs +4 -5
- package/dist/{chunk-6R7AXKBR.mjs → chunk-35TXKAUH.mjs} +2 -2
- package/dist/chunk-35TXKAUH.mjs.map +1 -0
- package/dist/{chunk-XC3UHH2U.mjs → chunk-3WVRY6CC.mjs} +4 -4
- package/dist/{chunk-XC3UHH2U.mjs.map → chunk-3WVRY6CC.mjs.map} +1 -1
- package/dist/{chunk-67TP3E2D.mjs → chunk-6FBPKLWB.mjs} +3 -3
- package/dist/chunk-6FBPKLWB.mjs.map +1 -0
- package/dist/chunk-7YWW46R3.mjs +1 -0
- package/dist/{chunk-ENKVTAJB.mjs → chunk-AJWSQEDP.mjs} +18 -17
- package/dist/chunk-AJWSQEDP.mjs.map +1 -0
- package/dist/chunk-ARHJZUZG.mjs +1 -0
- package/dist/{chunk-4WQWU5TL.mjs → chunk-AXQCREUJ.mjs} +2 -2
- package/dist/chunk-AXQCREUJ.mjs.map +1 -0
- package/dist/chunk-BCFV6VOE.mjs +1 -0
- package/dist/{chunk-F2C3KZFX.mjs → chunk-BVPSZ3JI.mjs} +2 -2
- package/dist/chunk-BVPSZ3JI.mjs.map +1 -0
- package/dist/{chunk-7JRS4WEB.mjs → chunk-C34HEQXO.mjs} +33 -29
- package/dist/chunk-C34HEQXO.mjs.map +1 -0
- package/dist/chunk-CYDWEPFL.mjs +1 -0
- package/dist/{chunk-PLXB3TNA.mjs → chunk-D7QPJIUZ.mjs} +5 -5
- package/dist/{chunk-PLXB3TNA.mjs.map → chunk-D7QPJIUZ.mjs.map} +1 -1
- package/dist/{chunk-GSJPTZT3.mjs → chunk-FC4CEI2V.mjs} +34 -19
- package/dist/chunk-FC4CEI2V.mjs.map +1 -0
- package/dist/chunk-FYFJ75NX.mjs +1 -0
- package/dist/chunk-FYFJ75NX.mjs.map +1 -0
- package/dist/chunk-G65EYZFQ.mjs +1 -0
- package/dist/chunk-G65EYZFQ.mjs.map +1 -0
- package/dist/chunk-H3E546OT.mjs +1 -0
- package/dist/chunk-H3E546OT.mjs.map +1 -0
- package/dist/chunk-HQVL3ZJ2.mjs +1 -0
- package/dist/chunk-HQVL3ZJ2.mjs.map +1 -0
- package/dist/{chunk-KPGSRU4I.mjs → chunk-M3Y3XOGC.mjs} +13 -1
- package/dist/chunk-M3Y3XOGC.mjs.map +1 -0
- package/dist/{chunk-CIHZDFSQ.mjs → chunk-NU6OSFAU.mjs} +20 -9
- package/dist/chunk-NU6OSFAU.mjs.map +1 -0
- package/dist/{chunk-XUWZ4HGD.mjs → chunk-OGZ2NBMH.mjs} +49 -46
- package/dist/chunk-OGZ2NBMH.mjs.map +1 -0
- package/dist/{chunk-3MQKXNZ6.mjs → chunk-QZZIOBF4.mjs} +13 -1
- package/dist/chunk-QZZIOBF4.mjs.map +1 -0
- package/dist/chunk-RC76SXBP.mjs +1 -0
- package/dist/chunk-RC76SXBP.mjs.map +1 -0
- package/dist/{chunk-TQDUBRCZ.mjs → chunk-SQ63E7KM.mjs} +24 -22
- package/dist/chunk-SQ63E7KM.mjs.map +1 -0
- package/dist/{chunk-DEX36MFK.mjs → chunk-TDXU2IC6.mjs} +3 -4
- package/dist/chunk-TDXU2IC6.mjs.map +1 -0
- package/dist/{chunk-ES6ISHOV.mjs → chunk-UP3M3NEZ.mjs} +14 -13
- package/dist/{chunk-ES6ISHOV.mjs.map → chunk-UP3M3NEZ.mjs.map} +1 -1
- package/dist/chunk-ZKMFJZSH.mjs +1 -0
- package/dist/chunk-ZKMFJZSH.mjs.map +1 -0
- package/dist/description-list/description-list.d.ts +42 -2
- package/dist/description-list/description-list.d.ts.map +1 -0
- package/dist/description-list/index.d.ts +3 -2
- package/dist/description-list/index.d.ts.map +1 -0
- package/dist/footer/footer.d.ts +67 -7
- package/dist/footer/footer.d.ts.map +1 -0
- package/dist/footer/footer.js +79 -76
- package/dist/footer/footer.js.map +1 -1
- package/dist/footer/footer.mjs +4 -4
- package/dist/footer/index.d.ts +3 -7
- package/dist/footer/index.d.ts.map +1 -0
- package/dist/footer/index.js +80 -84
- package/dist/footer/index.js.map +1 -1
- package/dist/footer/index.mjs +7 -8
- package/dist/form/checkbox/checkbox.d.ts +28 -2
- package/dist/form/checkbox/checkbox.d.ts.map +1 -0
- package/dist/form/checkbox/index.d.ts +3 -2
- package/dist/form/checkbox/index.d.ts.map +1 -0
- package/dist/form/date-picker/date-picker.d.ts +33 -2
- package/dist/form/date-picker/date-picker.d.ts.map +1 -0
- package/dist/form/date-picker/date-picker.js +1 -1
- package/dist/form/date-picker/date-picker.js.map +1 -1
- package/dist/form/date-picker/date-picker.mjs +2 -2
- package/dist/form/date-picker/index.d.ts +3 -2
- package/dist/form/date-picker/index.d.ts.map +1 -0
- package/dist/form/date-picker/index.js +1 -1
- package/dist/form/date-picker/index.js.map +1 -1
- package/dist/form/date-picker/index.mjs +2 -2
- package/dist/form/error-message/error-message.d.ts +8 -2
- package/dist/form/error-message/error-message.d.ts.map +1 -0
- package/dist/form/error-message/index.d.ts +3 -2
- package/dist/form/error-message/index.d.ts.map +1 -0
- package/dist/form/fieldset/fieldset.d.ts +22 -3
- package/dist/form/fieldset/fieldset.d.ts.map +1 -0
- package/dist/form/fieldset/index.d.ts +3 -3
- package/dist/form/fieldset/index.d.ts.map +1 -0
- package/dist/form/index.d.ts +9 -20
- package/dist/form/index.d.ts.map +1 -0
- package/dist/form/index.js +1 -1
- package/dist/form/index.js.map +1 -1
- package/dist/form/index.mjs +2 -2
- package/dist/form/input/index.d.ts +3 -2
- package/dist/form/input/index.d.ts.map +1 -0
- package/dist/form/input/input.d.ts +5 -2
- package/dist/form/input/input.d.ts.map +1 -0
- package/dist/form/input-group/index.d.ts +3 -2
- package/dist/form/input-group/index.d.ts.map +1 -0
- package/dist/form/input-group/input-group.d.ts +27 -2
- package/dist/form/input-group/input-group.d.ts.map +1 -0
- package/dist/form/radiobutton/index.d.ts +5 -5
- package/dist/form/radiobutton/index.d.ts.map +1 -0
- package/dist/form/radiobutton/radiobutton.d.ts +17 -2
- package/dist/form/radiobutton/radiobutton.d.ts.map +1 -0
- package/dist/form/radiobutton/radiogroup.d.ts +24 -3
- package/dist/form/radiobutton/radiogroup.d.ts.map +1 -0
- package/dist/form/select/index.d.ts +3 -2
- package/dist/form/select/index.d.ts.map +1 -0
- package/dist/form/select/select.d.ts +9 -2
- package/dist/form/select/select.d.ts.map +1 -0
- package/dist/form/textarea/index.d.ts +3 -2
- package/dist/form/textarea/index.d.ts.map +1 -0
- package/dist/form/textarea/textarea.d.ts +5 -2
- package/dist/form/textarea/textarea.d.ts.map +1 -0
- package/dist/help-text/help-text.d.ts +51 -1
- package/dist/help-text/help-text.d.ts.map +1 -0
- package/dist/help-text/help-text.js +17 -20
- package/dist/help-text/help-text.js.map +1 -1
- package/dist/help-text/help-text.mjs +3 -3
- package/dist/help-text/index.d.ts +3 -1
- package/dist/help-text/index.d.ts.map +1 -0
- package/dist/help-text/index.js +17 -20
- package/dist/help-text/index.js.map +1 -1
- package/dist/help-text/index.mjs +3 -3
- package/dist/index-no-css.d.ts +26 -128
- package/dist/index-no-css.d.ts.map +1 -0
- package/dist/index-no-css.js +385 -398
- package/dist/index-no-css.js.map +1 -1
- package/dist/index-no-css.mjs +70 -68
- package/dist/index.d.ts +11 -128
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +385 -398
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +70 -68
- package/dist/index.mjs.map +1 -1
- package/dist/layout/container/container.d.ts +23 -2
- package/dist/layout/container/container.d.ts.map +1 -0
- package/dist/layout/grid/grid.d.ts +101 -4
- package/dist/layout/grid/grid.d.ts.map +1 -0
- package/dist/layout/grid/grid.js +11 -10
- package/dist/layout/grid/grid.js.map +1 -1
- package/dist/layout/grid/grid.mjs +1 -1
- package/dist/layout/grid/index.d.ts +3 -4
- package/dist/layout/grid/index.d.ts.map +1 -0
- package/dist/layout/grid/index.js +12 -15
- package/dist/layout/grid/index.js.map +1 -1
- package/dist/layout/grid/index.mjs +4 -5
- package/dist/layout/index.d.ts +4 -10
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +12 -15
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/index.mjs +4 -5
- package/dist/layout/responsive.d.ts +10 -2
- package/dist/layout/responsive.d.ts.map +1 -0
- package/dist/layout/spacing.d.ts +33 -3
- package/dist/layout/spacing.d.ts.map +1 -0
- package/dist/layout/stack/index.d.ts +3 -4
- package/dist/layout/stack/index.d.ts.map +1 -0
- package/dist/layout/stack/stack.d.ts +62 -4
- package/dist/layout/stack/stack.d.ts.map +1 -0
- package/dist/link/index.d.ts +3 -2
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/link.d.ts +20 -2
- package/dist/link/link.d.ts.map +1 -0
- package/dist/list/index.d.ts +5 -5
- package/dist/list/index.d.ts.map +1 -0
- package/dist/list/link-list.d.ts +12 -2
- package/dist/list/link-list.d.ts.map +1 -0
- package/dist/list/list.d.ts +40 -3
- package/dist/list/list.d.ts.map +1 -0
- package/dist/message/index.d.ts +3 -3
- package/dist/message/index.d.ts.map +1 -0
- package/dist/message/index.js +36 -38
- package/dist/message/index.js.map +1 -1
- package/dist/message/index.mjs +5 -6
- package/dist/message/message.d.ts +36 -4
- package/dist/message/message.d.ts.map +1 -0
- package/dist/message/message.js +35 -32
- package/dist/message/message.js.map +1 -1
- package/dist/message/message.mjs +2 -2
- package/dist/modal/index.d.ts +3 -5
- package/dist/modal/index.d.ts.map +1 -0
- package/dist/modal/index.js +61 -63
- package/dist/modal/index.js.map +1 -1
- package/dist/modal/index.mjs +6 -7
- package/dist/modal/modal.d.ts +81 -5
- package/dist/modal/modal.d.ts.map +1 -0
- package/dist/modal/modal.js +60 -56
- package/dist/modal/modal.js.map +1 -1
- package/dist/modal/modal.mjs +3 -3
- package/dist/navbar/icons.d.ts +3 -2
- package/dist/navbar/icons.d.ts.map +1 -0
- package/dist/navbar/index.d.ts +4 -13
- package/dist/navbar/index.d.ts.map +1 -0
- package/dist/navbar/index.js +145 -146
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +6 -7
- package/dist/navbar/navbar-expandable-menu.d.ts +35 -7
- package/dist/navbar/navbar-expandable-menu.d.ts.map +1 -0
- package/dist/navbar/navbar-expandable-menu.js +1 -1
- package/dist/navbar/navbar-expandable-menu.js.map +1 -1
- package/dist/navbar/navbar-expandable-menu.mjs +2 -2
- package/dist/navbar/navbar.d.ts +130 -9
- package/dist/navbar/navbar.d.ts.map +1 -0
- package/dist/navbar/navbar.js +237 -28
- package/dist/navbar/navbar.js.map +1 -1
- package/dist/navbar/navbar.mjs +4 -1
- package/dist/show-more/index.d.ts +5 -4
- package/dist/show-more/index.d.ts.map +1 -0
- package/dist/show-more/index.js +3 -3
- package/dist/show-more/index.js.map +1 -1
- package/dist/show-more/index.mjs +2 -2
- package/dist/show-more/show-more.d.ts +42 -2
- package/dist/show-more/show-more.d.ts.map +1 -0
- package/dist/skeleton/index.d.ts +3 -2
- package/dist/skeleton/index.d.ts.map +1 -0
- package/dist/skeleton/skeleton.d.ts +67 -2
- package/dist/skeleton/skeleton.d.ts.map +1 -0
- package/dist/step-indicator/index.d.ts +3 -1
- package/dist/step-indicator/index.d.ts.map +1 -0
- package/dist/step-indicator/step-indicator.d.ts +36 -1
- package/dist/step-indicator/step-indicator.d.ts.map +1 -0
- package/dist/styled-html/index.d.ts +3 -2
- package/dist/styled-html/index.d.ts.map +1 -0
- package/dist/styled-html/styled-html.d.ts +36 -2
- package/dist/styled-html/styled-html.d.ts.map +1 -0
- package/dist/table/index.d.ts +3 -1
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/table.d.ts +25 -1
- package/dist/table/table.d.ts.map +1 -0
- package/dist/tabs/context.d.ts +8 -3
- package/dist/tabs/context.d.ts.map +1 -0
- package/dist/tabs/index.d.ts +7 -10
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/tabs/index.js +35 -38
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/index.mjs +6 -6
- package/dist/tabs/tabs-content.d.ts +26 -4
- package/dist/tabs/tabs-content.d.ts.map +1 -0
- package/dist/tabs/tabs-list.d.ts +21 -4
- package/dist/tabs/tabs-list.d.ts.map +1 -0
- package/dist/tabs/tabs-list.js +1 -1
- package/dist/tabs/tabs-list.js.map +1 -1
- package/dist/tabs/tabs-list.mjs +2 -2
- package/dist/tabs/tabs.d.ts +26 -2
- package/dist/tabs/tabs.d.ts.map +1 -0
- package/dist/tabs/tabs.js +205 -8
- package/dist/tabs/tabs.js.map +1 -1
- package/dist/tabs/tabs.mjs +4 -1
- package/dist/text/index.d.ts +4 -2
- package/dist/text/index.d.ts.map +1 -0
- package/dist/text/text.d.ts +58 -2
- package/dist/text/text.d.ts.map +1 -0
- package/dist/utils/auto-animate-height.d.ts +33 -0
- package/dist/utils/auto-animate-height.d.ts.map +1 -0
- package/dist/{utilities → utils}/auto-animate-height.js +3 -3
- package/dist/utils/auto-animate-height.js.map +1 -0
- package/dist/utils/auto-animate-height.mjs +9 -0
- package/dist/utils/auto-animate-height.mjs.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/{utilities → utils}/index.js +81 -11
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +19 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/utils.d.ts +24 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/{utils.js → utils/utils.js} +1 -3
- package/dist/utils/utils.js.map +1 -0
- package/dist/utils/utils.mjs +14 -0
- package/dist/utils/utils.mjs.map +1 -0
- package/dist/warning-banner/index.d.ts +3 -2
- package/dist/warning-banner/index.d.ts.map +1 -0
- package/dist/warning-banner/index.js +16 -19
- package/dist/warning-banner/index.js.map +1 -1
- package/dist/warning-banner/index.mjs +3 -3
- package/dist/warning-banner/warning-banner.d.ts +8 -2
- package/dist/warning-banner/warning-banner.d.ts.map +1 -0
- package/dist/warning-banner/warning-banner.js +16 -19
- package/dist/warning-banner/warning-banner.js.map +1 -1
- package/dist/warning-banner/warning-banner.mjs +3 -3
- package/package.json +12 -8
- package/src/accordion/accordion-content.tsx +31 -0
- package/src/accordion/accordion-header.tsx +36 -0
- package/src/accordion/accordion-item.tsx +62 -0
- package/src/accordion/accordion.stories.tsx +154 -0
- package/src/accordion/accordion.tsx +68 -0
- package/src/accordion/context.ts +8 -0
- package/src/accordion/index.tsx +9 -0
- package/src/badge/badge.stories.tsx +44 -0
- package/src/badge/badge.tsx +63 -0
- package/src/badge/index.tsx +3 -0
- package/src/box/box.stories.tsx +112 -0
- package/src/box/box.tsx +122 -0
- package/src/box/index.tsx +3 -0
- package/src/breadcrumbs/breadcrumbs.stories.tsx +50 -0
- package/src/breadcrumbs/breadcrumbs.tsx +47 -0
- package/src/breadcrumbs/index.tsx +3 -0
- package/src/button/button.stories.tsx +104 -0
- package/src/button/button.tsx +87 -0
- package/src/button/index.tsx +3 -0
- package/src/card/card.stories.tsx +82 -0
- package/src/card/card.tsx +222 -0
- package/src/card/index.tsx +14 -0
- package/src/description-list/description-list.stories.tsx +95 -0
- package/src/description-list/description-list.tsx +61 -0
- package/src/description-list/index.tsx +2 -0
- package/src/footer/footer.tsx +169 -0
- package/src/footer/index.tsx +9 -0
- package/src/form/checkbox/checkbox.stories.tsx +104 -0
- package/src/form/checkbox/checkbox.tsx +82 -0
- package/src/form/checkbox/index.tsx +2 -0
- package/src/form/date-picker/date-picker.stories.tsx +27 -0
- package/src/form/date-picker/date-picker.tsx +85 -0
- package/src/form/date-picker/index.tsx +2 -0
- package/src/form/error-message/error-message.stories.tsx +19 -0
- package/src/form/error-message/error-message.tsx +25 -0
- package/src/form/error-message/index.tsx +2 -0
- package/src/form/fieldset/fieldset.stories.tsx +86 -0
- package/src/form/fieldset/fieldset.tsx +64 -0
- package/src/form/fieldset/index.tsx +2 -0
- package/src/form/index.tsx +8 -0
- package/src/form/input/index.tsx +2 -0
- package/src/form/input/input.stories.tsx +166 -0
- package/src/form/input/input.tsx +30 -0
- package/src/form/input-group/index.tsx +2 -0
- package/src/form/input-group/input-group.tsx +106 -0
- package/src/form/radiobutton/index.tsx +4 -0
- package/src/form/radiobutton/radiobutton.stories.tsx +93 -0
- package/src/form/radiobutton/radiobutton.tsx +85 -0
- package/src/form/radiobutton/radiogroup.stories.tsx +39 -0
- package/src/form/radiobutton/radiogroup.tsx +52 -0
- package/src/form/select/index.tsx +2 -0
- package/src/form/select/select.stories.tsx +93 -0
- package/src/form/select/select.tsx +33 -0
- package/src/form/textarea/index.tsx +2 -0
- package/src/form/textarea/textarea.stories.tsx +106 -0
- package/src/form/textarea/textarea.tsx +33 -0
- package/src/help-text/help-text.tsx +98 -0
- package/src/help-text/index.ts +2 -0
- package/src/index-no-css.tsx +25 -0
- package/src/index.tsx +11 -0
- package/src/layout/container/container.stories.tsx +62 -0
- package/src/layout/container/container.tsx +47 -0
- package/src/layout/grid/grid.tsx +163 -0
- package/src/layout/grid/index.tsx +3 -0
- package/src/layout/index.tsx +3 -0
- package/src/layout/responsive.ts +26 -0
- package/src/layout/spacing.ts +37 -0
- package/src/layout/stack/index.tsx +2 -0
- package/src/layout/stack/stack.tsx +128 -0
- package/src/link/index.tsx +3 -0
- package/src/link/link.stories.tsx +64 -0
- package/src/link/link.tsx +46 -0
- package/src/list/index.tsx +5 -0
- package/src/list/link-list.stories.tsx +38 -0
- package/src/list/link-list.tsx +26 -0
- package/src/list/list.stories.tsx +71 -0
- package/src/list/list.tsx +65 -0
- package/src/message/index.tsx +2 -0
- package/src/message/message.stories.tsx +93 -0
- package/src/message/message.tsx +89 -0
- package/src/modal/index.tsx +3 -0
- package/src/modal/modal.stories.tsx +147 -0
- package/src/modal/modal.tsx +199 -0
- package/src/navbar/icons.tsx +21 -0
- package/src/navbar/index.tsx +18 -0
- package/src/navbar/navbar-expandable-menu.tsx +176 -0
- package/src/navbar/navbar.stories.tsx +99 -0
- package/src/navbar/navbar.tsx +264 -0
- package/src/show-more/index.ts +5 -0
- package/src/show-more/show-more.stories.tsx +119 -0
- package/src/show-more/show-more.tsx +66 -0
- package/src/skeleton/index.ts +2 -0
- package/src/skeleton/skeleton.stories.tsx +152 -0
- package/src/skeleton/skeleton.tsx +114 -0
- package/src/step-indicator/index.ts +2 -0
- package/src/step-indicator/step-indicator.stories.tsx +50 -0
- package/src/step-indicator/step-indicator.tsx +116 -0
- package/src/styled-html/index.ts +2 -0
- package/src/styled-html/styled-html.stories.tsx +189 -0
- package/src/styled-html/styled-html.tsx +59 -0
- package/src/table/index.ts +2 -0
- package/src/table/table.tsx +59 -0
- package/src/tabs/context.ts +18 -0
- package/src/tabs/index.tsx +7 -0
- package/src/tabs/tabs-content.tsx +62 -0
- package/src/tabs/tabs-list.tsx +129 -0
- package/src/tabs/tabs.stories.tsx +138 -0
- package/src/tabs/tabs.tsx +50 -0
- package/src/text/index.tsx +4 -0
- package/src/text/text.stories.tsx +112 -0
- package/src/text/text.tsx +129 -0
- package/src/utils/auto-animate-height.tsx +139 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/utils.ts +110 -0
- package/src/warning-banner/index.tsx +2 -0
- package/src/warning-banner/warning-banner.stories.tsx +43 -0
- package/src/warning-banner/warning-banner.tsx +79 -0
- package/dist/_tsup-dts-rollup.d.mts +0 -2600
- package/dist/_tsup-dts-rollup.d.ts +0 -2600
- package/dist/accordion/accordion-content.d.mts +0 -2
- package/dist/accordion/accordion-header.d.mts +0 -2
- package/dist/accordion/accordion-item.d.mts +0 -3
- package/dist/accordion/accordion.d.mts +0 -2
- package/dist/accordion/context.d.mts +0 -2
- package/dist/accordion/index.d.mts +0 -9
- package/dist/badge/badge.d.mts +0 -5
- package/dist/badge/index.d.mts +0 -6
- package/dist/box/box.d.mts +0 -4
- package/dist/box/index.d.mts +0 -4
- package/dist/breadcrumbs/breadcrumbs.d.mts +0 -2
- package/dist/breadcrumbs/index.d.mts +0 -2
- package/dist/button/button.d.mts +0 -3
- package/dist/button/index.d.mts +0 -3
- package/dist/card/card.d.mts +0 -12
- package/dist/card/index.d.mts +0 -12
- package/dist/chunk-3MQKXNZ6.mjs.map +0 -1
- package/dist/chunk-3NDUE23B.mjs +0 -19
- package/dist/chunk-3NDUE23B.mjs.map +0 -1
- package/dist/chunk-3NL3TOZF.mjs +0 -13
- package/dist/chunk-3NL3TOZF.mjs.map +0 -1
- package/dist/chunk-3ZFEUABU.mjs +0 -23
- package/dist/chunk-3ZFEUABU.mjs.map +0 -1
- package/dist/chunk-4WQWU5TL.mjs.map +0 -1
- package/dist/chunk-67TP3E2D.mjs.map +0 -1
- package/dist/chunk-6R7AXKBR.mjs.map +0 -1
- package/dist/chunk-722MZPXO.mjs +0 -13
- package/dist/chunk-722MZPXO.mjs.map +0 -1
- package/dist/chunk-7JRS4WEB.mjs.map +0 -1
- package/dist/chunk-CIHZDFSQ.mjs.map +0 -1
- package/dist/chunk-CYEYGPRH.mjs +0 -17
- package/dist/chunk-CYEYGPRH.mjs.map +0 -1
- package/dist/chunk-DEX36MFK.mjs.map +0 -1
- package/dist/chunk-DZNH5JHY.mjs +0 -1
- package/dist/chunk-ENKVTAJB.mjs.map +0 -1
- package/dist/chunk-F2C3KZFX.mjs.map +0 -1
- package/dist/chunk-GSJPTZT3.mjs.map +0 -1
- package/dist/chunk-IJAX6APL.mjs +0 -23
- package/dist/chunk-IJAX6APL.mjs.map +0 -1
- package/dist/chunk-IKJJWKXM.mjs +0 -15
- package/dist/chunk-IKJJWKXM.mjs.map +0 -1
- package/dist/chunk-KPGSRU4I.mjs.map +0 -1
- package/dist/chunk-PT5H3QV6.mjs +0 -29
- package/dist/chunk-PT5H3QV6.mjs.map +0 -1
- package/dist/chunk-TQDUBRCZ.mjs.map +0 -1
- package/dist/chunk-V6UKKHKD.mjs +0 -33
- package/dist/chunk-V6UKKHKD.mjs.map +0 -1
- package/dist/chunk-XUWZ4HGD.mjs.map +0 -1
- package/dist/description-list/description-list.d.mts +0 -2
- package/dist/description-list/index.d.mts +0 -2
- package/dist/footer/footer.d.mts +0 -7
- package/dist/footer/index.d.mts +0 -7
- package/dist/form/checkbox/checkbox.d.mts +0 -2
- package/dist/form/checkbox/index.d.mts +0 -2
- package/dist/form/date-picker/date-picker.d.mts +0 -2
- package/dist/form/date-picker/index.d.mts +0 -2
- package/dist/form/error-message/error-message.d.mts +0 -2
- package/dist/form/error-message/index.d.mts +0 -2
- package/dist/form/fieldset/fieldset.d.mts +0 -3
- package/dist/form/fieldset/index.d.mts +0 -3
- package/dist/form/index.d.mts +0 -20
- package/dist/form/input/index.d.mts +0 -2
- package/dist/form/input/input.d.mts +0 -2
- package/dist/form/input-group/index.d.mts +0 -2
- package/dist/form/input-group/input-group.d.mts +0 -2
- package/dist/form/radiobutton/index.d.mts +0 -5
- package/dist/form/radiobutton/radiobutton.d.mts +0 -2
- package/dist/form/radiobutton/radiogroup.d.mts +0 -3
- package/dist/form/select/index.d.mts +0 -2
- package/dist/form/select/select.d.mts +0 -2
- package/dist/form/textarea/index.d.mts +0 -2
- package/dist/form/textarea/textarea.d.mts +0 -2
- package/dist/help-text/help-text.d.mts +0 -1
- package/dist/help-text/index.d.mts +0 -1
- package/dist/index-no-css.d.mts +0 -128
- package/dist/index.d.mts +0 -128
- package/dist/layout/container/container.d.mts +0 -2
- package/dist/layout/grid/grid.d.mts +0 -4
- package/dist/layout/grid/index.d.mts +0 -4
- package/dist/layout/index.d.mts +0 -10
- package/dist/layout/responsive.d.mts +0 -2
- package/dist/layout/spacing.d.mts +0 -3
- package/dist/layout/stack/index.d.mts +0 -4
- package/dist/layout/stack/stack.d.mts +0 -4
- package/dist/link/index.d.mts +0 -2
- package/dist/link/link.d.mts +0 -2
- package/dist/list/index.d.mts +0 -5
- package/dist/list/link-list.d.mts +0 -2
- package/dist/list/list.d.mts +0 -3
- package/dist/message/index.d.mts +0 -3
- package/dist/message/message.d.mts +0 -4
- package/dist/modal/index.d.mts +0 -5
- package/dist/modal/modal.d.mts +0 -5
- package/dist/navbar/icons.d.mts +0 -2
- package/dist/navbar/index.d.mts +0 -13
- package/dist/navbar/navbar-expandable-menu.d.mts +0 -7
- package/dist/navbar/navbar.d.mts +0 -9
- package/dist/show-more/index.d.mts +0 -4
- package/dist/show-more/show-more.d.mts +0 -2
- package/dist/skeleton/index.d.mts +0 -2
- package/dist/skeleton/skeleton.d.mts +0 -2
- package/dist/step-indicator/index.d.mts +0 -1
- package/dist/step-indicator/step-indicator.d.mts +0 -1
- package/dist/styled-html/index.d.mts +0 -2
- package/dist/styled-html/styled-html.d.mts +0 -2
- package/dist/table/index.d.mts +0 -1
- package/dist/table/table.d.mts +0 -1
- package/dist/tabs/context.d.mts +0 -3
- package/dist/tabs/index.d.mts +0 -10
- package/dist/tabs/tabs-content.d.mts +0 -4
- package/dist/tabs/tabs-list.d.mts +0 -4
- package/dist/tabs/tabs.d.mts +0 -2
- package/dist/text/index.d.mts +0 -2
- package/dist/text/text.d.mts +0 -2
- package/dist/utilities/auto-animate-height.d.mts +0 -2
- package/dist/utilities/auto-animate-height.d.ts +0 -2
- package/dist/utilities/auto-animate-height.js.map +0 -1
- package/dist/utilities/auto-animate-height.mjs +0 -9
- package/dist/utilities/index.d.mts +0 -2
- package/dist/utilities/index.d.ts +0 -2
- package/dist/utilities/index.js.map +0 -1
- package/dist/utilities/index.mjs +0 -10
- package/dist/utils.d.mts +0 -5
- package/dist/utils.d.ts +0 -5
- package/dist/utils.js.map +0 -1
- package/dist/utils.mjs +0 -16
- package/dist/warning-banner/index.d.mts +0 -2
- package/dist/warning-banner/warning-banner.d.mts +0 -2
- /package/dist/{chunk-DZNH5JHY.mjs.map → chunk-7YWW46R3.mjs.map} +0 -0
- /package/dist/{utilities/auto-animate-height.mjs.map → chunk-ARHJZUZG.mjs.map} +0 -0
- /package/dist/{utilities/index.mjs.map → chunk-BCFV6VOE.mjs.map} +0 -0
- /package/dist/{utils.mjs.map → chunk-CYDWEPFL.mjs.map} +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Link } from "../link";
|
|
5
|
+
import { UnorderedList } from "../list";
|
|
6
|
+
import { Accordion } from ".";
|
|
7
|
+
|
|
8
|
+
const meta: Meta<typeof Accordion> = {
|
|
9
|
+
title: "Accordion",
|
|
10
|
+
component: Accordion,
|
|
11
|
+
args: {
|
|
12
|
+
children: (
|
|
13
|
+
<>
|
|
14
|
+
<Accordion.Item>
|
|
15
|
+
<Accordion.Header>Professional accordion title</Accordion.Header>
|
|
16
|
+
<Accordion.Content>
|
|
17
|
+
This is the simplest form of accordion body. Can be extensive.
|
|
18
|
+
</Accordion.Content>
|
|
19
|
+
</Accordion.Item>
|
|
20
|
+
<Accordion.Item>
|
|
21
|
+
<Accordion.Header>Yet another POAT with «advanced» content</Accordion.Header>
|
|
22
|
+
<Accordion.Content>
|
|
23
|
+
<h4>Hello</h4>
|
|
24
|
+
<div>
|
|
25
|
+
<p>
|
|
26
|
+
This is some really, really exciting stuff with{" "}
|
|
27
|
+
<Link href="https://www.posten.no">a link</Link> and all sorts of things like a
|
|
28
|
+
list, even!
|
|
29
|
+
</p>
|
|
30
|
+
<UnorderedList>
|
|
31
|
+
<li>Unordered</li>
|
|
32
|
+
<li>Like</li>
|
|
33
|
+
<li>You have</li>
|
|
34
|
+
<li>Never seen</li>
|
|
35
|
+
</UnorderedList>
|
|
36
|
+
</div>
|
|
37
|
+
</Accordion.Content>
|
|
38
|
+
</Accordion.Item>
|
|
39
|
+
</>
|
|
40
|
+
),
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
type Story = StoryObj<typeof Accordion>;
|
|
45
|
+
|
|
46
|
+
export const MultipleItems: Story = {
|
|
47
|
+
name: "Multiple items",
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const JustOneItem: Story = {
|
|
51
|
+
name: "Just one item",
|
|
52
|
+
args: {
|
|
53
|
+
children: (
|
|
54
|
+
<Accordion.Item>
|
|
55
|
+
<Accordion.Header>Professional accordion title</Accordion.Header>
|
|
56
|
+
<Accordion.Content>
|
|
57
|
+
This is the simplest form of accordion body. Can be extensive.
|
|
58
|
+
</Accordion.Content>
|
|
59
|
+
</Accordion.Item>
|
|
60
|
+
),
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export const NoIndent: Story = {
|
|
65
|
+
args: {
|
|
66
|
+
indent: false,
|
|
67
|
+
children: (
|
|
68
|
+
<Accordion.Item>
|
|
69
|
+
<Accordion.Header>Professional accordion title</Accordion.Header>
|
|
70
|
+
<Accordion.Content>
|
|
71
|
+
This is the simplest form of accordion body. Can be extensive.
|
|
72
|
+
</Accordion.Content>
|
|
73
|
+
</Accordion.Item>
|
|
74
|
+
),
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const DefaultOpen: Story = {
|
|
79
|
+
args: {
|
|
80
|
+
children: (
|
|
81
|
+
<>
|
|
82
|
+
<Accordion.Item defaultOpen>
|
|
83
|
+
<Accordion.Header>Professional accordion title</Accordion.Header>
|
|
84
|
+
<Accordion.Content>
|
|
85
|
+
This is the simplest form of accordion body. Can be extensive.
|
|
86
|
+
</Accordion.Content>
|
|
87
|
+
</Accordion.Item>
|
|
88
|
+
<Accordion.Item>
|
|
89
|
+
<Accordion.Header>Professional accordion title</Accordion.Header>
|
|
90
|
+
<Accordion.Content>
|
|
91
|
+
This is the simplest form of accordion body. Can be extensive.
|
|
92
|
+
</Accordion.Content>
|
|
93
|
+
</Accordion.Item>
|
|
94
|
+
</>
|
|
95
|
+
),
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const SingleAccordion: Story = {
|
|
100
|
+
name: "Only one open at the same time",
|
|
101
|
+
render: () => {
|
|
102
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks -- it's ok
|
|
103
|
+
const [state, setState] = useState({ one: false, two: false, three: false });
|
|
104
|
+
function toggle(key: keyof typeof state) {
|
|
105
|
+
setState((prev) => {
|
|
106
|
+
return {
|
|
107
|
+
one: key === "one" ? !prev.one : false,
|
|
108
|
+
two: key === "two" ? !prev.two : false,
|
|
109
|
+
three: key === "three" ? !prev.three : false,
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return (
|
|
115
|
+
<Accordion>
|
|
116
|
+
<Accordion.Item
|
|
117
|
+
onOpenChange={() => {
|
|
118
|
+
toggle("one");
|
|
119
|
+
}}
|
|
120
|
+
open={state.one}
|
|
121
|
+
>
|
|
122
|
+
<Accordion.Header>One</Accordion.Header>
|
|
123
|
+
<Accordion.Content>
|
|
124
|
+
Lorum ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget
|
|
125
|
+
</Accordion.Content>
|
|
126
|
+
</Accordion.Item>
|
|
127
|
+
<Accordion.Item
|
|
128
|
+
onOpenChange={() => {
|
|
129
|
+
toggle("two");
|
|
130
|
+
}}
|
|
131
|
+
open={state.two}
|
|
132
|
+
>
|
|
133
|
+
<Accordion.Header>Two</Accordion.Header>
|
|
134
|
+
<Accordion.Content>
|
|
135
|
+
Lorum ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget
|
|
136
|
+
</Accordion.Content>
|
|
137
|
+
</Accordion.Item>
|
|
138
|
+
<Accordion.Item
|
|
139
|
+
onOpenChange={() => {
|
|
140
|
+
toggle("three");
|
|
141
|
+
}}
|
|
142
|
+
open={state.three}
|
|
143
|
+
>
|
|
144
|
+
<Accordion.Header>Three</Accordion.Header>
|
|
145
|
+
<Accordion.Content>
|
|
146
|
+
Lorum ipsum dolor sit amet, consectetur adipiscing elit. Donec euismod, nisl eget
|
|
147
|
+
</Accordion.Content>
|
|
148
|
+
</Accordion.Item>
|
|
149
|
+
</Accordion>
|
|
150
|
+
);
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
export default meta;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { ReactElement } from "react";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
4
|
+
import { AccordionItem, type AccordionItemProps } from "./accordion-item";
|
|
5
|
+
import { AccordionHeader } from "./accordion-header";
|
|
6
|
+
import { AccordionContent } from "./accordion-content";
|
|
7
|
+
|
|
8
|
+
export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
9
|
+
/**
|
|
10
|
+
* Accepts type of <AccordionItem/>
|
|
11
|
+
*/
|
|
12
|
+
children: ReactElement<AccordionItemProps> | ReactElement<AccordionItemProps>[];
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Adds padding to the left of the accordion
|
|
16
|
+
*/
|
|
17
|
+
indent?: boolean;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Displays collapsible content sections
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <Accordion>
|
|
26
|
+
* <Accordion.Item defaultOpen>
|
|
27
|
+
* <Accordion.Header>Item one</Accordion.Header>
|
|
28
|
+
* <Accordion.Content>
|
|
29
|
+
* Some content
|
|
30
|
+
* </Accordion.Content>
|
|
31
|
+
* </Accordion.Item>
|
|
32
|
+
* <Accordion.Item>
|
|
33
|
+
* <Accordion.Header>Item two</Accordion.Header>
|
|
34
|
+
* <Accordion.Content>
|
|
35
|
+
* Some more content
|
|
36
|
+
* </Accordion.Content>
|
|
37
|
+
* </Accordion.Item>
|
|
38
|
+
* </Accordion>
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export const Accordion = forwardRef<HTMLDivElement, AccordionProps>(
|
|
42
|
+
({ children, className, indent = true, ...rest }, ref) => {
|
|
43
|
+
return (
|
|
44
|
+
<div
|
|
45
|
+
{...rest}
|
|
46
|
+
className={clsx(
|
|
47
|
+
"hds-accordion",
|
|
48
|
+
!indent && "hds-accordion--no-indent",
|
|
49
|
+
className as undefined,
|
|
50
|
+
)}
|
|
51
|
+
ref={ref}
|
|
52
|
+
>
|
|
53
|
+
{children}
|
|
54
|
+
</div>
|
|
55
|
+
);
|
|
56
|
+
},
|
|
57
|
+
) as AccordionType;
|
|
58
|
+
Accordion.displayName = "Accordion";
|
|
59
|
+
|
|
60
|
+
Accordion.Item = AccordionItem;
|
|
61
|
+
Accordion.Header = AccordionHeader;
|
|
62
|
+
Accordion.Content = AccordionContent;
|
|
63
|
+
|
|
64
|
+
type AccordionType = ReturnType<typeof forwardRef<HTMLDivElement, AccordionProps>> & {
|
|
65
|
+
Item: typeof AccordionItem;
|
|
66
|
+
Header: typeof AccordionHeader;
|
|
67
|
+
Content: typeof AccordionContent;
|
|
68
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { Accordion } from "./accordion";
|
|
2
|
+
export { AccordionItem } from "./accordion-item";
|
|
3
|
+
export { AccordionHeader } from "./accordion-header";
|
|
4
|
+
export { AccordionContent } from "./accordion-content";
|
|
5
|
+
|
|
6
|
+
export type * from "./accordion";
|
|
7
|
+
export type * from "./accordion-item";
|
|
8
|
+
export type * from "./accordion-header";
|
|
9
|
+
export type * from "./accordion-content";
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { Box } from "../box";
|
|
4
|
+
import { Badge, DarkBadge, WhiteBadge, WarningBadge } from ".";
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof Badge> = {
|
|
7
|
+
title: "Badge",
|
|
8
|
+
component: Badge,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default meta;
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof Badge>;
|
|
14
|
+
|
|
15
|
+
export const Lighter: Story = {
|
|
16
|
+
args: {
|
|
17
|
+
children: "Default badge",
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const Dark: Story = {
|
|
22
|
+
args: {
|
|
23
|
+
children: "Dark badge",
|
|
24
|
+
},
|
|
25
|
+
render: (props) => <DarkBadge {...props} />,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const White: Story = {
|
|
29
|
+
args: {
|
|
30
|
+
children: "White badge",
|
|
31
|
+
},
|
|
32
|
+
render: (props) => (
|
|
33
|
+
<Box>
|
|
34
|
+
<WhiteBadge {...props} />
|
|
35
|
+
</Box>
|
|
36
|
+
),
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const Warning: Story = {
|
|
40
|
+
args: {
|
|
41
|
+
children: "Warning badge",
|
|
42
|
+
},
|
|
43
|
+
render: (props) => <WarningBadge {...props} />,
|
|
44
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
|
|
5
|
+
export interface BadgeProps extends React.AnchorHTMLAttributes<HTMLSpanElement> {
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Font size of the badge
|
|
10
|
+
*
|
|
11
|
+
* @default "small"
|
|
12
|
+
*/
|
|
13
|
+
size?: "small" | "smaller";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
17
|
+
*
|
|
18
|
+
* @default false
|
|
19
|
+
*/
|
|
20
|
+
asChild?: boolean;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const Badge = forwardRef<
|
|
24
|
+
HTMLSpanElement,
|
|
25
|
+
BadgeProps & { variant: "lighter" | "dark" | "white" | "warning" }
|
|
26
|
+
>(({ children, asChild, variant, size = "small", className, ...rest }, ref) => {
|
|
27
|
+
const Component = asChild ? Slot : "span";
|
|
28
|
+
return (
|
|
29
|
+
<Component
|
|
30
|
+
ref={ref}
|
|
31
|
+
className={clsx(
|
|
32
|
+
"hds-badge",
|
|
33
|
+
`hds-badge--${size}`,
|
|
34
|
+
`hds-badge--${variant}`,
|
|
35
|
+
className as undefined,
|
|
36
|
+
)}
|
|
37
|
+
{...rest}
|
|
38
|
+
>
|
|
39
|
+
{children}
|
|
40
|
+
</Component>
|
|
41
|
+
);
|
|
42
|
+
});
|
|
43
|
+
Badge.displayName = "Badge";
|
|
44
|
+
|
|
45
|
+
export const LighterBadge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {
|
|
46
|
+
return <Badge {...props} ref={ref} variant="lighter" />;
|
|
47
|
+
});
|
|
48
|
+
LighterBadge.displayName = "LighterBadge";
|
|
49
|
+
|
|
50
|
+
export const DarkBadge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {
|
|
51
|
+
return <Badge {...props} ref={ref} variant="dark" />;
|
|
52
|
+
});
|
|
53
|
+
DarkBadge.displayName = "DarkBadge";
|
|
54
|
+
|
|
55
|
+
export const WhiteBadge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {
|
|
56
|
+
return <Badge {...props} ref={ref} variant="white" />;
|
|
57
|
+
});
|
|
58
|
+
WhiteBadge.displayName = "WhiteBadge";
|
|
59
|
+
|
|
60
|
+
export const WarningBadge = forwardRef<HTMLSpanElement, BadgeProps>((props, ref) => {
|
|
61
|
+
return <Badge {...props} ref={ref} variant="warning" />;
|
|
62
|
+
});
|
|
63
|
+
WarningBadge.displayName = "WarningBadge";
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Text } from "../text";
|
|
5
|
+
import { Link } from "../link";
|
|
6
|
+
import { Box } from ".";
|
|
7
|
+
|
|
8
|
+
const meta: Meta<typeof Box> = {
|
|
9
|
+
title: "Box",
|
|
10
|
+
component: Box,
|
|
11
|
+
args: {
|
|
12
|
+
closeable: false,
|
|
13
|
+
children: (
|
|
14
|
+
<>
|
|
15
|
+
<Text variant="h3-title" as="h2">
|
|
16
|
+
Box content
|
|
17
|
+
</Text>
|
|
18
|
+
<Text _unstableSpacing>
|
|
19
|
+
This is some body copy in a box, but you can basically add anything you want in here.
|
|
20
|
+
</Text>
|
|
21
|
+
<Link href="#a-link-for-whatever-reason">A link for whatever reason</Link>
|
|
22
|
+
</>
|
|
23
|
+
),
|
|
24
|
+
},
|
|
25
|
+
argTypes: {
|
|
26
|
+
variant: {
|
|
27
|
+
options: ["light-grey", "lighter", "white", "warning"],
|
|
28
|
+
control: {
|
|
29
|
+
type: "radio",
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export default meta;
|
|
36
|
+
|
|
37
|
+
type Story = StoryObj<typeof Box>;
|
|
38
|
+
export const LightGreyBox: Story = {
|
|
39
|
+
args: {
|
|
40
|
+
variant: "light-grey",
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const LighterBox: Story = {
|
|
45
|
+
args: {
|
|
46
|
+
closeable: true,
|
|
47
|
+
variant: "lighter",
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const WhiteBox: Story = {
|
|
52
|
+
args: {
|
|
53
|
+
closeable: true,
|
|
54
|
+
variant: "white",
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const WarningBox: Story = {
|
|
59
|
+
args: {
|
|
60
|
+
closeable: true,
|
|
61
|
+
variant: "warning",
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const AreYouSureDialog: Story = {
|
|
66
|
+
args: {
|
|
67
|
+
closeable: true,
|
|
68
|
+
variant: "warning",
|
|
69
|
+
// eslint-disable-next-line no-alert -- Storybook story
|
|
70
|
+
onClose: () => window.confirm("Are you sure you want to close?"),
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export const Custom: Story = {
|
|
75
|
+
render: function CustomBox() {
|
|
76
|
+
const [closeTimer, setCloseTimer] = useState<number | null>(null);
|
|
77
|
+
function countDownFrom(seconds: number) {
|
|
78
|
+
if (seconds > 0) {
|
|
79
|
+
setCloseTimer(seconds);
|
|
80
|
+
window.setTimeout(() => {
|
|
81
|
+
countDownFrom(seconds - 1);
|
|
82
|
+
}, 1000);
|
|
83
|
+
} else {
|
|
84
|
+
setCloseTimer(0);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Choosing to not render the box at all instead of hiding it with CSS
|
|
89
|
+
if (closeTimer === 0) {
|
|
90
|
+
// eslint-disable-next-line react/jsx-no-useless-fragment -- Typescript did not like it when I returned null in a story
|
|
91
|
+
return <></>;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return (
|
|
95
|
+
<Box variant="lighter">
|
|
96
|
+
{/* Choosing to render the close button manually */}
|
|
97
|
+
<Box.CloseButton
|
|
98
|
+
onClick={() => {
|
|
99
|
+
closeTimer === null && countDownFrom(5);
|
|
100
|
+
}}
|
|
101
|
+
/>
|
|
102
|
+
<Text variant="h3-title" as="h2">
|
|
103
|
+
A customomized box
|
|
104
|
+
{closeTimer !== null && ` - closing in ${closeTimer} seconds`}
|
|
105
|
+
</Text>
|
|
106
|
+
<Text _unstableSpacing>
|
|
107
|
+
With a custom close button, and a custom content. The content can be anything you like.
|
|
108
|
+
</Text>
|
|
109
|
+
</Box>
|
|
110
|
+
);
|
|
111
|
+
},
|
|
112
|
+
};
|
package/src/box/box.tsx
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { forwardRef, useCallback, useState } from "react";
|
|
2
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
3
|
+
import { Slot, Slottable } from "@radix-ui/react-slot";
|
|
4
|
+
|
|
5
|
+
export type BoxCloseButtonProps = Omit<React.HTMLAttributes<HTMLButtonElement>, "children">;
|
|
6
|
+
export const BoxCloseButton = forwardRef<HTMLButtonElement, BoxCloseButtonProps>(
|
|
7
|
+
({ className, ...rest }, ref) => {
|
|
8
|
+
return (
|
|
9
|
+
<button
|
|
10
|
+
className={clsx("hds-box__close-button", className as undefined)}
|
|
11
|
+
ref={ref}
|
|
12
|
+
type="button"
|
|
13
|
+
{...rest}
|
|
14
|
+
/>
|
|
15
|
+
);
|
|
16
|
+
},
|
|
17
|
+
);
|
|
18
|
+
BoxCloseButton.displayName = "Box.CloseButton";
|
|
19
|
+
|
|
20
|
+
export interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Color variant of the box
|
|
25
|
+
*
|
|
26
|
+
* @default "light-grey"
|
|
27
|
+
*/
|
|
28
|
+
variant?: "light-grey" | "lighter" | "white" | "warning";
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* If `true`, a close button will be shown.
|
|
32
|
+
* Use when you want to control the close button using the BoxCloseButton component.
|
|
33
|
+
*
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
closeable?: boolean;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Callback fired when the component requests to be closed.
|
|
40
|
+
* If not set, the component will be closed without any user interaction.
|
|
41
|
+
*
|
|
42
|
+
* If set, and the handler returns non-true value, the component will not be closed.
|
|
43
|
+
* Use this if you want to control the closing of the component, using the `closed` prop
|
|
44
|
+
*
|
|
45
|
+
* If set, and the handler returns the true, the component will be closed.
|
|
46
|
+
* Use this with `window.confirm()` to ask the user to confirm closing the component.
|
|
47
|
+
*/
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents -- It's fine, I want to have the boolean in the type
|
|
49
|
+
onClose?: () => boolean | unknown;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* If `true`, the box will be closed and hidden from view
|
|
53
|
+
*/
|
|
54
|
+
closed?: boolean;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Props applied to the close button element.
|
|
58
|
+
*/
|
|
59
|
+
closeButtonProps?: BoxCloseButtonProps;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
63
|
+
*
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
asChild?: boolean;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export const Box = forwardRef<HTMLDivElement, BoxProps>(
|
|
70
|
+
(
|
|
71
|
+
{
|
|
72
|
+
asChild,
|
|
73
|
+
variant,
|
|
74
|
+
closeable = false,
|
|
75
|
+
onClose: onCloseProp,
|
|
76
|
+
closed: closedProp,
|
|
77
|
+
closeButtonProps,
|
|
78
|
+
children,
|
|
79
|
+
className,
|
|
80
|
+
...rest
|
|
81
|
+
},
|
|
82
|
+
ref,
|
|
83
|
+
) => {
|
|
84
|
+
const [closedState, setClosedState] = useState(false);
|
|
85
|
+
const onClose = useCallback(() => {
|
|
86
|
+
if (onCloseProp) {
|
|
87
|
+
const result = onCloseProp();
|
|
88
|
+
if (result === true) {
|
|
89
|
+
setClosedState(true);
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
setClosedState(true);
|
|
93
|
+
}
|
|
94
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- I know better
|
|
95
|
+
}, []);
|
|
96
|
+
const closed = closedProp ?? closedState;
|
|
97
|
+
const Component = asChild ? Slot : "div";
|
|
98
|
+
|
|
99
|
+
return (
|
|
100
|
+
<Component
|
|
101
|
+
className={clsx(
|
|
102
|
+
"hds-box",
|
|
103
|
+
variant && `hds-box--${variant}`,
|
|
104
|
+
{ "hds-box--closed": closed },
|
|
105
|
+
className as undefined,
|
|
106
|
+
)}
|
|
107
|
+
ref={ref}
|
|
108
|
+
{...rest}
|
|
109
|
+
>
|
|
110
|
+
{closeable ? <BoxCloseButton onClick={onClose} {...closeButtonProps} /> : null}
|
|
111
|
+
<Slottable>{children}</Slottable>
|
|
112
|
+
</Component>
|
|
113
|
+
);
|
|
114
|
+
},
|
|
115
|
+
) as BoxType;
|
|
116
|
+
Box.displayName = "Box";
|
|
117
|
+
|
|
118
|
+
Box.CloseButton = BoxCloseButton;
|
|
119
|
+
|
|
120
|
+
type BoxType = ReturnType<typeof forwardRef<HTMLDivElement, BoxProps>> & {
|
|
121
|
+
CloseButton: typeof BoxCloseButton;
|
|
122
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { Link } from "../link";
|
|
4
|
+
import { Breadcrumbs } from ".";
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof Breadcrumbs> = {
|
|
7
|
+
title: "Breadcrumbs",
|
|
8
|
+
component: Breadcrumbs,
|
|
9
|
+
args: {
|
|
10
|
+
children: (
|
|
11
|
+
<>
|
|
12
|
+
<li>
|
|
13
|
+
<Link href="https://www.posten.no">Home</Link>
|
|
14
|
+
</li>
|
|
15
|
+
<li>
|
|
16
|
+
<Link href="https://www.posten.no">Somewhere</Link>
|
|
17
|
+
</li>
|
|
18
|
+
<li>
|
|
19
|
+
<Link href="https://www.posten.no">Deep inside</Link>
|
|
20
|
+
</li>
|
|
21
|
+
<li>
|
|
22
|
+
<Link href="https://www.posten.no">Posten dot no</Link>
|
|
23
|
+
</li>
|
|
24
|
+
<li>You will find this page</li>
|
|
25
|
+
</>
|
|
26
|
+
),
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export default meta;
|
|
31
|
+
|
|
32
|
+
type Story = StoryObj<typeof Breadcrumbs>;
|
|
33
|
+
|
|
34
|
+
export const Default: Story = {};
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* You should have at minimum two levels in your hierarchy to use breadcrumbs.
|
|
38
|
+
*/
|
|
39
|
+
export const TwoElements: Story = {
|
|
40
|
+
args: {
|
|
41
|
+
children: (
|
|
42
|
+
<>
|
|
43
|
+
<li>
|
|
44
|
+
<Link href="https://www.posten.no">Track letters and parcels</Link>
|
|
45
|
+
</li>
|
|
46
|
+
<li>Shipment from SOMEONE YOU KNOW</li>
|
|
47
|
+
</>
|
|
48
|
+
),
|
|
49
|
+
},
|
|
50
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { forwardRef, type HTMLAttributes, type ReactElement, type ReactNode } from "react";
|
|
2
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
3
|
+
|
|
4
|
+
export interface BreadcrumbsProps extends HTMLAttributes<HTMLOListElement> {
|
|
5
|
+
children: ReactNode | ReactElement<HTMLLIElement> | ReactElement<HTMLLIElement>[];
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Props passed to the `ol` html element
|
|
9
|
+
*/
|
|
10
|
+
olProps?: HTMLAttributes<HTMLElement>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A breadcrumbs navigation menu
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
*
|
|
18
|
+
* ```tsx
|
|
19
|
+
* <Breadcrumbs data-testid="breadcrumbs">
|
|
20
|
+
* <li><Link href="../">Previous page</Link></li>
|
|
21
|
+
* <li aria-current="page">Current page</li>
|
|
22
|
+
* </Breadcrumbs>
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Outputs this html structure
|
|
26
|
+
*
|
|
27
|
+
* ```html
|
|
28
|
+
* <nav data-testid="breadcrumbs">
|
|
29
|
+
* <ol>
|
|
30
|
+
* <li><a href="../">Previous page</a></li>
|
|
31
|
+
* <li aria-current="page">Current page</li>
|
|
32
|
+
* </ol>
|
|
33
|
+
* </nav>
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export const Breadcrumbs = forwardRef<HTMLDivElement, BreadcrumbsProps>(
|
|
37
|
+
({ olProps, children, ...rest }, ref) => {
|
|
38
|
+
return (
|
|
39
|
+
<nav ref={ref} {...rest}>
|
|
40
|
+
<ol {...olProps} className={clsx("hds-breadcrumbs", olProps?.className as undefined)}>
|
|
41
|
+
{children}
|
|
42
|
+
</ol>
|
|
43
|
+
</nav>
|
|
44
|
+
);
|
|
45
|
+
},
|
|
46
|
+
);
|
|
47
|
+
Breadcrumbs.displayName = "Breadcrumbs";
|