@marigold/components 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/dist/index.d.ts +250 -133
  2. package/dist/index.js +1161 -615
  3. package/dist/index.mjs +1192 -602
  4. package/package.json +13 -5
package/dist/index.js CHANGED
@@ -51,7 +51,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
51
51
  // src/index.ts
52
52
  var src_exports = {};
53
53
  __export(src_exports, {
54
- ActionGroup: () => ActionGroup,
55
54
  Aside: () => Aside,
56
55
  Aspect: () => Aspect,
57
56
  Badge: () => Badge,
@@ -61,121 +60,59 @@ __export(src_exports, {
61
60
  Card: () => Card,
62
61
  Center: () => Center,
63
62
  Checkbox: () => Checkbox,
63
+ CheckboxGroup: () => CheckboxGroup,
64
+ CheckboxGroupContext: () => CheckboxGroupContext,
64
65
  Columns: () => Columns,
65
66
  Container: () => Container,
67
+ Content: () => Content,
66
68
  Dialog: () => Dialog,
67
69
  Divider: () => Divider,
68
- Field: () => Field,
70
+ Footer: () => Footer,
71
+ Header: () => Header,
72
+ Headline: () => Headline,
69
73
  Image: () => Image,
70
74
  Inline: () => Inline,
71
75
  Input: () => Input,
72
- Item: () => import_collections.Item,
73
- Label: () => Label,
76
+ Item: () => import_collections2.Item,
77
+ Label: () => Label2,
74
78
  LabelBase: () => LabelBase,
75
79
  Link: () => Link,
76
80
  MarigoldProvider: () => MarigoldProvider,
77
81
  Menu: () => Menu,
78
- MenuItem: () => MenuItem,
79
82
  Message: () => Message,
83
+ Overlay: () => Overlay,
84
+ Popover: () => Popover,
80
85
  Radio: () => Radio,
81
86
  SSRProvider: () => import_ssr.SSRProvider,
82
- Section: () => import_collections.Section,
87
+ Section: () => import_collections2.Section,
83
88
  Select: () => Select,
84
89
  Slider: () => Slider,
85
90
  Stack: () => Stack,
86
91
  Switch: () => Switch,
92
+ Table: () => Table,
87
93
  Text: () => Text,
88
- Textarea: () => Textarea,
89
- ThemeProvider: () => import_system5.ThemeProvider,
94
+ TextArea: () => TextArea,
95
+ TextField: () => TextField,
96
+ ThemeProvider: () => import_system18.ThemeProvider,
90
97
  Tiles: () => Tiles,
91
98
  Tooltip: () => Tooltip,
92
99
  TooltipContext: () => TooltipContext,
93
100
  TooltipTrigger: () => TooltipTrigger,
94
101
  ValidationMessage: () => ValidationMessage,
95
- VisuallyHidden: () => import_visually_hidden2.VisuallyHidden,
102
+ VisuallyHidden: () => import_visually_hidden.VisuallyHidden,
103
+ useCheckboxGroupContext: () => useCheckboxGroupContext,
96
104
  useDialogButtonProps: () => useDialogButtonProps,
97
- useTheme: () => import_system5.useTheme
105
+ useTheme: () => import_system18.useTheme
98
106
  });
99
107
  module.exports = __toCommonJS(src_exports);
100
108
 
101
- // src/ActionGroup/ActionGroup.tsx
102
- var import_react3 = __toESM(require("react"));
103
-
104
- // src/Inline/Inline.tsx
109
+ // src/Aside/Aside.tsx
105
110
  var import_react = __toESM(require("react"));
106
111
 
107
112
  // src/Box.ts
108
113
  var import_system = require("@marigold/system");
109
114
 
110
- // src/Inline/Inline.tsx
111
- var ALIGNMENT = {
112
- top: "flex-start",
113
- center: "center",
114
- bottom: "flex-end"
115
- };
116
- var Inline = (_a) => {
117
- var _b = _a, {
118
- space = "none",
119
- align = "center",
120
- children
121
- } = _b, props = __objRest(_b, [
122
- "space",
123
- "align",
124
- "children"
125
- ]);
126
- return /* @__PURE__ */ import_react.default.createElement(import_system.Box, __spreadValues({
127
- __baseCSS: { gap: space, flexWrap: "wrap" },
128
- display: "inline-flex",
129
- alignItems: ALIGNMENT[align]
130
- }, props), children);
131
- };
132
-
133
- // src/Stack/Stack.tsx
134
- var import_react2 = __toESM(require("react"));
135
- var ALIGNMENT2 = {
136
- left: "flex-start",
137
- center: "center",
138
- right: "flex-end"
139
- };
140
- var Stack = (_a) => {
141
- var _b = _a, {
142
- space = "none",
143
- align = "left",
144
- children
145
- } = _b, props = __objRest(_b, [
146
- "space",
147
- "align",
148
- "children"
149
- ]);
150
- return /* @__PURE__ */ import_react2.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
151
- display: "flex",
152
- flexDirection: "column",
153
- alignItems: ALIGNMENT2[align],
154
- p: "0",
155
- css: { gap: space }
156
- }), children);
157
- };
158
-
159
- // src/ActionGroup/ActionGroup.tsx
160
- var ActionGroup = (_a) => {
161
- var _b = _a, {
162
- space = "none",
163
- verticalAlignment = false,
164
- children
165
- } = _b, props = __objRest(_b, [
166
- "space",
167
- "verticalAlignment",
168
- "children"
169
- ]);
170
- return verticalAlignment ? /* @__PURE__ */ import_react3.default.createElement(Stack, __spreadValues({
171
- space
172
- }, props), children) : /* @__PURE__ */ import_react3.default.createElement(Inline, __spreadValues({
173
- space
174
- }, props), children);
175
- };
176
-
177
115
  // src/Aside/Aside.tsx
178
- var import_react4 = __toESM(require("react"));
179
116
  var SIDE_MAP = {
180
117
  left: [":not(style):first-of-type", ":last-child"],
181
118
  right: [":last-child", ":not(style):first-of-type"]
@@ -189,7 +126,7 @@ var Aside = ({
189
126
  wrap = "50%"
190
127
  }) => {
191
128
  const [aside, content] = SIDE_MAP[side];
192
- return /* @__PURE__ */ import_react4.default.createElement(import_system.Box, {
129
+ return /* @__PURE__ */ import_react.default.createElement(import_system.Box, {
193
130
  css: {
194
131
  display: "flex",
195
132
  flexWrap: "wrap",
@@ -209,90 +146,78 @@ var Aside = ({
209
146
  };
210
147
 
211
148
  // src/Aspect/Aspect.tsx
212
- var import_react5 = __toESM(require("react"));
149
+ var import_react2 = __toESM(require("react"));
213
150
  var import_tokens = require("@marigold/tokens");
214
- var Aspect = import_react5.default.forwardRef(function AspectRatio(_a, ref) {
215
- var _b = _a, { ratio = "square", maxWidth = "100%", children } = _b, props = __objRest(_b, ["ratio", "maxWidth", "children"]);
216
- return /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
217
- ref,
218
- __baseCSS: {
219
- position: "relative",
220
- overflow: "hidden",
221
- maxWidth
222
- }
223
- }, /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
224
- __baseCSS: {
225
- aspectRatio: import_tokens.aspect[ratio]
226
- }
227
- }), /* @__PURE__ */ import_react5.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
228
- __baseCSS: {
229
- position: "absolute",
230
- top: 0,
231
- right: 0,
232
- bottom: 0,
233
- left: 0
234
- }
235
- }), children));
236
- });
151
+ var Aspect = ({
152
+ ratio = "square",
153
+ maxWidth,
154
+ children
155
+ }) => /* @__PURE__ */ import_react2.default.createElement(import_system.Box, {
156
+ css: {
157
+ aspectRatio: import_tokens.aspect[ratio],
158
+ overflow: "hidden",
159
+ maxWidth
160
+ }
161
+ }, children);
237
162
 
238
163
  // src/Badge/Badge.tsx
239
- var import_react6 = __toESM(require("react"));
164
+ var import_react3 = __toESM(require("react"));
165
+ var import_system2 = require("@marigold/system");
240
166
  var Badge = (_a) => {
241
- var _b = _a, {
242
- variant = "",
243
- bgColor = "transparent",
244
- borderColor = "transparent",
245
- children
246
- } = _b, props = __objRest(_b, [
247
- "variant",
248
- "bgColor",
249
- "borderColor",
250
- "children"
251
- ]);
252
- return /* @__PURE__ */ import_react6.default.createElement(import_system.Box, __spreadValues({
253
- css: { bg: bgColor, borderColor },
254
- variant: `badge.${variant}`
255
- }, props), children);
167
+ var _b = _a, { variant, size, children } = _b, props = __objRest(_b, ["variant", "size", "children"]);
168
+ const styles = (0, import_system2.useComponentStyles)("Badge", { variant, size });
169
+ return /* @__PURE__ */ import_react3.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
170
+ css: styles
171
+ }), children);
256
172
  };
257
173
 
258
174
  // src/Button/Button.tsx
259
- var import_react7 = __toESM(require("react"));
175
+ var import_react4 = __toESM(require("react"));
260
176
  var import_button = require("@react-aria/button");
