@postenbring/hedwig-react 0.0.64 → 0.0.66
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 +301 -68
- package/dist/_tsup-dts-rollup.d.ts +301 -68
- package/dist/accordion/accordion-content.js +5 -9
- package/dist/accordion/accordion-content.js.map +1 -1
- package/dist/accordion/accordion-content.mjs +1 -1
- package/dist/accordion/accordion-header.js +6 -9
- package/dist/accordion/accordion-header.js.map +1 -1
- package/dist/accordion/accordion-header.mjs +1 -1
- package/dist/accordion/accordion-item.js +2 -7
- package/dist/accordion/accordion-item.js.map +1 -1
- package/dist/accordion/accordion-item.mjs +1 -1
- package/dist/accordion/index.js +13 -25
- package/dist/accordion/index.js.map +1 -1
- package/dist/accordion/index.mjs +4 -4
- package/dist/chunk-27XJO7E4.mjs +51 -0
- package/dist/chunk-27XJO7E4.mjs.map +1 -0
- package/dist/{chunk-POJTVNEO.mjs → chunk-2ICZ3Q7N.mjs} +1 -1
- package/dist/chunk-2ICZ3Q7N.mjs.map +1 -0
- package/dist/{chunk-H3VGHTDC.mjs → chunk-2JH4FG63.mjs} +2 -2
- package/dist/chunk-2JH4FG63.mjs.map +1 -0
- package/dist/{chunk-SAGJ5W7M.mjs → chunk-62F4I3MQ.mjs} +3 -8
- package/dist/{chunk-SAGJ5W7M.mjs.map → chunk-62F4I3MQ.mjs.map} +1 -1
- package/dist/{chunk-V4NGUB4I.mjs → chunk-6NGF7FFY.mjs} +2 -2
- package/dist/chunk-6NGF7FFY.mjs.map +1 -0
- package/dist/{chunk-BYDSISQZ.mjs → chunk-A47QULAK.mjs} +2 -2
- package/dist/{chunk-BYDSISQZ.mjs.map → chunk-A47QULAK.mjs.map} +1 -1
- package/dist/chunk-BZRCDLEW.mjs +118 -0
- package/dist/chunk-BZRCDLEW.mjs.map +1 -0
- package/dist/chunk-CLXHNRAI.mjs +104 -0
- package/dist/chunk-CLXHNRAI.mjs.map +1 -0
- package/dist/{chunk-37WVYY6X.mjs → chunk-DM4PJFLG.mjs} +6 -3
- package/dist/chunk-DM4PJFLG.mjs.map +1 -0
- package/dist/{chunk-KRGKVH5J.mjs → chunk-GUB3UCXO.mjs} +6 -10
- package/dist/chunk-GUB3UCXO.mjs.map +1 -0
- package/dist/{chunk-WGVZWX5L.mjs → chunk-HMB4TY2F.mjs} +14 -4
- package/dist/chunk-HMB4TY2F.mjs.map +1 -0
- package/dist/{chunk-5MDJP43L.mjs → chunk-IFGQR4J6.mjs} +10 -10
- package/dist/chunk-IFGQR4J6.mjs.map +1 -0
- package/dist/chunk-KQITCS3U.mjs +18 -0
- package/dist/chunk-KQITCS3U.mjs.map +1 -0
- package/dist/chunk-L4GQJETB.mjs +1 -0
- package/dist/{chunk-QSYU64U4.mjs → chunk-MRCE2Q7A.mjs} +2 -2
- package/dist/chunk-NE6W2PCD.mjs +9 -0
- package/dist/chunk-NE6W2PCD.mjs.map +1 -0
- package/dist/chunk-RHCMBJOT.mjs +76 -0
- package/dist/chunk-RHCMBJOT.mjs.map +1 -0
- package/dist/chunk-RXIP2JTE.mjs +19 -0
- package/dist/chunk-RXIP2JTE.mjs.map +1 -0
- package/dist/{chunk-EJADADIY.mjs → chunk-UWTGHSWT.mjs} +6 -9
- package/dist/chunk-UWTGHSWT.mjs.map +1 -0
- package/dist/{chunk-2E6XPNPX.mjs → chunk-X46LM2QH.mjs} +9 -6
- package/dist/chunk-X46LM2QH.mjs.map +1 -0
- package/dist/{chunk-DJRMXOCP.mjs → chunk-XIHKASNB.mjs} +4 -4
- package/dist/{chunk-MBBFU4IR.mjs → chunk-XVFQWVHO.mjs} +3 -9
- package/dist/{chunk-MBBFU4IR.mjs.map → chunk-XVFQWVHO.mjs.map} +1 -1
- package/dist/chunk-YWNVB7TY.mjs +1 -0
- package/dist/{chunk-FT5CX2W5.mjs → chunk-YXHXRUFX.mjs} +7 -10
- package/dist/chunk-YXHXRUFX.mjs.map +1 -0
- package/dist/chunk-ZTYEOZLK.mjs +18 -0
- package/dist/chunk-ZTYEOZLK.mjs.map +1 -0
- package/dist/footer/footer.d.mts +7 -0
- package/dist/footer/footer.d.ts +7 -0
- package/dist/footer/footer.js +401 -0
- package/dist/footer/footer.js.map +1 -0
- package/dist/footer/footer.mjs +26 -0
- package/dist/footer/footer.mjs.map +1 -0
- package/dist/footer/index.d.mts +7 -0
- package/dist/footer/index.d.ts +7 -0
- package/dist/footer/index.js +402 -0
- package/dist/footer/index.js.map +1 -0
- package/dist/footer/index.mjs +19 -0
- package/dist/footer/index.mjs.map +1 -0
- package/dist/form/checkbox/checkbox.js +122 -24
- package/dist/form/checkbox/checkbox.js.map +1 -1
- package/dist/form/checkbox/checkbox.mjs +5 -1
- package/dist/form/checkbox/index.js +122 -24
- package/dist/form/checkbox/index.js.map +1 -1
- package/dist/form/checkbox/index.mjs +5 -1
- package/dist/form/fieldset/fieldset.d.mts +1 -0
- package/dist/form/fieldset/fieldset.d.ts +1 -0
- package/dist/form/fieldset/fieldset.js +7 -3
- package/dist/form/fieldset/fieldset.js.map +1 -1
- package/dist/form/fieldset/fieldset.mjs +5 -3
- package/dist/form/fieldset/index.d.mts +1 -0
- package/dist/form/fieldset/index.d.ts +1 -0
- package/dist/form/fieldset/index.js +7 -3
- package/dist/form/fieldset/index.js.map +1 -1
- package/dist/form/fieldset/index.mjs +5 -3
- package/dist/form/index.d.mts +2 -1
- package/dist/form/index.d.ts +2 -1
- package/dist/form/index.js +68 -27
- package/dist/form/index.js.map +1 -1
- package/dist/form/index.mjs +20 -16
- package/dist/form/radiobutton/index.d.mts +1 -1
- package/dist/form/radiobutton/index.d.ts +1 -1
- package/dist/form/radiobutton/index.js +17 -8
- package/dist/form/radiobutton/index.js.map +1 -1
- package/dist/form/radiobutton/index.mjs +7 -5
- package/dist/form/radiobutton/radiobutton.js +13 -6
- package/dist/form/radiobutton/radiobutton.js.map +1 -1
- package/dist/form/radiobutton/radiobutton.mjs +3 -3
- package/dist/form/radiobutton/radiogroup.js +2 -1
- package/dist/form/radiobutton/radiogroup.js.map +1 -1
- package/dist/form/radiobutton/radiogroup.mjs +2 -2
- package/dist/index-no-css.d.mts +20 -7
- package/dist/index-no-css.d.ts +20 -7
- package/dist/index-no-css.js +537 -310
- package/dist/index-no-css.js.map +1 -1
- package/dist/index-no-css.mjs +100 -68
- package/dist/index.d.mts +20 -7
- package/dist/index.d.ts +20 -7
- package/dist/index.js +537 -310
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +100 -68
- package/dist/index.mjs.map +1 -1
- package/dist/layout/index.d.mts +5 -1
- package/dist/layout/index.d.ts +5 -1
- package/dist/layout/index.js +62 -2
- package/dist/layout/index.js.map +1 -1
- package/dist/layout/index.mjs +12 -2
- package/dist/layout/responsive.d.mts +2 -0
- package/dist/layout/responsive.d.ts +2 -0
- package/dist/layout/responsive.js +42 -0
- package/dist/layout/responsive.js.map +1 -0
- package/dist/layout/responsive.mjs +8 -0
- package/dist/layout/responsive.mjs.map +1 -0
- package/dist/layout/spacing.d.mts +3 -0
- package/dist/layout/spacing.d.ts +3 -0
- package/dist/layout/spacing.js +33 -0
- package/dist/layout/spacing.js.map +1 -0
- package/dist/layout/spacing.mjs +8 -0
- package/dist/layout/spacing.mjs.map +1 -0
- package/dist/layout/stack/index.d.mts +4 -0
- package/dist/layout/stack/index.d.ts +4 -0
- package/dist/layout/stack/index.js +117 -0
- package/dist/layout/stack/index.js.map +1 -0
- package/dist/layout/stack/index.mjs +14 -0
- package/dist/layout/stack/index.mjs.map +1 -0
- package/dist/layout/stack/stack.d.mts +4 -0
- package/dist/layout/stack/stack.d.ts +4 -0
- package/dist/layout/stack/stack.js +115 -0
- package/dist/layout/stack/stack.js.map +1 -0
- package/dist/layout/stack/stack.mjs +14 -0
- package/dist/layout/stack/stack.mjs.map +1 -0
- package/dist/modal/index.js.map +1 -1
- package/dist/modal/index.mjs +2 -2
- package/dist/modal/modal.js.map +1 -1
- package/dist/modal/modal.mjs +1 -1
- package/dist/navbar/index.d.mts +1 -0
- package/dist/navbar/index.d.ts +1 -0
- package/dist/navbar/index.js +11 -7
- package/dist/navbar/index.js.map +1 -1
- package/dist/navbar/index.mjs +7 -4
- package/dist/navbar/navbar-expandable-menu.d.mts +1 -0
- package/dist/navbar/navbar-expandable-menu.d.ts +1 -0
- package/dist/navbar/navbar-expandable-menu.js +11 -7
- package/dist/navbar/navbar-expandable-menu.js.map +1 -1
- package/dist/navbar/navbar-expandable-menu.mjs +5 -3
- package/dist/skeleton/index.js +1 -1
- package/dist/skeleton/index.js.map +1 -1
- package/dist/skeleton/index.mjs +1 -1
- package/dist/skeleton/skeleton.js +1 -1
- package/dist/skeleton/skeleton.js.map +1 -1
- package/dist/skeleton/skeleton.mjs +1 -1
- package/dist/tabs/context.d.mts +1 -0
- package/dist/tabs/context.d.ts +1 -0
- package/dist/tabs/context.js +13 -8
- package/dist/tabs/context.js.map +1 -1
- package/dist/tabs/context.mjs +5 -3
- package/dist/tabs/index.d.mts +5 -5
- package/dist/tabs/index.d.ts +5 -5
- package/dist/tabs/index.js +59 -33
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/index.mjs +16 -6
- package/dist/tabs/tabs-content.js +11 -11
- package/dist/tabs/tabs-content.js.map +1 -1
- package/dist/tabs/tabs-content.mjs +2 -2
- package/dist/tabs/tabs-list.d.mts +2 -2
- package/dist/tabs/tabs-list.d.ts +2 -2
- package/dist/tabs/tabs-list.js +49 -22
- package/dist/tabs/tabs-list.js.map +1 -1
- package/dist/tabs/tabs-list.mjs +6 -6
- package/dist/tabs/tabs.js +2 -14
- package/dist/tabs/tabs.js.map +1 -1
- package/dist/tabs/tabs.mjs +2 -2
- package/package.json +5 -5
- package/dist/chunk-2E6XPNPX.mjs.map +0 -1
- package/dist/chunk-33JD5XDW.mjs +0 -14
- package/dist/chunk-33JD5XDW.mjs.map +0 -1
- package/dist/chunk-37WVYY6X.mjs.map +0 -1
- package/dist/chunk-5MDJP43L.mjs.map +0 -1
- package/dist/chunk-EJADADIY.mjs.map +0 -1
- package/dist/chunk-FT5CX2W5.mjs.map +0 -1
- package/dist/chunk-H3VGHTDC.mjs.map +0 -1
- package/dist/chunk-H4GIHEB2.mjs +0 -1
- package/dist/chunk-KRGKVH5J.mjs.map +0 -1
- package/dist/chunk-OIQUYB26.mjs +0 -1
- package/dist/chunk-POJTVNEO.mjs.map +0 -1
- package/dist/chunk-PXHYOQPB.mjs +0 -42
- package/dist/chunk-PXHYOQPB.mjs.map +0 -1
- package/dist/chunk-V4NGUB4I.mjs.map +0 -1
- package/dist/chunk-WGVZWX5L.mjs.map +0 -1
- package/dist/chunk-XVZ44NGD.mjs +0 -80
- package/dist/chunk-XVZ44NGD.mjs.map +0 -1
- /package/dist/{chunk-H4GIHEB2.mjs.map → chunk-L4GQJETB.mjs.map} +0 -0
- /package/dist/{chunk-QSYU64U4.mjs.map → chunk-MRCE2Q7A.mjs.map} +0 -0
- /package/dist/{chunk-DJRMXOCP.mjs.map → chunk-XIHKASNB.mjs.map} +0 -0
- /package/dist/{chunk-OIQUYB26.mjs.map → chunk-YWNVB7TY.mjs.map} +0 -0
|
@@ -63,23 +63,20 @@ var AccordionItemContext = (0, import_react.createContext)(null);
|
|
|
63
63
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
64
64
|
var AccordionHeader = (0, import_react2.forwardRef)((_a, ref) => {
|
|
65
65
|
var _b = _a, { as: Component = "button", children, className, onClick } = _b, rest = __objRest(_b, ["as", "children", "className", "onClick"]);
|
|
66
|
-
const
|
|
67
|
-
if (
|
|
66
|
+
const context = (0, import_react2.useContext)(AccordionItemContext);
|
|
67
|
+
if (context === null) {
|
|
68
68
|
return null;
|
|
69
69
|
}
|
|
70
70
|
const expandOrCollapse = (e) => {
|
|
71
|
-
|
|
71
|
+
context.setOpen(!context.open);
|
|
72
72
|
onClick && onClick(e);
|
|
73
73
|
};
|
|
74
74
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
75
75
|
Component,
|
|
76
76
|
__spreadProps(__spreadValues({}, rest), {
|
|
77
|
-
"aria-expanded":
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
{ "hds-accordion-item-header--open": itemContext.open },
|
|
81
|
-
className
|
|
82
|
-
),
|
|
77
|
+
"aria-expanded": context.open,
|
|
78
|
+
"data-state": context.open ? "open" : "closed",
|
|
79
|
+
className: (0, import_typed_classname.clsx)("hds-accordion-item-header", className),
|
|
83
80
|
onClick: expandOrCollapse,
|
|
84
81
|
ref,
|
|
85
82
|
type: "button",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/accordion/accordion-header.tsx","../../src/accordion/context.ts"],"sourcesContent":["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
|
|
1
|
+
{"version":3,"sources":["../../src/accordion/accordion-header.tsx","../../src/accordion/context.ts"],"sourcesContent":["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 { 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,IAAAA,gBAAuC;AACvC,6BAAqB;;;ACFrB,mBAA8B;AAOvB,IAAM,2BAAuB,4BAAgD,IAAI;;;ADuBhF;AApBD,IAAM,sBACX,0BAAW,CAAC,IAAqE,QAAQ;AAA7E,eAAE,MAAI,YAAY,UAAU,UAAU,WAAW,QAX/D,IAWc,IAA6D,iBAA7D,IAA6D,CAA3D,MAA0B,YAAU,aAAW;AAC3D,QAAM,cAAU,0BAAW,oBAAoB;AAC/C,MAAI,YAAY,MAAM;AACpB,WAAO;AAAA,EACT;AACA,QAAM,mBAAmB,CAAC,MAAqC;AAC7D,YAAQ,QAAQ,CAAC,QAAQ,IAAI;AAC7B,eAAW,QAAQ,CAAC;AAAA,EACtB;AACA,SACE;AAAA,IAAC;AAAA,qCACK,OADL;AAAA,MAEC,iBAAe,QAAQ;AAAA,MACvB,cAAY,QAAQ,OAAO,SAAS;AAAA,MACpC,eAAW,6BAAK,6BAA6B,SAAsB;AAAA,MACnE,SAAS;AAAA,MACT;AAAA,MACA,MAAK;AAAA,MAEL,sDAAC,UAAM,UAAS;AAAA;AAAA,EAClB;AAEJ,CAAC;AAEH,gBAAgB,cAAc;","names":["import_react"]}
|
|
@@ -90,13 +90,8 @@ var AccordionItem = (0, import_react2.forwardRef)(
|
|
|
90
90
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
91
91
|
Component,
|
|
92
92
|
__spreadProps(__spreadValues({}, rest), {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
{
|
|
96
|
-
"hds-accordion-item__expanded": open
|
|
97
|
-
},
|
|
98
|
-
className
|
|
99
|
-
),
|
|
93
|
+
"data-state": open ? "open" : "closed",
|
|
94
|
+
className: (0, import_typed_classname.clsx)("hds-accordion-item", className),
|
|
100
95
|
ref,
|
|
101
96
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionItemContext.Provider, { value: { open, setOpen: handleOpen }, children })
|
|
102
97
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/accordion/accordion-item.tsx","../../src/accordion/context.ts"],"sourcesContent":["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
|
|
1
|
+
{"version":3,"sources":["../../src/accordion/accordion-item.tsx","../../src/accordion/context.ts"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,IAAAA,gBAAqC;AACrC,6BAAqB;;;ACFrB,mBAA8B;AAOvB,IAAM,2BAAuB,4BAAgD,IAAI;;;AD0DhF;AA/BD,IAAM,oBAA0E;AAAA,EACrF,CACE,IASA,QACG;AAVH,iBACE;AAAA,UAAI,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IA1CN,IAoCI,IAOK,iBAPL,IAOK;AAAA,MANH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,UAAM,CAAC,WAAW,YAAY,QAAI,wBAAS,oCAAe,KAAK;AAC/D,UAAM,OAAO,gCAAa;AAE1B,UAAM,aAAa,MAAM;AACvB,UAAI,cAAc,QAAW;AAC3B,wBAAgB,aAAa,CAAC,IAAI;AAAA,MACpC,OAAO;AACL,qBAAa,CAAC,IAAI;AAAA,MACpB;AAAA,IACF;AAEA,WACE;AAAA,MAAC;AAAA,uCACK,OADL;AAAA,QAEC,cAAY,OAAO,SAAS;AAAA,QAC5B,eAAW,6BAAK,sBAAsB,SAAsB;AAAA,QAC5D;AAAA,QAEA,sDAAC,qBAAqB,UAArB,EAA8B,OAAO,EAAE,MAAM,SAAS,WAAW,GAC/D,UACH;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,cAAc,cAAc;","names":["import_react"]}
|
package/dist/accordion/index.js
CHANGED
|
@@ -115,13 +115,8 @@ var AccordionItem = (0, import_react3.forwardRef)(
|
|
|
115
115
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
116
116
|
Component,
|
|
117
117
|
__spreadProps(__spreadValues({}, rest), {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
{
|
|
121
|
-
"hds-accordion-item__expanded": open
|
|
122
|
-
},
|
|
123
|
-
className
|
|
124
|
-
),
|
|
118
|
+
"data-state": open ? "open" : "closed",
|
|
119
|
+
className: (0, import_typed_classname2.clsx)("hds-accordion-item", className),
|
|
125
120
|
ref,
|
|
126
121
|
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(AccordionItemContext.Provider, { value: { open, setOpen: handleOpen }, children })
|
|
127
122
|
})
|
|
@@ -136,23 +131,20 @@ var import_typed_classname3 = require("@postenbring/hedwig-css/typed-classname")
|
|
|
136
131
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
137
132
|
var AccordionHeader = (0, import_react4.forwardRef)((_a, ref) => {
|
|
138
133
|
var _b = _a, { as: Component = "button", children, className, onClick } = _b, rest = __objRest(_b, ["as", "children", "className", "onClick"]);
|
|
139
|
-
const
|
|
140
|
-
if (
|
|
134
|
+
const context = (0, import_react4.useContext)(AccordionItemContext);
|
|
135
|
+
if (context === null) {
|
|
141
136
|
return null;
|
|
142
137
|
}
|
|
143
138
|
const expandOrCollapse = (e) => {
|
|
144
|
-
|
|
139
|
+
context.setOpen(!context.open);
|
|
145
140
|
onClick && onClick(e);
|
|
146
141
|
};
|
|
147
142
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
148
143
|
Component,
|
|
149
144
|
__spreadProps(__spreadValues({}, rest), {
|
|
150
|
-
"aria-expanded":
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
{ "hds-accordion-item-header--open": itemContext.open },
|
|
154
|
-
className
|
|
155
|
-
),
|
|
145
|
+
"aria-expanded": context.open,
|
|
146
|
+
"data-state": context.open ? "open" : "closed",
|
|
147
|
+
className: (0, import_typed_classname3.clsx)("hds-accordion-item-header", className),
|
|
156
148
|
onClick: expandOrCollapse,
|
|
157
149
|
ref,
|
|
158
150
|
type: "button",
|
|
@@ -175,16 +167,12 @@ var AccordionContent = (0, import_react5.forwardRef)((_a, ref) => {
|
|
|
175
167
|
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
176
168
|
Component,
|
|
177
169
|
__spreadProps(__spreadValues({
|
|
178
|
-
"aria-hidden": !context.open
|
|
170
|
+
"aria-hidden": !context.open,
|
|
171
|
+
"data-state": context.open ? "open" : "closed",
|
|
172
|
+
inert: context.open ? void 0 : "true",
|
|
173
|
+
className: (0, import_typed_classname4.clsx)("hds-accordion-item-content", className),
|
|
174
|
+
ref
|
|
179
175
|
}, rest), {
|
|
180
|
-
className: (0, import_typed_classname4.clsx)(
|
|
181
|
-
"hds-accordion-item-content",
|
|
182
|
-
{
|
|
183
|
-
"hds-accordion-item-content--closed": !context.open
|
|
184
|
-
},
|
|
185
|
-
className
|
|
186
|
-
),
|
|
187
|
-
ref,
|
|
188
176
|
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: (0, import_typed_classname4.clsx)("hds-accordion-item-content-inner"), children })
|
|
189
177
|
})
|
|
190
178
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/accordion/index.tsx","../../src/accordion/accordion.tsx","../../src/accordion/accordion-item.tsx","../../src/accordion/context.ts","../../src/accordion/accordion-header.tsx","../../src/accordion/accordion-content.tsx"],"sourcesContent":["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 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
|
|
1
|
+
{"version":3,"sources":["../../src/accordion/index.tsx","../../src/accordion/accordion.tsx","../../src/accordion/accordion-item.tsx","../../src/accordion/context.ts","../../src/accordion/accordion-header.tsx","../../src/accordion/accordion-content.tsx"],"sourcesContent":["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 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"],"mappings":"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","names":["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"]}
|
package/dist/accordion/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AccordionComponent
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-XIHKASNB.mjs";
|
|
4
|
+
import "../chunk-GUB3UCXO.mjs";
|
|
5
|
+
import "../chunk-YXHXRUFX.mjs";
|
|
6
|
+
import "../chunk-62F4I3MQ.mjs";
|
|
7
7
|
import "../chunk-VRIY65P5.mjs";
|
|
8
8
|
import "../chunk-V3PAFMK5.mjs";
|
|
9
9
|
import "../chunk-R4SQKVDQ.mjs";
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getResponsiveProps
|
|
3
|
+
} from "./chunk-ZTYEOZLK.mjs";
|
|
4
|
+
import {
|
|
5
|
+
getSpacingVariable
|
|
6
|
+
} from "./chunk-NE6W2PCD.mjs";
|
|
7
|
+
import {
|
|
8
|
+
__objRest,
|
|
9
|
+
__spreadProps,
|
|
10
|
+
__spreadValues
|
|
11
|
+
} from "./chunk-R4SQKVDQ.mjs";
|
|
12
|
+
|
|
13
|
+
// src/layout/stack/stack.tsx
|
|
14
|
+
import "react";
|
|
15
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
16
|
+
import { forwardRef } from "react";
|
|
17
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
18
|
+
import { jsx } from "react/jsx-runtime";
|
|
19
|
+
var Stack = forwardRef(
|
|
20
|
+
(_a, ref) => {
|
|
21
|
+
var _b = _a, { children, asChild, className, style: _style, gap, direction, wrap, align, justify } = _b, rest = __objRest(_b, ["children", "asChild", "className", "style", "gap", "direction", "wrap", "align", "justify"]);
|
|
22
|
+
const Component = asChild ? Slot : "div";
|
|
23
|
+
const style = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, _style), getResponsiveProps("--hds-stack-gap", gap, getSpacingVariable)), getResponsiveProps("--hds-stack-direction", direction)), getResponsiveProps("--hds-stack-wrap", wrap, (value) => value ? "wrap" : "nowrap")), getResponsiveProps("--hds-stack-align", align)), getResponsiveProps("--hds-stack-justify", justify));
|
|
24
|
+
return /* @__PURE__ */ jsx(
|
|
25
|
+
Component,
|
|
26
|
+
__spreadProps(__spreadValues({
|
|
27
|
+
style,
|
|
28
|
+
className: clsx("hds-stack", className),
|
|
29
|
+
ref
|
|
30
|
+
}, rest), {
|
|
31
|
+
children
|
|
32
|
+
})
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
Stack.displayName = "Stack";
|
|
37
|
+
var HStack = forwardRef((props, ref) => {
|
|
38
|
+
return /* @__PURE__ */ jsx(Stack, __spreadProps(__spreadValues({ ref }, props), { direction: "row" }));
|
|
39
|
+
});
|
|
40
|
+
HStack.displayName = "HStack";
|
|
41
|
+
var VStack = forwardRef((props, ref) => {
|
|
42
|
+
return /* @__PURE__ */ jsx(Stack, __spreadProps(__spreadValues({ ref }, props), { direction: "column" }));
|
|
43
|
+
});
|
|
44
|
+
VStack.displayName = "VStack";
|
|
45
|
+
|
|
46
|
+
export {
|
|
47
|
+
Stack,
|
|
48
|
+
HStack,
|
|
49
|
+
VStack
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=chunk-27XJO7E4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/layout/stack/stack.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { forwardRef } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { getSpacingVariable, type ResponsiveSpacingSizes, type SpacingSizes } from \"../spacing\";\nimport { getResponsiveProps, type ResponsiveProp } from \"../responsive\";\n\ntype CSSPropertiesWithVar = React.CSSProperties & {\n \"--hds-stack-gap\"?: string;\n \"--hds-stack-direction\"?: string;\n \"--hds-stack-wrap\"?: string;\n \"--hds-stack-align\"?: string;\n \"--hds-stack-justify\"?: string;\n};\n\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n\n gap?: ResponsiveProp<SpacingSizes> | ResponsiveSpacingSizes;\n direction?: ResponsiveProp<React.CSSProperties[\"flexDirection\"]>;\n wrap?: ResponsiveProp<boolean>;\n align?: ResponsiveProp<React.CSSProperties[\"alignItems\"]>;\n justify?: ResponsiveProp<React.CSSProperties[\"justifyContent\"]>;\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 *\n * TODO\n * - [ ] Add more examples\n * - [ ] Document usage\n * - [ ] Document props\n */\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(\n (\n { children, asChild, className, style: _style, gap, direction, wrap, align, justify, ...rest },\n ref,\n ) => {\n const Component = asChild ? Slot : \"div\";\n const style: CSSPropertiesWithVar = {\n ..._style,\n ...getResponsiveProps(\"--hds-stack-gap\", gap, getSpacingVariable),\n ...getResponsiveProps(\"--hds-stack-direction\", direction),\n ...getResponsiveProps(\"--hds-stack-wrap\", wrap, (value) => (value ? \"wrap\" : \"nowrap\")),\n ...getResponsiveProps(\"--hds-stack-align\", align),\n ...getResponsiveProps(\"--hds-stack-justify\", justify),\n };\n return (\n <Component\n style={style}\n className={clsx(\"hds-stack\", className as undefined)}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nStack.displayName = \"Stack\";\n\n/**\n * 🚨 WORK IN PROGRESS 🚨\n *\n * TODO\n * - [ ] Add more examples\n * - [ ] Document usage\n * - [ ] Document props\n */\nexport const HStack = forwardRef<HTMLDivElement, Omit<StackProps, \"direction\">>((props, ref) => {\n return <Stack ref={ref} {...props} direction=\"row\" />;\n});\nHStack.displayName = \"HStack\";\n\n/**\n * 🚨 WORK IN PROGRESS 🚨\n *\n * TODO\n * - [ ] Add more examples\n * - [ ] Document usage\n * - [ ] Document props\n */\nexport const VStack = forwardRef<HTMLDivElement, Omit<StackProps, \"direction\">>((props, ref) => {\n return <Stack ref={ref} {...props} direction=\"column\" />;\n});\nVStack.displayName = \"VStack\";\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAuB;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AAkDf;AAfC,IAAM,QAAQ;AAAA,EACnB,CACE,IACA,QACG;AAFH,iBAAE,YAAU,SAAS,WAAW,OAAO,QAAQ,KAAK,WAAW,MAAM,OAAO,QAxChF,IAwCI,IAAwF,iBAAxF,IAAwF,CAAtF,YAAU,WAAS,aAAW,SAAe,OAAK,aAAW,QAAM,SAAO;AAG5E,UAAM,YAAY,UAAU,OAAO;AACnC,UAAM,QAA8B,8FAC/B,SACA,mBAAmB,mBAAmB,KAAK,kBAAkB,IAC7D,mBAAmB,yBAAyB,SAAS,IACrD,mBAAmB,oBAAoB,MAAM,CAAC,UAAW,QAAQ,SAAS,QAAS,IACnF,mBAAmB,qBAAqB,KAAK,IAC7C,mBAAmB,uBAAuB,OAAO;AAEtD,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,KAAK,aAAa,SAAsB;AAAA,QACnD;AAAA,SACI,OAJL;AAAA,QAME;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,MAAM,cAAc;AAUb,IAAM,SAAS,WAA0D,CAAC,OAAO,QAAQ;AAC9F,SAAO,oBAAC,sCAAM,OAAc,QAApB,EAA2B,WAAU,QAAM;AACrD,CAAC;AACD,OAAO,cAAc;AAUd,IAAM,SAAS,WAA0D,CAAC,OAAO,QAAQ;AAC9F,SAAO,oBAAC,sCAAM,OAAc,QAApB,EAA2B,WAAU,WAAS;AACxD,CAAC;AACD,OAAO,cAAc;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/modal/modal.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Box } from \"../box/box\";\nimport type { OverridableComponent } from \"../utils\";\nimport { useMergeRefs } from \"../utils\";\n\nexport interface ModalProps extends React.HTMLAttributes<HTMLDialogElement> {\n children: React.ReactNode;\n\n /**\n * Controls the open state of the modal\n */\n open?: boolean;\n\n /**\n * Whether to close when clicking on the backdrop.\n */\n closeOnBackdropClick?: boolean;\n}\n\n/**\n * A modal dialog is a window that forces the user to interact with it before they can return to other parts of the application.\n *\n * Uses the native [`dialog`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element.\n *\n * Example\n * ```\n const modalRef = useRef<HTMLDialogElement>(null);\n const onClose = () => modalRef.current?.close();\n\n return (\n <>\n <PrimaryButton onClick={() => modalRef.current?.showModal()}>Open Modal</PrimaryButton>\n <Modal ref={modalRef}>\n <Modal.Header>Dialog header</Modal.Header>\n <Modal.Content>\n <p>\n Dialog header Dialog description - a description of what is about to happen and maybe\n something about the consequences.\n </p>\n </Modal.Content>\n <Modal.Footer>\n <HStack gap=\"16\" wrap>\n <PrimaryButton onClick={onMainAction}>Main action</PrimaryButton>\n <PrimaryButton fill=\"outline\" onClick={onClose}>\n Cancel\n </PrimaryButton>\n </HStack>\n </Modal.Footer>\n </Modal>\n </>\n );\n * ```\n */\nexport const Modal = forwardRef<HTMLDialogElement, ModalProps>(\n ({ children, className, open, closeOnBackdropClick, onClick, ...rest }, ref) => {\n const modalRef = useRef<HTMLDialogElement>(null);\n const mergedRef = useMergeRefs([modalRef, ref]);\n\n // The X close button that comes from the `Box` component\n function onCloseButtonClick() {\n modalRef.current?.close();\n return false;\n }\n\n // No scroll when modal is open\n useScrollLock(modalRef, \"hds-modal-scroll-lock\");\n\n // `open` prop\n useEffect(() => {\n if (modalRef.current && open !== undefined) {\n if (open && !modalRef.current.open) {\n modalRef.current.showModal();\n } else if (!open && modalRef.current.open) {\n modalRef.current.close();\n }\n }\n }, [modalRef, open]);\n\n function onDialogClick(e: React.MouseEvent<HTMLElement>) {\n if (closeOnBackdropClick && e.target === modalRef.current) {\n modalRef.current.close();\n }\n onClick?.(e as React.MouseEvent<HTMLDialogElement>);\n }\n\n return (\n <Box\n as=\"dialog\"\n className={clsx(\"hds-modal\", className as undefined)}\n closeable\n onClick={onDialogClick}\n onClose={onCloseButtonClick}\n ref={mergedRef}\n variant=\"white\"\n {\n ...(rest as object) /* TODO remove type casting */\n }\n >\n {children}\n </Box>\n );\n },\n);\nModal.displayName = \"Modal\";\n\nexport const ModalHeader: OverridableComponent<object, HTMLHeadingElement> = forwardRef(\n ({ as: Component = \"h1\", className, ...rest }, ref) => {\n return (\n <Component\n className={clsx(\"hds-modal__header\", className as undefined)}\n ref={ref}\n {...rest}\n />\n );\n },\n);\nModalHeader.displayName = \"Modal.Header\";\n\nexport const ModalContent: OverridableComponent<object, HTMLDivElement> = forwardRef(\n ({ as: Component = \"div\", className, ...rest }, ref) => {\n return (\n <Component\n className={clsx(\"hds-modal__content\", className as undefined)}\n ref={ref}\n {...rest}\n />\n );\n },\n);\nModalContent.displayName = \"Modal.Content\";\n\nexport const ModalFooter: OverridableComponent<object, HTMLDivElement> = forwardRef(\n ({ as: Component = \"footer\", className, ...rest }, ref) => {\n return (\n <Component\n className={clsx(\"hds-modal__footer\", className as undefined)}\n ref={ref}\n {...rest}\n />\n );\n },\n);\nModalFooter.displayName = \"Modal.Footer\";\n\nexport function useScrollLock(modalRef: React.RefObject<HTMLDialogElement>, bodyClass: string) {\n useEffect(() => {\n if (!modalRef.current) return;\n if (modalRef.current.open) document.body.classList.add(bodyClass);\n\n const observer = new MutationObserver(() => {\n if (modalRef.current?.open) document.body.classList.add(bodyClass);\n else document.body.classList.remove(bodyClass);\n });\n observer.observe(modalRef.current, {\n attributes: true,\n attributeFilter: [\"open\"],\n });\n return () => {\n observer.disconnect();\n document.body.classList.remove(bodyClass);\n };\n }, [bodyClass, modalRef]);\n}\n"],"mappings":"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","names":["_a"]}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
NavbarExpandableMenu,
|
|
3
3
|
NavbarExpandableMenuContent,
|
|
4
4
|
NavbarExpandableMenuTrigger
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-X46LM2QH.mjs";
|
|
6
6
|
import {
|
|
7
7
|
Navbar,
|
|
8
8
|
NavbarButton,
|
|
@@ -25,4 +25,4 @@ NavbarComponent.Navigation = NavbarNavigation;
|
|
|
25
25
|
export {
|
|
26
26
|
NavbarComponent
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-2JH4FG63.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/navbar/index.tsx"],"sourcesContent":["import {\n Navbar,\n NavbarLogo,\n NavbarButton,\n NavbarNavigation,\n NavbarLogoAndServiceText,\n} from \"./navbar\";\nimport {\n useNavbarExpendableMenuContext,\n NavbarExpandableMenu,\n NavbarExpandableMenuTrigger,\n NavbarExpandableMenuContent,\n} from \"./navbar-expandable-menu\";\n\nconst NavbarExpandableMenuComponent = NavbarExpandableMenu as typeof NavbarExpandableMenu & {\n Trigger: typeof NavbarExpandableMenuTrigger;\n Content: typeof NavbarExpandableMenuContent;\n};\nNavbarExpandableMenuComponent.Trigger = NavbarExpandableMenuTrigger;\nNavbarExpandableMenuComponent.Content = NavbarExpandableMenuContent;\n\nconst NavbarComponent = Navbar as typeof Navbar & {\n Logo: typeof NavbarLogo;\n LogoAndServiceText: typeof NavbarLogoAndServiceText;\n ExpandableMenu: typeof NavbarExpandableMenuComponent;\n Button: typeof NavbarButton;\n Navigation: typeof NavbarNavigation;\n};\nNavbarComponent.Logo = NavbarLogo;\nNavbarComponent.LogoAndServiceText = NavbarLogoAndServiceText;\nNavbarComponent.ExpandableMenu = NavbarExpandableMenuComponent;\nNavbarComponent.Button = NavbarButton;\nNavbarComponent.Navigation = NavbarNavigation;\n\nexport { NavbarComponent as Navbar, useNavbarExpendableMenuContext };\nexport type * from \"./navbar\";\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAM,gCAAgC;AAItC,8BAA8B,UAAU;AACxC,8BAA8B,UAAU;AAExC,IAAM,kBAAkB;AAOxB,gBAAgB,OAAO;AACvB,gBAAgB,qBAAqB;AACrC,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB,gBAAgB,aAAa;","names":[]}
|
|
@@ -40,13 +40,8 @@ var AccordionItem = forwardRef(
|
|
|
40
40
|
return /* @__PURE__ */ jsx(
|
|
41
41
|
Component,
|
|
42
42
|
__spreadProps(__spreadValues({}, rest), {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
{
|
|
46
|
-
"hds-accordion-item__expanded": open
|
|
47
|
-
},
|
|
48
|
-
className
|
|
49
|
-
),
|
|
43
|
+
"data-state": open ? "open" : "closed",
|
|
44
|
+
className: clsx("hds-accordion-item", className),
|
|
50
45
|
ref,
|
|
51
46
|
children: /* @__PURE__ */ jsx(AccordionItemContext.Provider, { value: { open, setOpen: handleOpen }, children })
|
|
52
47
|
})
|
|
@@ -58,4 +53,4 @@ AccordionItem.displayName = "Accordion.Item";
|
|
|
58
53
|
export {
|
|
59
54
|
AccordionItem
|
|
60
55
|
};
|
|
61
|
-
//# sourceMappingURL=chunk-
|
|
56
|
+
//# sourceMappingURL=chunk-62F4I3MQ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/accordion/accordion-item.tsx"],"sourcesContent":["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
|
|
1
|
+
{"version":3,"sources":["../src/accordion/accordion-item.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;;;AACA,SAAS,YAAY,gBAAgB;AACrC,SAAS,YAAY;AA+Db;AA/BD,IAAM,gBAA0E;AAAA,EACrF,CACE,IASA,QACG;AAVH,iBACE;AAAA,UAAI,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IA1CN,IAoCI,IAOK,iBAPL,IAOK;AAAA,MANH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,UAAM,CAAC,WAAW,YAAY,IAAI,SAAS,oCAAe,KAAK;AAC/D,UAAM,OAAO,gCAAa;AAE1B,UAAM,aAAa,MAAM;AACvB,UAAI,cAAc,QAAW;AAC3B,wBAAgB,aAAa,CAAC,IAAI;AAAA,MACpC,OAAO;AACL,qBAAa,CAAC,IAAI;AAAA,MACpB;AAAA,IACF;AAEA,WACE;AAAA,MAAC;AAAA,uCACK,OADL;AAAA,QAEC,cAAY,OAAO,SAAS;AAAA,QAC5B,WAAW,KAAK,sBAAsB,SAAsB;AAAA,QAC5D;AAAA,QAEA,8BAAC,qBAAqB,UAArB,EAA8B,OAAO,EAAE,MAAM,SAAS,WAAW,GAC/D,UACH;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,cAAc,cAAc;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Fieldset
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DM4PJFLG.mjs";
|
|
4
4
|
import {
|
|
5
5
|
__objRest,
|
|
6
6
|
__spreadProps,
|
|
@@ -31,4 +31,4 @@ export {
|
|
|
31
31
|
useRadioGroupContext,
|
|
32
32
|
RadioGroup
|
|
33
33
|
};
|
|
34
|
-
//# sourceMappingURL=chunk-
|
|
34
|
+
//# sourceMappingURL=chunk-6NGF7FFY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/form/radiobutton/radiogroup.tsx"],"sourcesContent":["import {\n type ChangeEventHandler,\n createContext,\n forwardRef,\n type ReactNode,\n useContext,\n} from \"react\";\nimport { Fieldset, type FieldsetProps } from \"../fieldset\";\nimport type { RadiobuttonProps } from \"./radiobutton\";\n\nexport interface RadioGroupProps extends Omit<FieldsetProps, \"onChange\"> {\n children: ReactNode;\n /** Will be passed to all Radiobuttons within the radio group */\n name?: RadiobuttonProps[\"name\"];\n /** If you want the group to be controlled, you can pass the selected value here */\n value?: RadiobuttonProps[\"value\"];\n /**\n * Error message is passed to the internal Fieldset, and will also give contained Radiobuttons\n * error styling and aria to indicate invalid state.\n */\n errorMessage?: ReactNode;\n /** Will be passed to all Radiobuttons within the radio group */\n onChange?: ChangeEventHandler<HTMLInputElement> | undefined;\n}\n\ntype RadioGroupContextProps = {\n hasError: boolean;\n} & Pick<RadioGroupProps, \"name\" | \"value\" | \"onChange\">;\n\nconst RadioGroupContext = createContext<RadioGroupContextProps>({\n hasError: false,\n onChange: () => {\n return undefined;\n },\n});\n\nexport const useRadioGroupContext = () => useContext(RadioGroupContext);\n\nexport const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(function RadioGroup(\n { name, value, errorMessage, onChange, children, ...rest },\n ref,\n) {\n return (\n <RadioGroupContext.Provider value={{ name, value, hasError: Boolean(errorMessage), onChange }}>\n <Fieldset errorMessage={errorMessage} {...rest} ref={ref}>\n {children}\n </Fieldset>\n </RadioGroupContext.Provider>\n );\n});\n\nRadioGroup.displayName = \"RadioGroup\";\n"],"mappings":";;;;;;;;;;AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AAsCD;AAfN,IAAM,oBAAoB,cAAsC;AAAA,EAC9D,UAAU;AAAA,EACV,UAAU,MAAM;AACd,WAAO;AAAA,EACT;AACF,CAAC;AAEM,IAAM,uBAAuB,MAAM,WAAW,iBAAiB;AAE/D,IAAM,aAAa,WAAiD,SAASA,YAClF,IACA,KACA;AAFA,eAAE,QAAM,OAAO,cAAc,UAAU,SAvCzC,IAuCE,IAAoD,iBAApD,IAAoD,CAAlD,QAAM,SAAO,gBAAc,YAAU;AAGvC,SACE,oBAAC,kBAAkB,UAAlB,EAA2B,OAAO,EAAE,MAAM,OAAO,UAAU,QAAQ,YAAY,GAAG,SAAS,GAC1F,8BAAC,yCAAS,gBAAgC,OAAzC,EAA+C,KAC7C,WACH,GACF;AAEJ,CAAC;AAED,WAAW,cAAc;","names":["RadioGroup"]}
|
|
@@ -14,7 +14,7 @@ var Skeleton = forwardRef(
|
|
|
14
14
|
var _b = _a, {
|
|
15
15
|
as: Component = "div",
|
|
16
16
|
children,
|
|
17
|
-
animation,
|
|
17
|
+
animation = true,
|
|
18
18
|
variant = "text",
|
|
19
19
|
width,
|
|
20
20
|
height,
|
|
@@ -53,4 +53,4 @@ Skeleton.displayName = "Skeleton";
|
|
|
53
53
|
export {
|
|
54
54
|
Skeleton
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
56
|
+
//# sourceMappingURL=chunk-A47QULAK.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/skeleton/skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { forwardRef } from \"react\";\nimport type { OverridableComponent } from \"../utils\";\n\ninterface DimensionsFromWidthAndHeight {\n height?: number | string;\n width?: number | string;\n}\n\ninterface SkeletonPropsInner extends React.AnchorHTMLAttributes<HTMLDivElement> {\n /**\n * The visual style of the Skeleton\n */\n variant?: \"text\" | \"circle\" | \"rectangle\" | \"rounded\";\n\n /**\n * Whether to show animation or not\n * In the future the animation effect might become configurable\n *\n * default true\n */\n animation?: boolean;\n\n children?: React.ReactNode;\n}\n\nexport type SkeletonProps = SkeletonPropsInner & DimensionsFromWidthAndHeight;\n\n/**\n * Make skeleton loading states as placeholders for your content while waiting for data to load.\n *\n * **Note**\n *\n * Consider if this is really needed. The best experience is to avoid loading states altogether.\n * If your loading takes under 1 second, it better to not show anything at all.\n *\n * - Make your backend faster\n * - Preload/prefetch data\n * - Avoid data loading waterfalls\n * - Use optimistic ui when doing mutations\n *\n * **Usage**\n *\n * ```tsx\n * <Skeleton variant=\"circle\" width=\"2rem\" height=\"2rem\" />\n * <Skeleton variant=\"text\" />\n * <Skeleton variant=\"text\" width=\"80%\" />\n * <Skeleton variant=\"text\">Uses content to determine width</Skeleton>\n * <Skeleton variant=\"rectangle\" width=\"300px\" height=\"400px\" />\n * ```\n *\n * Remember to set `aria-hidden` on top level components you use that are not the `Skeleton` component.\n *\n * The `Skeleton` component does this for it self, but if you are using other components higher up in the tree, it might cause problems with screen readers\n *\n * **References**\n * - https://aksel.nav.no/komponenter/core/skeleton\n * - https://chakra-ui.com/docs/components/skeleton\n * - https://mui.com/material-ui/react-skeleton/\n */\nexport const Skeleton: OverridableComponent<SkeletonProps, HTMLDivElement> = forwardRef(\n (\n {\n as: Component = \"div\",\n children,\n animation,\n variant = \"text\",\n width,\n height,\n className,\n style,\n ...rest\n },\n ref,\n ) => {\n return (\n <Component\n className={clsx(\n \"hds-skeleton\",\n `hds-skeleton--${variant}`,\n !animation && `hds-skeleton--no-animation`,\n className as undefined,\n )}\n style={{ ...style, width, height }}\n ref={ref}\n aria-hidden\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nSkeleton.displayName = \"Skeleton\";\n"],"mappings":";;;;;;;AAAA,OAAuB;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AA2ErB;AAhBC,IAAM,WAAgE;AAAA,EAC3E,CACE,IAWA,QACG;AAZH,iBACE;AAAA,UAAI,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/skeleton/skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { forwardRef } from \"react\";\nimport type { OverridableComponent } from \"../utils\";\n\ninterface DimensionsFromWidthAndHeight {\n height?: number | string;\n width?: number | string;\n}\n\ninterface SkeletonPropsInner extends React.AnchorHTMLAttributes<HTMLDivElement> {\n /**\n * The visual style of the Skeleton\n */\n variant?: \"text\" | \"circle\" | \"rectangle\" | \"rounded\";\n\n /**\n * Whether to show animation or not\n * In the future the animation effect might become configurable\n *\n * default true\n */\n animation?: boolean;\n\n children?: React.ReactNode;\n}\n\nexport type SkeletonProps = SkeletonPropsInner & DimensionsFromWidthAndHeight;\n\n/**\n * Make skeleton loading states as placeholders for your content while waiting for data to load.\n *\n * **Note**\n *\n * Consider if this is really needed. The best experience is to avoid loading states altogether.\n * If your loading takes under 1 second, it better to not show anything at all.\n *\n * - Make your backend faster\n * - Preload/prefetch data\n * - Avoid data loading waterfalls\n * - Use optimistic ui when doing mutations\n *\n * **Usage**\n *\n * ```tsx\n * <Skeleton variant=\"circle\" width=\"2rem\" height=\"2rem\" />\n * <Skeleton variant=\"text\" />\n * <Skeleton variant=\"text\" width=\"80%\" />\n * <Skeleton variant=\"text\">Uses content to determine width</Skeleton>\n * <Skeleton variant=\"rectangle\" width=\"300px\" height=\"400px\" />\n * ```\n *\n * Remember to set `aria-hidden` on top level components you use that are not the `Skeleton` component.\n *\n * The `Skeleton` component does this for it self, but if you are using other components higher up in the tree, it might cause problems with screen readers\n *\n * **References**\n * - https://aksel.nav.no/komponenter/core/skeleton\n * - https://chakra-ui.com/docs/components/skeleton\n * - https://mui.com/material-ui/react-skeleton/\n */\nexport const Skeleton: OverridableComponent<SkeletonProps, HTMLDivElement> = forwardRef(\n (\n {\n as: Component = \"div\",\n children,\n animation = true,\n variant = \"text\",\n width,\n height,\n className,\n style,\n ...rest\n },\n ref,\n ) => {\n return (\n <Component\n className={clsx(\n \"hds-skeleton\",\n `hds-skeleton--${variant}`,\n !animation && `hds-skeleton--no-animation`,\n className as undefined,\n )}\n style={{ ...style, width, height }}\n ref={ref}\n aria-hidden\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nSkeleton.displayName = \"Skeleton\";\n"],"mappings":";;;;;;;AAAA,OAAuB;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AA2ErB;AAhBC,IAAM,WAAgE;AAAA,EAC3E,CACE,IAWA,QACG;AAZH,iBACE;AAAA,UAAI,YAAY;AAAA,MAChB;AAAA,MACA,YAAY;AAAA,MACZ,UAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAvEN,IA+DI,IASK,iBATL,IASK;AAAA,MARH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,iBAAiB,OAAO;AAAA,UACxB,CAAC,aAAa;AAAA,UACd;AAAA,QACF;AAAA,QACA,OAAO,iCAAK,QAAL,EAAY,OAAO,OAAO;AAAA,QACjC;AAAA,QACA,eAAW;AAAA,SACP,OAVL;AAAA,QAYE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;","names":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LinkList
|
|
3
|
+
} from "./chunk-GJDRW6PA.mjs";
|
|
4
|
+
import {
|
|
5
|
+
AccordionComponent
|
|
6
|
+
} from "./chunk-XIHKASNB.mjs";
|
|
7
|
+
import {
|
|
8
|
+
PrimaryButton
|
|
9
|
+
} from "./chunk-OUHO4LGN.mjs";
|
|
10
|
+
import {
|
|
11
|
+
__objRest,
|
|
12
|
+
__spreadProps,
|
|
13
|
+
__spreadValues
|
|
14
|
+
} from "./chunk-R4SQKVDQ.mjs";
|
|
15
|
+
|
|
16
|
+
// src/footer/footer.tsx
|
|
17
|
+
import { forwardRef } from "react";
|
|
18
|
+
import { clsx } from "@postenbring/hedwig-css/typed-classname";
|
|
19
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
20
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
21
|
+
var Footer = forwardRef(
|
|
22
|
+
(_a, ref) => {
|
|
23
|
+
var _b = _a, { children, className, variant, asChild } = _b, rest = __objRest(_b, ["children", "className", "variant", "asChild"]);
|
|
24
|
+
const Component = asChild ? Slot : "footer";
|
|
25
|
+
return /* @__PURE__ */ jsx(
|
|
26
|
+
Component,
|
|
27
|
+
__spreadProps(__spreadValues({
|
|
28
|
+
className: clsx(
|
|
29
|
+
`hds-footer`,
|
|
30
|
+
variant === "slim" && "hds-footer--slim",
|
|
31
|
+
className
|
|
32
|
+
),
|
|
33
|
+
ref
|
|
34
|
+
}, rest), {
|
|
35
|
+
children
|
|
36
|
+
})
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
Footer.displayName = "Footer";
|
|
41
|
+
var FooterButtonLink = forwardRef(
|
|
42
|
+
(_a, ref) => {
|
|
43
|
+
var _b = _a, { children, className, asChild } = _b, rest = __objRest(_b, ["children", "className", "asChild"]);
|
|
44
|
+
const Component = asChild ? Slot : "a";
|
|
45
|
+
return (
|
|
46
|
+
// @ts-expect-error -- It's ok, types are a bit off
|
|
47
|
+
/* @__PURE__ */ jsx(
|
|
48
|
+
PrimaryButton,
|
|
49
|
+
__spreadProps(__spreadValues({
|
|
50
|
+
as: Component,
|
|
51
|
+
fill: "outline",
|
|
52
|
+
className: clsx(className),
|
|
53
|
+
ref
|
|
54
|
+
}, rest), {
|
|
55
|
+
children
|
|
56
|
+
})
|
|
57
|
+
)
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
FooterButtonLink.displayName = "FooterButton";
|
|
62
|
+
var FooterLogo = forwardRef(
|
|
63
|
+
(_a, ref) => {
|
|
64
|
+
var _b = _a, { children, className, asChild } = _b, rest = __objRest(_b, ["children", "className", "asChild"]);
|
|
65
|
+
const Component = asChild ? Slot : "div";
|
|
66
|
+
return /* @__PURE__ */ jsx(Component, __spreadProps(__spreadValues({ className: clsx(`hds-footer__logo`, className), ref }, rest), { children }));
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
FooterLogo.displayName = "Footer.Logo";
|
|
70
|
+
var FooterLinkSections = forwardRef(
|
|
71
|
+
(_a, ref) => {
|
|
72
|
+
var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
|
|
73
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
74
|
+
AccordionComponent,
|
|
75
|
+
__spreadProps(__spreadValues({
|
|
76
|
+
className: clsx("hds-footer__link-sections", className),
|
|
77
|
+
ref
|
|
78
|
+
}, rest), {
|
|
79
|
+
children
|
|
80
|
+
})
|
|
81
|
+
) });
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
FooterLinkSections.displayName = "Footer.LinkSections";
|
|
85
|
+
var FooterLinkSection = forwardRef(
|
|
86
|
+
(_a, ref) => {
|
|
87
|
+
var _b = _a, { heading, children, className } = _b, rest = __objRest(_b, ["heading", "children", "className"]);
|
|
88
|
+
const linkListChildren = /* @__PURE__ */ jsx(LinkList, { children });
|
|
89
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
90
|
+
/* @__PURE__ */ jsxs(
|
|
91
|
+
AccordionComponent.Item,
|
|
92
|
+
__spreadProps(__spreadValues({
|
|
93
|
+
className: clsx(`hds-footer__link-section`, className),
|
|
94
|
+
ref
|
|
95
|
+
}, rest), {
|
|
96
|
+
children: [
|
|
97
|
+
/* @__PURE__ */ jsx(AccordionComponent.Header, { children: heading }),
|
|
98
|
+
/* @__PURE__ */ jsx(AccordionComponent.Content, { children: linkListChildren })
|
|
99
|
+
]
|
|
100
|
+
})
|
|
101
|
+
),
|
|
102
|
+
/* @__PURE__ */ jsxs("div", { className: clsx(`hds-footer__link-section`, className), children: [
|
|
103
|
+
/* @__PURE__ */ jsx("h2", { children: heading }),
|
|
104
|
+
linkListChildren
|
|
105
|
+
] })
|
|
106
|
+
] });
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
FooterLinkSection.displayName = "Footer.LinkSection";
|
|
110
|
+
|
|
111
|
+
export {
|
|
112
|
+
Footer,
|
|
113
|
+
FooterButtonLink,
|
|
114
|
+
FooterLogo,
|
|
115
|
+
FooterLinkSections,
|
|
116
|
+
FooterLinkSection
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=chunk-BZRCDLEW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/footer/footer.tsx"],"sourcesContent":["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"],"mappings":";;;;;;;;;;;;;;;;AAAA,SAAS,kBAA0D;AACnE,SAAS,YAAY;AACrB,SAAS,YAAY;AAqBf,SAiFA,UAjFA,KA6GE,YA7GF;AAJC,IAAM,SAAS;AAAA,EACpB,CAAC,IAAoD,QAAQ;AAA5D,iBAAE,YAAU,WAAW,SAAS,QApBnC,IAoBG,IAA4C,iBAA5C,IAA4C,CAA1C,YAAU,aAAW,WAAS;AAC/B,UAAM,YAAY,UAAU,OAAO;AACnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,YAAY,UAAU;AAAA,UACtB;AAAA,QACF;AAAA,QACA;AAAA,SACI,OAPL;AAAA,QASE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;AAYd,IAAM,mBAAmB;AAAA,EAC9B,CAAC,IAA2C,QAAQ;AAAnD,iBAAE,YAAU,WAAW,QAlD1B,IAkDG,IAAmC,iBAAnC,IAAmC,CAAjC,YAAU,aAAW;AACtB,UAAM,YAAY,UAAU,OAAO;AACnC;AAAA;AAAA,MAEE;AAAA,QAAC;AAAA;AAAA,UACC,IAAI;AAAA,UACJ,MAAK;AAAA,UACL,WAAW,KAAK,SAAsB;AAAA,UACtC;AAAA,WACI,OALL;AAAA,UAOE;AAAA;AAAA,MACH;AAAA;AAAA,EAEJ;AACF;AACA,iBAAiB,cAAc;AAcxB,IAAM,aAAa;AAAA,EACxB,CAAC,IAA2C,QAAQ;AAAnD,iBAAE,YAAU,WAAW,QAjF1B,IAiFG,IAAmC,iBAAnC,IAAmC,CAAjC,YAAU,aAAW;AACtB,UAAM,YAAY,UAAU,OAAO;AACnC,WACE,oBAAC,0CAAU,WAAW,KAAK,oBAAoB,SAAsB,GAAG,OAAc,OAArF,EACE,WACH;AAAA,EAEJ;AACF;AACA,WAAW,cAAc;AAWlB,IAAM,qBAAqB;AAAA,EAChC,CAAC,IAAkC,QAAQ;AAA1C,iBAAE,YAAU,UAtGf,IAsGG,IAA0B,iBAA1B,IAA0B,CAAxB,YAAU;AACX,WACE,gCAEE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,KAAK,6BAA6B,SAAsB;AAAA,QACnE;AAAA,SACI,OAHL;AAAA,QAME;AAAA;AAAA,IACH,GACF;AAAA,EAEJ;AACF;AACA,mBAAmB,cAAc;AAO1B,IAAM,oBAAoB;AAAA,EAC/B,CAAC,IAA2C,QAAQ;AAAnD,iBAAE,WAAS,UAAU,UA9HxB,IA8HG,IAAmC,iBAAnC,IAAmC,CAAjC,WAAS,YAAU;AAEpB,UAAM,mBAAmB,oBAAC,YAAU,UAAS;AAC7C,WACE,iCAEE;AAAA;AAAA,QAAC,mBAAU;AAAA,QAAV;AAAA,UACC,WAAW,KAAK,4BAA4B,SAAsB;AAAA,UAClE;AAAA,WACI,OAHL;AAAA,UAKC;AAAA,gCAAC,mBAAU,QAAV,EAAkB,mBAAQ;AAAA,YAC3B,oBAAC,mBAAU,SAAV,EAAmB,4BAAiB;AAAA;AAAA;AAAA,MACvC;AAAA,MAGA,qBAAC,SAAI,WAAW,KAAK,4BAA4B,SAAsB,GACrE;AAAA,4BAAC,QAAI,mBAAQ;AAAA,QACZ;AAAA,SACH;AAAA,OACF;AAAA,EAEJ;AACF;AACA,kBAAkB,cAAc;","names":[]}
|