@postenbring/hedwig-react 0.0.62 → 0.0.64

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.
Files changed (68) hide show
  1. package/dist/_tsup-dts-rollup.d.mts +59 -2
  2. package/dist/_tsup-dts-rollup.d.ts +59 -2
  3. package/dist/chunk-5UJ3LEKK.mjs +76 -0
  4. package/dist/chunk-5UJ3LEKK.mjs.map +1 -0
  5. package/dist/{chunk-JMDXW2ML.mjs → chunk-625SVQEP.mjs} +33 -3
  6. package/dist/chunk-625SVQEP.mjs.map +1 -0
  7. package/dist/{chunk-Q6REETZD.mjs → chunk-AKYK3XFN.mjs} +2 -1
  8. package/dist/{chunk-Q6REETZD.mjs.map → chunk-AKYK3XFN.mjs.map} +1 -1
  9. package/dist/{chunk-OYJQ5MAS.mjs → chunk-BYDSISQZ.mjs} +26 -3
  10. package/dist/chunk-BYDSISQZ.mjs.map +1 -0
  11. package/dist/{chunk-VKRPPQ6F.mjs → chunk-H3VGHTDC.mjs} +4 -2
  12. package/dist/chunk-H3VGHTDC.mjs.map +1 -0
  13. package/dist/chunk-ZDPU3N54.mjs +39 -0
  14. package/dist/chunk-ZDPU3N54.mjs.map +1 -0
  15. package/dist/index-no-css.d.mts +1 -0
  16. package/dist/index-no-css.d.ts +1 -0
  17. package/dist/index-no-css.js +152 -80
  18. package/dist/index-no-css.js.map +1 -1
  19. package/dist/index-no-css.mjs +6 -6
  20. package/dist/index.d.mts +1 -0
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.js +152 -80
  23. package/dist/index.js.map +1 -1
  24. package/dist/index.mjs +6 -6
  25. package/dist/navbar/index.d.mts +1 -0
  26. package/dist/navbar/index.d.ts +1 -0
  27. package/dist/navbar/index.js +32 -2
  28. package/dist/navbar/index.js.map +1 -1
  29. package/dist/navbar/index.mjs +2 -2
  30. package/dist/navbar/navbar.d.mts +1 -0
  31. package/dist/navbar/navbar.d.ts +1 -0
  32. package/dist/navbar/navbar.js +33 -2
  33. package/dist/navbar/navbar.js.map +1 -1
  34. package/dist/navbar/navbar.mjs +3 -1
  35. package/dist/show-more/index.js +26 -20
  36. package/dist/show-more/index.js.map +1 -1
  37. package/dist/show-more/index.mjs +2 -2
  38. package/dist/show-more/show-more.d.mts +1 -1
  39. package/dist/show-more/show-more.d.ts +1 -1
  40. package/dist/show-more/show-more.js +25 -20
  41. package/dist/show-more/show-more.js.map +1 -1
  42. package/dist/show-more/show-more.mjs +1 -1
  43. package/dist/skeleton/index.js +25 -2
  44. package/dist/skeleton/index.js.map +1 -1
  45. package/dist/skeleton/index.mjs +1 -1
  46. package/dist/skeleton/skeleton.js +25 -2
  47. package/dist/skeleton/skeleton.js.map +1 -1
  48. package/dist/skeleton/skeleton.mjs +1 -1
  49. package/dist/step-indicator/index.js +46 -33
  50. package/dist/step-indicator/index.js.map +1 -1
  51. package/dist/step-indicator/index.mjs +1 -1
  52. package/dist/step-indicator/step-indicator.js +46 -33
  53. package/dist/step-indicator/step-indicator.js.map +1 -1
  54. package/dist/step-indicator/step-indicator.mjs +1 -1
  55. package/dist/utilities/auto-animate-height.js +1 -0
  56. package/dist/utilities/auto-animate-height.js.map +1 -1
  57. package/dist/utilities/auto-animate-height.mjs +1 -1
  58. package/dist/utilities/index.js +1 -0
  59. package/dist/utilities/index.js.map +1 -1
  60. package/dist/utilities/index.mjs +1 -1
  61. package/package.json +7 -6
  62. package/dist/chunk-JMDXW2ML.mjs.map +0 -1
  63. package/dist/chunk-NIRIPLQ5.mjs +0 -63
  64. package/dist/chunk-NIRIPLQ5.mjs.map +0 -1
  65. package/dist/chunk-OYJQ5MAS.mjs.map +0 -1
  66. package/dist/chunk-VKRPPQ6F.mjs.map +0 -1
  67. package/dist/chunk-W47NV442.mjs +0 -34
  68. package/dist/chunk-W47NV442.mjs.map +0 -1
@@ -1051,6 +1051,7 @@ declare interface NavbarButtonProps {
1051
1051
 
1052
1052
  declare const NavbarComponent: ForwardRefExoticComponent<NavbarProps & RefAttributes<HTMLElement>> & {
1053
1053
  Logo: typeof NavbarLogo;
1054
+ LogoAndServiceText: typeof NavbarLogoAndServiceText;
1054
1055
  ExpandableMenu: typeof NavbarExpandableMenuComponent;
1055
1056
  Button: typeof NavbarButton;
1056
1057
  Navigation: typeof NavbarNavigation;
@@ -1104,12 +1105,53 @@ export declare interface NavbarExpandableMenuTriggerProps extends Omit<React_3.H
1104
1105
  whenOpenHelperTitle?: string;
1105
1106
  }
1106
1107
 
1108
+ /**
1109
+ * A fixed Posten or Bring logo.
1110
+ *
1111
+ * 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
1112
+ */
1107
1113
  declare const NavbarLogo: OverridableComponent<NavbarLogoProps, HTMLDivElement>;
1108
1114
  export { NavbarLogo }
1109
1115
  export { NavbarLogo as NavbarLogo_alias_1 }
1110
1116
  export { NavbarLogo as NavbarLogo_alias_2 }
1111
1117
  export { NavbarLogo as NavbarLogo_alias_3 }
1112
1118
 
1119
+ /**
1120
+ * Internal service or flagship text next to either the Posten or Bring logo
1121
+ *
1122
+ * 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
1123
+ */
1124
+ declare const NavbarLogoAndServiceText: React_3.ForwardRefExoticComponent<NavbarLogoAndServiceText_2 & React_3.RefAttributes<HTMLDivElement>>;
1125
+ export { NavbarLogoAndServiceText }
1126
+ export { NavbarLogoAndServiceText as NavbarLogoAndServiceText_alias_1 }
1127
+ export { NavbarLogoAndServiceText as NavbarLogoAndServiceText_alias_2 }
1128
+ export { NavbarLogoAndServiceText as NavbarLogoAndServiceText_alias_3 }
1129
+
1130
+ declare interface NavbarLogoAndServiceText_2 extends HTMLAttributes<HTMLDivElement> {
1131
+ /**
1132
+ * The text display next to the logo
1133
+ */
1134
+ children: React_3.ReactNode;
1135
+ /**
1136
+ * The text variant
1137
+ *
1138
+ * Use `service` for internal applications
1139
+ * Use `flagship` for public facing applications
1140
+ */
1141
+ variant: "service" | "flagship";
1142
+ /**
1143
+ * Change the default rendered element for the one passed as a child, merging their props and behavior.
1144
+ */
1145
+ asChild?: boolean;
1146
+ }
1147
+
1148
+ /**
1149
+ * Internal service or flagship text next to either the Posten or Bring logo
1150
+ *
1151
+ * 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
1152
+ */
1153
+ declare const NavbarLogoAndServiceText: React_3.ForwardRefExoticComponent<NavbarLogoAndServiceText_2 & React_3.RefAttributes<HTMLDivElement>>;
1154
+
1113
1155
  declare interface NavbarLogoProps {
1114
1156
  children?: never;
1115
1157
  }
@@ -1125,6 +1167,14 @@ declare interface NavbarNavigationProps {
1125
1167
  }
1126
1168
 
1127
1169
  declare interface NavbarProps extends HTMLAttributes<HTMLElement> {
1170
+ /**
1171
+ * Navbar variant
1172
+ *
1173
+ * By default the `posten.no` variant is used which has a fixed logo and a fixed height of 112px
1174
+ *
1175
+ * For internal services or flagship services use the `service` should be used
1176
+ */
1177
+ variant?: "default" | "service";
1128
1178
  children: React_3.ReactNode;
1129
1179
  }
1130
1180
  export { NavbarProps }
@@ -1325,7 +1375,7 @@ export declare const ShowMore: Story_23;
1325
1375
  * }
