@postenbring/hedwig-react 1.2.2 → 1.3.1

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 (171) hide show
  1. package/dist/accordion/accordion-content.d.ts.map +1 -1
  2. package/dist/accordion/accordion-content.js +0 -1
  3. package/dist/accordion/accordion-content.js.map +1 -1
  4. package/dist/accordion/accordion-content.mjs +1 -1
  5. package/dist/accordion/accordion.js +0 -1
  6. package/dist/accordion/accordion.js.map +1 -1
  7. package/dist/accordion/accordion.mjs +2 -2
  8. package/dist/accordion/index.js +0 -1
  9. package/dist/accordion/index.js.map +1 -1
  10. package/dist/accordion/index.mjs +2 -2
  11. package/dist/{chunk-JZXZYEPG.mjs → chunk-5FWY7FIX.mjs} +1 -2
  12. package/dist/chunk-5FWY7FIX.mjs.map +1 -0
  13. package/dist/{chunk-ROQH67YP.mjs → chunk-6DWIJEHQ.mjs} +2 -2
  14. package/dist/{chunk-6BXKRPR3.mjs → chunk-AXEAIXG7.mjs} +2 -2
  15. package/dist/{chunk-QRGGURVO.mjs → chunk-BO3EWZGA.mjs} +6 -4
  16. package/dist/chunk-BO3EWZGA.mjs.map +1 -0
  17. package/dist/{chunk-TWUAXAMR.mjs → chunk-BYFBK3J7.mjs} +1 -1
  18. package/dist/chunk-BYFBK3J7.mjs.map +1 -0
  19. package/dist/chunk-CKAL5ZJZ.mjs +45 -0
  20. package/dist/chunk-CKAL5ZJZ.mjs.map +1 -0
  21. package/dist/{chunk-CXX4SXJG.mjs → chunk-CKG2XRMX.mjs} +2 -2
  22. package/dist/{chunk-YS7HBWOI.mjs → chunk-E6OOFTRQ.mjs} +2 -2
  23. package/dist/{chunk-WUPLEZEY.mjs → chunk-GVO57ZWU.mjs} +2 -2
  24. package/dist/{chunk-UL2V2Z5B.mjs → chunk-HEDGKRGC.mjs} +3 -3
  25. package/dist/chunk-IJSEJZ3W.mjs +1 -0
  26. package/dist/{chunk-S3QSGJX2.mjs → chunk-ITLZQ47H.mjs} +2 -2
  27. package/dist/{chunk-NIYDN3Y3.mjs → chunk-JEAGKB4V.mjs} +2 -2
  28. package/dist/{chunk-Z2TMKU5V.mjs → chunk-KNGG6M2I.mjs} +5 -5
  29. package/dist/chunk-KPPLVGZ3.mjs +1 -0
  30. package/dist/chunk-KPPLVGZ3.mjs.map +1 -0
  31. package/dist/{chunk-CC5QWW52.mjs → chunk-LHIG6RW7.mjs} +2 -2
  32. package/dist/chunk-LHIG6RW7.mjs.map +1 -0
  33. package/dist/chunk-VU2GCAM4.mjs +81 -0
  34. package/dist/chunk-VU2GCAM4.mjs.map +1 -0
  35. package/dist/{chunk-5UGT7L7R.mjs → chunk-XZ43OSZ5.mjs} +5 -3
  36. package/dist/chunk-XZ43OSZ5.mjs.map +1 -0
  37. package/dist/{chunk-JQGB77SS.mjs → chunk-Z2ZPTZ6F.mjs} +5 -3
  38. package/dist/chunk-Z2ZPTZ6F.mjs.map +1 -0
  39. package/dist/footer/footer.js +0 -1
  40. package/dist/footer/footer.js.map +1 -1
  41. package/dist/footer/footer.mjs +3 -3
  42. package/dist/footer/index.js +0 -1
  43. package/dist/footer/index.js.map +1 -1
  44. package/dist/footer/index.mjs +3 -3
  45. package/dist/form/checkbox/checkbox.d.ts +2 -0
  46. package/dist/form/checkbox/checkbox.d.ts.map +1 -1
  47. package/dist/form/checkbox/checkbox.js +7 -3
  48. package/dist/form/checkbox/checkbox.js.map +1 -1
  49. package/dist/form/checkbox/checkbox.mjs +3 -3
  50. package/dist/form/checkbox/index.js +7 -3
  51. package/dist/form/checkbox/index.js.map +1 -1
  52. package/dist/form/checkbox/index.mjs +3 -3
  53. package/dist/form/date-picker/date-picker.js +4 -2
  54. package/dist/form/date-picker/date-picker.js.map +1 -1
  55. package/dist/form/date-picker/date-picker.mjs +3 -3
  56. package/dist/form/date-picker/index.js +4 -2
  57. package/dist/form/date-picker/index.js.map +1 -1
  58. package/dist/form/date-picker/index.mjs +3 -3
  59. package/dist/form/error-message/error-message.js +1 -1
  60. package/dist/form/error-message/error-message.js.map +1 -1
  61. package/dist/form/error-message/error-message.mjs +1 -1
  62. package/dist/form/error-message/index.js +1 -1
  63. package/dist/form/error-message/index.js.map +1 -1
  64. package/dist/form/error-message/index.mjs +1 -1
  65. package/dist/form/error-summary/error-summary.d.ts +65 -0
  66. package/dist/form/error-summary/error-summary.d.ts.map +1 -0
  67. package/dist/form/error-summary/error-summary.js +379 -0
  68. package/dist/form/error-summary/error-summary.js.map +1 -0
  69. package/dist/form/error-summary/error-summary.mjs +26 -0
  70. package/dist/form/error-summary/error-summary.mjs.map +1 -0
  71. package/dist/form/error-summary/focus.d.ts +9 -0
  72. package/dist/form/error-summary/focus.d.ts.map +1 -0
  73. package/dist/form/error-summary/focus.js +69 -0
  74. package/dist/form/error-summary/focus.js.map +1 -0
  75. package/dist/form/error-summary/focus.mjs +8 -0
  76. package/dist/form/error-summary/focus.mjs.map +1 -0
  77. package/dist/form/error-summary/index.d.ts +3 -0
  78. package/dist/form/error-summary/index.d.ts.map +1 -0
  79. package/dist/form/error-summary/index.js +375 -0
  80. package/dist/form/error-summary/index.js.map +1 -0
  81. package/dist/form/error-summary/index.mjs +21 -0
  82. package/dist/form/error-summary/index.mjs.map +1 -0
  83. package/dist/form/fieldset/fieldset.d.ts +2 -0
  84. package/dist/form/fieldset/fieldset.d.ts.map +1 -1
  85. package/dist/form/fieldset/fieldset.js +4 -2
  86. package/dist/form/fieldset/fieldset.js.map +1 -1
  87. package/dist/form/fieldset/fieldset.mjs +2 -2
  88. package/dist/form/fieldset/index.js +4 -2
  89. package/dist/form/fieldset/index.js.map +1 -1
  90. package/dist/form/fieldset/index.mjs +2 -2
  91. package/dist/form/index.d.ts +1 -0
  92. package/dist/form/index.d.ts.map +1 -1
  93. package/dist/form/index.js +333 -39
  94. package/dist/form/index.js.map +1 -1
  95. package/dist/form/index.mjs +29 -13
  96. package/dist/form/input/index.js +4 -2
  97. package/dist/form/input/index.js.map +1 -1
  98. package/dist/form/input/index.mjs +3 -3
  99. package/dist/form/input/input.js +4 -2
  100. package/dist/form/input/input.js.map +1 -1
  101. package/dist/form/input/input.mjs +3 -3
  102. package/dist/form/input-group/index.js +4 -2
  103. package/dist/form/input-group/index.js.map +1 -1
  104. package/dist/form/input-group/index.mjs +2 -2
  105. package/dist/form/input-group/input-group.d.ts +2 -0
  106. package/dist/form/input-group/input-group.d.ts.map +1 -1
  107. package/dist/form/input-group/input-group.js +4 -2
  108. package/dist/form/input-group/input-group.js.map +1 -1
  109. package/dist/form/input-group/input-group.mjs +2 -2
  110. package/dist/form/radio-button/index.js +4 -2
  111. package/dist/form/radio-button/index.js.map +1 -1
  112. package/dist/form/radio-button/index.mjs +4 -4
  113. package/dist/form/radio-button/radio-button.js +4 -2
  114. package/dist/form/radio-button/radio-button.js.map +1 -1
  115. package/dist/form/radio-button/radio-button.mjs +4 -4
  116. package/dist/form/radio-button/radio-group.js +4 -2
  117. package/dist/form/radio-button/radio-group.js.map +1 -1
  118. package/dist/form/radio-button/radio-group.mjs +3 -3
  119. package/dist/form/select/index.js +4 -2
  120. package/dist/form/select/index.js.map +1 -1
  121. package/dist/form/select/index.mjs +3 -3
  122. package/dist/form/select/select.js +4 -2
  123. package/dist/form/select/select.js.map +1 -1
  124. package/dist/form/select/select.mjs +3 -3
  125. package/dist/form/textarea/index.js +4 -2
  126. package/dist/form/textarea/index.js.map +1 -1
  127. package/dist/form/textarea/index.mjs +3 -3
  128. package/dist/form/textarea/textarea.js +4 -2
  129. package/dist/form/textarea/textarea.js.map +1 -1
  130. package/dist/form/textarea/textarea.mjs +3 -3
  131. package/dist/index.js +573 -474
  132. package/dist/index.js.map +1 -1
  133. package/dist/index.mjs +49 -43
  134. package/dist/layout/index.mjs +3 -3
  135. package/dist/message/index.js.map +1 -1
  136. package/dist/message/index.mjs +1 -1
  137. package/dist/message/message.d.ts +2 -2
  138. package/dist/message/message.d.ts.map +1 -1
  139. package/dist/message/message.js.map +1 -1
  140. package/dist/message/message.mjs +1 -1
  141. package/dist/tabs/index.mjs +5 -5
  142. package/dist/tabs/tabs.mjs +2 -2
  143. package/package.json +5 -5
  144. package/src/accordion/accordion-content.tsx +0 -1
  145. package/src/form/checkbox/checkbox.tsx +6 -2
  146. package/src/form/error-message/error-message.tsx +1 -1
  147. package/src/form/error-summary/error-summary.stories.tsx +29 -0
  148. package/src/form/error-summary/error-summary.tsx +151 -0
  149. package/src/form/error-summary/focus.ts +66 -0
  150. package/src/form/error-summary/index.tsx +2 -0
  151. package/src/form/fieldset/fieldset.tsx +6 -2
  152. package/src/form/index.tsx +1 -0
  153. package/src/form/input-group/input-group.tsx +6 -2
  154. package/src/message/message.tsx +2 -2
  155. package/dist/chunk-5UGT7L7R.mjs.map +0 -1
  156. package/dist/chunk-CC5QWW52.mjs.map +0 -1
  157. package/dist/chunk-JQGB77SS.mjs.map +0 -1
  158. package/dist/chunk-JZXZYEPG.mjs.map +0 -1
  159. package/dist/chunk-QRGGURVO.mjs.map +0 -1
  160. package/dist/chunk-TWUAXAMR.mjs.map +0 -1
  161. package/dist/chunk-XFKD6EEJ.mjs +0 -1
  162. /package/dist/{chunk-ROQH67YP.mjs.map → chunk-6DWIJEHQ.mjs.map} +0 -0
  163. /package/dist/{chunk-6BXKRPR3.mjs.map → chunk-AXEAIXG7.mjs.map} +0 -0
  164. /package/dist/{chunk-CXX4SXJG.mjs.map → chunk-CKG2XRMX.mjs.map} +0 -0
  165. /package/dist/{chunk-YS7HBWOI.mjs.map → chunk-E6OOFTRQ.mjs.map} +0 -0
  166. /package/dist/{chunk-WUPLEZEY.mjs.map → chunk-GVO57ZWU.mjs.map} +0 -0
  167. /package/dist/{chunk-UL2V2Z5B.mjs.map → chunk-HEDGKRGC.mjs.map} +0 -0
  168. /package/dist/{chunk-XFKD6EEJ.mjs.map → chunk-IJSEJZ3W.mjs.map} +0 -0
  169. /package/dist/{chunk-S3QSGJX2.mjs.map → chunk-ITLZQ47H.mjs.map} +0 -0
  170. /package/dist/{chunk-NIYDN3Y3.mjs.map → chunk-JEAGKB4V.mjs.map} +0 -0
  171. /package/dist/{chunk-Z2TMKU5V.mjs.map → chunk-KNGG6M2I.mjs.map} +0 -0