261
- var Button = (0, import_react7.forwardRef)((_a, ref) => {
177
+ var import_focus = require("@react-aria/focus");
178
+ var import_utils = require("@react-aria/utils");
179
+ var import_system3 = require("@marigold/system");
180
+ var Button = (0, import_react4.forwardRef)((_a, ref) => {
262
181
  var _b = _a, {
263
182
  as = "button",
264
- variant = "primary",
265
- size = "large",
266
- space = "none",
267
- disabled,
268
183
  children,
269
- className
184
+ variant,
185
+ size,
186
+ disabled
270
187
  } = _b, props = __objRest(_b, [
271
188
  "as",
189
+ "children",
272
190
  "variant",
273
191
  "size",
274
- "space",
275
- "disabled",
276
- "children",
277
- "className"
192
+ "disabled"
278
193
  ]);
279
- const { buttonProps } = (0, import_button.useButton)(__spreadProps(__spreadValues({}, props), {
194
+ const buttonRef = (0, import_react4.useRef)(null);
195
+ (0, import_react4.useImperativeHandle)(ref, () => buttonRef.current);
196
+ const { buttonProps, isPressed } = (0, import_button.useButton)(__spreadProps(__spreadValues({}, props), {
280
197
  elementType: typeof as === "string" ? as : "span",
281
198
  isDisabled: disabled
282
- }), ref);
283
- return /* @__PURE__ */ import_react7.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({}, buttonProps), props), {
199
+ }), buttonRef);
200
+ const { isFocusVisible, focusProps } = (0, import_focus.useFocusRing)();
201
+ const styles = (0, import_system3.useComponentStyles)("Button", { variant, size });
202
+ const stateProps = (0, import_system3.useStateProps)({
203
+ active: isPressed,
204
+ focus: isFocusVisible
205
+ });
206
+ return /* @__PURE__ */ import_react4.default.createElement(import_system3.Box, __spreadProps(__spreadValues(__spreadValues({}, (0, import_utils.mergeProps)(buttonProps, focusProps)), stateProps), {
284
207
  as,
285
- display: "inline-flex",
286
- alignItems: "center",
287
- variant: [`button.${variant}`, `button.${size}`],
288
- className,
289
- ref,
290
- css: { columnGap: space }
208
+ ref: buttonRef,
209
+ __baseCSS: {
210
+ display: "inline-flex",
211
+ alignItems: "center",
212
+ gap: "0.5ch",
213
+ cursor: disabled ? "not-allowed" : "pointer"
214
+ },
215
+ css: styles
291
216
  }), children);
292
217
  });
293
218
 
294
219
  // src/Breakout/Breakout.tsx
295
- var import_react8 = __toESM(require("react"));
220
+ var import_react5 = __toESM(require("react"));
296
221
  var useAlignment = (direction) => {
297
222
  switch (direction) {
298
223
  case "right":
@@ -316,7 +241,7 @@ var Breakout = (_a) => {
316
241
  ]);
317
242
  const alignItems = useAlignment(horizontalAlign);
318
243
  const justifyContent = useAlignment(verticalAlign);
319
- return /* @__PURE__ */ import_react8.default.createElement(import_system.Box, __spreadValues({
244
+ return /* @__PURE__ */ import_react5.default.createElement(import_system.Box, __spreadValues({
320
245
  alignItems,
321
246
  justifyContent,
322
247
  width: "100%",
@@ -328,34 +253,18 @@ var Breakout = (_a) => {
328
253
  };
329
254
 
330
255
  // src/Card/Card.tsx
331
- var import_react9 = __toESM(require("react"));
256
+ var import_react6 = __toESM(require("react"));
257
+ var import_system4 = require("@marigold/system");
332
258
  var Card = (_a) => {
333
- var _b = _a, {
334
- variant = "",
335
- title,
336
- width,
337
- className,
338
- children
339
- } = _b, props = __objRest(_b, [
340
- "variant",
341
- "title",
342
- "width",
343
- "className",
344
- "children"
345
- ]);
346
- return /* @__PURE__ */ import_react9.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
347
- variant: `card.${variant}`,
348
- maxWidth: width,
349
- className
350
- }), title && /* @__PURE__ */ import_react9.default.createElement(import_system.Box, {
351
- as: "h2",
352
- variant: "text.h2",
353
- pb: "small"
354
- }, title), children);
259
+ var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
260
+ const styles = (0, import_system4.useComponentStyles)("Card", { variant, size });
261
+ return /* @__PURE__ */ import_react6.default.createElement(import_system4.Box, __spreadProps(__spreadValues({}, props), {
262
+ css: styles
263
+ }), children);
355
264
  };
356
265
 
357
266
  // src/Center/Center.tsx
358
- var import_react10 = __toESM(require("react"));
267
+ var import_react7 = __toESM(require("react"));
359
268
  var Center = (_a) => {
360
269
  var _b = _a, {
361
270
  maxWidth,
@@ -366,7 +275,7 @@ var Center = (_a) => {
366
275
  "space",
367
276
  "children"
368
277
  ]);
369
- return /* @__PURE__ */ import_react10.default.createElement(import_system.Box, __spreadValues({
278
+ return /* @__PURE__ */ import_react7.default.createElement(import_system.Box, __spreadValues({
370
279
  css: {
371
280
  boxSizing: "content-box",
372
281
  display: "flex",
@@ -381,172 +290,220 @@ var Center = (_a) => {
381
290
  };
382
291
 
383
292
  // src/Checkbox/Checkbox.tsx
384
- var import_react14 = __toESM(require("react"));
385
- var import_focus = require("@react-aria/focus");
386
- var import_visually_hidden = require("@react-aria/visually-hidden");
387
- var import_checkbox = require("@react-aria/checkbox");
293
+ var import_react10 = __toESM(require("react"));
294
+ var import_checkbox3 = require("@react-aria/checkbox");
295
+ var import_focus2 = require("@react-aria/focus");
296
+ var import_interactions = require("@react-aria/interactions");
388
297
  var import_toggle = require("@react-stately/toggle");
389
- var import_icons2 = require("@marigold/icons");
298
+ var import_system7 = require("@marigold/system");
390
299
 
391
- // src/Checkbox/CheckboxIcon.tsx
392
- var import_react11 = __toESM(require("react"));
393
- var import_system2 = require("@marigold/system");
394
- var CheckboxIcon = ({
395
- variant = "",
396
- checked = false,
397
- disabled = false,
398
- indeterminated,
399
- error = false
400
- }) => {
401
- const conditionalStates = disabled ? {
402
- disabled
403
- } : {
404
- checked,
405
- error
406
- };
407
- return /* @__PURE__ */ import_react11.default.createElement(import_system2.SVG, {
408
- width: "16",
409
- height: "32",
410
- viewBox: "0 0 16 32",
411
- fill: "none",
412
- "aria-hidden": "true"
413
- }, /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
414
- as: "rect",
415
- x: "0.5",
416
- y: "8.5",
417
- width: "15px",
418
- height: "15px",
419
- rx: "1.5",
420
- variant: (0, import_system2.conditional)(`checkbox.${variant}`, conditionalStates)
421
- }), checked && indeterminated && /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
422
- __baseCSS: { fill: "gray00" },
423
- as: "path",
424
- fillRule: "evenodd",
425
- clipRule: "evenodd",
426
- d: "M13.5 17.0402H2.5V15.4688H13.5V17.0402V17.0402Z"
427
- }), checked && !indeterminated && /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
428
- __baseCSS: { fill: "gray00" },
429
- as: "path",
430
- fillRule: "evenodd",
431
- clipRule: "evenodd",
432
- d: "M13.9571 12.8338L12.4085 11.2852L6.08699 17.6007L3.59887 15.1126L2.04163 16.6588L6.08682 20.704L13.9571 12.8338Z"
433
- }));
434
- };
300
+ // src/Checkbox/CheckboxGroup.tsx
301
+ var import_react9 = __toESM(require("react"));
302
+ var import_checkbox = require("@react-aria/checkbox");
303
+ var import_checkbox2 = require("@react-stately/checkbox");
304
+ var import_system6 = require("@marigold/system");
435
305
 
436
- // src/Label/Label.tsx
437
- var import_react12 = __toESM(require("react"));
306
+ // src/Field/Label.tsx
307
+ var import_react8 = __toESM(require("react"));
438
308
  var import_icons = require("@marigold/icons");
439
- var LabelBase = (_a) => {
440
- var _b = _a, {
441
- variant = "above",
442
- required,
443
- color = "text",
444
- children
445
- } = _b, props = __objRest(_b, [
446
- "variant",
447
- "required",
448
- "color",
449
- "children"
450
- ]);
451
- return /* @__PURE__ */ import_react12.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
452
- as: "label",
453
- __baseCSS: { color },
454
- variant: `label.${variant}`
455
- }), children);
456
- };
309
+ var import_system5 = require("@marigold/system");
457
310
  var Label = (_a) => {
458
311
  var _b = _a, {
312
+ as = "label",
459
313
  required,
460
- children
314
+ children,
315
+ variant,
316
+ size
461
317
  } = _b, props = __objRest(_b, [
318
+ "as",
462
319
  "required",
463
- "children"
320
+ "children",
321
+ "variant",
322
+ "size"
464
323
  ]);
465
- return required ? /* @__PURE__ */ import_react12.default.createElement(import_system.Box, {
466
- as: "span",
467
- display: "inline-flex",
468
- alignItems: "center"
469
- }, /* @__PURE__ */ import_react12.default.createElement(LabelBase, __spreadValues({}, props), children), required && /* @__PURE__ */ import_react12.default.createElement(import_icons.Required, {
324
+ const styles = (0, import_system5.useComponentStyles)("Label", { size, variant });
325
+ return /* @__PURE__ */ import_react8.default.createElement(import_system5.Box, __spreadProps(__spreadValues({}, props), {
326
+ as,
327
+ __baseCSS: { display: "flex", alignItems: "center", gap: 4 },
328
+ css: styles
329
+ }), children, required && /* @__PURE__ */ import_react8.default.createElement(import_icons.Required, {
330
+ role: "presentation",
470
331
  size: 16,
471
332
  fill: "error"
472
- })) : /* @__PURE__ */ import_react12.default.createElement(LabelBase, __spreadValues({}, props), children);
333
+ }));
473
334
  };
474
335
 
475
- // src/ValidationMessage/ValidationMessage.tsx
476
- var import_react13 = __toESM(require("react"));
477
- var ValidationMessage = (_a) => {
336
+ // src/Checkbox/CheckboxGroup.tsx
337
+ var CheckboxGroupContext = (0, import_react9.createContext)(null);
338
+ var useCheckboxGroupContext = () => (0, import_react9.useContext)(CheckboxGroupContext);
339
+ var CheckboxGroup = (_a) => {
478
340
  var _b = _a, {
479
- variant = "error",
480
341
  children,
481
- className
482
- } = _b, props = __objRest(_b, [
483
- "variant",
342
+ variant,
343
+ size,
344
+ required,
345
+ disabled,
346
+ readOnly,
347
+ error
348
+ } = _b, rest = __objRest(_b, [
484
349
  "children",
485
- "className"
350
+ "variant",
351
+ "size",
352
+ "required",
353
+ "disabled",
354
+ "readOnly",
355
+ "error"
486
356
  ]);
487
- return /* @__PURE__ */ import_react13.default.createElement(import_system.Box, __spreadValues({
357
+ const props = __spreadValues({
358
+ isRequired: required,
359
+ isDisabled: disabled,
360
+ isReadOnly: readOnly,
361
+ validationState: error ? "invalid" : "valid"
362
+ }, rest);
363
+ const state = (0, import_checkbox2.useCheckboxGroupState)(props);
364
+ const { groupProps, labelProps } = (0, import_checkbox.useCheckboxGroup)(props, state);
365
+ const styles = (0, import_system6.useComponentStyles)("CheckboxGroup", { variant, size }, { parts: ["container", "group"] });
366
+ return /* @__PURE__ */ import_react9.default.createElement(import_system6.Box, __spreadProps(__spreadValues({}, groupProps), {
367
+ css: styles.container
368
+ }), props.label && /* @__PURE__ */ import_react9.default.createElement(Label, __spreadValues({
488
369
  as: "span",
489
- display: "flex",
490
- alignItems: "center",
491
- variant: `validation.${variant}`,
492
- className
493
- }, props), children);
370
+ required
371
+ }, labelProps), props.label), /* @__PURE__ */ import_react9.default.createElement(import_system6.Box, {
372
+ role: "presentation",
373
+ __baseCSS: {
374
+ display: "flex",
375
+ flexDirection: "column",
376
+ alignItems: "left"
377
+ },
378
+ css: styles.group
379
+ }, /* @__PURE__ */ import_react9.default.createElement(CheckboxGroupContext.Provider, {
380
+ value: __spreadValues({ variant, size, error }, state)
381
+ }, children)));
494
382
  };
495
383
 
496
384
  // src/Checkbox/Checkbox.tsx
497
- var CheckboxInput = (_a) => {
498
- var _b = _a, {
499
- error,
500
- indeterminated = false
501
- } = _b, props = __objRest(_b, [
502
- "error",
503
- "indeterminated"
504
- ]);
505
- const state = (0, import_toggle.useToggleState)(props);
506
- const ref = import_react14.default.useRef(null);
507
- const { inputProps } = (0, import_checkbox.useCheckbox)(props, state, ref);
508
- const { focusProps } = (0, import_focus.useFocusRing)();
509
- const _a2 = props, { children } = _a2, restProps = __objRest(_a2, ["children"]);
510
- return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, {
511
- pr: "xsmall"
512
- }, /* @__PURE__ */ import_react14.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react14.default.createElement("input", __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
513
- ref
514
- }), restProps))), /* @__PURE__ */ import_react14.default.createElement(CheckboxIcon, {
515
- checked: props.checked,
516
- variant: props.variant,
517
- disabled: props.disabled,
518
- indeterminated,
519
- error
520
- }));
385
+ var CheckMark = () => /* @__PURE__ */ import_react10.default.createElement("svg", {
386
+ viewBox: "0 0 12 10"
387
+ }, /* @__PURE__ */ import_react10.default.createElement("path", {
388
+ fill: "currentColor",
389
+ stroke: "none",
390
+ d: "M11.915 1.548 10.367 0 4.045 6.315 1.557 3.827 0 5.373l4.045 4.046 7.87-7.871Z"
391
+ }));
392
+ var IndeterminateMark = () => /* @__PURE__ */ import_react10.default.createElement("svg", {
393
+ width: "12",
394
+ height: "3",
395
+ viewBox: "0 0 12 3"
396
+ }, /* @__PURE__ */ import_react10.default.createElement("path", {
397
+ fill: "currentColor",
398
+ stroke: "none",
399
+ d: "M11.5 2.04018H0.5V0.46875H11.5V2.04018Z"
400
+ }));
401
+ var Icon = (_a) => {
402
+ var _b = _a, { css, checked, indeterminate } = _b, props = __objRest(_b, ["css", "checked", "indeterminate"]);
403
+ const icon = indeterminate ? /* @__PURE__ */ import_react10.default.createElement(IndeterminateMark, null) : /* @__PURE__ */ import_react10.default.createElement(CheckMark, null);
404
+ return /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues({
405
+ "aria-hidden": "true",
406
+ __baseCSS: {
407
+ width: 16,
408
+ height: 16,
409
+ bg: "#fff",
410
+ border: "1px solid #000",
411
+ borderRadius: 3,
412
+ display: "flex",
413
+ alignItems: "center",
414
+ justifyContent: "center",
415
+ p: "1px"
416
+ },
417
+ css
418
+ }, props), checked ? icon : null);
521
419
  };
522
420
  var Checkbox = (_a) => {
523
421
  var _b = _a, {
422
+ size,
423
+ variant,
424
+ disabled,
425
+ checked,
426
+ defaultChecked,
427
+ indeterminate,
428
+ readOnly,
524
429
  required,
525
- labelVariant = "inline",
526
- errorMessage
430
+ error
527
431
  } = _b, props = __objRest(_b, [
432
+ "size",
433
+ "variant",
434
+ "disabled",
435
+ "checked",
436
+ "defaultChecked",
437
+ "indeterminate",
438
+ "readOnly",
528
439
  "required",
529
- "labelVariant",
530
- "errorMessage"
440
+ "error"
531
441
  ]);
532
- return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(import_system.Box, {
533
- as: Label,
442
+ const ref = import_react10.default.useRef(null);
443
+ const checkboxProps = {
444
+ isIndeterminate: indeterminate,
445
+ isDisabled: disabled,
446
+ isReadOnly: readOnly,
447
+ isRequired: required,
448
+ validationState: error ? "invalid" : "valid"
449
+ };
450
+ const groupState = useCheckboxGroupContext();
451
+ const { inputProps } = groupState ? (0, import_checkbox3.useCheckboxGroupItem)(__spreadProps(__spreadValues(__spreadValues({}, props), checkboxProps), {
452
+ value: props.value
453
+ }), groupState, ref) : (0, import_checkbox3.useCheckbox)(__spreadValues(__spreadValues({
454
+ isSelected: checked,
455
+ defaultSelected: defaultChecked
456
+ }, checkboxProps), props), (0, import_toggle.useToggleState)(__spreadValues({
457
+ isSelected: checked,
458
+ defaultSelected: defaultChecked
459
+ }, props)), ref);
460
+ const styles = (0, import_system7.useComponentStyles)("Checkbox", { variant: (groupState == null ? void 0 : groupState.variant) || variant, size: (groupState == null ? void 0 : groupState.size) || size }, { parts: ["container", "label", "checkbox"] });
461
+ const { hoverProps, isHovered } = (0, import_interactions.useHover)({});
462
+ const { isFocusVisible, focusProps } = (0, import_focus2.useFocusRing)();
463
+ const stateProps = (0, import_system7.useStateProps)({
464
+ hover: isHovered,
465
+ focus: isFocusVisible,
466
+ checked: inputProps.checked,
467
+ disabled: inputProps.disabled,
468
+ error: (groupState == null ? void 0 : groupState.error) || error,
469
+ readOnly,
470
+ indeterminate
471
+ });
472
+ return /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues(__spreadValues({
473
+ as: "label",
474
+ variant: "checkbox",
534
475
  __baseCSS: {
535
- ":hover": { cursor: props.disabled ? "not-allowed" : "pointer" }
476
+ display: "flex",
477
+ alignItems: "center",
478
+ gap: "1ch",
479
+ position: "relative"
536
480
  },
537
- htmlFor: props.id,
538
- required,
539
- variant: `label.${labelVariant}`,
540
- color: props.disabled ? "disabled" : "text"
541
- }, /* @__PURE__ */ import_react14.default.createElement(CheckboxInput, __spreadValues({
542
- error: props.error
543
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react14.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react14.default.createElement(import_icons2.Exclamation, {
544
- size: 16
545
- }), errorMessage));
481
+ css: styles.container
482
+ }, hoverProps), stateProps), /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues(__spreadValues({
483
+ as: "input",
484
+ type: "checkbox",
485
+ ref,
486
+ css: {
487
+ position: "absolute",
488
+ width: "100%",
489
+ height: "100%",
490
+ top: 0,
491
+ left: 0,
492
+ zIndex: 1,
493
+ opacity: 1e-4,
494
+ cursor: inputProps.disabled ? "not-allowed" : "pointer"
495
+ }
496
+ }, inputProps), focusProps)), /* @__PURE__ */ import_react10.default.createElement(Icon, __spreadValues({
497
+ checked: inputProps.checked,
498
+ indeterminate,
499
+ css: styles.checkbox
500
+ }, stateProps)), /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues({
501
+ css: styles.label
502
+ }, stateProps), props.children));
546
503
  };
547
504
 
548
505
  // src/Columns/Columns.tsx
549
- var import_react15 = __toESM(require("react"));
506
+ var import_react11 = __toESM(require("react"));
550
507
  var Columns = (_a) => {
551
508
  var _b = _a, {
552
509
  space = "none",
@@ -559,8 +516,8 @@ var Columns = (_a) => {
559
516
  "collapseAt",
560
517
  "children"
561
518
  ]);
562
- if (import_react15.Children.count(children) !== columns.length) {
563
- throw new Error(`Columns: expected ${columns.length} children, got ${import_react15.Children.count(children)}`);
519
+ if (import_react11.Children.count(children) !== columns.length) {
520
+ throw new Error(`Columns: expected ${columns.length} children, got ${import_react11.Children.count(children)}`);
564
521
  }
565
522
  const getColumnWidths = columns.map((column, index) => {
566
523
  return {
@@ -569,7 +526,7 @@ var Columns = (_a) => {
569
526
  }
570
527
  };
571
528
  });
572
- return /* @__PURE__ */ import_react15.default.createElement(import_system.Box, __spreadValues({
529
+ return /* @__PURE__ */ import_react11.default.createElement(import_system.Box, __spreadValues({
573
530
  display: "flex",
574
531
  css: Object.assign({
575
532
  flexWrap: "wrap",
@@ -581,57 +538,65 @@ var Columns = (_a) => {
581
538
  }, props), children);
582
539
  };
583
540
 
541
+ // src/Content/Content.tsx
542
+ var import_react12 = __toESM(require("react"));
543
+ var import_system8 = require("@marigold/system");
544
+ var Content = (_a) => {
545
+ var _b = _a, {
546
+ children,
547
+ variant,
548
+ size
549
+ } = _b, props = __objRest(_b, [
550
+ "children",
551
+ "variant",
552
+ "size"
553
+ ]);
554
+ const styles = (0, import_system8.useComponentStyles)("Content", { variant, size });
555
+ return /* @__PURE__ */ import_react12.default.createElement(import_system8.Box, __spreadProps(__spreadValues({
556
+ as: "section"
557
+ }, props), {
558
+ css: styles
559
+ }), children);
560
+ };
561
+
584
562
  // src/Dialog/Dialog.tsx
585
- var import_react18 = __toESM(require("react"));
563
+ var import_react15 = __toESM(require("react"));
586
564
  var import_overlays2 = require("@react-stately/overlays");
587
565
  var import_overlays3 = require("@react-aria/overlays");
588
566
  var import_button2 = require("@react-aria/button");
589
- var import_icons3 = require("@marigold/icons");
567
+ var import_icons2 = require("@marigold/icons");
590
568
 
591
- // src/Text/Text.tsx
592
- var import_react16 = __toESM(require("react"));
593
- var Text = (0, import_react16.forwardRef)((_a, ref) => {
569
+ // src/Headline/Headline.tsx
570
+ var import_react13 = __toESM(require("react"));
571
+ var import_system9 = require("@marigold/system");
572
+ var Headline = (_a) => {
594
573
  var _b = _a, {
595
- as = "span",
596
- variant = "body",
597
574
  children,
598
- align,
599
- color,
600
- cursor,
575
+ variant,
601
576
  size,
602
- outline,
603
- userSelect
577
+ level = "1"
604
578
  } = _b, props = __objRest(_b, [
605
- "as",
606
- "variant",
607
579
  "children",
608
- "align",
609
- "color",
610
- "cursor",
580
+ "variant",
611
581
  "size",
612
- "outline",
613
- "userSelect"
582
+ "level"
614
583
  ]);
615
- return /* @__PURE__ */ import_react16.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
616
- as,
617
- variant: `text.${variant}`,
618
- css: {
619
- textAlign: align,
620
- fontSize: size,
621
- color,
622
- cursor,
623
- outline,
624
- userSelect
625
- },
626
- ref
584
+ const styles = (0, import_system9.useComponentStyles)("Headline", {
585
+ variant,
586
+ size: size != null ? size : `level-${level}`
587
+ });
588
+ return /* @__PURE__ */ import_react13.default.createElement(import_system9.Box, __spreadProps(__spreadValues({
589
+ as: `h${level}`
590
+ }, props), {
591
+ css: styles
627
592
  }), children);
628
- });
593
+ };
629
594
 
630
595
  // src/Dialog/ModalDialog.tsx
631
- var import_react17 = __toESM(require("react"));
596
+ var import_react14 = __toESM(require("react"));
632
597
  var import_overlays = require("@react-aria/overlays");
633
598
  var import_dialog = require("@react-aria/dialog");
634
- var import_focus2 = require("@react-aria/focus");
599
+ var import_focus3 = require("@react-aria/focus");
635
600
  var ModalDialog = (_a) => {
636
601
  var _b = _a, {
637
602
  variant,
@@ -643,12 +608,12 @@ var ModalDialog = (_a) => {
643
608
  "children"
644
609
  ]);
645
610
  const _a2 = props, { isDismissable, isOpen, onClose } = _a2, restProps = __objRest(_a2, ["isDismissable", "isOpen", "onClose"]);
646
- const ref = import_react17.default.useRef();
611
+ const ref = import_react14.default.useRef();
647
612
  const { overlayProps, underlayProps } = (0, import_overlays.useOverlay)({ isDismissable, isOpen, onClose }, ref);
648
613
  (0, import_overlays.usePreventScroll)();
649
614
  const { modalProps } = (0, import_overlays.useModal)();
650
615
  const { dialogProps } = (0, import_dialog.useDialog)(props, ref);
651
- return /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadValues({
616
+ return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadValues({
652
617
  __baseCSS: {
653
618
  display: "grid",
654
619
  placeItems: "center",
@@ -660,11 +625,11 @@ var ModalDialog = (_a) => {
660
625
  right: 0
661
626
  },
662
627
  variant: `dialog.${backdropVariant}`
663
- }, underlayProps), /* @__PURE__ */ import_react17.default.createElement(import_focus2.FocusScope, {
628
+ }, underlayProps), /* @__PURE__ */ import_react14.default.createElement(import_focus3.FocusScope, {
664
629
  contain: true,
665
630
  restoreFocus: true,
666
631
  autoFocus: true
667
- }, /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, overlayProps), dialogProps), modalProps), {
632
+ }, /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, overlayProps), dialogProps), modalProps), {
668
633
  ref,
669
634
  variant: variant ? `dialog.${variant}` : `dialog`
670
635
  }), restProps), children)));
@@ -689,17 +654,17 @@ var Dialog = (_a) => {
689
654
  "title",
690
655
  "variant"
691
656
  ]);
692
- const closeButtonRef = import_react18.default.useRef();
657
+ const closeButtonRef = import_react15.default.useRef();
693
658
  const { buttonProps: closeButtonProps } = (0, import_button2.useButton)({
694
659
  onPress: () => close()
695
660
  }, closeButtonRef);
696
- return /* @__PURE__ */ import_react18.default.createElement(import_overlays3.OverlayContainer, null, /* @__PURE__ */ import_react18.default.createElement(ModalDialog, __spreadValues({
661
+ return /* @__PURE__ */ import_react15.default.createElement(import_overlays3.OverlayContainer, null, /* @__PURE__ */ import_react15.default.createElement(ModalDialog, __spreadValues({
697
662
  variant,
698
663
  backdropVariant,
699
664
  isOpen,
700
665
  onClose: close,
701
666
  isDismissable: true
702
- }, props), /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
667
+ }, props), /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
703
668
  __baseCSS: {
704
669
  display: "flex",
705
670
  justifyContent: "space-between",
@@ -708,12 +673,11 @@ var Dialog = (_a) => {
708
673
  pb: "large"
709
674
  },
710
675
  className
711
- }, /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
676
+ }, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
712
677
  pt: "medium"
713
- }, title && /* @__PURE__ */ import_react18.default.createElement(Text, {
714
- as: "h4",
715
- variant: "headline4"
716
- }, title), children), /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
678
+ }, title && /* @__PURE__ */ import_react15.default.createElement(Headline, {
679
+ level: "4"
680
+ }, title), children), /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
717
681
  __baseCSS: {
718
682
  display: "flex",
719
683
  justifyContent: "flex-end",
@@ -721,7 +685,7 @@ var Dialog = (_a) => {
721
685
  paddingTop: "xsmall",
722
686
  paddingX: "xsmall"
723
687
  }
724
- }, /* @__PURE__ */ import_react18.default.createElement(import_system.Box, __spreadProps(__spreadValues({
688
+ }, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, __spreadProps(__spreadValues({
725
689
  as: Button,
726
690
  __baseCSS: {
727
691
  color: "text",
@@ -739,13 +703,13 @@ var Dialog = (_a) => {
739
703
  }
740
704
  }, closeButtonProps), {
741
705
  ref: closeButtonRef
742
- }), /* @__PURE__ */ import_react18.default.createElement(import_icons3.Close, {
706
+ }), /* @__PURE__ */ import_react15.default.createElement(import_icons2.Close, {
743
707
  size: 16
744
708
  }))))));