1326
1376
  * ```
1327
1377
  */
1328
- declare function ShowMoreButton({ text, variant, expanded, className, ...rest }: ShowMoreProps): JSX_2.Element;
1378
+ declare const ShowMoreButton: ForwardRefExoticComponent<ShowMoreProps & RefAttributes<HTMLButtonElement>>;
1329
1379
  export { ShowMoreButton }
1330
1380
  export { ShowMoreButton as ShowMoreButton_alias_1 }
1331
1381
  export { ShowMoreButton as ShowMoreButton_alias_2 }
@@ -1396,6 +1446,13 @@ declare interface SkeletonPropsInner extends React_2.AnchorHTMLAttributes<HTMLDi
1396
1446
  * The visual style of the Skeleton
1397
1447
  */
1398
1448
  variant?: "text" | "circle" | "rectangle" | "rounded";
1449
+ /**
1450
+ * Whether to show animation or not
1451
+ * In the future the animation effect might become configurable
1452
+ *
1453
+ * default true
1454
+ */
1455
+ animation?: boolean;
1399
1456
  children?: React_2.ReactNode;
1400
1457
  }
1401
1458
 
@@ -1410,7 +1467,7 @@ export declare const Solid: Story_17;
1410
1467
  *
1411
1468
  * It does not handle step content or navigation, only the visual indication of the active step.
1412
1469
  */
1413
- declare function StepIndicator({ activeStep, totalSteps, className, label, lang, title, titleAs: TitleComponent, ...rest }: StepIndicatorProps & TitleProps): JSX_2.Element;
1470
+ declare const StepIndicator: ForwardRefExoticComponent<(StepIndicatorProps & TitleProps) & RefAttributes<HTMLDivElement>>;
1414
1471
  export { StepIndicator }
1415
1472
  export { StepIndicator as StepIndicator_alias_1 }
1416
1473
  export { StepIndicator as StepIndicator_alias_2 }
@@ -1051,6 +1051,7 @@ declare interface NavbarButtonProps {
1051
1051
 
1052
1052
  declare const NavbarComponent: ForwardRefExoticComponent<NavbarProps & RefAttributes<HTMLElement>> & {
1053
1053
  Logo: typeof NavbarLogo;
1054
+ LogoAndServiceText: typeof NavbarLogoAndServiceText;
1054
1055
  ExpandableMenu: typeof NavbarExpandableMenuComponent;
1055
1056
  Button: typeof NavbarButton;
1056
1057
  Navigation: typeof NavbarNavigation;
@@ -1104,12 +1105,53 @@ export declare interface NavbarExpandableMenuTriggerProps extends Omit<React_3.H
1104
1105
  whenOpenHelperTitle?: string;
1105
1106
  }
1106
1107
 
1108
+ /**
1109
+ * A fixed Posten or Bring logo.
1110
+ *
1111
+ * 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
1112
+ */
1107
1113
  declare const NavbarLogo: OverridableComponent<NavbarLogoProps, HTMLDivElement>;
1108
1114
  export { NavbarLogo }
1109
1115
  export { NavbarLogo as NavbarLogo_alias_1 }
1110
1116
  export { NavbarLogo as NavbarLogo_alias_2 }
1111
1117
  export { NavbarLogo as NavbarLogo_alias_3 }
1112
1118
 
1119
+ /**
1120
+ * Internal service or flagship text next to either the Posten or Bring logo
1121
+ *
1122
+ * 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
1123
+ */
1124
+ declare const NavbarLogoAndServiceText: React_3.ForwardRefExoticComponent<NavbarLogoAndServiceText_2 & React_3.RefAttributes<HTMLDivElement>>;
1125
+ export { NavbarLogoAndServiceText }
1126
+ export { NavbarLogoAndServiceText as NavbarLogoAndServiceText_alias_1 }
1127
+ export { NavbarLogoAndServiceText as NavbarLogoAndServiceText_alias_2 }
1128
+ export { NavbarLogoAndServiceText as NavbarLogoAndServiceText_alias_3 }
1129
+
1130
+ declare interface NavbarLogoAndServiceText_2 extends HTMLAttributes<HTMLDivElement> {
1131
+ /**
1132
+ * The text display next to the logo
1133
+ */
1134
+ children: React_3.ReactNode;
1135
+ /**
1136
+ * The text variant
1137
+ *
1138
+ * Use `service` for internal applications
1139
+ * Use `flagship` for public facing applications
1140
+ */
1141
+ variant: "service" | "flagship";
1142
+ /**
1143
+ * Change the default rendered element for the one passed as a child, merging their props and behavior.
1144
+ */
1145
+ asChild?: boolean;
1146
+ }
1147
+
1148
+ /**
1149
+ * Internal service or flagship text next to either the Posten or Bring logo
1150
+ *
1151
+ * 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
1152
+ */
1153
+ declare const NavbarLogoAndServiceText: React_3.ForwardRefExoticComponent<NavbarLogoAndServiceText_2 & React_3.RefAttributes<HTMLDivElement>>;
1154
+
1113
1155
  declare interface NavbarLogoProps {
1114
1156
  children?: never;
1115
1157
  }
@@ -1125,6 +1167,14 @@ declare interface NavbarNavigationProps {
1125
1167
  }
1126
1168
 
1127
1169
  declare interface NavbarProps extends HTMLAttributes<HTMLElement> {
1170
+ /**
1171
+ * Navbar variant
1172
+ *
1173
+ * By default the `posten.no` variant is used which has a fixed logo and a fixed height of 112px
1174
+ *
1175
+ * For internal services or flagship services use the `service` should be used
1176
+ */
1177
+ variant?: "default" | "service";
1128
1178
  children: React_3.ReactNode;
1129
1179
  }
1130
1180
  export { NavbarProps }
@@ -1325,7 +1375,7 @@ export declare const ShowMore: Story_23;
1325
1375
  * }
1326
1376
  * ```