@@ -62,6 +62,7 @@ __export(form_exports, {
62
62
  Checkbox: () => Checkbox,
63
63
  DatePicker: () => DatePicker,
64
64
  ErrorMessage: () => ErrorMessage,
65
+ ErrorSummary: () => ErrorSummary,
65
66
  Fieldset: () => Fieldset,
66
67
  Input: () => Input,
67
68
  RadioButton: () => RadioButton,
@@ -87,7 +88,7 @@ var ErrorMessage = (0, import_react.forwardRef)(
87
88
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
88
89
  "div",
89
90
  __spreadProps(__spreadValues({
90
- "aria-live": "assertive",
91
+ "aria-live": "polite",
91
92
  className: (0, import_typed_classname.clsx)("hds-error-message", className),
92
93
  id,
93
94
  ref
@@ -110,6 +111,7 @@ var Fieldset = (0, import_react2.forwardRef)(function Fieldset2(_a, ref) {
110
111
  className,
111
112
  style,
112
113
  errorMessage,
114
+ errorMessageProps,
113
115
  legendProps: _c = {}
114
116
  } = _b, _d = _c, { size: legendSize = "default", className: legendClassName } = _d, legendProps = __objRest(_d, ["size", "className"]), _e = _b, {
115
117
  legend,
@@ -118,6 +120,7 @@ var Fieldset = (0, import_react2.forwardRef)(function Fieldset2(_a, ref) {
118
120
  "className",
119
121
  "style",
120
122
  "errorMessage",
123
+ "errorMessageProps",
121
124
  "legendProps",
122
125
  "legend",
123
126
  "children"
@@ -146,7 +149,7 @@ var Fieldset = (0, import_react2.forwardRef)(function Fieldset2(_a, ref) {
146
149
  })
147
150
  ),
148
151
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(FieldsetContext.Provider, { value: { hasError: Boolean(errorMessage) }, children }),
149
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ErrorMessage, { id: errorMessageId, children: errorMessage })
152
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ErrorMessage, __spreadProps(__spreadValues({ id: errorMessageId }, errorMessageProps), { children: errorMessage }))
150
153
  ]
151
154
  })
152
155
  );
@@ -160,6 +163,7 @@ var Checkbox = (0, import_react3.forwardRef)(
160
163
  variant = "plain",
161
164
  hasError: hasErrorProp,
162
165
  errorMessage,
166
+ errorMessageProps,
163
167
  title,
164
168
  children,
165
169
  className
@@ -167,6 +171,7 @@ var Checkbox = (0, import_react3.forwardRef)(
167
171
  "variant",
168
172
  "hasError",
169
173
  "errorMessage",
174
+ "errorMessageProps",
170
175
  "title",
171
176
  "children",
172
177
  "className"
@@ -204,7 +209,7 @@ var Checkbox = (0, import_react3.forwardRef)(
204
209
  ]
205
210
  }
206
211
  ),
207
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ErrorMessage, { id: errorMessageId, children: errorMessage })
212
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ErrorMessage, __spreadProps(__spreadValues({ id: errorMessageId }, errorMessageProps), { children: errorMessage }))
208
213
  ] });
