@postenbring/hedwig-react 0.0.60 → 0.0.61

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 (110) hide show
  1. package/dist/_tsup-dts-rollup.d.mts +142 -96
  2. package/dist/_tsup-dts-rollup.d.ts +142 -96
  3. package/dist/badge/badge.js +1 -0
  4. package/dist/badge/badge.js.map +1 -1
  5. package/dist/badge/badge.mjs +1 -1
  6. package/dist/badge/index.js +1 -0
  7. package/dist/badge/index.js.map +1 -1
  8. package/dist/badge/index.mjs +1 -1
  9. package/dist/chunk-2KX7VFN2.mjs +1 -0
  10. package/dist/{chunk-3ADVRQ3D.mjs → chunk-2LKUHKL4.mjs} +3 -3
  11. package/dist/chunk-2LKUHKL4.mjs.map +1 -0
  12. package/dist/{chunk-MDA3MMNA.mjs → chunk-5QL53TR2.mjs} +2 -1
  13. package/dist/{chunk-MDA3MMNA.mjs.map → chunk-5QL53TR2.mjs.map} +1 -1
  14. package/dist/chunk-DZNH5JHY.mjs +1 -0
  15. package/dist/{chunk-ZUKLWHUR.mjs → chunk-GJDRW6PA.mjs} +3 -2
  16. package/dist/{chunk-ZUKLWHUR.mjs.map → chunk-GJDRW6PA.mjs.map} +1 -1
  17. package/dist/chunk-H4GIHEB2.mjs +1 -0
  18. package/dist/{chunk-44X6U32G.mjs → chunk-OYJQ5MAS.mjs} +2 -1
  19. package/dist/{chunk-44X6U32G.mjs.map → chunk-OYJQ5MAS.mjs.map} +1 -1
  20. package/dist/{chunk-PTANXZW6.mjs → chunk-PMLDK3VC.mjs} +2 -1
  21. package/dist/{chunk-PTANXZW6.mjs.map → chunk-PMLDK3VC.mjs.map} +1 -1
  22. package/dist/chunk-V4NGUB4I.mjs +34 -0
  23. package/dist/chunk-V4NGUB4I.mjs.map +1 -0
  24. package/dist/{chunk-Q3GMWURJ.mjs → chunk-VKRPPQ6F.mjs} +6 -6
  25. package/dist/{chunk-JDJQFQQ6.mjs → chunk-W3D4VR4Y.mjs} +2 -1
  26. package/dist/{chunk-JDJQFQQ6.mjs.map → chunk-W3D4VR4Y.mjs.map} +1 -1
  27. package/dist/chunk-WGVZWX5L.mjs +82 -0
  28. package/dist/chunk-WGVZWX5L.mjs.map +1 -0
  29. package/dist/form/index.d.mts +3 -0
  30. package/dist/form/index.d.ts +3 -0
  31. package/dist/form/index.js +65 -8
  32. package/dist/form/index.js.map +1 -1
  33. package/dist/form/index.mjs +7 -3
  34. package/dist/form/radiobutton/index.d.mts +3 -0
  35. package/dist/form/radiobutton/index.d.ts +3 -0
  36. package/dist/form/radiobutton/index.js +135 -8
  37. package/dist/form/radiobutton/index.js.map +1 -1
  38. package/dist/form/radiobutton/index.mjs +10 -2
  39. package/dist/form/radiobutton/radiobutton.js +133 -8
  40. package/dist/form/radiobutton/radiobutton.js.map +1 -1
  41. package/dist/form/radiobutton/radiobutton.mjs +6 -1
  42. package/dist/form/radiobutton/radiogroup.d.mts +3 -0
  43. package/dist/form/radiobutton/radiogroup.d.ts +3 -0
  44. package/dist/form/radiobutton/radiogroup.js +145 -0
  45. package/dist/form/radiobutton/radiogroup.js.map +1 -0
  46. package/dist/form/radiobutton/radiogroup.mjs +14 -0
  47. package/dist/form/radiobutton/radiogroup.mjs.map +1 -0
  48. package/dist/index-no-css.d.mts +3 -0
  49. package/dist/index-no-css.d.ts +3 -0
  50. package/dist/index-no-css.js +218 -156
  51. package/dist/index-no-css.js.map +1 -1
  52. package/dist/index-no-css.mjs +23 -18
  53. package/dist/index.d.mts +3 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.js +218 -156
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.mjs +23 -18
  58. package/dist/index.mjs.map +1 -1
  59. package/dist/link/index.js +1 -0
  60. package/dist/link/index.js.map +1 -1
  61. package/dist/link/index.mjs +1 -1
  62. package/dist/link/link.js +1 -0
  63. package/dist/link/link.js.map +1 -1
  64. package/dist/link/link.mjs +1 -1
  65. package/dist/list/index.js +2 -0
  66. package/dist/list/index.js.map +1 -1
  67. package/dist/list/index.mjs +2 -2
  68. package/dist/list/link-list.js +2 -0
  69. package/dist/list/link-list.js.map +1 -1
  70. package/dist/list/link-list.mjs +2 -2
  71. package/dist/list/list.js +1 -0
  72. package/dist/list/list.js.map +1 -1
  73. package/dist/list/list.mjs +1 -1
  74. package/dist/navbar/index.mjs +2 -2
  75. package/dist/show-more/index.d.mts +2 -2
  76. package/dist/show-more/index.d.ts +2 -2
  77. package/dist/show-more/index.js +2 -2
  78. package/dist/show-more/index.js.map +1 -1
  79. package/dist/show-more/index.mjs +3 -3
  80. package/dist/skeleton/index.js +1 -0
  81. package/dist/skeleton/index.js.map +1 -1
  82. package/dist/skeleton/index.mjs +1 -1
  83. package/dist/skeleton/skeleton.js +1 -0
  84. package/dist/skeleton/skeleton.js.map +1 -1
  85. package/dist/skeleton/skeleton.mjs +1 -1
  86. package/dist/utilities/auto-animate-height.d.mts +2 -0
  87. package/dist/utilities/auto-animate-height.d.ts +2 -0
  88. package/dist/{show-more → utilities}/auto-animate-height.js +2 -2
  89. package/dist/utilities/auto-animate-height.js.map +1 -0
  90. package/dist/{show-more → utilities}/auto-animate-height.mjs +1 -1
  91. package/dist/utilities/auto-animate-height.mjs.map +1 -0
  92. package/dist/utilities/index.d.mts +2 -0
  93. package/dist/utilities/index.d.ts +2 -0
  94. package/dist/utilities/index.js +137 -0
  95. package/dist/utilities/index.js.map +1 -0
  96. package/dist/utilities/index.mjs +9 -0
  97. package/dist/utilities/index.mjs.map +1 -0
  98. package/package.json +3 -3
  99. package/dist/chunk-3ADVRQ3D.mjs.map +0 -1
  100. package/dist/chunk-DY7LD3X3.mjs +0 -1
  101. package/dist/chunk-MQ3EEUTP.mjs +0 -1
  102. package/dist/chunk-SEKRICE4.mjs +0 -42
  103. package/dist/chunk-SEKRICE4.mjs.map +0 -1
  104. package/dist/show-more/auto-animate-height.d.mts +0 -2
  105. package/dist/show-more/auto-animate-height.d.ts +0 -2
  106. package/dist/show-more/auto-animate-height.js.map +0 -1
  107. /package/dist/{chunk-DY7LD3X3.mjs.map → chunk-2KX7VFN2.mjs.map} +0 -0
  108. /package/dist/{chunk-MQ3EEUTP.mjs.map → chunk-DZNH5JHY.mjs.map} +0 -0
  109. /package/dist/{show-more/auto-animate-height.mjs.map → chunk-H4GIHEB2.mjs.map} +0 -0
  110. /package/dist/{chunk-Q3GMWURJ.mjs.map → chunk-VKRPPQ6F.mjs.map} +0 -0