1327
1377
  */
1328
- declare function ShowMoreButton({ text, variant, expanded, className, ...rest }: ShowMoreProps): JSX_2.Element;
1378
+ declare const ShowMoreButton: ForwardRefExoticComponent<ShowMoreProps & RefAttributes<HTMLButtonElement>>;
1329
1379
  export { ShowMoreButton }
1330
1380
  export { ShowMoreButton as ShowMoreButton_alias_1 }
1331
1381
  export { ShowMoreButton as ShowMoreButton_alias_2 }
@@ -1396,6 +1446,13 @@ declare interface SkeletonPropsInner extends React_2.AnchorHTMLAttributes<HTMLDi
1396
1446
  * The visual style of the Skeleton
1397
1447
  */
1398
1448
  variant?: "text" | "circle" | "rectangle" | "rounded";
1449
+ /**
1450
+ * Whether to show animation or not
1451
+ * In the future the animation effect might become configurable
1452
+ *
1453
+ * default true
1454
+ */
1455
+ animation?: boolean;
1399
1456
  children?: React_2.ReactNode;
1400
1457
  }
1401
1458
 
@@ -1410,7 +1467,7 @@ export declare const Solid: Story_17;
1410
1467
  *
1411
1468
  * It does not handle step content or navigation, only the visual indication of the active step.
1412
1469
  */
1413
- declare function StepIndicator({ activeStep, totalSteps, className, label, lang, title, titleAs: TitleComponent, ...rest }: StepIndicatorProps & TitleProps): JSX_2.Element;
1470
+ declare const StepIndicator: ForwardRefExoticComponent<(StepIndicatorProps & TitleProps) & RefAttributes<HTMLDivElement>>;
1414
1471
  export { StepIndicator }
1415
1472
  export { StepIndicator as StepIndicator_alias_1 }
1416
1473
  export { StepIndicator as StepIndicator_alias_2 }