745
709
  };
746
710
  var useDialogButtonProps = () => {
747
711
  const state = (0, import_overlays2.useOverlayTriggerState)({});
748
- const openButtonRef = import_react18.default.useRef();
712
+ const openButtonRef = import_react15.default.useRef();
749
713
  const { buttonProps: openButtonProps } = (0, import_button2.useButton)({
750
714
  onPress: () => state.open()
751
715
  }, openButtonRef);
@@ -757,87 +721,137 @@ var useDialogButtonProps = () => {
757
721
  };
758
722
 
759
723
  // src/Divider/Divider.tsx
760
- var import_react19 = __toESM(require("react"));
724
+ var import_react16 = __toESM(require("react"));
761
725
  var import_separator = require("@react-aria/separator");
726
+ var import_system10 = require("@marigold/system");
762
727
  var Divider = (_a) => {
763
- var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
728
+ var _b = _a, { variant } = _b, props = __objRest(_b, ["variant"]);
764
729
  const { separatorProps } = (0, import_separator.useSeparator)(props);
765
- return /* @__PURE__ */ import_react19.default.createElement(import_system.Box, __spreadValues(__spreadValues({
766
- __baseCSS: { width: "100%", height: "1px", m: "none", bg: "text" },
767
- variant: `divider.${variant}`
730
+ const styles = (0, import_system10.useComponentStyles)("Divider", { variant });
731
+ return /* @__PURE__ */ import_react16.default.createElement(import_system.Box, __spreadValues(__spreadValues({
732
+ css: styles
768
733
  }, props), separatorProps));
769
734
  };
770
735
 
771
- // src/Field/Field.tsx
736
+ // src/Footer/Footer.tsx
737
+ var import_react17 = __toESM(require("react"));
738
+ var import_system11 = require("@marigold/system");
739
+ var Footer = (_a) => {
740
+ var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
741
+ const styles = (0, import_system11.useComponentStyles)("Footer", { variant, size });
742
+ return /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadProps(__spreadValues({
743
+ as: "footer"
744
+ }, props), {
745
+ css: styles
746
+ }), children);
747
+ };
748
+
749
+ // src/VisuallyHidden/VisuallyHidden.tsx
750
+ var import_visually_hidden = require("@react-aria/visually-hidden");
751
+
752
+ // src/Header/Header.tsx
753
+ var import_react18 = __toESM(require("react"));
754
+ var import_system12 = require("@marigold/system");
755
+ var Header = (_a) => {
756
+ var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
757
+ const styles = (0, import_system12.useComponentStyles)("Header", { variant, size });
758
+ return /* @__PURE__ */ import_react18.default.createElement(import_system.Box, __spreadProps(__spreadValues({
759
+ as: "header"
760
+ }, props), {
761
+ css: styles
762
+ }), children);
763
+ };
764
+
765
+ // src/Image/Image.tsx
766
+ var import_react19 = __toESM(require("react"));
767
+ var import_system13 = require("@marigold/system");
768
+ var Image = (_a) => {
769
+ var _b = _a, { variant } = _b, props = __objRest(_b, ["variant"]);
770
+ const styles = (0, import_system13.useComponentStyles)("Image", { variant });
771
+ return /* @__PURE__ */ import_react19.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
772
+ as: "img",
773
+ css: styles
774
+ }));
775
+ };
776
+
777
+ // src/Inline/Inline.tsx
772
778
  var import_react20 = __toESM(require("react"));
773
- var import_textfield = require("@react-aria/textfield");
774
- var import_icons4 = require("@marigold/icons");
775
- var Field = (_a) => {
779
+ var ALIGNMENT = {
780
+ top: "flex-start",
781
+ center: "center",
782
+ bottom: "flex-end"
783
+ };
784
+ var Inline = (_a) => {
776
785
  var _b = _a, {
777
- type = "text",
778
- variant = "",
779
- labelVariant = "above",
780
- htmlFor,
781
- required,
782
- error,
783
- errorMessage
786
+ space = "none",
787
+ align = "center",
788
+ children
784
789
  } = _b, props = __objRest(_b, [
785
- "type",
786
- "variant",
787
- "labelVariant",
788
- "htmlFor",
789
- "required",
790
- "error",
791
- "errorMessage"
790
+ "space",
791
+ "align",
792
+ "children"
792
793
  ]);
793
- const ref = (0, import_react20.useRef)(null);
794
- const { labelProps, inputProps, errorMessageProps } = (0, import_textfield.useTextField)(props, ref);
795
- return /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(Label, __spreadValues({
796
- variant: labelVariant,
797
- htmlFor,
798
- required
799
- }, labelProps), props.label), /* @__PURE__ */ import_react20.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
800
- as: "input",
801
- type,
802
- id: htmlFor,
803
- variant: `input.${variant}`
804
- }, inputProps), {
805
- ref
806
- }), props)), error && errorMessage && /* @__PURE__ */ import_react20.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react20.default.createElement(import_icons4.Exclamation, {
807
- size: 16
808
- }), errorMessage));
794
+ return /* @__PURE__ */ import_react20.default.createElement(import_system.Box, __spreadValues({
795
+ __baseCSS: { gap: space, flexWrap: "wrap" },
796
+ display: "inline-flex",
797
+ alignItems: ALIGNMENT[align]
798
+ }, props), children);
809
799
  };