@@ -0,0 +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 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 (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 flushSync(() => {\n setHeight(newHeight);\n });\n setTimeout(() => {\n setClonedChildren(cloneElement(<>{children}</>, {}));\n }, animationDurationToValue[animationDuration]);\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;AAmDL,wBAwBb,YAxBa;AAhDrB,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,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,aAAa,0BAAU,IAAI;AAG7B,oBAAU,MAAM;AACd,sBAAU,SAAS;AAAA,UACrB,CAAC;AACD,qBAAW,MAAM;AACf,8BAAkB,aAAa,gCAAG,UAAS,GAAK,CAAC,CAAC,CAAC;AAAA,UACrD,GAAG,yBAAyB,iBAAiB,CAAC;AAAA,QAChD,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":[]}
@@ -5,6 +5,7 @@ import {
5
5
  } from "./chunk-R4SQKVDQ.mjs";
6
6
 
7
7
  // src/link/link.tsx
8
+ import "react";
8
9
  import { clsx } from "@postenbring/hedwig-css/typed-classname";
9
10
  import { forwardRef } from "react";
10
11
  import { jsx } from "react/jsx-runtime";
@@ -32,4 +33,4 @@ Link.displayName = "Link";
32
33
  export {
33
34
  Link
34
35
  };
35
- //# sourceMappingURL=chunk-MDA3MMNA.mjs.map
36
+ //# sourceMappingURL=chunk-5QL53TR2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/link/link.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\nexport interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /**\n * The visual style of the link\n */\n variant?: \"underline\" | \"solid\" | \"inverted\" | \"no-underline\";\n\n /**\n * Font size of the link\n */\n size?: \"small\" | \"medium\" | \"large\";\n\n children: React.ReactNode;\n}\n\nexport const Link: OverridableComponent<LinkProps, HTMLAnchorElement> = forwardRef(\n (\n { as: Component = \"a\", children, variant = \"underline\", size = \"medium\", className, ...rest },\n ref,\n ) => {\n return (\n <Component\n className={clsx(\n \"hds-link\",\n variant !== \"underline\" && `hds-link--${variant}`,\n size !== \"medium\" && `hds-link--${size}`,\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nLink.displayName = \"Link\";\n"],"mappings":";;;;;;;AACA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAuBrB;AANC,IAAM,OAA2D;AAAA,EACtE,CACE,IACA,QACG;AAFH,iBAAE,MAAI,YAAY,KAAK,UAAU,UAAU,aAAa,OAAO,UAAU,UArB7E,IAqBI,IAAuF,iBAAvF,IAAuF,CAArF,MAAqB,YAAU,WAAuB,QAAiB;AAGzE,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,YAAY,eAAe,aAAa,OAAO;AAAA,UAC/C,SAAS,YAAY,aAAa,IAAI;AAAA,UACtC;AAAA,QACF;AAAA,QACA;AAAA,SACI,OARL;AAAA,QAUE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,KAAK,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/link/link.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\nexport interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /**\n * The visual style of the link\n */\n variant?: \"underline\" | \"solid\" | \"inverted\" | \"no-underline\";\n\n /**\n * Font size of the link\n */\n size?: \"small\" | \"medium\" | \"large\";\n\n children: React.ReactNode;\n}\n\nexport const Link: OverridableComponent<LinkProps, HTMLAnchorElement> = forwardRef(\n (\n { as: Component = \"a\", children, variant = \"underline\", size = \"medium\", className, ...rest },\n ref,\n ) => {\n return (\n <Component\n className={clsx(\n \"hds-link\",\n variant !== \"underline\" && `hds-link--${variant}`,\n size !== \"medium\" && `hds-link--${size}`,\n className as undefined,\n )}\n ref={ref}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\nLink.displayName = \"Link\";\n"],"mappings":";;;;;;;AAAA,OAAuB;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAuBrB;AANC,IAAM,OAA2D;AAAA,EACtE,CACE,IACA,QACG;AAFH,iBAAE,MAAI,YAAY,KAAK,UAAU,UAAU,aAAa,OAAO,UAAU,UArB7E,IAqBI,IAAuF,iBAAvF,IAAuF,CAArF,MAAqB,YAAU,WAAuB,QAAiB;AAGzE,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,YAAY,eAAe,aAAa,OAAO;AAAA,UAC/C,SAAS,YAAY,aAAa,IAAI;AAAA,UACtC;AAAA,QACF;AAAA,QACA;AAAA,SACI,OARL;AAAA,QAUE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,KAAK,cAAc;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-DZNH5JHY.mjs.map
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  UnorderedList
3
- } from "./chunk-PTANXZW6.mjs";
3
+ } from "./chunk-PMLDK3VC.mjs";
4
4
  import {
5
5
  __objRest,
6
6
  __spreadValues
7
7
  } from "./chunk-R4SQKVDQ.mjs";
8
8
 
9
9
  // src/list/link-list.tsx
10
+ import "react";
10
11
  import { clsx } from "@postenbring/hedwig-css/typed-classname";
11
12
  import { jsx } from "react/jsx-runtime";
