@mond-design-system/react 1.0.0-alpha.2 → 1.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -7,28 +7,8 @@ function cx(...parts) {
7
7
  return parts.filter(Boolean).join(" ");
8
8
  }
9
9
 
10
- // src/components/Text/Text.module.css
11
- var Text_default = {
12
- text: "Text_text",
13
- "variant-body": "Text_variant-body",
14
- "variant-label": "Text_variant-label",
15
- "variant-note": "Text_variant-note",
16
- "variant-meta": "Text_variant-meta",
17
- "variant-eyebrow": "Text_variant-eyebrow",
18
- "tone-primary": "Text_tone-primary",
19
- "tone-secondary": "Text_tone-secondary",
20
- "tone-muted": "Text_tone-muted",
21
- "tone-inverse": "Text_tone-inverse",
22
- "tone-accent": "Text_tone-accent",
23
- "tone-on-media": "Text_tone-on-media",
24
- "tone-danger": "Text_tone-danger",
25
- "tone-warning": "Text_tone-warning",
26
- "tone-success": "Text_tone-success",
27
- "align-left": "Text_align-left",
28
- "align-center": "Text_align-center",
29
- "align-right": "Text_align-right",
30
- truncate: "Text_truncate"
31
- };
10
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Text/Text.module.css?mds-scoped
11
+ var Text_module_default = { "text": "mds-Text__text", "variant-body": "mds-Text__variant-body", "variant-label": "mds-Text__variant-label", "variant-note": "mds-Text__variant-note", "variant-meta": "mds-Text__variant-meta", "variant-eyebrow": "mds-Text__variant-eyebrow", "tone-primary": "mds-Text__tone-primary", "tone-secondary": "mds-Text__tone-secondary", "tone-muted": "mds-Text__tone-muted", "tone-inverse": "mds-Text__tone-inverse", "tone-accent": "mds-Text__tone-accent", "tone-on-media": "mds-Text__tone-on-media", "tone-danger": "mds-Text__tone-danger", "tone-warning": "mds-Text__tone-warning", "tone-success": "mds-Text__tone-success", "align-left": "mds-Text__align-left", "align-center": "mds-Text__align-center", "align-right": "mds-Text__align-right", "truncate": "mds-Text__truncate" };
32
12
 
33
13
  // src/components/Text/Text.tsx