810
800
 
811
- // src/VisuallyHidden/VisuallyHidden.tsx
812
- var import_visually_hidden2 = require("@react-aria/visually-hidden");
813
-
814
- // src/Image/Image.tsx
801
+ // src/Label/Label.tsx
815
802
  var import_react21 = __toESM(require("react"));
816
- var Image = (_a) => {
803
+ var import_icons3 = require("@marigold/icons");
804
+ var LabelBase = (_a) => {
817
805
  var _b = _a, {
818
- variant = "fullWidth"
806
+ variant = "above",
807
+ required,
808
+ color = "text",
809
+ children
819
810
  } = _b, props = __objRest(_b, [
820
- "variant"
811
+ "variant",
812
+ "required",
813
+ "color",
814
+ "children"
821
815
  ]);
822
816
  return /* @__PURE__ */ import_react21.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
823
- as: "img",
824
- variant: `image.${variant}`
825
- }));
817
+ as: "label",
818
+ __baseCSS: { color },
819
+ variant: `label.${variant}`
820
+ }), children);
821
+ };
822
+ var Label2 = (_a) => {
823
+ var _b = _a, {
824
+ required,
825
+ children
826
+ } = _b, props = __objRest(_b, [
827
+ "required",
828
+ "children"
829
+ ]);
830
+ return required ? /* @__PURE__ */ import_react21.default.createElement(import_system.Box, {
831
+ as: "span",
832
+ display: "inline-flex",
833
+ alignItems: "center"
834
+ }, /* @__PURE__ */ import_react21.default.createElement(LabelBase, __spreadValues({}, props), children), required && /* @__PURE__ */ import_react21.default.createElement(import_icons3.Required, {
835
+ size: 16,
836
+ fill: "error"
837
+ })) : /* @__PURE__ */ import_react21.default.createElement(LabelBase, __spreadValues({}, props), children);
826
838
  };
827
839
 
828
840
  // src/Link/Link.tsx
829
841
  var import_react22 = __toESM(require("react"));
830
842
  var import_link = require("@react-aria/link");
831
- var import_system3 = require("@marigold/system");
843
+ var import_system14 = require("@marigold/system");
832
844
  var Link = (_a) => {
833
845
  var _b = _a, {
834
846
  as = "a",
835
- variant = "",
847
+ variant,
848
+ size,
836
849
  children,
837
850
  disabled
838
851
  } = _b, props = __objRest(_b, [
839
852
  "as",
840
853
  "variant",
854
+ "size",
841
855
  "children",
842
856
  "disabled"
843
857
  ]);
@@ -846,63 +860,189 @@ var Link = (_a) => {
846
860
  elementType: typeof as === "string" ? as : "span",
847
861
  isDisabled: disabled
848
862
  }), ref);
863
+ const styles = (0, import_system14.useComponentStyles)("Link", { variant, size });
849
864
  return /* @__PURE__ */ import_react22.default.createElement(import_system.Box, __spreadValues(__spreadValues({
850
865
  as,
851
- variant: (0, import_system3.conditional)(`link.${variant}`, { disabled }),
852
- css: { cursor: disabled ? "default" : "pointer" },
866
+ css: styles,
853
867
  ref
854
868
  }, props), linkProps), children);
855
869
  };
856
870
 
857
871
  // src/Menu/Menu.tsx
858
- var import_react23 = __toESM(require("react"));
859
- var Menu = (_a) => {
872
+ var import_react28 = __toESM(require("react"));
873
+ var import_focus5 = require("@react-aria/focus");
874
+ var import_menu4 = require("@react-aria/menu");
875
+ var import_overlays6 = require("@react-aria/overlays");
876
+ var import_collections = require("@react-stately/collections");
877
+ var import_tree = require("@react-stately/tree");
878
+ var import_system16 = require("@marigold/system");
879
+
880
+ // src/Menu/Context.ts
881
+ var import_react23 = require("react");
882
+ var MenuContext = (0, import_react23.createContext)({});
883
+ var useMenuContext = () => (0, import_react23.useContext)(MenuContext);
884
+
885
+ // src/Menu/MenuTrigger.tsx
886
+ var import_react26 = __toESM(require("react"));
887
+ var import_menu = require("@react-stately/menu");
888
+ var import_menu2 = require("@react-aria/menu");
889
+
890
+ // src/Overlay/Overlay.tsx
891
+ var import_react24 = __toESM(require("react"));
892
+ var import_react_dom = __toESM(require("react-dom"));
893
+ var Overlay = (_a) => {
860
894
  var _b = _a, {
861
- variant = "default",
862
- label = "Menu",
863
- onClick,
864
- show = false,
865
- children
895
+ children,
896
+ open = false,
897
+ container = document.body
866
898
  } = _b, props = __objRest(_b, [
867
- "variant",
868
- "label",
869
- "onClick",
870
- "show",
871
- "children"
899
+ "children",
900
+ "open",
901
+ "container"
872
902
  ]);
873
- return /* @__PURE__ */ import_react23.default.createElement(import_system.Box, __spreadValues({
874
- variant: `menu.${variant}`
875
- }, props), /* @__PURE__ */ import_react23.default.createElement(Button, {
876
- onClick,
877
- variant: "menu"
878
- }, label), show ? /* @__PURE__ */ import_react23.default.createElement(import_system.Box, {
879
- display: "block",
880
- position: "absolute",
881
- minWidth: "120px",
882
- borderRadius: "2px"
883
- }, children) : null);
903
+ if (!open) {
904
+ return null;
905
+ }
906
+ const component = /* @__PURE__ */ import_react24.default.createElement(import_system.Box, __spreadValues({}, props), children);
907
+ return import_react_dom.default.createPortal(component, container);
884
908
  };
885
909
 
886
- // src/MenuItem/MenuItem.tsx
887
- var import_react24 = __toESM(require("react"));
888
- var MenuItem = (_a) => {
910
+ // src/Overlay/Popover.tsx
911
+ var import_react25 = __toESM(require("react"));
912
+ var import_overlays4 = require("@react-aria/overlays");
913
+ var import_utils2 = require("@react-aria/utils");
914
+ var Popover = (0, import_react25.forwardRef)((_a, ref) => {
889
915
  var _b = _a, {
890
- variant = "default",
891
- children
916
+ children,
917
+ open,
918
+ dismissable,
919
+ keyboardDismissDisabled,
920
+ shouldCloseOnBlur
892
921
  } = _b, props = __objRest(_b, [
893
- "variant",
894
- "children"
922
+ "children",
923
+ "open",
924
+ "dismissable",
925
+ "keyboardDismissDisabled",
926
+ "shouldCloseOnBlur"
895
927
  ]);
896
- return /* @__PURE__ */ import_react24.default.createElement(import_system.Box, {
897
- variant: `menuItem.${variant}`
898
- }, /* @__PURE__ */ import_react24.default.createElement(Link, __spreadValues({
899
- variant: "menuItemLink"
900
- }, props), children));
928
+ const { overlayProps } = (0, import_overlays4.useOverlay)(__spreadValues({
929
+ isOpen: open,
930
+ isDismissable: dismissable,
931
+ isKeyboardDismissDisabled: keyboardDismissDisabled,
932
+ shouldCloseOnBlur
933
+ }, props), ref);
934
+ const { modalProps } = (0, import_overlays4.useModal)({});
935
+ return /* @__PURE__ */ import_react25.default.createElement(Overlay, {
936
+ open
937
+ }, /* @__PURE__ */ import_react25.default.createElement(import_system.Box, __spreadValues({
938
+ ref,
939
+ role: "presentation"
940
+ }, (0, import_utils2.mergeProps)(props, overlayProps, modalProps)), children));
941
+ });
942
+
943
+ // src/Menu/MenuTrigger.tsx
944
+ var import_overlays5 = require("@react-aria/overlays");
945
+ var import_interactions2 = require("@react-aria/interactions");
946
+ var MenuTrigger = ({ disabled, children }) => {
947
+ const [menuTrigger, menu] = import_react26.default.Children.toArray(children);
948
+ const menuTriggerRef = (0, import_react26.useRef)(null);
949
+ const overlayRef = (0, import_react26.useRef)(null);
950
+ const state = (0, import_menu.useMenuTriggerState)({});
951
+ const { menuTriggerProps, menuProps } = (0, import_menu2.useMenuTrigger)({ trigger: "press", isDisabled: disabled }, state, menuTriggerRef);
952
+ const { overlayProps: positionProps } = (0, import_overlays5.useOverlayPosition)({
953
+ targetRef: menuTriggerRef,
954
+ overlayRef,
955
+ isOpen: state.isOpen
956
+ });
957
+ const menuContext = __spreadProps(__spreadValues({}, menuProps), {
958
+ open: state.isOpen,
959
+ onClose: state.close,
960
+ autoFocus: state.focusStrategy,
961
+ triggerWidth: menuTriggerRef.current ? menuTriggerRef.current.offsetWidth : void 0
962
+ });
963
+ return /* @__PURE__ */ import_react26.default.createElement(MenuContext.Provider, {
964
+ value: menuContext
965
+ }, /* @__PURE__ */ import_react26.default.createElement(import_interactions2.PressResponder, __spreadProps(__spreadValues({}, menuTriggerProps), {
966
+ ref: menuTriggerRef,
967
+ isPressed: state.isOpen
968
+ }), menuTrigger), /* @__PURE__ */ import_react26.default.createElement(Popover, __spreadValues({
969
+ open: state.isOpen,
970
+ onClose: state.close,
971
+ dismissable: true,
972
+ shouldCloseOnBlur: true,
973
+ ref: overlayRef
974
+ }, positionProps), menu));
975
+ };
976
+
977
+ // src/Menu/MenuItem.tsx
978
+ var import_react27 = __toESM(require("react"));
979
+ var import_focus4 = require("@react-aria/focus");
980
+ var import_menu3 = require("@react-aria/menu");
981
+ var import_utils3 = require("@react-aria/utils");
982
+ var import_system15 = require("@marigold/system");
983
+ var MenuItem = ({ item, state, onAction, css }) => {
984
+ const ref = (0, import_react27.useRef)(null);
985
+ const { onClose } = useMenuContext();
986
+ const { menuItemProps } = (0, import_menu3.useMenuItem)({
987
+ key: item.key,
988
+ onAction,
989
+ onClose
990
+ }, state, ref);
991
+ const { isFocusVisible, focusProps } = (0, import_focus4.useFocusRing)();
992
+ const stateProps = (0, import_system15.useStateProps)({
993
+ focus: isFocusVisible
994
+ });
995
+ return /* @__PURE__ */ import_react27.default.createElement(import_system15.Box, __spreadValues(__spreadValues({
996
+ as: "li",
997
+ ref,
998
+ __baseCSS: {
999
+ "&:focus": {
1000
+ outline: 0
1001
+ }
1002
+ },
1003
+ css
1004
+ }, (0, import_utils3.mergeProps)(menuItemProps, focusProps)), stateProps), item.rendered);
1005
+ };
1006
+
1007
+ // src/Menu/Menu.tsx
1008
+ var Menu = (_a) => {
1009
+ var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
1010
+ const _a2 = useMenuContext(), { triggerWidth } = _a2, menuContext = __objRest(_a2, ["triggerWidth"]);
1011
+ const ownProps = __spreadValues(__spreadValues({}, props), menuContext);
1012
+ const ref = (0, import_react28.useRef)(null);
1013
+ const state = (0, import_tree.useTreeState)(__spreadProps(__spreadValues({}, ownProps), { selectionMode: "none" }));
1014
+ const { menuProps } = (0, import_menu4.useMenu)(ownProps, state, ref);
1015
+ const styles = (0, import_system16.useComponentStyles)("Menu", { variant, size }, { parts: ["container", "item"] });
1016
+ return /* @__PURE__ */ import_react28.default.createElement(import_focus5.FocusScope, {
1017
+ restoreFocus: true
1018
+ }, /* @__PURE__ */ import_react28.default.createElement("div", null, /* @__PURE__ */ import_react28.default.createElement(import_overlays6.DismissButton, {
1019
+ onDismiss: ownProps.onClose
1020
+ }), /* @__PURE__ */ import_react28.default.createElement(import_system16.Box, __spreadValues({
1021
+ as: "ul",
1022
+ ref,
1023
+ style: { width: triggerWidth },
1024
+ __baseCSS: {
1025
+ listStyle: "none",
1026
+ p: 0,
1027
+ overflowWrap: "break-word"
1028
+ },
1029
+ css: styles.container
1030
+ }, menuProps), [...state.collection].map((item) => /* @__PURE__ */ import_react28.default.createElement(MenuItem, {
1031
+ key: item.key,
1032
+ item,
1033
+ state,
1034
+ onAction: props.onSelect,
1035
+ css: styles.item
1036
+ }))), /* @__PURE__ */ import_react28.default.createElement(import_overlays6.DismissButton, {
1037
+ onDismiss: ownProps.onClose
1038
+ })));
901
1039
  };
1040
+ Menu.Trigger = MenuTrigger;
1041
+ Menu.Item = import_collections.Item;
902
1042
 
903
1043
  // src/Message/Message.tsx
904
- var import_react25 = __toESM(require("react"));
905
- var import_icons5 = require("@marigold/icons");
1044
+ var import_react29 = __toESM(require("react"));
1045
+ var import_icons4 = require("@marigold/icons");
906
1046
  var Message = (_a) => {
907
1047
  var _b = _a, {
908
1048
  messageTitle,
@@ -915,57 +1055,56 @@ var Message = (_a) => {
915
1055
  "className",
916
1056
  "children"
917
1057
  ]);
918
- var icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Info, null);
1058
+ var icon = /* @__PURE__ */ import_react29.default.createElement(import_icons4.Info, null);
919
1059
  if (variant === "warning") {
920
- icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Notification, null);
1060
+ icon = /* @__PURE__ */ import_react29.default.createElement(import_icons4.Notification, null);
921
1061
  }
922
1062
  if (variant === "error") {
923
- icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Exclamation, null);
1063
+ icon = /* @__PURE__ */ import_react29.default.createElement(import_icons4.Exclamation, null);
924
1064
  }