12
13
  function LinkList(_a) {
@@ -18,4 +19,4 @@ LinkList.displayName = "LinkList";
18
19
  export {
19
20
  LinkList
20
21
  };
21
- //# sourceMappingURL=chunk-ZUKLWHUR.mjs.map
22
+ //# sourceMappingURL=chunk-GJDRW6PA.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/list/link-list.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { ListProps } from \"./list\";\nimport { UnorderedList } from \"./list\";\n\nexport interface LinkListProps extends Omit<ListProps, \"listStyle\"> {\n children?: React.ReactElement<HTMLLIElement> | React.ReactElement<HTMLLIElement>[];\n}\n\n/**\n * Show a list of links\n *\n * For other list types use `UnorderedList` and `OrderedList`, or use your own list component using the semantic `ul` and `ol` tags.\n */\nexport function LinkList({ className, ...rest }: LinkListProps) {\n return (\n <UnorderedList className={clsx(\"hds-list--link-list\", className as undefined)} {...rest} />\n );\n}\n\nLinkList.displayName = \"LinkList\";\n"],"mappings":";;;;;;;;;AACA,SAAS,YAAY;AAejB;AAFG,SAAS,SAAS,IAAuC;AAAvC,eAAE,YAd3B,IAcyB,IAAgB,iBAAhB,IAAgB,CAAd;AACzB,SACE,oBAAC,gCAAc,WAAW,KAAK,uBAAuB,SAAsB,KAAO,KAAM;AAE7F;AAEA,SAAS,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/list/link-list.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { ListProps } from \"./list\";\nimport { UnorderedList } from \"./list\";\n\nexport interface LinkListProps extends Omit<ListProps, \"listStyle\"> {\n children?: React.ReactElement<HTMLLIElement> | React.ReactElement<HTMLLIElement>[];\n}\n\n/**\n * Show a list of links\n *\n * For other list types use `UnorderedList` and `OrderedList`, or use your own list component using the semantic `ul` and `ol` tags.\n */\nexport function LinkList({ className, ...rest }: LinkListProps) {\n return (\n <UnorderedList className={clsx(\"hds-list--link-list\", className as undefined)} {...rest} />\n );\n}\n\nLinkList.displayName = \"LinkList\";\n"],"mappings":";;;;;;;;;AAAA,OAAuB;AACvB,SAAS,YAAY;AAejB;AAFG,SAAS,SAAS,IAAuC;AAAvC,eAAE,YAd3B,IAcyB,IAAgB,iBAAhB,IAAgB,CAAd;AACzB,SACE,oBAAC,gCAAc,WAAW,KAAK,uBAAuB,SAAsB,KAAO,KAAM;AAE7F;AAEA,SAAS,cAAc;","names":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-H4GIHEB2.mjs.map
@@ -5,6 +5,7 @@ import {
5
5
  } from "./chunk-R4SQKVDQ.mjs";
6
6
 
7
7
  // src/skeleton/skeleton.tsx
8
+ import "react";
8
9
  import { clsx } from "@postenbring/hedwig-css/typed-classname";
9
10
  import { forwardRef } from "react";
10
11
  import { jsx } from "react/jsx-runtime";
@@ -29,4 +30,4 @@ Skeleton.displayName = "Skeleton";
29
30
  export {
30
31
  Skeleton
31
32
  };
32
- //# sourceMappingURL=chunk-44X6U32G.mjs.map
33
+ //# sourceMappingURL=chunk-OYJQ5MAS.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 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 { as: Component = \"div\", children, variant = \"text\", width, height, className, style, ...rest },\n ref,\n ) => {\n return (\n <Component\n className={clsx(\"hds-skeleton\", `hds-skeleton--${variant}`, className as undefined)}\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":";;;;;;;AACA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAyDrB;AANC,IAAM,WAAgE;AAAA,EAC3E,CACE,IACA,QACG;AAFH,iBAAE,MAAI,YAAY,OAAO,UAAU,UAAU,QAAQ,OAAO,QAAQ,WAAW,MAvDnF,IAuDI,IAAyF,iBAAzF,IAAyF,CAAvF,MAAuB,YAAU,WAAkB,SAAO,UAAQ,aAAW;AAG/E,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,KAAK,gBAAgB,iBAAiB,OAAO,IAAI,SAAsB;AAAA,QAClF,OAAO,iCAAK,QAAL,EAAY,OAAO,OAAO;AAAA,QACjC;AAAA,QACA,eAAW;AAAA,SACP,OALL;AAAA,QAOE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;","names":[]}
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 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 { as: Component = \"div\", children, variant = \"text\", width, height, className, style, ...rest },\n ref,\n ) => {\n return (\n <Component\n className={clsx(\"hds-skeleton\", `hds-skeleton--${variant}`, className as undefined)}\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;AAyDrB;AANC,IAAM,WAAgE;AAAA,EAC3E,CACE,IACA,QACG;AAFH,iBAAE,MAAI,YAAY,OAAO,UAAU,UAAU,QAAQ,OAAO,QAAQ,WAAW,MAvDnF,IAuDI,IAAyF,iBAAzF,IAAyF,CAAvF,MAAuB,YAAU,WAAkB,SAAO,UAAQ,aAAW;AAG/E,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,KAAK,gBAAgB,iBAAiB,OAAO,IAAI,SAAsB;AAAA,QAClF,OAAO,iCAAK,QAAL,EAAY,OAAO,OAAO;AAAA,QACjC;AAAA,QACA,eAAW;AAAA,SACP,OALL;AAAA,QAOE;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;","names":[]}
@@ -5,6 +5,7 @@ import {
5
5
  } from "./chunk-R4SQKVDQ.mjs";
6
6
 
7
7
  // src/list/list.tsx
8
+ import "react";
8
9
  import { clsx } from "@postenbring/hedwig-css/typed-classname";
9
10
  import { jsx } from "react/jsx-runtime";
10
11
  function BaseList(_a) {
@@ -35,4 +36,4 @@ export {
35
36
  UnorderedList,
36
37
  OrderedList
37
38
  };
38
- //# sourceMappingURL=chunk-PTANXZW6.mjs.map
39
+ //# sourceMappingURL=chunk-PMLDK3VC.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/list/list.tsx"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\nimport * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface ListProps extends HTMLAttributes<HTMLOListElement | HTMLUListElement> {\n children?: React.ReactElement<HTMLLIElement> | React.ReactElement<HTMLLIElement>[];\n /**\n * Sets the size of the items (font)\n */\n size?: \"small\" | \"medium\" | \"large\";\n}\n\nfunction BaseList({\n as: ListTag = \"ul\",\n children,\n size = \"medium\",\n className,\n ...rest\n}: ListProps & { as?: \"ul\" | \"ol\" }) {\n return (\n <ListTag className={clsx(\"hds-list\", `hds-list--${size}`, className as undefined)} {...rest}>\n {children}\n </ListTag>\n );\n}\n\n/**\n * An unordered list of simple items, often text. You can nest other lists inside this component.\n *\n * If you have other list needs build your own using the semantic `ul` and `ol` tags.\n */\nexport function UnorderedList(props: ListProps) {\n return (\n <BaseList as=\"ul\" {...props}>\n {props.children}\n </BaseList>\n );\n}\n\n/**\n * An ordered list of simple items\n *\n * If you have other list needs build your own using the semantic `ul` and `ol` tags.\n */\nexport function OrderedList(props: ListProps) {\n return (\n <BaseList as=\"ol\" {...props}>\n {props.children}\n </BaseList>\n );\n}\n\nBaseList.displayName = \"BaseList\";\nOrderedList.displayName = \"OrderedList\";\nUnorderedList.displayName = \"UnorderedList\";\n"],"mappings":";;;;;;;AAEA,SAAS,YAAY;AAkBjB;AARJ,SAAS,SAAS,IAMmB;AANnB,eAChB;AAAA,QAAI,UAAU;AAAA,IACd;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EAhBF,IAYkB,IAKb,iBALa,IAKb;AAAA,IAJH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACE,oBAAC,wCAAQ,WAAW,KAAK,YAAY,aAAa,IAAI,IAAI,SAAsB,KAAO,OAAtF,EACE,WACH;AAEJ;AAOO,SAAS,cAAc,OAAkB;AAC9C,SACE,oBAAC,yCAAS,IAAG,QAAS,QAArB,EACE,gBAAM,WACT;AAEJ;AAOO,SAAS,YAAY,OAAkB;AAC5C,SACE,oBAAC,yCAAS,IAAG,QAAS,QAArB,EACE,gBAAM,WACT;AAEJ;AAEA,SAAS,cAAc;AACvB,YAAY,cAAc;AAC1B,cAAc,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/list/list.tsx"],"sourcesContent":["import type { HTMLAttributes } from \"react\";\nimport * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface ListProps extends HTMLAttributes<HTMLOListElement | HTMLUListElement> {\n children?: React.ReactElement<HTMLLIElement> | React.ReactElement<HTMLLIElement>[];\n /**\n * Sets the size of the items (font)\n */\n size?: \"small\" | \"medium\" | \"large\";\n}\n\nfunction BaseList({\n as: ListTag = \"ul\",\n children,\n size = \"medium\",\n className,\n ...rest\n}: ListProps & { as?: \"ul\" | \"ol\" }) {\n return (\n <ListTag className={clsx(\"hds-list\", `hds-list--${size}`, className as undefined)} {...rest}>\n {children}\n </ListTag>\n );\n}\n\n/**\n * An unordered list of simple items, often text. You can nest other lists inside this component.\n *\n * If you have other list needs build your own using the semantic `ul` and `ol` tags.\n */\nexport function UnorderedList(props: ListProps) {\n return (\n <BaseList as=\"ul\" {...props}>\n {props.children}\n </BaseList>\n );\n}\n\n/**\n * An ordered list of simple items\n *\n * If you have other list needs build your own using the semantic `ul` and `ol` tags.\n */\nexport function OrderedList(props: ListProps) {\n return (\n <BaseList as=\"ol\" {...props}>\n {props.children}\n </BaseList>\n );\n}\n\nBaseList.displayName = \"BaseList\";\nOrderedList.displayName = \"OrderedList\";\nUnorderedList.displayName = \"UnorderedList\";\n"],"mappings":";;;;;;;AACA,OAAuB;AACvB,SAAS,YAAY;AAkBjB;AARJ,SAAS,SAAS,IAMmB;AANnB,eAChB;AAAA,QAAI,UAAU;AAAA,IACd;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EAhBF,IAYkB,IAKb,iBALa,IAKb;AAAA,IAJH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACE,oBAAC,wCAAQ,WAAW,KAAK,YAAY,aAAa,IAAI,IAAI,SAAsB,KAAO,OAAtF,EACE,WACH;AAEJ;AAOO,SAAS,cAAc,OAAkB;AAC9C,SACE,oBAAC,yCAAS,IAAG,QAAS,QAArB,EACE,gBAAM,WACT;AAEJ;AAOO,SAAS,YAAY,OAAkB;AAC5C,SACE,oBAAC,yCAAS,IAAG,QAAS,QAArB,EACE,gBAAM,WACT;AAEJ;AAEA,SAAS,cAAc;AACvB,YAAY,cAAc;AAC1B,cAAc,cAAc;","names":[]}
@@ -0,0 +1,34 @@
1
+ import {
2
+ Fieldset
3
+ } from "./chunk-37WVYY6X.mjs";
4
+ import {
5
+ __objRest,
6
+ __spreadProps,
7
+ __spreadValues
8
+ } from "./chunk-R4SQKVDQ.mjs";
9
+
10
+ // src/form/radiobutton/radiogroup.tsx
11
+ import {
12
+ createContext,
13
+ forwardRef,
14
+ useContext
15
+ } from "react";
16
+ import { jsx } from "react/jsx-runtime";
17
+ var RadioGroupContext = createContext({
18
+ hasError: false,
19
+ onChange: () => {
20
+ return void 0;
21
+ }
22
+ });
23
+ var useRadioGroupContext = () => useContext(RadioGroupContext);
24
+ var RadioGroup = forwardRef(function RadioGroup2(_a, ref) {
25
+ var _b = _a, { name, value, errorMessage, onChange, children } = _b, rest = __objRest(_b, ["name", "value", "errorMessage", "onChange", "children"]);
26
+ return /* @__PURE__ */ jsx(RadioGroupContext.Provider, { value: { name, value, hasError: Boolean(errorMessage), onChange }, children: /* @__PURE__ */ jsx(Fieldset, __spreadProps(__spreadValues({ errorMessage }, rest), { ref, children })) });
27
+ });
28
+ RadioGroup.displayName = "RadioGroup";
29
+
30
+ export {
31
+ useRadioGroupContext,
32
+ RadioGroup
33
+ };
34
+ //# sourceMappingURL=chunk-V4NGUB4I.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 /** 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,\n * and also marks all radiobuttons as invalid\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;AAqCD;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,SAtCzC,IAsCE,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"]}
@@ -1,14 +1,14 @@
1
+ import {
2
+ NavbarExpandableMenu,
3
+ NavbarExpandableMenuContent,
4
+ NavbarExpandableMenuTrigger
5
+ } from "./chunk-2E6XPNPX.mjs";
1
6
  import {
2
7
  Navbar,
3
8
  NavbarButton,
4
9
  NavbarLogo,
5
10
  NavbarNavigation
6
11
  } from "./chunk-JMDXW2ML.mjs";
7
- import {
8
- NavbarExpandableMenu,
9
- NavbarExpandableMenuContent,
10
- NavbarExpandableMenuTrigger
11
- } from "./chunk-2E6XPNPX.mjs";
12
12
 
13
13
  // src/navbar/index.tsx
14
14
  var NavbarExpandableMenuComponent = NavbarExpandableMenu;
@@ -23,4 +23,4 @@ NavbarComponent.Navigation = NavbarNavigation;
23
23
  export {
24
24
  NavbarComponent
25
25
  };
26
- //# sourceMappingURL=chunk-Q3GMWURJ.mjs.map
26
+ //# sourceMappingURL=chunk-VKRPPQ6F.mjs.map
@@ -5,6 +5,7 @@ import {
5
5
  } from "./chunk-R4SQKVDQ.mjs";
6
6
 
7
7
  // src/badge/badge.tsx
8
+ import "react";
8
9
  import { clsx } from "@postenbring/hedwig-css/typed-classname";
9
10
  import { jsx } from "react/jsx-runtime";
10
11
  function BaseBadge(_a) {
@@ -57,4 +58,4 @@ export {
57
58
  WhiteBadge,
58
59
  WarningBadge
59
60
  };
60
- //# sourceMappingURL=chunk-JDJQFQQ6.mjs.map
61
+ //# sourceMappingURL=chunk-W3D4VR4Y.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/badge/badge.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface BadgeProps extends React.AnchorHTMLAttributes<HTMLSpanElement> {\n /**\n * Font size of the badge\n */\n size?: \"small\" | \"smaller\";\n\n children: React.ReactNode;\n}\n\nfunction BaseBadge({\n children,\n variant,\n size = \"small\",\n className,\n ...rest\n}: BadgeProps & { variant: \"lighter\" | \"dark\" | \"white\" | \"warning\" }) {\n return (\n <span\n className={clsx(\n \"hds-badge\",\n `hds-badge--${size}`,\n `hds-badge--${variant}`,\n className as undefined,\n )}\n {...rest}\n >\n {children}\n </span>\n );\n}\n\nBaseBadge.displayName = \"BaseBadge\";\n\nexport function Badge(props: BadgeProps) {\n return <BaseBadge {...props} variant=\"lighter\" />;\n}\n\nBadge.displayName = \"Badge\";\n\nexport function DarkBadge(props: BadgeProps) {\n return <BaseBadge {...props} variant=\"dark\" />;\n}\n\nDarkBadge.displayName = \"DarkBadge\";\n\nexport function WhiteBadge(props: BadgeProps) {\n return <BaseBadge {...props} variant=\"white\" />;\n}\n\nWhiteBadge.displayName = \"WhiteBadge\";\n\nexport function WarningBadge(props: BadgeProps) {\n return <BaseBadge {...props} variant=\"warning\" />;\n}\n\nWarningBadge.displayName = \"WarningBadge\";\n"],"mappings":";;;;;;;AACA,SAAS,YAAY;AAmBjB;AARJ,SAAS,UAAU,IAMoD;AANpD,eACjB;AAAA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EAhBF,IAYmB,IAKd,iBALc,IAKd;AAAA,IAJH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,cAAc,IAAI;AAAA,QAClB,cAAc,OAAO;AAAA,QACrB;AAAA,MACF;AAAA,OACI,OAPL;AAAA,MASE;AAAA;AAAA,EACH;AAEJ;AAEA,UAAU,cAAc;AAEjB,SAAS,MAAM,OAAmB;AACvC,SAAO,oBAAC,4CAAc,QAAd,EAAqB,SAAQ,YAAU;AACjD;AAEA,MAAM,cAAc;AAEb,SAAS,UAAU,OAAmB;AAC3C,SAAO,oBAAC,4CAAc,QAAd,EAAqB,SAAQ,SAAO;AAC9C;AAEA,UAAU,cAAc;AAEjB,SAAS,WAAW,OAAmB;AAC5C,SAAO,oBAAC,4CAAc,QAAd,EAAqB,SAAQ,UAAQ;AAC/C;AAEA,WAAW,cAAc;AAElB,SAAS,aAAa,OAAmB;AAC9C,SAAO,oBAAC,4CAAc,QAAd,EAAqB,SAAQ,YAAU;AACjD;AAEA,aAAa,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/badge/badge.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface BadgeProps extends React.AnchorHTMLAttributes<HTMLSpanElement> {\n /**\n * Font size of the badge\n */\n size?: \"small\" | \"smaller\";\n\n children: React.ReactNode;\n}\n\nfunction BaseBadge({\n children,\n variant,\n size = \"small\",\n className,\n ...rest\n}: BadgeProps & { variant: \"lighter\" | \"dark\" | \"white\" | \"warning\" }) {\n return (\n <span\n className={clsx(\n \"hds-badge\",\n `hds-badge--${size}`,\n `hds-badge--${variant}`,\n className as undefined,\n )}\n {...rest}\n >\n {children}\n </span>\n );\n}\n\nBaseBadge.displayName = \"BaseBadge\";\n\nexport function Badge(props: BadgeProps) {\n return <BaseBadge {...props} variant=\"lighter\" />;\n}\n\nBadge.displayName = \"Badge\";\n\nexport function DarkBadge(props: BadgeProps) {\n return <BaseBadge {...props} variant=\"dark\" />;\n}\n\nDarkBadge.displayName = \"DarkBadge\";\n\nexport function WhiteBadge(props: BadgeProps) {\n return <BaseBadge {...props} variant=\"white\" />;\n}\n\nWhiteBadge.displayName = \"WhiteBadge\";\n\nexport function WarningBadge(props: BadgeProps) {\n return <BaseBadge {...props} variant=\"warning\" />;\n}\n\nWarningBadge.displayName = \"WarningBadge\";\n"],"mappings":";;;;;;;AAAA,OAAuB;AACvB,SAAS,YAAY;AAmBjB;AARJ,SAAS,UAAU,IAMoD;AANpD,eACjB;AAAA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EAhBF,IAYmB,IAKd,iBALc,IAKd;AAAA,IAJH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,cAAc,IAAI;AAAA,QAClB,cAAc,OAAO;AAAA,QACrB;AAAA,MACF;AAAA,OACI,OAPL;AAAA,MASE;AAAA;AAAA,EACH;AAEJ;AAEA,UAAU,cAAc;AAEjB,SAAS,MAAM,OAAmB;AACvC,SAAO,oBAAC,4CAAc,QAAd,EAAqB,SAAQ,YAAU;AACjD;AAEA,MAAM,cAAc;AAEb,SAAS,UAAU,OAAmB;AAC3C,SAAO,oBAAC,4CAAc,QAAd,EAAqB,SAAQ,SAAO;AAC9C;AAEA,UAAU,cAAc;AAEjB,SAAS,WAAW,OAAmB;AAC5C,SAAO,oBAAC,4CAAc,QAAd,EAAqB,SAAQ,UAAQ;AAC/C;AAEA,WAAW,cAAc;AAElB,SAAS,aAAa,OAAmB;AAC9C,SAAO,oBAAC,4CAAc,QAAd,EAAqB,SAAQ,YAAU;AACjD;AAEA,aAAa,cAAc;","names":[]}
@@ -0,0 +1,82 @@
1
+ import {
2
+ useRadioGroupContext
3
+ } from "./chunk-V4NGUB4I.mjs";
4
+ import {
5
+ __objRest,
6
+ __spreadProps,
7
+ __spreadValues
8
+ } from "./chunk-R4SQKVDQ.mjs";
9
+
10
+ // src/form/radiobutton/radiobutton.tsx
11
+ import { forwardRef } from "react";
12
+ import { clsx } from "@postenbring/hedwig-css/typed-classname";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ var isChecked = ({
15
+ checked,
16
+ selectedValue,
17
+ value
18
+ }) => {
19
+ if (typeof checked !== "undefined")
20
+ return checked;
21
+ if (typeof selectedValue !== "undefined")
22
+ return value === selectedValue;
23
+ return void 0;
24
+ };
25
+ var Radiobutton = forwardRef(
26
+ (_a, ref) => {
27
+ var _b = _a, {
28
+ checked,
29
+ value,
30
+ variant = "plain",
31
+ hasError: hasErrorProp,
32
+ title,
33
+ children,
34
+ className
35
+ } = _b, rest = __objRest(_b, [
36
+ "checked",
37
+ "value",
38
+ "variant",
39
+ "hasError",
40
+ "title",
41
+ "children",
42
+ "className"
43
+ ]);
44
+ const _a2 = useRadioGroupContext(), { value: selectedValue, hasError: hasErrorContext } = _a2, context = __objRest(_a2, ["value", "hasError"]);
45
+ const hasError = hasErrorContext || hasErrorProp;
46
+ return /* @__PURE__ */ jsxs(
47
+ "div",
48
+ {
49
+ className: clsx(
50
+ "hds-radiobutton",
51
+ {
52
+ [`hds-radiobutton--${variant}`]: variant === "bounding-box",
53
+ "hds-radiobutton--error": hasError
54
+ },
55
+ className
56
+ ),
57
+ children: [
58
+ /* @__PURE__ */ jsxs("label", { children: [
59
+ /* @__PURE__ */ jsx(
60
+ "input",
61
+ __spreadProps(__spreadValues(__spreadValues({}, context), rest), {
62
+ checked: isChecked({ checked, selectedValue, value }),
63
+ value,
64
+ ref,
65
+ type: "radio"
66
+ })
67
+ ),
68
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: "hds-radiobutton__checkmark" }),
69
+ title ? /* @__PURE__ */ jsx("p", { className: "hds-radiobutton__title", children: title }) : children
70
+ ] }),
71
+ title ? children : null
72
+ ]
73
+ }
74
+ );
75
+ }
76
+ );
77
+ Radiobutton.displayName = "Radiobutton";
78
+
79
+ export {
80
+ Radiobutton
81
+ };
82
+ //# sourceMappingURL=chunk-WGVZWX5L.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/form/radiobutton/radiobutton.tsx"],"sourcesContent":["import type { InputHTMLAttributes } from \"react\";\nimport React, { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { type RadioGroupProps, useRadioGroupContext } from \"./radiogroup\";\n\nexport interface RadiobuttonProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"defaultValue\"> {\n variant?: \"plain\" | \"bounding-box\";\n hasError?: boolean;\n title?: string;\n}\n\nconst isChecked = ({\n checked,\n selectedValue,\n value,\n}: Pick<RadiobuttonProps, \"checked\" | \"value\"> & {\n selectedValue: RadioGroupProps[\"value\"];\n}) => {\n if (typeof checked !== \"undefined\") return checked;\n if (typeof selectedValue !== \"undefined\") return value === selectedValue;\n return undefined;\n};\n\nexport const Radiobutton = forwardRef<HTMLInputElement, RadiobuttonProps>(\n (\n {\n checked,\n value,\n variant = \"plain\",\n hasError: hasErrorProp,\n title,\n children,\n className,\n ...rest\n },\n ref,\n ) => {\n const { value: selectedValue, hasError: hasErrorContext, ...context } = useRadioGroupContext();\n const hasError = hasErrorContext || hasErrorProp;\n return (\n <div\n className={clsx(\n \"hds-radiobutton\",\n {\n [`hds-radiobutton--${variant}`]: variant === \"bounding-box\",\n \"hds-radiobutton--error\": hasError,\n },\n className as undefined,\n )}\n >\n <label>\n <input\n {...context}\n {...rest}\n checked={isChecked({ checked, selectedValue, value })}\n value={value}\n ref={ref}\n type=\"radio\"\n />\n <span aria-hidden className=\"hds-radiobutton__checkmark\" />\n {title ? <p className=\"hds-radiobutton__title\">{title}</p> : children}\n </label>\n {title ? children : null}\n </div>\n );\n },\n);\n\nRadiobutton.displayName = \"Radiobutton\";\n"],"mappings":";;;;;;;;;;AACA,SAAgB,kBAAkB;AAClC,SAAS,YAAY;AAiDb,SACE,KADF;AAvCR,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AACF,MAEM;AACJ,MAAI,OAAO,YAAY;AAAa,WAAO;AAC3C,MAAI,OAAO,kBAAkB;AAAa,WAAO,UAAU;AAC3D,SAAO;AACT;AAEO,IAAM,cAAc;AAAA,EACzB,CACE,IAUA,QACG;AAXH,iBACE;AAAA;AAAA,MACA;AAAA,MACA,UAAU;AAAA,MACV,UAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,IAjCN,IA0BI,IAQK,iBARL,IAQK;AAAA,MAPH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAKF,UAAwEA,MAAA,qBAAqB,GAArF,SAAO,eAAe,UAAU,gBAtC5C,IAsC4EA,KAAZ,oBAAYA,KAAZ,CAApD,SAAsB;AAC9B,UAAM,WAAW,mBAAmB;AACpC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,YACE,CAAC,oBAAoB,OAAO,EAAE,GAAG,YAAY;AAAA,YAC7C,0BAA0B;AAAA,UAC5B;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,+BAAC,WACC;AAAA;AAAA,cAAC;AAAA,8DACK,UACA,OAFL;AAAA,gBAGC,SAAS,UAAU,EAAE,SAAS,eAAe,MAAM,CAAC;AAAA,gBACpD;AAAA,gBACA;AAAA,gBACA,MAAK;AAAA;AAAA,YACP;AAAA,YACA,oBAAC,UAAK,eAAW,MAAC,WAAU,8BAA6B;AAAA,YACxD,QAAQ,oBAAC,OAAE,WAAU,0BAA0B,iBAAM,IAAO;AAAA,aAC/D;AAAA,UACC,QAAQ,WAAW;AAAA;AAAA;AAAA,IACtB;AAAA,EAEJ;AACF;AAEA,YAAY,cAAc;","names":["_a"]}
@@ -9,6 +9,9 @@ export { TextareaProps_alias_2 as TextareaProps } from '../_tsup-dts-rollup';
9
9
  export { Checkbox_alias_2 as Checkbox } from '../_tsup-dts-rollup';
10
10
  export { CheckboxProps_alias_2 as CheckboxProps } from '../_tsup-dts-rollup';
11
11
  export { Radiobutton_alias_2 as Radiobutton } from '../_tsup-dts-rollup';
12
+ export { RadioGroup_alias_2 as RadioGroup } from '../_tsup-dts-rollup';
12
13
  export { RadiobuttonProps_alias_2 as RadiobuttonProps } from '../_tsup-dts-rollup';
14
+ export { RadioGroupProps_alias_2 as RadioGroupProps } from '../_tsup-dts-rollup';
15
+ export { useRadioGroupContext_alias_2 as useRadioGroupContext } from '../_tsup-dts-rollup';
13
16
  export { ErrorMessage_alias_2 as ErrorMessage } from '../_tsup-dts-rollup';
14
17
  export { ErrorMessageProps_alias_2 as ErrorMessageProps } from '../_tsup-dts-rollup';
@@ -9,6 +9,9 @@ export { TextareaProps_alias_2 as TextareaProps } from '../_tsup-dts-rollup';
9
9
  export { Checkbox_alias_2 as Checkbox } from '../_tsup-dts-rollup';
10
10
  export { CheckboxProps_alias_2 as CheckboxProps } from '../_tsup-dts-rollup';
11
11
  export { Radiobutton_alias_2 as Radiobutton } from '../_tsup-dts-rollup';
12
+ export { RadioGroup_alias_2 as RadioGroup } from '../_tsup-dts-rollup';
12
13
  export { RadiobuttonProps_alias_2 as RadiobuttonProps } from '../_tsup-dts-rollup';
14
+ export { RadioGroupProps_alias_2 as RadioGroupProps } from '../_tsup-dts-rollup';
15
+ export { useRadioGroupContext_alias_2 as useRadioGroupContext } from '../_tsup-dts-rollup';
13
16
  export { ErrorMessage_alias_2 as ErrorMessage } from '../_tsup-dts-rollup';
14
17
  export { ErrorMessageProps_alias_2 as ErrorMessageProps } from '../_tsup-dts-rollup';
@@ -53,6 +53,7 @@ __export(form_exports, {
53
53
  ErrorMessage: () => ErrorMessage,
54
54
  Fieldset: () => Fieldset,
55
55
  Input: () => Input,
56
+ RadioGroup: () => RadioGroup,
56
57
  Radiobutton: () => Radiobutton,
57
58
  Select: () => Select,
58
59
  Textarea: () => Textarea
@@ -316,13 +317,60 @@ var Checkbox = (0, import_react6.forwardRef)(
316
317
  Checkbox.displayName = "Checkbox";
317
318
 
318
319
  // src/form/radiobutton/radiobutton.tsx
319
- var import_react7 = require("react");
320
+ var import_react8 = require("react");
320
321
  var import_typed_classname8 = require("@postenbring/hedwig-css/typed-classname");
322
+
323
+ // src/form/radiobutton/radiogroup.tsx
324
+ var import_react7 = require("react");
321
325
  var import_jsx_runtime8 = require("react/jsx-runtime");
322
- var Radiobutton = (0, import_react7.forwardRef)(
326
+ var RadioGroupContext = (0, import_react7.createContext)({
327
+ hasError: false,
328
+ onChange: () => {
329
+ return void 0;
330
+ }
331
+ });
332
+ var useRadioGroupContext = () => (0, import_react7.useContext)(RadioGroupContext);
333
+ var RadioGroup = (0, import_react7.forwardRef)(function RadioGroup2(_a, ref) {
334
+ var _b = _a, { name, value, errorMessage, onChange, children } = _b, rest = __objRest(_b, ["name", "value", "errorMessage", "onChange", "children"]);
335
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(RadioGroupContext.Provider, { value: { name, value, hasError: Boolean(errorMessage), onChange }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Fieldset, __spreadProps(__spreadValues({ errorMessage }, rest), { ref, children })) });
336
+ });
337
+ RadioGroup.displayName = "RadioGroup";
338
+
339
+ // src/form/radiobutton/radiobutton.tsx
340
+ var import_jsx_runtime9 = require("react/jsx-runtime");
341
+ var isChecked = ({
342
+ checked,
343
+ selectedValue,
344
+ value
345
+ }) => {
346
+ if (typeof checked !== "undefined")
347
+ return checked;
348
+ if (typeof selectedValue !== "undefined")
349
+ return value === selectedValue;
350
+ return void 0;
351
+ };
352
+ var Radiobutton = (0, import_react8.forwardRef)(
323
353
  (_a, ref) => {
324
- var _b = _a, { variant = "plain", hasError, title, children, className } = _b, rest = __objRest(_b, ["variant", "hasError", "title", "children", "className"]);
325
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
354
+ var _b = _a, {
355
+ checked,
356
+ value,
357
+ variant = "plain",
358
+ hasError: hasErrorProp,
359
+ title,
360
+ children,
361
+ className
362
+ } = _b, rest = __objRest(_b, [
363
+ "checked",
364
+ "value",
365
+ "variant",
366
+ "hasError",
367
+ "title",
368
+ "children",
369
+ "className"
370
+ ]);
371
+ const _a2 = useRadioGroupContext(), { value: selectedValue, hasError: hasErrorContext } = _a2, context = __objRest(_a2, ["value", "hasError"]);
372
+ const hasError = hasErrorContext || hasErrorProp;
373
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
326
374
  "div",
327
375
  {
328
376
  className: (0, import_typed_classname8.clsx)(
@@ -334,10 +382,18 @@ var Radiobutton = (0, import_react7.forwardRef)(
334
382
  className
335
383
  ),
336
384
  children: [
337
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { children: [
338
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("input", __spreadProps(__spreadValues({}, rest), { ref, type: "radio" })),
339
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { "aria-hidden": true, className: "hds-radiobutton__checkmark" }),
340
- title ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "hds-radiobutton__title", children: title }) : children
385
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("label", { children: [
386
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
387
+ "input",
388
+ __spreadProps(__spreadValues(__spreadValues({}, context), rest), {
389
+ checked: isChecked({ checked, selectedValue, value }),
390
+ value,
391
+ ref,
392
+ type: "radio"
393
+ })
394
+ ),
395
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { "aria-hidden": true, className: "hds-radiobutton__checkmark" }),
396
+ title ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: "hds-radiobutton__title", children: title }) : children
341
397
  ] }),
342
398
  title ? children : null
343
399
  ]
@@ -352,6 +408,7 @@ Radiobutton.displayName = "Radiobutton";
352
408
  ErrorMessage,
353
409
  Fieldset,
354
410
  Input,
411
+ RadioGroup,
355
412
  Radiobutton,
356
413
  Select,
357
414
  Textarea
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/form/index.tsx","../../src/form/fieldset/fieldset.tsx","../../src/form/error-message/error-message.tsx","../../src/form/input/input.tsx","../../src/form/input-group/input-group.tsx","../../src/form/select/select.tsx","../../src/form/textarea/textarea.tsx","../../src/form/checkbox/checkbox.tsx","../../src/form/radiobutton/radiobutton.tsx"],"sourcesContent":["export * from \"./fieldset\";\nexport * from \"./input\";\nexport * from \"./select\";\nexport * from \"./textarea\";\nexport * from \"./checkbox\";\nexport * from \"./radiobutton\";\nexport * from \"./error-message\";\n","import { useId, forwardRef } from \"react\";\nimport type { FieldsetHTMLAttributes, HTMLAttributes, ReactNode, CSSProperties } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { ErrorMessage } from \"../error-message\";\n\nexport interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {\n className?: string;\n style?: CSSProperties;\n errorMessage?: ReactNode;\n legendProps?: HTMLAttributes<HTMLElement> & { size: \"default\" | \"large\" };\n legend: ReactNode;\n children: ReactNode;\n}\n\nexport const Fieldset = forwardRef<HTMLFieldSetElement, FieldsetProps>(function Fieldset(\n {\n className,\n style,\n errorMessage,\n legendProps: { size: legendSize = \"default\", className: legendClassName, ...legendProps } = {},\n legend,\n children,\n ...rest\n },\n ref,\n) {\n const errorMessageId = useId();\n\n return (\n <fieldset\n aria-describedby={errorMessage ? errorMessageId : undefined}\n aria-invalid={errorMessage ? true : undefined}\n className={clsx(\"hds-fieldset\", className as undefined)}\n ref={ref}\n style={style}\n {...rest}\n >\n <legend\n className={clsx(\n \"hds-fieldset__legend\",\n { [`hds-fieldset__legend--${legendSize}`]: legendSize },\n legendClassName as undefined,\n )}\n {...legendProps}\n >\n {legend}\n </legend>\n <div className={clsx(\"hds-fieldset__input-wrapper\")}>{children}</div>\n <ErrorMessage id={errorMessageId}>{errorMessage}</ErrorMessage>\n </fieldset>\n );\n});\n","import { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { ReactNode } from \"react\";\n\nexport interface ErrorMessageProps {\n children: ReactNode;\n id: string;\n className?: string;\n}\n\nexport function ErrorMessage({ children, id, className }: ErrorMessageProps) {\n return (\n <div\n aria-live=\"assertive\"\n className={clsx(\"hds-error-message\", className as undefined)}\n id={id}\n >\n {children}\n </div>\n );\n}\n","import { forwardRef } from \"react\";\nimport type { InputHTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { InputGroup } from \"../input-group\";\nimport type { InputGroupProps } from \"../input-group\";\n\nexport type InputProps = Omit<InputGroupProps & InputHTMLAttributes<HTMLInputElement>, \"children\">;\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n { className, variant, errorMessage, labelProps, label, id, style, disabled, readOnly, ...rest },\n ref,\n) {\n return (\n <InputGroup\n className={clsx(\"hds-input\", className as undefined)}\n disabled={disabled}\n errorMessage={errorMessage}\n id={id}\n label={label}\n labelProps={labelProps}\n readOnly={readOnly}\n style={style}\n variant={variant}\n >\n <input {...rest} disabled={disabled} readOnly={readOnly} ref={ref} />\n </InputGroup>\n );\n});\n\nInput.displayName = \"Input\";\n","import { useId, forwardRef, Children, isValidElement, cloneElement } from \"react\";\nimport type { LabelHTMLAttributes, ReactNode, CSSProperties } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { ErrorMessage } from \"../error-message\";\n\ninterface InputProps {\n \"aria-describedby\"?: string;\n \"aria-invalid\"?: boolean;\n id?: string;\n className?: string;\n}\n\nexport interface InputGroupProps {\n id?: string;\n className?: string;\n style?: CSSProperties;\n variant?: \"default\" | \"white\";\n errorMessage?: ReactNode;\n labelProps?: LabelHTMLAttributes<HTMLLabelElement>;\n label: ReactNode;\n disabled?: boolean;\n readOnly?: boolean;\n children: ReactNode;\n}\n\nexport const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n {\n id,\n className,\n style,\n variant = \"default\",\n errorMessage,\n labelProps: { className: labelClassName, ...labelProps } = {},\n label,\n disabled,\n readOnly,\n children,\n ...rest\n },\n ref,\n) {\n const errorMessageId = useId();\n const inputId = useId();\n\n const renderInput = () => {\n const input = Children.toArray(children)[0];\n\n if (!isValidElement<InputProps>(input)) {\n return;\n }\n\n return cloneElement<InputProps>(input, {\n \"aria-describedby\": errorMessage ? errorMessageId : undefined,\n \"aria-invalid\": errorMessage ? true : undefined,\n id: id ?? inputId,\n ...input.props,\n className: clsx(\"hds-input-group__input\", input.props.className as undefined),\n });\n };\n\n return (\n <div\n className={clsx(\n \"hds-input-group\",\n {\n [`hds-input-group--${variant}`]: variant,\n \"hds-input-group--error\": errorMessage,\n },\n className as undefined,\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n <label\n className={clsx(\"hds-input-group__label\", labelClassName as undefined)}\n {...labelProps}\n htmlFor={id ?? inputId}\n >\n {label}\n </label>\n <div\n className={clsx(\"hds-input-group__input-wrapper\")}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n {renderInput()}\n </div>\n <ErrorMessage id={errorMessageId}>{errorMessage}</ErrorMessage>\n </div>\n );\n});\n","import { forwardRef } from \"react\";\nimport type { SelectHTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { InputGroup } from \"../input-group\";\nimport type { InputGroupProps } from \"../input-group\";\n\nexport type SelectProps = Omit<\n InputGroupProps & SelectHTMLAttributes<HTMLSelectElement>,\n \"readOnly\"\n>;\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(function Select(\n { className, variant, errorMessage, labelProps, label, id, style, disabled, children, ...rest },\n ref,\n) {\n return (\n <InputGroup\n className={clsx(\"hds-select\", className as undefined)}\n disabled={disabled}\n errorMessage={errorMessage}\n id={id}\n label={label}\n labelProps={labelProps}\n style={style}\n variant={variant}\n >\n <select {...rest} disabled={disabled} ref={ref}>\n {children}\n </select>\n </InputGroup>\n );\n});\n\nSelect.displayName = \"Select\";\n","import { forwardRef } from \"react\";\nimport type { TextareaHTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { InputGroup } from \"../input-group\";\nimport type { InputGroupProps } from \"../input-group\";\n\nexport type TextareaProps = Omit<\n InputGroupProps & TextareaHTMLAttributes<HTMLTextAreaElement>,\n \"children\"\n>;\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(\n { className, variant, errorMessage, labelProps, label, id, style, disabled, readOnly, ...rest },\n ref,\n) {\n return (\n <InputGroup\n className={clsx(\"hds-textarea\", className as undefined)}\n disabled={disabled}\n errorMessage={errorMessage}\n id={id}\n label={label}\n labelProps={labelProps}\n readOnly={readOnly}\n style={style}\n variant={variant}\n >\n <textarea {...rest} disabled={disabled} readOnly={readOnly} ref={ref} />\n </InputGroup>\n );\n});\n\nTextarea.displayName = \"Textarea\";\n","import type { InputHTMLAttributes } from \"react\";\nimport React, { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"defaultValue\"> {\n variant?: \"plain\" | \"bounding-box\";\n hasError?: boolean;\n title?: string;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ variant = \"plain\", hasError, title, children, className, ...rest }, ref) => {\n return (\n <div\n className={clsx(\n \"hds-checkbox\",\n {\n [`hds-checkbox--${variant}`]: variant === \"bounding-box\",\n \"hds-checkbox--error\": hasError,\n },\n className as undefined,\n )}\n >\n <label>\n <input {...rest} aria-invalid={hasError ? true : undefined} ref={ref} type=\"checkbox\" />\n <span aria-hidden className=\"hds-checkbox__checkmark\" />\n {title ? <p className=\"hds-checkbox__title\">{title}</p> : children}\n </label>\n {title ? children : null}\n </div>\n );\n },\n);\nCheckbox.displayName = \"Checkbox\";\n","import type { InputHTMLAttributes } from \"react\";\nimport React, { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface RadiobuttonProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"defaultValue\"> {\n variant?: \"plain\" | \"bounding-box\";\n hasError?: boolean;\n title?: string;\n}\n\nexport const Radiobutton = forwardRef<HTMLInputElement, RadiobuttonProps>(\n ({ variant = \"plain\", hasError, title, children, className, ...rest }, ref) => {\n return (\n <div\n className={clsx(\n \"hds-radiobutton\",\n {\n [`hds-radiobutton--${variant}`]: variant === \"bounding-box\",\n \"hds-radiobutton--error\": hasError,\n },\n className as undefined,\n )}\n >\n <label>\n <input {...rest} ref={ref} type=\"radio\" />\n <span aria-hidden className=\"hds-radiobutton__checkmark\" />\n {title ? <p className=\"hds-radiobutton__title\">{title}</p> : children}\n </label>\n {title ? children : null}\n </div>\n );\n },\n);\nRadiobutton.displayName = \"Radiobutton\";\n"],"mappings":"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","names":["import_typed_classname","import_jsx_runtime","Fieldset","import_react","import_typed_classname","import_react","import_typed_classname","import_jsx_runtime","InputGroup","import_jsx_runtime","Input","import_react","import_typed_classname","import_jsx_runtime","Select","import_react","import_typed_classname","import_jsx_runtime","Textarea","import_react","import_typed_classname","import_jsx_runtime","import_react","import_typed_classname","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/form/index.tsx","../../src/form/fieldset/fieldset.tsx","../../src/form/error-message/error-message.tsx","../../src/form/input/input.tsx","../../src/form/input-group/input-group.tsx","../../src/form/select/select.tsx","../../src/form/textarea/textarea.tsx","../../src/form/checkbox/checkbox.tsx","../../src/form/radiobutton/radiobutton.tsx","../../src/form/radiobutton/radiogroup.tsx"],"sourcesContent":["export * from \"./fieldset\";\nexport * from \"./input\";\nexport * from \"./select\";\nexport * from \"./textarea\";\nexport * from \"./checkbox\";\nexport * from \"./radiobutton\";\nexport * from \"./error-message\";\n","import { useId, forwardRef } from \"react\";\nimport type { FieldsetHTMLAttributes, HTMLAttributes, ReactNode, CSSProperties } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { ErrorMessage } from \"../error-message\";\n\nexport interface FieldsetProps extends FieldsetHTMLAttributes<HTMLFieldSetElement> {\n className?: string;\n style?: CSSProperties;\n errorMessage?: ReactNode;\n legendProps?: HTMLAttributes<HTMLElement> & { size: \"default\" | \"large\" };\n legend: ReactNode;\n children: ReactNode;\n}\n\nexport const Fieldset = forwardRef<HTMLFieldSetElement, FieldsetProps>(function Fieldset(\n {\n className,\n style,\n errorMessage,\n legendProps: { size: legendSize = \"default\", className: legendClassName, ...legendProps } = {},\n legend,\n children,\n ...rest\n },\n ref,\n) {\n const errorMessageId = useId();\n\n return (\n <fieldset\n aria-describedby={errorMessage ? errorMessageId : undefined}\n aria-invalid={errorMessage ? true : undefined}\n className={clsx(\"hds-fieldset\", className as undefined)}\n ref={ref}\n style={style}\n {...rest}\n >\n <legend\n className={clsx(\n \"hds-fieldset__legend\",\n { [`hds-fieldset__legend--${legendSize}`]: legendSize },\n legendClassName as undefined,\n )}\n {...legendProps}\n >\n {legend}\n </legend>\n <div className={clsx(\"hds-fieldset__input-wrapper\")}>{children}</div>\n <ErrorMessage id={errorMessageId}>{errorMessage}</ErrorMessage>\n </fieldset>\n );\n});\n","import { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport type { ReactNode } from \"react\";\n\nexport interface ErrorMessageProps {\n children: ReactNode;\n id: string;\n className?: string;\n}\n\nexport function ErrorMessage({ children, id, className }: ErrorMessageProps) {\n return (\n <div\n aria-live=\"assertive\"\n className={clsx(\"hds-error-message\", className as undefined)}\n id={id}\n >\n {children}\n </div>\n );\n}\n","import { forwardRef } from \"react\";\nimport type { InputHTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { InputGroup } from \"../input-group\";\nimport type { InputGroupProps } from \"../input-group\";\n\nexport type InputProps = Omit<InputGroupProps & InputHTMLAttributes<HTMLInputElement>, \"children\">;\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n { className, variant, errorMessage, labelProps, label, id, style, disabled, readOnly, ...rest },\n ref,\n) {\n return (\n <InputGroup\n className={clsx(\"hds-input\", className as undefined)}\n disabled={disabled}\n errorMessage={errorMessage}\n id={id}\n label={label}\n labelProps={labelProps}\n readOnly={readOnly}\n style={style}\n variant={variant}\n >\n <input {...rest} disabled={disabled} readOnly={readOnly} ref={ref} />\n </InputGroup>\n );\n});\n\nInput.displayName = \"Input\";\n","import { useId, forwardRef, Children, isValidElement, cloneElement } from \"react\";\nimport type { LabelHTMLAttributes, ReactNode, CSSProperties } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { ErrorMessage } from \"../error-message\";\n\ninterface InputProps {\n \"aria-describedby\"?: string;\n \"aria-invalid\"?: boolean;\n id?: string;\n className?: string;\n}\n\nexport interface InputGroupProps {\n id?: string;\n className?: string;\n style?: CSSProperties;\n variant?: \"default\" | \"white\";\n errorMessage?: ReactNode;\n labelProps?: LabelHTMLAttributes<HTMLLabelElement>;\n label: ReactNode;\n disabled?: boolean;\n readOnly?: boolean;\n children: ReactNode;\n}\n\nexport const InputGroup = forwardRef<HTMLDivElement, InputGroupProps>(function InputGroup(\n {\n id,\n className,\n style,\n variant = \"default\",\n errorMessage,\n labelProps: { className: labelClassName, ...labelProps } = {},\n label,\n disabled,\n readOnly,\n children,\n ...rest\n },\n ref,\n) {\n const errorMessageId = useId();\n const inputId = useId();\n\n const renderInput = () => {\n const input = Children.toArray(children)[0];\n\n if (!isValidElement<InputProps>(input)) {\n return;\n }\n\n return cloneElement<InputProps>(input, {\n \"aria-describedby\": errorMessage ? errorMessageId : undefined,\n \"aria-invalid\": errorMessage ? true : undefined,\n id: id ?? inputId,\n ...input.props,\n className: clsx(\"hds-input-group__input\", input.props.className as undefined),\n });\n };\n\n return (\n <div\n className={clsx(\n \"hds-input-group\",\n {\n [`hds-input-group--${variant}`]: variant,\n \"hds-input-group--error\": errorMessage,\n },\n className as undefined,\n )}\n ref={ref}\n style={style}\n {...rest}\n >\n <label\n className={clsx(\"hds-input-group__label\", labelClassName as undefined)}\n {...labelProps}\n htmlFor={id ?? inputId}\n >\n {label}\n </label>\n <div\n className={clsx(\"hds-input-group__input-wrapper\")}\n data-disabled={disabled}\n data-readonly={readOnly}\n >\n {renderInput()}\n </div>\n <ErrorMessage id={errorMessageId}>{errorMessage}</ErrorMessage>\n </div>\n );\n});\n","import { forwardRef } from \"react\";\nimport type { SelectHTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { InputGroup } from \"../input-group\";\nimport type { InputGroupProps } from \"../input-group\";\n\nexport type SelectProps = Omit<\n InputGroupProps & SelectHTMLAttributes<HTMLSelectElement>,\n \"readOnly\"\n>;\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(function Select(\n { className, variant, errorMessage, labelProps, label, id, style, disabled, children, ...rest },\n ref,\n) {\n return (\n <InputGroup\n className={clsx(\"hds-select\", className as undefined)}\n disabled={disabled}\n errorMessage={errorMessage}\n id={id}\n label={label}\n labelProps={labelProps}\n style={style}\n variant={variant}\n >\n <select {...rest} disabled={disabled} ref={ref}>\n {children}\n </select>\n </InputGroup>\n );\n});\n\nSelect.displayName = \"Select\";\n","import { forwardRef } from \"react\";\nimport type { TextareaHTMLAttributes } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { InputGroup } from \"../input-group\";\nimport type { InputGroupProps } from \"../input-group\";\n\nexport type TextareaProps = Omit<\n InputGroupProps & TextareaHTMLAttributes<HTMLTextAreaElement>,\n \"children\"\n>;\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(function Textarea(\n { className, variant, errorMessage, labelProps, label, id, style, disabled, readOnly, ...rest },\n ref,\n) {\n return (\n <InputGroup\n className={clsx(\"hds-textarea\", className as undefined)}\n disabled={disabled}\n errorMessage={errorMessage}\n id={id}\n label={label}\n labelProps={labelProps}\n readOnly={readOnly}\n style={style}\n variant={variant}\n >\n <textarea {...rest} disabled={disabled} readOnly={readOnly} ref={ref} />\n </InputGroup>\n );\n});\n\nTextarea.displayName = \"Textarea\";\n","import type { InputHTMLAttributes } from \"react\";\nimport React, { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"defaultValue\"> {\n variant?: \"plain\" | \"bounding-box\";\n hasError?: boolean;\n title?: string;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n ({ variant = \"plain\", hasError, title, children, className, ...rest }, ref) => {\n return (\n <div\n className={clsx(\n \"hds-checkbox\",\n {\n [`hds-checkbox--${variant}`]: variant === \"bounding-box\",\n \"hds-checkbox--error\": hasError,\n },\n className as undefined,\n )}\n >\n <label>\n <input {...rest} aria-invalid={hasError ? true : undefined} ref={ref} type=\"checkbox\" />\n <span aria-hidden className=\"hds-checkbox__checkmark\" />\n {title ? <p className=\"hds-checkbox__title\">{title}</p> : children}\n </label>\n {title ? children : null}\n </div>\n );\n },\n);\nCheckbox.displayName = \"Checkbox\";\n","import type { InputHTMLAttributes } from \"react\";\nimport React, { forwardRef } from \"react\";\nimport { clsx } from \"@postenbring/hedwig-css/typed-classname\";\nimport { type RadioGroupProps, useRadioGroupContext } from \"./radiogroup\";\n\nexport interface RadiobuttonProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"defaultValue\"> {\n variant?: \"plain\" | \"bounding-box\";\n hasError?: boolean;\n title?: string;\n}\n\nconst isChecked = ({\n checked,\n selectedValue,\n value,\n}: Pick<RadiobuttonProps, \"checked\" | \"value\"> & {\n selectedValue: RadioGroupProps[\"value\"];\n}) => {\n if (typeof checked !== \"undefined\") return checked;\n if (typeof selectedValue !== \"undefined\") return value === selectedValue;\n return undefined;\n};\n\nexport const Radiobutton = forwardRef<HTMLInputElement, RadiobuttonProps>(\n (\n {\n checked,\n value,\n variant = \"plain\",\n hasError: hasErrorProp,\n title,\n children,\n className,\n ...rest\n },\n ref,\n ) => {\n const { value: selectedValue, hasError: hasErrorContext, ...context } = useRadioGroupContext();\n const hasError = hasErrorContext || hasErrorProp;\n return (\n <div\n className={clsx(\n \"hds-radiobutton\",\n {\n [`hds-radiobutton--${variant}`]: variant === \"bounding-box\",\n \"hds-radiobutton--error\": hasError,\n },\n className as undefined,\n )}\n >\n <label>\n <input\n {...context}\n {...rest}\n checked={isChecked({ checked, selectedValue, value })}\n value={value}\n ref={ref}\n type=\"radio\"\n />\n <span aria-hidden className=\"hds-radiobutton__checkmark\" />\n {title ? <p className=\"hds-radiobutton__title\">{title}</p> : children}\n </label>\n {title ? children : null}\n </div>\n );\n },\n);\n\nRadiobutton.displayName = \"Radiobutton\";\n","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 /** 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,\n * and also marks all radiobuttons as invalid\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":"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","names":["import_typed_classname","import_jsx_runtime","Fieldset","import_react","import_typed_classname","import_react","import_typed_classname","import_jsx_runtime","InputGroup","import_jsx_runtime","Input","import_react","import_typed_classname","import_jsx_runtime","Select","import_react","import_typed_classname","import_jsx_runtime","Textarea","import_react","import_typed_classname","import_jsx_runtime","import_react","import_typed_classname","import_react","import_jsx_runtime","RadioGroup","import_jsx_runtime","_a"]}
@@ -1,8 +1,11 @@
1
1
  import "../chunk-T24JZIQO.mjs";
2
- import "../chunk-MQ3EEUTP.mjs";
2
+ import "../chunk-2KX7VFN2.mjs";
3
3
  import {
4
4
  Radiobutton
5
- } from "../chunk-SEKRICE4.mjs";
5
+ } from "../chunk-WGVZWX5L.mjs";
6
+ import {
7
+ RadioGroup
8
+ } from "../chunk-V4NGUB4I.mjs";
6
9
  import "../chunk-BYEJZSG5.mjs";
7
10
  import {
8
11
  Select
@@ -11,6 +14,7 @@ import "../chunk-AGZHQDCQ.mjs";
11
14
  import {
12
15
  Textarea
13
16
  } from "../chunk-RK6BB3HH.mjs";
17
+ import "../chunk-YJOOSTJC.mjs";
14
18
  import "../chunk-LMF3QGSF.mjs";
15
19
  import {
16
20
  Fieldset
@@ -25,7 +29,6 @@ import "../chunk-NSLSA7F7.mjs";
25
29
  import {
26
30
  ErrorMessage
27
31
  } from "../chunk-IL7576PP.mjs";
28
- import "../chunk-YJOOSTJC.mjs";
29
32
  import {
30
33
  Checkbox
31
34
  } from "../chunk-PXHYOQPB.mjs";
@@ -35,6 +38,7 @@ export {
35
38
  ErrorMessage,
36
39
  Fieldset,
37
40
  Input,
41
+ RadioGroup,
38
42
  Radiobutton,
39
43
  Select,
40
44
  Textarea
@@ -1,2 +1,5 @@
1
1
  export { Radiobutton_alias_3 as Radiobutton } from '../../_tsup-dts-rollup';
2
+ export { RadioGroup_alias_3 as RadioGroup } from '../../_tsup-dts-rollup';
2
3
  export { RadiobuttonProps_alias_3 as RadiobuttonProps } from '../../_tsup-dts-rollup';
4
+ export { RadioGroupProps_alias_3 as RadioGroupProps } from '../../_tsup-dts-rollup';
5
+ export { useRadioGroupContext_alias_3 as useRadioGroupContext } from '../../_tsup-dts-rollup';
@@ -1,2 +1,5 @@
1
1
  export { Radiobutton_alias_3 as Radiobutton } from '../../_tsup-dts-rollup';
2
+ export { RadioGroup_alias_3 as RadioGroup } from '../../_tsup-dts-rollup';
2
3
  export { RadiobuttonProps_alias_3 as RadiobuttonProps } from '../../_tsup-dts-rollup';
4
+ export { RadioGroupProps_alias_3 as RadioGroupProps } from '../../_tsup-dts-rollup';
5
+ export { useRadioGroupContext_alias_3 as useRadioGroupContext } from '../../_tsup-dts-rollup';