209
214
  }
210
215
  );
@@ -225,6 +230,7 @@ var InputGroup = (0, import_react4.forwardRef)(function InputGroup2(_a, ref) {
225
230
  style,
226
231
  variant = "default",
227
232
  errorMessage,
233
+ errorMessageProps,
228
234
  labelProps: _c = {}
229
235
  } = _b, _d = _c, { className: labelClassName } = _d, labelProps = __objRest(_d, ["className"]), _e = _b, {
230
236
  label,
@@ -237,6 +243,7 @@ var InputGroup = (0, import_react4.forwardRef)(function InputGroup2(_a, ref) {
237
243
  "style",
238
244
  "variant",
239
245
  "errorMessage",
246
+ "errorMessageProps",
240
247
  "labelProps",
241
248
  "label",
242
249
  "disabled",
@@ -297,7 +304,7 @@ var InputGroup = (0, import_react4.forwardRef)(function InputGroup2(_a, ref) {
297
304
  children: renderInput()
298
305
  }
299
306
  ),
300
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ErrorMessage, { id: errorMessageId, children: errorMessage })
307
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ErrorMessage, __spreadProps(__spreadValues({ id: errorMessageId }, errorMessageProps), { children: errorMessage }))
301
308
  ]
302
309
  })
303
310
  );