925
- return /* @__PURE__ */ import_react25.default.createElement(import_system.Box, __spreadValues({
1065
+ return /* @__PURE__ */ import_react29.default.createElement(import_system.Box, __spreadValues({
926
1066
  display: "inline-block",
927
1067
  variant: `message.${variant}`,
928
1068
  className
929
- }, props), /* @__PURE__ */ import_react25.default.createElement(import_system.Box, {
1069
+ }, props), /* @__PURE__ */ import_react29.default.createElement(import_system.Box, {
930
1070
  display: "flex",
931
1071
  alignItems: "center",
932
1072
  variant: "message.title"
933
- }, icon, /* @__PURE__ */ import_react25.default.createElement(Text, {
934
- as: "h4",
935
- variant: "headline4"
936
- }, messageTitle)), /* @__PURE__ */ import_react25.default.createElement(import_system.Box, {
1073
+ }, icon, /* @__PURE__ */ import_react29.default.createElement(Headline, {
1074
+ level: "4"
1075
+ }, messageTitle)), /* @__PURE__ */ import_react29.default.createElement(import_system.Box, {
937
1076
  css: { color: "black" }
938
1077
  }, children));
939
1078
  };
940
1079
 
941
1080
  // src/Provider/index.ts
942
- var import_system5 = require("@marigold/system");
1081
+ var import_system18 = require("@marigold/system");
943
1082
  var import_ssr = require("@react-aria/ssr");
944
1083
 
945
1084
  // src/Provider/MarigoldProvider.tsx
946
- var import_react26 = __toESM(require("react"));
947
- var import_overlays4 = require("@react-aria/overlays");
948
- var import_system4 = require("@marigold/system");
1085
+ var import_react30 = __toESM(require("react"));
1086
+ var import_overlays7 = require("@react-aria/overlays");
1087
+ var import_system17 = require("@marigold/system");
949
1088
  function MarigoldProvider({
950
1089
  theme,
951
1090
  children
952
1091
  }) {
953
- const outer = (0, import_system4.useTheme)();
954
- const isTopLevel = outer.theme === import_system4.__defaultTheme;
955
- return /* @__PURE__ */ import_react26.default.createElement(import_system4.ThemeProvider, {
1092
+ const outer = (0, import_system17.useTheme)();
1093
+ const isTopLevel = outer.theme === import_system17.__defaultTheme;
1094
+ return /* @__PURE__ */ import_react30.default.createElement(import_system17.ThemeProvider, {
956
1095
  theme
957
- }, isTopLevel ? /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, /* @__PURE__ */ import_react26.default.createElement(import_system4.Global, null), /* @__PURE__ */ import_react26.default.createElement(import_overlays4.OverlayProvider, null, children)) : children);
1096
+ }, isTopLevel ? /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(import_system17.Global, null), /* @__PURE__ */ import_react30.default.createElement(import_overlays7.OverlayProvider, null, children)) : children);
958
1097
  }
959
1098
 
960
1099
  // src/Radio/Radio.tsx
961
- var import_react28 = __toESM(require("react"));
962
- var import_icons6 = require("@marigold/icons");
963
- var import_focus3 = require("@react-aria/focus");
964
- var import_visually_hidden3 = require("@react-aria/visually-hidden");
1100
+ var import_react33 = __toESM(require("react"));
1101
+ var import_icons5 = require("@marigold/icons");
1102
+ var import_focus6 = require("@react-aria/focus");
1103
+ var import_visually_hidden2 = require("@react-aria/visually-hidden");
965
1104
 
966
1105
  // src/Radio/RadioIcon.tsx
967
- var import_react27 = __toESM(require("react"));
968
- var import_system6 = require("@marigold/system");
1106
+ var import_react31 = __toESM(require("react"));
1107
+ var import_system19 = require("@marigold/system");
969
1108
  var RadioIcon = ({
970
1109
  variant = "",
971
1110
  checked = false,
@@ -978,19 +1117,19 @@ var RadioIcon = ({
978
1117
  checked,
979
1118
  error
980
1119
  };
981
- return /* @__PURE__ */ import_react27.default.createElement(import_system6.SVG, {
1120
+ return /* @__PURE__ */ import_react31.default.createElement(import_system19.SVG, {
982
1121
  width: "16",
983
1122
  height: "32",
984
1123
  viewBox: "0 0 16 32",
985
1124
  fill: "none",
986
1125
  "aria-hidden": "true"
987
- }, /* @__PURE__ */ import_react27.default.createElement(import_system.Box, {
988
- variant: (0, import_system6.conditional)(`radio.${variant}`, conditionalStates),
1126
+ }, /* @__PURE__ */ import_react31.default.createElement(import_system.Box, {
1127
+ variant: (0, import_system19.conditional)(`radio.${variant}`, conditionalStates),
989
1128
  as: "circle",
990
1129
  cx: "8",
991
1130
  cy: "16",
992
1131
  r: "7.5"
993
- }), checked && /* @__PURE__ */ import_react27.default.createElement("circle", {
1132
+ }), checked && /* @__PURE__ */ import_react31.default.createElement("circle", {
994
1133
  fill: "white",
995
1134
  cx: "8",
996
1135
  cy: "16",
@@ -998,17 +1137,38 @@ var RadioIcon = ({
998
1137
  }));
999
1138
  };
1000
1139
 
1140
+ // src/ValidationMessage/ValidationMessage.tsx
1141
+ var import_react32 = __toESM(require("react"));
1142
+ var ValidationMessage = (_a) => {
1143
+ var _b = _a, {
1144
+ variant = "error",
1145
+ children,
1146
+ className
1147
+ } = _b, props = __objRest(_b, [
1148
+ "variant",
1149
+ "children",
1150
+ "className"
1151
+ ]);
1152
+ return /* @__PURE__ */ import_react32.default.createElement(import_system.Box, __spreadValues({
1153
+ as: "span",
1154
+ display: "flex",
1155
+ alignItems: "center",
1156
+ variant: `validation.${variant}`,
1157
+ className
1158
+ }, props), children);
1159
+ };
1160
+
1001
1161
  // src/Radio/Radio.tsx
1002
1162
  var RadioInput = (_a) => {
1003
1163
  var _b = _a, { error } = _b, props = __objRest(_b, ["error"]);
1004
- const { focusProps } = (0, import_focus3.useFocusRing)();
1164
+ const { focusProps } = (0, import_focus6.useFocusRing)();
1005
1165
  const _a2 = props, { children } = _a2, restProps = __objRest(_a2, ["children"]);
1006
- return /* @__PURE__ */ import_react28.default.createElement(import_system.Box, {
1166
+ return /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1007
1167
  pr: "xsmall"
1008
- }, /* @__PURE__ */ import_react28.default.createElement(import_visually_hidden3.VisuallyHidden, null, /* @__PURE__ */ import_react28.default.createElement("input", __spreadValues(__spreadValues({
1168
+ }, /* @__PURE__ */ import_react33.default.createElement(import_visually_hidden2.VisuallyHidden, null, /* @__PURE__ */ import_react33.default.createElement("input", __spreadValues(__spreadValues({
1009
1169
  type: "radio",
1010
1170
  disabled: props.disabled
1011
- }, focusProps), restProps))), /* @__PURE__ */ import_react28.default.createElement(RadioIcon, {
1171
+ }, focusProps), restProps))), /* @__PURE__ */ import_react33.default.createElement(RadioIcon, {
1012
1172
  variant: props.variant,
1013
1173
  disabled: props.disabled,
1014
1174
  checked: props.checked,
@@ -1025,52 +1185,52 @@ var Radio = (_a) => {
1025
1185
  "labelVariant",
1026
1186
  "errorMessage"
1027
1187
  ]);
1028
- return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(import_system.Box, {
1029
- as: Label,
1188
+ return /* @__PURE__ */ import_react33.default.createElement(import_react33.default.Fragment, null, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1189
+ as: Label2,
1030
1190
  htmlFor: props.id,
1031
1191
  required,
1032
1192
  variant: `label.${labelVariant}`,
1033
1193
  css: props.disabled ? { color: "disabled", ":hover": { cursor: "not-allowed" } } : { color: "text", ":hover": { cursor: "pointer" } }
1034
- }, /* @__PURE__ */ import_react28.default.createElement(import_system.Box, __spreadValues({
1194
+ }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadValues({
1035
1195
  as: RadioInput,
1036
1196
  error: props.error
1037
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react28.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react28.default.createElement(import_icons6.Exclamation, {
1197
+ }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react33.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react33.default.createElement(import_icons5.Exclamation, {
1038
1198
  size: 16
1039
1199
  }), errorMessage));
1040
1200
  };
1041
1201
 
1042
1202
  // src/Select/Select.tsx
1043
- var import_react33 = __toESM(require("react"));
1203
+ var import_react38 = __toESM(require("react"));
1044
1204
  var import_select = require("@react-stately/select");
1045
1205
  var import_button3 = require("@react-aria/button");
1046
- var import_utils2 = require("@react-aria/utils");
1047
- var import_focus5 = require("@react-aria/focus");
1206
+ var import_utils5 = require("@react-aria/utils");
1207
+ var import_focus8 = require("@react-aria/focus");
1048
1208
  var import_select2 = require("@react-aria/select");
1049
- var import_overlays6 = require("@react-stately/overlays");
1050
- var import_overlays7 = require("@react-aria/overlays");
1051
- var import_icons7 = require("@marigold/icons");
1209
+ var import_overlays9 = require("@react-stately/overlays");
1210
+ var import_overlays10 = require("@react-aria/overlays");
1211
+ var import_icons6 = require("@marigold/icons");
1052
1212
 
1053
1213
  // src/Select/ListBox.tsx
1054
- var import_react31 = __toESM(require("react"));
1214
+ var import_react36 = __toESM(require("react"));
1055
1215
  var import_listbox3 = require("@react-aria/listbox");
1056
1216
 
1057
1217
  // src/Select/Option.tsx
1058
- var import_react29 = __toESM(require("react"));
1218
+ var import_react34 = __toESM(require("react"));
1059
1219
  var import_listbox = require("@react-aria/listbox");
1060
1220
  var Option = ({ item, state }) => {
1061
- const ref = (0, import_react29.useRef)(null);
1062
- const [disabled, setDisabled] = (0, import_react29.useState)(false);
1221
+ const ref = (0, import_react34.useRef)(null);
1222
+ const [disabled, setDisabled] = (0, import_react34.useState)(false);
1063
1223
  const { optionProps, isSelected } = (0, import_listbox.useOption)({
1064
1224
  key: item.key
1065
1225
  }, state, ref);
1066
- (0, import_react29.useEffect)(() => {
1226
+ (0, import_react34.useEffect)(() => {
1067
1227
  for (const key of state.disabledKeys.values()) {
1068
1228
  if (key === item.key) {
1069
1229
  setDisabled(true);
1070
1230
  }
1071
1231
  }
1072
1232
  }, [state.disabledKeys, item.key]);
1073
- return /* @__PURE__ */ import_react29.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1233
+ return /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1074
1234
  as: "li"
1075
1235
  }, optionProps), {
1076
1236
  ref,
@@ -1079,26 +1239,26 @@ var Option = ({ item, state }) => {
1079
1239
  };
1080
1240
 
1081
1241
  // src/Select/ListBoxSection.tsx
1082
- var import_react30 = __toESM(require("react"));
1242
+ var import_react35 = __toESM(require("react"));
1083
1243
  var import_listbox2 = require("@react-aria/listbox");
1084
1244
  var ListBoxSection = ({ section, state }) => {
1085
1245
  const { itemProps, headingProps, groupProps } = (0, import_listbox2.useListBoxSection)({
1086
1246
  heading: section.rendered,
1087
1247
  "aria-label": section["aria-label"]
1088
1248
  });
1089
- return /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1249
+ return /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1090
1250
  as: "li"
1091
1251
  }, itemProps), {
1092
1252
  css: {
1093
1253
  cursor: "not-allowed"
1094
1254
  }
1095
- }), section.rendered && /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1255
+ }), section.rendered && /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1096
1256
  as: "span"
1097
1257
  }, headingProps), {
1098
1258
  variant: "select.section"
1099
- }), section.rendered), /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadValues({
1259
+ }), section.rendered), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadValues({
1100
1260
  as: "ul"
1101
- }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react30.default.createElement(Option, {
1261
+ }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react35.default.createElement(Option, {
1102
1262
  key: node.key,
1103
1263
  item: node,
1104
1264
  state
@@ -1107,10 +1267,10 @@ var ListBoxSection = ({ section, state }) => {
1107
1267
 
1108
1268
  // src/Select/ListBox.tsx
1109
1269
  var ListBox = (props) => {
1110
- const ref = (0, import_react31.useRef)(null);
1270
+ const ref = (0, import_react36.useRef)(null);
1111
1271
  const { state, error } = props;
1112
1272
  const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, ref);
1113
- return /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1273
+ return /* @__PURE__ */ import_react36.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1114
1274
  as: "ul",
1115
1275
  p: "none",
1116
1276
  css: {
@@ -1119,11 +1279,11 @@ var ListBox = (props) => {
1119
1279
  }, listBoxProps), {
1120
1280
  variant: error ? "select.listbox.error" : "select.listbox",
1121
1281
  ref
1122
- }), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react31.default.createElement(ListBoxSection, {
1282
+ }), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react36.default.createElement(ListBoxSection, {
1123
1283
  key: item.key,
1124
1284
  section: item,
1125
1285
  state
1126
- }) : /* @__PURE__ */ import_react31.default.createElement(Option, {
1286
+ }) : /* @__PURE__ */ import_react36.default.createElement(Option, {
1127
1287
  key: item.key,
1128
1288
  item,
1129
1289
  state
@@ -1131,25 +1291,25 @@ var ListBox = (props) => {
1131
1291
  };
1132
1292
 
1133
1293
  // src/Select/Popover.tsx
1134
- var import_react32 = __toESM(require("react"));
1135
- var import_focus4 = require("@react-aria/focus");
1136
- var import_overlays5 = require("@react-aria/overlays");
1137
- var import_utils = require("@react-aria/utils");
1138
- var Popover = (0, import_react32.forwardRef)((_a, ref) => {
1294
+ var import_react37 = __toESM(require("react"));
1295
+ var import_focus7 = require("@react-aria/focus");
1296
+ var import_overlays8 = require("@react-aria/overlays");
1297
+ var import_utils4 = require("@react-aria/utils");
1298
+ var Popover2 = (0, import_react37.forwardRef)((_a, ref) => {
1139
1299
  var _b = _a, { children, className, isOpen, onClose } = _b, otherProps = __objRest(_b, ["children", "className", "isOpen", "onClose"]);
1140
- const { overlayProps } = (0, import_overlays5.useOverlay)({
1300
+ const { overlayProps } = (0, import_overlays8.useOverlay)({
1141
1301
  isOpen,
1142
1302
  onClose,
1143
1303
  shouldCloseOnBlur: true,
1144
1304
  isDismissable: true
1145
1305
  }, ref);
1146
- const { modalProps } = (0, import_overlays5.useModal)();
1147
- return /* @__PURE__ */ import_react32.default.createElement(import_overlays5.OverlayContainer, null, /* @__PURE__ */ import_react32.default.createElement(import_focus4.FocusScope, {
1306
+ const { modalProps } = (0, import_overlays8.useModal)();
1307
+ return /* @__PURE__ */ import_react37.default.createElement(import_overlays8.OverlayContainer, null, /* @__PURE__ */ import_react37.default.createElement(import_focus7.FocusScope, {
1148
1308
  restoreFocus: true
1149
- }, /* @__PURE__ */ import_react32.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, (0, import_utils.mergeProps)(overlayProps, otherProps, modalProps)), {
1309
+ }, /* @__PURE__ */ import_react37.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, (0, import_utils4.mergeProps)(overlayProps, otherProps, modalProps)), {
1150
1310
  className,
1151
1311
  ref
1152
- }), children, /* @__PURE__ */ import_react32.default.createElement(import_overlays5.DismissButton, {
1312
+ }), children, /* @__PURE__ */ import_react37.default.createElement(import_overlays8.DismissButton, {
1153
1313
  onDismiss: onClose
1154
1314
  }))));
1155
1315
  });
@@ -1176,11 +1336,11 @@ var Select = (_a) => {
1176
1336
  "className"
1177
1337
  ]);
1178
1338
  const state = (0, import_select.useSelectState)(props);
1179
- const overlayTriggerState = (0, import_overlays6.useOverlayTriggerState)({});
1180
- const triggerRef = (0, import_react33.useRef)();
1181
- const overlayRef = (0, import_react33.useRef)();
1182
- const { overlayProps } = (0, import_overlays7.useOverlayTrigger)({ type: "listbox" }, overlayTriggerState, triggerRef);
1183
- const { overlayProps: positionProps } = (0, import_overlays7.useOverlayPosition)({
1339
+ const overlayTriggerState = (0, import_overlays9.useOverlayTriggerState)({});
1340
+ const triggerRef = (0, import_react38.useRef)();
1341
+ const overlayRef = (0, import_react38.useRef)();
1342
+ const { overlayProps } = (0, import_overlays10.useOverlayTrigger)({ type: "listbox" }, overlayTriggerState, triggerRef);
1343
+ const { overlayProps: positionProps } = (0, import_overlays10.useOverlayPosition)({
1184
1344
  targetRef: triggerRef,
1185
1345
  overlayRef,
1186
1346
  placement: "bottom",
@@ -1190,46 +1350,46 @@ var Select = (_a) => {
1190
1350
  });
1191
1351
  const { labelProps, triggerProps, valueProps, menuProps } = (0, import_select2.useSelect)(props, state, triggerRef);
1192
1352
  const { buttonProps } = (0, import_button3.useButton)(triggerProps, triggerRef);
1193
- const { focusProps } = (0, import_focus5.useFocusRing)();
1194
- return /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1353
+ const { focusProps } = (0, import_focus8.useFocusRing)();
1354
+ return /* @__PURE__ */ import_react38.default.createElement(import_system.Box, {
1195
1355
  position: "relative",
1196
1356
  display: "inline-block",
1197
1357
  width: width && width
1198
- }, props.label && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react33.default.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
1358
+ }, props.label && /* @__PURE__ */ import_react38.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react38.default.createElement(Label2, __spreadProps(__spreadValues({}, labelProps), {
1199
1359
  htmlFor: labelProps.id,
1200
1360
  variant: labelVariant
1201
- }), required ? /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1361
+ }), required ? /* @__PURE__ */ import_react38.default.createElement(import_system.Box, {
1202
1362
  as: "span",
1203
1363
  display: "inline-flex",
1204
1364
  alignItems: "center"
1205
- }, props.label, /* @__PURE__ */ import_react33.default.createElement(import_icons7.Required, {
1365
+ }, props.label, /* @__PURE__ */ import_react38.default.createElement(import_icons6.Required, {
1206
1366
  size: 16,
1207
1367
  fill: "error"
1208
- })) : props.label)), /* @__PURE__ */ import_react33.default.createElement(import_select2.HiddenSelect, {
1368
+ })) : props.label)), /* @__PURE__ */ import_react38.default.createElement(import_select2.HiddenSelect, {
1209
1369
  state,
1210
1370
  triggerRef,
1211
1371
  label: props.label,
1212
1372
  name: props.name,
1213
1373
  isDisabled: disabled
1214
- }), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1374
+ }), /* @__PURE__ */ import_react38.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1215
1375
  as: "button"
1216
- }, (0, import_utils2.mergeProps)(buttonProps, focusProps)), {
1376
+ }, (0, import_utils5.mergeProps)(buttonProps, focusProps)), {
1217
1377
  ref: triggerRef,
1218
1378
  variant: error && state.isOpen && !disabled ? "button.select.errorOpened" : error ? "button.select.error" : state.isOpen && !disabled ? "button.select.open" : "button.select",
1219
1379
  disabled,
1220
1380
  className
1221
- }), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1381
+ }), /* @__PURE__ */ import_react38.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1222
1382
  as: "span"
1223
1383
  }, valueProps), {
1224
1384
  variant: disabled ? "select.disabled" : "select"
1225
- }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? /* @__PURE__ */ import_react33.default.createElement(import_icons7.ArrowUp, {
1385
+ }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? /* @__PURE__ */ import_react38.default.createElement(import_icons6.ArrowUp, {
1226
1386
  size: 16,
1227
1387
  fill: "text"
1228
- }) : /* @__PURE__ */ import_react33.default.createElement(import_icons7.ArrowDown, {
1388
+ }) : /* @__PURE__ */ import_react38.default.createElement(import_icons6.ArrowDown, {
1229
1389
  size: 16,
1230
1390
  fill: disabled ? "disabled" : "text"
1231
- })), state.isOpen && !disabled && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({
1232
- as: Popover
1391
+ })), state.isOpen && !disabled && /* @__PURE__ */ import_react38.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({
1392
+ as: Popover2
1233
1393
  }, overlayProps), positionProps), {
1234
1394
  css: {
1235
1395
  width: triggerRef.current && triggerRef.current.offsetWidth + "px"
@@ -1237,26 +1397,26 @@ var Select = (_a) => {
1237
1397
  ref: overlayRef,
1238
1398
  isOpen: state.isOpen,
1239
1399
  onClose: state.close
1240
- }), /* @__PURE__ */ import_react33.default.createElement(ListBox, __spreadProps(__spreadValues({
1400
+ }), /* @__PURE__ */ import_react38.default.createElement(ListBox, __spreadProps(__spreadValues({
1241
1401
  error
1242
1402
  }, menuProps), {
1243
1403
  state
1244
- }))), error && errorMessage && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1404
+ }))), error && errorMessage && /* @__PURE__ */ import_react38.default.createElement(import_system.Box, {
1245
1405
  as: "span",
1246
1406
  display: "inline-flex",
1247
1407
  alignItems: "center"
1248
- }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1249
- as: import_icons7.Exclamation,
1408
+ }, /* @__PURE__ */ import_react38.default.createElement(import_system.Box, {
1409
+ as: import_icons6.Exclamation,
1250
1410
  size: 16,
1251
1411
  css: { color: "error" }
1252
- }), /* @__PURE__ */ import_react33.default.createElement(ValidationMessage, null, errorMessage)));
1412
+ }), /* @__PURE__ */ import_react38.default.createElement(ValidationMessage, null, errorMessage)));
1253
1413
  };
