@mattilsynet/design 2.2.28 → 2.2.30

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 (177) hide show
  1. package/mtds/alert/alert.js +8 -9
  2. package/mtds/alert/alert.js.map +1 -1
  3. package/mtds/analytics/analytics.js +104 -165
  4. package/mtds/analytics/analytics.js.map +1 -1
  5. package/mtds/app/app-observer.js +28 -74
  6. package/mtds/app/app-observer.js.map +1 -1
  7. package/mtds/app/app-toggle.js +26 -16
  8. package/mtds/app/app-toggle.js.map +1 -1
  9. package/mtds/app/app-toggle2.js +10 -4
  10. package/mtds/app/app-toggle2.js.map +1 -1
  11. package/mtds/app/app.js +32 -36
  12. package/mtds/app/app.js.map +1 -1
  13. package/mtds/atlas/atlas-element.d.ts +27 -0
  14. package/mtds/atlas/atlas-element.js +63 -84
  15. package/mtds/atlas/atlas-element.js.map +1 -1
  16. package/mtds/atlas/atlas-marker.js +28 -48
  17. package/mtds/atlas/atlas-marker.js.map +1 -1
  18. package/mtds/atlas/atlas-matgeo.d.ts +3 -8
  19. package/mtds/atlas/atlas-matgeo.js +36 -66
  20. package/mtds/atlas/atlas-matgeo.js.map +1 -1
  21. package/mtds/atlas/atlas-wms.js +11 -21
  22. package/mtds/atlas/atlas-wms.js.map +1 -1
  23. package/mtds/atlas/atlas.css.js +2 -2
  24. package/mtds/atlas/atlas.css.js.map +1 -1
  25. package/mtds/atlas/atlas.js +23 -23
  26. package/mtds/atlas/atlas.js.map +1 -1
  27. package/mtds/atlas/atlas.stories.d.ts +1 -0
  28. package/mtds/atlas/cluster.js +697 -1576
  29. package/mtds/atlas/cluster.js.map +1 -1
  30. package/mtds/atlas.iife.js +4 -4
  31. package/mtds/atlas.js +11 -10
  32. package/mtds/avatar/avatar.js +8 -8
  33. package/mtds/avatar/avatar.js.map +1 -1
  34. package/mtds/badge/badge.js +7 -7
  35. package/mtds/badge/badge.js.map +1 -1
  36. package/mtds/breadcrumbs/breadcrumbs-observer.js +9 -10
  37. package/mtds/breadcrumbs/breadcrumbs-observer.js.map +1 -1
  38. package/mtds/breadcrumbs/breadcrumbs.js +13 -14
  39. package/mtds/breadcrumbs/breadcrumbs.js.map +1 -1
  40. package/mtds/button/button.js +14 -16
  41. package/mtds/button/button.js.map +1 -1
  42. package/mtds/card/card.js +12 -14
  43. package/mtds/card/card.js.map +1 -1
  44. package/mtds/chart/chart-axis.js +15 -27
  45. package/mtds/chart/chart-axis.js.map +1 -1
  46. package/mtds/chart/chart-bars.js +13 -15
  47. package/mtds/chart/chart-bars.js.map +1 -1
  48. package/mtds/chart/chart-element.js +48 -83
  49. package/mtds/chart/chart-element.js.map +1 -1
  50. package/mtds/chart/chart-lines.js +32 -54
  51. package/mtds/chart/chart-lines.js.map +1 -1
  52. package/mtds/chart/chart-pies.js +14 -34
  53. package/mtds/chart/chart-pies.js.map +1 -1
  54. package/mtds/chart/chart.css.js +2 -2
  55. package/mtds/chart/chart.css.js.map +1 -1
  56. package/mtds/chart/chart.js +12 -12
  57. package/mtds/chart/chart.js.map +1 -1
  58. package/mtds/chip/chip.js +8 -8
  59. package/mtds/chip/chip.js.map +1 -1
  60. package/mtds/chip/chip.stories.d.ts +1 -0
  61. package/mtds/details/details.js +12 -14
  62. package/mtds/details/details.js.map +1 -1
  63. package/mtds/dialog/dialog-observer.js +22 -35
  64. package/mtds/dialog/dialog-observer.js.map +1 -1
  65. package/mtds/dialog/dialog.js +12 -12
  66. package/mtds/dialog/dialog.js.map +1 -1
  67. package/mtds/divider/divider.js +10 -10
  68. package/mtds/divider/divider.js.map +1 -1
  69. package/mtds/errorsummary/errorsummary-observer.js +8 -11
  70. package/mtds/errorsummary/errorsummary-observer.js.map +1 -1
  71. package/mtds/errorsummary/errorsummary.js +11 -11
  72. package/mtds/errorsummary/errorsummary.js.map +1 -1
  73. package/mtds/external/@turf/boolean-point-in-polygon/dist/esm/index.js +19 -27
  74. package/mtds/external/@turf/boolean-point-in-polygon/dist/esm/index.js.map +1 -1
  75. package/mtds/external/@turf/helpers/dist/esm/index.js +16 -29
  76. package/mtds/external/@turf/helpers/dist/esm/index.js.map +1 -1
  77. package/mtds/external/@turf/invariant/dist/esm/index.js +13 -20
  78. package/mtds/external/@turf/invariant/dist/esm/index.js.map +1 -1
  79. package/mtds/external/leaflet/dist/leaflet-src.js +3096 -6004
  80. package/mtds/external/leaflet/dist/leaflet-src.js.map +1 -1
  81. package/mtds/external/leaflet/dist/leaflet.css.js +2 -2
  82. package/mtds/external/leaflet/dist/leaflet.css.js.map +1 -1
  83. package/mtds/external/point-in-polygon-hao/dist/esm/index.js +16 -46
  84. package/mtds/external/point-in-polygon-hao/dist/esm/index.js.map +1 -1
  85. package/mtds/external/robust-predicates/esm/orient2d.js +19 -163
  86. package/mtds/external/robust-predicates/esm/orient2d.js.map +1 -1
  87. package/mtds/external/robust-predicates/esm/util.js +25 -85
  88. package/mtds/external/robust-predicates/esm/util.js.map +1 -1
  89. package/mtds/field/field-observer.js +53 -119
  90. package/mtds/field/field-observer.js.map +1 -1
  91. package/mtds/field/field.d.ts +0 -1
  92. package/mtds/field/field.js +145 -177
  93. package/mtds/field/field.js.map +1 -1
  94. package/mtds/fieldset/fieldset-observer.js +14 -24
  95. package/mtds/fieldset/fieldset-observer.js.map +1 -1
  96. package/mtds/fieldset/fieldset.d.ts +3 -9
  97. package/mtds/fieldset/fieldset.js +20 -23
  98. package/mtds/fieldset/fieldset.js.map +1 -1
  99. package/mtds/fileupload/fileupload.js +8 -9
  100. package/mtds/fileupload/fileupload.js.map +1 -1
  101. package/mtds/fileupload/fileupload.stories.d.ts +1 -0
  102. package/mtds/helptext/helptext.js +15 -15
  103. package/mtds/helptext/helptext.js.map +1 -1
  104. package/mtds/illustrations/index.json +2 -2
  105. package/mtds/index.iife.js +15 -15
  106. package/mtds/index.js +27 -26
  107. package/mtds/index.js.map +1 -1
  108. package/mtds/input/input.js +28 -30
  109. package/mtds/input/input.js.map +1 -1
  110. package/mtds/law/law-helper.js +77 -143
  111. package/mtds/law/law-helper.js.map +1 -1
  112. package/mtds/law/law.js +6 -6
  113. package/mtds/law/law.js.map +1 -1
  114. package/mtds/layout/layout.js +10 -13
  115. package/mtds/layout/layout.js.map +1 -1
  116. package/mtds/link/link.js +7 -8
  117. package/mtds/link/link.js.map +1 -1
  118. package/mtds/logo/logo-observer.js +12 -18
  119. package/mtds/logo/logo-observer.js.map +1 -1
  120. package/mtds/logo/logo.js +8 -8
  121. package/mtds/logo/logo.js.map +1 -1
  122. package/mtds/package.json.js +2 -2
  123. package/mtds/pagination/pagination-helper.js +11 -17
  124. package/mtds/pagination/pagination-helper.js.map +1 -1
  125. package/mtds/pagination/pagination.js +30 -30
  126. package/mtds/pagination/pagination.js.map +1 -1
  127. package/mtds/popover/popover-observer.js +33 -45
  128. package/mtds/popover/popover-observer.js.map +1 -1
  129. package/mtds/popover/popover.js +12 -13
  130. package/mtds/popover/popover.js.map +1 -1
  131. package/mtds/progress/progress.js +8 -8
  132. package/mtds/progress/progress.js.map +1 -1
  133. package/mtds/react-atlas.js +13 -12
  134. package/mtds/react-types.d.ts +1 -0
  135. package/mtds/react.js +80 -80
  136. package/mtds/skeleton/skeleton.js +8 -8
  137. package/mtds/skeleton/skeleton.js.map +1 -1
  138. package/mtds/spinner/spinner.js +8 -8
  139. package/mtds/spinner/spinner.js.map +1 -1
  140. package/mtds/steps/steps.js +7 -7
  141. package/mtds/steps/steps.js.map +1 -1
  142. package/mtds/styles.css +1 -4591
  143. package/mtds/styles.json +43 -43
  144. package/mtds/styles.module.css.js +112 -167
  145. package/mtds/styles.module.css.js.map +1 -1
  146. package/mtds/table/table-observer.js +19 -22
  147. package/mtds/table/table-observer.js.map +1 -1
  148. package/mtds/table/table.d.ts +7 -0
  149. package/mtds/table/table.js +43 -18
  150. package/mtds/table/table.js.map +1 -1
  151. package/mtds/tabs/tabs.js +21 -25
  152. package/mtds/tabs/tabs.js.map +1 -1
  153. package/mtds/tag/tag.js +8 -8
  154. package/mtds/tag/tag.js.map +1 -1
  155. package/mtds/tailwind.css +6 -25
  156. package/mtds/toast/toast-helper.js +20 -35
  157. package/mtds/toast/toast-helper.js.map +1 -1
  158. package/mtds/toast/toast-observer.js +15 -30
  159. package/mtds/toast/toast-observer.js.map +1 -1
  160. package/mtds/toast/toast.js +37 -45
  161. package/mtds/toast/toast.js.map +1 -1
  162. package/mtds/togglegroup/togglegroup-observer.js +10 -15
  163. package/mtds/togglegroup/togglegroup-observer.js.map +1 -1
  164. package/mtds/togglegroup/togglegroup.js +24 -21
  165. package/mtds/togglegroup/togglegroup.js.map +1 -1
  166. package/mtds/tooltip/tooltip-observer.js +32 -48
  167. package/mtds/tooltip/tooltip-observer.js.map +1 -1
  168. package/mtds/typography/typography.js +19 -28
  169. package/mtds/typography/typography.js.map +1 -1
  170. package/mtds/utils.js +89 -129
  171. package/mtds/utils.js.map +1 -1
  172. package/mtds/validation/validation-observer.d.ts +1 -0
  173. package/mtds/validation/validation-observer.js +31 -0
  174. package/mtds/validation/validation-observer.js.map +1 -0
  175. package/mtds/validation/validation.js +12 -12
  176. package/mtds/validation/validation.js.map +1 -1
  177. package/package.json +8 -6
