@postenbring/hedwig-react 0.0.66 → 0.0.68
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/_tsup-dts-rollup.d.mts +310 -128
- package/dist/_tsup-dts-rollup.d.ts +310 -128
- package/dist/accordion/index.d.mts +3 -3
- package/dist/accordion/index.d.ts +3 -3
- package/dist/accordion/index.js +8 -2
- package/dist/accordion/index.js.map +1 -1
- package/dist/accordion/index.mjs +14 -5
- package/dist/box/index.d.mts +1 -1
- package/dist/box/index.d.ts +1 -1
- package/dist/box/index.js +4 -2
- package/dist/box/index.js.map +1 -1
- package/dist/box/index.mjs +6 -3
- package/dist/card/index.d.mts +2 -2
- package/dist/card/index.d.ts +2 -2
- package/dist/card/index.js +12 -2
- package/dist/card/index.js.map +1 -1
- package/dist/card/index.mjs +14 -3
- package/dist/{chunk-2ICZ3Q7N.mjs → chunk-2FXMUF6K.mjs} +2 -2
- package/dist/{chunk-X46LM2QH.mjs → chunk-3KZOKDKP.mjs} +13 -3
- package/dist/chunk-3KZOKDKP.mjs.map +1 -0
- package/dist/{chunk-CLXHNRAI.mjs → chunk-B56JZJOS.mjs} +5 -3
- package/dist/chunk-B56JZJOS.mjs.map +1 -0
- package/dist/chunk-BVG5VSZK.mjs +1 -0
- package/dist/{chunk-RVJD2UZF.mjs → chunk-DFH4YKQA.mjs} +2 -2
- package/dist/chunk-DFH4YKQA.mjs.map +1 -0
- package/dist/chunk-DIDVODBP.mjs +13 -0
- package/dist/chunk-DIDVODBP.mjs.map +1 -0
- package/dist/{chunk-AR2NOI4U.mjs → chunk-EJ7ANN7M.mjs} +1 -1
- package/dist/{chunk-AR2NOI4U.mjs.map → chunk-EJ7ANN7M.mjs.map} +1 -1
- package/dist/{chunk-ZTYEOZLK.mjs → chunk-F4STR6SD.mjs} +2 -2
- package/dist/chunk-F4STR6SD.mjs.map +1 -0
- package/dist/{chunk-2JH4FG63.mjs → chunk-FOZSX44S.mjs} +2 -2
- package/dist/{chunk-2JH4FG63.mjs.map → chunk-FOZSX44S.mjs.map} +1 -1
- package/dist/chunk-G2SOAFGS.mjs +86 -0
- package/dist/chunk-G2SOAFGS.mjs.map +1 -0
- package/dist/{chunk-RXIP2JTE.mjs → chunk-K2HG7WRK.mjs} +2 -2
- package/dist/{chunk-RXIP2JTE.mjs.map → chunk-K2HG7WRK.mjs.map} +1 -1
- package/dist/{chunk-RK6BB3HH.mjs → chunk-KTRIVJM3.mjs} +2 -2
- package/dist/{chunk-BZNDK3KJ.mjs → chunk-NMMFIRLZ.mjs} +1 -1
- package/dist/{chunk-BZNDK3KJ.mjs.map → chunk-NMMFIRLZ.mjs.map} +1 -1
- package/dist/{chunk-BZRCDLEW.mjs → chunk-O32FZU7E.mjs} +2 -2
- package/dist/{chunk-IAS3E2S3.mjs → chunk-PUESATBQ.mjs} +2 -2
- package/dist/{chunk-27XJO7E4.mjs → chunk-QGZU7Z2W.mjs} +2 -2
- package/dist/{chunk-MRCE2Q7A.mjs → chunk-QYSLVQ4F.mjs} +2 -2
- package/dist/{chunk-MRCE2Q7A.mjs.map → chunk-QYSLVQ4F.mjs.map} +1 -1
- package/dist/chunk-TDLSHJ4Z.mjs +1 -0
- package/dist/{chunk-SKI2APSK.mjs → chunk-TNU64NUN.mjs} +13 -7
- package/dist/chunk-TNU64NUN.mjs.map +1 -0
- package/dist/{chunk-JC6DBIFE.mjs → chunk-XE4UZBL2.mjs} +1 -1
- package/dist/{chunk-JC6DBIFE.mjs.map → chunk-XE4UZBL2.mjs.map} +1 -1
- package/dist/chunk-XFKD6EEJ.mjs +1 -0
- package/dist/chunk-XFKD6EEJ.mjs.map +1 -0
- package/dist/chunk-XNA5MFJC.mjs +59 -0
- package/dist/chunk-XNA5MFJC.mjs.map +1 -0
- package/dist/{chunk-XIHKASNB.mjs → chunk-XYIY6FHW.mjs} +1 -1
- package/dist/{chunk-XIHKASNB.mjs.map → chunk-XYIY6FHW.mjs.map} +1 -1
- package/dist/{chunk-6TI7ACBR.mjs → chunk-YC7MT6SO.mjs} +2 -2
- package/dist/{chunk-WCA2WPFS.mjs → chunk-ZL56N4UK.mjs} +14 -2
- package/dist/{chunk-WCA2WPFS.mjs.map → chunk-ZL56N4UK.mjs.map} +1 -1
- package/dist/chunk-ZQHLYAJU.mjs +1 -0
- package/dist/chunk-ZQHLYAJU.mjs.map +1 -0
- package/dist/{chunk-IFGQR4J6.mjs → chunk-ZRFDCZ62.mjs} +2 -2
- package/dist/footer/footer.js.map +1 -1
- package/dist/footer/footer.mjs +3 -3
- package/dist/footer/index.d.mts +3 -3
- package/dist/footer/index.d.ts +3 -3
- package/dist/footer/index.js +10 -2
- package/dist/footer/index.js.map +1 -1
- package/dist/footer/index.mjs +14 -5
- package/dist/form/date-picker/date-picker.d.mts +2 -0
- package/dist/form/date-picker/date-picker.d.ts +2 -0
- package/dist/form/date-picker/date-picker.js +265 -0
- package/dist/form/date-picker/date-picker.js.map +1 -0
- package/dist/form/date-picker/date-picker.mjs +13 -0
- package/dist/form/date-picker/date-picker.mjs.map +1 -0
- package/dist/form/date-picker/index.d.mts +2 -0
- package/dist/form/date-picker/index.d.ts +2 -0
- package/dist/form/date-picker/index.js +267 -0
- package/dist/form/date-picker/index.js.map +1 -0
- package/dist/form/date-picker/index.mjs +14 -0
- package/dist/form/date-picker/index.mjs.map +1 -0
- package/dist/form/index.d.mts +10 -8
- package/dist/form/index.d.ts +10 -8
- package/dist/form/index.js +239 -131
- package/dist/form/index.js.map +1 -1
- package/dist/form/index.mjs +12 -6
- package/dist/form/input/index.js +12 -6
- package/dist/form/input/index.js.map +1 -1
- package/dist/form/input/index.mjs +2 -2
- package/dist/form/input/input.js +12 -6
- package/dist/form/input/input.js.map +1 -1
- package/dist/form/input/input.mjs +2 -2
- package/dist/form/input-group/index.js +12 -6
- package/dist/form/input-group/index.js.map +1 -1
- package/dist/form/input-group/index.mjs +1 -1
- package/dist/form/input-group/input-group.js +12 -6
- package/dist/form/input-group/input-group.js.map +1 -1
- package/dist/form/input-group/input-group.mjs +1 -1
- package/dist/form/select/index.js +12 -6
- package/dist/form/select/index.js.map +1 -1
- package/dist/form/select/index.mjs +2 -2
- package/dist/form/select/select.js +12 -6
- package/dist/form/select/select.js.map +1 -1
- package/dist/form/select/select.mjs +2 -2
- package/dist/form/textarea/index.js +12 -6
- package/dist/form/textarea/index.js.map +1 -1
- package/dist/form/textarea/index.mjs +2 -2
- package/dist/form/textarea/textarea.js +12 -6
- package/dist/form/textarea/textarea.js.map +1 -1
- package/dist/form/textarea/textarea.mjs +2 -2
- package/dist/index-no-css.d.mts +31 -23
- package/dist/index-no-css.d.ts +31 -23
- package/dist/index-no-css.js +603 -414
- package/dist/index-no-css.js.map +1 -1
- package/dist/index-no-css.mjs +107 -40
- package/dist/index.d.mts +31 -23
- package/dist/index.d.ts +31 -23
- package/dist/index.js +603 -414
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +107 -40
- package/dist/index.mjs.map +1 -1
- package/dist/layout/grid/grid.d.mts +4 -0
- package/dist/layout/grid/grid.d.ts +4 -0
- package/dist/layout/grid/grid.js +122 -0
- package/dist/layout/grid/grid.js.map +1 -0
- package/dist/layout/grid/grid.mjs +12 -0
- package/dist/layout/grid/grid.mjs.map +1 -0
- package/dist/layout/grid/index.d.mts +4 -0
- package/dist/layout/grid/index.d.ts +4 -0
- package/dist/layout/grid/index.js +128 -0
- package/dist/layout/grid/index.js.map +1 -0
- package/dist/layout/grid/index.mjs +14 -0
- package/dist/layout/grid/index.mjs.map +1 -0
- package/dist/layout/index.d.mts +5 -1
- package/dist/layout/index.d.ts +5 -1
- package/dist/layout/index.js +68 -18
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/index.mjs +14 -5
- package/dist/layout/responsive.js +1 -1
- package/dist/layout/responsive.js.map +1 -1
- package/dist/layout/responsive.mjs +1 -1
- package/dist/layout/stack/index.js +1 -1
- package/dist/layout/stack/index.js.map +1 -1
- package/dist/layout/stack/index.mjs +3 -2
- package/dist/layout/stack/stack.js +1 -1
- package/dist/layout/stack/stack.js.map +1 -1
- package/dist/layout/stack/stack.mjs +2 -2
- package/dist/message/index.d.mts +2 -0
- package/dist/message/index.d.ts +2 -0
- package/dist/message/index.js +6 -2
- package/dist/message/index.js.map +1 -1
- package/dist/message/index.mjs +8 -3
- package/dist/message/message.d.mts +2 -2
- package/dist/message/message.d.ts +2 -2
- package/dist/modal/index.d.mts +2 -2
- package/dist/modal/index.d.ts +2 -2
- package/dist/modal/index.js +8 -2
- package/dist/modal/index.js.map +1 -1
- package/dist/modal/index.mjs +11 -4
- package/dist/modal/modal.js.map +1 -1
- package/dist/modal/modal.mjs +2 -2
- package/dist/navbar/index.d.mts +3 -3
- package/dist/navbar/index.d.ts +3 -3
- package/dist/navbar/index.js +41 -11
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +13 -3
- package/dist/navbar/navbar-expandable-menu.js +33 -11
- package/dist/navbar/navbar-expandable-menu.js.map +1 -1
- package/dist/navbar/navbar-expandable-menu.mjs +2 -1
- package/dist/tabs/index.js +13 -1
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/index.mjs +3 -3
- package/dist/tabs/tabs-list.js +13 -1
- package/dist/tabs/tabs-list.js.map +1 -1
- package/dist/tabs/tabs-list.mjs +2 -2
- package/dist/utils.d.mts +1 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -1
- package/dist/utils.mjs +3 -1
- package/dist/warning-banner/index.js.map +1 -1
- package/dist/warning-banner/index.mjs +2 -2
- package/dist/warning-banner/warning-banner.js.map +1 -1
- package/dist/warning-banner/warning-banner.mjs +2 -2
- package/package.json +6 -6
- package/dist/chunk-CLXHNRAI.mjs.map +0 -1
- package/dist/chunk-L4GQJETB.mjs +0 -1
- package/dist/chunk-RVJD2UZF.mjs.map +0 -1
- package/dist/chunk-SKI2APSK.mjs.map +0 -1
- package/dist/chunk-T24JZIQO.mjs +0 -1
- package/dist/chunk-X46LM2QH.mjs.map +0 -1
- package/dist/chunk-ZTYEOZLK.mjs.map +0 -1
- /package/dist/{chunk-2ICZ3Q7N.mjs.map → chunk-2FXMUF6K.mjs.map} +0 -0
- /package/dist/{chunk-L4GQJETB.mjs.map → chunk-BVG5VSZK.mjs.map} +0 -0
- /package/dist/{chunk-RK6BB3HH.mjs.map → chunk-KTRIVJM3.mjs.map} +0 -0
- /package/dist/{chunk-BZRCDLEW.mjs.map → chunk-O32FZU7E.mjs.map} +0 -0
- /package/dist/{chunk-IAS3E2S3.mjs.map → chunk-PUESATBQ.mjs.map} +0 -0
- /package/dist/{chunk-27XJO7E4.mjs.map → chunk-QGZU7Z2W.mjs.map} +0 -0
- /package/dist/{chunk-T24JZIQO.mjs.map → chunk-TDLSHJ4Z.mjs.map} +0 -0
- /package/dist/{chunk-6TI7ACBR.mjs.map → chunk-YC7MT6SO.mjs.map} +0 -0
- /package/dist/{chunk-IFGQR4J6.mjs.map → chunk-ZRFDCZ62.mjs.map} +0 -0
package/dist/footer/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { Footer_alias_3 as Footer } from '../_tsup-dts-rollup';
|
|
2
|
-
export { FooterProps_alias_3 as FooterProps } from '../_tsup-dts-rollup';
|
|
3
|
-
export { FooterButtonLinkProps_alias_3 as FooterButtonLinkProps } from '../_tsup-dts-rollup';
|
|
4
|
-
export { FooterButtonLink_alias_3 as FooterButtonLink } from '../_tsup-dts-rollup';
|
|
5
2
|
export { FooterLogo_alias_3 as FooterLogo } from '../_tsup-dts-rollup';
|
|
3
|
+
export { FooterButtonLink_alias_3 as FooterButtonLink } from '../_tsup-dts-rollup';
|
|
6
4
|
export { FooterLinkSections_alias_3 as FooterLinkSections } from '../_tsup-dts-rollup';
|
|
7
5
|
export { FooterLinkSection_alias_3 as FooterLinkSection } from '../_tsup-dts-rollup';
|
|
6
|
+
export { FooterProps_alias_3 as FooterProps } from '../_tsup-dts-rollup';
|
|
7
|
+
export { FooterButtonLinkProps_alias_3 as FooterButtonLinkProps } from '../_tsup-dts-rollup';
|
package/dist/footer/index.js
CHANGED
|
@@ -49,7 +49,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
49
49
|
// src/footer/index.tsx
|
|
50
50
|
var footer_exports = {};
|
|
51
51
|
__export(footer_exports, {
|
|
52
|
-
Footer: () => FooterComponent
|
|
52
|
+
Footer: () => FooterComponent,
|
|
53
|
+
FooterButtonLink: () => FooterButtonLink,
|
|
54
|
+
FooterLinkSection: () => FooterLinkSection,
|
|
55
|
+
FooterLinkSections: () => FooterLinkSections,
|
|
56
|
+
FooterLogo: () => FooterLogo
|
|
53
57
|
});
|
|
54
58
|
module.exports = __toCommonJS(footer_exports);
|
|
55
59
|
|
|
@@ -397,6 +401,10 @@ FooterComponent.LinkSections = FooterLinkSections;
|
|
|
397
401
|
FooterComponent.LinkSection = FooterLinkSection;
|
|
398
402
|
// Annotate the CommonJS export names for ESM import in node:
|
|
399
403
|
0 && (module.exports = {
|
|
400
|
-
Footer
|
|
404
|
+
Footer,
|
|
405
|
+
FooterButtonLink,
|
|
406
|
+
FooterLinkSection,
|
|
407
|
+
FooterLinkSections,
|
|
408
|
+
FooterLogo
|
|
401
409
|
});
|
|
402
410
|
//# sourceMappingURL=index.js.map
|
package/dist/footer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/footer/index.tsx","../../src/footer/footer.tsx","../../src/accordion/accordion.tsx","../../src/accordion/accordion-item.tsx","../../src/accordion/context.ts","../../src/accordion/accordion-header.tsx","../../src/accordion/accordion-content.tsx","../../src/accordion/index.tsx","../../src/list/link-list.tsx","../../src/list/list.tsx","../../src/button/button.tsx"],"sourcesContent":["import {\n Footer,\n FooterLogo,\n FooterButtonLink,\n FooterLinkSections,\n FooterLinkSection,\n} from \"./footer\";\n\nconst FooterComponent = Footer as typeof Footer & {\n Logo: typeof FooterLogo;\n ButtonLink: typeof FooterButtonLink;\n LinkSections: typeof FooterLinkSections;\n LinkSection: typeof FooterLinkSection;\n};\nFooterComponent.Logo = FooterLogo;\nFooterComponent.ButtonLink = FooterButtonLink;\nFooterComponent.LinkSections = FooterLinkSections;\nFooterComponent.LinkSection = FooterLinkSection;\n\nexport { FooterComponent as Footer };\nexport type * from \"./footer\";\n","import { forwardRef, type HTMLAttributes, type ReactElement } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Accordion } from \"../accordion\";\nimport { LinkList } from \"../list/link-list\";\nimport { PrimaryButton } from \"../button\";\n\nexport interface FooterProps extends HTMLAttributes<HTMLDivElement> {\n variant?: \"default\" | \"slim\";\n\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * 🚨 WORK IN PROGRESS 🚨\n */\nexport const Footer = forwardRef<HTMLDivElement, FooterProps>(\n ({ children, className, variant, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"footer\";\n return (\n <Component\n className={clsx(\n `hds-footer`,\n variant === \"slim\" && \"hds-footer--slim\",\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nFooter.displayName = \"Footer\";\n\nexport interface FooterButtonLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * 🚨 WORK IN PROGRESS 🚨\n */\nexport const FooterButtonLink = forwardRef<HTMLAnchorElement, FooterButtonLinkProps>(\n ({ children, className, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"a\";\n return (\n // @ts-expect-error -- It's ok, types are a bit off\n <PrimaryButton\n as={Component}\n fill=\"outline\"\n className={clsx(className as undefined)}\n ref={ref}\n {...rest}\n >\n {children}\n </PrimaryButton>\n );\n },\n);\nFooterButtonLink.displayName = \"FooterButton\";\n\ninterface FooterLogoProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * A fixed Posten or Bring logo.\n *\n * The logo follows the brand theme, so if the class `hds-theme-bring` is set the Bring logo will be shown instead of the Posten logo\n */\nexport const FooterLogo = forwardRef<HTMLDivElement, FooterLogoProps>(\n ({ children, className, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component className={clsx(`hds-footer__logo`, className as undefined)} ref={ref} {...rest}>\n {children}\n </Component>\n );\n },\n);\nFooterLogo.displayName = \"Footer.Logo\";\n\ninterface FooterLinkSectionsProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactElement<FooterLinkSectionProps> | ReactElement<FooterLinkSectionProps>[];\n}\n\n/**\n * Responsive sections of links. Will become an accordion on mobile.\n *\n * Use with `Footer.LinkSection` for each section.\n */\nexport const FooterLinkSections = forwardRef<HTMLDivElement, FooterLinkSectionsProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <>\n {/* Mobile and Desktop. The accordion styling gets removed on desktop */}\n <Accordion\n className={clsx(\"hds-footer__link-sections\", className as undefined)}\n ref={ref}\n {...rest}\n >\n {/* @ts-expect-error -- It's ok */}\n {children}\n </Accordion>\n </>\n );\n },\n);\nFooterLinkSections.displayName = \"Footer.LinkSections\";\n\ninterface FooterLinkSectionProps extends HTMLAttributes<HTMLDivElement> {\n heading: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport const FooterLinkSection = forwardRef<HTMLDivElement, FooterLinkSectionProps>(\n ({ heading, children, className, ...rest }, ref) => {\n // @ts-expect-error -- It's ok\n const linkListChildren = <LinkList>{children}</LinkList>;\n return (\n <>\n {/* Mobile */}\n <Accordion.Item\n className={clsx(`hds-footer__link-section`, className as undefined)}\n ref={ref}\n {...rest}\n >\n <Accordion.Header>{heading}</Accordion.Header>\n <Accordion.Content>{linkListChildren}</Accordion.Content>\n </Accordion.Item>\n\n {/* Desktop */}\n <div className={clsx(`hds-footer__link-section`, className as undefined)}>\n <h2>{heading}</h2>\n {linkListChildren}\n </div>\n </>\n );\n },\n);\nFooterLinkSection.displayName = \"Footer.LinkSection\";\n","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\nimport type { AccordionItemProps } from \"./accordion-item\";\n\nexport interface AccordionProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Accepts type of <AccordionItem/>\n */\n children: ReactElement<AccordionItemProps> | ReactElement<AccordionItemProps>[];\n\n /**\n * Adds padding to the left of the accordion\n */\n indent?: boolean;\n\n className?: string;\n}\n\nexport const Accordion: OverridableComponent<AccordionProps, HTMLDivElement> = forwardRef(\n ({ as: Component = \"div\", children, className, indent = true, ...rest }, ref) => {\n return (\n <Component\n {...rest}\n className={clsx(\n \"hds-accordion\",\n !indent && \"hds-accordion--no-indent\",\n className as undefined,\n )}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\n\nAccordion.displayName = \"Accordion\";\n","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { forwardRef, useState } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\nimport { AccordionItemContext } from \"./context\";\nimport type { AccordionHeaderProps } from \"./accordion-header\";\nimport type { AccordionContentProps } from \"./accordion-content\";\n\nexport type AccordionItemChildrenType =\n | ReactElement<AccordionHeaderProps>\n | ReactElement<AccordionContentProps>;\n\nexport interface AccordionItemProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Control the open state of the accordion manually\n */\n open?: boolean;\n\n /**\n * Use with open to control the open state of the accordion manually\n */\n onOpenChange?: (open: boolean) => void;\n\n /**\n * If the accordion should be open by default\n */\n defaultOpen?: boolean;\n\n /**\n * Accepts type of Accordion.Content and Accordion.Header\n */\n children: AccordionItemChildrenType[];\n}\n\nexport const AccordionItem: OverridableComponent<AccordionItemProps, HTMLDivElement> = forwardRef(\n (\n {\n as: Component = \"div\",\n children,\n defaultOpen,\n open: outerOpen,\n onOpenChange,\n className,\n ...rest\n },\n ref,\n ) => {\n const [innerOpen, setInnerOpen] = useState(defaultOpen ?? false);\n const open = outerOpen ?? innerOpen;\n\n const handleOpen = () => {\n if (outerOpen !== undefined) {\n onOpenChange && onOpenChange(!open);\n } else {\n setInnerOpen(!open);\n }\n };\n\n return (\n <Component\n {...rest}\n data-state={open ? \"open\" : \"closed\"}\n className={clsx(\"hds-accordion-item\", className as undefined)}\n ref={ref}\n >\n <AccordionItemContext.Provider value={{ open, setOpen: handleOpen }}>\n {children}\n </AccordionItemContext.Provider>\n </Component>\n );\n },\n);\n\nAccordionItem.displayName = \"Accordion.Item\";\n","import { createContext } from \"react\";\n\nexport interface AccordionItemContextProps {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nexport const AccordionItemContext = createContext<AccordionItemContextProps | null>(null);\n","import type { ButtonHTMLAttributes, MouseEvent, ReactNode } from \"react\";\nimport { forwardRef, useContext } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\nimport { AccordionItemContext } from \"./context\";\n\nexport interface AccordionHeaderProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n}\n\nexport const AccordionHeader: OverridableComponent<AccordionHeaderProps, HTMLButtonElement> =\n forwardRef(({ as: Component = \"button\", children, className, onClick, ...rest }, ref) => {\n const context = useContext(AccordionItemContext);\n if (context === null) {\n return null;\n }\n const expandOrCollapse = (e: MouseEvent<HTMLButtonElement>) => {\n context.setOpen(!context.open);\n onClick && onClick(e);\n };\n return (\n <Component\n {...rest}\n aria-expanded={context.open}\n data-state={context.open ? \"open\" : \"closed\"}\n className={clsx(\"hds-accordion-item-header\", className as undefined)}\n onClick={expandOrCollapse}\n ref={ref}\n type=\"button\"\n >\n <span>{children}</span>\n </Component>\n );\n });\n\nAccordionHeader.displayName = \"Accordion.Header\";\n","import type { HTMLAttributes, ReactNode } from \"react\";\nimport { forwardRef, useContext } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\nimport { AccordionItemContext } from \"./context\";\n\nexport interface AccordionContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport const AccordionContent: OverridableComponent<AccordionContentProps, HTMLDivElement> =\n forwardRef(({ as: Component = \"div\", children, className, ...rest }, ref) => {\n const context = useContext(AccordionItemContext);\n if (context === null) {\n return null;\n }\n return (\n <Component\n aria-hidden={!context.open}\n data-state={context.open ? \"open\" : \"closed\"}\n inert={context.open ? undefined : \"true\"}\n className={clsx(\"hds-accordion-item-content\", className as undefined)}\n ref={ref}\n {...rest}\n >\n <div className={clsx(\"hds-accordion-item-content-inner\")}>{children}</div>\n </Component>\n );\n });\n\nAccordionContent.displayName = \"Accordion.Content\";\n","import { Accordion } from \"./accordion\";\nimport { AccordionItem } from \"./accordion-item\";\nimport { AccordionHeader } from \"./accordion-header\";\nimport { AccordionContent } from \"./accordion-content\";\n\nconst AccordionComponent = Accordion as typeof Accordion & {\n Item: typeof AccordionItem;\n Header: typeof AccordionHeader;\n Content: typeof AccordionContent;\n};\n\nAccordionComponent.Item = AccordionItem;\nAccordionComponent.Header = AccordionHeader;\nAccordionComponent.Content = AccordionContent;\n\nexport { AccordionComponent as Accordion };\n\nexport type * from \"./accordion\";\nexport type * from \"./accordion-item\";\nexport type * from \"./accordion-header\";\nexport type * from \"./accordion-content\";\n","import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { ListProps } from \"./list\";\nimport { UnorderedList } from \"./list\";\n\nexport interface LinkListProps extends Omit<ListProps, \"listStyle\"> {\n children?: React.ReactElement<HTMLLIElement> | React.ReactElement<HTMLLIElement>[];\n}\n\n/**\n * Show a list of links\n *\n * For other list types use `UnorderedList` and `OrderedList`, or use your own list component using the semantic `ul` and `ol` tags.\n */\nexport function LinkList({ className, ...rest }: LinkListProps) {\n return (\n <UnorderedList className={clsx(\"hds-list--link-list\", className as undefined)} {...rest} />\n );\n}\n\nLinkList.displayName = \"LinkList\";\n","import type { HTMLAttributes } from \"react\";\nimport * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface ListProps extends HTMLAttributes<HTMLOListElement | HTMLUListElement> {\n children?: React.ReactElement<HTMLLIElement> | React.ReactElement<HTMLLIElement>[];\n /**\n * Sets the size of the items (font)\n */\n size?: \"small\" | \"medium\" | \"large\";\n}\n\nfunction BaseList({\n as: ListTag = \"ul\",\n children,\n size = \"medium\",\n className,\n ...rest\n}: ListProps & { as?: \"ul\" | \"ol\" }) {\n return (\n <ListTag className={clsx(\"hds-list\", `hds-list--${size}`, className as undefined)} {...rest}>\n {children}\n </ListTag>\n );\n}\n\n/**\n * An unordered list of simple items, often text. You can nest other lists inside this component.\n *\n * If you have other list needs build your own using the semantic `ul` and `ol` tags.\n */\nexport function UnorderedList(props: ListProps) {\n return (\n <BaseList as=\"ul\" {...props}>\n {props.children}\n </BaseList>\n );\n}\n\n/**\n * An ordered list of simple items\n *\n * If you have other list needs build your own using the semantic `ul` and `ol` tags.\n */\nexport function OrderedList(props: ListProps) {\n return (\n <BaseList as=\"ol\" {...props}>\n {props.children}\n </BaseList>\n );\n}\n\nBaseList.displayName = \"BaseList\";\nOrderedList.displayName = \"OrderedList\";\nUnorderedList.displayName = \"UnorderedList\";\n","import { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\n\ninterface ButtonPropsInternal extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * The height, font size and padding of the button\n */\n size?: \"small\" | \"medium\" | \"large\";\n\n /**\n * Make the button use 100% width available.\n * Using the \"mobile\" it only stretch to full width on smaller screens\n */\n fullWidth?: boolean | \"mobile\";\n\n /**\n * Use an icon inside the button\n */\n icon?: React.ReactNode;\n\n children?: React.ReactNode;\n}\n\nexport type ButtonProps = ButtonPropsInternal &\n (\n | {\n /**\n * The background fill of the button\n */\n fill?: \"contained\" | \"outline\";\n }\n | {\n /**\n * @deprecated use `fill='outline'` instead\n */\n fill?: \"outlined\";\n }\n );\n\nexport const BaseButton: OverridableComponent<\n ButtonProps & { variant: \"primary\" | \"secondary\" },\n HTMLButtonElement\n> = forwardRef(\n (\n {\n as: Component = \"button\",\n children,\n variant,\n size = \"medium\",\n fullWidth = false,\n fill = \"contained\",\n icon,\n className,\n ...rest\n },\n ref,\n ) => {\n // TODO: Remove deprecated fill value name at some point\n // Deprecated at 10. march 2024\n if (fill === \"outlined\") {\n // eslint-disable-next-line no-console -- Deprecation warning\n console.warn(\"The `fill` value `outlined` is deprecated, use `fill='outline'` instead\");\n }\n return (\n <Component\n className={clsx(\n \"hds-button\",\n `hds-button--${size}`,\n {\n [`hds-button--${variant}`]: fill === \"contained\",\n [`hds-button--outline-${variant}`]: fill === \"outline\" || fill === \"outlined\",\n \"hds-button--full\": fullWidth === true,\n \"hds-button--mobile-full\": fullWidth === \"mobile\",\n \"hds-button--icon-only\": icon && !children,\n },\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {icon && !children ? icon : null}\n {children}\n </Component>\n );\n },\n);\nBaseButton.displayName = \"BaseButton\";\n\n/**\n * ## TODO\n *\n * - [x] Handle links that looks like buttons\n * - [ ] Revisit how to handle outline\n * - [ ] Figure out outline-white\n */\n\nexport const PrimaryButton: OverridableComponent<ButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n return <BaseButton {...props} ref={ref} variant=\"primary\" />;\n },\n);\n\nPrimaryButton.displayName = \"PrimaryButton\";\n\nexport const SecondaryButton: OverridableComponent<ButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n return <BaseButton {...props} ref={ref} variant=\"secondary\" />;\n },\n);\n\nSecondaryButton.displayName = \"SecondaryButton\";\n"],"mappings":"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","names":["import_react","import_typed_classname","import_react","import_typed_classname","import_react","import_jsx_runtime","import_react","import_typed_classname","import_jsx_runtime","import_react","import_typed_classname","import_jsx_runtime","React","import_typed_classname","import_typed_classname","import_jsx_runtime","import_jsx_runtime","import_react","import_typed_classname","import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../src/footer/index.tsx","../../src/footer/footer.tsx","../../src/accordion/accordion.tsx","../../src/accordion/accordion-item.tsx","../../src/accordion/context.ts","../../src/accordion/accordion-header.tsx","../../src/accordion/accordion-content.tsx","../../src/accordion/index.tsx","../../src/list/link-list.tsx","../../src/list/list.tsx","../../src/button/button.tsx"],"sourcesContent":["import {\n Footer,\n FooterLogo,\n FooterButtonLink,\n FooterLinkSections,\n FooterLinkSection,\n} from \"./footer\";\n\nconst FooterComponent = Footer as typeof Footer & {\n Logo: typeof FooterLogo;\n ButtonLink: typeof FooterButtonLink;\n LinkSections: typeof FooterLinkSections;\n LinkSection: typeof FooterLinkSection;\n};\nFooterComponent.Logo = FooterLogo;\nFooterComponent.ButtonLink = FooterButtonLink;\nFooterComponent.LinkSections = FooterLinkSections;\nFooterComponent.LinkSection = FooterLinkSection;\n\nexport {\n FooterComponent as Footer,\n FooterLogo,\n FooterButtonLink,\n FooterLinkSections,\n FooterLinkSection,\n};\nexport type * from \"./footer\";\n","import { forwardRef, type HTMLAttributes, type ReactElement } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Accordion } from \"../accordion\";\nimport { LinkList } from \"../list/link-list\";\nimport { PrimaryButton } from \"../button\";\n\nexport interface FooterProps extends HTMLAttributes<HTMLDivElement> {\n variant?: \"default\" | \"slim\";\n\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * 🚨 WORK IN PROGRESS 🚨\n */\nexport const Footer = forwardRef<HTMLDivElement, FooterProps>(\n ({ children, className, variant, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"footer\";\n return (\n <Component\n className={clsx(\n `hds-footer`,\n variant === \"slim\" && \"hds-footer--slim\",\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nFooter.displayName = \"Footer\";\n\nexport interface FooterButtonLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * 🚨 WORK IN PROGRESS 🚨\n */\nexport const FooterButtonLink = forwardRef<HTMLAnchorElement, FooterButtonLinkProps>(\n ({ children, className, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"a\";\n return (\n // @ts-expect-error -- It's ok, types are a bit off\n <PrimaryButton\n as={Component}\n fill=\"outline\"\n className={clsx(className as undefined)}\n ref={ref}\n {...rest}\n >\n {children}\n </PrimaryButton>\n );\n },\n);\nFooterButtonLink.displayName = \"FooterButton\";\n\ninterface FooterLogoProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean;\n}\n\n/**\n * A fixed Posten or Bring logo.\n *\n * The logo follows the brand theme, so if the class `hds-theme-bring` is set the Bring logo will be shown instead of the Posten logo\n */\nexport const FooterLogo = forwardRef<HTMLDivElement, FooterLogoProps>(\n ({ children, className, asChild, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component className={clsx(`hds-footer__logo`, className as undefined)} ref={ref} {...rest}>\n {children}\n </Component>\n );\n },\n);\nFooterLogo.displayName = \"Footer.Logo\";\n\ninterface FooterLinkSectionsProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactElement<FooterLinkSectionProps> | ReactElement<FooterLinkSectionProps>[];\n}\n\n/**\n * Responsive sections of links. Will become an accordion on mobile.\n *\n * Use with `Footer.LinkSection` for each section.\n */\nexport const FooterLinkSections = forwardRef<HTMLDivElement, FooterLinkSectionsProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <>\n {/* Mobile and Desktop. The accordion styling gets removed on desktop */}\n <Accordion\n className={clsx(\"hds-footer__link-sections\", className as undefined)}\n ref={ref}\n {...rest}\n >\n {/* @ts-expect-error -- It's ok */}\n {children}\n </Accordion>\n </>\n );\n },\n);\nFooterLinkSections.displayName = \"Footer.LinkSections\";\n\ninterface FooterLinkSectionProps extends HTMLAttributes<HTMLDivElement> {\n heading: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport const FooterLinkSection = forwardRef<HTMLDivElement, FooterLinkSectionProps>(\n ({ heading, children, className, ...rest }, ref) => {\n // @ts-expect-error -- It's ok\n const linkListChildren = <LinkList>{children}</LinkList>;\n return (\n <>\n {/* Mobile */}\n <Accordion.Item\n className={clsx(`hds-footer__link-section`, className as undefined)}\n ref={ref}\n {...rest}\n >\n <Accordion.Header>{heading}</Accordion.Header>\n <Accordion.Content>{linkListChildren}</Accordion.Content>\n </Accordion.Item>\n\n {/* Desktop */}\n <div className={clsx(`hds-footer__link-section`, className as undefined)}>\n <h2>{heading}</h2>\n {linkListChildren}\n </div>\n </>\n );\n },\n);\nFooterLinkSection.displayName = \"Footer.LinkSection\";\n","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\nimport type { AccordionItemProps } from \"./accordion-item\";\n\nexport interface AccordionProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Accepts type of <AccordionItem/>\n */\n children: ReactElement<AccordionItemProps> | ReactElement<AccordionItemProps>[];\n\n /**\n * Adds padding to the left of the accordion\n */\n indent?: boolean;\n\n className?: string;\n}\n\nexport const Accordion: OverridableComponent<AccordionProps, HTMLDivElement> = forwardRef(\n ({ as: Component = \"div\", children, className, indent = true, ...rest }, ref) => {\n return (\n <Component\n {...rest}\n className={clsx(\n \"hds-accordion\",\n !indent && \"hds-accordion--no-indent\",\n className as undefined,\n )}\n ref={ref}\n >\n {children}\n </Component>\n );\n },\n);\n\nAccordion.displayName = \"Accordion\";\n","import type { HTMLAttributes, ReactElement } from \"react\";\nimport { forwardRef, useState } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\nimport { AccordionItemContext } from \"./context\";\nimport type { AccordionHeaderProps } from \"./accordion-header\";\nimport type { AccordionContentProps } from \"./accordion-content\";\n\nexport type AccordionItemChildrenType =\n | ReactElement<AccordionHeaderProps>\n | ReactElement<AccordionContentProps>;\n\nexport interface AccordionItemProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Control the open state of the accordion manually\n */\n open?: boolean;\n\n /**\n * Use with open to control the open state of the accordion manually\n */\n onOpenChange?: (open: boolean) => void;\n\n /**\n * If the accordion should be open by default\n */\n defaultOpen?: boolean;\n\n /**\n * Accepts type of Accordion.Content and Accordion.Header\n */\n children: AccordionItemChildrenType[];\n}\n\nexport const AccordionItem: OverridableComponent<AccordionItemProps, HTMLDivElement> = forwardRef(\n (\n {\n as: Component = \"div\",\n children,\n defaultOpen,\n open: outerOpen,\n onOpenChange,\n className,\n ...rest\n },\n ref,\n ) => {\n const [innerOpen, setInnerOpen] = useState(defaultOpen ?? false);\n const open = outerOpen ?? innerOpen;\n\n const handleOpen = () => {\n if (outerOpen !== undefined) {\n onOpenChange && onOpenChange(!open);\n } else {\n setInnerOpen(!open);\n }\n };\n\n return (\n <Component\n {...rest}\n data-state={open ? \"open\" : \"closed\"}\n className={clsx(\"hds-accordion-item\", className as undefined)}\n ref={ref}\n >\n <AccordionItemContext.Provider value={{ open, setOpen: handleOpen }}>\n {children}\n </AccordionItemContext.Provider>\n </Component>\n );\n },\n);\n\nAccordionItem.displayName = \"Accordion.Item\";\n","import { createContext } from \"react\";\n\nexport interface AccordionItemContextProps {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nexport const AccordionItemContext = createContext<AccordionItemContextProps | null>(null);\n","import type { ButtonHTMLAttributes, MouseEvent, ReactNode } from \"react\";\nimport { forwardRef, useContext } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\nimport { AccordionItemContext } from \"./context\";\n\nexport interface AccordionHeaderProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n}\n\nexport const AccordionHeader: OverridableComponent<AccordionHeaderProps, HTMLButtonElement> =\n forwardRef(({ as: Component = \"button\", children, className, onClick, ...rest }, ref) => {\n const context = useContext(AccordionItemContext);\n if (context === null) {\n return null;\n }\n const expandOrCollapse = (e: MouseEvent<HTMLButtonElement>) => {\n context.setOpen(!context.open);\n onClick && onClick(e);\n };\n return (\n <Component\n {...rest}\n aria-expanded={context.open}\n data-state={context.open ? \"open\" : \"closed\"}\n className={clsx(\"hds-accordion-item-header\", className as undefined)}\n onClick={expandOrCollapse}\n ref={ref}\n type=\"button\"\n >\n <span>{children}</span>\n </Component>\n );\n });\n\nAccordionHeader.displayName = \"Accordion.Header\";\n","import type { HTMLAttributes, ReactNode } from \"react\";\nimport { forwardRef, useContext } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\nimport { AccordionItemContext } from \"./context\";\n\nexport interface AccordionContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport const AccordionContent: OverridableComponent<AccordionContentProps, HTMLDivElement> =\n forwardRef(({ as: Component = \"div\", children, className, ...rest }, ref) => {\n const context = useContext(AccordionItemContext);\n if (context === null) {\n return null;\n }\n return (\n <Component\n aria-hidden={!context.open}\n data-state={context.open ? \"open\" : \"closed\"}\n inert={context.open ? undefined : \"true\"}\n className={clsx(\"hds-accordion-item-content\", className as undefined)}\n ref={ref}\n {...rest}\n >\n <div className={clsx(\"hds-accordion-item-content-inner\")}>{children}</div>\n </Component>\n );\n });\n\nAccordionContent.displayName = \"Accordion.Content\";\n","import { Accordion } from \"./accordion\";\nimport { AccordionItem } from \"./accordion-item\";\nimport { AccordionHeader } from \"./accordion-header\";\nimport { AccordionContent } from \"./accordion-content\";\n\nconst AccordionComponent = Accordion as typeof Accordion & {\n Item: typeof AccordionItem;\n Header: typeof AccordionHeader;\n Content: typeof AccordionContent;\n};\n\nAccordionComponent.Item = AccordionItem;\nAccordionComponent.Header = AccordionHeader;\nAccordionComponent.Content = AccordionContent;\n\nexport { AccordionComponent as Accordion, AccordionItem, AccordionHeader, AccordionContent };\n\nexport type * from \"./accordion\";\nexport type * from \"./accordion-item\";\nexport type * from \"./accordion-header\";\nexport type * from \"./accordion-content\";\n","import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { ListProps } from \"./list\";\nimport { UnorderedList } from \"./list\";\n\nexport interface LinkListProps extends Omit<ListProps, \"listStyle\"> {\n children?: React.ReactElement<HTMLLIElement> | React.ReactElement<HTMLLIElement>[];\n}\n\n/**\n * Show a list of links\n *\n * For other list types use `UnorderedList` and `OrderedList`, or use your own list component using the semantic `ul` and `ol` tags.\n */\nexport function LinkList({ className, ...rest }: LinkListProps) {\n return (\n <UnorderedList className={clsx(\"hds-list--link-list\", className as undefined)} {...rest} />\n );\n}\n\nLinkList.displayName = \"LinkList\";\n","import type { HTMLAttributes } from \"react\";\nimport * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface ListProps extends HTMLAttributes<HTMLOListElement | HTMLUListElement> {\n children?: React.ReactElement<HTMLLIElement> | React.ReactElement<HTMLLIElement>[];\n /**\n * Sets the size of the items (font)\n */\n size?: \"small\" | \"medium\" | \"large\";\n}\n\nfunction BaseList({\n as: ListTag = \"ul\",\n children,\n size = \"medium\",\n className,\n ...rest\n}: ListProps & { as?: \"ul\" | \"ol\" }) {\n return (\n <ListTag className={clsx(\"hds-list\", `hds-list--${size}`, className as undefined)} {...rest}>\n {children}\n </ListTag>\n );\n}\n\n/**\n * An unordered list of simple items, often text. You can nest other lists inside this component.\n *\n * If you have other list needs build your own using the semantic `ul` and `ol` tags.\n */\nexport function UnorderedList(props: ListProps) {\n return (\n <BaseList as=\"ul\" {...props}>\n {props.children}\n </BaseList>\n );\n}\n\n/**\n * An ordered list of simple items\n *\n * If you have other list needs build your own using the semantic `ul` and `ol` tags.\n */\nexport function OrderedList(props: ListProps) {\n return (\n <BaseList as=\"ol\" {...props}>\n {props.children}\n </BaseList>\n );\n}\n\nBaseList.displayName = \"BaseList\";\nOrderedList.displayName = \"OrderedList\";\nUnorderedList.displayName = \"UnorderedList\";\n","import { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { OverridableComponent } from \"../utils\";\n\ninterface ButtonPropsInternal extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * The height, font size and padding of the button\n */\n size?: \"small\" | \"medium\" | \"large\";\n\n /**\n * Make the button use 100% width available.\n * Using the \"mobile\" it only stretch to full width on smaller screens\n */\n fullWidth?: boolean | \"mobile\";\n\n /**\n * Use an icon inside the button\n */\n icon?: React.ReactNode;\n\n children?: React.ReactNode;\n}\n\nexport type ButtonProps = ButtonPropsInternal &\n (\n | {\n /**\n * The background fill of the button\n */\n fill?: \"contained\" | \"outline\";\n }\n | {\n /**\n * @deprecated use `fill='outline'` instead\n */\n fill?: \"outlined\";\n }\n );\n\nexport const BaseButton: OverridableComponent<\n ButtonProps & { variant: \"primary\" | \"secondary\" },\n HTMLButtonElement\n> = forwardRef(\n (\n {\n as: Component = \"button\",\n children,\n variant,\n size = \"medium\",\n fullWidth = false,\n fill = \"contained\",\n icon,\n className,\n ...rest\n },\n ref,\n ) => {\n // TODO: Remove deprecated fill value name at some point\n // Deprecated at 10. march 2024\n if (fill === \"outlined\") {\n // eslint-disable-next-line no-console -- Deprecation warning\n console.warn(\"The `fill` value `outlined` is deprecated, use `fill='outline'` instead\");\n }\n return (\n <Component\n className={clsx(\n \"hds-button\",\n `hds-button--${size}`,\n {\n [`hds-button--${variant}`]: fill === \"contained\",\n [`hds-button--outline-${variant}`]: fill === \"outline\" || fill === \"outlined\",\n \"hds-button--full\": fullWidth === true,\n \"hds-button--mobile-full\": fullWidth === \"mobile\",\n \"hds-button--icon-only\": icon && !children,\n },\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {icon && !children ? icon : null}\n {children}\n </Component>\n );\n },\n);\nBaseButton.displayName = \"BaseButton\";\n\n/**\n * ## TODO\n *\n * - [x] Handle links that looks like buttons\n * - [ ] Revisit how to handle outline\n * - [ ] Figure out outline-white\n */\n\nexport const PrimaryButton: OverridableComponent<ButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n return <BaseButton {...props} ref={ref} variant=\"primary\" />;\n },\n);\n\nPrimaryButton.displayName = \"PrimaryButton\";\n\nexport const SecondaryButton: OverridableComponent<ButtonProps, HTMLButtonElement> = forwardRef(\n (props, ref) => {\n return <BaseButton {...props} ref={ref} variant=\"secondary\" />;\n },\n);\n\nSecondaryButton.displayName = \"SecondaryButton\";\n"],"mappings":"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","names":["import_react","import_typed_classname","import_react","import_typed_classname","import_react","import_jsx_runtime","import_react","import_typed_classname","import_jsx_runtime","import_react","import_typed_classname","import_jsx_runtime","React","import_typed_classname","import_typed_classname","import_jsx_runtime","import_jsx_runtime","import_react","import_typed_classname","import_jsx_runtime","import_jsx_runtime"]}
|
package/dist/footer/index.mjs
CHANGED
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FooterComponent
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import
|
|
3
|
+
} from "../chunk-K2HG7WRK.mjs";
|
|
4
|
+
import {
|
|
5
|
+
FooterButtonLink,
|
|
6
|
+
FooterLinkSection,
|
|
7
|
+
FooterLinkSections,
|
|
8
|
+
FooterLogo
|
|
9
|
+
} from "../chunk-O32FZU7E.mjs";
|
|
5
10
|
import "../chunk-GJDRW6PA.mjs";
|
|
6
11
|
import "../chunk-PMLDK3VC.mjs";
|
|
7
12
|
import "../chunk-HT2EIJAD.mjs";
|
|
8
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-XYIY6FHW.mjs";
|
|
14
|
+
import "../chunk-OUHO4LGN.mjs";
|
|
9
15
|
import "../chunk-GUB3UCXO.mjs";
|
|
10
16
|
import "../chunk-YXHXRUFX.mjs";
|
|
11
17
|
import "../chunk-62F4I3MQ.mjs";
|
|
12
18
|
import "../chunk-VRIY65P5.mjs";
|
|
13
|
-
import "../chunk-OUHO4LGN.mjs";
|
|
14
19
|
import "../chunk-V3PAFMK5.mjs";
|
|
15
20
|
import "../chunk-R4SQKVDQ.mjs";
|
|
16
21
|
export {
|
|
17
|
-
FooterComponent as Footer
|
|
22
|
+
FooterComponent as Footer,
|
|
23
|
+
FooterButtonLink,
|
|
24
|
+
FooterLinkSection,
|
|
25
|
+
FooterLinkSections,
|
|
26
|
+
FooterLogo
|
|
18
27
|
};
|
|
19
28
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defProps = Object.defineProperties;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
9
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
10
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
11
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
12
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
+
var __spreadValues = (a, b) => {
|
|
14
|
+
for (var prop in b || (b = {}))
|
|
15
|
+
if (__hasOwnProp.call(b, prop))
|
|
16
|
+
__defNormalProp(a, prop, b[prop]);
|
|
17
|
+
if (__getOwnPropSymbols)
|
|
18
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
+
if (__propIsEnum.call(b, prop))
|
|
20
|
+
__defNormalProp(a, prop, b[prop]);
|
|
21
|
+
}
|
|
22
|
+
return a;
|
|
23
|
+
};
|
|
24
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
|
+
var __objRest = (source, exclude) => {
|
|
26
|
+
var target = {};
|
|
27
|
+
for (var prop in source)
|
|
28
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
29
|
+
target[prop] = source[prop];
|
|
30
|
+
if (source != null && __getOwnPropSymbols)
|
|
31
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
32
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
33
|
+
target[prop] = source[prop];
|
|
34
|
+
}
|
|
35
|
+
return target;
|
|
36
|
+
};
|
|
37
|
+
var __export = (target, all) => {
|
|
38
|
+
for (var name in all)
|
|
39
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
40
|
+
};
|
|
41
|
+
var __copyProps = (to, from, except, desc) => {
|
|
42
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
43
|
+
for (let key of __getOwnPropNames(from))
|
|
44
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
45
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
46
|
+
}
|
|
47
|
+
return to;
|
|
48
|
+
};
|
|
49
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
50
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
51
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
52
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
53
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
54
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
55
|
+
mod
|
|
56
|
+
));
|
|
57
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
58
|
+
|
|
59
|
+
// src/form/date-picker/date-picker.tsx
|
|
60
|
+
var date_picker_exports = {};
|
|
61
|
+
__export(date_picker_exports, {
|
|
62
|
+
DatePicker: () => DatePicker
|
|
63
|
+
});
|
|
64
|
+
module.exports = __toCommonJS(date_picker_exports);
|
|
65
|
+
var import_react3 = require("react");
|
|
66
|
+
var import_typed_classname3 = require("@postenbring/hedwig-css/typed-classname");
|
|
67
|
+
|
|
68
|
+
// src/form/input-group/input-group.tsx
|
|
69
|
+
var import_react = require("react");
|
|
70
|
+
var import_typed_classname2 = require("@postenbring/hedwig-css/typed-classname");
|
|
71
|
+
|
|
72
|
+
// src/form/error-message/error-message.tsx
|
|
73
|
+
var import_typed_classname = require("@postenbring/hedwig-css/typed-classname");
|
|
74
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
75
|
+
function ErrorMessage({ children, id, className }) {
|
|
76
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
77
|
+
"div",
|
|
78
|
+
{
|
|
79
|
+
"aria-live": "assertive",
|
|
80
|
+
className: (0, import_typed_classname.clsx)("hds-error-message", className),
|
|
81
|
+
id,
|
|
82
|
+
children
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// src/form/input-group/input-group.tsx
|
|
88
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
89
|
+
var InputGroup = (0, import_react.forwardRef)(function InputGroup2(_a, ref) {
|
|
90
|
+
var _b = _a, {
|
|
91
|
+
id,
|
|
92
|
+
className,
|
|
93
|
+
style,
|
|
94
|
+
variant = "default",
|
|
95
|
+
errorMessage,
|
|
96
|
+
labelProps: _c = {}
|
|
97
|
+
} = _b, _d = _c, { className: labelClassName } = _d, labelProps = __objRest(_d, ["className"]), _e = _b, {
|
|
98
|
+
label,
|
|
99
|
+
disabled,
|
|
100
|
+
readOnly,
|
|
101
|
+
children
|
|
102
|
+
} = _e, rest = __objRest(_e, [
|
|
103
|
+
"id",
|
|
104
|
+
"className",
|
|
105
|
+
"style",
|
|
106
|
+
"variant",
|
|
107
|
+
"errorMessage",
|
|
108
|
+
"labelProps",
|
|
109
|
+
"label",
|
|
110
|
+
"disabled",
|
|
111
|
+
"readOnly",
|
|
112
|
+
"children"
|
|
113
|
+
]);
|
|
114
|
+
const errorMessageId = (0, import_react.useId)();
|
|
115
|
+
const inputId = (0, import_react.useId)();
|
|
116
|
+
const renderInput = () => {
|
|
117
|
+
var _a2;
|
|
118
|
+
const inputProps = {
|
|
119
|
+
"aria-describedby": errorMessage ? errorMessageId : void 0,
|
|
120
|
+
"aria-invalid": errorMessage ? true : void 0,
|
|
121
|
+
id: id != null ? id : inputId,
|
|
122
|
+
className: (0, import_typed_classname2.clsx)("hds-input-group__input")
|
|
123
|
+
};
|
|
124
|
+
if (typeof children === "function") {
|
|
125
|
+
return children(inputProps);
|
|
126
|
+
}
|
|
127
|
+
const input = import_react.Children.toArray(children)[0];
|
|
128
|
+
if (!(0, import_react.isValidElement)(input)) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
return (0, import_react.cloneElement)(input, __spreadProps(__spreadValues(__spreadValues({}, inputProps), input.props), {
|
|
132
|
+
className: `${inputProps.className} ${(_a2 = input.props.className) != null ? _a2 : ""}`
|
|
133
|
+
}));
|
|
134
|
+
};
|
|
135
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
136
|
+
"div",
|
|
137
|
+
__spreadProps(__spreadValues({
|
|
138
|
+
className: (0, import_typed_classname2.clsx)(
|
|
139
|
+
"hds-input-group",
|
|
140
|
+
{
|
|
141
|
+
[`hds-input-group--${variant}`]: variant,
|
|
142
|
+
"hds-input-group--error": errorMessage
|
|
143
|
+
},
|
|
144
|
+
className
|
|
145
|
+
),
|
|
146
|
+
ref,
|
|
147
|
+
style
|
|
148
|
+
}, rest), {
|
|
149
|
+
children: [
|
|
150
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
151
|
+
"label",
|
|
152
|
+
__spreadProps(__spreadValues({
|
|
153
|
+
className: (0, import_typed_classname2.clsx)("hds-input-group__label", labelClassName)
|
|
154
|
+
}, labelProps), {
|
|
155
|
+
htmlFor: id != null ? id : inputId,
|
|
156
|
+
children: label
|
|
157
|
+
})
|
|
158
|
+
),
|
|
159
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
160
|
+
"div",
|
|
161
|
+
{
|
|
162
|
+
className: (0, import_typed_classname2.clsx)("hds-input-group__input-wrapper"),
|
|
163
|
+
"data-disabled": disabled,
|
|
164
|
+
"data-readonly": readOnly,
|
|
165
|
+
children: renderInput()
|
|
166
|
+
}
|
|
167
|
+
),
|
|
168
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ErrorMessage, { id: errorMessageId, children: errorMessage })
|
|
169
|
+
]
|
|
170
|
+
})
|
|
171
|
+
);
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
// src/utils.ts
|
|
175
|
+
var React = __toESM(require("react"));
|
|
176
|
+
var import_react2 = require("react");
|
|
177
|
+
function useMergeRefs(refs) {
|
|
178
|
+
return React.useMemo(() => {
|
|
179
|
+
if (refs.every((ref) => ref === null)) {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
return (value) => {
|
|
183
|
+
refs.forEach((ref) => {
|
|
184
|
+
if (typeof ref === "function") {
|
|
185
|
+
ref(value);
|
|
186
|
+
} else if (ref !== null) {
|
|
187
|
+
ref.current = value;
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
};
|
|
191
|
+
}, refs);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// src/form/date-picker/date-picker.tsx
|
|
195
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
196
|
+
var DatePicker = (0, import_react3.forwardRef)(function DatePicker2(_a, ref) {
|
|
197
|
+
var _b = _a, {
|
|
198
|
+
className,
|
|
199
|
+
variant,
|
|
200
|
+
errorMessage,
|
|
201
|
+
labelProps,
|
|
202
|
+
label,
|
|
203
|
+
id,
|
|
204
|
+
style,
|
|
205
|
+
disabled,
|
|
206
|
+
readOnly,
|
|
207
|
+
calendarButtonTitle = "\xC5pne kalender"
|
|
208
|
+
} = _b, rest = __objRest(_b, [
|
|
209
|
+
"className",
|
|
210
|
+
"variant",
|
|
211
|
+
"errorMessage",
|
|
212
|
+
"labelProps",
|
|
213
|
+
"label",
|
|
214
|
+
"id",
|
|
215
|
+
"style",
|
|
216
|
+
"disabled",
|
|
217
|
+
"readOnly",
|
|
218
|
+
"calendarButtonTitle"
|
|
219
|
+
]);
|
|
220
|
+
const inputRef = (0, import_react3.useRef)(null);
|
|
221
|
+
const mergedRef = useMergeRefs([inputRef, ref]);
|
|
222
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
223
|
+
InputGroup,
|
|
224
|
+
{
|
|
225
|
+
className: (0, import_typed_classname3.clsx)("hds-date-picker", className),
|
|
226
|
+
disabled,
|
|
227
|
+
errorMessage,
|
|
228
|
+
id,
|
|
229
|
+
label,
|
|
230
|
+
labelProps,
|
|
231
|
+
readOnly,
|
|
232
|
+
style,
|
|
233
|
+
variant,
|
|
234
|
+
children: (inputProps) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
|
|
235
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
236
|
+
"input",
|
|
237
|
+
__spreadProps(__spreadValues(__spreadValues({}, rest), inputProps), {
|
|
238
|
+
disabled,
|
|
239
|
+
readOnly,
|
|
240
|
+
ref: mergedRef,
|
|
241
|
+
type: "date"
|
|
242
|
+
})
|
|
243
|
+
),
|
|
244
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
245
|
+
"button",
|
|
246
|
+
{
|
|
247
|
+
className: (0, import_typed_classname3.clsx)("hds-date-picker__calendar-button"),
|
|
248
|
+
type: "button",
|
|
249
|
+
title: calendarButtonTitle,
|
|
250
|
+
onClick: () => {
|
|
251
|
+
var _a2;
|
|
252
|
+
(_a2 = inputRef.current) == null ? void 0 : _a2.showPicker();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
)
|
|
256
|
+
] })
|
|
257
|
+
}
|
|
258
|
+
);
|
|
259
|
+
});
|
|
260
|
+
DatePicker.displayName = "DatePicker";
|
|
261
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
262
|
+
0 && (module.exports = {
|
|
263
|
+
DatePicker
|
|
264
|
+
});
|
|
265
|
+
//# sourceMappingURL=date-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/form/date-picker/date-picker.tsx","../../../src/form/input-group/input-group.tsx","../../../src/form/error-message/error-message.tsx","../../../src/utils.ts"],"sourcesContent":["import { forwardRef, useRef, type InputHTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { InputGroup, type InputGroupProps } from \"../input-group\";\nimport { useMergeRefs } from \"../../utils\";\n\nexport type DatePickerProps = Omit<\n InputGroupProps & InputHTMLAttributes<HTMLInputElement>,\n \"children\" | \"type\"\n> & {\n /**\n * Accessible title for the calendar button\n *\n * This button currently only shows in Chrome.\n *\n * @defaultValue \"Åpne kalender\"\n */\n calendarButtonTitle?: string;\n};\n\n/**\n * A basic implementation of a date picker\n *\n * This date picker is an implementation of native date picker, as you get\n * with `<input type=\"date\" />`, where the input field is dressed in Hedwig styling.\n *\n * Due to accessibility concerns you will only see the appropriate Hedwig calendar\n * icon in Chrome. Firefox will show built in icon and Safari will show no icon.\n * Not tested in Edge.\n */\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(function DatePicker(\n {\n className,\n variant,\n errorMessage,\n labelProps,\n label,\n id,\n style,\n disabled,\n readOnly,\n calendarButtonTitle = \"Åpne kalender\",\n ...rest\n },\n ref,\n) {\n const inputRef = useRef<HTMLInputElement>(null);\n const mergedRef = useMergeRefs([inputRef, ref]);\n\n return (\n <InputGroup\n className={clsx(\"hds-date-picker\", className as undefined)}\n disabled={disabled}\n errorMessage={errorMessage}\n id={id}\n label={label}\n labelProps={labelProps}\n readOnly={readOnly}\n style={style}\n variant={variant}\n >\n {(inputProps) => (\n <>\n <input\n {...rest}\n {...inputProps}\n disabled={disabled}\n readOnly={readOnly}\n ref={mergedRef}\n type=\"date\"\n />\n <button\n className={clsx(\"hds-date-picker__calendar-button\")}\n type=\"button\"\n title={calendarButtonTitle}\n onClick={() => {\n inputRef.current?.showPicker();\n }}\n />\n </>\n )}\n </InputGroup>\n );\n});\n\nDatePicker.displayName = \"DatePicker\";\n","import { useId, forwardRef, Children, isValidElement, cloneElement } from \"react\";\nimport type { LabelHTMLAttributes, ReactNode, CSSProperties } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { ErrorMessage } from \"../error-message\";\n\ninterface InputProps {\n \"aria-describedby\"?: string;\n \"aria-invalid\"?: boolean;\n id?: string;\n className?: string;\n}\n\nexport interface InputGroupProps {\n id?: string;\n className?: string;\n style?: CSSProperties;\n variant?: \"default\" | \"white\";\n errorMessage?: ReactNode;\n labelProps?: LabelHTMLAttributes<HTMLLabelElement>;\n label: ReactNode;\n disabled?: boolean;\n readOnly?: boolean;\n /**\n * `children` must be either a single input element or a render function.\n *\n * If you use a render function, make sure you spread the input props to the appropriate element.\n */\n children: Exclude<ReactNode, Iterable<ReactNode>> | ((inputProps: InputProps) => ReactNode);\n}\n\nexport const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n {\n id,\n className,\n style,\n variant = \"default\",\n errorMessage,\n labelProps: { className: labelClassName, ...labelProps } = {},\n label,\n disabled,\n readOnly,\n children,\n ...rest\n },\n ref,\n) {\n const errorMessageId = useId();\n const inputId = useId();\n\n const renderInput = () => {\n const inputProps: InputProps = {\n \"aria-describedby\": errorMessage ? errorMessageId : undefined,\n \"aria-invalid\": errorMessage ? true : undefined,\n id: id ?? inputId,\n className: clsx(\"hds-input-group__input\"),\n };\n\n if (typeof children === \"function\") {\n return children(inputProps);\n }\n\n const input: ReactNode = Children.toArray(children)[0];\n\n if (!isValidElement<InputProps>(input)) {\n return;\n }\n\n return cloneElement<InputProps>(input, {\n ...inputProps,\n ...input.props,\n className: `${inputProps.className} ${input.props.className ?? \"\"}`,\n });\n };\n\n return (\n <div\n className={clsx(\n \"hds-input-group\",\n {\n [`hds-input-group--${variant}`]: variant,\n \"hds-input-group--error\": errorMessage,\n },\n className as undefined,\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n <label\n className={clsx(\"hds-input-group__label\", labelClassName as undefined)}\n {...labelProps}\n htmlFor={id ?? inputId}\n >\n {label}\n </label>\n <div\n className={clsx(\"hds-input-group__input-wrapper\")}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n {renderInput()}\n </div>\n <ErrorMessage id={errorMessageId}>{errorMessage}</ErrorMessage>\n </div>\n );\n});\n","import { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { ReactNode } from \"react\";\n\nexport interface ErrorMessageProps {\n children: ReactNode;\n id: string;\n className?: string;\n}\n\nexport function ErrorMessage({ children, id, className }: ErrorMessageProps) {\n return (\n <div\n aria-live=\"assertive\"\n className={clsx(\"hds-error-message\", className as undefined)}\n id={id}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentPropsWithRef, ElementType, FC, RefAttributes } from \"react\";\nimport * as React from \"react\";\nimport { useCallback, useEffect, useState } from \"react\";\n\n/**\n * OverridableComponent makes the `as` prop available,\n * to be used to override the html element being used for a component\n *\n * Taken from digdir design system: https://github.com/digdir/designsystem/blob/main/packages/react/src/types/OverridableComponent.ts\n */\nexport type OverridableComponent<ComponentProps, Element extends HTMLElement> = {\n (props: ComponentProps & RefAttributes<Element>): ReturnType<FC>;\n\n <As extends ElementType>(\n props: {\n /** Override html element */\n as?: As;\n } & ComponentProps &\n Omit<ComponentPropsWithRef<As>, keyof ComponentProps>,\n ): ReturnType<FC>;\n} & Pick<FC, \"displayName\">;\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/useMergeRefs\n */\nexport function useMergeRefs<Instance>(\n refs: (React.Ref<Instance> | undefined)[],\n): React.RefCallback<Instance> | null {\n return React.useMemo(() => {\n if (refs.every((ref) => ref === null)) {\n return null;\n }\n\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null) {\n (ref as React.MutableRefObject<Instance | null>).current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- It's ok\n }, refs);\n}\n\nexport function useResize<Instance extends HTMLElement>(\n ref: React.RefObject<Instance> | undefined | null,\n): { width: number; height: number } {\n const [width, setWidth] = useState<number>(0);\n const [height, setHeight] = useState<number>(0);\n const handleResize = useCallback(() => {\n if (ref?.current !== null) {\n setWidth(ref?.current?.offsetWidth ?? 0);\n setHeight(ref?.current?.offsetHeight ?? 0);\n }\n }, [ref]);\n useEffect(() => {\n window.addEventListener(\"load\", handleResize);\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"load\", handleResize);\n window.removeEventListener(\"resize\", handleResize);\n };\n }, [ref, handleResize]);\n useEffect(() => {\n handleResize();\n // eslint-disable-next-line react-hooks/exhaustive-deps -- It's ok\n }, []);\n return { width, height };\n}\n\nfunction subscribe() {\n // eslint-disable-next-line @typescript-eslint/no-empty-function -- It's ok\n return () => {};\n}\n\nexport function useHydrated() {\n return React.useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n );\n}\n"],"mappings":"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","names":["import_react","import_typed_classname","import_typed_classname","import_jsx_runtime","InputGroup","_a","import_react","import_jsx_runtime","DatePicker","_a"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DatePicker
|
|
3
|
+
} from "../../chunk-G2SOAFGS.mjs";
|
|
4
|
+
import "../../chunk-Y5SUMFYJ.mjs";
|
|
5
|
+
import "../../chunk-TNU64NUN.mjs";
|
|
6
|
+
import "../../chunk-NSLSA7F7.mjs";
|
|
7
|
+
import "../../chunk-IL7576PP.mjs";
|
|
8
|
+
import "../../chunk-ZL56N4UK.mjs";
|
|
9
|
+
import "../../chunk-R4SQKVDQ.mjs";
|
|
10
|
+
export {
|
|
11
|
+
DatePicker
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=date-picker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|