1254
1414
 
1255
1415
  // src/Slider/Slider.tsx
1256
- var import_react34 = __toESM(require("react"));
1416
+ var import_react39 = __toESM(require("react"));
1257
1417
  var Slider = (_a) => {
1258
1418
  var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
1259
- return /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadValues({
1419
+ return /* @__PURE__ */ import_react39.default.createElement(import_system.Box, __spreadValues({
1260
1420
  as: "input",
1261
1421
  type: "range",
1262
1422
  css: { verticalAlign: "middle" },
@@ -1265,12 +1425,12 @@ var Slider = (_a) => {
1265
1425
  };
1266
1426
 
1267
1427
  // src/Switch/Switch.tsx
1268
- var import_react35 = __toESM(require("react"));
1269
- var import_focus6 = require("@react-aria/focus");
1428
+ var import_react40 = __toESM(require("react"));
1429
+ var import_focus9 = require("@react-aria/focus");
1270
1430
  var import_switch = require("@react-aria/switch");
1271
- var import_visually_hidden4 = require("@react-aria/visually-hidden");
1431
+ var import_visually_hidden3 = require("@react-aria/visually-hidden");
1272
1432
  var import_toggle2 = require("@react-stately/toggle");
1273
- var import_system7 = require("@marigold/system");
1433
+ var import_system20 = require("@marigold/system");
1274
1434
  var Switch = (_a) => {
1275
1435
  var _b = _a, {
1276
1436
  variant = "",
@@ -1282,19 +1442,19 @@ var Switch = (_a) => {
1282
1442
  "disabled"
1283
1443
  ]);
1284
1444
  const state = (0, import_toggle2.useToggleState)(props);
1285
- const ref = (0, import_react35.useRef)();
1445
+ const ref = (0, import_react40.useRef)();
1286
1446
  const { inputProps } = (0, import_switch.useSwitch)(props, state, ref);
1287
- const { focusProps } = (0, import_focus6.useFocusRing)();
1288
- return /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1289
- as: Label,
1447
+ const { focusProps } = (0, import_focus9.useFocusRing)();
1448
+ return /* @__PURE__ */ import_react40.default.createElement(import_system.Box, {
1449
+ as: Label2,
1290
1450
  __baseCSS: {
1291
1451
  userSelect: "none"
1292
1452
  },
1293
1453
  variant: labelVariant
1294
- }, props.children, /* @__PURE__ */ import_react35.default.createElement(import_visually_hidden4.VisuallyHidden, null, /* @__PURE__ */ import_react35.default.createElement("input", __spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
1454
+ }, props.children, /* @__PURE__ */ import_react40.default.createElement(import_visually_hidden3.VisuallyHidden, null, /* @__PURE__ */ import_react40.default.createElement("input", __spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
1295
1455
  disabled,
1296
1456
  ref
1297
- }))), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1457
+ }))), /* @__PURE__ */ import_react40.default.createElement(import_system.Box, {
1298
1458
  as: "svg",
1299
1459
  __baseCSS: {
1300
1460
  cursor: disabled ? "not-allowed" : "pointer",
@@ -1302,7 +1462,7 @@ var Switch = (_a) => {
1302
1462
  height: 32
1303
1463
  },
1304
1464
  "aria-hidden": "true"
1305
- }, /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1465
+ }, /* @__PURE__ */ import_react40.default.createElement(import_system.Box, {
1306
1466
  as: "rect",
1307
1467
  __baseCSS: {
1308
1468
  x: 4,
@@ -1311,11 +1471,11 @@ var Switch = (_a) => {
1311
1471
  width: 48,
1312
1472
  height: 24
1313
1473
  },
1314
- variant: (0, import_system7.conditional)(`switch.${variant}`, {
1474
+ variant: (0, import_system20.conditional)(`switch.${variant}`, {
1315
1475
  checked: state.isSelected,
1316
1476
  disabled
1317
1477
  })
1318
- }), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1478
+ }), /* @__PURE__ */ import_react40.default.createElement(import_system.Box, {
1319
1479
  as: "circle",
1320
1480
  __baseCSS: {
1321
1481
  boxShadow: "1px 1px 4px rgba(0, 0, 0, 0.25)",
@@ -1327,51 +1487,446 @@ var Switch = (_a) => {
1327
1487
  })));
1328
1488
  };
1329
1489
 
1330
- // src/Textarea/Textarea.tsx
1331
- var import_react36 = __toESM(require("react"));
1332
- var import_textfield2 = require("@react-aria/textfield");
1333
- var import_icons8 = require("@marigold/icons");
1334
- var Textarea = (_a) => {
1490
+ // src/Stack/Stack.tsx
1491
+ var import_react41 = __toESM(require("react"));
1492
+ var ALIGNMENT2 = {
1493
+ left: "flex-start",
1494
+ center: "center",
1495
+ right: "flex-end"
1496
+ };
1497
+ var Stack = (_a) => {
1335
1498
  var _b = _a, {
1336
- variant = "",
1337
- htmlFor,
1499
+ space = "none",
1500
+ align = "left",
1501
+ children
1502
+ } = _b, props = __objRest(_b, [
1503
+ "space",
1504
+ "align",
1505
+ "children"
1506
+ ]);
1507
+ return /* @__PURE__ */ import_react41.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1508
+ display: "flex",
1509
+ flexDirection: "column",
1510
+ alignItems: ALIGNMENT2[align],
1511
+ p: "0",
1512
+ css: { gap: space }
1513
+ }), children);
1514
+ };
1515
+
1516
+ // src/Table/Table.tsx
1517
+ var import_react48 = __toESM(require("react"));
1518
+ var import_table6 = require("@react-aria/table");
1519
+ var import_table7 = require("@react-stately/table");
1520
+ var import_system26 = require("@marigold/system");
1521
+
1522
+ // src/Table/TableCell.tsx
1523
+ var import_react42 = __toESM(require("react"));
1524
+ var import_checkbox4 = require("@react-aria/checkbox");
1525
+ var import_focus10 = require("@react-aria/focus");
1526
+ var import_table = require("@react-aria/table");
1527
+ var import_utils6 = require("@react-aria/utils");
1528
+ var import_toggle3 = require("@react-stately/toggle");
1529
+ var import_system21 = require("@marigold/system");
1530
+ var TableCell = ({
1531
+ item: cell,
1532
+ state,
1533
+ isSelectionCell,
1534
+ align = "left",
1535
+ css
1536
+ }) => {
1537
+ const cellRef = (0, import_react42.useRef)(null);
1538
+ const { gridCellProps } = (0, import_table.useTableCell)({ node: cell }, state, cellRef);
1539
+ const { checkboxProps } = (0, import_table.useTableSelectionCheckbox)({ key: cell.parentKey }, state);
1540
+ const inputRef = (0, import_react42.useRef)(null);
1541
+ const { inputProps } = (0, import_checkbox4.useCheckbox)(checkboxProps, (0, import_toggle3.useToggleState)(checkboxProps), inputRef);
1542
+ const { focusProps, isFocusVisible } = (0, import_focus10.useFocusRing)();
1543
+ const stateProps = (0, import_system21.useStateProps)({ focus: isFocusVisible });
1544
+ return /* @__PURE__ */ import_react42.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1545
+ as: "td",
1546
+ ref: cellRef,
1547
+ __baseCSS: {
1548
+ textAlign: isSelectionCell ? "center" : align
1549
+ },
1550
+ css
1551
+ }, (0, import_utils6.mergeProps)(gridCellProps, focusProps)), stateProps), isSelectionCell ? /* @__PURE__ */ import_react42.default.createElement("input", __spreadValues({}, inputProps)) : /* @__PURE__ */ import_react42.default.createElement(import_react42.default.Fragment, null, cell.rendered));
1552
+ };
1553
+
1554
+ // src/Table/TableColumnHeader.tsx
1555
+ var import_react44 = __toESM(require("react"));
1556
+ var import_checkbox5 = require("@react-aria/checkbox");
1557
+ var import_focus11 = require("@react-aria/focus");
1558
+ var import_table2 = require("@react-aria/table");
1559
+ var import_utils7 = require("@react-aria/utils");
1560
+ var import_toggle4 = require("@react-stately/toggle");
1561
+ var import_system24 = require("@marigold/system");
1562
+
1563
+ // src/Text/Text.tsx
1564
+ var import_react43 = __toESM(require("react"));
1565
+ var import_system22 = require("@marigold/system");
1566
+ var import_system23 = require("@marigold/system");
1567
+ var Text = (_a) => {
1568
+ var _b = _a, {
1569
+ variant,
1570
+ size,
1571
+ align,
1572
+ color,
1573
+ fontSize,
1574
+ cursor,
1575
+ outline,
1576
+ children
1577
+ } = _b, props = __objRest(_b, [
1578
+ "variant",
1579
+ "size",
1580
+ "align",
1581
+ "color",
1582
+ "fontSize",
1583
+ "cursor",
1584
+ "outline",
1585
+ "children"
1586
+ ]);
1587
+ const styles = (0, import_system22.useComponentStyles)("Text", {
1588
+ variant,
1589
+ size
1590
+ });
1591
+ return /* @__PURE__ */ import_react43.default.createElement(import_system23.Box, __spreadProps(__spreadValues({
1592
+ as: "p"
1593
+ }, props), {
1594
+ css: __spreadValues({ color, cursor, outline, fontSize, textAlign: align }, styles)
1595
+ }), children);
1596
+ };
1597
+
1598
+ // src/Table/TableColumnHeader.tsx
1599
+ var TableColumnHeader = ({
1600
+ item: column,
1601
+ state,
1602
+ isSelectionColumn,
1603
+ align = "left",
1604
+ css
1605
+ }) => {
1606
+ const ref = (0, import_react44.useRef)(null);
1607
+ const { columnHeaderProps } = (0, import_table2.useTableColumnHeader)({ node: column }, state, ref);
1608
+ const { checkboxProps } = (0, import_table2.useTableSelectAllCheckbox)(state);
1609
+ const inputRef = (0, import_react44.useRef)(null);
1610
+ const { inputProps } = (0, import_checkbox5.useCheckbox)(checkboxProps, (0, import_toggle4.useToggleState)(checkboxProps), inputRef);
1611
+ const { focusProps, isFocusVisible } = (0, import_focus11.useFocusRing)();
1612
+ const stateProps = (0, import_system24.useStateProps)({ focus: isFocusVisible });
1613
+ return /* @__PURE__ */ import_react44.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1614
+ as: "th",
1615
+ ref,
1616
+ __baseCSS: { textAlign: isSelectionColumn ? "center" : align },
1617
+ css
1618
+ }, (0, import_utils7.mergeProps)(columnHeaderProps, focusProps)), stateProps), isSelectionColumn ? /* @__PURE__ */ import_react44.default.createElement("input", __spreadProps(__spreadValues({}, inputProps), {
1619
+ ref: inputRef
1620
+ })) : /* @__PURE__ */ import_react44.default.createElement(Text, {
1621
+ size: "xxsmall"
1622
+ }, column.rendered));
1623
+ };
1624
+
1625
+ // src/Table/TableHeaderRow.tsx
1626
+ var import_react45 = __toESM(require("react"));
1627
+ var import_table3 = require("@react-aria/table");
1628
+ var TableHeaderRow = ({
1629
+ item,
1630
+ state,
1631
+ children
1632
+ }) => {
1633
+ const ref = (0, import_react45.useRef)(null);
1634
+ const { rowProps } = (0, import_table3.useTableHeaderRow)({ node: item }, state, ref);
1635
+ return /* @__PURE__ */ import_react45.default.createElement("tr", __spreadProps(__spreadValues({}, rowProps), {
1636
+ ref
1637
+ }), children);
1638
+ };
1639
+
1640
+ // src/Table/TableRow.tsx
1641
+ var import_react46 = __toESM(require("react"));
1642
+ var import_focus12 = require("@react-aria/focus");
1643
+ var import_table4 = require("@react-aria/table");
1644
+ var import_utils8 = require("@react-aria/utils");
1645
+ var import_system25 = require("@marigold/system");
1646
+ var TableRow = ({ item, state, children, css }) => {
1647
+ const ref = (0, import_react46.useRef)(null);
1648
+ const isSelected = state.selectionManager.isSelected(item.key);
1649
+ const { rowProps } = (0, import_table4.useTableRow)({
1650
+ node: item
1651
+ }, state, ref);
1652
+ const { focusProps, isFocusVisible } = (0, import_focus12.useFocusRing)();
1653
+ const stateProps = (0, import_system25.useStateProps)({
1654
+ focus: isFocusVisible,
1655
+ checked: isSelected
1656
+ });
1657
+ return /* @__PURE__ */ import_react46.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1658
+ as: "tr",
1659
+ ref,
1660
+ css
1661
+ }, (0, import_utils8.mergeProps)(rowProps, focusProps)), stateProps), children);
1662
+ };
1663
+
1664
+ // src/Table/TableRowGroup.tsx
1665
+ var import_react47 = __toESM(require("react"));
1666
+ var import_table5 = require("@react-aria/table");
1667
+ var TableRowGroup = ({
1668
+ as: Element,
1669
+ children
1670
+ }) => {
1671
+ const { rowGroupProps } = (0, import_table5.useTableRowGroup)();
1672
+ return /* @__PURE__ */ import_react47.default.createElement(Element, __spreadValues({}, rowGroupProps), children);
1673
+ };
1674
+
1675
+ // src/Table/Table.tsx
1676
+ var Table = (_a) => {
1677
+ var _b = _a, {
1678
+ align,
1679
+ alignHeader,
1680
+ variant,
1681
+ size
1682
+ } = _b, props = __objRest(_b, [
1683
+ "align",
1684
+ "alignHeader",
1685
+ "variant",
1686
+ "size"
1687
+ ]);
1688
+ const showSelectionCheckboxes = props.selectionMode === "multiple" && props.selectionBehavior !== "replace";
1689
+ const state = (0, import_table7.useTableState)(__spreadProps(__spreadValues({}, props), {
1690
+ showSelectionCheckboxes
1691
+ }));
1692
+ const ref = (0, import_react48.useRef)(null);
1693
+ const { gridProps } = (0, import_table6.useTable)(props, state, ref);
1694
+ const styles = (0, import_system26.useComponentStyles)("Table", { variant, size }, { parts: ["table", "header", "row", "cell"] });
1695
+ return /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadValues({
1696
+ as: "table",
1697
+ ref,
1698
+ __baseCSS: styles.table
1699
+ }, gridProps), /* @__PURE__ */ import_react48.default.createElement(TableRowGroup, {
1700
+ as: "thead"
1701
+ }, state.collection.headerRows.map((headerRow) => /* @__PURE__ */ import_react48.default.createElement(TableHeaderRow, {
1702
+ key: headerRow.key,
1703
+ item: headerRow,
1704
+ state
1705
+ }, [...headerRow.childNodes].map((column) => /* @__PURE__ */ import_react48.default.createElement(TableColumnHeader, {
1706
+ key: column.key,
1707
+ item: column,
1708
+ state,
1709
+ isSelectionColumn: column.props.isSelectionCell,
1710
+ align: alignHeader,
1711
+ css: styles.header
1712
+ }))))), /* @__PURE__ */ import_react48.default.createElement(TableRowGroup, {
1713
+ as: "tbody"
1714
+ }, [...state.collection.body.childNodes].map((row) => /* @__PURE__ */ import_react48.default.createElement(TableRow, {
1715
+ css: styles.row,
1716
+ key: row.key,
1717
+ item: row,
1718
+ state
1719
+ }, [...row.childNodes].map((cell) => /* @__PURE__ */ import_react48.default.createElement(TableCell, {
1720
+ key: cell.key,
1721
+ item: cell,
1722
+ state,
1723
+ isSelectionCell: cell.props.isSelectionCell,
1724
+ align,
1725
+ css: styles.cell
1726
+ }))))));
1727
+ };
1728
+ Table.Body = import_table7.TableBody;
1729
+ Table.Cell = import_table7.Cell;
1730
+ Table.Column = import_table7.Column;
1731
+ Table.Header = import_table7.TableHeader;
1732
+ Table.Row = import_table7.Row;
1733
+
1734
+ // src/TextArea/TextArea.tsx
1735
+ var import_react51 = __toESM(require("react"));
1736
+ var import_textfield = require("@react-aria/textfield");
1737
+ var import_system28 = require("@marigold/system");
1738
+
1739
+ // src/Field/FieldBase.tsx
1740
+ var import_react50 = __toESM(require("react"));
1741
+
1742
+ // src/Field/HelpText.tsx
1743
+ var import_react49 = __toESM(require("react"));
1744
+ var import_icons7 = require("@marigold/icons");
1745
+ var import_system27 = require("@marigold/system");
1746
+ var HelpText = (_a) => {
1747
+ var _b = _a, {
1748
+ variant,
1749
+ size,
1750
+ disabled,
1751
+ description,
1752
+ descriptionProps,
1338
1753
  error,
1339
1754
  errorMessage,
1340
- required,
1341
- children
1755
+ errorMessageProps
1342
1756
  } = _b, props = __objRest(_b, [
1343
1757
  "variant",
1344
- "htmlFor",
1758
+ "size",
1759
+ "disabled",
1760
+ "description",
1761
+ "descriptionProps",
1345
1762
  "error",
1346
1763
  "errorMessage",
1347
- "required",
1348
- "children"
1764
+ "errorMessageProps"
1349
1765
  ]);
1350
- const ref = (0, import_react36.useRef)(null);
1351
- const { labelProps, inputProps, errorMessageProps } = (0, import_textfield2.useTextField)(__spreadProps(__spreadValues({}, props), {
1352
- inputElementType: "textarea"
1353
- }), ref);
1354
- return /* @__PURE__ */ import_react36.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react36.default.createElement(Label, __spreadValues({
1355
- htmlFor,
1766
+ var _a2;
1767
+ const hasErrorMessage = errorMessage && error;
1768
+ const styles = (0, import_system27.useComponentStyles)("HelpText", { variant, size }, { parts: ["container", "icon"] });
1769
+ return /* @__PURE__ */ import_react49.default.createElement(import_system27.Box, __spreadProps(__spreadValues({}, props), {
1770
+ __baseCSS: { display: "flex", alignItems: "center", gap: 4 },
1771
+ css: styles.container
1772
+ }), hasErrorMessage ? /* @__PURE__ */ import_react49.default.createElement(import_react49.default.Fragment, null, /* @__PURE__ */ import_react49.default.createElement(import_icons7.Exclamation, {
1773
+ role: "presentation",
1774
+ size: ((_a2 = styles == null ? void 0 : styles.icon) == null ? void 0 : _a2.size) || 16
1775
+ }), /* @__PURE__ */ import_react49.default.createElement(import_system27.Box, __spreadValues({}, errorMessageProps), errorMessage)) : /* @__PURE__ */ import_react49.default.createElement(import_system27.Box, __spreadValues({}, descriptionProps), description));
1776
+ };
1777
+
1778
+ // src/Field/FieldBase.tsx
1779
+ var FieldBase = ({
1780
+ variant,
1781
+ size,
1782
+ children,
1783
+ disabled,
1784
+ required,
1785
+ label,
1786
+ labelProps,
1787
+ description,
1788
+ descriptionProps,
1789
+ error,
1790
+ errorMessage,
1791
+ errorMessageProps,
1792
+ stateProps
1793
+ }) => {
1794
+ const hasHelpText = !!description || errorMessage && error;
1795
+ return /* @__PURE__ */ import_react50.default.createElement(Stack, null, label && /* @__PURE__ */ import_react50.default.createElement(Label, __spreadProps(__spreadValues(__spreadValues({}, labelProps), stateProps), {
1356
1796
  required
1357
- }, labelProps), props.label), /* @__PURE__ */ import_react36.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
1797
+ }), label), children, hasHelpText && /* @__PURE__ */ import_react50.default.createElement(HelpText, __spreadProps(__spreadValues({}, stateProps), {
1798
+ disabled,
1799
+ description,
1800
+ descriptionProps,
1801
+ error,
1802
+ errorMessage,
1803
+ errorMessageProps
1804
+ })));
1805
+ };
1806
+
1807
+ // src/TextArea/TextArea.tsx
1808
+ var import_interactions3 = require("@react-aria/interactions");
1809
+ var import_focus13 = require("@react-aria/focus");
1810
+ var TextArea = (_a) => {
1811
+ var _b = _a, {
1812
+ disabled,
1813
+ required,
1814
+ readOnly,
1815
+ error
1816
+ } = _b, props = __objRest(_b, [
1817
+ "disabled",
1818
+ "required",
1819
+ "readOnly",
1820
+ "error"
1821
+ ]);
1822
+ const { label, description, errorMessage } = props;
1823
+ const ref = (0, import_react51.useRef)(null);
1824
+ const { labelProps, inputProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(__spreadValues({
1825
+ inputElementType: "textarea",
1826
+ isDisabled: disabled,
1827
+ isRequired: required,
1828
+ isReadOnly: readOnly,
1829
+ validationState: error ? "invalid" : "valid"
1830
+ }, props), ref);
1831
+ const { hoverProps, isHovered } = (0, import_interactions3.useHover)({});
1832
+ const { focusProps, isFocusVisible } = (0, import_focus13.useFocusRing)();
1833
+ const stateProps = (0, import_system28.useStateProps)({
1834
+ hover: isHovered,
1835
+ focus: isFocusVisible,
1836
+ disabled,
1837
+ readOnly,
1838
+ error
1839
+ });
1840
+ const styles = (0, import_system28.useComponentStyles)("TextArea", {});
1841
+ return /* @__PURE__ */ import_react51.default.createElement(FieldBase, {
1842
+ label,
1843
+ labelProps,
1844
+ required,
1845
+ description,
1846
+ descriptionProps,
1847
+ error,
1848
+ errorMessage,
1849
+ errorMessageProps,
1850
+ stateProps
1851
+ }, /* @__PURE__ */ import_react51.default.createElement(import_system28.Box, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
1358
1852
  as: "textarea",
1359
- variant: `textarea.${variant}`,
1360
- css: {
1361
- outlineColor: error && "error"
1362
- }
1363
- }, inputProps), {
1853
+ variant: "textArea",
1854
+ css: styles,
1364
1855
  ref
1365
- }), props)), error && errorMessage && /* @__PURE__ */ import_react36.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react36.default.createElement(import_icons8.Exclamation, {
1366
- size: 16
1367
- }), errorMessage));
1856
+ }, inputProps), focusProps), hoverProps), stateProps)));
1857
+ };
1858
+
1859
+ // src/TextField/TextField.tsx
1860
+ var import_react53 = __toESM(require("react"));
1861
+ var import_interactions4 = require("@react-aria/interactions");
1862
+ var import_focus14 = require("@react-aria/focus");
1863
+ var import_textfield2 = require("@react-aria/textfield");
1864
+ var import_system30 = require("@marigold/system");
1865
+
1866
+ // src/Input/Input.tsx
1867
+ var import_react52 = __toESM(require("react"));
1868
+ var import_system29 = require("@marigold/system");
1869
+ var Input = (0, import_react52.forwardRef)((_a, ref) => {
1870
+ var _b = _a, { variant, size, type = "text" } = _b, props = __objRest(_b, ["variant", "size", "type"]);
1871
+ const styles = (0, import_system29.useComponentStyles)("Input", { variant, size });
1872
+ return /* @__PURE__ */ import_react52.default.createElement(import_system29.Box, __spreadProps(__spreadValues({}, props), {
1873
+ ref,
1874
+ as: "input",
1875
+ type,
1876
+ css: styles
1877
+ }));
1878
+ });
1879
+
1880
+ // src/TextField/TextField.tsx
1881
+ var TextField = (_a) => {
1882
+ var _b = _a, {
1883
+ disabled,
1884
+ required,
1885
+ readOnly,
1886
+ error
1887
+ } = _b, props = __objRest(_b, [
1888
+ "disabled",
1889
+ "required",
1890
+ "readOnly",
1891
+ "error"
1892
+ ]);
1893
+ const { label, description, errorMessage } = props;
1894
+ const ref = (0, import_react53.useRef)(null);
1895
+ const { labelProps, inputProps, descriptionProps, errorMessageProps } = (0, import_textfield2.useTextField)(__spreadValues({
1896
+ isDisabled: disabled,
1897
+ isRequired: required,
1898
+ isReadOnly: readOnly,
1899
+ validationState: error ? "invalid" : "valid"
1900
+ }, props), ref);
1901
+ const { hoverProps, isHovered } = (0, import_interactions4.useHover)({});
1902
+ const { focusProps, isFocusVisible } = (0, import_focus14.useFocusRing)();
1903
+ const stateProps = (0, import_system30.useStateProps)({
1904
+ hover: isHovered,
1905
+ focus: isFocusVisible,
1906
+ disabled,
1907
+ readOnly,
1908
+ error
1909
+ });
1910
+ return /* @__PURE__ */ import_react53.default.createElement(FieldBase, {
1911
+ label,
1912
+ labelProps,
1913
+ required,
1914
+ description,
1915
+ descriptionProps,
1916
+ error,
1917
+ errorMessage,
1918
+ errorMessageProps,
1919
+ stateProps
1920
+ }, /* @__PURE__ */ import_react53.default.createElement(Input, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
1921
+ ref
1922
+ }, inputProps), focusProps), hoverProps), stateProps)));
1368
1923
  };
