@postenbring/hedwig-react 0.0.81 → 0.0.82
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-XC3UHH2U.mjs → chunk-3WVRY6CC.mjs} +4 -4
- package/dist/{chunk-XC3UHH2U.mjs.map → chunk-3WVRY6CC.mjs.map} +1 -1
- package/dist/{chunk-GSJPTZT3.mjs → chunk-6AGDK5V3.mjs} +34 -19
- package/dist/chunk-6AGDK5V3.mjs.map +1 -0
- package/dist/{chunk-3MQKXNZ6.mjs → chunk-7UD72WOC.mjs} +13 -1
- package/dist/chunk-7UD72WOC.mjs.map +1 -0
- package/dist/chunk-7YWW46R3.mjs +1 -0
- package/dist/chunk-7YWW46R3.mjs.map +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-ARHJZUZG.mjs.map +1 -0
- package/dist/chunk-BCFV6VOE.mjs +1 -0
- package/dist/chunk-BCFV6VOE.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-PLXB3TNA.mjs → chunk-D7QPJIUZ.mjs} +5 -5
- package/dist/{chunk-PLXB3TNA.mjs.map → chunk-D7QPJIUZ.mjs.map} +1 -1
- 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-XUWZ4HGD.mjs → chunk-LCJSUBCZ.mjs} +48 -45
- package/dist/chunk-LCJSUBCZ.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-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-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/index.d.ts +3 -2
- package/dist/form/date-picker/index.d.ts.map +1 -0
- 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/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 +372 -393
- package/dist/index-no-css.js.map +1 -1
- package/dist/index-no-css.mjs +50 -57
- package/dist/index.d.ts +11 -128
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +372 -393
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +50 -57
- 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 +60 -62
- package/dist/modal/index.js.map +1 -1
- package/dist/modal/index.mjs +5 -6
- package/dist/modal/modal.d.ts +81 -5
- package/dist/modal/modal.d.ts.map +1 -0
- package/dist/modal/modal.js +59 -55
- package/dist/modal/modal.js.map +1 -1
- package/dist/modal/modal.mjs +2 -2
- 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 +144 -145
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +4 -5
- 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.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/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 +34 -37
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/index.mjs +4 -4
- 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.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/utilities/auto-animate-height.d.ts +33 -2
- package/dist/utilities/auto-animate-height.d.ts.map +1 -0
- package/dist/utilities/index.d.ts +3 -2
- package/dist/utilities/index.d.ts.map +1 -0
- package/dist/utils.d.ts +28 -5
- package/dist/utils.d.ts.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 +9 -5
- 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/utilities/auto-animate-height.tsx +139 -0
- package/src/utilities/index.ts +2 -0
- package/src/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-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-ENKVTAJB.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/index.d.mts +0 -2
- package/dist/utils.d.mts +0 -5
- package/dist/warning-banner/index.d.mts +0 -2
- package/dist/warning-banner/warning-banner.d.mts +0 -2
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { useId, forwardRef, Children, isValidElement, cloneElement } from "react";
|
|
2
|
+
import type { LabelHTMLAttributes, ReactNode, CSSProperties } from "react";
|
|
3
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
4
|
+
import { ErrorMessage } from "../error-message";
|
|
5
|
+
|
|
6
|
+
interface InputProps {
|
|
7
|
+
"aria-describedby"?: string;
|
|
8
|
+
"aria-invalid"?: boolean;
|
|
9
|
+
id?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface InputGroupProps {
|
|
14
|
+
id?: string;
|
|
15
|
+
className?: string;
|
|
16
|
+
style?: CSSProperties;
|
|
17
|
+
variant?: "default" | "white";
|
|
18
|
+
errorMessage?: ReactNode;
|
|
19
|
+
labelProps?: LabelHTMLAttributes<HTMLLabelElement>;
|
|
20
|
+
label: ReactNode;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
readOnly?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* `children` must be either a single input element or a render function.
|
|
25
|
+
*
|
|
26
|
+
* If you use a render function, make sure you spread the input props to the appropriate element.
|
|
27
|
+
*/
|
|
28
|
+
children: Exclude<ReactNode, Iterable<ReactNode>> | ((inputProps: InputProps) => ReactNode);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(
|
|
32
|
+
{
|
|
33
|
+
id,
|
|
34
|
+
className,
|
|
35
|
+
style,
|
|
36
|
+
variant = "default",
|
|
37
|
+
errorMessage,
|
|
38
|
+
labelProps: { className: labelClassName, ...labelProps } = {},
|
|
39
|
+
label,
|
|
40
|
+
disabled,
|
|
41
|
+
readOnly,
|
|
42
|
+
children,
|
|
43
|
+
...rest
|
|
44
|
+
},
|
|
45
|
+
ref,
|
|
46
|
+
) {
|
|
47
|
+
const errorMessageId = useId();
|
|
48
|
+
const inputId = useId();
|
|
49
|
+
|
|
50
|
+
const renderInput = () => {
|
|
51
|
+
const inputProps: InputProps = {
|
|
52
|
+
"aria-describedby": errorMessage ? errorMessageId : undefined,
|
|
53
|
+
"aria-invalid": errorMessage ? true : undefined,
|
|
54
|
+
id: id ?? inputId,
|
|
55
|
+
className: clsx("hds-input-group__input"),
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
if (typeof children === "function") {
|
|
59
|
+
return children(inputProps);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const input: ReactNode = Children.toArray(children)[0];
|
|
63
|
+
|
|
64
|
+
if (!isValidElement<InputProps>(input)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return cloneElement<InputProps>(input, {
|
|
69
|
+
...inputProps,
|
|
70
|
+
...input.props,
|
|
71
|
+
className: `${inputProps.className} ${input.props.className ?? ""}`,
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<div
|
|
77
|
+
className={clsx(
|
|
78
|
+
"hds-input-group",
|
|
79
|
+
{
|
|
80
|
+
[`hds-input-group--${variant}`]: variant,
|
|
81
|
+
"hds-input-group--error": errorMessage,
|
|
82
|
+
},
|
|
83
|
+
className as undefined,
|
|
84
|
+
)}
|
|
85
|
+
ref={ref}
|
|
86
|
+
style={style}
|
|
87
|
+
{...rest}
|
|
88
|
+
>
|
|
89
|
+
<label
|
|
90
|
+
className={clsx("hds-input-group__label", labelClassName as undefined)}
|
|
91
|
+
{...labelProps}
|
|
92
|
+
htmlFor={id ?? inputId}
|
|
93
|
+
>
|
|
94
|
+
{label}
|
|
95
|
+
</label>
|
|
96
|
+
<div
|
|
97
|
+
className={clsx("hds-input-group__input-wrapper")}
|
|
98
|
+
data-disabled={disabled}
|
|
99
|
+
data-readonly={readOnly}
|
|
100
|
+
>
|
|
101
|
+
{renderInput()}
|
|
102
|
+
</div>
|
|
103
|
+
<ErrorMessage id={errorMessageId}>{errorMessage}</ErrorMessage>
|
|
104
|
+
</div>
|
|
105
|
+
);
|
|
106
|
+
});
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { VStack } from "../../layout";
|
|
4
|
+
import { Radiobutton, RadioGroup } from "./index";
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof Radiobutton> = {
|
|
7
|
+
title: "Form/Radiobutton/Radiobutton",
|
|
8
|
+
component: Radiobutton,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default meta;
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof Radiobutton>;
|
|
14
|
+
|
|
15
|
+
export const JustARadiobutton: Story = {
|
|
16
|
+
name: "Just a radiobutton",
|
|
17
|
+
args: {
|
|
18
|
+
title: "",
|
|
19
|
+
children: "Just a radiobutton",
|
|
20
|
+
checked: true,
|
|
21
|
+
hasError: false,
|
|
22
|
+
variant: "plain",
|
|
23
|
+
},
|
|
24
|
+
argTypes: {
|
|
25
|
+
variant: { control: "inline-radio", options: ["plain", "bounding-box"] },
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export const PlainRadiobuttons: Story = {
|
|
30
|
+
name: "Radiobuttons",
|
|
31
|
+
render: (_props) => (
|
|
32
|
+
<RadioGroup legend="Radiobuttons should be grouped in a RadioGroup" name="group1">
|
|
33
|
+
<Radiobutton>This is a radiobutton</Radiobutton>
|
|
34
|
+
<Radiobutton>This is another radiobutton</Radiobutton>
|
|
35
|
+
</RadioGroup>
|
|
36
|
+
),
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const PlainRadiobuttonsWithError: Story = {
|
|
40
|
+
name: "Radiobuttons with error",
|
|
41
|
+
render: (_props) => (
|
|
42
|
+
<RadioGroup
|
|
43
|
+
legend="RadioGroup will aid you with styling and aria when it is provided an error message"
|
|
44
|
+
errorMessage="Something is wrong"
|
|
45
|
+
name="group1error"
|
|
46
|
+
>
|
|
47
|
+
<Radiobutton>This is a radiobutton</Radiobutton>
|
|
48
|
+
<Radiobutton>This is another radiobutton</Radiobutton>
|
|
49
|
+
</RadioGroup>
|
|
50
|
+
),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export const BoundedRadiobutton: Story = {
|
|
54
|
+
name: "Radiobuttons with bounding box",
|
|
55
|
+
render: (_props) => (
|
|
56
|
+
<VStack gap="8" role="radiogroup">
|
|
57
|
+
<Radiobutton name="group2" variant="bounding-box">
|
|
58
|
+
This is a radiobutton with bounding box
|
|
59
|
+
</Radiobutton>
|
|
60
|
+
<Radiobutton hasError name="group2" variant="bounding-box">
|
|
61
|
+
This is a radiobutton with bounding box and error
|
|
62
|
+
</Radiobutton>
|
|
63
|
+
</VStack>
|
|
64
|
+
),
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const DetailedContentRadiobutton: Story = {
|
|
68
|
+
name: "Radiobuttons with title",
|
|
69
|
+
render: (_props) => (
|
|
70
|
+
<VStack gap="8" role="radiogroup">
|
|
71
|
+
<Radiobutton name="group4" title="Option 1">
|
|
72
|
+
Detailed description if needed
|
|
73
|
+
</Radiobutton>
|
|
74
|
+
<Radiobutton hasError name="group4" title="Option 2">
|
|
75
|
+
Detailed description if needed
|
|
76
|
+
</Radiobutton>
|
|
77
|
+
</VStack>
|
|
78
|
+
),
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const DetailedContentRadiobuttonWithBoundingBox: Story = {
|
|
82
|
+
name: "Radiobuttons with bounding box and title",
|
|
83
|
+
render: (_props) => (
|
|
84
|
+
<VStack gap="8" role="radiogroup">
|
|
85
|
+
<Radiobutton name="group5" title="Option 1" variant="bounding-box">
|
|
86
|
+
Detailed description if needed
|
|
87
|
+
</Radiobutton>
|
|
88
|
+
<Radiobutton hasError name="group5" title="Option 2" variant="bounding-box">
|
|
89
|
+
Detailed description if needed
|
|
90
|
+
</Radiobutton>
|
|
91
|
+
</VStack>
|
|
92
|
+
),
|
|
93
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { forwardRef, type InputHTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
3
|
+
import { useFieldsetContext } from "../fieldset";
|
|
4
|
+
import { type RadioGroupProps, useRadioGroupContext } from "./radiogroup";
|
|
5
|
+
|
|
6
|
+
export interface RadiobuttonProps
|
|
7
|
+
extends Omit<InputHTMLAttributes<HTMLInputElement>, "defaultValue"> {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
variant?: "plain" | "bounding-box";
|
|
10
|
+
/**
|
|
11
|
+
* Set to `true` to add error styling. The component will take care of aria to indicate invalid state.
|
|
12
|
+
*
|
|
13
|
+
* Normally you don't need this, as you should wrap your Radiobuttons in the RadioGroup component.
|
|
14
|
+
* When providing an errorMessage to RadioGroup, all contained Radiobuttons will get correct hasError state.
|
|
15
|
+
*
|
|
16
|
+
* You can use this when your Radiobutton is part of a non-HDS fieldset which shows an error message.
|
|
17
|
+
*/
|
|
18
|
+
hasError?: boolean;
|
|
19
|
+
title?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const isChecked = ({
|
|
23
|
+
checked,
|
|
24
|
+
selectedValue,
|
|
25
|
+
value,
|
|
26
|
+
}: Pick<RadiobuttonProps, "checked" | "value"> & {
|
|
27
|
+
selectedValue: RadioGroupProps["value"];
|
|
28
|
+
}) => {
|
|
29
|
+
if (typeof checked !== "undefined") return checked;
|
|
30
|
+
if (typeof selectedValue !== "undefined") return value === selectedValue;
|
|
31
|
+
return undefined;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const Radiobutton = forwardRef<HTMLInputElement, RadiobuttonProps>(
|
|
35
|
+
(
|
|
36
|
+
{
|
|
37
|
+
checked,
|
|
38
|
+
value,
|
|
39
|
+
variant = "plain",
|
|
40
|
+
hasError: hasErrorProp,
|
|
41
|
+
title,
|
|
42
|
+
children,
|
|
43
|
+
className,
|
|
44
|
+
...rest
|
|
45
|
+
},
|
|
46
|
+
ref,
|
|
47
|
+
) => {
|
|
48
|
+
const {
|
|
49
|
+
value: selectedValue,
|
|
50
|
+
hasError: hasRadioGroupError,
|
|
51
|
+
...context
|
|
52
|
+
} = useRadioGroupContext();
|
|
53
|
+
const { hasError: hasFieldsetError } = useFieldsetContext();
|
|
54
|
+
const hasError = hasFieldsetError || hasRadioGroupError || hasErrorProp;
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<div
|
|
58
|
+
className={clsx(
|
|
59
|
+
"hds-radiobutton",
|
|
60
|
+
{
|
|
61
|
+
[`hds-radiobutton--${variant}`]: variant === "bounding-box",
|
|
62
|
+
"hds-radiobutton--error": hasError,
|
|
63
|
+
},
|
|
64
|
+
className as undefined,
|
|
65
|
+
)}
|
|
66
|
+
>
|
|
67
|
+
<label>
|
|
68
|
+
<input
|
|
69
|
+
{...context}
|
|
70
|
+
{...rest}
|
|
71
|
+
checked={isChecked({ checked, selectedValue, value })}
|
|
72
|
+
value={value}
|
|
73
|
+
ref={ref}
|
|
74
|
+
type="radio"
|
|
75
|
+
/>
|
|
76
|
+
<span aria-hidden className="hds-radiobutton__checkmark" />
|
|
77
|
+
{title ? <p className="hds-radiobutton__title">{title}</p> : children}
|
|
78
|
+
</label>
|
|
79
|
+
{title ? children : null}
|
|
80
|
+
</div>
|
|
81
|
+
);
|
|
82
|
+
},
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
Radiobutton.displayName = "Radiobutton";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { RadioGroup } from "./radiogroup";
|
|
4
|
+
import { Radiobutton } from "./index";
|
|
5
|
+
|
|
6
|
+
const meta: Meta<typeof RadioGroup> = {
|
|
7
|
+
title: "Form/Radiobutton/Radiogroup",
|
|
8
|
+
component: RadioGroup,
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export default meta;
|
|
12
|
+
|
|
13
|
+
type Story = StoryObj<typeof RadioGroup>;
|
|
14
|
+
|
|
15
|
+
export const PlainRadioGroup: Story = {
|
|
16
|
+
name: "Radio group with radiobuttons",
|
|
17
|
+
args: {
|
|
18
|
+
legend: "Radio group with radiobuttons",
|
|
19
|
+
errorMessage: "",
|
|
20
|
+
name: "group1",
|
|
21
|
+
value: undefined,
|
|
22
|
+
onChange: () => {
|
|
23
|
+
return undefined;
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
argTypes: {
|
|
27
|
+
value: {
|
|
28
|
+
description: "Use this prop for a controlled value",
|
|
29
|
+
control: "inline-radio",
|
|
30
|
+
options: [undefined, "First radiobutton", "Second radiobutton"],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
render: (props) => (
|
|
34
|
+
<RadioGroup {...props}>
|
|
35
|
+
<Radiobutton value="First radiobutton">This is a radiobutton</Radiobutton>
|
|
36
|
+
<Radiobutton value="Second radiobutton">This is another radiobutton</Radiobutton>
|
|
37
|
+
</RadioGroup>
|
|
38
|
+
),
|
|
39
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type ChangeEventHandler,
|
|
3
|
+
createContext,
|
|
4
|
+
forwardRef,
|
|
5
|
+
type ReactNode,
|
|
6
|
+
useContext,
|
|
7
|
+
} from "react";
|
|
8
|
+
import { Fieldset, type FieldsetProps } from "../fieldset";
|
|
9
|
+
import type { RadiobuttonProps } from "./radiobutton";
|
|
10
|
+
|
|
11
|
+
export interface RadioGroupProps extends Omit<FieldsetProps, "onChange"> {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
/** Will be passed to all Radiobuttons within the radio group */
|
|
14
|
+
name?: RadiobuttonProps["name"];
|
|
15
|
+
/** If you want the group to be controlled, you can pass the selected value here */
|
|
16
|
+
value?: RadiobuttonProps["value"];
|
|
17
|
+
/**
|
|
18
|
+
* Error message is passed to the internal Fieldset, and will also give contained Radiobuttons
|
|
19
|
+
* error styling and aria to indicate invalid state.
|
|
20
|
+
*/
|
|
21
|
+
errorMessage?: ReactNode;
|
|
22
|
+
/** Will be passed to all Radiobuttons within the radio group */
|
|
23
|
+
onChange?: ChangeEventHandler<HTMLInputElement> | undefined;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
type RadioGroupContextProps = {
|
|
27
|
+
hasError: boolean;
|
|
28
|
+
} & Pick<RadioGroupProps, "name" | "value" | "onChange">;
|
|
29
|
+
|
|
30
|
+
const RadioGroupContext = createContext<RadioGroupContextProps>({
|
|
31
|
+
hasError: false,
|
|
32
|
+
onChange: () => {
|
|
33
|
+
return undefined;
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
export const useRadioGroupContext = () => useContext(RadioGroupContext);
|
|
38
|
+
|
|
39
|
+
export const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(function RadioGroup(
|
|
40
|
+
{ name, value, errorMessage, onChange, children, ...rest },
|
|
41
|
+
ref,
|
|
42
|
+
) {
|
|
43
|
+
return (
|
|
44
|
+
<RadioGroupContext.Provider value={{ name, value, hasError: Boolean(errorMessage), onChange }}>
|
|
45
|
+
<Fieldset errorMessage={errorMessage} {...rest} ref={ref}>
|
|
46
|
+
{children}
|
|
47
|
+
</Fieldset>
|
|
48
|
+
</RadioGroupContext.Provider>
|
|
49
|
+
);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
RadioGroup.displayName = "RadioGroup";
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { Select } from ".";
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof Select> = {
|
|
6
|
+
title: "Form/Select",
|
|
7
|
+
component: Select,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default meta;
|
|
11
|
+
|
|
12
|
+
type Story = StoryObj<typeof Select>;
|
|
13
|
+
|
|
14
|
+
export const Default: Story = {
|
|
15
|
+
args: {
|
|
16
|
+
label: "Default select",
|
|
17
|
+
errorMessage: "",
|
|
18
|
+
variant: "default",
|
|
19
|
+
},
|
|
20
|
+
argTypes: {
|
|
21
|
+
variant: { control: "inline-radio", options: ["default", "white"] },
|
|
22
|
+
},
|
|
23
|
+
render: (props) => (
|
|
24
|
+
<Select {...props} defaultValue="">
|
|
25
|
+
<option disabled hidden value="">
|
|
26
|
+
Please select
|
|
27
|
+
</option>
|
|
28
|
+
<option value="1">option 1</option>
|
|
29
|
+
<option value="2">option 2</option>
|
|
30
|
+
<option value="3">option 3</option>
|
|
31
|
+
</Select>
|
|
32
|
+
),
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const White: Story = {
|
|
36
|
+
args: {
|
|
37
|
+
label: "White select",
|
|
38
|
+
variant: "white",
|
|
39
|
+
},
|
|
40
|
+
render: (props) => (
|
|
41
|
+
<div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
|
|
42
|
+
<Select {...props} defaultValue="">
|
|
43
|
+
<option disabled hidden value="">
|
|
44
|
+
Please select
|
|
45
|
+
</option>
|
|
46
|
+
<option value="1">option 1</option>
|
|
47
|
+
<option value="2">option 2</option>
|
|
48
|
+
<option value="3">option 3</option>
|
|
49
|
+
</Select>
|
|
50
|
+
</div>
|
|
51
|
+
),
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const DefaultWithError: Story = {
|
|
55
|
+
args: {
|
|
56
|
+
label: "select with error",
|
|
57
|
+
name: "name",
|
|
58
|
+
id: "someId",
|
|
59
|
+
errorMessage: "Something is wrong",
|
|
60
|
+
},
|
|
61
|
+
render: (props) => (
|
|
62
|
+
<Select {...props} defaultValue="">
|
|
63
|
+
<option disabled hidden value="">
|
|
64
|
+
Please select
|
|
65
|
+
</option>
|
|
66
|
+
<option value="1">option 1</option>
|
|
67
|
+
<option value="2">option 2</option>
|
|
68
|
+
<option value="3">option 3</option>
|
|
69
|
+
</Select>
|
|
70
|
+
),
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export const WhiteWithError: Story = {
|
|
74
|
+
args: {
|
|
75
|
+
label: "White select with error",
|
|
76
|
+
variant: "white",
|
|
77
|
+
name: "name",
|
|
78
|
+
id: "someId",
|
|
79
|
+
errorMessage: "Something is wrong",
|
|
80
|
+
},
|
|
81
|
+
render: (props) => (
|
|
82
|
+
<div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
|
|
83
|
+
<Select {...props} defaultValue="">
|
|
84
|
+
<option disabled hidden value="">
|
|
85
|
+
Please select
|
|
86
|
+
</option>
|
|
87
|
+
<option value="1">option 1</option>
|
|
88
|
+
<option value="2">option 2</option>
|
|
89
|
+
<option value="3">option 3</option>
|
|
90
|
+
</Select>
|
|
91
|
+
</div>
|
|
92
|
+
),
|
|
93
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { forwardRef, type ReactNode , type SelectHTMLAttributes } from "react";
|
|
2
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
3
|
+
import { InputGroup } from "../input-group";
|
|
4
|
+
import type { InputGroupProps } from "../input-group";
|
|
5
|
+
|
|
6
|
+
export type SelectProps = Omit<
|
|
7
|
+
InputGroupProps & SelectHTMLAttributes<HTMLSelectElement>,
|
|
8
|
+
"readOnly" | "children"
|
|
9
|
+
> & { children: ReactNode };
|
|
10
|
+
|
|
11
|
+
export const Select = forwardRef<HTMLSelectElement, SelectProps>(function Select(
|
|
12
|
+
{ className, variant, errorMessage, labelProps, label, id, style, disabled, children, ...rest },
|
|
13
|
+
ref,
|
|
14
|
+
) {
|
|
15
|
+
return (
|
|
16
|
+
<InputGroup
|
|
17
|
+
className={clsx("hds-select", className as undefined)}
|
|
18
|
+
disabled={disabled}
|
|
19
|
+
errorMessage={errorMessage}
|
|
20
|
+
id={id}
|
|
21
|
+
label={label}
|
|
22
|
+
labelProps={labelProps}
|
|
23
|
+
style={style}
|
|
24
|
+
variant={variant}
|
|
25
|
+
>
|
|
26
|
+
<select {...rest} disabled={disabled} ref={ref}>
|
|
27
|
+
{children}
|
|
28
|
+
</select>
|
|
29
|
+
</InputGroup>
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
Select.displayName = "Select";
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/* eslint-disable import/no-extraneous-dependencies -- storybook story */
|
|
2
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
+
import { Textarea } from ".";
|
|
4
|
+
|
|
5
|
+
const meta: Meta<typeof Textarea> = {
|
|
6
|
+
title: "Form/Textarea",
|
|
7
|
+
component: Textarea,
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default meta;
|
|
11
|
+
|
|
12
|
+
type Story = StoryObj<typeof Textarea>;
|
|
13
|
+
|
|
14
|
+
export const PlainTextarea: Story = {
|
|
15
|
+
args: {
|
|
16
|
+
label: "Some kind of textarea",
|
|
17
|
+
placeholder: "I am a placeholder",
|
|
18
|
+
errorMessage: "",
|
|
19
|
+
readOnly: false,
|
|
20
|
+
variant: "default",
|
|
21
|
+
},
|
|
22
|
+
argTypes: {
|
|
23
|
+
variant: { control: "inline-radio", options: ["default", "white"] },
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const PlainTextareaWithError: Story = {
|
|
28
|
+
args: {
|
|
29
|
+
label: "Some kind of textarea with error",
|
|
30
|
+
errorMessage: "This is invalid",
|
|
31
|
+
placeholder: "I am a placeholder",
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const ReadonlyTextarea: Story = {
|
|
36
|
+
args: {
|
|
37
|
+
label: "Some kind of readonly textarea",
|
|
38
|
+
readOnly: true,
|
|
39
|
+
value: "This is a read-only value",
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const ReadonlyTextareaWithError: Story = {
|
|
44
|
+
args: {
|
|
45
|
+
label: "Some kind of readonly textarea",
|
|
46
|
+
readOnly: true,
|
|
47
|
+
value: "This is a read-only value",
|
|
48
|
+
errorMessage: "This is invalid",
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export const WhiteTextarea: Story = {
|
|
53
|
+
args: {
|
|
54
|
+
label: "Some kind of white textarea",
|
|
55
|
+
variant: "white",
|
|
56
|
+
placeholder: "I am a placeholder",
|
|
57
|
+
},
|
|
58
|
+
render: (props) => (
|
|
59
|
+
<div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
|
|
60
|
+
<Textarea {...props} />
|
|
61
|
+
</div>
|
|
62
|
+
),
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const WhiteTextareaWithError: Story = {
|
|
66
|
+
args: {
|
|
67
|
+
label: "Some kind of white textarea",
|
|
68
|
+
variant: "white",
|
|
69
|
+
placeholder: "I am a placeholder",
|
|
70
|
+
errorMessage: "This is invalid",
|
|
71
|
+
},
|
|
72
|
+
render: (props) => (
|
|
73
|
+
<div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
|
|
74
|
+
<Textarea {...props} />
|
|
75
|
+
</div>
|
|
76
|
+
),
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export const WhiteReadonlyTextarea: Story = {
|
|
80
|
+
args: {
|
|
81
|
+
label: "Some kind of readonly textarea",
|
|
82
|
+
variant: "white",
|
|
83
|
+
readOnly: true,
|
|
84
|
+
value: "This is a read-only value",
|
|
85
|
+
},
|
|
86
|
+
render: (props) => (
|
|
87
|
+
<div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
|
|
88
|
+
<Textarea {...props} />
|
|
89
|
+
</div>
|
|
90
|
+
),
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const WhiteReadonlyTextareaWithError: Story = {
|
|
94
|
+
args: {
|
|
95
|
+
label: "Some kind of readonly textarea",
|
|
96
|
+
variant: "white",
|
|
97
|
+
readOnly: true,
|
|
98
|
+
value: "This is a read-only value",
|
|
99
|
+
errorMessage: "This is invalid",
|
|
100
|
+
},
|
|
101
|
+
render: (props) => (
|
|
102
|
+
<div style={{ background: "var(--hds-ui-colors-light-grey-fill)", padding: "1em" }}>
|
|
103
|
+
<Textarea {...props} />
|
|
104
|
+
</div>
|
|
105
|
+
),
|
|
106
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { forwardRef } from "react";
|
|
2
|
+
import type { TextareaHTMLAttributes } from "react";
|
|
3
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
4
|
+
import { InputGroup } from "../input-group";
|
|
5
|
+
import type { InputGroupProps } from "../input-group";
|
|
6
|
+
|
|
7
|
+
export type TextareaProps = Omit<
|
|
8
|
+
InputGroupProps & TextareaHTMLAttributes<HTMLTextAreaElement>,
|
|
9
|
+
"children"
|
|
10
|
+
>;
|
|
11
|
+
|
|
12
|
+
export const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(
|
|
13
|
+
{ className, variant, errorMessage, labelProps, label, id, style, disabled, readOnly, ...rest },
|
|
14
|
+
ref,
|
|
15
|
+
) {
|
|
16
|
+
return (
|
|
17
|
+
<InputGroup
|
|
18
|
+
className={clsx("hds-textarea", className as undefined)}
|
|
19
|
+
disabled={disabled}
|
|
20
|
+
errorMessage={errorMessage}
|
|
21
|
+
id={id}
|
|
22
|
+
label={label}
|
|
23
|
+
labelProps={labelProps}
|
|
24
|
+
readOnly={readOnly}
|
|
25
|
+
style={style}
|
|
26
|
+
variant={variant}
|
|
27
|
+
>
|
|
28
|
+
<textarea {...rest} disabled={disabled} readOnly={readOnly} ref={ref} />
|
|
29
|
+
</InputGroup>
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
Textarea.displayName = "Textarea";
|