@@ -0,0 +1,76 @@
1
+ import {
2
+ __objRest,
3
+ __spreadProps,
4
+ __spreadValues
5
+ } from "./chunk-R4SQKVDQ.mjs";
6
+
7
+ // src/step-indicator/step-indicator.tsx
8
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
9
+ import { forwardRef } from "react";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ var StepIndicator = forwardRef(
12
+ (_a, ref) => {
13
+ var _b = _a, {
14
+ activeStep,
15
+ totalSteps,
16
+ className,
17
+ label,
18
+ lang = "en",
19
+ title,
20
+ titleAs: TitleComponent
21
+ } = _b, rest = __objRest(_b, [
22
+ "activeStep",
23
+ "totalSteps",
24
+ "className",
25
+ "label",
26
+ "lang",
27
+ "title",
28
+ "titleAs"
29
+ ]);
30
+ return /* @__PURE__ */ jsxs(
31
+ "div",
32
+ __spreadProps(__spreadValues({
33
+ ref,
34
+ className: clsx("hds-step-indicator", className),
35
+ lang
36
+ }, rest), {
37
+ children: [
38
+ /* @__PURE__ */ jsxs("div", { className: clsx("hds-step-indicator__header"), children: [
39
+ /* @__PURE__ */ jsx("span", { className: clsx("hds-step-indicator__left-label"), children: label }),
40
+ /* @__PURE__ */ jsx("span", { children: stepLabelTranslations[lang](activeStep, totalSteps) })
41
+ ] }),
42
+ /* @__PURE__ */ jsx("div", { className: clsx("hds-step-indicator__steps"), children: Array.from({ length: totalSteps }, (_, i) => /* @__PURE__ */ jsx(
43
+ "div",
44
+ {
45
+ className: clsx("hds-step-indicator__step"),
46
+ "data-state": getStepState(i + 1, activeStep)
47
+ },
48
+ i
49
+ )) }),
50
+ title ? /* @__PURE__ */ jsx(TitleComponent, { className: clsx("hds-step-indicator__title"), children: title }) : null
51
+ ]
52
+ })
53
+ );
54
+ }
55
+ );
56
+ StepIndicator.displayName = "StepIndicator";
57
+ var stepLabelTranslations = {
58
+ no: (activeStep, totalSteps) => `steg ${activeStep} av ${totalSteps}`,
59
+ en: (activeStep, totalSteps) => `step ${activeStep} of ${totalSteps}`,
60
+ da: (activeStep, totalSteps) => `trin ${activeStep} af ${totalSteps}`,
61
+ sv: (activeStep, totalSteps) => `steg ${activeStep} av ${totalSteps}`
62
+ };
63
+ function getStepState(renderedStep, activeStep) {
64
+ if (renderedStep < activeStep) {
65
+ return "previous";
66
+ }
67
+ if (renderedStep === activeStep) {
68
+ return "active";
69
+ }
70
+ return "next";
71
+ }
72
+
73
+ export {
74
+ StepIndicator
75
+ };
76
+ //# sourceMappingURL=chunk-5UJ3LEKK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/step-indicator/step-indicator.tsx"],"sourcesContent":["import { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { forwardRef } from \"react\";\n\ntype TitleProps =\n | {\n /**\n * Optional title of the active step to be shown underneath the step indicator\n *\n * Use `titleAs` to set the correct heading level\n */\n title: React.ReactNode;\n titleAs: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n }\n | {\n title?: undefined;\n titleAs?: undefined;\n };\n\ninterface StepIndicatorProps extends React.HTMLAttributes<HTMLDivElement> {\n /*\n * 1-indexed number of the active step\n */\n activeStep: number;\n\n /**\n * 1-indexed number of steps\n */\n totalSteps: number;\n\n /**\n * Label on the left side above the steps\n */\n label: React.ReactNode;\n\n /**\n * Language for the \"step x of y\" label, default is \"en\"\n */\n lang?: \"no\" | \"en\" | \"da\" | \"sv\";\n}\n\n/**\n * Indicate a step in a process.\n *\n * It does not handle step content or navigation, only the visual indication of the active step.\n */\nexport const StepIndicator = forwardRef<HTMLDivElement, StepIndicatorProps & TitleProps>(\n (\n {\n activeStep,\n totalSteps,\n className,\n label,\n lang = \"en\",\n title,\n titleAs: TitleComponent,\n ...rest\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n className={clsx(\"hds-step-indicator\", className as undefined)}\n lang={lang}\n {...rest}\n >\n <div className={clsx(\"hds-step-indicator__header\")}>\n <span className={clsx(\"hds-step-indicator__left-label\")}>{label}</span>\n <span>{stepLabelTranslations[lang](activeStep, totalSteps)}</span>\n </div>\n\n <div className={clsx(\"hds-step-indicator__steps\")}>\n {Array.from({ length: totalSteps }, (_, i) => (\n <div\n className={clsx(\"hds-step-indicator__step\")}\n data-state={getStepState(i + 1, activeStep)}\n key={i}\n />\n ))}\n </div>\n\n {title ? (\n <TitleComponent className={clsx(\"hds-step-indicator__title\")}>{title}</TitleComponent>\n ) : null}\n </div>\n );\n },\n);\nStepIndicator.displayName = \"StepIndicator\";\n\n/**\n * Translated texts for the `step x of y` label.\n */\nconst stepLabelTranslations: Record<\n \"no\" | \"en\" | \"da\" | \"sv\",\n (activeStep: number, totalSteps: number) => string\n> = {\n no: (activeStep: number, totalSteps: number) => `steg ${activeStep} av ${totalSteps}`,\n en: (activeStep: number, totalSteps: number) => `step ${activeStep} of ${totalSteps}`,\n da: (activeStep: number, totalSteps: number) => `trin ${activeStep} af ${totalSteps}`,\n sv: (activeStep: number, totalSteps: number) => `steg ${activeStep} av ${totalSteps}`,\n};\n\n/**\n * Determine the state of a step.\n * 1-indexed\n */\nfunction getStepState(renderedStep: number, activeStep: number) {\n if (renderedStep < activeStep) {\n return \"previous\";\n }\n if (renderedStep === activeStep) {\n return \"active\";\n }\n return \"next\";\n}\n"],"mappings":";;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAiEnB,SACE,KADF;AArBD,IAAM,gBAAgB;AAAA,EAC3B,CACE,IAUA,QACG;AAXH,iBACE;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA,SAAS;AAAA,IAtDf,IA+CI,IAQK,iBARL,IAQK;AAAA,MAPH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,KAAK,sBAAsB,SAAsB;AAAA,QAC5D;AAAA,SACI,OAJL;AAAA,QAMC;AAAA,+BAAC,SAAI,WAAW,KAAK,4BAA4B,GAC/C;AAAA,gCAAC,UAAK,WAAW,KAAK,gCAAgC,GAAI,iBAAM;AAAA,YAChE,oBAAC,UAAM,gCAAsB,IAAI,EAAE,YAAY,UAAU,GAAE;AAAA,aAC7D;AAAA,UAEA,oBAAC,SAAI,WAAW,KAAK,2BAA2B,GAC7C,gBAAM,KAAK,EAAE,QAAQ,WAAW,GAAG,CAAC,GAAG,MACtC;AAAA,YAAC;AAAA;AAAA,cACC,WAAW,KAAK,0BAA0B;AAAA,cAC1C,cAAY,aAAa,IAAI,GAAG,UAAU;AAAA;AAAA,YACrC;AAAA,UACP,CACD,GACH;AAAA,UAEC,QACC,oBAAC,kBAAe,WAAW,KAAK,2BAA2B,GAAI,iBAAM,IACnE;AAAA;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,cAAc,cAAc;AAK5B,IAAM,wBAGF;AAAA,EACF,IAAI,CAAC,YAAoB,eAAuB,QAAQ,UAAU,OAAO,UAAU;AAAA,EACnF,IAAI,CAAC,YAAoB,eAAuB,QAAQ,UAAU,OAAO,UAAU;AAAA,EACnF,IAAI,CAAC,YAAoB,eAAuB,QAAQ,UAAU,OAAO,UAAU;AAAA,EACnF,IAAI,CAAC,YAAoB,eAAuB,QAAQ,UAAU,OAAO,UAAU;AACrF;AAMA,SAAS,aAAa,cAAsB,YAAoB;AAC9D,MAAI,eAAe,YAAY;AAC7B,WAAO;AAAA,EACT;AACA,MAAI,iBAAiB,YAAY;AAC/B,WAAO;AAAA,EACT;AACA,SAAO;AACT;","names":[]}
@@ -7,11 +7,20 @@ import {
7
7
  // src/navbar/navbar.tsx
8
8
  import { forwardRef } from "react";
9
9
  import { clsx } from "@postenbring/hedwig-css/typed-classname";
10
+ import { Slot } from "@radix-ui/react-slot";
10
11
  import { jsx, jsxs } from "react/jsx-runtime";
11
12
  var Navbar = forwardRef(
12
13
  (_a, ref) => {
13
- var _b = _a, { children, className } = _b, rest = __objRest(_b, ["children", "className"]);
14
- return /* @__PURE__ */ jsx("header", __spreadProps(__spreadValues({ className: clsx("hds-navbar", className), ref }, rest), { children }));
14
+ var _b = _a, { children, className, variant } = _b, rest = __objRest(_b, ["children", "className", "variant"]);
15
+ return /* @__PURE__ */ jsx(
16
+ "header",
17
+ __spreadProps(__spreadValues({
18
+ className: clsx("hds-navbar", variant && `hds-navbar--${variant}`, className),
19
+ ref
20
+ }, rest), {
21
+ children
22
+ })
23
+ );
15
24
  }
16
25
  );
17
26
  Navbar.displayName = "Navbar";
@@ -22,6 +31,26 @@ var NavbarLogo = forwardRef(
22
31
  }
23
32
  );
24
33
  NavbarLogo.displayName = "Navbar.Logo";