@@ -391,16 +398,302 @@ var DatePicker = (0, import_react6.forwardRef)(function DatePicker2(_a, ref) {
391
398
  });
392
399
  DatePicker.displayName = "DatePicker";
393
400
 
394
- // src/form/input/input.tsx
401
+ // src/form/error-summary/error-summary.tsx
402
+ var import_react11 = require("react");
403
+
404
+ // src/message/message.tsx
405
+ var import_react8 = require("react");
406
+ var import_typed_classname7 = require("@postenbring/hedwig-css/typed-classname");
407
+ var import_react_slot2 = require("@radix-ui/react-slot");
408
+
409
+ // src/box/box.tsx
395
410
  var import_react7 = require("react");
396
411
  var import_typed_classname6 = require("@postenbring/hedwig-css/typed-classname");
412
+ var import_react_slot = require("@radix-ui/react-slot");
397
413
  var import_jsx_runtime6 = require("react/jsx-runtime");
398
- var Input = (0, import_react7.forwardRef)(function Input2(_a, ref) {
414
+ var BoxCloseButton = (0, import_react7.forwardRef)(
415
+ (_a, ref) => {
416
+ var _b = _a, { className } = _b, rest = __objRest(_b, ["className"]);
417
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
418
+ "button",
419
+ __spreadValues({
420
+ className: (0, import_typed_classname6.clsx)("hds-box__close-button", className),
421
+ ref,
422
+ type: "button"
423
+ }, rest)
424
+ );
425
+ }
426
+ );
427
+ BoxCloseButton.displayName = "Box.CloseButton";
428
+ var Box = (0, import_react7.forwardRef)(
429
+ (_a, ref) => {
430
+ var _b = _a, {
431
+ asChild,
432
+ variant,
433
+ closeable = false,
434
+ onClose: onCloseProp,
435
+ closed: closedProp,
436
+ closeButtonProps,
437
+ children,
438
+ className
439
+ } = _b, rest = __objRest(_b, [
440
+ "asChild",
441
+ "variant",
442
+ "closeable",
443
+ "onClose",
444
+ "closed",
445
+ "closeButtonProps",
446
+ "children",
447
+ "className"
448
+ ]);
449
+ const [closedState, setClosedState] = (0, import_react7.useState)(false);
450
+ const onClose = (0, import_react7.useCallback)(() => {
451
+ if (onCloseProp) {
452
+ const result = onCloseProp();
453
+ if (result === true) {
454
+ setClosedState(true);
455
+ }
456
+ } else {
457
+ setClosedState(true);
458
+ }
459
+ }, []);
460
+ const closed = closedProp != null ? closedProp : closedState;
461
+ const Component = asChild ? import_react_slot.Slot : "div";
462
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
463
+ Component,
464
+ __spreadProps(__spreadValues({
465
+ className: (0, import_typed_classname6.clsx)(
466
+ "hds-box",
467
+ variant && `hds-box--${variant}`,
468
+ { "hds-box--closed": closed },
469
+ className
470
+ ),
471
+ ref
472
+ }, rest), {
473
+ children: [
474
+ closeable ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(BoxCloseButton, __spreadValues({ onClick: onClose }, closeButtonProps)) : null,
475
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_react_slot.Slottable, { children })
476
+ ]
477
+ })
478
+ );
479
+ }
480
+ );
481
+ Box.displayName = "Box";
482
+ Box.CloseButton = BoxCloseButton;
483
+
484
+ // src/message/message.tsx
485
+ var import_jsx_runtime7 = require("react/jsx-runtime");
486
+ var MessageTitle = (0, import_react8.forwardRef)(
487
+ (_a, ref) => {
488
+ var _b = _a, { asChild, className } = _b, rest = __objRest(_b, ["asChild", "className"]);
489
+ const Component = asChild ? import_react_slot2.Slot : "div";
490
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
491
+ Component,
492
+ __spreadValues({
493
+ className: (0, import_typed_classname7.clsx)("hds-message__title", className),
494
+ ref
495
+ }, rest)
496
+ );
497
+ }
498
+ );
499
+ MessageTitle.displayName = "Message.Title";
500
+ var MessageDescription = (0, import_react8.forwardRef)(
501
+ (_a, ref) => {
502
+ var _b = _a, { asChild, className } = _b, rest = __objRest(_b, ["asChild", "className"]);
503
+ const Component = asChild ? import_react_slot2.Slot : "div";
504
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
505
+ Component,
506
+ __spreadValues({
507
+ className: (0, import_typed_classname7.clsx)("hds-message__description", className),
508
+ ref
509
+ }, rest)
510
+ );
511
+ }
512
+ );
513
+ MessageDescription.displayName = "Message.Description";
514
+ var Message = (0, import_react8.forwardRef)(
515
+ (_a, ref) => {
516
+ var _b = _a, { children, className, variant = "success", icon, iconClassName } = _b, rest = __objRest(_b, ["children", "className", "variant", "icon", "iconClassName"]);
517
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
518
+ Box,
519
+ __spreadProps(__spreadValues({
520
+ className: (0, import_typed_classname7.clsx)(`hds-message`, `hds-message--${variant}`, className),
521
+ ref
522
+ }, rest), {
523
+ children: [
524
+ variant === "neutral" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: (0, import_typed_classname7.clsx)("hds-message--neutral__icon", iconClassName), children: icon }),
525
+ children
526
+ ]
527
+ })
528
+ );
529
+ }
530
+ );
531
+ Message.displayName = "Message";
532
+ Message.Title = MessageTitle;
533
+ Message.Description = MessageDescription;
534
+
535
+ // src/list/list.tsx
536
+ var import_react9 = require("react");
537
+ var import_typed_classname8 = require("@postenbring/hedwig-css/typed-classname");
538
+ var import_jsx_runtime8 = require("react/jsx-runtime");
539
+ var UnorderedList = (0, import_react9.forwardRef)(
540
+ (_a, ref) => {
541
+ var _b = _a, { size = "medium", className } = _b, rest = __objRest(_b, ["size", "className"]);
542
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
543
+ "ul",
544
+ __spreadValues({
545
+ ref,
546
+ className: (0, import_typed_classname8.clsx)("hds-list", `hds-list--${size}`, className)
547
+ }, rest)
548
+ );
549
+ }
550
+ );
551
+ UnorderedList.displayName = "UnorderedList";
552
+ var OrderedList = (0, import_react9.forwardRef)(
553
+ (_a, ref) => {
554
+ var _b = _a, { size = "medium", className } = _b, rest = __objRest(_b, ["size", "className"]);
555
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
556
+ "ol",
557
+ __spreadValues({
558
+ ref,
559
+ className: (0, import_typed_classname8.clsx)("hds-list", `hds-list--${size}`, className)
560
+ }, rest)
561
+ );
562
+ }
563
+ );
564
+ OrderedList.displayName = "OrderedList";
565
+
566
+ // src/link/link.tsx
567
+ var React2 = require("react");
568
+ var import_typed_classname9 = require("@postenbring/hedwig-css/typed-classname");
569
+ var import_react10 = require("react");
570
+ var import_react_slot3 = require("@radix-ui/react-slot");
571
+ var import_jsx_runtime9 = require("react/jsx-runtime");
572
+ var Link = (0, import_react10.forwardRef)(
573
+ (_a, ref) => {
574
+ var _b = _a, { asChild, children, variant = "underline", size = "medium", className } = _b, rest = __objRest(_b, ["asChild", "children", "variant", "size", "className"]);
575
+ const Component = asChild ? import_react_slot3.Slot : "a";
576
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
577
+ Component,
578
+ __spreadProps(__spreadValues({
579
+ className: (0, import_typed_classname9.clsx)(
580
+ "hds-link",
581
+ variant !== "underline" && `hds-link--${variant}`,
582
+ size !== "medium" && `hds-link--${size}`,
583
+ className
584
+ ),
585
+ ref
586
+ }, rest), {
587
+ children
588
+ })
589
+ );
590
+ }
591
+ );
592
+ Link.displayName = "Link";
593
+
594
+ // src/form/error-summary/focus.ts
595
+ function focusWithLegendOrLabelInViewport(id) {
596
+ var _a;
597
+ const input = document.getElementById(id);
598
+ if (!input) {
599
+ return false;
600
+ }
601
+ const legendOrLabel = (_a = maybeLegendForInput(input)) != null ? _a : labelForInput(input);
602
+ if (!legendOrLabel) {
603
+ return false;
604
+ }
605
+ legendOrLabel.scrollIntoView();
606
+ input.focus({ preventScroll: true });
607
+ return true;
608
+ }
609
+ function maybeLegendForInput(input) {
610
+ const fieldset = input.closest("fieldset");
611
+ if (!fieldset) {
612
+ return null;
613
+ }
614
+ const legend = fieldset.querySelector("legend");
615
+ if (!legend) {
616
+ return null;
617
+ }
618
+ if (input instanceof HTMLInputElement && (input.type === "checkbox" || input.type === "radio")) {
619
+ return legend;
620
+ }
621
+ const legendTop = legend.getBoundingClientRect().top;
622
+ const inputRect = input.getBoundingClientRect();
623
+ if (inputRect.height && window.innerHeight) {
624
+ const inputBottom = inputRect.top + inputRect.height;
625
+ if (inputBottom - legendTop < window.innerHeight / 2) {
626
+ return legend;
627
+ }
628
+ }
629
+ }
630
+ function labelForInput(input) {
631
+ var _a;
632
+ return (_a = document.querySelector(`label[for='${input.getAttribute("id")}']`)) != null ? _a : input.closest("label");
633
+ }
634
+
635
+ // src/form/error-summary/error-summary.tsx
636
+ var import_jsx_runtime10 = require("react/jsx-runtime");
637
+ var ErrorSummaryHeading = (0, import_react11.forwardRef)((_a, ref) => {
638
+ var _b = _a, { children, as: Tag, autoFocus = true } = _b, rest = __objRest(_b, ["children", "as", "autoFocus"]);
639
+ const focusRef = (0, import_react11.useRef)(null);
640
+ const mergedRef = useMergeRefs([focusRef, ref]);
641
+ (0, import_react11.useEffect)(() => {
642
+ setTimeout(() => {
643
+ if (focusRef.current && autoFocus) {
644
+ focusRef.current.focus();
645
+ }
646
+ });
647
+ }, []);
648
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Message.Title, __spreadProps(__spreadValues({ ref: mergedRef, tabIndex: -1, asChild: true }, rest), { children: Tag ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Tag, { children }) : children }));
649
+ });
650
+ ErrorSummaryHeading.displayName = "ErrorSummary.Heading";
651
+ var ErrorSummaryList = (0, import_react11.forwardRef)(
652
+ (_a, ref) => {
653
+ var _b = _a, { children, style: _style, size = "small" } = _b, rest = __objRest(_b, ["children", "style", "size"]);
654
+ const style = __spreadValues({
655
+ // Match the link `solid` style, which black underline
656
+ "--_hds-list-marker-color": "var(--hds-ui-colors-black)"
657
+ }, _style);
658
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Message.Description, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(UnorderedList, __spreadProps(__spreadValues({ size, ref, style }, rest), { children })) });
659
+ }
660
+ );
661
+ ErrorSummaryList.displayName = "ErrorSummary.List";
662
+ var ErrorSummaryItem = (0, import_react11.forwardRef)(
663
+ (_a, ref) => {
664
+ var _b = _a, { children, href, linkProps } = _b, rest = __objRest(_b, ["children", "href", "linkProps"]);
665
+ function onClick(e) {
666
+ var _a2;
667
+ (_a2 = linkProps == null ? void 0 : linkProps.onClick) == null ? void 0 : _a2.call(linkProps, e);
668
+ if (focusWithLegendOrLabelInViewport(href.replace("#", ""))) {
669
+ e.preventDefault();
670
+ }
671
+ }
672
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("li", __spreadProps(__spreadValues({ ref }, rest), { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Link, __spreadProps(__spreadValues({ size: "small", href, variant: "solid" }, linkProps), { onClick, children })) }));
673
+ }
674
+ );
675
+ ErrorSummaryItem.displayName = "ErrorSummary.Item";
676
+ var ErrorSummary = (0, import_react11.forwardRef)(
677
+ (_a, ref) => {
678
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
679
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Message, __spreadProps(__spreadValues({ variant: "warning", ref }, rest), { children }));
680
+ }
681
+ );
682
+ ErrorSummary.displayName = "ErrorSummary";
683
+ ErrorSummary.Heading = ErrorSummaryHeading;
684
+ ErrorSummary.List = ErrorSummaryList;
685
+ ErrorSummary.Item = ErrorSummaryItem;
686
+
687
+ // src/form/input/input.tsx
688
+ var import_react12 = require("react");
689
+ var import_typed_classname10 = require("@postenbring/hedwig-css/typed-classname");
690
+ var import_jsx_runtime11 = require("react/jsx-runtime");
691
+ var Input = (0, import_react12.forwardRef)(function Input2(_a, ref) {
399
692
  var _b = _a, { className, variant, errorMessage, labelProps, label, id, style, disabled, readOnly } = _b, rest = __objRest(_b, ["className", "variant", "errorMessage", "labelProps", "label", "id", "style", "disabled", "readOnly"]);
400
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
693
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
401
694
  InputGroup,
402
695
  {
403
- className: (0, import_typed_classname6.clsx)("hds-input", className),
696
+ className: (0, import_typed_classname10.clsx)("hds-input", className),
404
697
  disabled,
405
698
  errorMessage,
406
699
  id,
@@ -409,35 +702,35 @@ var Input = (0, import_react7.forwardRef)(function Input2(_a, ref) {
409
702
  readOnly,
410
703
  style,
411
704
  variant,
412
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("input", __spreadProps(__spreadValues({}, rest), { disabled, readOnly, ref }))
705
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("input", __spreadProps(__spreadValues({}, rest), { disabled, readOnly, ref }))
413
706
  }
414
707
  );
415
708
  });
416
709
  Input.displayName = "Input";
417
710
 
418
711
  // src/form/radio-button/radio-button.tsx
419
- var import_react9 = require("react");
420
- var import_typed_classname7 = require("@postenbring/hedwig-css/typed-classname");
712
+ var import_react14 = require("react");
713
+ var import_typed_classname11 = require("@postenbring/hedwig-css/typed-classname");
421
714
 
422
715
  // src/form/radio-button/radio-group.tsx
423
- var import_react8 = require("react");
424
- var import_jsx_runtime7 = require("react/jsx-runtime");
425
- var RadioGroupContext = (0, import_react8.createContext)({
716
+ var import_react13 = require("react");
717
+ var import_jsx_runtime12 = require("react/jsx-runtime");
718
+ var RadioGroupContext = (0, import_react13.createContext)({
426
719
  name: void 0,
427
720
  hasError: false,
428
721
  onChange: () => {
429
722
  return void 0;
430
723
  }
431
724
  });
432
- var useRadioGroupContext = () => (0, import_react8.useContext)(RadioGroupContext);
433
- var RadioGroup = (0, import_react8.forwardRef)(function RadioGroup2(_a, ref) {
725
+ var useRadioGroupContext = () => (0, import_react13.useContext)(RadioGroupContext);
726
+ var RadioGroup = (0, import_react13.forwardRef)(function RadioGroup2(_a, ref) {
434
727
  var _b = _a, { name, value, errorMessage, onChange, children } = _b, rest = __objRest(_b, ["name", "value", "errorMessage", "onChange", "children"]);
435
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(RadioGroupContext.Provider, { value: { name, value, hasError: Boolean(errorMessage), onChange }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Fieldset, __spreadProps(__spreadValues({ errorMessage }, rest), { ref, children })) });
728
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(RadioGroupContext.Provider, { value: { name, value, hasError: Boolean(errorMessage), onChange }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Fieldset, __spreadProps(__spreadValues({ errorMessage }, rest), { ref, children })) });
436
729
  });
437
730
  RadioGroup.displayName = "RadioGroup";
438
731
 
439
732
  // src/form/radio-button/radio-button.tsx
440
- var import_jsx_runtime8 = require("react/jsx-runtime");
733
+ var import_jsx_runtime13 = require("react/jsx-runtime");
441
734
  var isChecked = ({
442
735
  checked,
443
736
  selectedValue,
@@ -447,7 +740,7 @@ var isChecked = ({
447
740
  if (typeof selectedValue !== "undefined") return value === selectedValue;
448
741
  return void 0;
449
742
  };
450
- var RadioButton = (0, import_react9.forwardRef)(
743
+ var RadioButton = (0, import_react14.forwardRef)(
451
744
  (_a, ref) => {
452
745
  var _b = _a, {
453
746
  checked,
@@ -475,10 +768,10 @@ var RadioButton = (0, import_react9.forwardRef)(
475
768
  ]);
476
769
  const { hasError: hasFieldsetError } = useFieldsetContext();
477
770
  const hasError = hasFieldsetError || hasRadioGroupError || hasErrorProp;
478
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
771
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
479
772
  "div",
480
773
  {
481
- className: (0, import_typed_classname7.clsx)(
774
+ className: (0, import_typed_classname11.clsx)(
482
775
  "hds-radio-button",
483
776
  {
484
777
  [`hds-radio-button--${variant}`]: variant === "bounding-box",
@@ -487,8 +780,8 @@ var RadioButton = (0, import_react9.forwardRef)(
487
780
  className
488
781
  ),
489
782
  children: [
490
- /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("label", { children: [
491
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
783
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("label", { children: [
784
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
492
785
  "input",
493
786
  __spreadProps(__spreadValues(__spreadValues({}, context), rest), {
494
787
  checked: isChecked({ checked, selectedValue, value }),
@@ -497,8 +790,8 @@ var RadioButton = (0, import_react9.forwardRef)(
497
790
  type: "radio"
498
791
  })
499
792
  ),
500
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { "aria-hidden": true, className: "hds-radio-button__checkmark" }),
501
- title ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "hds-radio-button__title", children: title }) : children
793
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "aria-hidden": true, className: "hds-radio-button__checkmark" }),
794
+ title ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "hds-radio-button__title", children: title }) : children
502
795
  ] }),
503
796
  title ? children : null
504
797
  ]
@@ -509,15 +802,15 @@ var RadioButton = (0, import_react9.forwardRef)(
509
802
  RadioButton.displayName = "RadioButton";
510
803
 
511
804
  // src/form/select/select.tsx
512
- var import_react10 = require("react");
513
- var import_typed_classname8 = require("@postenbring/hedwig-css/typed-classname");
514
- var import_jsx_runtime9 = require("react/jsx-runtime");
515
- var Select = (0, import_react10.forwardRef)(function Select2(_a, ref) {
805
+ var import_react15 = require("react");
806
+ var import_typed_classname12 = require("@postenbring/hedwig-css/typed-classname");
807
+ var import_jsx_runtime14 = require("react/jsx-runtime");
808
+ var Select = (0, import_react15.forwardRef)(function Select2(_a, ref) {
516
809
  var _b = _a, { className, variant, errorMessage, labelProps, label, id, style, disabled, children } = _b, rest = __objRest(_b, ["className", "variant", "errorMessage", "labelProps", "label", "id", "style", "disabled", "children"]);
517
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
810
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
518
811
  InputGroup,
519
812
  {
520
- className: (0, import_typed_classname8.clsx)("hds-select", className),
813
+ className: (0, import_typed_classname12.clsx)("hds-select", className),
521
814
  disabled,
522
815
  errorMessage,
523
816
  id,
@@ -525,22 +818,22 @@ var Select = (0, import_react10.forwardRef)(function Select2(_a, ref) {
525
818
  labelProps,
526
819
  style,
527
820
  variant,
528
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("select", __spreadProps(__spreadValues({}, rest), { disabled, ref, children }))
821
+ children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("select", __spreadProps(__spreadValues({}, rest), { disabled, ref, children }))
529
822
  }
530
823
  );
531
824
  });
532
825
  Select.displayName = "Select";
533
826
 
534
827
  // src/form/textarea/textarea.tsx
535
- var import_react11 = require("react");
536
- var import_typed_classname9 = require("@postenbring/hedwig-css/typed-classname");
537
- var import_jsx_runtime10 = require("react/jsx-runtime");
538
- var Textarea = (0, import_react11.forwardRef)(function Textarea2(_a, ref) {
828
+ var import_react16 = require("react");
829
+ var import_typed_classname13 = require("@postenbring/hedwig-css/typed-classname");
830
+ var import_jsx_runtime15 = require("react/jsx-runtime");
831
+ var Textarea = (0, import_react16.forwardRef)(function Textarea2(_a, ref) {
539
832
  var _b = _a, { className, variant, errorMessage, labelProps, label, id, style, disabled, readOnly } = _b, rest = __objRest(_b, ["className", "variant", "errorMessage", "labelProps", "label", "id", "style", "disabled", "readOnly"]);
540
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
833
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
541
834
  InputGroup,
542
835
  {
543
- className: (0, import_typed_classname9.clsx)("hds-textarea", className),
836
+ className: (0, import_typed_classname13.clsx)("hds-textarea", className),
544
837
  disabled,
545
838
  errorMessage,
546
839
  id,
@@ -549,7 +842,7 @@ var Textarea = (0, import_react11.forwardRef)(function Textarea2(_a, ref) {
549
842
  readOnly,
550
843
  style,
551
844
  variant,
552
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("textarea", __spreadProps(__spreadValues({}, rest), { disabled, readOnly, ref }))
845
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("textarea", __spreadProps(__spreadValues({}, rest), { disabled, readOnly, ref }))
553
846
  }
554
847
  );
555
848
  });
@@ -559,6 +852,7 @@ Textarea.displayName = "Textarea";
559
852
  Checkbox,
560
853
  DatePicker,
561
854
  ErrorMessage,
855
+ ErrorSummary,
562
856
  Fieldset,
563
857
  Input,
564
858
  RadioButton,