1369
1924
 
1370
1925
  // src/Tiles/Tiles.tsx
1371
- var import_react37 = __toESM(require("react"));
1372
- var Tiles = import_react37.default.forwardRef(function Tiles2(_a, ref) {
1926
+ var import_react54 = __toESM(require("react"));
1927
+ var Tiles = import_react54.default.forwardRef(function Tiles2(_a, ref) {
1373
1928
  var _b = _a, { space = "none", itemMinWidth = "250px", children } = _b, props = __objRest(_b, ["space", "itemMinWidth", "children"]);
1374
- return /* @__PURE__ */ import_react37.default.createElement(import_system.Box, __spreadValues({
1929
+ return /* @__PURE__ */ import_react54.default.createElement(import_system.Box, __spreadValues({
1375
1930
  ref,
1376
1931
  display: "grid",
1377
1932
  __baseCSS: {
@@ -1382,25 +1937,25 @@ var Tiles = import_react37.default.forwardRef(function Tiles2(_a, ref) {
1382
1937
  });
1383
1938
 
1384
1939
  // src/Tooltip/Tooltip.tsx
1385
- var import_react39 = __toESM(require("react"));
1940
+ var import_react56 = __toESM(require("react"));
1386
1941
  var import_tooltip3 = require("@react-aria/tooltip");
1387
- var import_utils3 = require("@react-aria/utils");
1942
+ var import_utils9 = require("@react-aria/utils");
1388
1943
 
1389
1944
  // src/Tooltip/TooltipTrigger.tsx
1390
- var import_react38 = __toESM(require("react"));
1391
- var import_focus7 = require("@react-aria/focus");
1945
+ var import_react55 = __toESM(require("react"));
1946
+ var import_focus15 = require("@react-aria/focus");
1392
1947
  var import_tooltip = require("@react-aria/tooltip");
1393
1948
  var import_tooltip2 = require("@react-stately/tooltip");
1394
- var TooltipContext = import_react38.default.createContext({});
1949
+ var TooltipContext = import_react55.default.createContext({});
1395
1950
  var TooltipTrigger = (_a) => {
1396
1951
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1397
- const [trigger, tooltip] = import_react38.default.Children.toArray(children);
1952
+ const [trigger, tooltip] = import_react55.default.Children.toArray(children);
1398
1953
  const state = (0, import_tooltip2.useTooltipTriggerState)(props);
1399
- const tooltipTriggerRef = (0, import_react38.useRef)();
1954
+ const tooltipTriggerRef = (0, import_react55.useRef)();
1400
1955
  const { triggerProps, tooltipProps } = (0, import_tooltip.useTooltipTrigger)({}, state, tooltipTriggerRef);
1401
- return /* @__PURE__ */ import_react38.default.createElement(import_focus7.FocusableProvider, __spreadProps(__spreadValues({}, triggerProps), {
1956
+ return /* @__PURE__ */ import_react55.default.createElement(import_focus15.FocusableProvider, __spreadProps(__spreadValues({}, triggerProps), {
1402
1957
  ref: tooltipTriggerRef
1403
- }), trigger, state.isOpen && /* @__PURE__ */ import_react38.default.createElement(TooltipContext.Provider, {
1958
+ }), trigger, state.isOpen && /* @__PURE__ */ import_react55.default.createElement(TooltipContext.Provider, {
1404
1959
  value: __spreadValues({
1405
1960
  state
1406
1961
  }, tooltipProps)
@@ -1416,36 +1971,19 @@ var Tooltip = (_a) => {
1416
1971
  "variant",
1417
1972
  "children"
1418
1973
  ]);
1419
- const _a2 = (0, import_react39.useContext)(TooltipContext), { state } = _a2, tooltipProviderProps = __objRest(_a2, ["state"]);
1420
- const mergedProps = (0, import_utils3.mergeProps)(props, tooltipProviderProps);
1974
+ const _a2 = (0, import_react56.useContext)(TooltipContext), { state } = _a2, tooltipProviderProps = __objRest(_a2, ["state"]);
1975
+ const mergedProps = (0, import_utils9.mergeProps)(props, tooltipProviderProps);
1421
1976
  const { tooltipProps } = (0, import_tooltip3.useTooltip)(mergedProps, state);
1422
- return /* @__PURE__ */ import_react39.default.createElement(import_system.Box, __spreadValues({
1977
+ return /* @__PURE__ */ import_react56.default.createElement(import_system.Box, __spreadValues({
1423
1978
  position: "relative"
1424
- }, tooltipProps), /* @__PURE__ */ import_react39.default.createElement(import_system.Box, __spreadValues({
1979
+ }, tooltipProps), /* @__PURE__ */ import_react56.default.createElement(import_system.Box, __spreadValues({
1425
1980
  position: "absolute",
1426
1981
  variant: `tooltip.${variant}`
1427
1982
  }, mergedProps), children));
1428
1983
  };
1429
1984
 
1430
- // src/Input/Input.tsx
1431
- var import_react40 = __toESM(require("react"));
1432
- var Input = (_a) => {
1433
- var _b = _a, {
1434
- variant = "",
1435
- type = "text"
1436
- } = _b, props = __objRest(_b, [
1437
- "variant",
1438
- "type"
1439
- ]);
1440
- return /* @__PURE__ */ import_react40.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1441
- as: "input",
1442
- type,
1443
- variant: `input.${variant}`
1444
- }));
1445
- };
1446
-
1447
1985
  // src/Container/Container.tsx
1448
- var import_react41 = __toESM(require("react"));
1986
+ var import_react57 = __toESM(require("react"));
1449
1987
  var import_tokens2 = require("@marigold/tokens");
1450
1988
  var ALIGNMENT3 = {
1451
1989
  left: "flex-start",
@@ -1477,7 +2015,7 @@ var Container = (_a) => {
1477
2015
  gridTemplateColumns = `1fr 1fr ${maxWidth}`;
1478
2016
  gridColumn = 3;
1479
2017
  }
1480
- return /* @__PURE__ */ import_react41.default.createElement(import_system.Box, __spreadValues({
2018
+ return /* @__PURE__ */ import_react57.default.createElement(import_system.Box, __spreadValues({
1481
2019
  display: "grid",
1482
2020
  css: {
1483
2021
  gridTemplateColumns,
@@ -1490,10 +2028,9 @@ var Container = (_a) => {
1490
2028
  };
1491
2029
 
1492
2030
  // src/index.ts
1493
- var import_collections = require("@react-stately/collections");
2031
+ var import_collections2 = require("@react-stately/collections");
1494
2032
  // Annotate the CommonJS export names for ESM import in node:
1495
2033
  0 && (module.exports = {
1496
- ActionGroup,
1497
2034
  Aside,
1498
2035
  Aspect,
1499
2036
  Badge,
@@ -1503,11 +2040,16 @@ var import_collections = require("@react-stately/collections");
1503
2040
  Card,
1504
2041
  Center,
1505
2042
  Checkbox,
2043
+ CheckboxGroup,
2044
+ CheckboxGroupContext,
1506
2045
  Columns,
1507
2046
  Container,
2047
+ Content,
1508
2048
  Dialog,
1509
2049
  Divider,
1510
- Field,
2050
+ Footer,
2051
+ Header,
2052
+ Headline,
1511
2053
  Image,
1512
2054
  Inline,
1513
2055
  Input,
@@ -1517,8 +2059,9 @@ var import_collections = require("@react-stately/collections");
1517
2059
  Link,
1518
2060
  MarigoldProvider,
1519
2061
  Menu,
1520
- MenuItem,
1521
2062
  Message,
2063
+ Overlay,
2064
+ Popover,
1522
2065
  Radio,
1523
2066
  SSRProvider,
1524
2067
  Section,
@@ -1526,8 +2069,10 @@ var import_collections = require("@react-stately/collections");
1526
2069
  Slider,
1527
2070
  Stack,
1528
2071
  Switch,
2072
+ Table,
1529
2073
  Text,
1530
- Textarea,
2074
+ TextArea,
2075
+ TextField,
1531
2076
  ThemeProvider,
1532
2077
  Tiles,
1533
2078
  Tooltip,
@@ -1535,6 +2080,7 @@ var import_collections = require("@react-stately/collections");
1535
2080
  TooltipTrigger,
1536
2081
  ValidationMessage,
1537
2082
  VisuallyHidden,
2083
+ useCheckboxGroupContext,
1538
2084
  useDialogButtonProps,
1539
2085
  useTheme
1540
2086
  });