34
14
  var ELEMENT = {
@@ -56,29 +36,19 @@ function Text({
56
36
  const resolvedTone = tone ?? DEFAULT_TONE[variant] ?? "primary";
57
37
  return createElement(element, {
58
38
  className: cx(
59
- Text_default.text,
60
- Text_default[`variant-${variant}`],
61
- Text_default[`tone-${resolvedTone}`],
62
- align && Text_default[`align-${align}`],
63
- truncate && Text_default.truncate,
39
+ Text_module_default.text,
40
+ Text_module_default[`variant-${variant}`],
41
+ Text_module_default[`tone-${resolvedTone}`],
42
+ align && Text_module_default[`align-${align}`],
43
+ truncate && Text_module_default.truncate,
64
44
  className
65
45
  ),
66
46
  ...rest
67
47
  });
68
48
  }
69
49
 
70
- // src/components/Heading/Heading.module.css
71
- var Heading_default = {
72
- heading: "Heading_heading",
73
- "variant-display": "Heading_variant-display",
74
- "variant-title": "Heading_variant-title",
75
- "variant-subtitle": "Heading_variant-subtitle",
76
- "tone-primary": "Heading_tone-primary",
77
- "tone-secondary": "Heading_tone-secondary",
78
- "tone-inverse": "Heading_tone-inverse",
79
- "tone-accent": "Heading_tone-accent",
80
- "tone-on-media": "Heading_tone-on-media"
81
- };
50
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Heading/Heading.module.css?mds-scoped
51
+ var Heading_module_default = { "heading": "mds-Heading__heading", "variant-display": "mds-Heading__variant-display", "variant-title": "mds-Heading__variant-title", "variant-subtitle": "mds-Heading__variant-subtitle", "tone-primary": "mds-Heading__tone-primary", "tone-secondary": "mds-Heading__tone-secondary", "tone-inverse": "mds-Heading__tone-inverse", "tone-accent": "mds-Heading__tone-accent", "tone-on-media": "mds-Heading__tone-on-media" };
82
52
 
83
53
  // src/components/Heading/Heading.tsx
84
54
  var LEVEL_VARIANT = {
@@ -96,19 +66,17 @@ function Heading({
96
66
  }) {
97
67
  return createElement(`h${level}`, {
98
68
  className: cx(
99
- Heading_default.heading,
100
- Heading_default[`variant-${variant ?? LEVEL_VARIANT[level]}`],
101
- Heading_default[`tone-${tone}`],
69
+ Heading_module_default.heading,
70
+ Heading_module_default[`variant-${variant ?? LEVEL_VARIANT[level]}`],
71
+ Heading_module_default[`tone-${tone}`],
102
72
  className
103
73
  ),
104
74
  ...rest
105
75
  });
106
76
  }
107
77
 
108
- // src/components/Spinner/Spinner.module.css
109
- var Spinner_default = {
110
- spinner: "Spinner_spinner"
111
- };
78
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Spinner/Spinner.module.css?mds-scoped
79
+ var Spinner_module_default = { "spinner": "mds-Spinner__spinner"};
112
80
  function Spinner({
113
81
  size = 20,
114
82
  label = "Loading",
@@ -125,20 +93,15 @@ function Spinner({
125
93
  {
126
94
  role: "status",
127
95
  "aria-label": label,
128
- className: cx(Spinner_default.spinner, className),
96
+ className: cx(Spinner_module_default.spinner, className),
129
97
  style: { ...vars, ...style },
130
98
  ...rest
131
99
  }
132
100
  );
133
101
  }
134
102
 
135
- // src/components/Icon/Icon.module.css
136
- var Icon_default = {
137
- icon: "Icon_icon",
138
- "size-sm": "Icon_size-sm",
139
- "size-md": "Icon_size-md",
140
- "size-lg": "Icon_size-lg"
141
- };
103
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Icon/Icon.module.css?mds-scoped
104
+ var Icon_module_default = { "icon": "mds-Icon__icon", "size-sm": "mds-Icon__size-sm", "size-md": "mds-Icon__size-md", "size-lg": "mds-Icon__size-lg" };
142
105
  var IconContext = createContext(null);
143
106
  function IconProvider({ render, children }) {
144
107
  return /* @__PURE__ */ jsx(IconContext.Provider, { value: render, children });
@@ -156,7 +119,7 @@ function Icon({ name, size = "md", label, className, ...rest }) {
156
119
  return /* @__PURE__ */ jsx(
157
120
  "span",
158
121
  {
159
- className: cx(Icon_default.icon, Icon_default[`size-${size}`], className),
122
+ className: cx(Icon_module_default.icon, Icon_module_default[`size-${size}`], className),
160
123
  ...label ? { role: "img", "aria-label": label } : { "aria-hidden": true },
161
124
  ...rest,
162
125
  children: render?.(name, { size: SIZE_PX[size] })
@@ -164,19 +127,8 @@ function Icon({ name, size = "md", label, className, ...rest }) {
164
127
  );
165
128
  }
166
129
 
167
- // src/components/Button/Button.module.css
168
- var Button_default = {
169
- button: "Button_button",
170
- "size-sm": "Button_size-sm",
171
- "size-md": "Button_size-md",
172
- "size-lg": "Button_size-lg",
173
- "variant-primary": "Button_variant-primary",
174
- "variant-secondary": "Button_variant-secondary",
175
- "variant-ghost": "Button_variant-ghost",
176
- "variant-danger": "Button_variant-danger",
177
- fullWidth: "Button_fullWidth",
178
- "icon-only": "Button_icon-only"
179
- };
130
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Button/Button.module.css?mds-scoped
131
+ var Button_module_default = { "button": "mds-Button__button", "size-sm": "mds-Button__size-sm", "size-md": "mds-Button__size-md", "size-lg": "mds-Button__size-lg", "variant-primary": "mds-Button__variant-primary", "variant-secondary": "mds-Button__variant-secondary", "variant-ghost": "mds-Button__variant-ghost", "variant-highlight": "mds-Button__variant-highlight", "variant-danger": "mds-Button__variant-danger", "variant-warning": "mds-Button__variant-warning", "fullWidth": "mds-Button__fullWidth", "icon-only": "mds-Button__icon-only" };
180
132
  var SPINNER_PX = { sm: 16, md: 18, lg: 20 };
181
133
  function Button({
182
134
  variant = "primary",
@@ -201,11 +153,11 @@ function Button({
201
153
  Element,
202
154
  {
203
155
  className: cx(
204
- Button_default.button,
205
- Button_default[`variant-${variant}`],
206
- Button_default[`size-${size}`],
207
- fullWidth && Button_default.fullWidth,
208
- iconOnly && Button_default["icon-only"],
156
+ Button_module_default.button,
157
+ Button_module_default[`variant-${variant}`],
158
+ Button_module_default[`size-${size}`],
159
+ fullWidth && Button_module_default.fullWidth,
160
+ iconOnly && Button_module_default["icon-only"],
209
161
  className
210
162
  ),
211
163
  "aria-busy": loading || void 0,
@@ -220,58 +172,78 @@ function Button({
220
172
  );
221
173
  }
222
174
 
223
- // src/components/Link/Link.module.css
224
- var Link_default = {
225
- link: "Link_link",
226
- "variant-inline": "Link_variant-inline",
227
- "variant-standalone": "Link_variant-standalone"
228
- };
175
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Link/Link.module.css?mds-scoped
176
+ var Link_module_default = { "link": "mds-Link__link", "variant-inline": "mds-Link__variant-inline", "variant-standalone": "mds-Link__variant-standalone", "variant-plain": "mds-Link__variant-plain", "size-xs": "mds-Link__size-xs", "size-sm": "mds-Link__size-sm", "size-base": "mds-Link__size-base", "size-lg": "mds-Link__size-lg", "size-xl": "mds-Link__size-xl" };
229
177
  function Link({
230
178
  variant = "inline",
179
+ size,
231
180
  external = false,
232
- as: Element = "a",
233
- className,
181
+ as,
234
182
  ...rest
235
183
  }) {
184
+ const Element = as ?? "a";
185
+ const { className, type, ...others } = rest;
236
186
  const externalProps = external ? { target: "_blank", rel: "noopener noreferrer" } : {};
187
+ const typeProps = Element === "button" ? { type: type ?? "button" } : type !== void 0 ? { type } : {};
237
188
  return /* @__PURE__ */ jsx(
238
189
  Element,
239
190
  {
240
- className: cx(Link_default.link, Link_default[`variant-${variant}`], className),
191
+ className: cx(
192
+ Link_module_default.link,
193
+ Link_module_default[`variant-${variant}`],
194
+ size && Link_module_default[`size-${size}`],
195
+ className
196
+ ),
241
197
  ...externalProps,
242
- ...rest
198
+ ...others,
199
+ ...typeProps
243
200
  }
244
201
  );
245
202
  }
246
203
 
247
- // src/components/Avatar/Avatar.module.css
248
- var Avatar_default = {
249
- avatar: "Avatar_avatar",
250
- "size-sm": "Avatar_size-sm",
251
- "size-md": "Avatar_size-md",
252
- "size-lg": "Avatar_size-lg",
253
- image: "Avatar_image",
254
- initials: "Avatar_initials"
255
- };
204
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Avatar/Avatar.module.css?mds-scoped
205
+ var Avatar_module_default = { "avatar": "mds-Avatar__avatar", "size-xs": "mds-Avatar__size-xs", "size-sm": "mds-Avatar__size-sm", "size-md": "mds-Avatar__size-md", "size-lg": "mds-Avatar__size-lg", "size-xl": "mds-Avatar__size-xl", "tone-1": "mds-Avatar__tone-1", "tone-2": "mds-Avatar__tone-2", "tone-3": "mds-Avatar__tone-3", "tone-4": "mds-Avatar__tone-4", "tone-5": "mds-Avatar__tone-5", "image": "mds-Avatar__image", "initials": "mds-Avatar__initials" };
256
206
  function initials(name) {
257
207
  const words = name.trim().split(/\s+/).filter(Boolean);
258
208
  const first = words[0]?.[0] ?? "";
259
209
  const last = words.length > 1 ? words.at(-1)?.[0] ?? "" : "";
260
210
  return (first + last).toUpperCase();
261
211
  }
262
- function Avatar({ name, src, size = "md", className, ...rest }) {
263
- return /* @__PURE__ */ jsx("span", { className: cx(Avatar_default.avatar, Avatar_default[`size-${size}`], className), ...rest, children: src ? /* @__PURE__ */ jsx("img", { className: Avatar_default.image, src, alt: name }) : /* @__PURE__ */ jsx("span", { role: "img", "aria-label": name, className: Avatar_default.initials, children: initials(name) }) });
212
+ function Avatar({
213
+ name,
214
+ src,
215
+ size = "md",
216
+ tone,
217
+ decorative = false,
218
+ className,
219
+ ...rest
220
+ }) {
221
+ return /* @__PURE__ */ jsx(
222
+ "span",
223
+ {
224
+ className: cx(
225
+ Avatar_module_default.avatar,
226
+ Avatar_module_default[`size-${size}`],
227
+ tone !== void 0 && Avatar_module_default[`tone-${tone}`],
228
+ className
229
+ ),
230
+ "aria-hidden": decorative || void 0,
231
+ ...rest,
232
+ children: src ? /* @__PURE__ */ jsx("img", { className: Avatar_module_default.image, src, alt: decorative ? "" : name }) : /* @__PURE__ */ jsx(
233
+ "span",
234
+ {
235
+ role: decorative ? void 0 : "img",
236
+ "aria-label": decorative ? void 0 : name,
237
+ className: Avatar_module_default.initials,
238
+ children: initials(name)
239
+ }
240
+ )
241
+ }
242
+ );
264
243
  }
265
244
 
266
- // src/components/AvatarGroup/AvatarGroup.module.css
267
- var AvatarGroup_default = {
268
- group: "AvatarGroup_group",
269
- item: "AvatarGroup_item",
270
- overflow: "AvatarGroup_overflow",
271
- "size-sm": "AvatarGroup_size-sm",
272
- "size-md": "AvatarGroup_size-md",
273
- "size-lg": "AvatarGroup_size-lg"
274
- };
245
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AvatarGroup/AvatarGroup.module.css?mds-scoped
246
+ var AvatarGroup_module_default = { "group": "mds-AvatarGroup__group", "item": "mds-AvatarGroup__item", "overflow": "mds-AvatarGroup__overflow", "size-xs": "mds-AvatarGroup__size-xs", "size-sm": "mds-AvatarGroup__size-sm", "size-md": "mds-AvatarGroup__size-md", "size-lg": "mds-AvatarGroup__size-lg", "size-xl": "mds-AvatarGroup__size-xl" };
275
247
  function AvatarGroup({
276
248
  children,
277
249
  max = 4,
@@ -282,12 +254,12 @@ function AvatarGroup({
282
254
  const all = Children.toArray(children);
283
255
  const visible = all.slice(0, max);
284
256
  const hidden = all.length - visible.length;
285
- return /* @__PURE__ */ jsxs("div", { className: cx(AvatarGroup_default.group, className), ...rest, children: [
286
- visible.map((child, i) => /* @__PURE__ */ jsx("span", { className: AvatarGroup_default.item, children: child }, i)),
257
+ return /* @__PURE__ */ jsxs("div", { className: cx(AvatarGroup_module_default.group, className), ...rest, children: [
258
+ visible.map((child, i) => /* @__PURE__ */ jsx("span", { className: AvatarGroup_module_default.item, children: child }, i)),
287
259
  hidden > 0 && /* @__PURE__ */ jsxs(
288
260
  "span",
289
261
  {
290
- className: cx(AvatarGroup_default.item, AvatarGroup_default.overflow, AvatarGroup_default[`size-${size}`]),
262
+ className: cx(AvatarGroup_module_default.item, AvatarGroup_module_default.overflow, AvatarGroup_module_default[`size-${size}`]),
291
263
  "aria-label": `${hidden} more`,
292
264
  children: [
293
265
  "+",
@@ -298,28 +270,14 @@ function AvatarGroup({
298
270
  ] });
299
271
  }
300
272
 
301
- // src/components/Badge/Badge.module.css
302
- var Badge_default = {
303
- badge: "Badge_badge",
304
- "tone-neutral": "Badge_tone-neutral",
305
- "tone-accent": "Badge_tone-accent",
306
- "tone-danger": "Badge_tone-danger",
307
- "tone-warning": "Badge_tone-warning",
308
- "tone-success": "Badge_tone-success"
309
- };
273
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Badge/Badge.module.css?mds-scoped
274
+ var Badge_module_default = { "badge": "mds-Badge__badge", "tone-neutral": "mds-Badge__tone-neutral", "tone-accent": "mds-Badge__tone-accent", "tone-highlight": "mds-Badge__tone-highlight", "tone-danger": "mds-Badge__tone-danger", "tone-warning": "mds-Badge__tone-warning", "tone-success": "mds-Badge__tone-success" };
310
275
  function Badge({ tone = "neutral", className, ...rest }) {
311
- return /* @__PURE__ */ jsx("span", { className: cx(Badge_default.badge, Badge_default[`tone-${tone}`], className), ...rest });
276
+ return /* @__PURE__ */ jsx("span", { className: cx(Badge_module_default.badge, Badge_module_default[`tone-${tone}`], className), ...rest });
312
277
  }
313
278
 
314
- // src/components/Chip/Chip.module.css
315
- var Chip_default = {
316
- chip: "Chip_chip",
317
- "variant-soft": "Chip_variant-soft",
318
- "variant-outline": "Chip_variant-outline",
319
- selected: "Chip_selected",
320
- interactive: "Chip_interactive",
321
- disabled: "Chip_disabled"
322
- };
279
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/Chip.module.css?mds-scoped
280
+ var Chip_module_default = { "chip": "mds-Chip__chip", "variant-soft": "mds-Chip__variant-soft", "variant-outline": "mds-Chip__variant-outline", "variant-highlight": "mds-Chip__variant-highlight", "selected": "mds-Chip__selected", "interactive": "mds-Chip__interactive", "disabled": "mds-Chip__disabled" };
323
281
  function Chip({
324
282
  children,
325
283
  variant = "soft",
@@ -333,11 +291,11 @@ function Chip({
333
291
  const interactive = typeof onClick === "function";
334
292
  const shared = {
335
293
  className: cx(
336
- Chip_default.chip,
337
- Chip_default[`variant-${variant}`],
338
- selected && Chip_default.selected,
339
- interactive && !disabled && Chip_default.interactive,
340
- disabled && Chip_default.disabled,
294
+ Chip_module_default.chip,
295
+ Chip_module_default[`variant-${variant}`],
296
+ selected && Chip_module_default.selected,
297
+ interactive && !disabled && Chip_module_default.interactive,
298
+ disabled && Chip_module_default.disabled,
341
299
  className
342
300
  ),
343
301
  ...rest
@@ -359,27 +317,14 @@ function Chip({
359
317
  ) : /* @__PURE__ */ jsx("span", { ...shared, children: content });
360
318
  }
361
319
 
362
- // src/components/Chip/ChipGroup.module.css
363
- var ChipGroup_default = {
364
- group: "ChipGroup_group",
365
- "gap-hairline": "ChipGroup_gap-hairline",
366
- "gap-tight": "ChipGroup_gap-tight",
367
- "gap-base": "ChipGroup_gap-base"
368
- };
320
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipGroup.module.css?mds-scoped
321
+ var ChipGroup_module_default = { "group": "mds-ChipGroup__group", "gap-hairline": "mds-ChipGroup__gap-hairline", "gap-tight": "mds-ChipGroup__gap-tight", "gap-base": "mds-ChipGroup__gap-base" };
369
322
  function ChipGroup({ children, gap = "tight", className, ...rest }) {
370
- return /* @__PURE__ */ jsx("div", { className: cx(ChipGroup_default.group, ChipGroup_default[`gap-${gap}`], className), ...rest, children });
323
+ return /* @__PURE__ */ jsx("div", { className: cx(ChipGroup_module_default.group, ChipGroup_module_default[`gap-${gap}`], className), ...rest, children });
371
324
  }
372
325
 
373
- // src/components/Chip/ChipBar.module.css
374
- var ChipBar_default = {
375
- bar: "ChipBar_bar",
376
- "gap-hairline": "ChipBar_gap-hairline",
377
- "gap-tight": "ChipBar_gap-tight",
378
- "gap-base": "ChipBar_gap-base",
379
- bordered: "ChipBar_bordered",
380
- fade: "ChipBar_fade",
381
- item: "ChipBar_item"
382
- };
326
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Chip/ChipBar.module.css?mds-scoped
327
+ var ChipBar_module_default = { "bar": "mds-ChipBar__bar", "gap-hairline": "mds-ChipBar__gap-hairline", "gap-tight": "mds-ChipBar__gap-tight", "gap-base": "mds-ChipBar__gap-base", "bordered": "mds-ChipBar__bordered", "fade": "mds-ChipBar__fade", "item": "mds-ChipBar__item" };
383
328
  function ChipBar({
384
329
  children,
385
330
  gap = "tight",
@@ -391,20 +336,15 @@ function ChipBar({
391
336
  return /* @__PURE__ */ jsx(
392
337
  "div",
393
338
  {
394
- className: cx(ChipBar_default.bar, ChipBar_default[`gap-${gap}`], bordered && ChipBar_default.bordered, fade && ChipBar_default.fade, className),
339
+ className: cx(ChipBar_module_default.bar, ChipBar_module_default[`gap-${gap}`], bordered && ChipBar_module_default.bordered, fade && ChipBar_module_default.fade, className),
395
340
  ...rest,
396
- children: Children.map(children, (child) => /* @__PURE__ */ jsx("div", { className: ChipBar_default.item, children: child }))
341
+ children: Children.map(children, (child) => /* @__PURE__ */ jsx("div", { className: ChipBar_module_default.item, children: child }))
397
342
  }
398
343
  );
399
344
  }
400
345
 
401
- // src/components/CountButton/CountButton.module.css
402
- var CountButton_default = {
403
- button: "CountButton_button",
404
- "tone-accent": "CountButton_tone-accent",
405
- "tone-danger": "CountButton_tone-danger",
406
- glyph: "CountButton_glyph"
407
- };
346
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/CountButton/CountButton.module.css?mds-scoped
347
+ var CountButton_module_default = { "button": "mds-CountButton__button", "tone-accent": "mds-CountButton__tone-accent", "tone-danger": "mds-CountButton__tone-danger", "glyph": "mds-CountButton__glyph" };
408
348
  var SPINNER_PX2 = 20;
409
349
  function CountButton({
410
350
  icon,
@@ -426,24 +366,18 @@ function CountButton({
426
366
  "aria-label": label,
427
367
  "aria-pressed": isToggle ? active : void 0,
428
368
  "aria-busy": loading || void 0,
429
- className: cx(CountButton_default.button, active && CountButton_default[`tone-${tone}`], className),
369
+ className: cx(CountButton_module_default.button, active && CountButton_module_default[`tone-${tone}`], className),
430
370
  ...rest,
431
371
  children: [
432
- loading ? /* @__PURE__ */ jsx(Spinner, { size: SPINNER_PX2, label: "", "aria-hidden": "true" }) : /* @__PURE__ */ jsx("span", { className: CountButton_default.glyph, children: icon }),
372
+ loading ? /* @__PURE__ */ jsx(Spinner, { size: SPINNER_PX2, label: "", "aria-hidden": "true" }) : /* @__PURE__ */ jsx("span", { className: CountButton_module_default.glyph, children: icon }),
433
373
  children != null ? /* @__PURE__ */ jsx("span", { children }) : null
434
374
  ]
435
375
  }
436
376
  );
437
377
  }
438
378
 
439
- // src/components/Field/Field.module.css
440
- var Field_default = {
441
- field: "Field_field",
442
- label: "Field_label",
443
- required: "Field_required",
444
- message: "Field_message",
445
- error: "Field_error"
446
- };
379
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Field/Field.module.css?mds-scoped
380
+ var Field_module_default = { "field": "mds-Field__field", "label": "mds-Field__label", "required": "mds-Field__required", "message": "mds-Field__message", "error": "mds-Field__error" };
447
381
  var FieldContext = createContext(null);
448
382
  function useFieldContext() {
449
383
  return useContext(FieldContext);
@@ -452,10 +386,10 @@ function Field({ label, children, hint, error, required = false, className }) {
452
386
  const id = useId();
453
387
  const messageId = `${id}-message`;
454
388
  const message = error ?? hint;
455
- return /* @__PURE__ */ jsxs("div", { className: cx(Field_default.field, className), children: [
456
- /* @__PURE__ */ jsxs("label", { className: Field_default.label, htmlFor: id, children: [
389
+ return /* @__PURE__ */ jsxs("div", { className: cx(Field_module_default.field, className), children: [
390
+ /* @__PURE__ */ jsxs("label", { className: Field_module_default.label, htmlFor: id, children: [
457
391
  label,
458
- required && /* @__PURE__ */ jsx("span", { className: Field_default.required, "aria-hidden": "true", children: "*" })
392
+ required && /* @__PURE__ */ jsx("span", { className: Field_module_default.required, "aria-hidden": "true", children: "*" })
459
393
  ] }),
460
394
  /* @__PURE__ */ jsx(
461
395
  FieldContext.Provider,
@@ -464,34 +398,27 @@ function Field({ label, children, hint, error, required = false, className }) {
464
398
  children
465
399
  }
466
400
  ),
467
- message && /* @__PURE__ */ jsx("span", { id: messageId, className: cx(Field_default.message, error !== void 0 && Field_default.error), children: message })
401
+ message && /* @__PURE__ */ jsx("span", { id: messageId, className: cx(Field_module_default.message, error !== void 0 && Field_module_default.error), children: message })
468
402
  ] });
469
403
  }
470
404
 
471
- // src/components/Select/Select.module.css
472
- var Select_default = {
473
- wrap: "Select_wrap",
474
- select: "Select_select",
475
- "size-sm": "Select_size-sm",
476
- "size-md": "Select_size-md",
477
- "size-lg": "Select_size-lg",
478
- chevron: "Select_chevron"
479
- };
405
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Select/Select.module.css?mds-scoped
406
+ var Select_module_default = { "wrap": "mds-Select__wrap", "select": "mds-Select__select", "size-sm": "mds-Select__size-sm", "size-md": "mds-Select__size-md", "size-lg": "mds-Select__size-lg", "chevron": "mds-Select__chevron" };
480
407
  function Select({ size = "md", className, children, ...rest }) {
481
408
  const field = useFieldContext();
482
- return /* @__PURE__ */ jsxs("span", { className: Select_default.wrap, children: [
409
+ return /* @__PURE__ */ jsxs("span", { className: Select_module_default.wrap, children: [
483
410
  /* @__PURE__ */ jsx(
484
411
  "select",
485
412
  {
486
413
  id: rest.id ?? field?.id,
487
414
  "aria-describedby": rest["aria-describedby"] ?? field?.describedBy,
488
415
  "aria-invalid": rest["aria-invalid"] ?? (field?.invalid || void 0),
489
- className: cx(Select_default.select, Select_default[`size-${size}`], className),
416
+ className: cx(Select_module_default.select, Select_module_default[`size-${size}`], className),
490
417
  ...rest,
491
418
  children
492
419
  }
493
420
  ),
494
- /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: Select_default.chevron, children: /* @__PURE__ */ jsx("path", { d: "M4 6l4 4 4-4", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) })
421
+ /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: Select_module_default.chevron, children: /* @__PURE__ */ jsx("path", { d: "M4 6l4 4 4-4", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) })
495
422
  ] });
496
423
  }
497
424
  var OverlayHistoryContext = createContext(null);
@@ -561,14 +488,10 @@ function usePresence(open, durationMs) {
561
488
  return { mounted: open || mounted, visible: open };
562
489
  }
563
490
 
564
- // src/components/Overlay/Overlay.module.css
565
- var Overlay_default = {
566
- scrim: "Overlay_scrim",
567
- "variant-modal": "Overlay_variant-modal",
568
- "variant-sheet": "Overlay_variant-sheet"
569
- };
491
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Overlay/Overlay.module.css?mds-scoped
492
+ var Overlay_module_default = { "scrim": "mds-Overlay__scrim", "variant-modal": "mds-Overlay__variant-modal", "variant-sheet": "mds-Overlay__variant-sheet" };
570
493
  var OVERLAY_EXIT_MS = 200;
571
- function Overlay({ open, onClose, label, variant, closeOnScrimClick, panelClassName, children }) {
494
+ function Overlay({ open, onClose, label, variant, role = "dialog", closeOnScrimClick, panelClassName, children }) {
572
495
  const { mounted, visible } = usePresence(open, OVERLAY_EXIT_MS);
573
496
  const ref = useOverlay({ open, onClose });
574
497
  if (!mounted) return null;
@@ -576,7 +499,7 @@ function Overlay({ open, onClose, label, variant, closeOnScrimClick, panelClassN
576
499
  /* @__PURE__ */ jsx(
577
500
  "div",
578
501
  {
579
- className: cx(Overlay_default.scrim, Overlay_default[`variant-${variant}`]),
502
+ className: cx(Overlay_module_default.scrim, Overlay_module_default[`variant-${variant}`]),
580
503
  "data-open": visible || void 0,
581
504
  "data-testid": "mds-scrim",
582
505
  onClick: closeOnScrimClick ? onClose : void 0,
@@ -584,7 +507,7 @@ function Overlay({ open, onClose, label, variant, closeOnScrimClick, panelClassN
584
507
  "div",
585
508
  {
586
509
  ref,
587
- role: "dialog",
510
+ role,
588
511
  "aria-modal": "true",
589
512
  "aria-label": label,
590
513
  tabIndex: -1,
@@ -600,13 +523,8 @@ function Overlay({ open, onClose, label, variant, closeOnScrimClick, panelClassN
600
523
  );
601
524
  }
602
525
 
603
- // src/components/Sheet/Sheet.module.css
604
- var Sheet_default = {
605
- panel: "Sheet_panel",
606
- header: "Sheet_header",
607
- body: "Sheet_body",
608
- footer: "Sheet_footer"
609
- };
526
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Sheet/Sheet.module.css?mds-scoped
527
+ var Sheet_module_default = { "panel": "mds-Sheet__panel", "header": "mds-Sheet__header", "body": "mds-Sheet__body", "footer": "mds-Sheet__footer", "headerTitle": "mds-Sheet__headerTitle", "close": "mds-Sheet__close", "closeGlyph": "mds-Sheet__closeGlyph" };
610
528
  function Sheet({ open, onClose, label, closeOnScrimClick = true, children }) {
611
529
  return /* @__PURE__ */ jsx(
612
530
  Overlay,
@@ -616,41 +534,26 @@ function Sheet({ open, onClose, label, closeOnScrimClick = true, children }) {
616
534
  label,
617
535
  variant: "sheet",
618
536
  closeOnScrimClick,
619
- panelClassName: Sheet_default.panel,
537
+ panelClassName: Sheet_module_default.panel,
620
538
  children
621
539
  }
622
540
  );
623
541
  }
624
- function SheetHeader({ children }) {
625
- return /* @__PURE__ */ jsx("div", { className: Sheet_default.header, children });
542
+ function SheetHeader({ children, onClose, closeLabel }) {
543
+ return /* @__PURE__ */ jsxs("div", { className: Sheet_module_default.header, children: [
544
+ /* @__PURE__ */ jsx("span", { className: Sheet_module_default.headerTitle, children }),
545
+ onClose !== void 0 && /* @__PURE__ */ jsx("button", { type: "button", "aria-label": closeLabel, className: Sheet_module_default.close, onClick: onClose, children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: Sheet_module_default.closeGlyph, children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }) }) })
546
+ ] });
626
547
  }
627
548
  function SheetBody({ children }) {
628
- return /* @__PURE__ */ jsx("div", { className: Sheet_default.body, children });
549
+ return /* @__PURE__ */ jsx("div", { className: Sheet_module_default.body, children });
629
550
  }
630
551
  function SheetFooter({ children }) {
631
- return /* @__PURE__ */ jsx("div", { className: Sheet_default.footer, children });
552
+ return /* @__PURE__ */ jsx("div", { className: Sheet_module_default.footer, children });
632
553
  }
633
554
 
634
- // src/components/DateTimePicker/DateTimePicker.module.css
635
- var DateTimePicker_default = {
636
- trigger: "DateTimePicker_trigger",
637
- hasValue: "DateTimePicker_hasValue",
638
- triggerLabel: "DateTimePicker_triggerLabel",
639
- glyph: "DateTimePicker_glyph",
640
- timeRow: "DateTimePicker_timeRow",
641
- grow: "DateTimePicker_grow",
642
- meridiem: "DateTimePicker_meridiem",
643
- colon: "DateTimePicker_colon",
644
- calendarHeader: "DateTimePicker_calendarHeader",
645
- monthLabel: "DateTimePicker_monthLabel",
646
- weekdays: "DateTimePicker_weekdays",
647
- weekday: "DateTimePicker_weekday",
648
- grid: "DateTimePicker_grid",
649
- day: "DateTimePicker_day",
650
- today: "DateTimePicker_today",
651
- selected: "DateTimePicker_selected",
652
- outside: "DateTimePicker_outside"
653
- };
555
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/DateTimePicker/DateTimePicker.module.css?mds-scoped
556
+ var DateTimePicker_module_default = { "trigger": "mds-DateTimePicker__trigger", "hasValue": "mds-DateTimePicker__hasValue", "triggerLabel": "mds-DateTimePicker__triggerLabel", "glyph": "mds-DateTimePicker__glyph", "timeRow": "mds-DateTimePicker__timeRow", "grow": "mds-DateTimePicker__grow", "meridiem": "mds-DateTimePicker__meridiem", "colon": "mds-DateTimePicker__colon", "calendarHeader": "mds-DateTimePicker__calendarHeader", "monthLabel": "mds-DateTimePicker__monthLabel", "weekdays": "mds-DateTimePicker__weekdays", "weekday": "mds-DateTimePicker__weekday", "grid": "mds-DateTimePicker__grid", "day": "mds-DateTimePicker__day", "today": "mds-DateTimePicker__today", "selected": "mds-DateTimePicker__selected", "outside": "mds-DateTimePicker__outside" };
654
557
  var DEFAULT_LABELS = {
655
558
  dialog: "Pick date and time",
656
559
  previousMonth: "Previous month",
@@ -716,13 +619,13 @@ function minuteOptions(step) {
716
619
  function pad2(n) {
717
620
  return String(n).padStart(2, "0");
718
621
  }
719
- var chevronLeft = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_default.glyph, children: /* @__PURE__ */ jsx("path", { d: "M10 3l-5 5 5 5", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) });
720
- var chevronRight = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_default.glyph, children: /* @__PURE__ */ jsx("path", { d: "M6 3l5 5-5 5", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) });
721
- var calendarGlyph = /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_default.glyph, children: [
622
+ var chevronLeft = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_module_default.glyph, children: /* @__PURE__ */ jsx("path", { d: "M10 3l-5 5 5 5", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) });
623
+ var chevronRight = /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_module_default.glyph, children: /* @__PURE__ */ jsx("path", { d: "M6 3l5 5-5 5", fill: "none", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) });
624
+ var calendarGlyph = /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_module_default.glyph, children: [
722
625
  /* @__PURE__ */ jsx("rect", { x: "2.5", y: "3.5", width: "11", height: "10", rx: "1.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
723
626
  /* @__PURE__ */ jsx("path", { d: "M2.5 6.5h11M5.5 2v2.5M10.5 2v2.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
724
627
  ] });
725
- var clockGlyph = /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_default.glyph, children: [
628
+ var clockGlyph = /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: DateTimePicker_module_default.glyph, children: [
726
629
  /* @__PURE__ */ jsx("circle", { cx: "8", cy: "8", r: "5.75", fill: "none", stroke: "currentColor", strokeWidth: "1.5" }),
727
630
  /* @__PURE__ */ jsx("path", { d: "M8 5v3.25l2 1.5", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
728
631
  ] });
@@ -739,6 +642,7 @@ function DateTimePicker({
739
642
  labels
740
643
  }) {
741
644
  const text = { ...DEFAULT_LABELS, ...labels };
645
+ const field = useFieldContext();
742
646
  const intl = useMemo(() => localeData(locale), [locale]);
743
647
  const [open, setOpen] = useState(false);
744
648
  const [draft, setDraft] = useState(() => /* @__PURE__ */ new Date());
@@ -894,7 +798,7 @@ function DateTimePicker({
894
798
  "aria-pressed": isSelected,
895
799
  onClick: inMonth ? () => pickDay(cell.getDate()) : void 0,
896
800
  onKeyDown: inMonth && !isDisabled ? (e) => onDayKeyDown(e, cell) : void 0,
897
- className: cx(DateTimePicker_default.day, isToday && DateTimePicker_default.today, isSelected && DateTimePicker_default.selected, !inMonth && DateTimePicker_default.outside),
801
+ className: cx(DateTimePicker_module_default.day, isToday && DateTimePicker_module_default.today, isSelected && DateTimePicker_module_default.selected, !inMonth && DateTimePicker_module_default.outside),
898
802
  children: cell.getDate()
899
803
  },
900
804
  `c-${i}`
@@ -904,41 +808,42 @@ function DateTimePicker({
904
808
  /* @__PURE__ */ jsxs(
905
809
  "button",
906
810
  {
907
- id,
811
+ id: id ?? field?.id,
908
812
  type: "button",
909
813
  disabled,
814
+ "aria-describedby": field?.describedBy,
910
815
  "aria-haspopup": "dialog",
911
816
  "aria-expanded": open,
912
817
  "aria-label": ariaLabel ? `${ariaLabel}: ${value ? intl.full.format(new Date(value)) : placeholder}` : void 0,
913
818
  onClick: openPicker,
914
- className: cx(DateTimePicker_default.trigger, value && DateTimePicker_default.hasValue),
819
+ className: cx(DateTimePicker_module_default.trigger, value && DateTimePicker_module_default.hasValue),
915
820
  children: [
916
821
  calendarGlyph,
917
- /* @__PURE__ */ jsx("span", { className: DateTimePicker_default.triggerLabel, children: value ? intl.full.format(new Date(value)) : placeholder })
822
+ /* @__PURE__ */ jsx("span", { className: DateTimePicker_module_default.triggerLabel, children: value ? intl.full.format(new Date(value)) : placeholder })
918
823
  ]
919
824
  }
920
825
  ),
921
826
  /* @__PURE__ */ jsxs(Sheet, { open, onClose: () => setOpen(false), label: ariaLabel ?? text.dialog, children: [
922
827
  /* @__PURE__ */ jsx(SheetHeader, { children: intl.full.format(draft) }),
923
828
  /* @__PURE__ */ jsxs(SheetBody, { children: [
924
- /* @__PURE__ */ jsxs("div", { className: DateTimePicker_default.timeRow, children: [
829
+ /* @__PURE__ */ jsxs("div", { className: DateTimePicker_module_default.timeRow, children: [
925
830
  clockGlyph,
926
831
  intl.hour12 ? /* @__PURE__ */ jsxs(Fragment, { children: [
927
- /* @__PURE__ */ jsx(Select, { "aria-label": text.hour, value: String(h12), onChange: (e) => setHour(e.target.value), className: DateTimePicker_default.grow, children: Array.from({ length: 12 }, (_, i) => /* @__PURE__ */ jsx("option", { value: String(i + 1), children: i + 1 }, i + 1)) }),
928
- /* @__PURE__ */ jsx("span", { className: DateTimePicker_default.colon, "aria-hidden": "true", children: ":" }),
929
- /* @__PURE__ */ jsx(Select, { "aria-label": text.minute, value: String(draft.getMinutes()), onChange: (e) => setMinute(e.target.value), className: DateTimePicker_default.grow, children: minuteOptions(minuteStep).map((m) => /* @__PURE__ */ jsx("option", { value: String(m), children: pad2(m) }, m)) }),
930
- /* @__PURE__ */ jsxs(Select, { "aria-label": text.dayPeriod, value: isPM ? "pm" : "am", onChange: (e) => setMeridiem(e.target.value), className: DateTimePicker_default.meridiem, children: [
832
+ /* @__PURE__ */ jsx(Select, { "aria-label": text.hour, value: String(h12), onChange: (e) => setHour(e.target.value), className: DateTimePicker_module_default.grow, children: Array.from({ length: 12 }, (_, i) => /* @__PURE__ */ jsx("option", { value: String(i + 1), children: i + 1 }, i + 1)) }),
833
+ /* @__PURE__ */ jsx("span", { className: DateTimePicker_module_default.colon, "aria-hidden": "true", children: ":" }),
834
+ /* @__PURE__ */ jsx(Select, { "aria-label": text.minute, value: String(draft.getMinutes()), onChange: (e) => setMinute(e.target.value), className: DateTimePicker_module_default.grow, children: minuteOptions(minuteStep).map((m) => /* @__PURE__ */ jsx("option", { value: String(m), children: pad2(m) }, m)) }),
835
+ /* @__PURE__ */ jsxs(Select, { "aria-label": text.dayPeriod, value: isPM ? "pm" : "am", onChange: (e) => setMeridiem(e.target.value), className: DateTimePicker_module_default.meridiem, children: [
931
836
  /* @__PURE__ */ jsx("option", { value: "am", children: intl.dayPeriods[0] }),
932
837
  /* @__PURE__ */ jsx("option", { value: "pm", children: intl.dayPeriods[1] })
933
838
  ] })
934
839
  ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
935
- /* @__PURE__ */ jsx(Select, { "aria-label": text.hour, value: String(h24), onChange: (e) => setHour(e.target.value), className: DateTimePicker_default.grow, children: Array.from({ length: 24 }, (_, i) => /* @__PURE__ */ jsx("option", { value: String(i), children: pad2(i) }, i)) }),
936
- /* @__PURE__ */ jsx("span", { className: DateTimePicker_default.colon, "aria-hidden": "true", children: ":" }),
937
- /* @__PURE__ */ jsx(Select, { "aria-label": text.minute, value: String(draft.getMinutes()), onChange: (e) => setMinute(e.target.value), className: DateTimePicker_default.grow, children: minuteOptions(minuteStep).map((m) => /* @__PURE__ */ jsx("option", { value: String(m), children: pad2(m) }, m)) })
840
+ /* @__PURE__ */ jsx(Select, { "aria-label": text.hour, value: String(h24), onChange: (e) => setHour(e.target.value), className: DateTimePicker_module_default.grow, children: Array.from({ length: 24 }, (_, i) => /* @__PURE__ */ jsx("option", { value: String(i), children: pad2(i) }, i)) }),
841
+ /* @__PURE__ */ jsx("span", { className: DateTimePicker_module_default.colon, "aria-hidden": "true", children: ":" }),
842
+ /* @__PURE__ */ jsx(Select, { "aria-label": text.minute, value: String(draft.getMinutes()), onChange: (e) => setMinute(e.target.value), className: DateTimePicker_module_default.grow, children: minuteOptions(minuteStep).map((m) => /* @__PURE__ */ jsx("option", { value: String(m), children: pad2(m) }, m)) })
938
843
  ] })
939
844
  ] }),
940
845
  /* @__PURE__ */ jsxs("div", { role: "group", "aria-label": intl.monthTitle.format(first), children: [
941
- /* @__PURE__ */ jsxs("div", { className: DateTimePicker_default.calendarHeader, children: [
846
+ /* @__PURE__ */ jsxs("div", { className: DateTimePicker_module_default.calendarHeader, children: [
942
847
  /* @__PURE__ */ jsx(
943
848
  Button,
944
849
  {
@@ -951,11 +856,11 @@ function DateTimePicker({
951
856
  children: chevronLeft
952
857
  }
953
858
  ),
954
- /* @__PURE__ */ jsx("span", { className: DateTimePicker_default.monthLabel, children: intl.monthTitle.format(first) }),
859
+ /* @__PURE__ */ jsx("span", { className: DateTimePicker_module_default.monthLabel, children: intl.monthTitle.format(first) }),
955
860
  /* @__PURE__ */ jsx(Button, { iconOnly: true, "aria-label": text.nextMonth, variant: "ghost", size: "sm", onClick: () => shiftMonth(1), children: chevronRight })
956
861
  ] }),
957
- /* @__PURE__ */ jsx("div", { className: DateTimePicker_default.weekdays, children: intl.weekdays.map((w, i) => /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: DateTimePicker_default.weekday, children: w }, `wd-${i}`)) }),
958
- /* @__PURE__ */ jsx("div", { className: DateTimePicker_default.grid, children: dayCells })
862
+ /* @__PURE__ */ jsx("div", { className: DateTimePicker_module_default.weekdays, children: intl.weekdays.map((w, i) => /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: DateTimePicker_module_default.weekday, children: w }, `wd-${i}`)) }),
863
+ /* @__PURE__ */ jsx("div", { className: DateTimePicker_module_default.grid, children: dayCells })
959
864
  ] })
960
865
  ] }),
961
866
  /* @__PURE__ */ jsxs(SheetFooter, { children: [
@@ -966,56 +871,41 @@ function DateTimePicker({
966
871
  ] });
967
872
  }
968
873
 
969
- // src/components/Tag/Tag.module.css
970
- var Tag_default = {
971
- tag: "Tag_tag",
972
- "tone-accent": "Tag_tone-accent",
973
- remove: "Tag_remove",
974
- removeGlyph: "Tag_removeGlyph"
975
- };
874
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tag/Tag.module.css?mds-scoped
875
+ var Tag_module_default = { "tag": "mds-Tag__tag", "tone-accent": "mds-Tag__tone-accent", "remove": "mds-Tag__remove", "removeGlyph": "mds-Tag__removeGlyph" };
976
876
  function Tag({ children, tone = "neutral", onRemove, className, ...rest }) {
977
877
  const text = typeof children === "string" ? children : void 0;
978
- return /* @__PURE__ */ jsxs("span", { className: cx(Tag_default.tag, Tag_default[`tone-${tone}`], className), ...rest, children: [
878
+ return /* @__PURE__ */ jsxs("span", { className: cx(Tag_module_default.tag, Tag_module_default[`tone-${tone}`], className), ...rest, children: [
979
879
  children,
980
880
  onRemove && /* @__PURE__ */ jsx(
981
881
  "button",
982
882
  {
983
883
  type: "button",
984
- className: Tag_default.remove,
884
+ className: Tag_module_default.remove,
985
885
  "aria-label": text ? `Remove ${text}` : "Remove",
986
886
  onClick: onRemove,
987
- children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: Tag_default.removeGlyph, children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }) })
887
+ children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: Tag_module_default.removeGlyph, children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }) })
988
888
  }
989
889
  )
990
890
  ] });
991
891
  }
992
892
 
993
- // src/components/Divider/Divider.module.css
994
- var Divider_default = {
995
- divider: "Divider_divider",
996
- horizontal: "Divider_horizontal",
997
- vertical: "Divider_vertical"
998
- };
893
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Divider/Divider.module.css?mds-scoped
894
+ var Divider_module_default = { "divider": "mds-Divider__divider", "horizontal": "mds-Divider__horizontal", "vertical": "mds-Divider__vertical" };
999
895
  function Divider({ orientation = "horizontal", className, ...rest }) {
1000
896
  return /* @__PURE__ */ jsx(
1001
897
  "div",
1002
898
  {
1003
899
  role: "separator",
1004
900
  "aria-orientation": orientation === "vertical" ? "vertical" : void 0,
1005
- className: cx(Divider_default.divider, Divider_default[orientation], className),
901
+ className: cx(Divider_module_default.divider, Divider_module_default[orientation], className),
1006
902
  ...rest
1007
903
  }
1008
904
  );
1009
905
  }
1010
906
 
1011
- // src/components/Skeleton/Skeleton.module.css
1012
- var Skeleton_default = {
1013
- skeleton: "Skeleton_skeleton",
1014
- pulse: "Skeleton_pulse",
1015
- "variant-text": "Skeleton_variant-text",
1016
- "variant-rect": "Skeleton_variant-rect",
1017
- "variant-circle": "Skeleton_variant-circle"
1018
- };
907
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Skeleton/Skeleton.module.css?mds-scoped
908
+ var Skeleton_module_default = { "skeleton": "mds-Skeleton__skeleton", "pulse": "mds-Skeleton__pulse", "variant-text": "mds-Skeleton__variant-text", "variant-rect": "mds-Skeleton__variant-rect", "variant-circle": "mds-Skeleton__variant-circle" };
1019
909
  function Skeleton({
1020
910
  variant = "text",
1021
911
  width,
@@ -1032,18 +922,15 @@ function Skeleton({
1032
922
  "span",
1033
923
  {
1034
924
  "aria-hidden": "true",
1035
- className: cx(Skeleton_default.skeleton, Skeleton_default[`variant-${variant}`], className),
925
+ className: cx(Skeleton_module_default.skeleton, Skeleton_module_default[`variant-${variant}`], className),
1036
926
  style: { ...vars, ...style },
1037
927
  ...rest
1038
928
  }
1039
929
  );
1040
930
  }
1041
931
 
1042
- // src/components/ProgressBar/ProgressBar.module.css
1043
- var ProgressBar_default = {
1044
- track: "ProgressBar_track",
1045
- fill: "ProgressBar_fill",
1046
- indeterminate: "ProgressBar_indeterminate"};
932
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ProgressBar/ProgressBar.module.css?mds-scoped
933
+ var ProgressBar_module_default = { "track": "mds-ProgressBar__track", "fill": "mds-ProgressBar__fill", "indeterminate": "mds-ProgressBar__indeterminate"};
1047
934
  function ProgressBar({
1048
935
  value = 0,
1049
936
  label,
@@ -1061,50 +948,60 @@ function ProgressBar({
1061
948
  "aria-valuemin": 0,
1062
949
  "aria-valuemax": 100,
1063
950
  "aria-valuenow": indeterminate ? void 0 : clamped,
1064
- className: cx(ProgressBar_default.track, indeterminate && ProgressBar_default.indeterminate, className),
951
+ className: cx(ProgressBar_module_default.track, indeterminate && ProgressBar_module_default.indeterminate, className),
1065
952
  style: { ...{ "--progress": `${clamped}%` }, ...style },
1066
953
  ...rest,
1067
- children: /* @__PURE__ */ jsx("span", { className: ProgressBar_default.fill })
954
+ children: /* @__PURE__ */ jsx("span", { className: ProgressBar_module_default.fill })
1068
955
  }
1069
956
  );
1070
957
  }
1071
958
 
1072
- // src/components/Input/Input.module.css
1073
- var Input_default = {
1074
- input: "Input_input",
1075
- "size-sm": "Input_size-sm",
1076
- "size-md": "Input_size-md",
1077
- "size-lg": "Input_size-lg"
1078
- };
1079
- function Input({ size = "md", className, ...rest }) {
959
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Input/Input.module.css?mds-scoped
960
+ var Input_module_default = { "input": "mds-Input__input", "size-sm": "mds-Input__size-sm", "size-md": "mds-Input__size-md", "size-lg": "mds-Input__size-lg", "iconWrap": "mds-Input__iconWrap", "icon": "mds-Input__icon", "iconLeft": "mds-Input__iconLeft", "iconRight": "mds-Input__iconRight", "with-icon-left": "mds-Input__with-icon-left", "with-icon-right": "mds-Input__with-icon-right" };
961
+ function Input({
962
+ size = "md",
963
+ invalid,
964
+ iconLeft,
965
+ iconRight,
966
+ className,
967
+ ...rest
968
+ }) {
1080
969
  const field = useFieldContext();
1081
- return /* @__PURE__ */ jsx(
970
+ const input = /* @__PURE__ */ jsx(
1082
971
  "input",
1083
972
  {
1084
973
  id: rest.id ?? field?.id,
1085
974
  "aria-describedby": rest["aria-describedby"] ?? field?.describedBy,
1086
- "aria-invalid": rest["aria-invalid"] ?? (field?.invalid || void 0),
1087
- className: cx(Input_default.input, Input_default[`size-${size}`], className),
975
+ "aria-invalid": rest["aria-invalid"] ?? ((invalid ?? field?.invalid) || void 0),
976
+ className: cx(
977
+ Input_module_default.input,
978
+ Input_module_default[`size-${size}`],
979
+ iconLeft != null && Input_module_default["with-icon-left"],
980
+ iconRight != null && Input_module_default["with-icon-right"],
981
+ className
982
+ ),
1088
983
  ...rest
1089
984
  }
1090
985
  );
986
+ if (iconLeft == null && iconRight == null) return input;
987
+ return /* @__PURE__ */ jsxs("span", { className: Input_module_default.iconWrap, children: [
988
+ input,
989
+ iconLeft != null && /* @__PURE__ */ jsx("span", { className: cx(Input_module_default.icon, Input_module_default.iconLeft), "aria-hidden": "true", children: iconLeft }),
990
+ iconRight != null && /* @__PURE__ */ jsx("span", { className: cx(Input_module_default.icon, Input_module_default.iconRight), "aria-hidden": "true", children: iconRight })
991
+ ] });
1091
992
  }
1092
993
 
1093
- // src/components/PasswordInput/PasswordInput.module.css
1094
- var PasswordInput_default = {
1095
- wrap: "PasswordInput_wrap",
1096
- input: "PasswordInput_input",
1097
- toggle: "PasswordInput_toggle"
1098
- };
994
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/PasswordInput/PasswordInput.module.css?mds-scoped
995
+ var PasswordInput_module_default = { "wrap": "mds-PasswordInput__wrap", "input": "mds-PasswordInput__input", "toggle": "mds-PasswordInput__toggle" };
1099
996
  function PasswordInput({ className, ...rest }) {
1100
997
  const [visible, setVisible] = useState(false);
1101
- return /* @__PURE__ */ jsxs("span", { className: PasswordInput_default.wrap, children: [
1102
- /* @__PURE__ */ jsx(Input, { ...rest, type: visible ? "text" : "password", className: cx(PasswordInput_default.input, className) }),
998
+ return /* @__PURE__ */ jsxs("span", { className: PasswordInput_module_default.wrap, children: [
999
+ /* @__PURE__ */ jsx(Input, { ...rest, type: visible ? "text" : "password", className: cx(PasswordInput_module_default.input, className) }),
1103
1000
  /* @__PURE__ */ jsx(
1104
1001
  "button",
1105
1002
  {
1106
1003
  type: "button",
1107
- className: PasswordInput_default.toggle,
1004
+ className: PasswordInput_module_default.toggle,
1108
1005
  "aria-label": visible ? "Hide password" : "Show password",
1109
1006
  "aria-pressed": visible,
1110
1007
  onClick: () => setVisible((v) => !v),
@@ -1128,12 +1025,8 @@ function PasswordInput({ className, ...rest }) {
1128
1025
  ] });
1129
1026
  }
1130
1027
 
1131
- // src/components/Textarea/Textarea.module.css
1132
- var Textarea_default = {
1133
- textarea: "Textarea_textarea",
1134
- wrap: "Textarea_wrap",
1135
- count: "Textarea_count"
1136
- };
1028
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Textarea/Textarea.module.css?mds-scoped
1029
+ var Textarea_module_default = { "textarea": "mds-Textarea__textarea", "wrap": "mds-Textarea__wrap", "count": "mds-Textarea__count" };
1137
1030
  function Textarea({ rows = 3, showCount = false, className, ...rest }) {
1138
1031
  const field = useFieldContext();
1139
1032
  const [tracked, setTracked] = useState(() => String(rest.defaultValue ?? ""));
@@ -1149,73 +1042,76 @@ function Textarea({ rows = 3, showCount = false, className, ...rest }) {
1149
1042
  "aria-describedby": rest["aria-describedby"] ?? field?.describedBy,
1150
1043
  "aria-invalid": rest["aria-invalid"] ?? (field?.invalid || void 0),
1151
1044
  rows,
1152
- className: cx(Textarea_default.textarea, className),
1045
+ className: cx(Textarea_module_default.textarea, className),
1153
1046
  ...rest,
1154
1047
  ...showCount ? { onChange } : {}
1155
1048
  }
1156
1049
  );
1157
1050
  if (!showCount) return textarea;
1158
- return /* @__PURE__ */ jsxs("span", { className: Textarea_default.wrap, children: [
1051
+ return /* @__PURE__ */ jsxs("span", { className: Textarea_module_default.wrap, children: [
1159
1052
  textarea,
1160
- /* @__PURE__ */ jsx("span", { className: Textarea_default.count, "aria-hidden": "true", children: rest.maxLength !== void 0 ? `${current.length}/${rest.maxLength}` : current.length })
1053
+ /* @__PURE__ */ jsx("span", { className: Textarea_module_default.count, "aria-hidden": "true", children: rest.maxLength !== void 0 ? `${current.length}/${rest.maxLength}` : current.length })
1161
1054
  ] });
1162
1055
  }
1163
1056
 
1164
- // src/components/Checkbox/Checkbox.module.css
1165
- var Checkbox_default = {
1166
- root: "Checkbox_root",
1167
- box: "Checkbox_box",
1168
- label: "Checkbox_label"
1169
- };
1057
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Checkbox/Checkbox.module.css?mds-scoped
1058
+ var Checkbox_module_default = { "root": "mds-Checkbox__root", "box": "mds-Checkbox__box", "label": "mds-Checkbox__label" };
1170
1059
  function Checkbox({ label, className, ...rest }) {
1171
- return /* @__PURE__ */ jsxs("label", { className: cx(Checkbox_default.root, className), children: [
1172
- /* @__PURE__ */ jsx("input", { type: "checkbox", className: Checkbox_default.box, ...rest }),
1173
- /* @__PURE__ */ jsx("span", { className: Checkbox_default.label, children: label })
1060
+ return /* @__PURE__ */ jsxs("label", { className: cx(Checkbox_module_default.root, className), children: [
1061
+ /* @__PURE__ */ jsx("input", { type: "checkbox", className: Checkbox_module_default.box, ...rest }),
1062
+ /* @__PURE__ */ jsx("span", { className: Checkbox_module_default.label, children: label })
1174
1063
  ] });
1175
1064
  }
1176
1065
 
1177
- // src/components/Radio/Radio.module.css
1178
- var Radio_default = {
1179
- root: "Radio_root",
1180
- dot: "Radio_dot",
1181
- label: "Radio_label"
1182
- };
1066
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Radio/Radio.module.css?mds-scoped
1067
+ var Radio_module_default = { "root": "mds-Radio__root", "dot": "mds-Radio__dot", "label": "mds-Radio__label" };
1183
1068
  function Radio({ label, className, ...rest }) {
1184
- return /* @__PURE__ */ jsxs("label", { className: cx(Radio_default.root, className), children: [
1185
- /* @__PURE__ */ jsx("input", { type: "radio", className: Radio_default.dot, ...rest }),
1186
- /* @__PURE__ */ jsx("span", { className: Radio_default.label, children: label })
1069
+ return /* @__PURE__ */ jsxs("label", { className: cx(Radio_module_default.root, className), children: [
1070
+ /* @__PURE__ */ jsx("input", { type: "radio", className: Radio_module_default.dot, ...rest }),
1071
+ /* @__PURE__ */ jsx("span", { className: Radio_module_default.label, children: label })
1187
1072
  ] });
1188
1073
  }
1189
1074
 
1190
- // src/components/Switch/Switch.module.css
1191
- var Switch_default = {
1192
- root: "Switch_root",
1193
- track: "Switch_track",
1194
- label: "Switch_label"
1195
- };
1196
- function Switch({ label, className, ...rest }) {
1197
- return /* @__PURE__ */ jsxs("label", { className: cx(Switch_default.root, className), children: [
1198
- /* @__PURE__ */ jsx("input", { type: "checkbox", role: "switch", className: Switch_default.track, ...rest }),
1199
- /* @__PURE__ */ jsx("span", { className: Switch_default.label, children: label })
1075
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Switch/Switch.module.css?mds-scoped
1076
+ var Switch_module_default = { "root": "mds-Switch__root", "track": "mds-Switch__track", "trackWrap": "mds-Switch__trackWrap", "spinner": "mds-Switch__spinner", "label": "mds-Switch__label" };
1077
+ function Switch({
1078
+ label,
1079
+ loading = false,
1080
+ disabled = false,
1081
+ className,
1082
+ ...rest
1083
+ }) {
1084
+ return /* @__PURE__ */ jsxs("label", { className: cx(Switch_module_default.root, className), children: [
1085
+ /* @__PURE__ */ jsxs("span", { className: Switch_module_default.trackWrap, children: [
1086
+ /* @__PURE__ */ jsx(
1087
+ "input",
1088
+ {
1089
+ type: "checkbox",
1090
+ role: "switch",
1091
+ className: Switch_module_default.track,
1092
+ disabled: disabled || loading,
1093
+ "aria-busy": loading || void 0,
1094
+ ...rest
1095
+ }
1096
+ ),
1097
+ loading && /* @__PURE__ */ jsx(Spinner, { size: 12, label: "", "aria-hidden": "true", className: Switch_module_default.spinner })
1098
+ ] }),
1099
+ label !== void 0 && /* @__PURE__ */ jsx("span", { className: Switch_module_default.label, children: label })
1200
1100
  ] });
1201
1101
  }
1202
1102
 
1203
- // src/components/SegmentedControl/SegmentedControl.module.css
1204
- var SegmentedControl_default = {
1205
- group: "SegmentedControl_group",
1206
- segment: "SegmentedControl_segment",
1207
- input: "SegmentedControl_input",
1208
- face: "SegmentedControl_face"
1209
- };
1103
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SegmentedControl/SegmentedControl.module.css?mds-scoped
1104
+ var SegmentedControl_module_default = { "group": "mds-SegmentedControl__group", "segment": "mds-SegmentedControl__segment", "input": "mds-SegmentedControl__input", "face": "mds-SegmentedControl__face" };
1210
1105
  function SegmentedControl({
1211
1106
  label,
1212
1107
  options,
1213
1108
  value,
1214
1109
  onChange,
1110
+ disabled = false,
1215
1111
  className
1216
1112
  }) {
1217
1113
  const name = useId();
1218
- return /* @__PURE__ */ jsx("div", { role: "radiogroup", "aria-label": label, className: cx(SegmentedControl_default.group, className), children: options.map((option) => /* @__PURE__ */ jsxs("label", { className: SegmentedControl_default.segment, children: [
1114
+ return /* @__PURE__ */ jsx("div", { role: "radiogroup", "aria-label": label, className: cx(SegmentedControl_module_default.group, className), children: options.map((option) => /* @__PURE__ */ jsxs("label", { className: SegmentedControl_module_default.segment, children: [
1219
1115
  /* @__PURE__ */ jsx(
1220
1116
  "input",
1221
1117
  {
@@ -1224,24 +1120,19 @@ function SegmentedControl({
1224
1120
  value: option.value,
1225
1121
  checked: option.value === value,
1226
1122
  onChange: () => onChange(option.value),
1227
- className: SegmentedControl_default.input
1123
+ disabled,
1124
+ className: SegmentedControl_module_default.input
1228
1125
  }
1229
1126
  ),
1230
- /* @__PURE__ */ jsx("span", { className: SegmentedControl_default.face, children: option.label })
1127
+ /* @__PURE__ */ jsx("span", { className: SegmentedControl_module_default.face, children: option.label })
1231
1128
  ] }, option.value)) });
1232
1129
  }
1233
1130
 
1234
- // src/components/SearchField/SearchField.module.css
1235
- var SearchField_default = {
1236
- wrap: "SearchField_wrap",
1237
- glass: "SearchField_glass",
1238
- input: "SearchField_input",
1239
- clear: "SearchField_clear",
1240
- clearGlyph: "SearchField_clearGlyph"
1241
- };
1131
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/SearchField/SearchField.module.css?mds-scoped
1132
+ var SearchField_module_default = { "wrap": "mds-SearchField__wrap", "glass": "mds-SearchField__glass", "input": "mds-SearchField__input", "clear": "mds-SearchField__clear", "clearGlyph": "mds-SearchField__clearGlyph" };
1242
1133
  function SearchField({ label, value, onChange, className, ...rest }) {
1243
- return /* @__PURE__ */ jsxs("span", { className: cx(SearchField_default.wrap, className), children: [
1244
- /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: SearchField_default.glass, children: /* @__PURE__ */ jsx(
1134
+ return /* @__PURE__ */ jsxs("span", { className: cx(SearchField_module_default.wrap, className), children: [
1135
+ /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: SearchField_module_default.glass, children: /* @__PURE__ */ jsx(
1245
1136
  "path",
1246
1137
  {
1247
1138
  d: "M7 12a5 5 0 1 1 0-10 5 5 0 0 1 0 10Zm7 2-3.5-3.5",
@@ -1258,7 +1149,7 @@ function SearchField({ label, value, onChange, className, ...rest }) {
1258
1149
  "aria-label": label,
1259
1150
  value,
1260
1151
  onChange: (event) => onChange(event.target.value),
1261
- className: SearchField_default.input,
1152
+ className: SearchField_module_default.input,
1262
1153
  ...rest
1263
1154
  }
1264
1155
  ),
@@ -1267,28 +1158,32 @@ function SearchField({ label, value, onChange, className, ...rest }) {
1267
1158
  {
1268
1159
  type: "button",
1269
1160
  "aria-label": "Clear search",
1270
- className: SearchField_default.clear,
1161
+ className: SearchField_module_default.clear,
1271
1162
  onClick: () => onChange(""),
1272
- children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: SearchField_default.clearGlyph, children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }) })
1163
+ children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: SearchField_module_default.clearGlyph, children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }) })
1273
1164
  }
1274
1165
  )
1275
1166
  ] });
1276
1167
  }
1277
1168
 
1278
- // src/components/List/List.module.css
1279
- var List_default = {
1280
- group: "List_group",
1281
- item: "List_item",
1282
- row: "List_row",
1283
- interactive: "List_interactive",
1284
- leading: "List_leading",
1285
- trailing: "List_trailing",
1286
- text: "List_text",
1287
- title: "List_title",
1288
- description: "List_description"
1289
- };
1290
- function ListGroup({ className, ...rest }) {
1291
- return /* @__PURE__ */ jsx("ul", { className: cx(List_default.group, className), ...rest });
1169
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/List/List.module.css?mds-scoped
1170
+ var List_module_default = { "group": "mds-List__group", "labelledGroup": "mds-List__labelledGroup", "label": "mds-List__label", "item": "mds-List__item", "surface-card": "mds-List__surface-card", "surface-sunken": "mds-List__surface-sunken", "surface-accent": "mds-List__surface-accent", "surface-plain": "mds-List__surface-plain", "row": "mds-List__row", "interactive": "mds-List__interactive", "leading": "mds-List__leading", "trailing": "mds-List__trailing", "text": "mds-List__text", "title": "mds-List__title", "description": "mds-List__description" };
1171
+ var ListGroupContext = createContext(false);
1172
+ function ListGroup({ label, className, ...rest }) {
1173
+ const headingId = useId();
1174
+ const list = /* @__PURE__ */ jsx(ListGroupContext.Provider, { value: true, children: /* @__PURE__ */ jsx(
1175
+ "ul",
1176
+ {
1177
+ className: cx(List_module_default.group, className),
1178
+ "aria-labelledby": label != null ? headingId : void 0,
1179
+ ...rest
1180
+ }
1181
+ ) });
1182
+ if (label == null) return list;
1183
+ return /* @__PURE__ */ jsxs("div", { className: List_module_default.labelledGroup, children: [
1184
+ /* @__PURE__ */ jsx("span", { className: List_module_default.label, id: headingId, children: label }),
1185
+ list
1186
+ ] });
1292
1187
  }
1293
1188
  function ListItem({
1294
1189
  title,
@@ -1296,43 +1191,55 @@ function ListItem({
1296
1191
  leading,
1297
1192
  trailing,
1298
1193
  onClick,
1194
+ pressed,
1299
1195
  href,
1196
+ surface,
1300
1197
  className,
1301
1198
  ...rest
1302
1199
  }) {
1200
+ const inGroup = useContext(ListGroupContext);
1201
+ const Root = inGroup ? "li" : "div";
1202
+ const resolved = surface ?? (inGroup ? void 0 : "card");
1303
1203
  const content = /* @__PURE__ */ jsxs(Fragment, { children: [
1304
- leading != null && /* @__PURE__ */ jsx("span", { className: List_default.leading, children: leading }),
1305
- /* @__PURE__ */ jsxs("span", { className: List_default.text, children: [
1306
- /* @__PURE__ */ jsx("span", { className: List_default.title, children: title }),
1307
- description != null && /* @__PURE__ */ jsx("span", { className: List_default.description, children: description })
1204
+ leading != null && /* @__PURE__ */ jsx("span", { className: List_module_default.leading, children: leading }),
1205
+ /* @__PURE__ */ jsxs("span", { className: List_module_default.text, children: [
1206
+ /* @__PURE__ */ jsx("span", { className: List_module_default.title, children: title }),
1207
+ description != null && /* @__PURE__ */ jsx("span", { className: List_module_default.description, children: description })
1308
1208
  ] }),
1309
- trailing != null && /* @__PURE__ */ jsx("span", { className: List_default.trailing, children: trailing })
1209
+ trailing != null && /* @__PURE__ */ jsx("span", { className: List_module_default.trailing, children: trailing })
1310
1210
  ] });
1311
- return /* @__PURE__ */ jsx("li", { className: cx(List_default.item, className), ...rest, children: href !== void 0 ? /* @__PURE__ */ jsx("a", { className: cx(List_default.row, List_default.interactive), href, children: content }) : onClick !== void 0 ? /* @__PURE__ */ jsx("button", { type: "button", className: cx(List_default.row, List_default.interactive), onClick, children: content }) : /* @__PURE__ */ jsx("span", { className: List_default.row, children: content }) });
1211
+ return /* @__PURE__ */ jsx(
1212
+ Root,
1213
+ {
1214
+ className: cx(List_module_default.item, resolved && List_module_default[`surface-${resolved}`], className),
1215
+ ...rest,
1216
+ children: href !== void 0 ? /* @__PURE__ */ jsx("a", { className: cx(List_module_default.row, List_module_default.interactive), href, children: content }) : onClick !== void 0 ? /* @__PURE__ */ jsx(
1217
+ "button",
1218
+ {
1219
+ type: "button",
1220
+ className: cx(List_module_default.row, List_module_default.interactive),
1221
+ onClick,
1222
+ "aria-pressed": pressed,
1223
+ children: content
1224
+ }
1225
+ ) : /* @__PURE__ */ jsx("span", { className: List_module_default.row, children: content })
1226
+ }
1227
+ );
1312
1228
  }
1313
1229
 
1314
- // src/components/EmptyState/EmptyState.module.css
1315
- var EmptyState_default = {
1316
- root: "EmptyState_root",
1317
- icon: "EmptyState_icon",
1318
- action: "EmptyState_action"
1319
- };
1230
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/EmptyState/EmptyState.module.css?mds-scoped
1231
+ var EmptyState_module_default = { "root": "mds-EmptyState__root", "icon": "mds-EmptyState__icon", "action": "mds-EmptyState__action" };
1320
1232
  function EmptyState({ title, description, icon, action, className }) {
1321
- return /* @__PURE__ */ jsxs("div", { className: cx(EmptyState_default.root, className), children: [
1322
- icon != null && /* @__PURE__ */ jsx("span", { className: EmptyState_default.icon, "aria-hidden": "true", children: icon }),
1233
+ return /* @__PURE__ */ jsxs("div", { className: cx(EmptyState_module_default.root, className), children: [
1234
+ icon != null && /* @__PURE__ */ jsx("span", { className: EmptyState_module_default.icon, "aria-hidden": "true", children: icon }),
1323
1235
  /* @__PURE__ */ jsx(Heading, { level: 3, children: title }),
1324
1236
  description !== void 0 && /* @__PURE__ */ jsx(Text, { tone: "secondary", children: description }),
1325
- action != null && /* @__PURE__ */ jsx("span", { className: EmptyState_default.action, children: action })
1237
+ action != null && /* @__PURE__ */ jsx("span", { className: EmptyState_module_default.action, children: action })
1326
1238
  ] });
1327
1239
  }
1328
1240
 
1329
- // src/components/Tabs/Tabs.module.css
1330
- var Tabs_default = {
1331
- list: "Tabs_list",
1332
- tab: "Tabs_tab",
1333
- selected: "Tabs_selected",
1334
- panel: "Tabs_panel"
1335
- };
1241
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Tabs/Tabs.module.css?mds-scoped
1242
+ var Tabs_module_default = { "list": "mds-Tabs__list", "tab": "mds-Tabs__tab", "selected": "mds-Tabs__selected", "panel": "mds-Tabs__panel" };
1336
1243
  var TabsContext = createContext(null);
1337
1244
  function useTabs(component) {
1338
1245
  const context = useContext(TabsContext);
@@ -1341,7 +1248,18 @@ function useTabs(component) {
1341
1248
  }
1342
1249
  function Tabs({ value, onChange, children }) {
1343
1250
  const baseId = useId();
1344
- return /* @__PURE__ */ jsx(TabsContext.Provider, { value: { value, onChange, baseId }, children });
1251
+ const [panels, setPanels] = useState(/* @__PURE__ */ new Set());
1252
+ const registerPanel = useCallback((panel) => {
1253
+ setPanels((prev) => new Set(prev).add(panel));
1254
+ return () => {
1255
+ setPanels((prev) => {
1256
+ const next = new Set(prev);
1257
+ next.delete(panel);
1258
+ return next;
1259
+ });
1260
+ };
1261
+ }, []);
1262
+ return /* @__PURE__ */ jsx(TabsContext.Provider, { value: { value, onChange, baseId, panels, registerPanel }, children });
1345
1263
  }
1346
1264
  function onArrow(event, onChange) {
1347
1265
  const keys = ["ArrowLeft", "ArrowRight", "Home", "End"];
@@ -1364,7 +1282,7 @@ function TabList({ label, className, children, ...rest }) {
1364
1282
  {
1365
1283
  role: "tablist",
1366
1284
  "aria-label": label,
1367
- className: cx(Tabs_default.list, className),
1285
+ className: cx(Tabs_module_default.list, className),
1368
1286
  onKeyDown: (event) => onArrow(event, onChange),
1369
1287
  ...rest,
1370
1288
  children
@@ -1381,10 +1299,10 @@ function Tab({ value, className, children, ...rest }) {
1381
1299
  role: "tab",
1382
1300
  id: `${tabs.baseId}-tab-${value}`,
1383
1301
  "aria-selected": selected,
1384
- "aria-controls": `${tabs.baseId}-panel-${value}`,
1302
+ "aria-controls": tabs.panels.has(value) ? `${tabs.baseId}-panel-${value}` : void 0,
1385
1303
  tabIndex: selected ? 0 : -1,
1386
1304
  "data-value": value,
1387
- className: cx(Tabs_default.tab, selected && Tabs_default.selected, className),
1305
+ className: cx(Tabs_module_default.tab, selected && Tabs_module_default.selected, className),
1388
1306
  onClick: () => tabs.onChange(value),
1389
1307
  ...rest,
1390
1308
  children
@@ -1394,6 +1312,8 @@ function Tab({ value, className, children, ...rest }) {
1394
1312
  function TabPanel({ value, className, children, ...rest }) {
1395
1313
  const tabs = useTabs("TabPanel");
1396
1314
  const selected = tabs.value === value;
1315
+ const { registerPanel } = tabs;
1316
+ useEffect(() => registerPanel(value), [registerPanel, value]);
1397
1317
  return /* @__PURE__ */ jsx(
1398
1318
  "div",
1399
1319
  {
@@ -1401,32 +1321,26 @@ function TabPanel({ value, className, children, ...rest }) {
1401
1321
  id: `${tabs.baseId}-panel-${value}`,
1402
1322
  "aria-labelledby": `${tabs.baseId}-tab-${value}`,
1403
1323
  hidden: !selected,
1404
- className: cx(Tabs_default.panel, className),
1324
+ className: cx(Tabs_module_default.panel, className),
1405
1325
  ...rest,
1406
1326
  children
1407
1327
  }
1408
1328
  );
1409
1329
  }
1410
1330
 
1411
- // src/components/Toast/Toast.module.css
1412
- var Toast_default = {
1413
- viewport: "Toast_viewport",
1414
- toast: "Toast_toast",
1415
- "tone-success": "Toast_tone-success",
1416
- "tone-danger": "Toast_tone-danger",
1417
- body: "Toast_body",
1418
- title: "Toast_title",
1419
- description: "Toast_description",
1420
- close: "Toast_close",
1421
- closeGlyph: "Toast_closeGlyph"
1422
- };
1331
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Toast/Toast.module.css?mds-scoped
1332
+ var Toast_module_default = { "viewport": "mds-Toast__viewport", "toast": "mds-Toast__toast", "tone-success": "mds-Toast__tone-success", "tone-danger": "mds-Toast__tone-danger", "body": "mds-Toast__body", "title": "mds-Toast__title", "description": "mds-Toast__description", "close": "mds-Toast__close", "closeGlyph": "mds-Toast__closeGlyph" };
1423
1333
  var ToastContext = createContext(null);
1424
1334
  function useToast() {
1425
1335
  const context = useContext(ToastContext);
1426
1336
  if (context === null) throw new Error("useToast needs a <ToastProvider> above it");
1427
1337
  return context;
1428
1338
  }
1429
- function ToastProvider({ children }) {
1339
+ function ToastProvider({
1340
+ children,
1341
+ regionLabel = "Notifications",
1342
+ dismissLabel = "Dismiss"
1343
+ }) {
1430
1344
  const [toasts, setToasts] = useState([]);
1431
1345
  const nextId = useRef(1);
1432
1346
  const dismiss = useCallback((id) => {
@@ -1444,38 +1358,27 @@ function ToastProvider({ children }) {
1444
1358
  const value = useMemo(() => ({ toast, dismiss }), [toast, dismiss]);
1445
1359
  return /* @__PURE__ */ jsxs(ToastContext.Provider, { value, children: [
1446
1360
  children,
1447
- /* @__PURE__ */ jsx("div", { role: "region", "aria-label": "Notifications", className: Toast_default.viewport, children: toasts.map((entry) => /* @__PURE__ */ jsxs("div", { role: "status", className: cx(Toast_default.toast, Toast_default[`tone-${entry.tone}`]), children: [
1448
- /* @__PURE__ */ jsxs("span", { className: Toast_default.body, children: [
1449
- /* @__PURE__ */ jsx("span", { className: Toast_default.title, children: entry.title }),
1450
- entry.description !== void 0 && /* @__PURE__ */ jsx("span", { className: Toast_default.description, children: entry.description })
1361
+ /* @__PURE__ */ jsx("div", { role: "region", "aria-label": regionLabel, className: Toast_module_default.viewport, children: toasts.map((entry) => /* @__PURE__ */ jsxs("div", { role: "status", className: cx(Toast_module_default.toast, Toast_module_default[`tone-${entry.tone}`]), children: [
1362
+ /* @__PURE__ */ jsxs("span", { className: Toast_module_default.body, children: [
1363
+ /* @__PURE__ */ jsx("span", { className: Toast_module_default.title, children: entry.title }),
1364
+ entry.description !== void 0 && /* @__PURE__ */ jsx("span", { className: Toast_module_default.description, children: entry.description })
1451
1365
  ] }),
1452
1366
  /* @__PURE__ */ jsx(
1453
1367
  "button",
1454
1368
  {
1455
1369
  type: "button",
1456
- "aria-label": "Dismiss",
1457
- className: Toast_default.close,
1370
+ "aria-label": `${dismissLabel}: ${entry.title}`,
1371
+ className: Toast_module_default.close,
1458
1372
  onClick: () => dismiss(entry.id),
1459
- children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: Toast_default.closeGlyph, children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }) })
1373
+ children: /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", className: Toast_module_default.closeGlyph, children: /* @__PURE__ */ jsx("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }) })
1460
1374
  }
1461
1375
  )
1462
1376
  ] }, entry.id)) })
1463
1377
  ] });
1464
1378
  }
1465
1379
 
1466
- // src/components/Stack/Stack.module.css
1467
- var Stack_default = {
1468
- stack: "Stack_stack",
1469
- "gap-hairline": "Stack_gap-hairline",
1470
- "gap-tight": "Stack_gap-tight",
1471
- "gap-base": "Stack_gap-base",
1472
- "gap-loose": "Stack_gap-loose",
1473
- "gap-section": "Stack_gap-section",
1474
- "align-start": "Stack_align-start",
1475
- "align-center": "Stack_align-center",
1476
- "align-end": "Stack_align-end",
1477
- "align-stretch": "Stack_align-stretch"
1478
- };
1380
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Stack/Stack.module.css?mds-scoped
1381
+ var Stack_module_default = { "stack": "mds-Stack__stack", "gap-hairline": "mds-Stack__gap-hairline", "gap-tight": "mds-Stack__gap-tight", "gap-base": "mds-Stack__gap-base", "gap-loose": "mds-Stack__gap-loose", "gap-section": "mds-Stack__gap-section", "align-start": "mds-Stack__align-start", "align-center": "mds-Stack__align-center", "align-end": "mds-Stack__align-end", "align-stretch": "mds-Stack__align-stretch" };
1479
1382
 
1480
1383
  // src/components/Stack/Stack.tsx
1481
1384
  function Stack({
@@ -1486,28 +1389,13 @@ function Stack({
1486
1389
  ...rest
1487
1390
  }) {
1488
1391
  return createElement(as, {
1489
- className: cx(Stack_default.stack, Stack_default[`gap-${gap}`], Stack_default[`align-${align}`], className),
1392
+ className: cx(Stack_module_default.stack, Stack_module_default[`gap-${gap}`], Stack_module_default[`align-${align}`], className),
1490
1393
  ...rest
1491
1394
  });
1492
1395
  }
1493
1396
 
1494
- // src/components/Inline/Inline.module.css
1495
- var Inline_default = {
1496
- inline: "Inline_inline",
1497
- "gap-hairline": "Inline_gap-hairline",
1498
- "gap-tight": "Inline_gap-tight",
1499
- "gap-base": "Inline_gap-base",
1500
- "gap-loose": "Inline_gap-loose",
1501
- "align-start": "Inline_align-start",
1502
- "align-center": "Inline_align-center",
1503
- "align-end": "Inline_align-end",
1504
- "align-baseline": "Inline_align-baseline",
1505
- "justify-start": "Inline_justify-start",
1506
- "justify-center": "Inline_justify-center",
1507
- "justify-end": "Inline_justify-end",
1508
- "justify-between": "Inline_justify-between",
1509
- wrap: "Inline_wrap"
1510
- };
1397
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Inline/Inline.module.css?mds-scoped
1398
+ var Inline_module_default = { "inline": "mds-Inline__inline", "gap-hairline": "mds-Inline__gap-hairline", "gap-tight": "mds-Inline__gap-tight", "gap-base": "mds-Inline__gap-base", "gap-loose": "mds-Inline__gap-loose", "align-start": "mds-Inline__align-start", "align-center": "mds-Inline__align-center", "align-end": "mds-Inline__align-end", "align-baseline": "mds-Inline__align-baseline", "justify-start": "mds-Inline__justify-start", "justify-center": "mds-Inline__justify-center", "justify-end": "mds-Inline__justify-end", "justify-between": "mds-Inline__justify-between", "wrap": "mds-Inline__wrap" };
1511
1399
 
1512
1400
  // src/components/Inline/Inline.tsx
1513
1401
  function Inline({
@@ -1521,23 +1409,19 @@ function Inline({
1521
1409
  }) {
1522
1410
  return createElement(as, {
1523
1411
  className: cx(
1524
- Inline_default.inline,
1525
- Inline_default[`gap-${gap}`],
1526
- Inline_default[`align-${align}`],
1527
- Inline_default[`justify-${justify}`],
1528
- wrap && Inline_default.wrap,
1412
+ Inline_module_default.inline,
1413
+ Inline_module_default[`gap-${gap}`],
1414
+ Inline_module_default[`align-${align}`],
1415
+ Inline_module_default[`justify-${justify}`],
1416
+ wrap && Inline_module_default.wrap,
1529
1417
  className
1530
1418
  ),
1531
1419
  ...rest
1532
1420
  });
1533
1421
  }
1534
1422
 
1535
- // src/components/Container/Container.module.css
1536
- var Container_default = {
1537
- container: "Container_container",
1538
- "width-content": "Container_width-content",
1539
- "width-wide": "Container_width-wide"
1540
- };
1423
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Container/Container.module.css?mds-scoped
1424
+ var Container_module_default = { "container": "mds-Container__container", "width-content": "mds-Container__width-content", "width-wide": "mds-Container__width-wide" };
1541
1425
 
1542
1426
  // src/components/Container/Container.tsx
1543
1427
  function Container({
@@ -1547,48 +1431,36 @@ function Container({
1547
1431
  ...rest
1548
1432
  }) {
1549
1433
  return createElement(as, {
1550
- className: cx(Container_default.container, Container_default[`width-${width}`], className),
1434
+ className: cx(Container_module_default.container, Container_module_default[`width-${width}`], className),
1551
1435
  ...rest
1552
1436
  });
1553
1437
  }
1554
1438
 
1555
- // src/components/Card/Card.module.css
1556
- var Card_default = {
1557
- card: "Card_card",
1558
- "variant-raised": "Card_variant-raised",
1559
- interactive: "Card_interactive",
1560
- header: "Card_header",
1561
- body: "Card_body",
1562
- footer: "Card_footer"
1563
- };
1564
- function Card({ children, variant = "card", onClick, href, className, ...rest }) {
1565
- const cardClass = cx(Card_default.card, Card_default[`variant-${variant}`], className);
1439
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Card/Card.module.css?mds-scoped
1440
+ var Card_module_default = { "card": "mds-Card__card", "variant-raised": "mds-Card__variant-raised", "variant-sunken": "mds-Card__variant-sunken", "emphasis": "mds-Card__emphasis", "interactive": "mds-Card__interactive", "header": "mds-Card__header", "body": "mds-Card__body", "footer": "mds-Card__footer" };
1441
+ function Card({ children, variant = "card", emphasis = false, onClick, href, className, ...rest }) {
1442
+ const cardClass = cx(Card_module_default.card, Card_module_default[`variant-${variant}`], emphasis && Card_module_default.emphasis, className);
1566
1443
  if (href !== void 0) {
1567
- return /* @__PURE__ */ jsx("a", { className: cx(cardClass, Card_default.interactive), href, ...rest, children });
1444
+ return /* @__PURE__ */ jsx("a", { className: cx(cardClass, Card_module_default.interactive), href, ...rest, children });
1568
1445
  }
1569
1446
  if (onClick !== void 0) {
1570
- return /* @__PURE__ */ jsx("button", { type: "button", className: cx(cardClass, Card_default.interactive), onClick, ...rest, children });
1447
+ return /* @__PURE__ */ jsx("button", { type: "button", className: cx(cardClass, Card_module_default.interactive), onClick, ...rest, children });
1571
1448
  }
1572
1449
  return /* @__PURE__ */ jsx("div", { className: cardClass, ...rest, children });
1573
1450
  }
1574
1451
  function CardHeader({ className, ...rest }) {
1575
- return /* @__PURE__ */ jsx("div", { className: cx(Card_default.header, className), ...rest });
1452
+ return /* @__PURE__ */ jsx("div", { className: cx(Card_module_default.header, className), ...rest });
1576
1453
  }
1577
1454
  function CardBody({ className, ...rest }) {
1578
- return /* @__PURE__ */ jsx("div", { className: cx(Card_default.body, className), ...rest });
1455
+ return /* @__PURE__ */ jsx("div", { className: cx(Card_module_default.body, className), ...rest });
1579
1456
  }
1580
1457
  function CardFooter({ className, ...rest }) {
1581
- return /* @__PURE__ */ jsx("div", { className: cx(Card_default.footer, className), ...rest });
1458
+ return /* @__PURE__ */ jsx("div", { className: cx(Card_module_default.footer, className), ...rest });
1582
1459
  }
1583
1460
 
1584
- // src/components/Modal/Modal.module.css
1585
- var Modal_default = {
1586
- panel: "Modal_panel",
1587
- header: "Modal_header",
1588
- body: "Modal_body",
1589
- footer: "Modal_footer"
1590
- };
1591
- function Modal({ open, onClose, label, closeOnScrimClick = true, children }) {
1461
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Modal/Modal.module.css?mds-scoped
1462
+ var Modal_module_default = { "panel": "mds-Modal__panel", "header": "mds-Modal__header", "body": "mds-Modal__body", "footer": "mds-Modal__footer" };
1463
+ function Modal({ open, onClose, label, closeOnScrimClick = true, role = "dialog", children }) {
1592
1464
  return /* @__PURE__ */ jsx(
1593
1465
  Overlay,
1594
1466
  {
@@ -1596,94 +1468,141 @@ function Modal({ open, onClose, label, closeOnScrimClick = true, children }) {
1596
1468
  onClose,
1597
1469
  label,
1598
1470
  variant: "modal",
1471
+ role,
1599
1472
  closeOnScrimClick,
1600
- panelClassName: Modal_default.panel,
1473
+ panelClassName: Modal_module_default.panel,
1601
1474
  children
1602
1475
  }
1603
1476
  );
1604
1477
  }
1605
1478
  function ModalHeader({ children }) {
1606
- return /* @__PURE__ */ jsx("div", { className: Modal_default.header, children });
1479
+ return /* @__PURE__ */ jsx("div", { className: Modal_module_default.header, children });
1607
1480
  }
1608
1481
  function ModalBody({ children }) {
1609
- return /* @__PURE__ */ jsx("div", { className: Modal_default.body, children });
1482
+ return /* @__PURE__ */ jsx("div", { className: Modal_module_default.body, children });
1610
1483
  }
1611
1484
  function ModalFooter({ children }) {
1612
- return /* @__PURE__ */ jsx("div", { className: Modal_default.footer, children });
1485
+ return /* @__PURE__ */ jsx("div", { className: Modal_module_default.footer, children });
1613
1486
  }
1614
1487
 
1615
- // src/components/ConfirmDialog/ConfirmDialog.module.css
1616
- var ConfirmDialog_default = {
1617
- description: "ConfirmDialog_description"
1488
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/ConfirmDialog/ConfirmDialog.module.css?mds-scoped
1489
+ var ConfirmDialog_module_default = { "description": "mds-ConfirmDialog__description", "error": "mds-ConfirmDialog__error" };
1490
+ var CONFIRM_VARIANT = {
1491
+ default: "primary",
1492
+ danger: "danger",
1493
+ warning: "warning"
1618
1494
  };
1619
1495
  function ConfirmDialog({
1620
- open,
1496
+ target,
1497
+ open = target != null,
1621
1498
  onClose,
1622
1499
  onConfirm,
1623
1500
  title,
1624
1501
  description,
1625
1502
  confirmLabel,
1626
1503
  cancelLabel = "Cancel",
1627
- danger = false
1504
+ tone = "default",
1505
+ errorMessage
1628
1506
  }) {
1629
- return /* @__PURE__ */ jsxs(Modal, { open, onClose, label: title, closeOnScrimClick: false, children: [
1630
- /* @__PURE__ */ jsx(ModalHeader, { children: title }),
1631
- /* @__PURE__ */ jsx(ModalBody, { children: description ? /* @__PURE__ */ jsx("p", { className: ConfirmDialog_default.description, children: description }) : null }),
1632
- /* @__PURE__ */ jsxs(ModalFooter, { children: [
1633
- /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: onClose, children: cancelLabel }),
1634
- /* @__PURE__ */ jsx(Button, { variant: danger ? "danger" : "primary", onClick: onConfirm, children: confirmLabel })
1635
- ] })
1636
- ] });
1507
+ const [busy, setBusy] = useState(false);
1508
+ const [error, setError] = useState(null);
1509
+ const [prevOpen, setPrevOpen] = useState(open);
1510
+ if (open !== prevOpen) {
1511
+ setPrevOpen(open);
1512
+ if (open) {
1513
+ setBusy(false);
1514
+ setError(null);
1515
+ }
1516
+ }
1517
+ const live = { target, title, description, confirmLabel, cancelLabel, tone };
1518
+ const [frozen, setFrozen] = useState(live);
1519
+ const view = open ? live : frozen;
1520
+ const close = () => {
1521
+ setFrozen(live);
1522
+ onClose?.();
1523
+ };
1524
+ const handleConfirm = async () => {
1525
+ if (!onConfirm) return;
1526
+ const asked = live.target;
1527
+ setBusy(true);
1528
+ setError(null);
1529
+ try {
1530
+ await onConfirm(asked);
1531
+ close();
1532
+ } catch (e) {
1533
+ setBusy(false);
1534
+ const message = e.message;
1535
+ setError(errorMessage?.(message) ?? message);
1536
+ }
1537
+ };
1538
+ return /* @__PURE__ */ jsxs(
1539
+ Modal,
1540
+ {
1541
+ open,
1542
+ onClose: close,
1543
+ label: view.title,
1544
+ role: "alertdialog",
1545
+ closeOnScrimClick: false,
1546
+ children: [
1547
+ /* @__PURE__ */ jsx(ModalHeader, { children: view.title }),
1548
+ /* @__PURE__ */ jsxs(ModalBody, { children: [
1549
+ view.description != null ? /* @__PURE__ */ jsx("p", { className: ConfirmDialog_module_default.description, children: view.description }) : null,
1550
+ error != null ? /* @__PURE__ */ jsx("p", { role: "alert", className: ConfirmDialog_module_default.error, children: error }) : null
1551
+ ] }),
1552
+ /* @__PURE__ */ jsxs(ModalFooter, { children: [
1553
+ /* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: close, children: view.cancelLabel }),
1554
+ /* @__PURE__ */ jsx(Button, { variant: CONFIRM_VARIANT[view.tone], loading: busy, onClick: handleConfirm, children: view.confirmLabel })
1555
+ ] })
1556
+ ]
1557
+ }
1558
+ );
1637
1559
  }
1638
1560
 
1639
- // src/components/Screen/Screen.module.css
1640
- var Screen_default = {
1641
- screen: "Screen_screen",
1642
- content: "Screen_content"
1643
- };
1561
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/Screen/Screen.module.css?mds-scoped
1562
+ var Screen_module_default = { "screen": "mds-Screen__screen", "content": "mds-Screen__content", "flush": "mds-Screen__flush" };
1644
1563
  function Screen({ children }) {
1645
- return /* @__PURE__ */ jsx("div", { className: Screen_default.screen, children });
1564
+ return /* @__PURE__ */ jsx("div", { className: Screen_module_default.screen, children });
1646
1565
  }
1647
- function ScreenContent({ children }) {
1648
- return /* @__PURE__ */ jsx("main", { className: Screen_default.content, children });
1566
+ function ScreenContent({ children, flush = false, className, ref, ...rest }) {
1567
+ return /* @__PURE__ */ jsx("main", { ref, className: cx(Screen_module_default.content, flush && Screen_module_default.flush, className), ...rest, children });
1649
1568
  }
1650
1569
 
1651
- // src/components/AppBar/AppBar.module.css
1652
- var AppBar_default = {
1653
- bar: "AppBar_bar",
1654
- title: "AppBar_title",
1655
- slot: "AppBar_slot"
1656
- };
1657
- function AppBar({ title, leading, trailing }) {
1658
- return /* @__PURE__ */ jsxs("header", { className: AppBar_default.bar, children: [
1659
- leading ? /* @__PURE__ */ jsx("div", { className: AppBar_default.slot, children: leading }) : null,
1660
- title ? /* @__PURE__ */ jsx("h1", { className: AppBar_default.title, children: title }) : null,
1661
- trailing ? /* @__PURE__ */ jsx("div", { className: AppBar_default.slot, children: trailing }) : null
1570
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/AppBar/AppBar.module.css?mds-scoped
1571
+ var AppBar_module_default = { "bar": "mds-AppBar__bar", "title": "mds-AppBar__title", "text": "mds-AppBar__text", "subtitle": "mds-AppBar__subtitle", "slot": "mds-AppBar__slot" };
1572
+ function AppBar({ title, subtitle, leading, trailing }) {
1573
+ const heading = title ? /* @__PURE__ */ jsx("h1", { className: AppBar_module_default.title, children: title }) : null;
1574
+ return /* @__PURE__ */ jsxs("header", { className: AppBar_module_default.bar, children: [
1575
+ leading ? /* @__PURE__ */ jsx("div", { className: AppBar_module_default.slot, children: leading }) : null,
1576
+ subtitle != null ? /* @__PURE__ */ jsxs("div", { className: AppBar_module_default.text, children: [
1577
+ heading,
1578
+ /* @__PURE__ */ jsx("div", { className: AppBar_module_default.subtitle, children: subtitle })
1579
+ ] }) : heading,
1580
+ trailing ? /* @__PURE__ */ jsx("div", { className: AppBar_module_default.slot, children: trailing }) : null
1662
1581
  ] });
1663
1582
  }
1664
1583
 
1665
- // src/components/TabBar/TabBar.module.css
1666
- var TabBar_default = {
1667
- bar: "TabBar_bar",
1668
- item: "TabBar_item",
1669
- active: "TabBar_active",
1670
- icon: "TabBar_icon",
1671
- label: "TabBar_label"
1672
- };
1584
+ // mds-cssmod:/home/runner/work/mond-design-system/mond-design-system/packages/react/src/components/TabBar/TabBar.module.css?mds-scoped
1585
+ var TabBar_module_default = { "bar": "mds-TabBar__bar", "item": "mds-TabBar__item", "active": "mds-TabBar__active", "icon": "mds-TabBar__icon", "badge": "mds-TabBar__badge", "label": "mds-TabBar__label", "action": "mds-TabBar__action" };
1673
1586
  function TabBar({ label, children }) {
1674
- return /* @__PURE__ */ jsx("nav", { "aria-label": label, className: TabBar_default.bar, children });
1587
+ return /* @__PURE__ */ jsx("nav", { "aria-label": label, className: TabBar_module_default.bar, children });
1675
1588
  }
1676
- function TabBarItem({ label, icon, href, onClick, active = false }) {
1677
- const className = cx(TabBar_default.item, active && TabBar_default.active);
1589
+ function TabBarItem({ label, icon, href, onClick, active = false, badge = false }) {
1590
+ const className = cx(TabBar_module_default.item, active && TabBar_module_default.active);
1678
1591
  const content = /* @__PURE__ */ jsxs(Fragment, { children: [
1679
- /* @__PURE__ */ jsx("span", { className: TabBar_default.icon, "aria-hidden": "true", children: icon }),
1680
- /* @__PURE__ */ jsx("span", { className: TabBar_default.label, children: label })
1592
+ /* @__PURE__ */ jsxs("span", { className: TabBar_module_default.icon, "aria-hidden": "true", children: [
1593
+ icon,
1594
+ badge ? /* @__PURE__ */ jsx("span", { className: TabBar_module_default.badge, "data-testid": "mds-tabbar-badge" }) : null
1595
+ ] }),
1596
+ /* @__PURE__ */ jsx("span", { className: TabBar_module_default.label, children: label })
1681
1597
  ] });
1682
1598
  if (href !== void 0) {
1683
1599
  return /* @__PURE__ */ jsx("a", { href, className, "aria-current": active ? "page" : void 0, onClick, children: content });
1684
1600
  }
1685
1601
  return /* @__PURE__ */ jsx("button", { type: "button", className, "aria-current": active ? "page" : void 0, onClick, children: content });
1686
1602
  }
1603
+ function TabBarAction({ label, icon, onClick }) {
1604
+ return /* @__PURE__ */ jsx("button", { type: "button", "aria-label": label, className: TabBar_module_default.action, onClick, children: /* @__PURE__ */ jsx("span", { className: TabBar_module_default.icon, "aria-hidden": "true", children: icon }) });
1605
+ }
1687
1606
  function useRovingGroup(ref, { selector, orientation = "horizontal" }) {
1688
1607
  return useCallback(
1689
1608
  (event) => {
@@ -1709,6 +1628,6 @@ function useRovingGroup(ref, { selector, orientation = "horizontal" }) {
1709
1628
  );
1710
1629
  }
1711
1630
 
1712
- export { AppBar, Avatar, AvatarGroup, Badge, Button, Card, CardBody, CardFooter, CardHeader, Checkbox, Chip, ChipBar, ChipGroup, ConfirmDialog, Container, CountButton, DateTimePicker, Divider, EmptyState, Field, Heading, Icon, IconProvider, Inline, Input, Link, ListGroup, ListItem, Modal, ModalBody, ModalFooter, ModalHeader, OverlayHistoryContext, PasswordInput, ProgressBar, Radio, Screen, ScreenContent, SearchField, SegmentedControl, Select, Sheet, SheetBody, SheetFooter, SheetHeader, Skeleton, Spinner, Stack, Switch, Tab, TabBar, TabBarItem, TabList, TabPanel, Tabs, Tag, Text, Textarea, ToastProvider, cx, useFieldContext, useOverlay, usePresence, useRovingGroup, useToast };
1631
+ export { AppBar, Avatar, AvatarGroup, Badge, Button, Card, CardBody, CardFooter, CardHeader, Checkbox, Chip, ChipBar, ChipGroup, ConfirmDialog, Container, CountButton, DateTimePicker, Divider, EmptyState, Field, Heading, Icon, IconProvider, Inline, Input, Link, ListGroup, ListItem, Modal, ModalBody, ModalFooter, ModalHeader, OverlayHistoryContext, PasswordInput, ProgressBar, Radio, Screen, ScreenContent, SearchField, SegmentedControl, Select, Sheet, SheetBody, SheetFooter, SheetHeader, Skeleton, Spinner, Stack, Switch, Tab, TabBar, TabBarAction, TabBarItem, TabList, TabPanel, Tabs, Tag, Text, Textarea, ToastProvider, cx, useFieldContext, useOverlay, usePresence, useRovingGroup, useToast };
1713
1632
  //# sourceMappingURL=index.js.map
1714
1633
  //# sourceMappingURL=index.js.map