package/mtds/tag/tag.js CHANGED
@@ -1,12 +1,12 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import clsx from "clsx";
3
- import { forwardRef } from "react";
4
- import styles from "../styles.module.css.js";
5
- const Tag = forwardRef(function Tag2({ as, className, ...rest }, ref) {
6
- const Tag3 = as || (rest.href ? "a" : "span");
7
- return /* @__PURE__ */ jsx(Tag3, { className: clsx(styles.tag, className), ref, ...rest });
1
+ import { jsx as f } from "react/jsx-runtime";
2
+ import s from "clsx";
3
+ import { forwardRef as n } from "react";
4
+ import p from "../styles.module.css.js";
5
+ const x = n(function({ as: r, className: t, ...o }, a) {
6
+ const m = r || (o.href ? "a" : "span");
7
+ return /* @__PURE__ */ f(m, { className: s(p.tag, t), ref: a, ...o });
8
8
  });
9
9
  export {
10
- Tag
10
+ x as Tag
11
11
  };
12
12
  //# sourceMappingURL=tag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sources":["../../designsystem/tag/tag.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { forwardRef, type JSX } from \"react\";\nimport type {\n\tPolymorphicComponentPropWithRef,\n\tPolymorphicRef,\n} from \"../react-types\";\nimport styles from \"../styles.module.css\";\n\nexport type TagProps<\n\tHref,\n\tAs extends React.ElementType = Href extends string ? \"a\" : \"span\",\n> = PolymorphicComponentPropWithRef<\n\tAs,\n\t{ \"data-icon\"?: boolean | \"true\" | \"false\" | \"none\" }\n>;\n\ntype TagComponent = <\n\tHref,\n\tAs extends React.ElementType = Href extends string ? \"a\" : \"span\",\n>(\n\tprops: TagProps<Href, As>,\n) => JSX.Element;\n\nexport const Tag: TagComponent = forwardRef<null>(function Tag<\n\tHref,\n\tAs extends React.ElementType = Href extends string ? \"a\" : \"span\",\n>({ as, className, ...rest }: TagProps<Href, As>, ref?: PolymorphicRef<As>) {\n\tconst Tag = as || (rest.href ? \"a\" : \"span\");\n\n\treturn <Tag className={clsx(styles.tag, className)} ref={ref} {...rest} />;\n}) as TagComponent; // Needed to tell Typescript this does not return ReactNode but acutally JSX.Element\n"],"names":["Tag"],"mappings":";;;;AAuBO,MAAM,MAAoB,WAAiB,SAASA,KAGzD,EAAE,IAAI,WAAW,GAAG,KAAA,GAA4B,KAA0B;AAC3E,QAAMA,OAAM,OAAO,KAAK,OAAO,MAAM;AAErC,SAAO,oBAACA,MAAA,EAAI,WAAW,KAAK,OAAO,KAAK,SAAS,GAAG,KAAW,GAAG,KAAA,CAAM;AACzE,CAAC;"}
1
+ {"version":3,"file":"tag.js","sources":["../../designsystem/tag/tag.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { forwardRef, type JSX } from \"react\";\nimport type {\n\tPolymorphicComponentPropWithRef,\n\tPolymorphicRef,\n} from \"../react-types\";\nimport styles from \"../styles.module.css\";\n\nexport type TagProps<\n\tHref,\n\tAs extends React.ElementType = Href extends string ? \"a\" : \"span\",\n> = PolymorphicComponentPropWithRef<\n\tAs,\n\t{ \"data-icon\"?: boolean | \"true\" | \"false\" | \"none\" }\n>;\n\ntype TagComponent = <\n\tHref,\n\tAs extends React.ElementType = Href extends string ? \"a\" : \"span\",\n>(\n\tprops: TagProps<Href, As>,\n) => JSX.Element;\n\nexport const Tag: TagComponent = forwardRef<null>(function Tag<\n\tHref,\n\tAs extends React.ElementType = Href extends string ? \"a\" : \"span\",\n>({ as, className, ...rest }: TagProps<Href, As>, ref?: PolymorphicRef<As>) {\n\tconst Tag = as || (rest.href ? \"a\" : \"span\");\n\n\treturn <Tag className={clsx(styles.tag, className)} ref={ref} {...rest} />;\n}) as TagComponent; // Needed to tell Typescript this does not return ReactNode but acutally JSX.Element\n"],"names":["Tag","forwardRef","as","className","rest","ref","jsx","clsx","styles"],"mappings":";;;;AAuBO,MAAMA,IAAoBC,EAAiB,SAGhD,EAAE,IAAAC,GAAI,WAAAC,GAAW,GAAGC,EAAA,GAA4BC,GAA0B;AAC3E,QAAML,IAAME,MAAOE,EAAK,OAAO,MAAM;AAErC,SAAO,gBAAAE,EAACN,GAAA,EAAI,WAAWO,EAAKC,EAAO,KAAKL,CAAS,GAAG,KAAAE,GAAW,GAAGD,EAAA,CAAM;AACzE,CAAC;"}
package/mtds/tailwind.css CHANGED
@@ -77,25 +77,13 @@
77
77
  --color-info-text-default: var(--mtds-color-info-text-default);
78
78
  --color-info-text-subtle: var(--mtds-color-info-text-subtle);
79
79
  --color-inverted-background-default: var(--mtds-color-inverted-background-default);
80
- --color-inverted-background-default
81
- : var(--mtds-color-inverted-background-default
82
- );
80
+ --color-inverted-background-default : var(--mtds-color-inverted-background-default );
83
81
  --color-inverted-background-tinted: var(--mtds-color-inverted-background-tinted);
84
82
  --color-inverted-base-active: var(--mtds-color-inverted-base-active);
85
83
  --color-inverted-base-contrast-default: var(--mtds-color-inverted-base-contrast-default);
86
- --color-inverted-base-contrast-default
87
- : var(--mtds-color-inverted-base-contrast-default
88
- );
89
- --color-inverted-base-contrast-default
90
- : var(--mtds-color-inverted-base-contrast-default
91
- );
84
+ --color-inverted-base-contrast-default : var(--mtds-color-inverted-base-contrast-default );
92
85
  --color-inverted-base-contrast-subtle: var(--mtds-color-inverted-base-contrast-subtle);
93
- --color-inverted-base-contrast-subtle
94
- : var(--mtds-color-inverted-base-contrast-subtle
95
- );
96
- --color-inverted-base-contrast-subtle
97
- : var(--mtds-color-inverted-base-contrast-subtle
98
- );
86
+ --color-inverted-base-contrast-subtle : var(--mtds-color-inverted-base-contrast-subtle );
99
87
  --color-inverted-base-default: var(--mtds-color-inverted-base-default);
100
88
  --color-inverted-base-hover: var(--mtds-color-inverted-base-hover);
101
89
  --color-inverted-border-default: var(--mtds-color-inverted-border-default);
@@ -111,13 +99,9 @@
111
99
  --color-main-background-tinted: var(--mtds-color-main-background-tinted);
112
100
  --color-main-base-active: var(--mtds-color-main-base-active);
113
101
  --color-main-base-contrast-default: var(--mtds-color-main-base-contrast-default);
114
- --color-main-base-contrast-default
115
- : var(--mtds-color-main-base-contrast-default
116
- );
102
+ --color-main-base-contrast-default : var(--mtds-color-main-base-contrast-default );
117
103
  --color-main-base-contrast-subtle: var(--mtds-color-main-base-contrast-subtle);
118
- --color-main-base-contrast-subtle
119
- : var(--mtds-color-main-base-contrast-subtle
120
- );
104
+ --color-main-base-contrast-subtle : var(--mtds-color-main-base-contrast-subtle );
121
105
  --color-main-base-default: var(--mtds-color-main-base-default);
122
106
  --color-main-base-hover: var(--mtds-color-main-base-hover);
123
107
  --color-main-border-default: var(--mtds-color-main-border-default);
@@ -145,9 +129,7 @@
145
129
  --color-neutral-surface-tinted: var(--mtds-color-neutral-surface-tinted);
146
130
  --color-neutral-text-default: var(--mtds-color-neutral-text-default);
147
131
  --color-neutral-text-subtle: var(--mtds-color-neutral-text-subtle);
148
- --color-neutral-text-subtle
149
- : var(--mtds-color-neutral-text-subtle
150
- );
132
+ --color-neutral-text-subtle : var(--mtds-color-neutral-text-subtle );
151
133
  --color-success-background-default: var(--mtds-color-success-background-default);
152
134
  --color-success-background-tinted: var(--mtds-color-success-background-tinted);
153
135
  --color-success-base-active: var(--mtds-color-success-base-active);
@@ -188,7 +170,6 @@
188
170
  --color-warning-text-subtle: var(--mtds-color-warning-text-subtle);
189
171
  --font-weight-bold: var(--mtds-font-weight-bold);
190
172
  --font-weight-italic-style: var(--mtds-font-weight-italic-style);
191
- --font-weight-italic-weight: var(--mtds-font-weight-italic-weight);
192
173
  --font-weight-medium: var(--mtds-font-weight-medium);
193
174
  --font-weight-normal: var(--mtds-font-weight-regular);
194
175
  --font-weight-regular: var(--mtds-font-weight-regular);
@@ -1,43 +1,28 @@
1
- import clsx from "clsx";
2
- import styles from "../styles.module.css.js";
3
- import { tag, attr } from "../utils.js";
4
- function toast(content, opt = {}) {
5
- const dialog = document.getElementById(opt.id || "") || tag("dialog");
6
- attr(dialog, "aria-busy", opt.busy ? "true" : null);
7
- attr(dialog, "class", clsx(styles.toast, opt.className));
8
- attr(dialog, "data-closedby", opt.closedby || null);
9
- attr(dialog, "data-color", opt.color || null);
10
- attr(dialog, "data-icon", `${opt.icon ?? ""}` || null);
11
- attr(dialog, "data-timeout", `${opt.timeout ?? ""}` || null);
12
- attr(dialog, "id", opt.id || `${Date.now()}`);
13
- attr(dialog, "open", opt.open === false ? null : "");
14
- dialog.innerHTML = content;
15
- dialog.addEventListener("animationend", handleToastClose, { once: true });
16
- document.body.appendChild(dialog);
17
- return dialog.id;
1
+ import m from "clsx";
2
+ import l from "../styles.module.css.js";
3
+ import { tag as f, attr as s } from "../utils.js";
4
+ function r(e, o = {}) {
5
+ const n = document.getElementById(o.id || "") || f("dialog");
6
+ return s(n, "aria-busy", o.busy ? "true" : null), s(n, "class", m(l.toast, o.className)), s(n, "data-closedby", o.closedby || null), s(n, "data-color", o.color || null), s(n, "data-icon", `${o.icon ?? ""}` || null), s(n, "data-timeout", `${o.timeout ?? ""}` || null), s(n, "id", o.id || `${Date.now()}`), s(n, "open", o.open === !1 ? null : ""), n.innerHTML = e, n.addEventListener("animationend", y, { once: !0 }), document.body.appendChild(n), n.id;
18
7
  }
19
- function handleToastClose({ animationName, target }) {
20
- if (animationName === styles._toastClose)
21
- target.remove();
8
+ function y({ animationName: e, target: o }) {
9
+ e === l._toastClose && o.remove();
22
10
  }
23
- toast.success = (content, opt) => toast(content, { color: "success", ...opt });
24
- toast.danger = (content, opt) => toast(content, { color: "danger", ...opt });
25
- toast.info = (content, opt) => toast(content, { color: "info", ...opt });
26
- toast.warning = (content, opt) => toast(content, { color: "warning", ...opt });
27
- toast.neutral = (content, opt) => toast(content, { color: "neutral", ...opt });
28
- toast.promise = async function promise(action, props) {
29
- const { loading, success, error, ...opt } = props;
30
- const id = toast(loading, { busy: true, ...opt });
11
+ r.success = (e, o) => r(e, { color: "success", ...o });
12
+ r.danger = (e, o) => r(e, { color: "danger", ...o });
13
+ r.info = (e, o) => r(e, { color: "info", ...o });
14
+ r.warning = (e, o) => r(e, { color: "warning", ...o });
15
+ r.neutral = (e, o) => r(e, { color: "neutral", ...o });
16
+ r.promise = async function(o, n) {
17
+ const { loading: c, success: i, error: u, ...d } = n, a = r(c, { busy: !0, ...d });
31
18
  try {
32
- const result = await action();
33
- toast.success(success, { id, busy: false });
34
- return result;
35
- } catch (_error) {
36
- toast.danger(error, { id, busy: false });
37
- throw _error;
19
+ const t = await o();
20
+ return r.success(i, { id: a, busy: !1 }), t;
21
+ } catch (t) {
22
+ throw r.danger(u, { id: a, busy: !1 }), t;
38
23
  }
39
24
  };
40
25
  export {
41
- toast
26
+ r as toast
42
27
  };
43
28
  //# sourceMappingURL=toast-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast-helper.js","sources":["../../designsystem/toast/toast-helper.ts"],"sourcesContent":["import clsx from \"clsx\";\nimport styles from \"../styles.module.css\";\nimport { attr, tag } from \"../utils\";\n\nexport type ToastOptions = {\n\tclassName?: string;\n\tclosedby?: \"none\";\n\tcolor?: \"main\" | \"neutral\" | \"success\" | \"danger\" | \"info\" | \"warning\";\n\ticon?: boolean | \"none\";\n\ttimeout?: number | false;\n\tbusy?: boolean;\n\topen?: boolean;\n\tid?: string;\n};\n\nexport function toast(content: string, opt: ToastOptions = {}) {\n\tconst dialog = document.getElementById(opt.id || \"\") || tag(\"dialog\");\n\n\tattr(dialog, \"aria-busy\", opt.busy ? \"true\" : null);\n\tattr(dialog, \"class\", clsx(styles.toast, opt.className));\n\tattr(dialog, \"data-closedby\", opt.closedby || null);\n\tattr(dialog, \"data-color\", opt.color || null);\n\tattr(dialog, \"data-icon\", `${opt.icon ?? \"\"}` || null);\n\tattr(dialog, \"data-timeout\", `${opt.timeout ?? \"\"}` || null);\n\tattr(dialog, \"id\", opt.id || `${Date.now()}`);\n\tattr(dialog, \"open\", opt.open === false ? null : \"\");\n\n\tdialog.innerHTML = content;\n\tdialog.addEventListener(\"animationend\", handleToastClose, { once: true });\n\tdocument.body.appendChild(dialog);\n\treturn dialog.id;\n}\n\nfunction handleToastClose({ animationName, target }: Partial<AnimationEvent>) {\n\tif (animationName === styles._toastClose)\n\t\t(target as HTMLDialogElement).remove();\n}\n\n// Expose toast.danger, toast.info, toast.success etc.\ntoast.success = (content: string, opt?: ToastOptions) =>\n\ttoast(content, { color: \"success\", ...opt });\ntoast.danger = (content: string, opt?: ToastOptions) =>\n\ttoast(content, { color: \"danger\", ...opt });\ntoast.info = (content: string, opt: ToastOptions) =>\n\ttoast(content, { color: \"info\", ...opt });\ntoast.warning = (content: string, opt?: ToastOptions) =>\n\ttoast(content, { color: \"warning\", ...opt });\ntoast.neutral = (content: string, opt?: ToastOptions) =>\n\ttoast(content, { color: \"neutral\", ...opt });\ntoast.promise = async function promise<T>(\n\taction: () => Promise<T>,\n\tprops: ToastOptions & {\n\t\tloading: string;\n\t\tsuccess: string;\n\t\terror: string;\n\t},\n): Promise<T> {\n\tconst { loading, success, error, ...opt } = props;\n\tconst id = toast(loading, { busy: true, ...opt });\n\ttry {\n\t\tconst result = await action();\n\t\ttoast.success(success, { id, busy: false });\n\t\treturn result;\n\t} catch (_error) {\n\t\ttoast.danger(error, { id, busy: false });\n\t\tthrow _error;\n\t}\n};\n"],"names":[],"mappings":";;;AAeO,SAAS,MAAM,SAAiB,MAAoB,IAAI;AAC9D,QAAM,SAAS,SAAS,eAAe,IAAI,MAAM,EAAE,KAAK,IAAI,QAAQ;AAEpE,OAAK,QAAQ,aAAa,IAAI,OAAO,SAAS,IAAI;AAClD,OAAK,QAAQ,SAAS,KAAK,OAAO,OAAO,IAAI,SAAS,CAAC;AACvD,OAAK,QAAQ,iBAAiB,IAAI,YAAY,IAAI;AAClD,OAAK,QAAQ,cAAc,IAAI,SAAS,IAAI;AAC5C,OAAK,QAAQ,aAAa,GAAG,IAAI,QAAQ,EAAE,MAAM,IAAI;AACrD,OAAK,QAAQ,gBAAgB,GAAG,IAAI,WAAW,EAAE,MAAM,IAAI;AAC3D,OAAK,QAAQ,MAAM,IAAI,MAAM,GAAG,KAAK,IAAA,CAAK,EAAE;AAC5C,OAAK,QAAQ,QAAQ,IAAI,SAAS,QAAQ,OAAO,EAAE;AAEnD,SAAO,YAAY;AACnB,SAAO,iBAAiB,gBAAgB,kBAAkB,EAAE,MAAM,MAAM;AACxE,WAAS,KAAK,YAAY,MAAM;AAChC,SAAO,OAAO;AACf;AAEA,SAAS,iBAAiB,EAAE,eAAe,UAAmC;AAC7E,MAAI,kBAAkB,OAAO;AAC3B,WAA6B,OAAA;AAChC;AAGA,MAAM,UAAU,CAAC,SAAiB,QACjC,MAAM,SAAS,EAAE,OAAO,WAAW,GAAG,KAAK;AAC5C,MAAM,SAAS,CAAC,SAAiB,QAChC,MAAM,SAAS,EAAE,OAAO,UAAU,GAAG,KAAK;AAC3C,MAAM,OAAO,CAAC,SAAiB,QAC9B,MAAM,SAAS,EAAE,OAAO,QAAQ,GAAG,KAAK;AACzC,MAAM,UAAU,CAAC,SAAiB,QACjC,MAAM,SAAS,EAAE,OAAO,WAAW,GAAG,KAAK;AAC5C,MAAM,UAAU,CAAC,SAAiB,QACjC,MAAM,SAAS,EAAE,OAAO,WAAW,GAAG,KAAK;AAC5C,MAAM,UAAU,eAAe,QAC9B,QACA,OAKa;AACb,QAAM,EAAE,SAAS,SAAS,OAAO,GAAG,QAAQ;AAC5C,QAAM,KAAK,MAAM,SAAS,EAAE,MAAM,MAAM,GAAG,KAAK;AAChD,MAAI;AACH,UAAM,SAAS,MAAM,OAAA;AACrB,UAAM,QAAQ,SAAS,EAAE,IAAI,MAAM,OAAO;AAC1C,WAAO;AAAA,EACR,SAAS,QAAQ;AAChB,UAAM,OAAO,OAAO,EAAE,IAAI,MAAM,OAAO;AACvC,UAAM;AAAA,EACP;AACD;"}
1
+ {"version":3,"file":"toast-helper.js","sources":["../../designsystem/toast/toast-helper.ts"],"sourcesContent":["import clsx from \"clsx\";\nimport styles from \"../styles.module.css\";\nimport { attr, tag } from \"../utils\";\n\nexport type ToastOptions = {\n\tclassName?: string;\n\tclosedby?: \"none\";\n\tcolor?: \"main\" | \"neutral\" | \"success\" | \"danger\" | \"info\" | \"warning\";\n\ticon?: boolean | \"none\";\n\ttimeout?: number | false;\n\tbusy?: boolean;\n\topen?: boolean;\n\tid?: string;\n};\n\nexport function toast(content: string, opt: ToastOptions = {}) {\n\tconst dialog = document.getElementById(opt.id || \"\") || tag(\"dialog\");\n\n\tattr(dialog, \"aria-busy\", opt.busy ? \"true\" : null);\n\tattr(dialog, \"class\", clsx(styles.toast, opt.className));\n\tattr(dialog, \"data-closedby\", opt.closedby || null);\n\tattr(dialog, \"data-color\", opt.color || null);\n\tattr(dialog, \"data-icon\", `${opt.icon ?? \"\"}` || null);\n\tattr(dialog, \"data-timeout\", `${opt.timeout ?? \"\"}` || null);\n\tattr(dialog, \"id\", opt.id || `${Date.now()}`);\n\tattr(dialog, \"open\", opt.open === false ? null : \"\");\n\n\tdialog.innerHTML = content;\n\tdialog.addEventListener(\"animationend\", handleToastClose, { once: true });\n\tdocument.body.appendChild(dialog);\n\treturn dialog.id;\n}\n\nfunction handleToastClose({ animationName, target }: Partial<AnimationEvent>) {\n\tif (animationName === styles._toastClose)\n\t\t(target as HTMLDialogElement).remove();\n}\n\n// Expose toast.danger, toast.info, toast.success etc.\ntoast.success = (content: string, opt?: ToastOptions) =>\n\ttoast(content, { color: \"success\", ...opt });\ntoast.danger = (content: string, opt?: ToastOptions) =>\n\ttoast(content, { color: \"danger\", ...opt });\ntoast.info = (content: string, opt: ToastOptions) =>\n\ttoast(content, { color: \"info\", ...opt });\ntoast.warning = (content: string, opt?: ToastOptions) =>\n\ttoast(content, { color: \"warning\", ...opt });\ntoast.neutral = (content: string, opt?: ToastOptions) =>\n\ttoast(content, { color: \"neutral\", ...opt });\ntoast.promise = async function promise<T>(\n\taction: () => Promise<T>,\n\tprops: ToastOptions & {\n\t\tloading: string;\n\t\tsuccess: string;\n\t\terror: string;\n\t},\n): Promise<T> {\n\tconst { loading, success, error, ...opt } = props;\n\tconst id = toast(loading, { busy: true, ...opt });\n\ttry {\n\t\tconst result = await action();\n\t\ttoast.success(success, { id, busy: false });\n\t\treturn result;\n\t} catch (_error) {\n\t\ttoast.danger(error, { id, busy: false });\n\t\tthrow _error;\n\t}\n};\n"],"names":["toast","content","opt","dialog","tag","attr","clsx","styles","handleToastClose","animationName","target","action","props","loading","success","error","id","result","_error"],"mappings":";;;AAeO,SAASA,EAAMC,GAAiBC,IAAoB,IAAI;AAC9D,QAAMC,IAAS,SAAS,eAAeD,EAAI,MAAM,EAAE,KAAKE,EAAI,QAAQ;AAEpE,SAAAC,EAAKF,GAAQ,aAAaD,EAAI,OAAO,SAAS,IAAI,GAClDG,EAAKF,GAAQ,SAASG,EAAKC,EAAO,OAAOL,EAAI,SAAS,CAAC,GACvDG,EAAKF,GAAQ,iBAAiBD,EAAI,YAAY,IAAI,GAClDG,EAAKF,GAAQ,cAAcD,EAAI,SAAS,IAAI,GAC5CG,EAAKF,GAAQ,aAAa,GAAGD,EAAI,QAAQ,EAAE,MAAM,IAAI,GACrDG,EAAKF,GAAQ,gBAAgB,GAAGD,EAAI,WAAW,EAAE,MAAM,IAAI,GAC3DG,EAAKF,GAAQ,MAAMD,EAAI,MAAM,GAAG,KAAK,IAAA,CAAK,EAAE,GAC5CG,EAAKF,GAAQ,QAAQD,EAAI,SAAS,KAAQ,OAAO,EAAE,GAEnDC,EAAO,YAAYF,GACnBE,EAAO,iBAAiB,gBAAgBK,GAAkB,EAAE,MAAM,IAAM,GACxE,SAAS,KAAK,YAAYL,CAAM,GACzBA,EAAO;AACf;AAEA,SAASK,EAAiB,EAAE,eAAAC,GAAe,QAAAC,KAAmC;AAC7E,EAAID,MAAkBF,EAAO,eAC3BG,EAA6B,OAAA;AAChC;AAGAV,EAAM,UAAU,CAACC,GAAiBC,MACjCF,EAAMC,GAAS,EAAE,OAAO,WAAW,GAAGC,GAAK;AAC5CF,EAAM,SAAS,CAACC,GAAiBC,MAChCF,EAAMC,GAAS,EAAE,OAAO,UAAU,GAAGC,GAAK;AAC3CF,EAAM,OAAO,CAACC,GAAiBC,MAC9BF,EAAMC,GAAS,EAAE,OAAO,QAAQ,GAAGC,GAAK;AACzCF,EAAM,UAAU,CAACC,GAAiBC,MACjCF,EAAMC,GAAS,EAAE,OAAO,WAAW,GAAGC,GAAK;AAC5CF,EAAM,UAAU,CAACC,GAAiBC,MACjCF,EAAMC,GAAS,EAAE,OAAO,WAAW,GAAGC,GAAK;AAC5CF,EAAM,UAAU,eACfW,GACAC,GAKa;AACb,QAAM,EAAE,SAAAC,GAAS,SAAAC,GAAS,OAAAC,GAAO,GAAGb,MAAQU,GACtCI,IAAKhB,EAAMa,GAAS,EAAE,MAAM,IAAM,GAAGX,GAAK;AAChD,MAAI;AACH,UAAMe,IAAS,MAAMN,EAAA;AACrB,WAAAX,EAAM,QAAQc,GAAS,EAAE,IAAAE,GAAI,MAAM,IAAO,GACnCC;AAAA,EACR,SAASC,GAAQ;AAChB,UAAAlB,EAAM,OAAOe,GAAO,EAAE,IAAAC,GAAI,MAAM,IAAO,GACjCE;AAAA,EACP;AACD;"}
@@ -1,35 +1,20 @@
1
- import styles from "../styles.module.css.js";
2
- import { onLoaded, on, attr } from "../utils.js";
3
- const CSS_TOAST = styles.toast.split(" ")[0];
4
- const ATTR_SORT = "data-sort";
5
- function handleToastState({ animationName, target }) {
6
- const dialog = target;
7
- if (animationName === styles._toastTimeout) dialog.close();
8
- if (animationName !== styles._toastOpen) return;
9
- const ms = Number(attr(dialog, "data-timeout"));
10
- dialog.style.setProperty("--mtdsc-toast-timeout", ms ? `${ms}ms` : null);
11
- dialog.hasAttribute(ATTR_SORT) || attr(dialog, ATTR_SORT, `${Date.now()}`);
12
- attr(dialog, "tabindex", "0");
13
- [...document.querySelectorAll(`.${CSS_TOAST}[open]`)].sort((a, b) => Number(attr(b, ATTR_SORT)) - Number(attr(a, ATTR_SORT))).reduce((top, toast) => {
14
- toast.style.translate = `0 ${toast === target ? 0 : top}px`;
15
- return top + toast.offsetHeight + 5;
16
- }, 0);
1
+ import r from "../styles.module.css.js";
2
+ import { onLoaded as b, on as u, attr as s } from "../utils.js";
3
+ const m = r.toast.split(" ")[0], l = "data-sort";
4
+ function h({ animationName: t, target: i }) {
5
+ const o = i;
6
+ if (t === r._toastTimeout && o.close(), t !== r._toastOpen) return;
7
+ const c = Number(s(o, "data-timeout"));
8
+ o.style.setProperty("--mtdsc-toast-timeout", c ? `${c}ms` : null), o.hasAttribute(l) || s(o, l, `${Date.now()}`), s(o, "tabindex", "0"), [...document.querySelectorAll(`.${m}[open]`)].sort((n, e) => Number(s(e, l)) - Number(s(n, l))).reduce((n, e) => (e.style.translate = `0 ${e === i ? 0 : n}px`, n + e.offsetHeight + 5), 0);
17
9
  }
18
- function handleToastClick({ target, clientX: x, clientY: y }) {
19
- if (target instanceof HTMLDialogElement && target.classList.contains(CSS_TOAST) && attr(target, "data-closedby") !== "none") {
20
- const rect = target.getBoundingClientRect();
21
- const toast = window.getComputedStyle(target);
22
- const close = window.getComputedStyle(target, "::after");
23
- const top = rect.top + Number.parseInt(toast.paddingTop, 10);
24
- const bottom = top + Number.parseInt(close.height, 10);
25
- const right = rect.right - Number.parseInt(toast.paddingRight, 10);
26
- const left = right - Number.parseInt(close.width, 10);
27
- const isClose = top <= y && y <= bottom && left <= x && x <= right;
28
- if (isClose) target.close();
10
+ function T({ target: t, clientX: i, clientY: o }) {
11
+ if (t instanceof HTMLDialogElement && t.classList.contains(m) && s(t, "data-closedby") !== "none") {
12
+ const c = t.getBoundingClientRect(), n = window.getComputedStyle(t), e = window.getComputedStyle(t, "::after"), a = c.top + Number.parseInt(n.paddingTop, 10), p = a + Number.parseInt(e.height, 10), d = c.right - Number.parseInt(n.paddingRight, 10), f = d - Number.parseInt(e.width, 10);
13
+ a <= o && o <= p && f <= i && i <= d && t.close();
29
14
  }
30
15
  }
31
- onLoaded(() => [
32
- on(document, "animationstart", handleToastState),
33
- on(document, "click", handleToastClick)
16
+ b(() => [
17
+ u(document, "animationstart", h),
18
+ u(document, "click", T)
34
19
  ]);
35
20
  //# sourceMappingURL=toast-observer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast-observer.js","sources":["../../designsystem/toast/toast-observer.ts"],"sourcesContent":["import styles from \"../styles.module.css\";\nimport { attr, on, onLoaded } from \"../utils\";\n\nconst CSS_TOAST = styles.toast.split(\" \")[0];\nconst ATTR_SORT = \"data-sort\";\n\nfunction handleToastState({ animationName, target }: Partial<AnimationEvent>) {\n\tconst dialog = target as HTMLDialogElement;\n\tif (animationName === styles._toastTimeout) dialog.close();\n\tif (animationName !== styles._toastOpen) return;\n\n\tconst ms = Number(attr(dialog, \"data-timeout\"));\n\tdialog.style.setProperty(\"--mtdsc-toast-timeout\", ms ? `${ms}ms` : null);\n\tdialog.hasAttribute(ATTR_SORT) || attr(dialog, ATTR_SORT, `${Date.now()}`);\n\tattr(dialog, \"tabindex\", \"0\"); // Make focusable\n\n\t// Setup layout\n\t[...document.querySelectorAll<HTMLDialogElement>(`.${CSS_TOAST}[open]`)]\n\t\t.sort((a, b) => Number(attr(b, ATTR_SORT)) - Number(attr(a, ATTR_SORT)))\n\t\t.reduce((top, toast) => {\n\t\t\ttoast.style.translate = `0 ${toast === target ? 0 : top}px`;\n\t\t\treturn top + toast.offsetHeight + 5;\n\t\t}, 0);\n}\n\nfunction handleToastClick({ target, clientX: x, clientY: y }: MouseEvent) {\n\tif (\n\t\ttarget instanceof HTMLDialogElement &&\n\t\ttarget.classList.contains(CSS_TOAST) &&\n\t\tattr(target, \"data-closedby\") !== \"none\"\n\t) {\n\t\tconst rect = target.getBoundingClientRect();\n\t\tconst toast = window.getComputedStyle(target);\n\t\tconst close = window.getComputedStyle(target, \"::after\");\n\t\tconst top = rect.top + Number.parseInt(toast.paddingTop, 10);\n\t\tconst bottom = top + Number.parseInt(close.height, 10);\n\t\tconst right = rect.right - Number.parseInt(toast.paddingRight, 10);\n\t\tconst left = right - Number.parseInt(close.width, 10);\n\t\tconst isClose = top <= y && y <= bottom && left <= x && x <= right;\n\n\t\tif (isClose) target.close(); // Click is on ::after element\n\t}\n}\n\nonLoaded(() => [\n\ton(document, \"animationstart\", handleToastState),\n\ton(document, \"click\", handleToastClick as EventListener),\n]);\n"],"names":[],"mappings":";;AAGA,MAAM,YAAY,OAAO,MAAM,MAAM,GAAG,EAAE,CAAC;AAC3C,MAAM,YAAY;AAElB,SAAS,iBAAiB,EAAE,eAAe,UAAmC;AAC7E,QAAM,SAAS;AACf,MAAI,kBAAkB,OAAO,cAAe,QAAO,MAAA;AACnD,MAAI,kBAAkB,OAAO,WAAY;AAEzC,QAAM,KAAK,OAAO,KAAK,QAAQ,cAAc,CAAC;AAC9C,SAAO,MAAM,YAAY,yBAAyB,KAAK,GAAG,EAAE,OAAO,IAAI;AACvE,SAAO,aAAa,SAAS,KAAK,KAAK,QAAQ,WAAW,GAAG,KAAK,IAAA,CAAK,EAAE;AACzE,OAAK,QAAQ,YAAY,GAAG;AAG5B,GAAC,GAAG,SAAS,iBAAoC,IAAI,SAAS,QAAQ,CAAC,EACrE,KAAK,CAAC,GAAG,MAAM,OAAO,KAAK,GAAG,SAAS,CAAC,IAAI,OAAO,KAAK,GAAG,SAAS,CAAC,CAAC,EACtE,OAAO,CAAC,KAAK,UAAU;AACvB,UAAM,MAAM,YAAY,KAAK,UAAU,SAAS,IAAI,GAAG;AACvD,WAAO,MAAM,MAAM,eAAe;AAAA,EACnC,GAAG,CAAC;AACN;AAEA,SAAS,iBAAiB,EAAE,QAAQ,SAAS,GAAG,SAAS,KAAiB;AACzE,MACC,kBAAkB,qBAClB,OAAO,UAAU,SAAS,SAAS,KACnC,KAAK,QAAQ,eAAe,MAAM,QACjC;AACD,UAAM,OAAO,OAAO,sBAAA;AACpB,UAAM,QAAQ,OAAO,iBAAiB,MAAM;AAC5C,UAAM,QAAQ,OAAO,iBAAiB,QAAQ,SAAS;AACvD,UAAM,MAAM,KAAK,MAAM,OAAO,SAAS,MAAM,YAAY,EAAE;AAC3D,UAAM,SAAS,MAAM,OAAO,SAAS,MAAM,QAAQ,EAAE;AACrD,UAAM,QAAQ,KAAK,QAAQ,OAAO,SAAS,MAAM,cAAc,EAAE;AACjE,UAAM,OAAO,QAAQ,OAAO,SAAS,MAAM,OAAO,EAAE;AACpD,UAAM,UAAU,OAAO,KAAK,KAAK,UAAU,QAAQ,KAAK,KAAK;AAE7D,QAAI,gBAAgB,MAAA;AAAA,EACrB;AACD;AAEA,SAAS,MAAM;AAAA,EACd,GAAG,UAAU,kBAAkB,gBAAgB;AAAA,EAC/C,GAAG,UAAU,SAAS,gBAAiC;AACxD,CAAC;"}
1
+ {"version":3,"file":"toast-observer.js","sources":["../../designsystem/toast/toast-observer.ts"],"sourcesContent":["import styles from \"../styles.module.css\";\nimport { attr, on, onLoaded } from \"../utils\";\n\nconst CSS_TOAST = styles.toast.split(\" \")[0];\nconst ATTR_SORT = \"data-sort\";\n\nfunction handleToastState({ animationName, target }: Partial<AnimationEvent>) {\n\tconst dialog = target as HTMLDialogElement;\n\tif (animationName === styles._toastTimeout) dialog.close();\n\tif (animationName !== styles._toastOpen) return;\n\n\tconst ms = Number(attr(dialog, \"data-timeout\"));\n\tdialog.style.setProperty(\"--mtdsc-toast-timeout\", ms ? `${ms}ms` : null);\n\tdialog.hasAttribute(ATTR_SORT) || attr(dialog, ATTR_SORT, `${Date.now()}`);\n\tattr(dialog, \"tabindex\", \"0\"); // Make focusable\n\n\t// Setup layout\n\t[...document.querySelectorAll<HTMLDialogElement>(`.${CSS_TOAST}[open]`)]\n\t\t.sort((a, b) => Number(attr(b, ATTR_SORT)) - Number(attr(a, ATTR_SORT)))\n\t\t.reduce((top, toast) => {\n\t\t\ttoast.style.translate = `0 ${toast === target ? 0 : top}px`;\n\t\t\treturn top + toast.offsetHeight + 5;\n\t\t}, 0);\n}\n\nfunction handleToastClick({ target, clientX: x, clientY: y }: MouseEvent) {\n\tif (\n\t\ttarget instanceof HTMLDialogElement &&\n\t\ttarget.classList.contains(CSS_TOAST) &&\n\t\tattr(target, \"data-closedby\") !== \"none\"\n\t) {\n\t\tconst rect = target.getBoundingClientRect();\n\t\tconst toast = window.getComputedStyle(target);\n\t\tconst close = window.getComputedStyle(target, \"::after\");\n\t\tconst top = rect.top + Number.parseInt(toast.paddingTop, 10);\n\t\tconst bottom = top + Number.parseInt(close.height, 10);\n\t\tconst right = rect.right - Number.parseInt(toast.paddingRight, 10);\n\t\tconst left = right - Number.parseInt(close.width, 10);\n\t\tconst isClose = top <= y && y <= bottom && left <= x && x <= right;\n\n\t\tif (isClose) target.close(); // Click is on ::after element\n\t}\n}\n\nonLoaded(() => [\n\ton(document, \"animationstart\", handleToastState),\n\ton(document, \"click\", handleToastClick as EventListener),\n]);\n"],"names":["CSS_TOAST","styles","ATTR_SORT","handleToastState","animationName","target","dialog","ms","attr","a","b","top","toast","handleToastClick","x","y","rect","close","bottom","right","left","onLoaded","on"],"mappings":";;AAGA,MAAMA,IAAYC,EAAO,MAAM,MAAM,GAAG,EAAE,CAAC,GACrCC,IAAY;AAElB,SAASC,EAAiB,EAAE,eAAAC,GAAe,QAAAC,KAAmC;AAC7E,QAAMC,IAASD;AAEf,MADID,MAAkBH,EAAO,iBAAeK,EAAO,MAAA,GAC/CF,MAAkBH,EAAO,WAAY;AAEzC,QAAMM,IAAK,OAAOC,EAAKF,GAAQ,cAAc,CAAC;AAC9C,EAAAA,EAAO,MAAM,YAAY,yBAAyBC,IAAK,GAAGA,CAAE,OAAO,IAAI,GACvED,EAAO,aAAaJ,CAAS,KAAKM,EAAKF,GAAQJ,GAAW,GAAG,KAAK,IAAA,CAAK,EAAE,GACzEM,EAAKF,GAAQ,YAAY,GAAG,GAG5B,CAAC,GAAG,SAAS,iBAAoC,IAAIN,CAAS,QAAQ,CAAC,EACrE,KAAK,CAACS,GAAGC,MAAM,OAAOF,EAAKE,GAAGR,CAAS,CAAC,IAAI,OAAOM,EAAKC,GAAGP,CAAS,CAAC,CAAC,EACtE,OAAO,CAACS,GAAKC,OACbA,EAAM,MAAM,YAAY,KAAKA,MAAUP,IAAS,IAAIM,CAAG,MAChDA,IAAMC,EAAM,eAAe,IAChC,CAAC;AACN;AAEA,SAASC,EAAiB,EAAE,QAAAR,GAAQ,SAASS,GAAG,SAASC,KAAiB;AACzE,MACCV,aAAkB,qBAClBA,EAAO,UAAU,SAASL,CAAS,KACnCQ,EAAKH,GAAQ,eAAe,MAAM,QACjC;AACD,UAAMW,IAAOX,EAAO,sBAAA,GACdO,IAAQ,OAAO,iBAAiBP,CAAM,GACtCY,IAAQ,OAAO,iBAAiBZ,GAAQ,SAAS,GACjDM,IAAMK,EAAK,MAAM,OAAO,SAASJ,EAAM,YAAY,EAAE,GACrDM,IAASP,IAAM,OAAO,SAASM,EAAM,QAAQ,EAAE,GAC/CE,IAAQH,EAAK,QAAQ,OAAO,SAASJ,EAAM,cAAc,EAAE,GAC3DQ,IAAOD,IAAQ,OAAO,SAASF,EAAM,OAAO,EAAE;AAGpD,IAFgBN,KAAOI,KAAKA,KAAKG,KAAUE,KAAQN,KAAKA,KAAKK,OAEzC,MAAA;AAAA,EACrB;AACD;AAEAE,EAAS,MAAM;AAAA,EACdC,EAAG,UAAU,kBAAkBnB,CAAgB;AAAA,EAC/CmB,EAAG,UAAU,SAAST,CAAiC;AACxD,CAAC;"}
@@ -1,62 +1,54 @@
1
1
  'use client';
2
- import { jsx } from "react/jsx-runtime";
3
- import clsx from "clsx";
4
- import { createRoot } from "react-dom/client";
5
- import styles from "../styles.module.css.js";
6
- import { isBrowser, tag } from "../utils.js";
7
- if (isBrowser() && !window._mtdsReactToasts) {
8
- const root = createRoot(document.body.appendChild(tag("div")));
9
- const toasts = /* @__PURE__ */ new Map();
10
- const render = () => root.render(Array.from(toasts.values() || []));
2
+ import { jsx as m } from "react/jsx-runtime";
3
+ import u from "clsx";
4
+ import { createRoot as w } from "react-dom/client";
5
+ import i from "../styles.module.css.js";
6
+ import { isBrowser as f, tag as y } from "../utils.js";
7
+ if (f() && !window._mtdsReactToasts) {
8
+ const s = w(document.body.appendChild(y("div"))), o = /* @__PURE__ */ new Map(), e = () => s.render(Array.from(o.values() || []));
11
9
  window._mtdsReactToasts = {
12
- set: (id, jsx2) => toasts.set(id, jsx2) && render(),
13
- delete: ({ animationName, currentTarget }) => {
14
- if (animationName !== styles._toastClose) return;
15
- toasts.delete(currentTarget.id);
16
- render();
10
+ set: (r, a) => o.set(r, a) && e(),
11
+ delete: ({ animationName: r, currentTarget: a }) => {
12
+ r === i._toastClose && (o.delete(a.id), e());
17
13
  }
18
14
  };
19
15
  }
20
- function toast(content, opt = {}) {
21
- const id = opt.id || `${Date.now()}`;
22
- window._mtdsReactToasts?.set(
23
- id,
24
- /* @__PURE__ */ jsx(
16
+ function t(s, o = {}) {
17
+ const e = o.id || `${Date.now()}`;
18
+ return window._mtdsReactToasts?.set(
19
+ e,
20
+ /* @__PURE__ */ m(
25
21
  "dialog",
26
22
  {
27
- "aria-busy": opt.busy,
28
- className: clsx(styles.toast, opt.className),
29
- "data-closedby": opt.closedby,
30
- "data-color": opt.color,
31
- "data-timeout": opt.timeout,
32
- id,
23
+ "aria-busy": o.busy,
24
+ className: u(i.toast, o.className),
25
+ "data-closedby": o.closedby,
26
+ "data-color": o.color,
27
+ "data-timeout": o.timeout,
28
+ id: e,
33
29
  onAnimationEnd: window._mtdsReactToasts.delete,
34
- open: opt.open ?? true,
35
- children: content
30
+ open: o.open ?? !0,
31
+ children: s
36
32
  },
37
- id
33
+ e
38
34
  )
39
- );
40
- return id;
35
+ ), e;
41
36
  }
42
- toast.success = (content, opt) => toast(content, { color: "success", ...opt });
43
- toast.danger = (content, opt) => toast(content, { color: "danger", ...opt });
44
- toast.info = (content, opt) => toast(content, { color: "info", ...opt });
45
- toast.warning = (content, opt) => toast(content, { color: "warning", ...opt });
46
- toast.neutral = (content, opt) => toast(content, { color: "neutral", ...opt });
47
- toast.promise = async function promise(action, props) {
48
- const { loading, success, error, ...opt } = props;
49
- const id = toast(loading, { busy: true, ...opt });
37
+ t.success = (s, o) => t(s, { color: "success", ...o });
38
+ t.danger = (s, o) => t(s, { color: "danger", ...o });
39
+ t.info = (s, o) => t(s, { color: "info", ...o });
40
+ t.warning = (s, o) => t(s, { color: "warning", ...o });
41
+ t.neutral = (s, o) => t(s, { color: "neutral", ...o });
42
+ t.promise = async function(o, e) {
43
+ const { loading: r, success: a, error: d, ...l } = e, c = t(r, { busy: !0, ...l });
50
44
  try {
51
- const result = await action();
52
- toast.success(success, { id, busy: false });
53
- return result;
54
- } catch (_error) {
55
- toast.danger(error, { id, busy: false });
56
- throw _error;
45
+ const n = await o();
46
+ return t.success(a, { id: c, busy: !1 }), n;
47
+ } catch (n) {
48
+ throw t.danger(d, { id: c, busy: !1 }), n;
57
49
  }
58
50
  };
59
51
  export {
60
- toast
52
+ t as toast
61
53
  };
62
54
  //# sourceMappingURL=toast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.js","sources":["../../designsystem/toast/toast.tsx"],"sourcesContent":["\"use client\";\nimport clsx from \"clsx\";\nimport { createRoot } from \"react-dom/client\";\nimport styles from \"../styles.module.css\";\nimport { isBrowser, tag } from \"../utils\";\nimport type { ToastOptions } from \"./toast-helper\";\n\ndeclare global {\n\tinterface Window {\n\t\t_mtdsReactToasts?: {\n\t\t\tset: (id: string, jsx: React.ReactNode) => void;\n\t\t\tdelete: (event: React.AnimationEvent<HTMLDialogElement>) => void;\n\t\t};\n\t}\n}\n\n// Ensure only a single toast master is created\nif (isBrowser() && !window._mtdsReactToasts) {\n\tconst root = createRoot(document.body.appendChild(tag(\"div\")));\n\tconst toasts = new Map<string, React.ReactNode>();\n\tconst render = () => root.render(Array.from(toasts.values() || []));\n\n\t// Expose methods to add/remove toasts from the root container\n\twindow._mtdsReactToasts = {\n\t\tset: (id, jsx) => toasts.set(id, jsx) && render(),\n\t\tdelete: ({ animationName, currentTarget }) => {\n\t\t\tif (animationName !== styles._toastClose) return;\n\t\t\ttoasts.delete(currentTarget.id);\n\t\t\trender();\n\t\t},\n\t};\n}\n\nexport function toast(content: React.ReactNode, opt: ToastOptions = {}) {\n\tconst id = opt.id || `${Date.now()}`;\n\twindow._mtdsReactToasts?.set(\n\t\tid,\n\t\t<dialog\n\t\t\taria-busy={opt.busy}\n\t\t\tclassName={clsx(styles.toast, opt.className)}\n\t\t\tdata-closedby={opt.closedby}\n\t\t\tdata-color={opt.color}\n\t\t\tdata-timeout={opt.timeout}\n\t\t\tid={id}\n\t\t\tkey={id}\n\t\t\tonAnimationEnd={window._mtdsReactToasts.delete}\n\t\t\topen={opt.open ?? true}\n\t\t>\n\t\t\t{content}\n\t\t</dialog>,\n\t);\n\n\treturn id;\n}\n\n// Expose toast.danger, toast.info, toast.success etc.\ntoast.success = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"success\", ...opt });\ntoast.danger = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"danger\", ...opt });\ntoast.info = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"info\", ...opt });\ntoast.warning = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"warning\", ...opt });\ntoast.neutral = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"neutral\", ...opt });\ntoast.promise = async function promise<T>(\n\taction: () => Promise<T>,\n\tprops: ToastOptions & {\n\t\tloading: React.ReactNode;\n\t\tsuccess: React.ReactNode;\n\t\terror: React.ReactNode;\n\t},\n): Promise<T> {\n\tconst { loading, success, error, ...opt } = props;\n\tconst id = toast(loading, { busy: true, ...opt });\n\ttry {\n\t\tconst result = await action();\n\t\ttoast.success(success, { id, busy: false });\n\t\treturn result;\n\t} catch (_error) {\n\t\ttoast.danger(error, { id, busy: false });\n\t\tthrow _error;\n\t}\n};\n"],"names":["jsx"],"mappings":";;;;;AAiBA,IAAI,UAAA,KAAe,CAAC,OAAO,kBAAkB;AAC5C,QAAM,OAAO,WAAW,SAAS,KAAK,YAAY,IAAI,KAAK,CAAC,CAAC;AAC7D,QAAM,6BAAa,IAAA;AACnB,QAAM,SAAS,MAAM,KAAK,OAAO,MAAM,KAAK,OAAO,YAAY,CAAA,CAAE,CAAC;AAGlE,SAAO,mBAAmB;AAAA,IACzB,KAAK,CAAC,IAAIA,SAAQ,OAAO,IAAI,IAAIA,IAAG,KAAK,OAAA;AAAA,IACzC,QAAQ,CAAC,EAAE,eAAe,oBAAoB;AAC7C,UAAI,kBAAkB,OAAO,YAAa;AAC1C,aAAO,OAAO,cAAc,EAAE;AAC9B,aAAA;AAAA,IACD;AAAA,EAAA;AAEF;AAEO,SAAS,MAAM,SAA0B,MAAoB,IAAI;AACvE,QAAM,KAAK,IAAI,MAAM,GAAG,KAAK,KAAK;AAClC,SAAO,kBAAkB;AAAA,IACxB;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,aAAW,IAAI;AAAA,QACf,WAAW,KAAK,OAAO,OAAO,IAAI,SAAS;AAAA,QAC3C,iBAAe,IAAI;AAAA,QACnB,cAAY,IAAI;AAAA,QAChB,gBAAc,IAAI;AAAA,QAClB;AAAA,QAEA,gBAAgB,OAAO,iBAAiB;AAAA,QACxC,MAAM,IAAI,QAAQ;AAAA,QAEjB,UAAA;AAAA,MAAA;AAAA,MAJI;AAAA,IAAA;AAAA,EAKN;AAGD,SAAO;AACR;AAGA,MAAM,UAAU,CAAC,SAA0B,QAC1C,MAAM,SAAS,EAAE,OAAO,WAAW,GAAG,KAAK;AAC5C,MAAM,SAAS,CAAC,SAA0B,QACzC,MAAM,SAAS,EAAE,OAAO,UAAU,GAAG,KAAK;AAC3C,MAAM,OAAO,CAAC,SAA0B,QACvC,MAAM,SAAS,EAAE,OAAO,QAAQ,GAAG,KAAK;AACzC,MAAM,UAAU,CAAC,SAA0B,QAC1C,MAAM,SAAS,EAAE,OAAO,WAAW,GAAG,KAAK;AAC5C,MAAM,UAAU,CAAC,SAA0B,QAC1C,MAAM,SAAS,EAAE,OAAO,WAAW,GAAG,KAAK;AAC5C,MAAM,UAAU,eAAe,QAC9B,QACA,OAKa;AACb,QAAM,EAAE,SAAS,SAAS,OAAO,GAAG,QAAQ;AAC5C,QAAM,KAAK,MAAM,SAAS,EAAE,MAAM,MAAM,GAAG,KAAK;AAChD,MAAI;AACH,UAAM,SAAS,MAAM,OAAA;AACrB,UAAM,QAAQ,SAAS,EAAE,IAAI,MAAM,OAAO;AAC1C,WAAO;AAAA,EACR,SAAS,QAAQ;AAChB,UAAM,OAAO,OAAO,EAAE,IAAI,MAAM,OAAO;AACvC,UAAM;AAAA,EACP;AACD;"}
1
+ {"version":3,"file":"toast.js","sources":["../../designsystem/toast/toast.tsx"],"sourcesContent":["\"use client\";\nimport clsx from \"clsx\";\nimport { createRoot } from \"react-dom/client\";\nimport styles from \"../styles.module.css\";\nimport { isBrowser, tag } from \"../utils\";\nimport type { ToastOptions } from \"./toast-helper\";\n\ndeclare global {\n\tinterface Window {\n\t\t_mtdsReactToasts?: {\n\t\t\tset: (id: string, jsx: React.ReactNode) => void;\n\t\t\tdelete: (event: React.AnimationEvent<HTMLDialogElement>) => void;\n\t\t};\n\t}\n}\n\n// Ensure only a single toast master is created\nif (isBrowser() && !window._mtdsReactToasts) {\n\tconst root = createRoot(document.body.appendChild(tag(\"div\")));\n\tconst toasts = new Map<string, React.ReactNode>();\n\tconst render = () => root.render(Array.from(toasts.values() || []));\n\n\t// Expose methods to add/remove toasts from the root container\n\twindow._mtdsReactToasts = {\n\t\tset: (id, jsx) => toasts.set(id, jsx) && render(),\n\t\tdelete: ({ animationName, currentTarget }) => {\n\t\t\tif (animationName !== styles._toastClose) return;\n\t\t\ttoasts.delete(currentTarget.id);\n\t\t\trender();\n\t\t},\n\t};\n}\n\nexport function toast(content: React.ReactNode, opt: ToastOptions = {}) {\n\tconst id = opt.id || `${Date.now()}`;\n\twindow._mtdsReactToasts?.set(\n\t\tid,\n\t\t<dialog\n\t\t\taria-busy={opt.busy}\n\t\t\tclassName={clsx(styles.toast, opt.className)}\n\t\t\tdata-closedby={opt.closedby}\n\t\t\tdata-color={opt.color}\n\t\t\tdata-timeout={opt.timeout}\n\t\t\tid={id}\n\t\t\tkey={id}\n\t\t\tonAnimationEnd={window._mtdsReactToasts.delete}\n\t\t\topen={opt.open ?? true}\n\t\t>\n\t\t\t{content}\n\t\t</dialog>,\n\t);\n\n\treturn id;\n}\n\n// Expose toast.danger, toast.info, toast.success etc.\ntoast.success = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"success\", ...opt });\ntoast.danger = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"danger\", ...opt });\ntoast.info = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"info\", ...opt });\ntoast.warning = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"warning\", ...opt });\ntoast.neutral = (content: React.ReactNode, opt?: ToastOptions) =>\n\ttoast(content, { color: \"neutral\", ...opt });\ntoast.promise = async function promise<T>(\n\taction: () => Promise<T>,\n\tprops: ToastOptions & {\n\t\tloading: React.ReactNode;\n\t\tsuccess: React.ReactNode;\n\t\terror: React.ReactNode;\n\t},\n): Promise<T> {\n\tconst { loading, success, error, ...opt } = props;\n\tconst id = toast(loading, { busy: true, ...opt });\n\ttry {\n\t\tconst result = await action();\n\t\ttoast.success(success, { id, busy: false });\n\t\treturn result;\n\t} catch (_error) {\n\t\ttoast.danger(error, { id, busy: false });\n\t\tthrow _error;\n\t}\n};\n"],"names":["isBrowser","root","createRoot","tag","toasts","render","id","jsx","animationName","currentTarget","styles","toast","content","opt","clsx","action","props","loading","success","error","result","_error"],"mappings":";;;;;AAiBA,IAAIA,EAAA,KAAe,CAAC,OAAO,kBAAkB;AAC5C,QAAMC,IAAOC,EAAW,SAAS,KAAK,YAAYC,EAAI,KAAK,CAAC,CAAC,GACvDC,wBAAa,IAAA,GACbC,IAAS,MAAMJ,EAAK,OAAO,MAAM,KAAKG,EAAO,YAAY,CAAA,CAAE,CAAC;AAGlE,SAAO,mBAAmB;AAAA,IACzB,KAAK,CAACE,GAAIC,MAAQH,EAAO,IAAIE,GAAIC,CAAG,KAAKF,EAAA;AAAA,IACzC,QAAQ,CAAC,EAAE,eAAAG,GAAe,eAAAC,QAAoB;AAC7C,MAAID,MAAkBE,EAAO,gBAC7BN,EAAO,OAAOK,EAAc,EAAE,GAC9BJ,EAAA;AAAA,IACD;AAAA,EAAA;AAEF;AAEO,SAASM,EAAMC,GAA0BC,IAAoB,IAAI;AACvE,QAAMP,IAAKO,EAAI,MAAM,GAAG,KAAK,KAAK;AAClC,gBAAO,kBAAkB;AAAA,IACxBP;AAAA,IACA,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,aAAWM,EAAI;AAAA,QACf,WAAWC,EAAKJ,EAAO,OAAOG,EAAI,SAAS;AAAA,QAC3C,iBAAeA,EAAI;AAAA,QACnB,cAAYA,EAAI;AAAA,QAChB,gBAAcA,EAAI;AAAA,QAClB,IAAAP;AAAA,QAEA,gBAAgB,OAAO,iBAAiB;AAAA,QACxC,MAAMO,EAAI,QAAQ;AAAA,QAEjB,UAAAD;AAAA,MAAA;AAAA,MAJIN;AAAA,IAAA;AAAA,EAKN,GAGMA;AACR;AAGAK,EAAM,UAAU,CAACC,GAA0BC,MAC1CF,EAAMC,GAAS,EAAE,OAAO,WAAW,GAAGC,GAAK;AAC5CF,EAAM,SAAS,CAACC,GAA0BC,MACzCF,EAAMC,GAAS,EAAE,OAAO,UAAU,GAAGC,GAAK;AAC3CF,EAAM,OAAO,CAACC,GAA0BC,MACvCF,EAAMC,GAAS,EAAE,OAAO,QAAQ,GAAGC,GAAK;AACzCF,EAAM,UAAU,CAACC,GAA0BC,MAC1CF,EAAMC,GAAS,EAAE,OAAO,WAAW,GAAGC,GAAK;AAC5CF,EAAM,UAAU,CAACC,GAA0BC,MAC1CF,EAAMC,GAAS,EAAE,OAAO,WAAW,GAAGC,GAAK;AAC5CF,EAAM,UAAU,eACfI,GACAC,GAKa;AACb,QAAM,EAAE,SAAAC,GAAS,SAAAC,GAAS,OAAAC,GAAO,GAAGN,MAAQG,GACtCV,IAAKK,EAAMM,GAAS,EAAE,MAAM,IAAM,GAAGJ,GAAK;AAChD,MAAI;AACH,UAAMO,IAAS,MAAML,EAAA;AACrB,WAAAJ,EAAM,QAAQO,GAAS,EAAE,IAAAZ,GAAI,MAAM,IAAO,GACnCc;AAAA,EACR,SAASC,GAAQ;AAChB,UAAAV,EAAM,OAAOQ,GAAO,EAAE,IAAAb,GAAI,MAAM,IAAO,GACjCe;AAAA,EACP;AACD;"}
@@ -1,18 +1,13 @@
1
- import styles from "../styles.module.css.js";
2
- import { onLoaded, on } from "../utils.js";
3
- const CSS_TOGGLEGROUP = `.${styles.togglegroup.split(" ")[0]}`;
4
- function handleTogglegroupKeydown(event) {
5
- const { key, target: el } = event;
6
- const group = el instanceof HTMLInputElement && el.closest(CSS_TOGGLEGROUP);
7
- if (!group) return;
8
- if (key === "Enter") el.click();
9
- if (key?.startsWith("Arrow")) {
10
- event.preventDefault();
11
- const inputs = group.getElementsByTagName("input");
12
- const index = [...inputs].indexOf(el);
13
- const move = key.match(/Arrow(Right|Down)/) ? 1 : -1;
14
- inputs[(inputs.length + index + move) % inputs.length]?.focus();
1
+ import c from "../styles.module.css.js";
2
+ import { onLoaded as g, on as l } from "../utils.js";
3
+ const u = `.${c.togglegroup.split(" ")[0]}`;
4
+ function f(e) {
5
+ const { key: n, target: t } = e, r = t instanceof HTMLInputElement && t.closest(u);
6
+ if (r && (n === "Enter" && t.click(), n?.startsWith("Arrow"))) {
7
+ e.preventDefault();
8
+ const o = r.getElementsByTagName("input"), s = [...o].indexOf(t), i = n.match(/Arrow(Right|Down)/) ? 1 : -1;
9
+ o[(o.length + s + i) % o.length]?.focus();
15
10
  }
16
11
  }
17
- onLoaded(() => [on(document, "keydown", handleTogglegroupKeydown)]);
12
+ g(() => [l(document, "keydown", f)]);
18
13
  //# sourceMappingURL=togglegroup-observer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"togglegroup-observer.js","sources":["../../designsystem/togglegroup/togglegroup-observer.ts"],"sourcesContent":["import styles from \"../styles.module.css\";\nimport { on, onLoaded } from \"../utils\";\n\nconst CSS_TOGGLEGROUP = `.${styles.togglegroup.split(\" \")[0]}`;\n\n// Prevent browsers from showing default validation bubbles\nfunction handleTogglegroupKeydown(event: Event & Partial<KeyboardEvent>) {\n\tconst { key, target: el } = event;\n\tconst group = el instanceof HTMLInputElement && el.closest(CSS_TOGGLEGROUP);\n\n\tif (!group) return;\n\tif (key === \"Enter\") el.click();\n\tif (key?.startsWith(\"Arrow\")) {\n\t\tevent.preventDefault();\n\t\tconst inputs = group.getElementsByTagName(\"input\");\n\t\tconst index = [...inputs].indexOf(el);\n\t\tconst move = key.match(/Arrow(Right|Down)/) ? 1 : -1;\n\t\tinputs[(inputs.length + index + move) % inputs.length]?.focus();\n\t}\n}\n\nonLoaded(() => [on(document, \"keydown\", handleTogglegroupKeydown)]);\n"],"names":[],"mappings":";;AAGA,MAAM,kBAAkB,IAAI,OAAO,YAAY,MAAM,GAAG,EAAE,CAAC,CAAC;AAG5D,SAAS,yBAAyB,OAAuC;AACxE,QAAM,EAAE,KAAK,QAAQ,GAAA,IAAO;AAC5B,QAAM,QAAQ,cAAc,oBAAoB,GAAG,QAAQ,eAAe;AAE1E,MAAI,CAAC,MAAO;AACZ,MAAI,QAAQ,QAAS,IAAG,MAAA;AACxB,MAAI,KAAK,WAAW,OAAO,GAAG;AAC7B,UAAM,eAAA;AACN,UAAM,SAAS,MAAM,qBAAqB,OAAO;AACjD,UAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE;AACpC,UAAM,OAAO,IAAI,MAAM,mBAAmB,IAAI,IAAI;AAClD,YAAQ,OAAO,SAAS,QAAQ,QAAQ,OAAO,MAAM,GAAG,MAAA;AAAA,EACzD;AACD;AAEA,SAAS,MAAM,CAAC,GAAG,UAAU,WAAW,wBAAwB,CAAC,CAAC;"}
1
+ {"version":3,"file":"togglegroup-observer.js","sources":["../../designsystem/togglegroup/togglegroup-observer.ts"],"sourcesContent":["import styles from \"../styles.module.css\";\nimport { on, onLoaded } from \"../utils\";\n\nconst CSS_TOGGLEGROUP = `.${styles.togglegroup.split(\" \")[0]}`;\n\n// Prevent browsers from showing default validation bubbles\nfunction handleTogglegroupKeydown(event: Event & Partial<KeyboardEvent>) {\n\tconst { key, target: el } = event;\n\tconst group = el instanceof HTMLInputElement && el.closest(CSS_TOGGLEGROUP);\n\n\tif (!group) return;\n\tif (key === \"Enter\") el.click();\n\tif (key?.startsWith(\"Arrow\")) {\n\t\tevent.preventDefault();\n\t\tconst inputs = group.getElementsByTagName(\"input\");\n\t\tconst index = [...inputs].indexOf(el);\n\t\tconst move = key.match(/Arrow(Right|Down)/) ? 1 : -1;\n\t\tinputs[(inputs.length + index + move) % inputs.length]?.focus();\n\t}\n}\n\nonLoaded(() => [on(document, \"keydown\", handleTogglegroupKeydown)]);\n"],"names":["CSS_TOGGLEGROUP","styles","handleTogglegroupKeydown","event","key","el","group","inputs","index","move","onLoaded","on"],"mappings":";;AAGA,MAAMA,IAAkB,IAAIC,EAAO,YAAY,MAAM,GAAG,EAAE,CAAC,CAAC;AAG5D,SAASC,EAAyBC,GAAuC;AACxE,QAAM,EAAE,KAAAC,GAAK,QAAQC,EAAA,IAAOF,GACtBG,IAAQD,aAAc,oBAAoBA,EAAG,QAAQL,CAAe;AAE1E,MAAKM,MACDF,MAAQ,WAASC,EAAG,MAAA,GACpBD,GAAK,WAAW,OAAO,IAAG;AAC7B,IAAAD,EAAM,eAAA;AACN,UAAMI,IAASD,EAAM,qBAAqB,OAAO,GAC3CE,IAAQ,CAAC,GAAGD,CAAM,EAAE,QAAQF,CAAE,GAC9BI,IAAOL,EAAI,MAAM,mBAAmB,IAAI,IAAI;AAClD,IAAAG,GAAQA,EAAO,SAASC,IAAQC,KAAQF,EAAO,MAAM,GAAG,MAAA;AAAA,EACzD;AACD;AAEAG,EAAS,MAAM,CAACC,EAAG,UAAU,WAAWT,CAAwB,CAAC,CAAC;"}
@@ -1,36 +1,39 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import clsx from "clsx";
3
- import { forwardRef } from "react";
4
- import styles from "../styles.module.css.js";
5
- const TogglegroupComp = forwardRef(
6
- function Togglegroup2({ className, ...rest }, ref) {
7
- return /* @__PURE__ */ jsx(
1
+ import { jsx as t, jsxs as u } from "react/jsx-runtime";
2
+ import c from "clsx";
3
+ import { forwardRef as g } from "react";
4
+ import f from "../styles.module.css.js";
5
+ const a = g(
6
+ function({ className: o, ...r }, e) {
7
+ return /* @__PURE__ */ t(
8
8
  "fieldset",
9
9
  {
10
- className: clsx(styles.togglegroup, className),
11
- ref,
12
- ...rest
10
+ className: c(f.togglegroup, o),
11
+ ref: e,
12
+ ...r
13
13
  }
14
14
  );
15
15
  }
16
- );
17
- const TogglegroupItem = forwardRef(
18
- function TogglegroupItem2({ children, checked, defaultChecked, value, name, onChange, ...rest }, ref) {
19
- return /* @__PURE__ */ jsxs("label", { ref, ...rest, children: [
20
- /* @__PURE__ */ jsx(
16
+ ), T = g(
17
+ function({ children: o, checked: r, defaultChecked: e, value: s, name: l, onChange: m, ...n }, i) {
18
+ return /* @__PURE__ */ u("label", { ref: i, ...n, children: [
19
+ /* @__PURE__ */ t(
21
20
  "input",
22
21
  {
23
- ...{ type: "radio", checked, defaultChecked, value, name, onChange }
22
+ type: "radio",
23
+ checked: r,
24
+ defaultChecked: e,
25
+ value: s,
26
+ name: l,
27
+ onChange: m
24
28
  }
25
29
  ),
26
- children
30
+ o
27
31
  ] });
28
32
  }
29
- );
30
- const Togglegroup = Object.assign(TogglegroupComp, {
31
- Item: TogglegroupItem
33
+ ), b = Object.assign(a, {
34
+ Item: T
32
35
  });
33
36
  export {
34
- Togglegroup
37
+ b as Togglegroup
35
38
  };
36
39
  //# sourceMappingURL=togglegroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"togglegroup.js","sources":["../../designsystem/togglegroup/togglegroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { forwardRef } from \"react\";\nimport type { InputProps } from \"../react\";\nimport styles from \"../styles.module.css\";\n\nexport type TogglegroupProps = React.ComponentPropsWithoutRef<\"fieldset\">;\nexport type TogglegroupItemProps = Omit<\n\tReact.ComponentPropsWithoutRef<\"label\">,\n\t\"onChange\"\n> &\n\tPick<InputProps, \"defaultChecked\" | \"checked\" | \"onChange\" | \"value\"> &\n\tRequired<Pick<InputProps, \"name\">>; // Make name required\n\nconst TogglegroupComp = forwardRef<HTMLFieldSetElement, TogglegroupProps>(\n\tfunction Togglegroup({ className, ...rest }, ref) {\n\t\treturn (\n\t\t\t<fieldset\n\t\t\t\tclassName={clsx(styles.togglegroup, className)}\n\t\t\t\tref={ref}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t);\n\t},\n);\nconst TogglegroupItem = forwardRef<HTMLLabelElement, TogglegroupItemProps>(\n\tfunction TogglegroupItem(\n\t\t{ children, checked, defaultChecked, value, name, onChange, ...rest },\n\t\tref,\n\t) {\n\t\treturn (\n\t\t\t<label ref={ref} {...rest}>\n\t\t\t\t<input\n\t\t\t\t\t{...{ type: \"radio\", checked, defaultChecked, value, name, onChange }}\n\t\t\t\t/>\n\t\t\t\t{children}\n\t\t\t</label>\n\t\t);\n\t},\n);\n\nexport const Togglegroup = Object.assign(TogglegroupComp, {\n\tItem: TogglegroupItem,\n});\n"],"names":["Togglegroup","TogglegroupItem"],"mappings":";;;;AAaA,MAAM,kBAAkB;AAAA,EACvB,SAASA,aAAY,EAAE,WAAW,GAAG,KAAA,GAAQ,KAAK;AACjD,WACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,WAAW,KAAK,OAAO,aAAa,SAAS;AAAA,QAC7C;AAAA,QACC,GAAG;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACD;AACA,MAAM,kBAAkB;AAAA,EACvB,SAASC,iBACR,EAAE,UAAU,SAAS,gBAAgB,OAAO,MAAM,UAAU,GAAG,KAAA,GAC/D,KACC;AACD,WACC,qBAAC,SAAA,EAAM,KAAW,GAAG,MACpB,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAG,EAAE,MAAM,SAAS,SAAS,gBAAgB,OAAO,MAAM,SAAA;AAAA,QAAS;AAAA,MAAA;AAAA,MAEpE;AAAA,IAAA,GACF;AAAA,EAEF;AACD;AAEO,MAAM,cAAc,OAAO,OAAO,iBAAiB;AAAA,EACzD,MAAM;AACP,CAAC;"}
1
+ {"version":3,"file":"togglegroup.js","sources":["../../designsystem/togglegroup/togglegroup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { forwardRef } from \"react\";\nimport type { InputProps } from \"../react\";\nimport styles from \"../styles.module.css\";\n\nexport type TogglegroupProps = React.ComponentPropsWithoutRef<\"fieldset\">;\nexport type TogglegroupItemProps = Omit<\n\tReact.ComponentPropsWithoutRef<\"label\">,\n\t\"onChange\"\n> &\n\tPick<InputProps, \"defaultChecked\" | \"checked\" | \"onChange\" | \"value\"> &\n\tRequired<Pick<InputProps, \"name\">>; // Make name required\n\nconst TogglegroupComp = forwardRef<HTMLFieldSetElement, TogglegroupProps>(\n\tfunction Togglegroup({ className, ...rest }, ref) {\n\t\treturn (\n\t\t\t<fieldset\n\t\t\t\tclassName={clsx(styles.togglegroup, className)}\n\t\t\t\tref={ref}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t);\n\t},\n);\nconst TogglegroupItem = forwardRef<HTMLLabelElement, TogglegroupItemProps>(\n\tfunction TogglegroupItem(\n\t\t{ children, checked, defaultChecked, value, name, onChange, ...rest },\n\t\tref,\n\t) {\n\t\treturn (\n\t\t\t<label ref={ref} {...rest}>\n\t\t\t\t<input\n\t\t\t\t\t{...{ type: \"radio\", checked, defaultChecked, value, name, onChange }}\n\t\t\t\t/>\n\t\t\t\t{children}\n\t\t\t</label>\n\t\t);\n\t},\n);\n\nexport const Togglegroup = Object.assign(TogglegroupComp, {\n\tItem: TogglegroupItem,\n});\n"],"names":["TogglegroupComp","forwardRef","className","rest","ref","jsx","clsx","styles","TogglegroupItem","children","checked","defaultChecked","value","name","onChange","jsxs","Togglegroup"],"mappings":";;;;AAaA,MAAMA,IAAkBC;AAAA,EACvB,SAAqB,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAAQC,GAAK;AACjD,WACC,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,WAAWC,EAAKC,EAAO,aAAaL,CAAS;AAAA,QAC7C,KAAAE;AAAA,QACC,GAAGD;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACD,GACMK,IAAkBP;AAAA,EACvB,SACC,EAAE,UAAAQ,GAAU,SAAAC,GAAS,gBAAAC,GAAgB,OAAAC,GAAO,MAAAC,GAAM,UAAAC,GAAU,GAAGX,EAAA,GAC/DC,GACC;AACD,WACC,gBAAAW,EAAC,SAAA,EAAM,KAAAX,GAAW,GAAGD,GACpB,UAAA;AAAA,MAAA,gBAAAE;AAAA,QAAC;AAAA,QAAA;AAAA,UACM,MAAM;AAAA,UAAS,SAAAK;AAAA,UAAS,gBAAAC;AAAA,UAAgB,OAAAC;AAAA,UAAO,MAAAC;AAAA,UAAM,UAAAC;AAAA,QAAS;AAAA,MAAA;AAAA,MAEpEL;AAAA,IAAA,GACF;AAAA,EAEF;AACD,GAEaO,IAAc,OAAO,OAAOhB,GAAiB;AAAA,EACzD,MAAMQ;AACP,CAAC;"}