34
+ var NavbarLogoAndServiceText = forwardRef(
35
+ (_a, ref) => {
36
+ var _b = _a, { children, asChild, variant, className } = _b, rest = __objRest(_b, ["children", "asChild", "variant", "className"]);
37
+ const Component = asChild ? Slot : "div";
38
+ return /* @__PURE__ */ jsx(
39
+ Component,
40
+ __spreadProps(__spreadValues({
41
+ ref,
42
+ className: clsx(
43
+ "hds-navbar__logo-and-service-text",
44
+ `hds-navbar__logo-and-service-text--${variant}`,
45
+ className
46
+ )
47
+ }, rest), {
48
+ children
49
+ })
50
+ );
51
+ }
52
+ );
53
+ NavbarLogoAndServiceText.displayName = "Navbar.NavbarLogoAndText";
25
54
  var NavbarButton = forwardRef(
26
55
  (_a, ref) => {
27
56
  var _b = _a, { as: Component = "button", children, icon, className } = _b, rest = __objRest(_b, ["as", "children", "icon", "className"]);
@@ -48,7 +77,8 @@ NavbarNavigation.displayName = "Navbar.Navigation";
48
77
  export {
49
78
  Navbar,
50
79
  NavbarLogo,
80
+ NavbarLogoAndServiceText,
51
81
  NavbarButton,
52
82
  NavbarNavigation
53
83
  };
54
- //# sourceMappingURL=chunk-JMDXW2ML.mjs.map
84
+ //# sourceMappingURL=chunk-625SVQEP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/navbar/navbar.tsx"],"sourcesContent":["import React, { forwardRef, type HTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport type { OverridableComponent } from \"../utils\";\n\nexport interface NavbarProps extends HTMLAttributes<HTMLElement> {\n /**\n * Navbar variant\n *\n * By default the `posten.no` variant is used which has a fixed logo and a fixed height of 112px\n *\n * For internal services or flagship services use the `service` should be used\n */\n variant?: \"default\" | \"service\";\n children: React.ReactNode;\n}\n\n/**\n * 🚨 WORK IN PROGRESS 🚨\n */\nexport const Navbar = forwardRef<HTMLElement, NavbarProps>(\n ({ children, className, variant, ...rest }, ref) => {\n return (\n <header\n className={clsx(\"hds-navbar\", variant && `hds-navbar--${variant}`, className as undefined)}\n ref={ref}\n {...rest}\n >\n {children}\n </header>\n );\n },\n);\nNavbar.displayName = \"Navbar\";\n\ninterface NavbarLogoProps {\n children?: never;\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 NavbarLogo: OverridableComponent<NavbarLogoProps, HTMLDivElement> = forwardRef(\n ({ as: Component = \"div\", className, ...rest }, ref) => {\n return (\n <Component className={clsx(\"hds-navbar__logo\", className as undefined)} ref={ref} {...rest} />\n );\n },\n);\nNavbarLogo.displayName = \"Navbar.Logo\";\n\ninterface NavbarLogoAndServiceText extends HTMLAttributes<HTMLDivElement> {\n /**\n * The text display next to the logo\n */\n children: React.ReactNode;\n\n /**\n * The text variant\n *\n * Use `service` for internal applications\n * Use `flagship` for public facing applications\n */\n variant: \"service\" | \"flagship\";\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 * Internal service or flagship text next to either the 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 NavbarLogoAndServiceText = forwardRef<HTMLDivElement, NavbarLogoAndServiceText>(\n ({ children, asChild, variant, className, ...rest }, ref) => {\n const Component = asChild ? Slot : \"div\";\n return (\n <Component\n ref={ref}\n className={clsx(\n \"hds-navbar__logo-and-service-text\",\n `hds-navbar__logo-and-service-text--${variant}`,\n className as undefined,\n )}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nNavbarLogoAndServiceText.displayName = \"Navbar.NavbarLogoAndText\";\n\n// Navbar button\ninterface NavbarButtonProps {\n icon?: React.ReactNode;\n children: React.ReactNode;\n}\nexport const NavbarButton: OverridableComponent<NavbarButtonProps, HTMLElement> = forwardRef(\n ({ as: Component = \"button\", children, icon, className, ...rest }, ref) => {\n return (\n <Component className={clsx(\"hds-navbar__button\", className as undefined)} ref={ref} {...rest}>\n {children} {icon}\n </Component>\n );\n },\n);\nNavbarButton.displayName = \"Navbar.Button\";\n\ninterface NavbarNavigationProps {\n children: React.ReactNode;\n}\nexport const NavbarNavigation: OverridableComponent<NavbarNavigationProps, HTMLElement> =\n forwardRef(({ as: Component = \"div\", className, ...rest }, ref) => {\n return (\n <Component\n className={clsx(\"hds-navbar__navigation\", className as undefined)}\n ref={ref}\n {...rest}\n />\n );\n });\nNavbarNavigation.displayName = \"Navbar.Navigation\";\n"],"mappings":";;;;;;;AAAA,SAAgB,kBAAuC;AACvD,SAAS,YAAY;AACrB,SAAS,YAAY;AAqBf,cAkFA,YAlFA;AAHC,IAAM,SAAS;AAAA,EACpB,CAAC,IAA2C,QAAQ;AAAnD,iBAAE,YAAU,WAAW,QArB1B,IAqBG,IAAmC,iBAAnC,IAAmC,CAAjC,YAAU,aAAW;AACtB,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,KAAK,cAAc,WAAW,eAAe,OAAO,IAAI,SAAsB;AAAA,QACzF;AAAA,SACI,OAHL;AAAA,QAKE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;AAWd,IAAM,aAAoE;AAAA,EAC/E,CAAC,IAA+C,QAAQ;AAAvD,iBAAE,MAAI,YAAY,OAAO,UA7C5B,IA6CG,IAAuC,iBAAvC,IAAuC,CAArC,MAAuB;AACxB,WACE,oBAAC,4BAAU,WAAW,KAAK,oBAAoB,SAAsB,GAAG,OAAc,KAAM;AAAA,EAEhG;AACF;AACA,WAAW,cAAc;AA0BlB,IAAM,2BAA2B;AAAA,EACtC,CAAC,IAAoD,QAAQ;AAA5D,iBAAE,YAAU,SAAS,SAAS,UA9EjC,IA8EG,IAA4C,iBAA5C,IAA4C,CAA1C,YAAU,WAAS,WAAS;AAC7B,UAAM,YAAY,UAAU,OAAO;AACnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA,sCAAsC,OAAO;AAAA,UAC7C;AAAA,QACF;AAAA,SACI,OAPL;AAAA,QASE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,yBAAyB,cAAc;AAOhC,IAAM,eAAqE;AAAA,EAChF,CAAC,IAAkE,QAAQ;AAA1E,iBAAE,MAAI,YAAY,UAAU,UAAU,MAAM,UAvG/C,IAuGG,IAA0D,iBAA1D,IAA0D,CAAxD,MAA0B,YAAU,QAAM;AAC3C,WACE,qBAAC,0CAAU,WAAW,KAAK,sBAAsB,SAAsB,GAAG,OAAc,OAAvF,EACE;AAAA;AAAA,MAAS;AAAA,MAAE;AAAA,QACd;AAAA,EAEJ;AACF;AACA,aAAa,cAAc;AAKpB,IAAM,mBACX,WAAW,CAAC,IAA+C,QAAQ;AAAvD,eAAE,MAAI,YAAY,OAAO,UArHvC,IAqHc,IAAuC,iBAAvC,IAAuC,CAArC,MAAuB;AACnC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,KAAK,0BAA0B,SAAsB;AAAA,MAChE;AAAA,OACI;AAAA,EACN;AAEJ,CAAC;AACH,iBAAiB,cAAc;","names":[]}
@@ -60,6 +60,7 @@ var AutoAnimateHeight = forwardRef(
60
60
  __spreadProps(__spreadValues({
61
61
  ref,
62
62
  style: __spreadValues({
63
+ position: "relative",
63
64
  overflow: "hidden",
64
65
  height,
65
66
  transitionProperty: "height",
@@ -91,4 +92,4 @@ AutoAnimateHeight.displayName = "AutoAnimateHeight";
91
92
  export {
92
93
  AutoAnimateHeight
93
94
  };
94
- //# sourceMappingURL=chunk-Q6REETZD.mjs.map
95
+ //# sourceMappingURL=chunk-AKYK3XFN.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utilities/auto-animate-height.tsx"],"sourcesContent":["import { cloneElement, forwardRef, useEffect, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport type { OverridableComponent } from \"../utils\";\n\nconst animationDurationToValue = {\n quick: 100,\n normal: 300,\n slow: 700,\n};\n\nexport interface AutoAnimateHeightProps {\n /**\n * Time of the animation, using the hedwig animation tokens\n * quick: 0.1s\n * normal: 0.3s\n * slow: 0.7s\n *\n * default is \"quick\"\n */\n animationDuration?: \"quick\" | \"normal\" | \"slow\";\n\n /**\n * Which hedwig easing function to use, default is \"normal\"\n */\n animationEasing?: \"in\" | \"out\" | \"normal\";\n children: React.ReactNode;\n style?: React.CSSProperties;\n}\n\n/**\n * Helper component to animate the height of the children when they change\n * It's done by rendering two versions of the passed children,\n * one hidden to measure the height and one visible to only changes after the height is measured.\n *\n * **IMPORTANT** Do not pass any components with effects (like data fetching), as they will trigger twice.\n */\nexport const AutoAnimateHeight: OverridableComponent<AutoAnimateHeightProps, HTMLDivElement> =\n forwardRef(\n (\n {\n as: Component = \"div\",\n children,\n style,\n animationDuration = \"quick\",\n animationEasing = \"normal\",\n ...rest\n },\n ref,\n ) => {\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const measurementRef = useRef<HTMLDivElement>(null);\n const [height, setHeight] = useState<number | undefined>(undefined);\n const [clonedChildren, setClonedChildren] = useState<React.ReactNode>(() =>\n cloneElement(<>{children}</>, {}),\n );\n useEffect(() => {\n if (measurementRef.current) {\n const { height: newHeight } = measurementRef.current.getBoundingClientRect();\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n if (newHeight < (height ?? 0)) {\n // If the children are shrinking, hold off on replacing until the animation is done\n // This way we don't get a sudden flash of empty content\n setTimeout(() => {\n flushSync(() => {\n setHeight(newHeight);\n });\n timeoutRef.current = setTimeout(() => {\n setClonedChildren(cloneElement(<>{children}</>, {}));\n }, animationDurationToValue[animationDuration]);\n });\n } else {\n setHeight(newHeight);\n setClonedChildren(cloneElement(<>{children}</>, {}));\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- I know better\n }, [children]);\n\n return (\n <Component\n ref={ref}\n style={{\n overflow: \"hidden\",\n height,\n transitionProperty: \"height\",\n transitionDuration: `var(--hds-micro-animation-duration-${animationDuration})`,\n transitionTimingFunction: `var(--hds-micro-animation-easing-${animationEasing})`,\n ...style,\n }}\n {...rest}\n >\n <div\n aria-hidden\n ref={measurementRef}\n style={{\n position: \"absolute\",\n visibility: \"hidden\",\n }}\n >\n {children}\n </div>\n {clonedChildren}\n </Component>\n );\n },\n );\nAutoAnimateHeight.displayName = \"AutoAnimateHeight\";\n"],"mappings":";;;;;;;AAAA,SAAS,cAAc,YAAY,WAAW,QAAQ,gBAAgB;AACtE,SAAS,iBAAiB;AAoDL,wBA6Bb,YA7Ba;AAjDrB,IAAM,2BAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR;AA4BO,IAAM,oBACX;AAAA,EACE,CACE,IAQA,QACG;AATH,iBACE;AAAA,UAAI,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,MACA,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,IA5C1B,IAuCM,IAMK,iBANL,IAMK;AAAA,MALH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,UAAM,aAAa,OAA8B,IAAI;AACrD,UAAM,iBAAiB,OAAuB,IAAI;AAClD,UAAM,CAAC,QAAQ,SAAS,IAAI,SAA6B,MAAS;AAClE,UAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,MAA0B,MACpE,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC;AAAA,IAClC;AACA,cAAU,MAAM;AACd,UAAI,eAAe,SAAS;AAC1B,cAAM,EAAE,QAAQ,UAAU,IAAI,eAAe,QAAQ,sBAAsB;AAE3E,YAAI,WAAW,SAAS;AACtB,uBAAa,WAAW,OAAO;AAAA,QACjC;AACA,YAAI,aAAa,0BAAU,IAAI;AAG7B,qBAAW,MAAM;AACf,sBAAU,MAAM;AACd,wBAAU,SAAS;AAAA,YACrB,CAAC;AACD,uBAAW,UAAU,WAAW,MAAM;AACpC,gCAAkB,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC,CAAC;AAAA,YACrD,GAAG,yBAAyB,iBAAiB,CAAC;AAAA,UAChD,CAAC;AAAA,QACH,OAAO;AACL,oBAAU,SAAS;AACnB,4BAAkB,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC,CAAC;AAAA,QACrD;AAAA,MACF;AAAA,IAEF,GAAG,CAAC,QAAQ,CAAC;AAEb,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO;AAAA,UACL,UAAU;AAAA,UACV;AAAA,UACA,oBAAoB;AAAA,UACpB,oBAAoB,sCAAsC,iBAAiB;AAAA,UAC3E,0BAA0B,oCAAoC,eAAe;AAAA,WAC1E;AAAA,SAED,OAVL;AAAA,QAYC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,eAAW;AAAA,cACX,KAAK;AAAA,cACL,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,YAAY;AAAA,cACd;AAAA,cAEC;AAAA;AAAA,UACH;AAAA,UACC;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACF,kBAAkB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/utilities/auto-animate-height.tsx"],"sourcesContent":["import { cloneElement, forwardRef, useEffect, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport type { OverridableComponent } from \"../utils\";\n\nconst animationDurationToValue = {\n quick: 100,\n normal: 300,\n slow: 700,\n};\n\nexport interface AutoAnimateHeightProps {\n /**\n * Time of the animation, using the hedwig animation tokens\n * quick: 0.1s\n * normal: 0.3s\n * slow: 0.7s\n *\n * default is \"quick\"\n */\n animationDuration?: \"quick\" | \"normal\" | \"slow\";\n\n /**\n * Which hedwig easing function to use, default is \"normal\"\n */\n animationEasing?: \"in\" | \"out\" | \"normal\";\n children: React.ReactNode;\n style?: React.CSSProperties;\n}\n\n/**\n * Helper component to animate the height of the children when they change\n * It's done by rendering two versions of the passed children,\n * one hidden to measure the height and one visible to only changes after the height is measured.\n *\n * **IMPORTANT** Do not pass any components with effects (like data fetching), as they will trigger twice.\n */\nexport const AutoAnimateHeight: OverridableComponent<AutoAnimateHeightProps, HTMLDivElement> =\n forwardRef(\n (\n {\n as: Component = \"div\",\n children,\n style,\n animationDuration = \"quick\",\n animationEasing = \"normal\",\n ...rest\n },\n ref,\n ) => {\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n const measurementRef = useRef<HTMLDivElement>(null);\n const [height, setHeight] = useState<number | undefined>(undefined);\n const [clonedChildren, setClonedChildren] = useState<React.ReactNode>(() =>\n cloneElement(<>{children}</>, {}),\n );\n useEffect(() => {\n if (measurementRef.current) {\n const { height: newHeight } = measurementRef.current.getBoundingClientRect();\n\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n if (newHeight < (height ?? 0)) {\n // If the children are shrinking, hold off on replacing until the animation is done\n // This way we don't get a sudden flash of empty content\n setTimeout(() => {\n flushSync(() => {\n setHeight(newHeight);\n });\n timeoutRef.current = setTimeout(() => {\n setClonedChildren(cloneElement(<>{children}</>, {}));\n }, animationDurationToValue[animationDuration]);\n });\n } else {\n setHeight(newHeight);\n setClonedChildren(cloneElement(<>{children}</>, {}));\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- I know better\n }, [children]);\n\n return (\n <Component\n ref={ref}\n style={{\n position: \"relative\",\n overflow: \"hidden\",\n height,\n transitionProperty: \"height\",\n transitionDuration: `var(--hds-micro-animation-duration-${animationDuration})`,\n transitionTimingFunction: `var(--hds-micro-animation-easing-${animationEasing})`,\n ...style,\n }}\n {...rest}\n >\n <div\n aria-hidden\n ref={measurementRef}\n style={{\n position: \"absolute\",\n visibility: \"hidden\",\n }}\n >\n {children}\n </div>\n {clonedChildren}\n </Component>\n );\n },\n );\nAutoAnimateHeight.displayName = \"AutoAnimateHeight\";\n"],"mappings":";;;;;;;AAAA,SAAS,cAAc,YAAY,WAAW,QAAQ,gBAAgB;AACtE,SAAS,iBAAiB;AAoDL,wBA6Bb,YA7Ba;AAjDrB,IAAM,2BAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR;AA4BO,IAAM,oBACX;AAAA,EACE,CACE,IAQA,QACG;AATH,iBACE;AAAA,UAAI,YAAY;AAAA,MAChB;AAAA,MACA;AAAA,MACA,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,IA5C1B,IAuCM,IAMK,iBANL,IAMK;AAAA,MALH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,UAAM,aAAa,OAA8B,IAAI;AACrD,UAAM,iBAAiB,OAAuB,IAAI;AAClD,UAAM,CAAC,QAAQ,SAAS,IAAI,SAA6B,MAAS;AAClE,UAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,MAA0B,MACpE,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC;AAAA,IAClC;AACA,cAAU,MAAM;AACd,UAAI,eAAe,SAAS;AAC1B,cAAM,EAAE,QAAQ,UAAU,IAAI,eAAe,QAAQ,sBAAsB;AAE3E,YAAI,WAAW,SAAS;AACtB,uBAAa,WAAW,OAAO;AAAA,QACjC;AACA,YAAI,aAAa,0BAAU,IAAI;AAG7B,qBAAW,MAAM;AACf,sBAAU,MAAM;AACd,wBAAU,SAAS;AAAA,YACrB,CAAC;AACD,uBAAW,UAAU,WAAW,MAAM;AACpC,gCAAkB,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC,CAAC;AAAA,YACrD,GAAG,yBAAyB,iBAAiB,CAAC;AAAA,UAChD,CAAC;AAAA,QACH,OAAO;AACL,oBAAU,SAAS;AACnB,4BAAkB,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC,CAAC;AAAA,QACrD;AAAA,MACF;AAAA,IAEF,GAAG,CAAC,QAAQ,CAAC;AAEb,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO;AAAA,UACL,UAAU;AAAA,UACV,UAAU;AAAA,UACV;AAAA,UACA,oBAAoB;AAAA,UACpB,oBAAoB,sCAAsC,iBAAiB;AAAA,UAC3E,0BAA0B,oCAAoC,eAAe;AAAA,WAC1E;AAAA,SAED,OAXL;AAAA,QAaC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,eAAW;AAAA,cACX,KAAK;AAAA,cACL,OAAO;AAAA,gBACL,UAAU;AAAA,gBACV,YAAY;AAAA,cACd;AAAA,cAEC;AAAA;AAAA,UACH;AAAA,UACC;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACF,kBAAkB,cAAc;","names":[]}
@@ -11,11 +11,34 @@ import { forwardRef } from "react";
11
11
  import { jsx } from "react/jsx-runtime";
12
12
  var Skeleton = forwardRef(
13
13
  (_a, ref) => {
14
- var _b = _a, { as: Component = "div", children, variant = "text", width, height, className, style } = _b, rest = __objRest(_b, ["as", "children", "variant", "width", "height", "className", "style"]);
14
+ var _b = _a, {
15
+ as: Component = "div",
16
+ children,
17
+ animation,
18
+ variant = "text",
19
+ width,
20
+ height,
21
+ className,
22
+ style
23
+ } = _b, rest = __objRest(_b, [
24
+ "as",
25
+ "children",
26
+ "animation",
27
+ "variant",
28
+ "width",
29
+ "height",
30
+ "className",
31
+ "style"
32
+ ]);
15
33
  return /* @__PURE__ */ jsx(
16
34
  Component,
17
35
  __spreadProps(__spreadValues({
18
- className: clsx("hds-skeleton", `hds-skeleton--${variant}`, className),
36
+ className: clsx(
37
+ "hds-skeleton",
38
+ `hds-skeleton--${variant}`,
39
+ !animation && `hds-skeleton--no-animation`,
40
+ className
41
+ ),
19
42
  style: __spreadProps(__spreadValues({}, style), { width, height }),
20
43
  ref,
21
44
  "aria-hidden": true
@@ -30,4 +53,4 @@ Skeleton.displayName = "Skeleton";
30
53
  export {
31
54
  Skeleton
32
55
  };
33
- //# sourceMappingURL=chunk-OYJQ5MAS.mjs.map
56
+ //# sourceMappingURL=chunk-BYDSISQZ.mjs.map
@@ -0,0 +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,MACA,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":[]}
@@ -7,8 +7,9 @@ import {
7
7
  Navbar,
8
8
  NavbarButton,
9
9
  NavbarLogo,
10
+ NavbarLogoAndServiceText,
10
11
  NavbarNavigation
11
- } from "./chunk-JMDXW2ML.mjs";
12
+ } from "./chunk-625SVQEP.mjs";
12
13
 
13
14
  // src/navbar/index.tsx
14
15
  var NavbarExpandableMenuComponent = NavbarExpandableMenu;
@@ -16,6 +17,7 @@ NavbarExpandableMenuComponent.Trigger = NavbarExpandableMenuTrigger;
16
17
  NavbarExpandableMenuComponent.Content = NavbarExpandableMenuContent;
17
18
  var NavbarComponent = Navbar;
18
19
  NavbarComponent.Logo = NavbarLogo;
20
+ NavbarComponent.LogoAndServiceText = NavbarLogoAndServiceText;
19
21
  NavbarComponent.ExpandableMenu = NavbarExpandableMenuComponent;
20
22
  NavbarComponent.Button = NavbarButton;
21
23
  NavbarComponent.Navigation = NavbarNavigation;
@@ -23,4 +25,4 @@ NavbarComponent.Navigation = NavbarNavigation;
23
25
  export {
24
26
  NavbarComponent
25
27
  };
26
- //# sourceMappingURL=chunk-VKRPPQ6F.mjs.map
28
+ //# sourceMappingURL=chunk-H3VGHTDC.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 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 };\nexport type * from \"./navbar\";\n"],"mappings":";;;;;;;;;;;;;;AAaA,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":[]}
@@ -0,0 +1,39 @@
1
+ import {
2
+ __objRest,
3
+ __spreadProps,
4
+ __spreadValues
5
+ } from "./chunk-R4SQKVDQ.mjs";
6
+
7
+ // src/show-more/show-more.tsx
8
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
9
+ import { forwardRef } from "react";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ var ShowMoreButton = forwardRef(
12
+ (_a, ref) => {
13
+ var _b = _a, { text, variant, expanded, className } = _b, rest = __objRest(_b, ["text", "variant", "expanded", "className"]);
14
+ return /* @__PURE__ */ jsxs(
15
+ "button",
16
+ __spreadProps(__spreadValues({
17
+ ref,
18
+ className: clsx(
19
+ "hds-show-more",
20
+ variant === "show-more-show-less" && "hds-show-more--show-less",
21
+ className
22
+ ),
23
+ "data-state": expanded ? "expanded" : void 0,
24
+ type: "button"
25
+ }, rest), {
26
+ children: [
27
+ text,
28
+ /* @__PURE__ */ jsx("span", { className: clsx("hds-show-more__icon") })
29
+ ]
30
+ })
31
+ );
32
+ }
33
+ );
34
+ ShowMoreButton.displayName = "ShowMoreButton";
35
+
36
+ export {
37
+ ShowMoreButton
38
+ };
39
+ //# sourceMappingURL=chunk-ZDPU3N54.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/show-more/show-more.tsx"],"sourcesContent":["import { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { forwardRef } from \"react\";\n\ntype Variant =\n | {\n variant?: \"show-more\";\n expanded?: never;\n }\n | {\n variant: \"show-more-show-less\";\n expanded: boolean;\n };\n\nexport type ShowMoreProps = React.HTMLAttributes<HTMLButtonElement> & {\n text: React.ReactNode;\n} & Variant;\n\n/**\n * Simple button for triggering more content.\n *\n * You have to add the logic for what happens when the button is clicked yourself.\n *\n * **Example**\n *\n * ```tsx\n * function Content() {\n * const [items, fetchMoreItems, moreItemsAvailable] = useYourData();\n * function onShowMoreItems() {\n * fetchMoreItems();\n * }\n * return (\n * <>\n * <ul>\n * {items.map((item) => (\n * <li key={item.id}>{item.text}</li>\n * ))}\n * </ul>\n * {moreItemsAvailable ?\n * <ShowMoreButton className=\"mt-8\" onClick={onShowMoreItems} lang=\"en\" /> :\n * null\n * }\n * </>\n * )\n * }\n * ```\n */\nexport const ShowMoreButton = forwardRef<HTMLButtonElement, ShowMoreProps>(\n ({ text, variant, expanded, className, ...rest }, ref) => {\n return (\n <button\n ref={ref}\n className={clsx(\n \"hds-show-more\",\n variant === \"show-more-show-less\" && \"hds-show-more--show-less\",\n className as undefined,\n )}\n data-state={expanded ? \"expanded\" : undefined}\n type=\"button\"\n {...rest}\n >\n {text}\n <span className={clsx(\"hds-show-more__icon\")} />\n </button>\n );\n },\n);\nShowMoreButton.displayName = \"ShowMoreButton\";\n"],"mappings":";;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAgDrB,SAYE,KAZF;AAHC,IAAM,iBAAiB;AAAA,EAC5B,CAAC,IAAiD,QAAQ;AAAzD,iBAAE,QAAM,SAAS,UAAU,UA/C9B,IA+CG,IAAyC,iBAAzC,IAAyC,CAAvC,QAAM,WAAS,YAAU;AAC1B,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA,YAAY,yBAAyB;AAAA,UACrC;AAAA,QACF;AAAA,QACA,cAAY,WAAW,aAAa;AAAA,QACpC,MAAK;AAAA,SACD,OATL;AAAA,QAWE;AAAA;AAAA,UACD,oBAAC,UAAK,WAAW,KAAK,qBAAqB,GAAG;AAAA;AAAA;AAAA,IAChD;AAAA,EAEJ;AACF;AACA,eAAe,cAAc;","names":[]}
@@ -72,6 +72,7 @@ export { ModalFooter } from './_tsup-dts-rollup';
72
72
  export { Navbar } from './_tsup-dts-rollup';
73
73
  export { NavbarProps } from './_tsup-dts-rollup';
74
74
  export { NavbarLogo } from './_tsup-dts-rollup';
75
+ export { NavbarLogoAndServiceText } from './_tsup-dts-rollup';
75
76
  export { NavbarButton } from './_tsup-dts-rollup';
76
77
  export { NavbarNavigation } from './_tsup-dts-rollup';
77
78
  export { AutoAnimateHeight } from './_tsup-dts-rollup';
@@ -72,6 +72,7 @@ export { ModalFooter } from './_tsup-dts-rollup';
72
72
  export { Navbar } from './_tsup-dts-rollup';
73
73
  export { NavbarProps } from './_tsup-dts-rollup';
74
74
  export { NavbarLogo } from './_tsup-dts-rollup';
75
+ export { NavbarLogoAndServiceText } from './_tsup-dts-rollup';
75
76
  export { NavbarButton } from './_tsup-dts-rollup';
76
77
  export { NavbarNavigation } from './_tsup-dts-rollup';
77
78
  export { AutoAnimateHeight } from './_tsup-dts-rollup';