@marigold/components 0.7.0 → 1.0.0-beta.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 +390 -232
  2. package/dist/index.js +1967 -1095
  3. package/dist/index.mjs +2024 -1088
  4. package/package.json +28 -10
package/dist/index.js CHANGED
@@ -21,7 +21,6 @@ var __spreadValues = (a, b) => {
21
21
  return a;
22
22
  };
23
23
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
24
  var __objRest = (source, exclude) => {
26
25
  var target = {};
27
26
  for (var prop in source)
@@ -38,148 +37,79 @@ var __export = (target, all) => {
38
37
  for (var name in all)
39
38
  __defProp(target, name, { get: all[name], enumerable: true });
40
39
  };
41
- var __reExport = (target, module2, copyDefault, desc) => {
42
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
43
- for (let key of __getOwnPropNames(module2))
44
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
45
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
40
+ var __copyProps = (to, from, except, desc) => {
41
+ if (from && typeof from === "object" || typeof from === "function") {
42
+ for (let key of __getOwnPropNames(from))
43
+ if (!__hasOwnProp.call(to, key) && key !== except)
44
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
46
45
  }
47
- return target;
48
- };
49
- var __toESM = (module2, isNodeMode) => {
50
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
46
+ return to;
51
47
  };
52
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
53
- return (module2, temp) => {
54
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
55
- };
56
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
48
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
49
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
57
50
 
58
51
  // src/index.ts
59
52
  var src_exports = {};
60
53
  __export(src_exports, {
61
- ActionGroup: () => ActionGroup,
62
54
  Aside: () => Aside,
63
55
  Aspect: () => Aspect,
64
56
  Badge: () => Badge,
65
57
  Box: () => import_system.Box,
58
+ Breakout: () => Breakout,
66
59
  Button: () => Button,
67
60
  Card: () => Card,
61
+ Center: () => Center,
68
62
  Checkbox: () => Checkbox,
69
- Column: () => Column,
63
+ CheckboxGroup: () => CheckboxGroup,
64
+ CheckboxGroupContext: () => CheckboxGroupContext,
70
65
  Columns: () => Columns,
71
66
  Container: () => Container,
67
+ Content: () => Content,
72
68
  Dialog: () => Dialog,
73
69
  Divider: () => Divider,
74
- Field: () => Field,
70
+ Footer: () => Footer,
71
+ Header: () => Header,
72
+ Headline: () => Headline,
75
73
  Image: () => Image,
76
74
  Inline: () => Inline,
77
75
  Input: () => Input,
78
- Item: () => import_collections.Item,
79
76
  Label: () => Label,
80
- LabelBase: () => LabelBase,
81
77
  Link: () => Link,
82
78
  MarigoldProvider: () => MarigoldProvider,
83
79
  Menu: () => Menu,
84
- MenuItem: () => MenuItem,
85
80
  Message: () => Message,
81
+ NumberField: () => NumberField,
82
+ Overlay: () => Overlay,
83
+ Popover: () => Popover,
86
84
  Radio: () => Radio,
87
85
  SSRProvider: () => import_ssr.SSRProvider,
88
- Section: () => import_collections.Section,
89
86
  Select: () => Select,
90
87
  Slider: () => Slider,
91
88
  Stack: () => Stack,
92
89
  Switch: () => Switch,
90
+ Table: () => Table,
93
91
  Text: () => Text,
94
- Textarea: () => Textarea,
95
- ThemeProvider: () => import_system5.ThemeProvider,
92
+ TextArea: () => TextArea,
93
+ TextField: () => TextField,
94
+ ThemeProvider: () => import_system26.ThemeProvider,
96
95
  Tiles: () => Tiles,
97
96
  Tooltip: () => Tooltip,
98
97
  TooltipContext: () => TooltipContext,
99
98
  TooltipTrigger: () => TooltipTrigger,
100
- ValidationMessage: () => ValidationMessage,
101
- VisuallyHidden: () => import_visually_hidden2.VisuallyHidden,
102
- useDialogButtonProps: () => useDialogButtonProps,
103
- useTheme: () => import_system5.useTheme
99
+ Underlay: () => Underlay,
100
+ VisuallyHidden: () => import_visually_hidden.VisuallyHidden,
101
+ useCheckboxGroupContext: () => useCheckboxGroupContext,
102
+ useTheme: () => import_system26.useTheme
104
103
  });
104
+ module.exports = __toCommonJS(src_exports);
105
105
 
106
- // src/ActionGroup/ActionGroup.tsx
107
- var import_react3 = __toESM(require("react"));
108
-
109
- // src/Inline/Inline.tsx
106
+ // src/Aside/Aside.tsx
110
107
  var import_react = __toESM(require("react"));
111
108
 
112
109
  // src/Box.ts
113
110
  var import_system = require("@marigold/system");
114
111
 
115
- // src/Inline/Inline.tsx
116
- var ALIGNMENT = {
117
- top: "flex-start",
118
- center: "center",
119
- bottom: "flex-end"
120
- };
121
- var Inline = (_a) => {
122
- var _b = _a, {
123
- space = "none",
124
- align = "center",
125
- children
126
- } = _b, props = __objRest(_b, [
127
- "space",
128
- "align",
129
- "children"
130
- ]);
131
- return /* @__PURE__ */ import_react.default.createElement(import_system.Box, __spreadValues({
132
- __baseCSS: { gap: space, flexWrap: "wrap" },
133
- display: "inline-flex",
134
- alignItems: ALIGNMENT[align]
135
- }, props), children);
136
- };
137
-
138
- // src/Stack/Stack.tsx
139
- var import_react2 = __toESM(require("react"));
140
- var ALIGNMENT2 = {
141
- left: "flex-start",
142
- center: "center",
143
- right: "flex-end"
144
- };
145
- var Stack = (_a) => {
146
- var _b = _a, {
147
- space = "none",
148
- align = "left",
149
- children
150
- } = _b, props = __objRest(_b, [
151
- "space",
152
- "align",
153
- "children"
154
- ]);
155
- return /* @__PURE__ */ import_react2.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
156
- __baseCSS: { gap: space },
157
- display: "flex",
158
- flexDirection: "column",
159
- alignItems: ALIGNMENT2[align]
160
- }), children);
161
- };
162
-
163
- // src/ActionGroup/ActionGroup.tsx
164
- var ActionGroup = (_a) => {
165
- var _b = _a, {
166
- space = "none",
167
- verticalAlignment = false,
168
- children
169
- } = _b, props = __objRest(_b, [
170
- "space",
171
- "verticalAlignment",
172
- "children"
173
- ]);
174
- return verticalAlignment ? /* @__PURE__ */ import_react3.default.createElement(Stack, __spreadValues({
175
- space
176
- }, props), children) : /* @__PURE__ */ import_react3.default.createElement(Inline, __spreadValues({
177
- space
178
- }, props), children);
179
- };
180
-
181
112
  // src/Aside/Aside.tsx
182
- var import_react4 = __toESM(require("react"));
183
113
  var SIDE_MAP = {
184
114
  left: [":not(style):first-of-type", ":last-child"],
185
115
  right: [":last-child", ":not(style):first-of-type"]
@@ -193,7 +123,7 @@ var Aside = ({
193
123
  wrap = "50%"
194
124
  }) => {
195
125
  const [aside, content] = SIDE_MAP[side];
196
- return /* @__PURE__ */ import_react4.default.createElement(import_system.Box, {
126
+ return /* @__PURE__ */ import_react.default.createElement(import_system.Box, {
197
127
  css: {
198
128
  display: "flex",
199
129
  flexWrap: "wrap",
@@ -213,1161 +143,2146 @@ var Aside = ({
213
143
  };
214
144
 
215
145
  // src/Aspect/Aspect.tsx
216
- var import_react5 = __toESM(require("react"));
146
+ var import_react2 = __toESM(require("react"));
217
147
  var import_tokens = require("@marigold/tokens");
218
- var Aspect = import_react5.default.forwardRef(function AspectRatio(_a, ref) {
219
- var _b = _a, { ratio = "square", maxWidth = "100%", children } = _b, props = __objRest(_b, ["ratio", "maxWidth", "children"]);
220
- return /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
221
- ref,
222
- __baseCSS: {
223
- position: "relative",
224
- overflow: "hidden",
225
- maxWidth
226
- }
227
- }, /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
228
- __baseCSS: {
229
- aspectRatio: import_tokens.aspect[ratio]
230
- }
231
- }), /* @__PURE__ */ import_react5.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
232
- __baseCSS: {
233
- position: "absolute",
234
- top: 0,
235
- right: 0,
236
- bottom: 0,
237
- left: 0
238
- }
239
- }), children));
240
- });
148
+ var Aspect = ({
149
+ ratio = "square",
150
+ maxWidth,
151
+ children
152
+ }) => /* @__PURE__ */ import_react2.default.createElement(import_system.Box, {
153
+ css: {
154
+ aspectRatio: import_tokens.aspect[ratio],
155
+ overflow: "hidden",
156
+ maxWidth
157
+ }
158
+ }, children);
241
159
 
242
160
  // src/Badge/Badge.tsx
243
- var import_react6 = __toESM(require("react"));
161
+ var import_react3 = __toESM(require("react"));
162
+ var import_system2 = require("@marigold/system");
244
163
  var Badge = (_a) => {
164
+ var _b = _a, { variant, size, children } = _b, props = __objRest(_b, ["variant", "size", "children"]);
165
+ const styles = (0, import_system2.useComponentStyles)("Badge", { variant, size });
166
+ return /* @__PURE__ */ import_react3.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
167
+ css: styles
168
+ }), children);
169
+ };
170
+
171
+ // src/Breakout/Breakout.tsx
172
+ var import_react4 = __toESM(require("react"));
173
+ var useAlignment = (direction) => {
174
+ switch (direction) {
175
+ case "right":
176
+ return "flex-end";
177
+ case "bottom":
178
+ return "flex-end";
179
+ case "center":
180
+ return "center";
181
+ }
182
+ return "flex-start";
183
+ };
184
+ var Breakout = (_a) => {
245
185
  var _b = _a, {
246
- variant = "",
247
- bgColor = "transparent",
248
- borderColor = "transparent",
186
+ horizontalAlign,
187
+ verticalAlign,
249
188
  children
250
189
  } = _b, props = __objRest(_b, [
251
- "variant",
252
- "bgColor",
253
- "borderColor",
190
+ "horizontalAlign",
191
+ "verticalAlign",
254
192
  "children"
255
193
  ]);
256
- return /* @__PURE__ */ import_react6.default.createElement(import_system.Box, __spreadValues({
257
- css: { bg: bgColor, borderColor },
258
- variant: `badge.${variant}`
194
+ const alignItems = useAlignment(horizontalAlign);
195
+ const justifyContent = useAlignment(verticalAlign);
196
+ return /* @__PURE__ */ import_react4.default.createElement(import_system.Box, __spreadValues({
197
+ alignItems,
198
+ justifyContent,
199
+ width: "100%",
200
+ display: verticalAlign || horizontalAlign ? "flex" : "block",
201
+ css: {
202
+ gridColumn: "1 / -1"
203
+ }
259
204
  }, props), children);
260
205
  };
261
206
 
262
207
  // src/Button/Button.tsx
263
- var import_react7 = __toESM(require("react"));
208
+ var import_react5 = __toESM(require("react"));
264
209
  var import_button = require("@react-aria/button");
265
- var Button = (0, import_react7.forwardRef)((_a, ref) => {
210
+ var import_focus = require("@react-aria/focus");
211
+ var import_utils = require("@react-aria/utils");
212
+ var import_system3 = require("@marigold/system");
213
+ var Button = (0, import_react5.forwardRef)((_a, ref) => {
266
214
  var _b = _a, {
267
215
  as = "button",
268
- variant = "primary",
269
- size = "large",
270
- space = "none",
271
- disabled,
272
216
  children,
273
- className
217
+ variant,
218
+ size,
219
+ disabled
274
220
  } = _b, props = __objRest(_b, [
275
221
  "as",
222
+ "children",
276
223
  "variant",
277
224
  "size",
278
- "space",
279
- "disabled",
280
- "children",
281
- "className"
225
+ "disabled"
282
226
  ]);
283
- const { buttonProps } = (0, import_button.useButton)(__spreadProps(__spreadValues({}, props), {
227
+ const buttonRef = (0, import_react5.useRef)(null);
228
+ (0, import_react5.useImperativeHandle)(ref, () => buttonRef.current);
229
+ const { buttonProps, isPressed } = (0, import_button.useButton)(__spreadProps(__spreadValues({}, props), {
284
230
  elementType: typeof as === "string" ? as : "span",
285
231
  isDisabled: disabled
286
- }), ref);
287
- return /* @__PURE__ */ import_react7.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({}, buttonProps), props), {
232
+ }), buttonRef);
233
+ const { isFocusVisible, focusProps } = (0, import_focus.useFocusRing)();
234
+ const styles = (0, import_system3.useComponentStyles)("Button", { variant, size });
235
+ const stateProps = (0, import_system3.useStateProps)({
236
+ active: isPressed,
237
+ focus: isFocusVisible
238
+ });
239
+ return /* @__PURE__ */ import_react5.default.createElement(import_system3.Box, __spreadProps(__spreadValues(__spreadValues({}, (0, import_utils.mergeProps)(buttonProps, focusProps)), stateProps), {
288
240
  as,
289
- display: "inline-flex",
290
- alignItems: "center",
291
- variant: [`button.${variant}`, `button.${size}`],
292
- className,
293
- ref,
294
- css: { columnGap: space }
241
+ ref: buttonRef,
242
+ __baseCSS: {
243
+ display: "inline-flex",
244
+ alignItems: "center",
245
+ gap: "0.5ch",
246
+ cursor: disabled ? "not-allowed" : "pointer"
247
+ },
248
+ css: styles
295
249
  }), children);
296
250
  });
297
251
 
298
252
  // src/Card/Card.tsx
299
- var import_react8 = __toESM(require("react"));
253
+ var import_react6 = __toESM(require("react"));
254
+ var import_system4 = require("@marigold/system");
300
255
  var Card = (_a) => {
256
+ var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
257
+ const styles = (0, import_system4.useComponentStyles)("Card", { variant, size });
258
+ return /* @__PURE__ */ import_react6.default.createElement(import_system4.Box, __spreadProps(__spreadValues({}, props), {
259
+ css: styles
260
+ }), children);
261
+ };
262
+
263
+ // src/Center/Center.tsx
264
+ var import_react7 = __toESM(require("react"));
265
+ var Center = (_a) => {
301
266
  var _b = _a, {
302
- variant = "",
303
- title,
304
- width,
305
- className,
267
+ maxWidth,
268
+ space = "none",
306
269
  children
307
270
  } = _b, props = __objRest(_b, [
308
- "variant",
309
- "title",
310
- "width",
311
- "className",
271
+ "maxWidth",
272
+ "space",
312
273
  "children"
313
274
  ]);
314
- return /* @__PURE__ */ import_react8.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
315
- variant: `card.${variant}`,
316
- maxWidth: width,
317
- className
318
- }), title && /* @__PURE__ */ import_react8.default.createElement(import_system.Box, {
319
- as: "h2",
320
- variant: "text.h2",
321
- pb: "small"
322
- }, title), children);
275
+ return /* @__PURE__ */ import_react7.default.createElement(import_system.Box, __spreadValues({
276
+ css: {
277
+ boxSizing: "content-box",
278
+ display: "flex",
279
+ flexDirection: "column",
280
+ alignItems: "center",
281
+ justifyContent: "center",
282
+ marginInline: "auto",
283
+ maxInlineSize: maxWidth,
284
+ gap: space
285
+ }
286
+ }, props), children);
323
287
  };
324
288
 
325
289
  // src/Checkbox/Checkbox.tsx
326
- var import_react12 = __toESM(require("react"));
327
- var import_focus = require("@react-aria/focus");
328
- var import_visually_hidden = require("@react-aria/visually-hidden");
329
- var import_checkbox = require("@react-aria/checkbox");
290
+ var import_react10 = __toESM(require("react"));
291
+ var import_checkbox3 = require("@react-aria/checkbox");
292
+ var import_focus2 = require("@react-aria/focus");
293
+ var import_interactions = require("@react-aria/interactions");
330
294
  var import_toggle = require("@react-stately/toggle");
331
- var import_icons2 = require("@marigold/icons");
295
+ var import_system7 = require("@marigold/system");
332
296
 
333
- // src/Checkbox/CheckboxIcon.tsx
297
+ // src/Checkbox/CheckboxGroup.tsx
334
298
  var import_react9 = __toESM(require("react"));
335
- var import_system2 = require("@marigold/system");
336
- var CheckboxIcon = ({
337
- variant = "",
338
- checked = false,
339
- disabled = false,
340
- indeterminated,
341
- error = false
342
- }) => {
343
- const conditionalStates = disabled ? {
344
- disabled
345
- } : {
346
- checked,
347
- error
348
- };
349
- return /* @__PURE__ */ import_react9.default.createElement(import_system2.SVG, {
350
- width: "16",
351
- height: "32",
352
- viewBox: "0 0 16 32",
353
- fill: "none",
354
- "aria-hidden": "true"
355
- }, /* @__PURE__ */ import_react9.default.createElement(import_system.Box, {
356
- as: "rect",
357
- x: "0.5",
358
- y: "8.5",
359
- width: "15px",
360
- height: "15px",
361
- rx: "1.5",
362
- variant: (0, import_system2.conditional)(`checkbox.${variant}`, conditionalStates)
363
- }), checked && indeterminated && /* @__PURE__ */ import_react9.default.createElement(import_system.Box, {
364
- __baseCSS: { fill: "gray00" },
365
- as: "path",
366
- fillRule: "evenodd",
367
- clipRule: "evenodd",
368
- d: "M13.5 17.0402H2.5V15.4688H13.5V17.0402V17.0402Z"
369
- }), checked && !indeterminated && /* @__PURE__ */ import_react9.default.createElement(import_system.Box, {
370
- __baseCSS: { fill: "gray00" },
371
- as: "path",
372
- fillRule: "evenodd",
373
- clipRule: "evenodd",
374
- d: "M13.9571 12.8338L12.4085 11.2852L6.08699 17.6007L3.59887 15.1126L2.04163 16.6588L6.08682 20.704L13.9571 12.8338Z"
375
- }));
376
- };
299
+ var import_checkbox = require("@react-aria/checkbox");
300
+ var import_checkbox2 = require("@react-stately/checkbox");
301
+ var import_system6 = require("@marigold/system");
377
302
 
378
303
  // src/Label/Label.tsx
379
- var import_react10 = __toESM(require("react"));
304
+ var import_react8 = __toESM(require("react"));
380
305
  var import_icons = require("@marigold/icons");
381
- var LabelBase = (_a) => {
382
- var _b = _a, {
383
- variant = "above",
384
- required,
385
- color = "text",
386
- children
387
- } = _b, props = __objRest(_b, [
388
- "variant",
389
- "required",
390
- "color",
391
- "children"
392
- ]);
393
- return /* @__PURE__ */ import_react10.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
394
- as: "label",
395
- __baseCSS: { color },
396
- variant: `label.${variant}`
397
- }), children);
398
- };
306
+ var import_system5 = require("@marigold/system");
399
307
  var Label = (_a) => {
400
308
  var _b = _a, {
309
+ as = "label",
401
310
  required,
402
- children
311
+ children,
312
+ variant,
313
+ size
403
314
  } = _b, props = __objRest(_b, [
315
+ "as",
404
316
  "required",
405
- "children"
317
+ "children",
318
+ "variant",
319
+ "size"
406
320
  ]);
407
- return required ? /* @__PURE__ */ import_react10.default.createElement(import_system.Box, {
408
- as: "span",
409
- display: "inline-flex",
410
- alignItems: "center"
411
- }, /* @__PURE__ */ import_react10.default.createElement(LabelBase, __spreadValues({}, props), children), required && /* @__PURE__ */ import_react10.default.createElement(import_icons.Required, {
321
+ const styles = (0, import_system5.useComponentStyles)("Label", { size, variant });
322
+ return /* @__PURE__ */ import_react8.default.createElement(import_system5.Box, __spreadProps(__spreadValues({}, props), {
323
+ as,
324
+ __baseCSS: { display: "flex", alignItems: "center", gap: 4 },
325
+ css: styles
326
+ }), children, required && /* @__PURE__ */ import_react8.default.createElement(import_icons.Required, {
327
+ role: "presentation",
412
328
  size: 16,
413
329
  fill: "error"
414
- })) : /* @__PURE__ */ import_react10.default.createElement(LabelBase, __spreadValues({}, props), children);
330
+ }));
415
331
  };
416
332
 
417
- // src/ValidationMessage/ValidationMessage.tsx
418
- var import_react11 = __toESM(require("react"));
419
- var ValidationMessage = (_a) => {
333
+ // src/Checkbox/CheckboxGroup.tsx
334
+ var CheckboxGroupContext = (0, import_react9.createContext)(null);
335
+ var useCheckboxGroupContext = () => (0, import_react9.useContext)(CheckboxGroupContext);
336
+ var CheckboxGroup = (_a) => {
420
337
  var _b = _a, {
421
- variant = "error",
422
338
  children,
423
- className
424
- } = _b, props = __objRest(_b, [
425
- "variant",
339
+ variant,
340
+ size,
341
+ required,
342
+ disabled,
343
+ readOnly,
344
+ error
345
+ } = _b, rest = __objRest(_b, [
426
346
  "children",
427
- "className"
347
+ "variant",
348
+ "size",
349
+ "required",
350
+ "disabled",
351
+ "readOnly",
352
+ "error"
428
353
  ]);
429
- return /* @__PURE__ */ import_react11.default.createElement(import_system.Box, __spreadValues({
354
+ const props = __spreadValues({
355
+ isRequired: required,
356
+ isDisabled: disabled,
357
+ isReadOnly: readOnly,
358
+ validationState: error ? "invalid" : "valid"
359
+ }, rest);
360
+ const state = (0, import_checkbox2.useCheckboxGroupState)(props);
361
+ const { groupProps, labelProps } = (0, import_checkbox.useCheckboxGroup)(props, state);
362
+ const styles = (0, import_system6.useComponentStyles)("CheckboxGroup", { variant, size }, { parts: ["container", "group"] });
363
+ return /* @__PURE__ */ import_react9.default.createElement(import_system6.Box, __spreadProps(__spreadValues({}, groupProps), {
364
+ css: styles.container
365
+ }), props.label && /* @__PURE__ */ import_react9.default.createElement(Label, __spreadValues({
430
366
  as: "span",
431
- display: "flex",
432
- alignItems: "center",
433
- variant: `validation.${variant}`,
434
- className
435
- }, props), children);
367
+ required
368
+ }, labelProps), props.label), /* @__PURE__ */ import_react9.default.createElement(import_system6.Box, {
369
+ role: "presentation",
370
+ __baseCSS: {
371
+ display: "flex",
372
+ flexDirection: "column",
373
+ alignItems: "start"
374
+ },
375
+ css: styles.group
376
+ }, /* @__PURE__ */ import_react9.default.createElement(CheckboxGroupContext.Provider, {
377
+ value: __spreadValues({ variant, size, error }, state)
378
+ }, children)));
436
379
  };
437
380
 
438
381
  // src/Checkbox/Checkbox.tsx
439
- var CheckboxInput = (_a) => {
440
- var _b = _a, {
441
- error,
442
- indeterminated = false
443
- } = _b, props = __objRest(_b, [
444
- "error",
445
- "indeterminated"
446
- ]);
447
- const state = (0, import_toggle.useToggleState)(props);
448
- const ref = import_react12.default.useRef(null);
449
- const { inputProps } = (0, import_checkbox.useCheckbox)(props, state, ref);
450
- const { focusProps } = (0, import_focus.useFocusRing)();
451
- const _a2 = props, { children } = _a2, restProps = __objRest(_a2, ["children"]);
452
- return /* @__PURE__ */ import_react12.default.createElement(import_system.Box, {
453
- pr: "xsmall"
454
- }, /* @__PURE__ */ import_react12.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react12.default.createElement("input", __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
455
- ref
456
- }), restProps))), /* @__PURE__ */ import_react12.default.createElement(CheckboxIcon, {
457
- checked: props.checked,
458
- variant: props.variant,
459
- disabled: props.disabled,
460
- indeterminated,
461
- error
462
- }));
382
+ var CheckMark = () => /* @__PURE__ */ import_react10.default.createElement("svg", {
383
+ viewBox: "0 0 12 10"
384
+ }, /* @__PURE__ */ import_react10.default.createElement("path", {
385
+ fill: "currentColor",
386
+ stroke: "none",
387
+ 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"
388
+ }));
389
+ var IndeterminateMark = () => /* @__PURE__ */ import_react10.default.createElement("svg", {
390
+ width: "12",
391
+ height: "3",
392
+ viewBox: "0 0 12 3"
393
+ }, /* @__PURE__ */ import_react10.default.createElement("path", {
394
+ fill: "currentColor",
395
+ stroke: "none",
396
+ d: "M11.5 2.04018H0.5V0.46875H11.5V2.04018Z"
397
+ }));
398
+ var Icon = (_a) => {
399
+ var _b = _a, { css, checked, indeterminate } = _b, props = __objRest(_b, ["css", "checked", "indeterminate"]);
400
+ const icon = indeterminate ? /* @__PURE__ */ import_react10.default.createElement(IndeterminateMark, null) : /* @__PURE__ */ import_react10.default.createElement(CheckMark, null);
401
+ return /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues({
402
+ "aria-hidden": "true",
403
+ __baseCSS: {
404
+ width: 16,
405
+ height: 16,
406
+ bg: "#fff",
407
+ border: "1px solid #000",
408
+ borderRadius: 3,
409
+ display: "flex",
410
+ alignItems: "center",
411
+ justifyContent: "center",
412
+ p: 1
413
+ },
414
+ css
415
+ }, props), checked ? icon : null);
463
416
  };
464
417
  var Checkbox = (_a) => {
465
418
  var _b = _a, {
419
+ size,
420
+ variant,
421
+ disabled,
422
+ checked,
423
+ defaultChecked,
424
+ indeterminate,
425
+ readOnly,
466
426
  required,
467
- labelVariant = "inline",
468
- errorMessage
427
+ error
469
428
  } = _b, props = __objRest(_b, [
429
+ "size",
430
+ "variant",
431
+ "disabled",
432
+ "checked",
433
+ "defaultChecked",
434
+ "indeterminate",
435
+ "readOnly",
470
436
  "required",
471
- "labelVariant",
472
- "errorMessage"
437
+ "error"
473
438
  ]);
474
- return /* @__PURE__ */ import_react12.default.createElement(import_react12.default.Fragment, null, /* @__PURE__ */ import_react12.default.createElement(import_system.Box, {
475
- as: Label,
439
+ const ref = import_react10.default.useRef(null);
440
+ const checkboxProps = {
441
+ isIndeterminate: indeterminate,
442
+ isDisabled: disabled,
443
+ isReadOnly: readOnly,
444
+ isRequired: required,
445
+ validationState: error ? "invalid" : "valid"
446
+ };
447
+ const groupState = useCheckboxGroupContext();
448
+ const { inputProps } = groupState ? (0, import_checkbox3.useCheckboxGroupItem)(__spreadProps(__spreadValues(__spreadValues({}, props), checkboxProps), {
449
+ value: props.value
450
+ }), groupState, ref) : (0, import_checkbox3.useCheckbox)(__spreadValues(__spreadValues({
451
+ isSelected: checked,
452
+ defaultSelected: defaultChecked
453
+ }, checkboxProps), props), (0, import_toggle.useToggleState)(__spreadValues({
454
+ isSelected: checked,
455
+ defaultSelected: defaultChecked
456
+ }, props)), ref);
457
+ 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"] });
458
+ const { hoverProps, isHovered } = (0, import_interactions.useHover)({});
459
+ const { isFocusVisible, focusProps } = (0, import_focus2.useFocusRing)();
460
+ const stateProps = (0, import_system7.useStateProps)({
461
+ hover: isHovered,
462
+ focus: isFocusVisible,
463
+ checked: inputProps.checked,
464
+ disabled: inputProps.disabled,
465
+ error: (groupState == null ? void 0 : groupState.error) || error,
466
+ readOnly,
467
+ indeterminate
468
+ });
469
+ return /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues(__spreadValues({
470
+ as: "label",
476
471
  __baseCSS: {
477
- ":hover": { cursor: props.disabled ? "not-allowed" : "pointer" }
472
+ display: "flex",
473
+ alignItems: "center",
474
+ gap: "1ch",
475
+ position: "relative"
478
476
  },
479
- htmlFor: props.id,
480
- required,
481
- variant: `label.${labelVariant}`,
482
- color: props.disabled ? "disabled" : "text"
483
- }, /* @__PURE__ */ import_react12.default.createElement(CheckboxInput, __spreadValues({
484
- error: props.error
485
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react12.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react12.default.createElement(import_icons2.Exclamation, {
486
- size: 16
487
- }), errorMessage));
477
+ css: styles.container
478
+ }, hoverProps), stateProps), /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues(__spreadValues({
479
+ as: "input",
480
+ ref,
481
+ css: {
482
+ position: "absolute",
483
+ width: "100%",
484
+ height: "100%",
485
+ top: 0,
486
+ left: 0,
487
+ zIndex: 1,
488
+ opacity: 1e-4,
489
+ cursor: inputProps.disabled ? "not-allowed" : "pointer"
490
+ }
491
+ }, inputProps), focusProps)), /* @__PURE__ */ import_react10.default.createElement(Icon, __spreadValues({
492
+ checked: inputProps.checked,
493
+ indeterminate,
494
+ css: styles.checkbox
495
+ }, stateProps)), /* @__PURE__ */ import_react10.default.createElement(import_system7.Box, __spreadValues({
496
+ css: styles.label
497
+ }, stateProps), props.children));
488
498
  };
489
499
 
490
- // src/Column/Column.tsx
491
- var import_react13 = __toESM(require("react"));
492
- var transform = (width) => {
493
- if (Array.isArray(width)) {
494
- return width.map((v) => `${v / 12 * 100}%`);
495
- }
496
- return `${width / 12 * 100}%`;
497
- };
498
- var Column = (_a) => {
500
+ // src/Columns/Columns.tsx
501
+ var import_react11 = __toESM(require("react"));
502
+ var Columns = (_a) => {
499
503
  var _b = _a, {
500
- width = 12,
504
+ space = "none",
505
+ columns,
506
+ collapseAt = "40em",
501
507
  children
502
508
  } = _b, props = __objRest(_b, [
503
- "width",
509
+ "space",
510
+ "columns",
511
+ "collapseAt",
504
512
  "children"
505
513
  ]);
506
- return /* @__PURE__ */ import_react13.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
507
- width: transform(width)
508
- }), children);
514
+ if (import_react11.Children.count(children) !== columns.length) {
515
+ throw new Error(`Columns: expected ${columns.length} children, got ${import_react11.Children.count(children)}`);
516
+ }
517
+ const getColumnWidths = columns.map((column, index) => {
518
+ return {
519
+ [`> :nth-of-type(${index + 1})`]: {
520
+ flexGrow: column
521
+ }
522
+ };
523
+ });
524
+ return /* @__PURE__ */ import_react11.default.createElement(import_system.Box, __spreadValues({
525
+ display: "flex",
526
+ css: Object.assign({
527
+ flexWrap: "wrap",
528
+ gap: space,
529
+ "> *": {
530
+ flexBasis: `calc(( ${collapseAt} - 100%) * 999)`
531
+ }
532
+ }, ...getColumnWidths)
533
+ }, props), children);
509
534
  };
510
535
 
511
- // src/Columns/Columns.tsx
512
- var import_react15 = __toESM(require("react"));
513
- var import_system3 = require("@marigold/system");
514
-
515
- // src/utils/flatten-children.ts
516
- var import_react14 = require("react");
517
- var import_react_is = require("react-is");
518
- var flattenChildren = (children, depth = 0, keys = []) => import_react14.Children.toArray(children).reduce((acc, node) => {
519
- if ((0, import_react_is.isFragment)(node)) {
520
- acc.push.apply(acc, flattenChildren(node.props.children, depth + 1, keys.concat(node.key)));
521
- } else {
522
- if ((0, import_react14.isValidElement)(node)) {
523
- acc.push((0, import_react14.cloneElement)(node, {
524
- key: keys.concat(String(node.key)).join(".")
525
- }));
526
- } else if (typeof node === "string" || typeof node === "number") {
527
- acc.push(node);
528
- }
529
- }
530
- return acc;
531
- }, []);
532
-
533
- // src/Columns/Columns.tsx
534
- var useAlignment = (direction) => {
535
- switch (direction) {
536
- case "right":
537
- return "flex-end";
538
- case "bottom":
539
- return "flex-end";
540
- case "center":
541
- return "center";
542
- }
543
- return "flex-start";
536
+ // src/Container/Container.tsx
537
+ var import_react12 = __toESM(require("react"));
538
+ var import_tokens2 = require("@marigold/tokens");
539
+ var ALIGNMENT = {
540
+ left: "flex-start",
541
+ center: "center",
542
+ right: "flex-end"
544
543
  };
545
- var Columns = (_a) => {
544
+ var Container = (_a) => {
546
545
  var _b = _a, {
547
- space = "none",
548
- horizontalAlign = "left",
549
- verticalAlign = "top",
550
- className,
546
+ contentType = "content",
547
+ size = "medium",
548
+ align = "left",
549
+ alignContainer = "left",
551
550
  children
552
551
  } = _b, props = __objRest(_b, [
553
- "space",
554
- "horizontalAlign",
555
- "verticalAlign",
556
- "className",
552
+ "contentType",
553
+ "size",
554
+ "align",
555
+ "alignContainer",
557
556
  "children"
558
557
  ]);
559
- const justifyContent = useAlignment(horizontalAlign);
560
- const alignItems = useAlignment(verticalAlign);
561
- const { css } = (0, import_system3.useTheme)();
562
- const spaceObject = css({ space });
563
- const spaceValue = Object.values(spaceObject)[0];
564
- return /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
565
- p: space,
566
- display: "flex",
567
- className
568
- }, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, __spreadValues({
569
- width: `calc(100% + ${spaceValue}px)`,
570
- m: `${-spaceValue / 2}px`,
571
- display: "flex",
572
- flexWrap: "wrap",
573
- alignItems,
574
- justifyContent
575
- }, props), import_react15.Children.map(flattenChildren(children), (child) => {
576
- return import_react15.default.cloneElement(child, {}, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
577
- css: { p: `${spaceValue / 2}px` }
578
- }, child.props.children));
579
- })));
558
+ const maxWidth = import_tokens2.size[contentType][size];
559
+ let gridTemplateColumns = `${maxWidth} 1fr 1fr`;
560
+ let gridColumn = 1;
561
+ if (alignContainer === "center") {
562
+ gridTemplateColumns = `1fr ${maxWidth} 1fr`;
563
+ gridColumn = 2;
564
+ }
565
+ if (alignContainer === "right") {
566
+ gridTemplateColumns = `1fr 1fr ${maxWidth}`;
567
+ gridColumn = 3;
568
+ }
569
+ return /* @__PURE__ */ import_react12.default.createElement(import_system.Box, __spreadValues({
570
+ display: "grid",
571
+ css: {
572
+ gridTemplateColumns,
573
+ placeItems: ALIGNMENT[align],
574
+ "> *": {
575
+ gridColumn
576
+ }
577
+ }
578
+ }, props), children);
580
579
  };
581
580
 
582
- // src/Dialog/Dialog.tsx
583
- var import_react18 = __toESM(require("react"));
584
- var import_overlays2 = require("@react-stately/overlays");
585
- var import_overlays3 = require("@react-aria/overlays");
586
- var import_button2 = require("@react-aria/button");
587
- var import_icons3 = require("@marigold/icons");
588
-
589
- // src/Text/Text.tsx
590
- var import_react16 = __toESM(require("react"));
591
- var Text = (0, import_react16.forwardRef)((_a, ref) => {
581
+ // src/Content/Content.tsx
582
+ var import_react13 = __toESM(require("react"));
583
+ var import_system8 = require("@marigold/system");
584
+ var Content = (_a) => {
592
585
  var _b = _a, {
593
- as = "span",
594
- variant = "body",
595
586
  children,
596
- align,
597
- color,
598
- cursor,
599
- size,
600
- outline,
601
- userSelect
587
+ variant,
588
+ size
602
589
  } = _b, props = __objRest(_b, [
603
- "as",
604
- "variant",
605
590
  "children",
606
- "align",
607
- "color",
608
- "cursor",
609
- "size",
610
- "outline",
611
- "userSelect"
591
+ "variant",
592
+ "size"
612
593
  ]);
613
- return /* @__PURE__ */ import_react16.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
614
- as,
615
- variant: `text.${variant}`,
616
- css: {
617
- textAlign: align,
618
- fontSize: size,
619
- color,
620
- cursor,
621
- outline,
622
- userSelect
623
- },
624
- ref
594
+ const styles = (0, import_system8.useComponentStyles)("Content", { variant, size });
595
+ return /* @__PURE__ */ import_react13.default.createElement(import_system8.Box, __spreadProps(__spreadValues({
596
+ as: "section"
597
+ }, props), {
598
+ css: styles
625
599
  }), children);
626
- });
600
+ };
627
601
 
628
- // src/Dialog/ModalDialog.tsx
629
- var import_react17 = __toESM(require("react"));
630
- var import_overlays = require("@react-aria/overlays");
602
+ // src/Dialog/Dialog.tsx
603
+ var import_react22 = __toESM(require("react"));
604
+ var import_button2 = require("@react-aria/button");
631
605
  var import_dialog = require("@react-aria/dialog");
632
- var import_focus2 = require("@react-aria/focus");
633
- var ModalDialog = (_a) => {
606
+ var import_system12 = require("@marigold/system");
607
+
608
+ // src/Header/Header.tsx
609
+ var import_react14 = __toESM(require("react"));
610
+ var import_system9 = require("@marigold/system");
611
+ var Header = (_a) => {
612
+ var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
613
+ const styles = (0, import_system9.useComponentStyles)("Header", { variant, size });
614
+ return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadProps(__spreadValues({
615
+ as: "header"
616
+ }, props), {
617
+ css: styles
618
+ }), children);
619
+ };
620
+
621
+ // src/Headline/Headline.tsx
622
+ var import_react15 = __toESM(require("react"));
623
+ var import_system10 = require("@marigold/system");
624
+ var Headline = (_a) => {
634
625
  var _b = _a, {
626
+ children,
635
627
  variant,
636
- backdropVariant = "backdrop",
637
- children
628
+ size,
629
+ level = "1"
638
630
  } = _b, props = __objRest(_b, [
631
+ "children",
639
632
  "variant",
640
- "backdropVariant",
641
- "children"
633
+ "size",
634
+ "level"
642
635
  ]);
643
- const _a2 = props, { isDismissable, isOpen, onClose } = _a2, restProps = __objRest(_a2, ["isDismissable", "isOpen", "onClose"]);
644
- const ref = import_react17.default.useRef();
645
- const { overlayProps, underlayProps } = (0, import_overlays.useOverlay)({ isDismissable, isOpen, onClose }, ref);
646
- (0, import_overlays.usePreventScroll)();
647
- const { modalProps } = (0, import_overlays.useModal)();
648
- const { dialogProps } = (0, import_dialog.useDialog)(props, ref);
649
- return /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadValues({
636
+ const styles = (0, import_system10.useComponentStyles)("Headline", {
637
+ variant,
638
+ size: size != null ? size : `level-${level}`
639
+ });
640
+ return /* @__PURE__ */ import_react15.default.createElement(import_system10.Box, __spreadProps(__spreadValues({
641
+ as: `h${level}`
642
+ }, props), {
643
+ css: styles
644
+ }), children);
645
+ };
646
+
647
+ // src/Dialog/Context.ts
648
+ var import_react16 = require("react");
649
+ var DialogContext = (0, import_react16.createContext)({});
650
+ var useDialogContext = () => (0, import_react16.useContext)(DialogContext);
651
+
652
+ // src/Dialog/DialogTrigger.tsx
653
+ var import_react21 = __toESM(require("react"));
654
+ var import_interactions2 = require("@react-aria/interactions");
655
+ var import_overlays4 = require("@react-stately/overlays");
656
+
657
+ // src/Overlay/Modal.tsx
658
+ var import_react18 = __toESM(require("react"));
659
+ var import_focus3 = require("@react-aria/focus");
660
+ var import_overlays = require("@react-aria/overlays");
661
+ var import_utils2 = require("@react-aria/utils");
662
+
663
+ // src/Overlay/Underlay.tsx
664
+ var import_react17 = __toESM(require("react"));
665
+ var import_system11 = require("@marigold/system");
666
+ var Underlay = (_a) => {
667
+ var _b = _a, { size, variant } = _b, props = __objRest(_b, ["size", "variant"]);
668
+ const styles = (0, import_system11.useComponentStyles)("Underlay", { size, variant });
669
+ return /* @__PURE__ */ import_react17.default.createElement(import_system11.Box, __spreadValues({
650
670
  __baseCSS: {
651
- display: "grid",
652
- placeItems: "center",
653
671
  position: "fixed",
654
- zIndex: 100,
655
- top: 0,
656
- left: 0,
657
- bottom: 0,
658
- right: 0
672
+ inset: 0,
673
+ zIndex: 1
659
674
  },
660
- variant: `dialog.${backdropVariant}`
661
- }, underlayProps), /* @__PURE__ */ import_react17.default.createElement(import_focus2.FocusScope, {
675
+ css: styles
676
+ }, props));
677
+ };
678
+
679
+ // src/Overlay/Modal.tsx
680
+ var Modal = (0, import_react18.forwardRef)((_a, ref) => {
681
+ var _b = _a, { children, open, dismissable, keyboardDismissable, onClose } = _b, props = __objRest(_b, ["children", "open", "dismissable", "keyboardDismissable", "onClose"]);
682
+ const modalRef = (0, import_utils2.useObjectRef)(ref);
683
+ const { overlayProps, underlayProps } = (0, import_overlays.useOverlay)({
684
+ isOpen: open,
685
+ onClose,
686
+ isDismissable: dismissable,
687
+ isKeyboardDismissDisabled: !keyboardDismissable
688
+ }, modalRef);
689
+ (0, import_overlays.usePreventScroll)();
690
+ const { modalProps } = (0, import_overlays.useModal)({});
691
+ return /* @__PURE__ */ import_react18.default.createElement(import_focus3.FocusScope, {
662
692
  contain: true,
663
693
  restoreFocus: true,
664
694
  autoFocus: true
665
- }, /* @__PURE__ */ import_react17.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, overlayProps), dialogProps), modalProps), {
666
- ref,
667
- variant: variant ? `dialog.${variant}` : `dialog`
668
- }), restProps), children)));
695
+ }, /* @__PURE__ */ import_react18.default.createElement(Underlay, __spreadValues({}, underlayProps)), /* @__PURE__ */ import_react18.default.createElement("div", __spreadValues({
696
+ style: {
697
+ display: "flex",
698
+ alignItems: "center",
699
+ justifyContent: "center",
700
+ position: "fixed",
701
+ inset: 0,
702
+ zIndex: 2,
703
+ pointerEvents: "none"
704
+ },
705
+ ref: modalRef
706
+ }, (0, import_utils2.mergeProps)(props, overlayProps, modalProps)), /* @__PURE__ */ import_react18.default.createElement("div", {
707
+ style: { pointerEvents: "auto" }
708
+ }, children)));
709
+ });
710
+
711
+ // src/Overlay/Overlay.tsx
712
+ var import_react19 = __toESM(require("react"));
713
+ var import_overlays2 = require("@react-aria/overlays");
714
+ var Overlay = (_a) => {
715
+ var _b = _a, {
716
+ children,
717
+ open = false,
718
+ container = document.body
719
+ } = _b, props = __objRest(_b, [
720
+ "children",
721
+ "open",
722
+ "container"
723
+ ]);
724
+ if (!open) {
725
+ return null;
726
+ }
727
+ return /* @__PURE__ */ import_react19.default.createElement(import_overlays2.OverlayContainer, {
728
+ portalContainer: container
729
+ }, /* @__PURE__ */ import_react19.default.createElement(import_system.Box, __spreadValues({}, props), children));
669
730
  };
670
731
 
671
- // src/Dialog/Dialog.tsx
672
- var Dialog = (_a) => {
732
+ // src/Overlay/Popover.tsx
733
+ var import_react20 = __toESM(require("react"));
734
+ var import_overlays3 = require("@react-aria/overlays");
735
+ var import_utils3 = require("@react-aria/utils");
736
+ var Popover = (0, import_react20.forwardRef)((_a, ref) => {
673
737
  var _b = _a, {
674
- backdropVariant,
675
738
  children,
676
- className,
677
- close,
678
- isOpen,
679
- title,
680
- variant
739
+ open,
740
+ dismissable,
741
+ keyboardDismissDisabled,
742
+ shouldCloseOnBlur,
743
+ minWidth = 0
681
744
  } = _b, props = __objRest(_b, [
682
- "backdropVariant",
683
745
  "children",
684
- "className",
685
- "close",
686
- "isOpen",
687
- "title",
688
- "variant"
746
+ "open",
747
+ "dismissable",
748
+ "keyboardDismissDisabled",
749
+ "shouldCloseOnBlur",
750
+ "minWidth"
689
751
  ]);
690
- const closeButtonRef = import_react18.default.useRef();
691
- const { buttonProps: closeButtonProps } = (0, import_button2.useButton)({
692
- onPress: () => close()
693
- }, closeButtonRef);
694
- return /* @__PURE__ */ import_react18.default.createElement(import_overlays3.OverlayContainer, null, /* @__PURE__ */ import_react18.default.createElement(ModalDialog, __spreadValues({
695
- variant,
696
- backdropVariant,
697
- isOpen,
698
- onClose: close,
699
- isDismissable: true
700
- }, props), /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
752
+ const fallbackRef = (0, import_react20.useRef)(null);
753
+ const popoverRef = ref || fallbackRef;
754
+ const { overlayProps } = (0, import_overlays3.useOverlay)(__spreadValues({
755
+ isOpen: open,
756
+ isDismissable: dismissable,
757
+ isKeyboardDismissDisabled: keyboardDismissDisabled,
758
+ shouldCloseOnBlur
759
+ }, props), popoverRef);
760
+ const { modalProps } = (0, import_overlays3.useModal)({});
761
+ const style = { minWidth };
762
+ return /* @__PURE__ */ import_react20.default.createElement(Overlay, {
763
+ open
764
+ }, /* @__PURE__ */ import_react20.default.createElement(import_system.Box, __spreadValues({
765
+ ref: popoverRef,
766
+ role: "presentation"
767
+ }, (0, import_utils3.mergeProps)(props, overlayProps, modalProps, style)), children));
768
+ });
769
+
770
+ // src/Dialog/DialogTrigger.tsx
771
+ var DialogTrigger = ({
772
+ children,
773
+ dismissable = true,
774
+ keyboardDismissable = true
775
+ }) => {
776
+ const [dialogTrigger, dialog] = import_react21.default.Children.toArray(children);
777
+ const dialogTriggerRef = (0, import_react21.useRef)(null);
778
+ const state = (0, import_overlays4.useOverlayTriggerState)({});
779
+ const ctx = { open: state.isOpen, close: state.close };
780
+ return /* @__PURE__ */ import_react21.default.createElement(DialogContext.Provider, {
781
+ value: ctx
782
+ }, /* @__PURE__ */ import_react21.default.createElement(import_interactions2.PressResponder, {
783
+ ref: dialogTriggerRef,
784
+ isPressed: state.isOpen,
785
+ onPress: state.toggle
786
+ }, dialogTrigger), /* @__PURE__ */ import_react21.default.createElement(Overlay, {
787
+ open: state.isOpen
788
+ }, /* @__PURE__ */ import_react21.default.createElement(Modal, {
789
+ open: state.isOpen,
790
+ onClose: state.close,
791
+ dismissable,
792
+ keyboardDismissable
793
+ }, dialog)));
794
+ };
795
+
796
+ // src/Dialog/Dialog.tsx
797
+ var CloseButton = ({ css }) => {
798
+ const ref = (0, import_react22.useRef)(null);
799
+ const { close } = useDialogContext();
800
+ const { buttonProps } = (0, import_button2.useButton)({
801
+ onPress: () => close == null ? void 0 : close()
802
+ }, ref);
803
+ return /* @__PURE__ */ import_react22.default.createElement(import_system12.Box, {
804
+ css: { display: "flex", justifyContent: "flex-end" }
805
+ }, /* @__PURE__ */ import_react22.default.createElement(import_system12.Box, __spreadValues({
806
+ as: "button",
701
807
  __baseCSS: {
702
- display: "flex",
703
- justifyContent: "space-between",
704
- borderRadius: "small",
705
- pl: "large",
706
- pb: "large"
808
+ outline: "none",
809
+ border: "none",
810
+ cursor: "pointer",
811
+ height: 16,
812
+ width: 16,
813
+ lineHeight: 1,
814
+ p: 0
707
815
  },
708
- className
709
- }, /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
710
- pt: "medium"
711
- }, title && /* @__PURE__ */ import_react18.default.createElement(Text, {
712
- as: "h4",
713
- variant: "headline4"
714
- }, title), children), /* @__PURE__ */ import_react18.default.createElement(import_system.Box, {
715
- __baseCSS: {
716
- display: "flex",
717
- justifyContent: "flex-end",
718
- alignItems: "start",
719
- paddingTop: "xsmall",
720
- paddingX: "xsmall"
721
- }
722
- }, /* @__PURE__ */ import_react18.default.createElement(import_system.Box, __spreadProps(__spreadValues({
723
- as: Button,
724
- __baseCSS: {
725
- color: "text",
726
- bg: "transparent",
727
- lineHeight: "xsmall",
728
- px: "xxsmall",
729
- ":hover": {
730
- color: "text",
731
- bg: "transparent",
732
- cursor: "pointer"
733
- },
734
- ":focus": {
735
- outline: 0
736
- }
737
- }
738
- }, closeButtonProps), {
739
- ref: closeButtonRef
740
- }), /* @__PURE__ */ import_react18.default.createElement(import_icons3.Close, {
741
- size: 16
742
- }))))));
816
+ css,
817
+ ref
818
+ }, buttonProps), /* @__PURE__ */ import_react22.default.createElement("svg", {
819
+ viewBox: "0 0 20 20",
820
+ fill: "currentColor"
821
+ }, /* @__PURE__ */ import_react22.default.createElement("path", {
822
+ fillRule: "evenodd",
823
+ clipRule: "evenodd",
824
+ d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"
825
+ }))));
743
826
  };
744
- var useDialogButtonProps = () => {
745
- const state = (0, import_overlays2.useOverlayTriggerState)({});
746
- const openButtonRef = import_react18.default.useRef();
747
- const { buttonProps: openButtonProps } = (0, import_button2.useButton)({
748
- onPress: () => state.open()
749
- }, openButtonRef);
750
- return {
751
- state,
752
- openButtonProps,
753
- openButtonRef
754
- };
827
+ var addTitleProps = (children, titleProps) => {
828
+ const childs = import_react22.default.Children.toArray(children);
829
+ const titleIndex = childs.findIndex((child) => import_react22.default.isValidElement(child) && (child.type === Header || child.type === Headline));
830
+ if (titleIndex < 0) {
831
+ console.warn("No child in <Dialog> found that can act as title for accessibility. Please add a <Header> or <Headline> as direct child.");
832
+ return children;
833
+ }
834
+ const titleChild = import_react22.default.cloneElement(childs[titleIndex], titleProps);
835
+ childs.splice(titleIndex, 1, titleChild);
836
+ return childs;
837
+ };
838
+ var Dialog = (_a) => {
839
+ var _b = _a, {
840
+ children,
841
+ variant,
842
+ size,
843
+ closeButton
844
+ } = _b, props = __objRest(_b, [
845
+ "children",
846
+ "variant",
847
+ "size",
848
+ "closeButton"
849
+ ]);
850
+ const ref = (0, import_react22.useRef)(null);
851
+ const { close } = useDialogContext();
852
+ const { dialogProps, titleProps } = (0, import_dialog.useDialog)(props, ref);
853
+ const styles = (0, import_system12.useComponentStyles)("Dialog", { variant, size }, { parts: ["container", "closeButton"] });
854
+ return /* @__PURE__ */ import_react22.default.createElement(import_system12.Box, __spreadValues({
855
+ __baseCSS: { bg: "#fff" },
856
+ css: styles.container
857
+ }, dialogProps), closeButton && /* @__PURE__ */ import_react22.default.createElement(CloseButton, {
858
+ css: styles.closeButton
859
+ }), typeof children === "function" ? children({ close, titleProps }) : props["aria-labelledby"] ? children : addTitleProps(children, titleProps));
755
860
  };
861
+ Dialog.Trigger = DialogTrigger;
756
862
 
757
863
  // src/Divider/Divider.tsx
758
- var import_react19 = __toESM(require("react"));
864
+ var import_react23 = __toESM(require("react"));
759
865
  var import_separator = require("@react-aria/separator");
866
+ var import_system13 = require("@marigold/system");
760
867
  var Divider = (_a) => {
761
- var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
868
+ var _b = _a, { variant } = _b, props = __objRest(_b, ["variant"]);
762
869
  const { separatorProps } = (0, import_separator.useSeparator)(props);
763
- return /* @__PURE__ */ import_react19.default.createElement(import_system.Box, __spreadValues(__spreadValues({
764
- __baseCSS: { width: "100%", height: "1px", m: "none", bg: "text" },
765
- variant: `divider.${variant}`
870
+ const styles = (0, import_system13.useComponentStyles)("Divider", { variant });
871
+ return /* @__PURE__ */ import_react23.default.createElement(import_system.Box, __spreadValues(__spreadValues({
872
+ css: styles
766
873
  }, props), separatorProps));
767
874
  };
768
875
 
769
- // src/Field/Field.tsx
770
- var import_react20 = __toESM(require("react"));
771
- var import_textfield = require("@react-aria/textfield");
772
- var import_icons4 = require("@marigold/icons");
773
- var Field = (_a) => {
774
- var _b = _a, {
775
- type = "text",
776
- variant = "",
777
- labelVariant = "above",
778
- htmlFor,
779
- required,
780
- error,
781
- errorMessage
782
- } = _b, props = __objRest(_b, [
783
- "type",
784
- "variant",
785
- "labelVariant",
786
- "htmlFor",
787
- "required",
788
- "error",
789
- "errorMessage"
790
- ]);
791
- const ref = (0, import_react20.useRef)(null);
792
- const { labelProps, inputProps, errorMessageProps } = (0, import_textfield.useTextField)(props, ref);
793
- return /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(Label, __spreadValues({
794
- variant: labelVariant,
795
- htmlFor,
796
- required
797
- }, labelProps), props.label), /* @__PURE__ */ import_react20.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
798
- as: "input",
799
- type,
800
- id: htmlFor,
801
- variant: `input.${variant}`
802
- }, inputProps), {
803
- ref
804
- }), props)), error && errorMessage && /* @__PURE__ */ import_react20.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react20.default.createElement(import_icons4.Exclamation, {
805
- size: 16
806
- }), errorMessage));
876
+ // src/Footer/Footer.tsx
877
+ var import_react24 = __toESM(require("react"));
878
+ var import_system14 = require("@marigold/system");
879
+ var Footer = (_a) => {
880
+ var _b = _a, { children, variant, size } = _b, props = __objRest(_b, ["children", "variant", "size"]);
881
+ const styles = (0, import_system14.useComponentStyles)("Footer", { variant, size });
882
+ return /* @__PURE__ */ import_react24.default.createElement(import_system.Box, __spreadProps(__spreadValues({
883
+ as: "footer"
884
+ }, props), {
885
+ css: styles
886
+ }), children);
807
887
  };
808
888
 
809
- // src/VisuallyHidden/VisuallyHidden.tsx
810
- var import_visually_hidden2 = require("@react-aria/visually-hidden");
811
-
812
889
  // src/Image/Image.tsx
813
- var import_react21 = __toESM(require("react"));
890
+ var import_react25 = __toESM(require("react"));
891
+ var import_system15 = require("@marigold/system");
814
892
  var Image = (_a) => {
893
+ var _b = _a, { variant } = _b, props = __objRest(_b, ["variant"]);
894
+ const styles = (0, import_system15.useComponentStyles)("Image", { variant });
895
+ return /* @__PURE__ */ import_react25.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
896
+ as: "img",
897
+ css: styles
898
+ }));
899
+ };
900
+
901
+ // src/Inline/Inline.tsx
902
+ var import_react26 = __toESM(require("react"));
903
+ var ALIGNMENT2 = {
904
+ top: "flex-start",
905
+ center: "center",
906
+ bottom: "flex-end"
907
+ };
908
+ var Inline = (_a) => {
815
909
  var _b = _a, {
816
- variant = "fullWidth"
910
+ space = "none",
911
+ align = "center",
912
+ children
817
913
  } = _b, props = __objRest(_b, [
818
- "variant"
914
+ "space",
915
+ "align",
916
+ "children"
819
917
  ]);
820
- return /* @__PURE__ */ import_react21.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
821
- as: "img",
822
- variant: `image.${variant}`
823
- }));
918
+ return /* @__PURE__ */ import_react26.default.createElement(import_system.Box, __spreadValues({
919
+ __baseCSS: { gap: space, flexWrap: "wrap" },
920
+ display: "inline-flex",
921
+ alignItems: ALIGNMENT2[align]
922
+ }, props), children);
824
923
  };
825
924
 
925
+ // src/Input/Input.tsx
926
+ var import_react27 = __toESM(require("react"));
927
+ var import_system16 = require("@marigold/system");
928
+ var Input = (0, import_react27.forwardRef)((_a, ref) => {
929
+ var _b = _a, { variant, size, type = "text" } = _b, props = __objRest(_b, ["variant", "size", "type"]);
930
+ const styles = (0, import_system16.useComponentStyles)("Input", { variant, size });
931
+ return /* @__PURE__ */ import_react27.default.createElement(import_system16.Box, __spreadProps(__spreadValues({}, props), {
932
+ ref,
933
+ as: "input",
934
+ type,
935
+ css: styles
936
+ }));
937
+ });
938
+
826
939
  // src/Link/Link.tsx
827
- var import_react22 = __toESM(require("react"));
940
+ var import_react28 = __toESM(require("react"));
828
941
  var import_link = require("@react-aria/link");
942
+ var import_system17 = require("@marigold/system");
829
943
  var Link = (_a) => {
830
944
  var _b = _a, {
831
945
  as = "a",
832
- variant = "link",
946
+ variant,
947
+ size,
833
948
  children,
834
949
  disabled
835
950
  } = _b, props = __objRest(_b, [
836
951
  "as",
837
952
  "variant",
953
+ "size",
838
954
  "children",
839
955
  "disabled"
840
956
  ]);
841
- const ref = (0, import_react22.useRef)();
957
+ const ref = (0, import_react28.useRef)(null);
842
958
  const { linkProps } = (0, import_link.useLink)(__spreadProps(__spreadValues({}, props), {
843
959
  elementType: typeof as === "string" ? as : "span",
844
960
  isDisabled: disabled
845
961
  }), ref);
846
- return /* @__PURE__ */ import_react22.default.createElement(Text, __spreadProps(__spreadValues(__spreadValues({}, props), linkProps), {
962
+ const styles = (0, import_system17.useComponentStyles)("Link", { variant, size });
963
+ return /* @__PURE__ */ import_react28.default.createElement(import_system.Box, __spreadValues(__spreadValues({
847
964
  as,
848
- variant,
965
+ css: styles,
849
966
  ref
850
- }), children);
967
+ }, props), linkProps), children);
851
968
  };
852
969
 
853
970
  // src/Menu/Menu.tsx
854
- var import_react23 = __toESM(require("react"));
855
- var Menu = (_a) => {
856
- var _b = _a, {
857
- variant = "default",
858
- label = "Menu",
859
- onClick,
860
- show = false,
861
- children
862
- } = _b, props = __objRest(_b, [
863
- "variant",
864
- "label",
865
- "onClick",
866
- "show",
867
- "children"
868
- ]);
869
- return /* @__PURE__ */ import_react23.default.createElement(import_system.Box, __spreadValues({
870
- variant: `menu.${variant}`
871
- }, props), /* @__PURE__ */ import_react23.default.createElement(Button, {
872
- onClick,
873
- variant: "menu"
874
- }, label), show ? /* @__PURE__ */ import_react23.default.createElement(import_system.Box, {
875
- display: "block",
876
- position: "absolute",
877
- minWidth: "120px",
878
- borderRadius: "2px"
879
- }, children) : null);
880
- };
971
+ var import_react32 = __toESM(require("react"));
972
+ var import_focus5 = require("@react-aria/focus");
973
+ var import_menu4 = require("@react-aria/menu");
974
+ var import_overlays6 = require("@react-aria/overlays");
975
+ var import_collections = require("@react-stately/collections");
976
+ var import_tree = require("@react-stately/tree");
977
+ var import_system19 = require("@marigold/system");
881
978
 
882
- // src/MenuItem/MenuItem.tsx
883
- var import_react24 = __toESM(require("react"));
884
- var MenuItem = (_a) => {
885
- var _b = _a, {
886
- variant = "default",
887
- children
888
- } = _b, props = __objRest(_b, [
889
- "variant",
890
- "children"
891
- ]);
892
- return /* @__PURE__ */ import_react24.default.createElement(import_system.Box, {
893
- variant: `menuItem.${variant}`
894
- }, /* @__PURE__ */ import_react24.default.createElement(Link, __spreadValues({
895
- variant: "menuItemLink"
896
- }, props), children));
897
- };
979
+ // src/Menu/Context.ts
980
+ var import_react29 = require("react");
981
+ var MenuContext = (0, import_react29.createContext)({});
982
+ var useMenuContext = () => (0, import_react29.useContext)(MenuContext);
898
983
 
899
- // src/Message/Message.tsx
900
- var import_react25 = __toESM(require("react"));
901
- var import_icons5 = require("@marigold/icons");
984
+ // src/Menu/MenuTrigger.tsx
985
+ var import_react30 = __toESM(require("react"));
986
+ var import_menu = require("@react-stately/menu");
987
+ var import_menu2 = require("@react-aria/menu");
988
+ var import_overlays5 = require("@react-aria/overlays");
989
+ var import_interactions3 = require("@react-aria/interactions");
990
+ var MenuTrigger = ({ disabled, children }) => {
991
+ const [menuTrigger, menu] = import_react30.default.Children.toArray(children);
992
+ const menuTriggerRef = (0, import_react30.useRef)(null);
993
+ const overlayRef = (0, import_react30.useRef)(null);
994
+ const state = (0, import_menu.useMenuTriggerState)({});
995
+ const { menuTriggerProps, menuProps } = (0, import_menu2.useMenuTrigger)({ trigger: "press", isDisabled: disabled }, state, menuTriggerRef);
996
+ const { overlayProps: positionProps } = (0, import_overlays5.useOverlayPosition)({
997
+ targetRef: menuTriggerRef,
998
+ overlayRef,
999
+ isOpen: state.isOpen
1000
+ });
1001
+ const menuContext = __spreadProps(__spreadValues({}, menuProps), {
1002
+ open: state.isOpen,
1003
+ onClose: state.close,
1004
+ autoFocus: state.focusStrategy,
1005
+ triggerWidth: menuTriggerRef.current ? menuTriggerRef.current.offsetWidth : void 0
1006
+ });
1007
+ return /* @__PURE__ */ import_react30.default.createElement(MenuContext.Provider, {
1008
+ value: menuContext
1009
+ }, /* @__PURE__ */ import_react30.default.createElement(import_interactions3.PressResponder, __spreadProps(__spreadValues({}, menuTriggerProps), {
1010
+ ref: menuTriggerRef,
1011
+ isPressed: state.isOpen
1012
+ }), menuTrigger), /* @__PURE__ */ import_react30.default.createElement(Popover, __spreadValues({
1013
+ open: state.isOpen,
1014
+ onClose: state.close,
1015
+ dismissable: true,
1016
+ shouldCloseOnBlur: true,
1017
+ ref: overlayRef
1018
+ }, positionProps), menu));
1019
+ };
1020
+
1021
+ // src/Menu/MenuItem.tsx
1022
+ var import_react31 = __toESM(require("react"));
1023
+ var import_focus4 = require("@react-aria/focus");
1024
+ var import_menu3 = require("@react-aria/menu");
1025
+ var import_utils4 = require("@react-aria/utils");
1026
+ var import_system18 = require("@marigold/system");
1027
+ var MenuItem = ({ item, state, onAction, css }) => {
1028
+ const ref = (0, import_react31.useRef)(null);
1029
+ const { onClose } = useMenuContext();
1030
+ const { menuItemProps } = (0, import_menu3.useMenuItem)({
1031
+ key: item.key,
1032
+ onAction,
1033
+ onClose
1034
+ }, state, ref);
1035
+ const { isFocusVisible, focusProps } = (0, import_focus4.useFocusRing)();
1036
+ const stateProps = (0, import_system18.useStateProps)({
1037
+ focus: isFocusVisible
1038
+ });
1039
+ return /* @__PURE__ */ import_react31.default.createElement(import_system18.Box, __spreadValues(__spreadValues({
1040
+ as: "li",
1041
+ ref,
1042
+ __baseCSS: {
1043
+ "&:focus": {
1044
+ outline: 0
1045
+ }
1046
+ },
1047
+ css
1048
+ }, (0, import_utils4.mergeProps)(menuItemProps, focusProps)), stateProps), item.rendered);
1049
+ };
1050
+
1051
+ // src/Menu/Menu.tsx
1052
+ var Menu = (_a) => {
1053
+ var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
1054
+ const _a2 = useMenuContext(), { triggerWidth } = _a2, menuContext = __objRest(_a2, ["triggerWidth"]);
1055
+ const ownProps = __spreadValues(__spreadValues({}, props), menuContext);
1056
+ const ref = (0, import_react32.useRef)(null);
1057
+ const state = (0, import_tree.useTreeState)(__spreadProps(__spreadValues({}, ownProps), { selectionMode: "none" }));
1058
+ const { menuProps } = (0, import_menu4.useMenu)(ownProps, state, ref);
1059
+ const styles = (0, import_system19.useComponentStyles)("Menu", { variant, size }, { parts: ["container", "item"] });
1060
+ return /* @__PURE__ */ import_react32.default.createElement(import_focus5.FocusScope, {
1061
+ restoreFocus: true
1062
+ }, /* @__PURE__ */ import_react32.default.createElement("div", null, /* @__PURE__ */ import_react32.default.createElement(import_overlays6.DismissButton, {
1063
+ onDismiss: ownProps.onClose
1064
+ }), /* @__PURE__ */ import_react32.default.createElement(import_system19.Box, __spreadValues({
1065
+ as: "ul",
1066
+ ref,
1067
+ style: { width: triggerWidth },
1068
+ __baseCSS: {
1069
+ listStyle: "none",
1070
+ p: 0,
1071
+ overflowWrap: "break-word"
1072
+ },
1073
+ css: styles.container
1074
+ }, menuProps), [...state.collection].map((item) => /* @__PURE__ */ import_react32.default.createElement(MenuItem, {
1075
+ key: item.key,
1076
+ item,
1077
+ state,
1078
+ onAction: props.onSelect,
1079
+ css: styles.item
1080
+ }))), /* @__PURE__ */ import_react32.default.createElement(import_overlays6.DismissButton, {
1081
+ onDismiss: ownProps.onClose
1082
+ })));
1083
+ };
1084
+ Menu.Trigger = MenuTrigger;
1085
+ Menu.Item = import_collections.Item;
1086
+
1087
+ // src/Message/Message.tsx
1088
+ var import_react33 = __toESM(require("react"));
1089
+ var import_icons2 = require("@marigold/icons");
1090
+ var import_system20 = require("@marigold/system");
902
1091
  var Message = (_a) => {
903
1092
  var _b = _a, {
904
1093
  messageTitle,
905
1094
  variant = "info",
906
- className,
1095
+ size,
907
1096
  children
908
1097
  } = _b, props = __objRest(_b, [
909
1098
  "messageTitle",
910
1099
  "variant",
911
- "className",
1100
+ "size",
912
1101
  "children"
913
1102
  ]);
914
- var icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Info, null);
1103
+ const styles = (0, import_system20.useComponentStyles)("Message", {
1104
+ variant,
1105
+ size
1106
+ }, { parts: ["container", "icon", "title", "content"] });
1107
+ var icon = /* @__PURE__ */ import_react33.default.createElement(import_icons2.Info, null);
915
1108
  if (variant === "warning") {
916
- icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Notification, null);
1109
+ icon = /* @__PURE__ */ import_react33.default.createElement(import_icons2.Notification, null);
917
1110
  }
918
1111
  if (variant === "error") {
919
- icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Exclamation, null);
1112
+ icon = /* @__PURE__ */ import_react33.default.createElement(import_icons2.Exclamation, null);
920
1113
  }
921
- return /* @__PURE__ */ import_react25.default.createElement(import_system.Box, __spreadValues({
922
- display: "inline-block",
923
- variant: `message.${variant}`,
924
- className
925
- }, props), /* @__PURE__ */ import_react25.default.createElement(import_system.Box, {
926
- display: "flex",
927
- alignItems: "center",
928
- variant: "message.title"
929
- }, icon, /* @__PURE__ */ import_react25.default.createElement(Text, {
930
- as: "h4",
931
- variant: "headline4"
932
- }, messageTitle)), /* @__PURE__ */ import_react25.default.createElement(import_system.Box, {
933
- css: { color: "black" }
1114
+ return /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadValues({
1115
+ css: styles.container
1116
+ }, props), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1117
+ __baseCSS: { display: "flex", alignItems: "center", gap: 4 }
1118
+ }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1119
+ role: "presentation",
1120
+ css: styles.icon
1121
+ }, icon), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1122
+ css: styles.title
1123
+ }, messageTitle)), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1124
+ css: styles.content
934
1125
  }, children));
935
1126
  };
936
1127
 
1128
+ // src/NumberField/NumberField.tsx
1129
+ var import_react37 = __toESM(require("react"));
1130
+ var import_focus6 = require("@react-aria/focus");
1131
+ var import_interactions5 = require("@react-aria/interactions");
1132
+ var import_i18n = require("@react-aria/i18n");
1133
+ var import_numberfield = require("@react-aria/numberfield");
1134
+ var import_utils6 = require("@react-aria/utils");
1135
+ var import_numberfield2 = require("@react-stately/numberfield");
1136
+ var import_system24 = require("@marigold/system");
1137
+
1138
+ // src/FieldBase/FieldBase.tsx
1139
+ var import_react35 = __toESM(require("react"));
1140
+ var import_system22 = require("@marigold/system");
1141
+
1142
+ // src/HelpText/HelpText.tsx
1143
+ var import_react34 = __toESM(require("react"));
1144
+ var import_icons3 = require("@marigold/icons");
1145
+ var import_system21 = require("@marigold/system");
1146
+ var HelpText = (_a) => {
1147
+ var _b = _a, {
1148
+ variant,
1149
+ size,
1150
+ disabled,
1151
+ description,
1152
+ descriptionProps,
1153
+ error,
1154
+ errorMessage,
1155
+ errorMessageProps
1156
+ } = _b, props = __objRest(_b, [
1157
+ "variant",
1158
+ "size",
1159
+ "disabled",
1160
+ "description",
1161
+ "descriptionProps",
1162
+ "error",
1163
+ "errorMessage",
1164
+ "errorMessageProps"
1165
+ ]);
1166
+ var _a2;
1167
+ const hasErrorMessage = errorMessage && error;
1168
+ const styles = (0, import_system21.useComponentStyles)("HelpText", { variant, size }, { parts: ["container", "icon"] });
1169
+ return /* @__PURE__ */ import_react34.default.createElement(import_system21.Box, __spreadProps(__spreadValues(__spreadValues({}, hasErrorMessage ? errorMessageProps : descriptionProps), props), {
1170
+ __baseCSS: { display: "flex", alignItems: "center", gap: 4 },
1171
+ css: styles.container
1172
+ }), hasErrorMessage ? /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, /* @__PURE__ */ import_react34.default.createElement(import_icons3.Exclamation, {
1173
+ role: "presentation",
1174
+ size: ((_a2 = styles == null ? void 0 : styles.icon) == null ? void 0 : _a2.size) || 16
1175
+ }), errorMessage) : /* @__PURE__ */ import_react34.default.createElement(import_react34.default.Fragment, null, description));
1176
+ };
1177
+
1178
+ // src/FieldBase/FieldBase.tsx
1179
+ var FieldBase = ({
1180
+ variant,
1181
+ size,
1182
+ children,
1183
+ disabled,
1184
+ required,
1185
+ label,
1186
+ labelProps,
1187
+ description,
1188
+ descriptionProps,
1189
+ error,
1190
+ errorMessage,
1191
+ errorMessageProps,
1192
+ stateProps
1193
+ }) => {
1194
+ const hasHelpText = !!description || errorMessage && error;
1195
+ return /* @__PURE__ */ import_react35.default.createElement(import_system22.Box, {
1196
+ css: { display: "flex", flexDirection: "column", width: "100%" }
1197
+ }, label && /* @__PURE__ */ import_react35.default.createElement(Label, __spreadValues(__spreadValues({
1198
+ required,
1199
+ variant,
1200
+ size
1201
+ }, labelProps), stateProps), label), children, hasHelpText && /* @__PURE__ */ import_react35.default.createElement(HelpText, __spreadProps(__spreadValues({}, stateProps), {
1202
+ variant,
1203
+ size,
1204
+ disabled,
1205
+ description,
1206
+ descriptionProps,
1207
+ error,
1208
+ errorMessage,
1209
+ errorMessageProps
1210
+ })));
1211
+ };
1212
+
1213
+ // src/NumberField/StepButton.tsx
1214
+ var import_react36 = __toESM(require("react"));
1215
+ var import_button3 = require("@react-aria/button");
1216
+ var import_interactions4 = require("@react-aria/interactions");
1217
+ var import_utils5 = require("@react-aria/utils");
1218
+ var import_system23 = require("@marigold/system");
1219
+ var Plus = () => /* @__PURE__ */ import_react36.default.createElement(import_system23.Box, {
1220
+ as: "svg",
1221
+ __baseCSS: { width: 16, height: 16 },
1222
+ viewBox: "0 0 20 20",
1223
+ fill: "currentColor"
1224
+ }, /* @__PURE__ */ import_react36.default.createElement("path", {
1225
+ fillRule: "evenodd",
1226
+ clipRule: "evenodd",
1227
+ d: "M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z"
1228
+ }));
1229
+ var Minus = () => /* @__PURE__ */ import_react36.default.createElement(import_system23.Box, {
1230
+ as: "svg",
1231
+ __baseCSS: { width: 16, height: 16 },
1232
+ viewBox: "0 0 20 20",
1233
+ fill: "currentColor"
1234
+ }, /* @__PURE__ */ import_react36.default.createElement("path", {
1235
+ fillRule: "evenodd",
1236
+ clipRule: "evenodd",
1237
+ d: "M3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z"
1238
+ }));
1239
+ var StepButton = (_a) => {
1240
+ var _b = _a, { direction, css } = _b, props = __objRest(_b, ["direction", "css"]);
1241
+ const ref = (0, import_react36.useRef)(null);
1242
+ const { buttonProps, isPressed } = (0, import_button3.useButton)(__spreadProps(__spreadValues({}, props), { elementType: "div" }), ref);
1243
+ const { hoverProps, isHovered } = (0, import_interactions4.useHover)(props);
1244
+ const stateProps = (0, import_system23.useStateProps)({
1245
+ active: isPressed,
1246
+ hover: isHovered,
1247
+ disabled: props.isDisabled
1248
+ });
1249
+ const Icon3 = direction === "up" ? Plus : Minus;
1250
+ return /* @__PURE__ */ import_react36.default.createElement(import_system23.Box, __spreadValues(__spreadValues({
1251
+ __baseCSS: {
1252
+ display: "flex",
1253
+ alignItems: "center",
1254
+ justifyContent: "center",
1255
+ cursor: props.isDisabled ? "not-allowed" : "pointer"
1256
+ },
1257
+ css
1258
+ }, (0, import_utils5.mergeProps)(buttonProps, hoverProps)), stateProps), /* @__PURE__ */ import_react36.default.createElement(Icon3, null));
1259
+ };
1260
+
1261
+ // src/NumberField/NumberField.tsx
1262
+ var NumberField = (0, import_react37.forwardRef)((_a, ref) => {
1263
+ var _b = _a, {
1264
+ disabled,
1265
+ required,
1266
+ readOnly,
1267
+ error,
1268
+ variant,
1269
+ size,
1270
+ hideStepper
1271
+ } = _b, rest = __objRest(_b, [
1272
+ "disabled",
1273
+ "required",
1274
+ "readOnly",
1275
+ "error",
1276
+ "variant",
1277
+ "size",
1278
+ "hideStepper"
1279
+ ]);
1280
+ const props = __spreadValues({
1281
+ isDisabled: disabled,
1282
+ isRequired: required,
1283
+ isReadOnly: readOnly,
1284
+ validationState: error ? "invalid" : "valid"
1285
+ }, rest);
1286
+ const showStepper = !hideStepper;
1287
+ const { locale } = (0, import_i18n.useLocale)();
1288
+ const inputRef = (0, import_utils6.useObjectRef)(ref);
1289
+ const state = (0, import_numberfield2.useNumberFieldState)(__spreadProps(__spreadValues({}, props), { locale }));
1290
+ const {
1291
+ labelProps,
1292
+ groupProps,
1293
+ inputProps,
1294
+ descriptionProps,
1295
+ errorMessageProps,
1296
+ incrementButtonProps,
1297
+ decrementButtonProps
1298
+ } = (0, import_numberfield.useNumberField)(props, state, inputRef);
1299
+ const { hoverProps, isHovered } = (0, import_interactions5.useHover)({ isDisabled: disabled });
1300
+ const { focusProps, isFocused } = (0, import_focus6.useFocusRing)({
1301
+ within: true,
1302
+ isTextInput: true,
1303
+ autoFocus: props.autoFocus
1304
+ });
1305
+ const styles = (0, import_system24.useComponentStyles)("NumberField", { variant, size }, { parts: ["group", "stepper"] });
1306
+ const stateProps = (0, import_system24.useStateProps)({
1307
+ hover: isHovered,
1308
+ focus: isFocused,
1309
+ disabled,
1310
+ readOnly,
1311
+ error
1312
+ });
1313
+ return /* @__PURE__ */ import_react37.default.createElement(FieldBase, {
1314
+ label: props.label,
1315
+ labelProps,
1316
+ required,
1317
+ description: props.description,
1318
+ descriptionProps,
1319
+ error,
1320
+ errorMessage: props.errorMessage,
1321
+ errorMessageProps,
1322
+ stateProps,
1323
+ variant,
1324
+ size
1325
+ }, /* @__PURE__ */ import_react37.default.createElement(import_system24.Box, __spreadValues(__spreadValues({
1326
+ "data-group": true,
1327
+ __baseCSS: {
1328
+ display: "flex",
1329
+ alignItems: "stretch",
1330
+ "> input": {
1331
+ flexGrow: 1
1332
+ }
1333
+ },
1334
+ css: styles.group
1335
+ }, (0, import_utils6.mergeProps)(groupProps, focusProps, hoverProps)), stateProps), showStepper && /* @__PURE__ */ import_react37.default.createElement(StepButton, __spreadValues({
1336
+ direction: "down",
1337
+ css: styles.stepper
1338
+ }, decrementButtonProps)), /* @__PURE__ */ import_react37.default.createElement(Input, __spreadValues(__spreadValues({
1339
+ ref: inputRef,
1340
+ variant,
1341
+ size
1342
+ }, inputProps), stateProps)), showStepper && /* @__PURE__ */ import_react37.default.createElement(StepButton, __spreadValues({
1343
+ direction: "up",
1344
+ css: styles.stepper
1345
+ }, incrementButtonProps))));
1346
+ });
1347
+
937
1348
  // src/Provider/index.ts
938
- var import_system5 = require("@marigold/system");
1349
+ var import_system26 = require("@marigold/system");
939
1350
  var import_ssr = require("@react-aria/ssr");
940
1351
 
941
1352
  // src/Provider/MarigoldProvider.tsx
942
- var import_react26 = __toESM(require("react"));
943
- var import_overlays4 = require("@react-aria/overlays");
944
- var import_system4 = require("@marigold/system");
1353
+ var import_react38 = __toESM(require("react"));
1354
+ var import_overlays7 = require("@react-aria/overlays");
1355
+ var import_system25 = require("@marigold/system");
945
1356
  function MarigoldProvider({
946
1357
  theme,
947
1358
  children
948
1359
  }) {
949
- const outer = (0, import_system4.useTheme)();
950
- const isTopLevel = outer.theme === import_system4.__defaultTheme;
951
- return /* @__PURE__ */ import_react26.default.createElement(import_system4.ThemeProvider, {
1360
+ const outer = (0, import_system25.useTheme)();
1361
+ const isTopLevel = outer.theme === import_system25.__defaultTheme;
1362
+ return /* @__PURE__ */ import_react38.default.createElement(import_system25.ThemeProvider, {
952
1363
  theme
953
- }, 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);
1364
+ }, isTopLevel ? /* @__PURE__ */ import_react38.default.createElement(import_react38.default.Fragment, null, /* @__PURE__ */ import_react38.default.createElement(import_system25.Global, null), /* @__PURE__ */ import_react38.default.createElement(import_overlays7.OverlayProvider, null, children)) : children);
954
1365
  }
955
1366
 
956
- // src/Radio/Radio.tsx
957
- var import_react28 = __toESM(require("react"));
958
- var import_icons6 = require("@marigold/icons");
959
- var import_focus3 = require("@react-aria/focus");
960
- var import_visually_hidden3 = require("@react-aria/visually-hidden");
1367
+ // src/Radio/Radio.tsx
1368
+ var import_react40 = __toESM(require("react"));
1369
+ var import_radio3 = require("@react-aria/radio");
1370
+ var import_system28 = require("@marigold/system");
1371
+
1372
+ // src/Radio/RadioGroup.tsx
1373
+ var import_react39 = __toESM(require("react"));
1374
+ var import_radio = require("@react-aria/radio");
1375
+ var import_radio2 = require("@react-stately/radio");
1376
+ var import_system27 = require("@marigold/system");
1377
+ var RadioGroupContext = import_react39.default.createContext(null);
1378
+ var useRadioGroupContext = () => (0, import_react39.useContext)(RadioGroupContext);
1379
+ var RadioGroup = (_a) => {
1380
+ var _b = _a, {
1381
+ children,
1382
+ orientation = "vertical",
1383
+ size,
1384
+ variant,
1385
+ required,
1386
+ disabled,
1387
+ readOnly,
1388
+ error
1389
+ } = _b, rest = __objRest(_b, [
1390
+ "children",
1391
+ "orientation",
1392
+ "size",
1393
+ "variant",
1394
+ "required",
1395
+ "disabled",
1396
+ "readOnly",
1397
+ "error"
1398
+ ]);
1399
+ const props = __spreadValues({
1400
+ isRequired: required,
1401
+ isDisabled: disabled,
1402
+ isReadOnly: readOnly,
1403
+ validationState: error ? "invalid" : "valid"
1404
+ }, rest);
1405
+ const state = (0, import_radio2.useRadioGroupState)(props);
1406
+ const { radioGroupProps, labelProps } = (0, import_radio.useRadioGroup)(props, state);
1407
+ const styles = (0, import_system27.useComponentStyles)("RadioGroup", { variant, size }, { parts: ["container", "group"] });
1408
+ return /* @__PURE__ */ import_react39.default.createElement(import_system27.Box, __spreadProps(__spreadValues({}, radioGroupProps), {
1409
+ css: styles.container
1410
+ }), props.label && /* @__PURE__ */ import_react39.default.createElement(Label, __spreadValues({
1411
+ as: "span",
1412
+ required
1413
+ }, labelProps), props.label), /* @__PURE__ */ import_react39.default.createElement(import_system27.Box, {
1414
+ role: "presentation",
1415
+ "data-orientation": orientation,
1416
+ __baseCSS: {
1417
+ display: "flex",
1418
+ flexDirection: orientation === "vertical" ? "column" : "row",
1419
+ alignItems: "start",
1420
+ gap: orientation === "vertical" ? "0.5ch" : "1.5ch"
1421
+ },
1422
+ css: styles.group
1423
+ }, /* @__PURE__ */ import_react39.default.createElement(RadioGroupContext.Provider, {
1424
+ value: __spreadValues({ variant, size, error }, state)
1425
+ }, children)));
1426
+ };
1427
+
1428
+ // src/Radio/Radio.tsx
1429
+ var import_interactions6 = require("@react-aria/interactions");
1430
+ var import_focus7 = require("@react-aria/focus");
1431
+ var Dot = () => /* @__PURE__ */ import_react40.default.createElement("svg", {
1432
+ viewBox: "0 0 6 6"
1433
+ }, /* @__PURE__ */ import_react40.default.createElement("circle", {
1434
+ fill: "currentColor",
1435
+ cx: "3",
1436
+ cy: "3",
1437
+ r: "3"
1438
+ }));
1439
+ var Icon2 = (_a) => {
1440
+ var _b = _a, { checked, css } = _b, props = __objRest(_b, ["checked", "css"]);
1441
+ return /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues({
1442
+ "aria-hidden": "true",
1443
+ __baseCSS: {
1444
+ width: 16,
1445
+ height: 16,
1446
+ bg: "#fff",
1447
+ border: "1px solid #000",
1448
+ borderRadius: "50%",
1449
+ display: "flex",
1450
+ alignItems: "center",
1451
+ justifyContent: "center",
1452
+ p: 4
1453
+ },
1454
+ css
1455
+ }, props), checked ? /* @__PURE__ */ import_react40.default.createElement(Dot, null) : null);
1456
+ };
1457
+ var Radio = (_a) => {
1458
+ var _b = _a, { disabled } = _b, props = __objRest(_b, ["disabled"]);
1459
+ const _a2 = useRadioGroupContext(), { variant, size, error } = _a2, state = __objRest(_a2, ["variant", "size", "error"]);
1460
+ const ref = (0, import_react40.useRef)(null);
1461
+ const { inputProps } = (0, import_radio3.useRadio)(__spreadValues({ isDisabled: disabled }, props), state, ref);
1462
+ const styles = (0, import_system28.useComponentStyles)("Radio", { variant: variant || props.variant, size: size || props.size }, { parts: ["container", "label", "radio"] });
1463
+ const { hoverProps, isHovered } = (0, import_interactions6.useHover)({});
1464
+ const { isFocusVisible, focusProps } = (0, import_focus7.useFocusRing)();
1465
+ const stateProps = (0, import_system28.useStateProps)({
1466
+ hover: isHovered,
1467
+ focus: isFocusVisible,
1468
+ checked: inputProps.checked,
1469
+ disabled: inputProps.disabled,
1470
+ readOnly: props.readOnly,
1471
+ error
1472
+ });
1473
+ return /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues(__spreadValues({
1474
+ as: "label",
1475
+ __baseCSS: {
1476
+ display: "flex",
1477
+ alignItems: "center",
1478
+ gap: "1ch",
1479
+ position: "relative"
1480
+ },
1481
+ css: styles.container
1482
+ }, hoverProps), stateProps), /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues(__spreadValues({
1483
+ as: "input",
1484
+ ref,
1485
+ css: {
1486
+ position: "absolute",
1487
+ width: "100%",
1488
+ height: "100%",
1489
+ top: 0,
1490
+ left: 0,
1491
+ zIndex: 1,
1492
+ opacity: 1e-4,
1493
+ cursor: inputProps.disabled ? "not-allowed" : "pointer"
1494
+ }
1495
+ }, inputProps), focusProps)), /* @__PURE__ */ import_react40.default.createElement(Icon2, __spreadValues({
1496
+ checked: inputProps.checked,
1497
+ css: styles.radio
1498
+ }, stateProps)), /* @__PURE__ */ import_react40.default.createElement(import_system28.Box, __spreadValues({
1499
+ css: styles.label
1500
+ }, stateProps), props.children));
1501
+ };
1502
+ Radio.Group = RadioGroup;
1503
+
1504
+ // src/Select/Select.tsx
1505
+ var import_react45 = __toESM(require("react"));
1506
+ var import_button4 = require("@react-aria/button");
1507
+ var import_focus8 = require("@react-aria/focus");
1508
+ var import_i18n2 = require("@react-aria/i18n");
1509
+ var import_overlays8 = require("@react-aria/overlays");
1510
+ var import_select = require("@react-aria/select");
1511
+ var import_select2 = require("@react-stately/select");
1512
+ var import_collections2 = require("@react-stately/collections");
1513
+ var import_utils8 = require("@react-aria/utils");
1514
+ var import_system32 = require("@marigold/system");
1515
+
1516
+ // src/ListBox/ListBox.tsx
1517
+ var import_react44 = __toESM(require("react"));
1518
+ var import_utils7 = require("@react-aria/utils");
1519
+ var import_system31 = require("@marigold/system");
1520
+ var import_listbox3 = require("@react-aria/listbox");
1521
+
1522
+ // src/ListBox/Context.ts
1523
+ var import_react41 = require("react");
1524
+ var ListBoxContext = (0, import_react41.createContext)({});
1525
+ var useListBoxContext = () => (0, import_react41.useContext)(ListBoxContext);
1526
+
1527
+ // src/ListBox/ListBoxSection.tsx
1528
+ var import_react43 = __toESM(require("react"));
1529
+ var import_listbox2 = require("@react-aria/listbox");
1530
+ var import_system30 = require("@marigold/system");
1531
+
1532
+ // src/ListBox/ListBoxOption.tsx
1533
+ var import_react42 = __toESM(require("react"));
1534
+ var import_listbox = require("@react-aria/listbox");
1535
+ var import_system29 = require("@marigold/system");
1536
+ var ListBoxOption = ({ item, state }) => {
1537
+ const ref = (0, import_react42.useRef)(null);
1538
+ const { optionProps, isSelected, isDisabled, isFocused } = (0, import_listbox.useOption)({
1539
+ key: item.key
1540
+ }, state, ref);
1541
+ const { styles } = useListBoxContext();
1542
+ const stateProps = (0, import_system29.useStateProps)({
1543
+ selected: isSelected,
1544
+ disabled: isDisabled,
1545
+ focusVisible: isFocused
1546
+ });
1547
+ return /* @__PURE__ */ import_react42.default.createElement(import_system29.Box, __spreadValues(__spreadValues({
1548
+ as: "li",
1549
+ ref,
1550
+ css: styles.option
1551
+ }, optionProps), stateProps), item.rendered);
1552
+ };
1553
+
1554
+ // src/ListBox/ListBoxSection.tsx
1555
+ var ListBoxSection = ({ section, state }) => {
1556
+ const { itemProps, headingProps, groupProps } = (0, import_listbox2.useListBoxSection)({
1557
+ heading: section.rendered,
1558
+ "aria-label": section["aria-label"]
1559
+ });
1560
+ const { styles } = useListBoxContext();
1561
+ return /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1562
+ as: "li",
1563
+ css: styles.section
1564
+ }, itemProps), section.rendered && /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1565
+ css: styles.sectionTitle
1566
+ }, headingProps), section.rendered), /* @__PURE__ */ import_react43.default.createElement(import_system30.Box, __spreadValues({
1567
+ as: "ul",
1568
+ __baseCSS: { listStyle: "none", p: 0 },
1569
+ css: styles.list
1570
+ }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react43.default.createElement(ListBoxOption, {
1571
+ key: node.key,
1572
+ item: node,
1573
+ state
1574
+ }))));
1575
+ };
1576
+
1577
+ // src/ListBox/ListBox.tsx
1578
+ var ListBox = (0, import_react44.forwardRef)((_a, ref) => {
1579
+ var _b = _a, { state, variant, size } = _b, props = __objRest(_b, ["state", "variant", "size"]);
1580
+ const innerRef = (0, import_utils7.useObjectRef)(ref);
1581
+ const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, innerRef);
1582
+ const styles = (0, import_system31.useComponentStyles)("ListBox", { variant, size }, { parts: ["container", "list", "option", "section", "sectionTitle"] });
1583
+ return /* @__PURE__ */ import_react44.default.createElement(ListBoxContext.Provider, {
1584
+ value: { styles }
1585
+ }, /* @__PURE__ */ import_react44.default.createElement(import_system31.Box, {
1586
+ css: styles.container
1587
+ }, /* @__PURE__ */ import_react44.default.createElement(import_system31.Box, __spreadValues({
1588
+ as: "ul",
1589
+ ref: innerRef,
1590
+ __baseCSS: { listStyle: "none", p: 0 },
1591
+ css: styles.list
1592
+ }, listBoxProps), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react44.default.createElement(ListBoxSection, {
1593
+ key: item.key,
1594
+ section: item,
1595
+ state
1596
+ }) : /* @__PURE__ */ import_react44.default.createElement(ListBoxOption, {
1597
+ key: item.key,
1598
+ item,
1599
+ state
1600
+ })))));
1601
+ });
1602
+
1603
+ // src/Select/intl.ts
1604
+ var messages = {
1605
+ "en-US": {
1606
+ placeholder: "Select an option\u2026"
1607
+ },
1608
+ "de-DE": {
1609
+ placeholder: "Option ausw\xE4hlen\u2026"
1610
+ }
1611
+ };
1612
+
1613
+ // src/Select/Select.tsx
1614
+ var Chevron = ({ css }) => /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, {
1615
+ as: "svg",
1616
+ __baseCSS: { width: 16, height: 16 },
1617
+ css,
1618
+ fill: "none",
1619
+ viewBox: "0 0 24 24",
1620
+ stroke: "currentColor",
1621
+ strokeWidth: 2
1622
+ }, /* @__PURE__ */ import_react45.default.createElement("path", {
1623
+ strokeLinecap: "round",
1624
+ strokeLinejoin: "round",
1625
+ d: "M19 9l-7 7-7-7"
1626
+ }));
1627
+ var Select = (_a) => {
1628
+ var _b = _a, {
1629
+ open,
1630
+ disabled,
1631
+ required,
1632
+ error,
1633
+ variant,
1634
+ size,
1635
+ css
1636
+ } = _b, rest = __objRest(_b, [
1637
+ "open",
1638
+ "disabled",
1639
+ "required",
1640
+ "error",
1641
+ "variant",
1642
+ "size",
1643
+ "css"
1644
+ ]);
1645
+ const formatMessage = (0, import_i18n2.useMessageFormatter)(messages);
1646
+ const props = __spreadValues({
1647
+ isOpen: open,
1648
+ isDisabled: disabled,
1649
+ isRequired: required,
1650
+ validationState: error ? "invalid" : "valid",
1651
+ placeholder: rest.placeholder || formatMessage("placeholder")
1652
+ }, rest);
1653
+ const state = (0, import_select2.useSelectState)(props);
1654
+ const buttonRef = (0, import_react45.useRef)(null);
1655
+ const {
1656
+ labelProps,
1657
+ triggerProps,
1658
+ valueProps,
1659
+ menuProps,
1660
+ descriptionProps,
1661
+ errorMessageProps
1662
+ } = (0, import_select.useSelect)(props, state, buttonRef);
1663
+ const { buttonProps } = (0, import_button4.useButton)(__spreadValues({ isDisabled: disabled }, triggerProps), buttonRef);
1664
+ const { focusProps, isFocusVisible } = (0, import_focus8.useFocusRing)();
1665
+ const overlayRef = (0, import_react45.useRef)(null);
1666
+ const { overlayProps: positionProps } = (0, import_overlays8.useOverlayPosition)({
1667
+ targetRef: buttonRef,
1668
+ overlayRef,
1669
+ isOpen: state.isOpen,
1670
+ placement: "bottom left"
1671
+ });
1672
+ const styles = (0, import_system32.useComponentStyles)("Select", { variant, size }, { parts: ["container", "button", "icon"] });
1673
+ const stateProps = (0, import_system32.useStateProps)({
1674
+ disabled,
1675
+ error,
1676
+ focusVisible: isFocusVisible,
1677
+ expanded: state.isOpen
1678
+ });
1679
+ return /* @__PURE__ */ import_react45.default.createElement(FieldBase, {
1680
+ variant,
1681
+ size,
1682
+ label: props.label,
1683
+ labelProps: __spreadValues({ as: "span" }, labelProps),
1684
+ description: props.description,
1685
+ descriptionProps,
1686
+ error,
1687
+ errorMessage: props.errorMessage,
1688
+ errorMessageProps,
1689
+ stateProps,
1690
+ disabled,
1691
+ required
1692
+ }, /* @__PURE__ */ import_react45.default.createElement(import_select.HiddenSelect, {
1693
+ state,
1694
+ triggerRef: buttonRef,
1695
+ label: props.label,
1696
+ name: props.name,
1697
+ isDisabled: disabled
1698
+ }), /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, __spreadValues(__spreadValues({
1699
+ as: "button",
1700
+ __baseCSS: {
1701
+ display: "flex",
1702
+ position: "relative",
1703
+ alignItems: "center",
1704
+ justifyContent: "space-between",
1705
+ width: "100%"
1706
+ },
1707
+ css: styles.button,
1708
+ ref: buttonRef
1709
+ }, (0, import_utils8.mergeProps)(buttonProps, focusProps)), stateProps), /* @__PURE__ */ import_react45.default.createElement(import_system32.Box, __spreadValues({
1710
+ css: {
1711
+ overflow: "hidden",
1712
+ whiteSpace: "nowrap"
1713
+ }
1714
+ }, valueProps), state.selectedItem ? state.selectedItem.rendered : props.placeholder), /* @__PURE__ */ import_react45.default.createElement(Chevron, {
1715
+ css: styles.icon
1716
+ })), /* @__PURE__ */ import_react45.default.createElement(Popover, __spreadValues({
1717
+ open: state.isOpen,
1718
+ onClose: state.close,
1719
+ dismissable: true,
1720
+ shouldCloseOnBlur: true,
1721
+ minWidth: buttonRef.current ? buttonRef.current.offsetWidth : void 0,
1722
+ ref: overlayRef
1723
+ }, positionProps), /* @__PURE__ */ import_react45.default.createElement(import_focus8.FocusScope, {
1724
+ restoreFocus: true
1725
+ }, /* @__PURE__ */ import_react45.default.createElement(import_overlays8.DismissButton, {
1726
+ onDismiss: state.close
1727
+ }), /* @__PURE__ */ import_react45.default.createElement(ListBox, __spreadValues({
1728
+ state,
1729
+ variant,
1730
+ size
1731
+ }, menuProps)), /* @__PURE__ */ import_react45.default.createElement(import_overlays8.DismissButton, {
1732
+ onDismiss: state.close
1733
+ }))));
1734
+ };
1735
+ Select.Option = import_collections2.Item;
1736
+ Select.Section = import_collections2.Section;
1737
+
1738
+ // src/Slider/Slider.tsx
1739
+ var import_react47 = __toESM(require("react"));
1740
+ var import_slider2 = require("@react-aria/slider");
1741
+ var import_slider3 = require("@react-stately/slider");
1742
+ var import_i18n3 = require("@react-aria/i18n");
1743
+ var import_system34 = require("@marigold/system");
1744
+
1745
+ // src/Slider/Thumb.tsx
1746
+ var import_react46 = __toESM(require("react"));
1747
+ var import_slider = require("@react-aria/slider");
1748
+ var import_utils9 = require("@react-aria/utils");
1749
+ var import_system33 = require("@marigold/system");
1750
+
1751
+ // src/VisuallyHidden/VisuallyHidden.tsx
1752
+ var import_visually_hidden = require("@react-aria/visually-hidden");
1753
+
1754
+ // src/Slider/Thumb.tsx
1755
+ var import_focus9 = require("@react-aria/focus");
1756
+ var Thumb = (_a) => {
1757
+ var _b = _a, { state, trackRef, styles } = _b, props = __objRest(_b, ["state", "trackRef", "styles"]);
1758
+ const { disabled } = props;
1759
+ const inputRef = import_react46.default.useRef(null);
1760
+ const { isFocusVisible, focusProps, isFocused } = (0, import_focus9.useFocusRing)();
1761
+ const focused = isFocused || isFocusVisible || state.isThumbDragging(0);
1762
+ const stateProps = (0, import_system33.useStateProps)({
1763
+ focus: focused,
1764
+ disabled
1765
+ });
1766
+ const { thumbProps, inputProps } = (0, import_slider.useSliderThumb)({
1767
+ index: 0,
1768
+ trackRef,
1769
+ inputRef,
1770
+ isDisabled: disabled
1771
+ }, state);
1772
+ (0, import_react46.useEffect)(() => {
1773
+ state.setThumbEditable(0, !disabled);
1774
+ }, [disabled, state]);
1775
+ return /* @__PURE__ */ import_react46.default.createElement(import_system.Box, {
1776
+ __baseCSS: {
1777
+ position: "absolute",
1778
+ top: 16,
1779
+ transform: "translateX(-50%)",
1780
+ left: `${state.getThumbPercent(0) * 100}%`
1781
+ }
1782
+ }, /* @__PURE__ */ import_react46.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({}, thumbProps), {
1783
+ __baseCSS: styles
1784
+ }), stateProps), /* @__PURE__ */ import_react46.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react46.default.createElement(import_system.Box, __spreadValues({
1785
+ as: "input",
1786
+ type: "range",
1787
+ ref: inputRef
1788
+ }, (0, import_utils9.mergeProps)(inputProps, focusProps))))));
1789
+ };
1790
+
1791
+ // src/Slider/Slider.tsx
1792
+ var Slider = (_a) => {
1793
+ var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
1794
+ const { formatOptions } = props;
1795
+ const trackRef = (0, import_react47.useRef)(null);
1796
+ const numberFormatter = (0, import_i18n3.useNumberFormatter)(formatOptions);
1797
+ const state = (0, import_slider3.useSliderState)(__spreadProps(__spreadValues({}, props), { numberFormatter }));
1798
+ const { groupProps, trackProps, labelProps, outputProps } = (0, import_slider2.useSlider)(__spreadValues({
1799
+ label: props.children
1800
+ }, props), state, trackRef);
1801
+ const styles = (0, import_system34.useComponentStyles)("Slider", { variant, size }, { parts: ["track", "thumb", "label", "output"] });
1802
+ return /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadValues({
1803
+ __baseCSS: {
1804
+ display: "flex",
1805
+ flexDirection: "column",
1806
+ touchAction: "none"
1807
+ }
1808
+ }, groupProps), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, {
1809
+ __baseCSS: { display: "flex", alignSelf: "stretch" }
1810
+ }, props.children && /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadValues({
1811
+ as: "label",
1812
+ __baseCSS: styles.label
1813
+ }, labelProps), props.children), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1814
+ as: "output"
1815
+ }, outputProps), {
1816
+ __baseCSS: { flex: "1 0 auto", textAlign: "end" },
1817
+ css: styles.output
1818
+ }), state.getThumbValueLabel(0))), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, trackProps), {
1819
+ ref: trackRef,
1820
+ __baseCSS: {
1821
+ position: "relative",
1822
+ height: 32,
1823
+ width: "100%",
1824
+ cursor: props.disabled ? "not-allowed" : "pointer"
1825
+ }
1826
+ }), /* @__PURE__ */ import_react47.default.createElement(import_system.Box, {
1827
+ __baseCSS: styles.track
1828
+ }), /* @__PURE__ */ import_react47.default.createElement(Thumb, {
1829
+ state,
1830
+ trackRef,
1831
+ disabled: props.disabled,
1832
+ styles: styles.thumb
1833
+ })));
1834
+ };
1835
+
1836
+ // src/Stack/Stack.tsx
1837
+ var import_react48 = __toESM(require("react"));
1838
+ var ALIGNMENT3 = {
1839
+ left: "flex-start",
1840
+ center: "center",
1841
+ right: "flex-end"
1842
+ };
1843
+ var Stack = (_a) => {
1844
+ var _b = _a, {
1845
+ space = "none",
1846
+ align = "left",
1847
+ children
1848
+ } = _b, props = __objRest(_b, [
1849
+ "space",
1850
+ "align",
1851
+ "children"
1852
+ ]);
1853
+ return /* @__PURE__ */ import_react48.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1854
+ display: "flex",
1855
+ flexDirection: "column",
1856
+ alignItems: ALIGNMENT3[align],
1857
+ p: "0",
1858
+ css: { gap: space }
1859
+ }), children);
1860
+ };
1861
+
1862
+ // src/Switch/Switch.tsx
1863
+ var import_react49 = __toESM(require("react"));
1864
+ var import_focus10 = require("@react-aria/focus");
1865
+ var import_switch = require("@react-aria/switch");
1866
+ var import_toggle2 = require("@react-stately/toggle");
1867
+ var import_system35 = require("@marigold/system");
1868
+ var Switch = (_a) => {
1869
+ var _b = _a, {
1870
+ variant,
1871
+ size,
1872
+ checked,
1873
+ disabled,
1874
+ readOnly,
1875
+ defaultChecked
1876
+ } = _b, rest = __objRest(_b, [
1877
+ "variant",
1878
+ "size",
1879
+ "checked",
1880
+ "disabled",
1881
+ "readOnly",
1882
+ "defaultChecked"
1883
+ ]);
1884
+ const ref = (0, import_react49.useRef)(null);
1885
+ const props = __spreadValues({
1886
+ isSelected: checked,
1887
+ isDisabled: disabled,
1888
+ isReadOnly: readOnly,
1889
+ defaultSelected: defaultChecked
1890
+ }, rest);
1891
+ const state = (0, import_toggle2.useToggleState)(props);
1892
+ const { inputProps } = (0, import_switch.useSwitch)(props, state, ref);
1893
+ const { isFocusVisible, focusProps } = (0, import_focus10.useFocusRing)();
1894
+ const stateProps = (0, import_system35.useStateProps)({
1895
+ checked: state.isSelected,
1896
+ disabled,
1897
+ readOnly,
1898
+ focus: isFocusVisible
1899
+ });
1900
+ const styles = (0, import_system35.useComponentStyles)("Switch", { variant, size }, { parts: ["container", "label", "track", "thumb"] });
1901
+ return /* @__PURE__ */ import_react49.default.createElement(import_system.Box, {
1902
+ as: "label",
1903
+ __baseCSS: {
1904
+ display: "flex",
1905
+ alignItems: "center",
1906
+ justifyContent: "space-between",
1907
+ gap: "1ch",
1908
+ position: "relative"
1909
+ },
1910
+ css: styles.container
1911
+ }, /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1912
+ as: "input",
1913
+ ref,
1914
+ css: {
1915
+ position: "absolute",
1916
+ width: "100%",
1917
+ height: "100%",
1918
+ top: 0,
1919
+ left: 0,
1920
+ zIndex: 1,
1921
+ opacity: 1e-4,
1922
+ cursor: inputProps.disabled ? "not-allowed" : "pointer"
1923
+ }
1924
+ }, inputProps), focusProps)), props.children && /* @__PURE__ */ import_react49.default.createElement(import_system.Box, {
1925
+ css: styles.label
1926
+ }, props.children), /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues({
1927
+ __baseCSS: {
1928
+ position: "relative",
1929
+ width: 48,
1930
+ height: 24,
1931
+ bg: "#dee2e6",
1932
+ borderRadius: 20
1933
+ },
1934
+ css: styles.track
1935
+ }, stateProps), /* @__PURE__ */ import_react49.default.createElement(import_system.Box, __spreadValues({
1936
+ __baseCSS: {
1937
+ display: "block",
1938
+ position: "absolute",
1939
+ top: 1,
1940
+ left: 0,
1941
+ willChange: "transform",
1942
+ transform: "translateX(1px)",
1943
+ transition: "all 0.1s cubic-bezier(.7, 0, .3, 1)",
1944
+ height: 22,
1945
+ width: 22,
1946
+ borderRadius: 9999,
1947
+ bg: "#fff",
1948
+ "&:checked": {
1949
+ transform: "translateX(calc(47px - 100%))"
1950
+ }
1951
+ },
1952
+ css: styles.thumb
1953
+ }, stateProps))));
1954
+ };
1955
+
1956
+ // src/Table/Table.tsx
1957
+ var import_react56 = __toESM(require("react"));
1958
+ var import_table6 = require("@react-aria/table");
1959
+ var import_table7 = require("@react-stately/table");
1960
+ var import_system41 = require("@marigold/system");
961
1961
 
962
- // src/Radio/RadioIcon.tsx
963
- var import_react27 = __toESM(require("react"));
964
- var import_system6 = require("@marigold/system");
965
- var RadioIcon = ({
966
- variant = "",
967
- checked = false,
968
- disabled = false,
969
- error = false
1962
+ // src/Table/TableCell.tsx
1963
+ var import_react50 = __toESM(require("react"));
1964
+ var import_checkbox4 = require("@react-aria/checkbox");
1965
+ var import_focus11 = require("@react-aria/focus");
1966
+ var import_table = require("@react-aria/table");
1967
+ var import_utils10 = require("@react-aria/utils");
1968
+ var import_toggle3 = require("@react-stately/toggle");
1969
+ var import_system36 = require("@marigold/system");
1970
+ var TableCell = ({
1971
+ item: cell,
1972
+ state,
1973
+ isSelectionCell,
1974
+ css
970
1975
  }) => {
971
- const conditionalStates = disabled ? {
972
- disabled
973
- } : {
974
- checked,
975
- error
976
- };
977
- return /* @__PURE__ */ import_react27.default.createElement(import_system6.SVG, {
978
- width: "16",
979
- height: "32",
980
- viewBox: "0 0 16 32",
981
- fill: "none",
982
- "aria-hidden": "true"
983
- }, /* @__PURE__ */ import_react27.default.createElement(import_system.Box, {
984
- variant: (0, import_system6.conditional)(`radio.${variant}`, conditionalStates),
985
- as: "circle",
986
- cx: "8",
987
- cy: "16",
988
- r: "7.5"
989
- }), checked && /* @__PURE__ */ import_react27.default.createElement("circle", {
990
- fill: "white",
991
- cx: "8",
992
- cy: "16",
993
- r: "3"
994
- }));
1976
+ const cellRef = (0, import_react50.useRef)(null);
1977
+ const { gridCellProps } = (0, import_table.useTableCell)({ node: cell }, state, cellRef);
1978
+ const { checkboxProps } = (0, import_table.useTableSelectionCheckbox)({ key: cell.parentKey }, state);
1979
+ const inputRef = (0, import_react50.useRef)(null);
1980
+ const { inputProps } = (0, import_checkbox4.useCheckbox)(checkboxProps, (0, import_toggle3.useToggleState)(checkboxProps), inputRef);
1981
+ const { focusProps, isFocusVisible } = (0, import_focus11.useFocusRing)();
1982
+ const stateProps = (0, import_system36.useStateProps)({ focus: isFocusVisible });
1983
+ return /* @__PURE__ */ import_react50.default.createElement(import_system.Box, __spreadValues(__spreadValues({
1984
+ as: "td",
1985
+ ref: cellRef,
1986
+ __baseCSS: {
1987
+ textAlign: isSelectionCell ? "center" : "left"
1988
+ },
1989
+ css
1990
+ }, (0, import_utils10.mergeProps)(gridCellProps, focusProps)), stateProps), isSelectionCell ? /* @__PURE__ */ import_react50.default.createElement("input", __spreadValues({}, inputProps)) : /* @__PURE__ */ import_react50.default.createElement(import_react50.default.Fragment, null, cell.rendered));
995
1991
  };
996
1992
 
997
- // src/Radio/Radio.tsx
998
- var RadioInput = (_a) => {
999
- var _b = _a, { error } = _b, props = __objRest(_b, ["error"]);
1000
- const { focusProps } = (0, import_focus3.useFocusRing)();
1001
- const _a2 = props, { children } = _a2, restProps = __objRest(_a2, ["children"]);
1002
- return /* @__PURE__ */ import_react28.default.createElement(import_system.Box, {
1003
- pr: "xsmall"
1004
- }, /* @__PURE__ */ import_react28.default.createElement(import_visually_hidden3.VisuallyHidden, null, /* @__PURE__ */ import_react28.default.createElement("input", __spreadValues(__spreadValues({
1005
- type: "radio",
1006
- disabled: props.disabled
1007
- }, focusProps), restProps))), /* @__PURE__ */ import_react28.default.createElement(RadioIcon, {
1008
- variant: props.variant,
1009
- disabled: props.disabled,
1010
- checked: props.checked,
1011
- error
1012
- }));
1013
- };
1014
- var Radio = (_a) => {
1993
+ // src/Table/TableColumnHeader.tsx
1994
+ var import_react52 = __toESM(require("react"));
1995
+ var import_checkbox5 = require("@react-aria/checkbox");
1996
+ var import_focus12 = require("@react-aria/focus");
1997
+ var import_table2 = require("@react-aria/table");
1998
+ var import_utils11 = require("@react-aria/utils");
1999
+ var import_toggle4 = require("@react-stately/toggle");
2000
+ var import_system39 = require("@marigold/system");
2001
+
2002
+ // src/Text/Text.tsx
2003
+ var import_react51 = __toESM(require("react"));
2004
+ var import_system37 = require("@marigold/system");
2005
+ var import_system38 = require("@marigold/system");
2006
+ var Text = (_a) => {
1015
2007
  var _b = _a, {
1016
- required,
1017
- labelVariant = "inline",
1018
- errorMessage
2008
+ variant,
2009
+ size,
2010
+ align,
2011
+ color,
2012
+ fontSize,
2013
+ cursor,
2014
+ outline,
2015
+ children
1019
2016
  } = _b, props = __objRest(_b, [
1020
- "required",
1021
- "labelVariant",
1022
- "errorMessage"
2017
+ "variant",
2018
+ "size",
2019
+ "align",
2020
+ "color",
2021
+ "fontSize",
2022
+ "cursor",
2023
+ "outline",
2024
+ "children"
1023
2025
  ]);
1024
- return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(import_system.Box, {
1025
- as: Label,
1026
- htmlFor: props.id,
1027
- required,
1028
- variant: `label.${labelVariant}`,
1029
- css: props.disabled ? { color: "disabled", ":hover": { cursor: "not-allowed" } } : { color: "text", ":hover": { cursor: "pointer" } }
1030
- }, /* @__PURE__ */ import_react28.default.createElement(import_system.Box, __spreadValues({
1031
- as: RadioInput,
1032
- error: props.error
1033
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react28.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react28.default.createElement(import_icons6.Exclamation, {
1034
- size: 16
1035
- }), errorMessage));
2026
+ const styles = (0, import_system37.useComponentStyles)("Text", {
2027
+ variant,
2028
+ size
2029
+ });
2030
+ return /* @__PURE__ */ import_react51.default.createElement(import_system38.Box, __spreadProps(__spreadValues({
2031
+ as: "p"
2032
+ }, props), {
2033
+ css: __spreadValues({ color, cursor, outline, fontSize, textAlign: align }, styles)
2034
+ }), children);
1036
2035
  };
1037
2036
 
1038
- // src/Select/Select.tsx
1039
- var import_react33 = __toESM(require("react"));
1040
- var import_select = require("@react-stately/select");
1041
- var import_button3 = require("@react-aria/button");
1042
- var import_utils3 = require("@react-aria/utils");
1043
- var import_focus5 = require("@react-aria/focus");
1044
- var import_select2 = require("@react-aria/select");
1045
- var import_overlays6 = require("@react-stately/overlays");
1046
- var import_overlays7 = require("@react-aria/overlays");
1047
- var import_icons7 = require("@marigold/icons");
2037
+ // src/Table/TableColumnHeader.tsx
2038
+ var TableColumnHeader = ({
2039
+ item: column,
2040
+ state,
2041
+ isSelectionColumn,
2042
+ css
2043
+ }) => {
2044
+ const ref = (0, import_react52.useRef)(null);
2045
+ const { columnHeaderProps } = (0, import_table2.useTableColumnHeader)({ node: column }, state, ref);
2046
+ const { checkboxProps } = (0, import_table2.useTableSelectAllCheckbox)(state);
2047
+ const inputRef = (0, import_react52.useRef)(null);
2048
+ const { inputProps } = (0, import_checkbox5.useCheckbox)(checkboxProps, (0, import_toggle4.useToggleState)(checkboxProps), inputRef);
2049
+ const { focusProps, isFocusVisible } = (0, import_focus12.useFocusRing)();
2050
+ const stateProps = (0, import_system39.useStateProps)({ focus: isFocusVisible });
2051
+ return /* @__PURE__ */ import_react52.default.createElement(import_system.Box, __spreadValues(__spreadValues({
2052
+ as: "th",
2053
+ ref,
2054
+ __baseCSS: { textAlign: isSelectionColumn ? "center" : "left" },
2055
+ css
2056
+ }, (0, import_utils11.mergeProps)(columnHeaderProps, focusProps)), stateProps), isSelectionColumn ? /* @__PURE__ */ import_react52.default.createElement("input", __spreadProps(__spreadValues({}, inputProps), {
2057
+ ref: inputRef
2058
+ })) : /* @__PURE__ */ import_react52.default.createElement(Text, {
2059
+ size: "xxsmall"
2060
+ }, column.rendered));
2061
+ };
1048
2062
 
1049
- // src/Select/ListBox.tsx
1050
- var import_react31 = __toESM(require("react"));
1051
- var import_listbox3 = require("@react-aria/listbox");
2063
+ // src/Table/TableHeaderRow.tsx
2064
+ var import_react53 = __toESM(require("react"));
2065
+ var import_table3 = require("@react-aria/table");
2066
+ var TableHeaderRow = ({
2067
+ item,
2068
+ state,
2069
+ children
2070
+ }) => {
2071
+ const ref = (0, import_react53.useRef)(null);
2072
+ const { rowProps } = (0, import_table3.useTableHeaderRow)({ node: item }, state, ref);
2073
+ return /* @__PURE__ */ import_react53.default.createElement("tr", __spreadProps(__spreadValues({}, rowProps), {
2074
+ ref
2075
+ }), children);
2076
+ };
1052
2077
 
1053
- // src/Select/Option.tsx
1054
- var import_react29 = __toESM(require("react"));
1055
- var import_listbox = require("@react-aria/listbox");
1056
- var Option = ({ item, state }) => {
1057
- const ref = (0, import_react29.useRef)(null);
1058
- const [disabled, setDisabled] = (0, import_react29.useState)(false);
1059
- const { optionProps, isSelected } = (0, import_listbox.useOption)({
1060
- key: item.key
2078
+ // src/Table/TableRow.tsx
2079
+ var import_react54 = __toESM(require("react"));
2080
+ var import_focus13 = require("@react-aria/focus");
2081
+ var import_table4 = require("@react-aria/table");
2082
+ var import_utils12 = require("@react-aria/utils");
2083
+ var import_system40 = require("@marigold/system");
2084
+ var TableRow = ({ item, state, children, css }) => {
2085
+ const ref = (0, import_react54.useRef)(null);
2086
+ const isSelected = state.selectionManager.isSelected(item.key);
2087
+ const { rowProps } = (0, import_table4.useTableRow)({
2088
+ node: item
1061
2089
  }, state, ref);
1062
- (0, import_react29.useEffect)(() => {
1063
- for (const key of state.disabledKeys.values()) {
1064
- if (key === item.key) {
1065
- setDisabled(true);
1066
- }
1067
- }
1068
- }, [state.disabledKeys, item.key]);
1069
- return /* @__PURE__ */ import_react29.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1070
- as: "li"
1071
- }, optionProps), {
2090
+ const { focusProps, isFocusVisible } = (0, import_focus13.useFocusRing)();
2091
+ const stateProps = (0, import_system40.useStateProps)({
2092
+ focus: isFocusVisible,
2093
+ checked: isSelected
2094
+ });
2095
+ return /* @__PURE__ */ import_react54.default.createElement(import_system.Box, __spreadValues(__spreadValues({
2096
+ as: "tr",
1072
2097
  ref,
1073
- variant: isSelected ? "select.option.selected" : disabled ? "select.option.disabled" : "select.option"
1074
- }), item.rendered);
2098
+ css
2099
+ }, (0, import_utils12.mergeProps)(rowProps, focusProps)), stateProps), children);
1075
2100
  };
1076
2101
 
1077
- // src/Select/ListBoxSection.tsx
1078
- var import_react30 = __toESM(require("react"));
1079
- var import_listbox2 = require("@react-aria/listbox");
1080
- var ListBoxSection = ({ section, state }) => {
1081
- const { itemProps, headingProps, groupProps } = (0, import_listbox2.useListBoxSection)({
1082
- heading: section.rendered,
1083
- "aria-label": section["aria-label"]
1084
- });
1085
- return /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1086
- as: "li"
1087
- }, itemProps), {
1088
- css: {
1089
- cursor: "not-allowed"
1090
- }
1091
- }), section.rendered && /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1092
- as: "span"
1093
- }, headingProps), {
1094
- variant: "select.section"
1095
- }), section.rendered), /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadValues({
1096
- as: "ul"
1097
- }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react30.default.createElement(Option, {
1098
- key: node.key,
1099
- item: node,
1100
- state
1101
- }))));
2102
+ // src/Table/TableRowGroup.tsx
2103
+ var import_react55 = __toESM(require("react"));
2104
+ var import_table5 = require("@react-aria/table");
2105
+ var TableRowGroup = ({
2106
+ as: Element,
2107
+ children
2108
+ }) => {
2109
+ const { rowGroupProps } = (0, import_table5.useTableRowGroup)();
2110
+ return /* @__PURE__ */ import_react55.default.createElement(Element, __spreadValues({}, rowGroupProps), children);
1102
2111
  };
1103
2112
 
1104
- // src/Select/ListBox.tsx
1105
- var ListBox = (props) => {
1106
- const ref = (0, import_react31.useRef)(null);
1107
- const { state, error } = props;
1108
- const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, ref);
1109
- return /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1110
- as: "ul",
1111
- p: "none",
1112
- css: {
1113
- listStyle: "none"
1114
- }
1115
- }, listBoxProps), {
1116
- variant: error ? "select.listbox.error" : "select.listbox",
1117
- ref
1118
- }), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react31.default.createElement(ListBoxSection, {
1119
- key: item.key,
1120
- section: item,
2113
+ // src/Table/Table.tsx
2114
+ var Table = (_a) => {
2115
+ var _b = _a, { variant, size } = _b, props = __objRest(_b, ["variant", "size"]);
2116
+ const showSelectionCheckboxes = props.selectionMode === "multiple" && props.selectionBehavior !== "replace";
2117
+ const state = (0, import_table7.useTableState)(__spreadProps(__spreadValues({}, props), {
2118
+ showSelectionCheckboxes
2119
+ }));
2120
+ const ref = (0, import_react56.useRef)(null);
2121
+ const { gridProps } = (0, import_table6.useTable)(props, state, ref);
2122
+ const styles = (0, import_system41.useComponentStyles)("Table", { variant, size }, { parts: ["table", "header", "row", "cell"] });
2123
+ return /* @__PURE__ */ import_react56.default.createElement(import_system.Box, __spreadValues({
2124
+ as: "table",
2125
+ ref,
2126
+ __baseCSS: styles.table
2127
+ }, gridProps), /* @__PURE__ */ import_react56.default.createElement(TableRowGroup, {
2128
+ as: "thead"
2129
+ }, state.collection.headerRows.map((headerRow) => /* @__PURE__ */ import_react56.default.createElement(TableHeaderRow, {
2130
+ key: headerRow.key,
2131
+ item: headerRow,
1121
2132
  state
1122
- }) : /* @__PURE__ */ import_react31.default.createElement(Option, {
1123
- key: item.key,
1124
- item,
2133
+ }, [...headerRow.childNodes].map((column) => /* @__PURE__ */ import_react56.default.createElement(TableColumnHeader, {
2134
+ key: column.key,
2135
+ item: column,
2136
+ state,
2137
+ isSelectionColumn: column.props.isSelectionCell,
2138
+ css: styles.header
2139
+ }))))), /* @__PURE__ */ import_react56.default.createElement(TableRowGroup, {
2140
+ as: "tbody"
2141
+ }, [...state.collection.body.childNodes].map((row) => /* @__PURE__ */ import_react56.default.createElement(TableRow, {
2142
+ css: styles.row,
2143
+ key: row.key,
2144
+ item: row,
1125
2145
  state
1126
- })));
2146
+ }, [...row.childNodes].map((cell) => /* @__PURE__ */ import_react56.default.createElement(TableCell, {
2147
+ key: cell.key,
2148
+ item: cell,
2149
+ state,
2150
+ isSelectionCell: cell.props.isSelectionCell,
2151
+ css: styles.cell
2152
+ }))))));
1127
2153
  };
2154
+ Table.Body = import_table7.TableBody;
2155
+ Table.Cell = import_table7.Cell;
2156
+ Table.Column = import_table7.Column;
2157
+ Table.Header = import_table7.TableHeader;
2158
+ Table.Row = import_table7.Row;
1128
2159
 
1129
- // src/Select/Popover.tsx
1130
- var import_react32 = __toESM(require("react"));
1131
- var import_focus4 = require("@react-aria/focus");
1132
- var import_overlays5 = require("@react-aria/overlays");
1133
- var import_utils2 = require("@react-aria/utils");
1134
- var Popover = (0, import_react32.forwardRef)((_a, ref) => {
1135
- var _b = _a, { children, className, isOpen, onClose } = _b, otherProps = __objRest(_b, ["children", "className", "isOpen", "onClose"]);
1136
- const { overlayProps } = (0, import_overlays5.useOverlay)({
1137
- isOpen,
1138
- onClose,
1139
- shouldCloseOnBlur: true,
1140
- isDismissable: true
1141
- }, ref);
1142
- const { modalProps } = (0, import_overlays5.useModal)();
1143
- return /* @__PURE__ */ import_react32.default.createElement(import_overlays5.OverlayContainer, null, /* @__PURE__ */ import_react32.default.createElement(import_focus4.FocusScope, {
1144
- restoreFocus: true
1145
- }, /* @__PURE__ */ import_react32.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, (0, import_utils2.mergeProps)(overlayProps, otherProps, modalProps)), {
1146
- className,
1147
- ref
1148
- }), children, /* @__PURE__ */ import_react32.default.createElement(import_overlays5.DismissButton, {
1149
- onDismiss: onClose
1150
- }))));
1151
- });
1152
-
1153
- // src/Select/Select.tsx
1154
- var Select = (_a) => {
2160
+ // src/TextArea/TextArea.tsx
2161
+ var import_react57 = __toESM(require("react"));
2162
+ var import_textfield = require("@react-aria/textfield");
2163
+ var import_system42 = require("@marigold/system");
2164
+ var import_interactions7 = require("@react-aria/interactions");
2165
+ var import_focus14 = require("@react-aria/focus");
2166
+ var TextArea = (_a) => {
1155
2167
  var _b = _a, {
1156
- labelVariant = "above",
1157
- placeholder = "Select an option",
1158
2168
  disabled,
1159
2169
  required,
2170
+ readOnly,
1160
2171
  error,
1161
- errorMessage,
1162
- width,
1163
- className
2172
+ variant,
2173
+ size
1164
2174
  } = _b, props = __objRest(_b, [
1165
- "labelVariant",
1166
- "placeholder",
1167
2175
  "disabled",
1168
2176
  "required",
2177
+ "readOnly",
1169
2178
  "error",
1170
- "errorMessage",
1171
- "width",
1172
- "className"
1173
- ]);
1174
- const state = (0, import_select.useSelectState)(props);
1175
- const overlayTriggerState = (0, import_overlays6.useOverlayTriggerState)({});
1176
- const triggerRef = (0, import_react33.useRef)();
1177
- const overlayRef = (0, import_react33.useRef)();
1178
- const { overlayProps } = (0, import_overlays7.useOverlayTrigger)({ type: "listbox" }, overlayTriggerState, triggerRef);
1179
- const { overlayProps: positionProps } = (0, import_overlays7.useOverlayPosition)({
1180
- targetRef: triggerRef,
1181
- overlayRef,
1182
- placement: "bottom",
1183
- shouldFlip: false,
1184
- isOpen: state.isOpen,
1185
- onClose: state.close
1186
- });
1187
- const { labelProps, triggerProps, valueProps, menuProps } = (0, import_select2.useSelect)(props, state, triggerRef);
1188
- const { buttonProps } = (0, import_button3.useButton)(triggerProps, triggerRef);
1189
- const { focusProps } = (0, import_focus5.useFocusRing)();
1190
- return /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1191
- position: "relative",
1192
- display: "inline-block",
1193
- width: width && width
1194
- }, props.label && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react33.default.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
1195
- htmlFor: labelProps.id,
1196
- variant: labelVariant
1197
- }), required ? /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1198
- as: "span",
1199
- display: "inline-flex",
1200
- alignItems: "center"
1201
- }, props.label, /* @__PURE__ */ import_react33.default.createElement(import_icons7.Required, {
1202
- size: 16,
1203
- fill: "error"
1204
- })) : props.label)), /* @__PURE__ */ import_react33.default.createElement(import_select2.HiddenSelect, {
1205
- state,
1206
- triggerRef,
1207
- label: props.label,
1208
- name: props.name,
1209
- isDisabled: disabled
1210
- }), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1211
- as: "button"
1212
- }, (0, import_utils3.mergeProps)(buttonProps, focusProps)), {
1213
- ref: triggerRef,
1214
- variant: error && state.isOpen && !disabled ? "button.select.errorOpened" : error ? "button.select.error" : state.isOpen && !disabled ? "button.select.open" : "button.select",
1215
- disabled,
1216
- className
1217
- }), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1218
- as: "span"
1219
- }, valueProps), {
1220
- variant: disabled ? "select.disabled" : "select"
1221
- }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? /* @__PURE__ */ import_react33.default.createElement(import_icons7.ArrowUp, {
1222
- size: 16,
1223
- fill: "text"
1224
- }) : /* @__PURE__ */ import_react33.default.createElement(import_icons7.ArrowDown, {
1225
- size: 16,
1226
- fill: disabled ? "disabled" : "text"
1227
- })), state.isOpen && !disabled && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({
1228
- as: Popover
1229
- }, overlayProps), positionProps), {
1230
- css: {
1231
- width: triggerRef.current && triggerRef.current.offsetWidth + "px"
1232
- },
1233
- ref: overlayRef,
1234
- isOpen: state.isOpen,
1235
- onClose: state.close
1236
- }), /* @__PURE__ */ import_react33.default.createElement(ListBox, __spreadProps(__spreadValues({
1237
- error
1238
- }, menuProps), {
1239
- state
1240
- }))), error && errorMessage && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1241
- as: "span",
1242
- display: "inline-flex",
1243
- alignItems: "center"
1244
- }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1245
- as: import_icons7.Exclamation,
1246
- size: 16,
1247
- css: { color: "error" }
1248
- }), /* @__PURE__ */ import_react33.default.createElement(ValidationMessage, null, errorMessage)));
1249
- };
1250
-
1251
- // src/Slider/Slider.tsx
1252
- var import_react34 = __toESM(require("react"));
1253
- var Slider = (_a) => {
1254
- var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
1255
- return /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadValues({
1256
- as: "input",
1257
- type: "range",
1258
- css: { verticalAlign: "middle" },
1259
- variant: `slider.${variant}`
1260
- }, props));
1261
- };
1262
-
1263
- // src/Switch/Switch.tsx
1264
- var import_react35 = __toESM(require("react"));
1265
- var import_focus6 = require("@react-aria/focus");
1266
- var import_switch = require("@react-aria/switch");
1267
- var import_visually_hidden4 = require("@react-aria/visually-hidden");
1268
- var import_toggle2 = require("@react-stately/toggle");
1269
- var import_system7 = require("@marigold/system");
1270
- var Switch = (_a) => {
1271
- var _b = _a, {
1272
- variant = "",
1273
- labelVariant = "above",
1274
- disabled
1275
- } = _b, props = __objRest(_b, [
1276
2179
  "variant",
1277
- "labelVariant",
1278
- "disabled"
2180
+ "size"
1279
2181
  ]);
1280
- const state = (0, import_toggle2.useToggleState)(props);
1281
- const ref = (0, import_react35.useRef)();
1282
- const { inputProps } = (0, import_switch.useSwitch)(props, state, ref);
1283
- const { focusProps } = (0, import_focus6.useFocusRing)();
1284
- return /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1285
- as: Label,
1286
- __baseCSS: {
1287
- userSelect: "none"
1288
- },
1289
- variant: labelVariant
1290
- }, props.children, /* @__PURE__ */ import_react35.default.createElement(import_visually_hidden4.VisuallyHidden, null, /* @__PURE__ */ import_react35.default.createElement("input", __spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
2182
+ const { label, description, errorMessage } = props;
2183
+ const ref = (0, import_react57.useRef)(null);
2184
+ const { labelProps, inputProps, descriptionProps, errorMessageProps } = (0, import_textfield.useTextField)(__spreadValues({
2185
+ inputElementType: "textarea",
2186
+ isDisabled: disabled,
2187
+ isRequired: required,
2188
+ isReadOnly: readOnly,
2189
+ validationState: error ? "invalid" : "valid"
2190
+ }, props), ref);
2191
+ const { hoverProps, isHovered } = (0, import_interactions7.useHover)({});
2192
+ const { focusProps, isFocusVisible } = (0, import_focus14.useFocusRing)();
2193
+ const stateProps = (0, import_system42.useStateProps)({
2194
+ hover: isHovered,
2195
+ focus: isFocusVisible,
1291
2196
  disabled,
2197
+ readOnly,
2198
+ error
2199
+ });
2200
+ const styles = (0, import_system42.useComponentStyles)("TextArea", { variant, size });
2201
+ return /* @__PURE__ */ import_react57.default.createElement(FieldBase, {
2202
+ label,
2203
+ labelProps,
2204
+ required,
2205
+ description,
2206
+ descriptionProps,
2207
+ error,
2208
+ errorMessage,
2209
+ errorMessageProps,
2210
+ stateProps,
2211
+ variant,
2212
+ size
2213
+ }, /* @__PURE__ */ import_react57.default.createElement(import_system42.Box, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
2214
+ as: "textarea",
2215
+ css: styles,
1292
2216
  ref
1293
- }))), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1294
- as: "svg",
1295
- __baseCSS: {
1296
- cursor: disabled ? "not-allowed" : "pointer",
1297
- width: 56,
1298
- height: 32
1299
- },
1300
- "aria-hidden": "true"
1301
- }, /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1302
- as: "rect",
1303
- __baseCSS: {
1304
- x: 4,
1305
- y: 4,
1306
- rx: 12,
1307
- width: 48,
1308
- height: 24
1309
- },
1310
- variant: (0, import_system7.conditional)(`switch.${variant}`, {
1311
- checked: state.isSelected,
1312
- disabled
1313
- })
1314
- }), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1315
- as: "circle",
1316
- __baseCSS: {
1317
- boxShadow: "1px 1px 4px rgba(0, 0, 0, 0.25)",
1318
- cx: state.isSelected ? 40 : 16,
1319
- cy: 16,
1320
- r: 11,
1321
- fill: disabled ? "gray20" : "gray00"
1322
- }
1323
- })));
2217
+ }, inputProps), focusProps), hoverProps), stateProps)));
1324
2218
  };
1325
2219
 
1326
- // src/Textarea/Textarea.tsx
1327
- var import_react36 = __toESM(require("react"));
2220
+ // src/TextField/TextField.tsx
2221
+ var import_react58 = __toESM(require("react"));
2222
+ var import_interactions8 = require("@react-aria/interactions");
2223
+ var import_focus15 = require("@react-aria/focus");
1328
2224
  var import_textfield2 = require("@react-aria/textfield");
1329
- var import_icons8 = require("@marigold/icons");
1330
- var Textarea = (_a) => {
2225
+ var import_system43 = require("@marigold/system");
2226
+ var TextField = (_a) => {
1331
2227
  var _b = _a, {
1332
- variant = "",
1333
- htmlFor,
1334
- error,
1335
- errorMessage,
2228
+ disabled,
1336
2229
  required,
1337
- children
2230
+ readOnly,
2231
+ error,
2232
+ variant,
2233
+ size
1338
2234
  } = _b, props = __objRest(_b, [
1339
- "variant",
1340
- "htmlFor",
1341
- "error",
1342
- "errorMessage",
2235
+ "disabled",
1343
2236
  "required",
1344
- "children"
2237
+ "readOnly",
2238
+ "error",
2239
+ "variant",
2240
+ "size"
1345
2241
  ]);
1346
- const ref = (0, import_react36.useRef)(null);
1347
- const { labelProps, inputProps, errorMessageProps } = (0, import_textfield2.useTextField)(__spreadProps(__spreadValues({}, props), {
1348
- inputElementType: "textarea"
1349
- }), ref);
1350
- return /* @__PURE__ */ import_react36.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react36.default.createElement(Label, __spreadValues({
1351
- htmlFor,
1352
- required
1353
- }, labelProps), props.label), /* @__PURE__ */ import_react36.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
1354
- as: "textarea",
1355
- variant: `textarea.${variant}`,
1356
- css: {
1357
- outlineColor: error && "error"
1358
- }
1359
- }, inputProps), {
1360
- ref
1361
- }), props)), error && errorMessage && /* @__PURE__ */ import_react36.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react36.default.createElement(import_icons8.Exclamation, {
1362
- size: 16
1363
- }), errorMessage));
2242
+ const { label, description, errorMessage, autoFocus } = props;
2243
+ const ref = (0, import_react58.useRef)(null);
2244
+ const { labelProps, inputProps, descriptionProps, errorMessageProps } = (0, import_textfield2.useTextField)(__spreadValues({
2245
+ isDisabled: disabled,
2246
+ isRequired: required,
2247
+ isReadOnly: readOnly,
2248
+ validationState: error ? "invalid" : "valid"
2249
+ }, props), ref);
2250
+ const { hoverProps, isHovered } = (0, import_interactions8.useHover)({});
2251
+ const { focusProps, isFocusVisible } = (0, import_focus15.useFocusRing)({
2252
+ isTextInput: true,
2253
+ autoFocus
2254
+ });
2255
+ const stateProps = (0, import_system43.useStateProps)({
2256
+ hover: isHovered,
2257
+ focus: isFocusVisible,
2258
+ disabled,
2259
+ readOnly,
2260
+ error
2261
+ });
2262
+ return /* @__PURE__ */ import_react58.default.createElement(FieldBase, {
2263
+ label,
2264
+ labelProps,
2265
+ required,
2266
+ description,
2267
+ descriptionProps,
2268
+ error,
2269
+ errorMessage,
2270
+ errorMessageProps,
2271
+ stateProps,
2272
+ variant,
2273
+ size
2274
+ }, /* @__PURE__ */ import_react58.default.createElement(Input, __spreadValues(__spreadValues(__spreadValues(__spreadValues({
2275
+ ref,
2276
+ variant,
2277
+ size
2278
+ }, inputProps), focusProps), hoverProps), stateProps)));
1364
2279
  };
1365
2280
 
1366
2281
  // src/Tiles/Tiles.tsx
1367
- var import_react37 = __toESM(require("react"));
1368
- var Tiles = import_react37.default.forwardRef(function Tiles2(_a, ref) {
2282
+ var import_react59 = __toESM(require("react"));
2283
+ var Tiles = import_react59.default.forwardRef(function Tiles2(_a, ref) {
1369
2284
  var _b = _a, { space = "none", itemMinWidth = "250px", children } = _b, props = __objRest(_b, ["space", "itemMinWidth", "children"]);
1370
- return /* @__PURE__ */ import_react37.default.createElement(import_system.Box, __spreadValues({
2285
+ return /* @__PURE__ */ import_react59.default.createElement(import_system.Box, __spreadValues({
1371
2286
  ref,
1372
2287
  display: "grid",
1373
2288
  __baseCSS: {
@@ -1378,25 +2293,25 @@ var Tiles = import_react37.default.forwardRef(function Tiles2(_a, ref) {
1378
2293
  });
1379
2294
 
1380
2295
  // src/Tooltip/Tooltip.tsx
1381
- var import_react39 = __toESM(require("react"));
2296
+ var import_react61 = __toESM(require("react"));
1382
2297
  var import_tooltip3 = require("@react-aria/tooltip");
1383
- var import_utils4 = require("@react-aria/utils");
2298
+ var import_utils13 = require("@react-aria/utils");
1384
2299
 
1385
2300
  // src/Tooltip/TooltipTrigger.tsx
1386
- var import_react38 = __toESM(require("react"));
1387
- var import_focus7 = require("@react-aria/focus");
2301
+ var import_react60 = __toESM(require("react"));
2302
+ var import_focus16 = require("@react-aria/focus");
1388
2303
  var import_tooltip = require("@react-aria/tooltip");
1389
2304
  var import_tooltip2 = require("@react-stately/tooltip");
1390
- var TooltipContext = import_react38.default.createContext({});
2305
+ var TooltipContext = import_react60.default.createContext({});
1391
2306
  var TooltipTrigger = (_a) => {
1392
2307
  var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1393
- const [trigger, tooltip] = import_react38.default.Children.toArray(children);
2308
+ const [trigger, tooltip] = import_react60.default.Children.toArray(children);
1394
2309
  const state = (0, import_tooltip2.useTooltipTriggerState)(props);
1395
- const tooltipTriggerRef = (0, import_react38.useRef)();
2310
+ const tooltipTriggerRef = (0, import_react60.useRef)();
1396
2311
  const { triggerProps, tooltipProps } = (0, import_tooltip.useTooltipTrigger)({}, state, tooltipTriggerRef);
1397
- return /* @__PURE__ */ import_react38.default.createElement(import_focus7.FocusableProvider, __spreadProps(__spreadValues({}, triggerProps), {
2312
+ return /* @__PURE__ */ import_react60.default.createElement(import_focus16.FocusableProvider, __spreadProps(__spreadValues({}, triggerProps), {
1398
2313
  ref: tooltipTriggerRef
1399
- }), trigger, state.isOpen && /* @__PURE__ */ import_react38.default.createElement(TooltipContext.Provider, {
2314
+ }), trigger, state.isOpen && /* @__PURE__ */ import_react60.default.createElement(TooltipContext.Provider, {
1400
2315
  value: __spreadValues({
1401
2316
  state
1402
2317
  }, tooltipProps)
@@ -1412,108 +2327,65 @@ var Tooltip = (_a) => {
1412
2327
  "variant",
1413
2328
  "children"
1414
2329
  ]);
1415
- const _a2 = (0, import_react39.useContext)(TooltipContext), { state } = _a2, tooltipProviderProps = __objRest(_a2, ["state"]);
1416
- const mergedProps = (0, import_utils4.mergeProps)(props, tooltipProviderProps);
2330
+ const _a2 = (0, import_react61.useContext)(TooltipContext), { state } = _a2, tooltipProviderProps = __objRest(_a2, ["state"]);
2331
+ const mergedProps = (0, import_utils13.mergeProps)(props, tooltipProviderProps);
1417
2332
  const { tooltipProps } = (0, import_tooltip3.useTooltip)(mergedProps, state);
1418
- return /* @__PURE__ */ import_react39.default.createElement(import_system.Box, __spreadValues({
2333
+ return /* @__PURE__ */ import_react61.default.createElement(import_system.Box, __spreadValues({
1419
2334
  position: "relative"
1420
- }, tooltipProps), /* @__PURE__ */ import_react39.default.createElement(import_system.Box, __spreadValues({
2335
+ }, tooltipProps), /* @__PURE__ */ import_react61.default.createElement(import_system.Box, __spreadValues({
1421
2336
  position: "absolute",
1422
2337
  variant: `tooltip.${variant}`
1423
2338
  }, mergedProps), children));
1424
2339
  };
1425
-
1426
- // src/Input/Input.tsx
1427
- var import_react40 = __toESM(require("react"));
1428
- var Input = (_a) => {
1429
- var _b = _a, {
1430
- variant = "",
1431
- type = "text"
1432
- } = _b, props = __objRest(_b, [
1433
- "variant",
1434
- "type"
1435
- ]);
1436
- return /* @__PURE__ */ import_react40.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1437
- as: "input",
1438
- type,
1439
- variant: `input.${variant}`
1440
- }));
1441
- };
1442
-
1443
- // src/Container/Container.tsx
1444
- var import_react41 = __toESM(require("react"));
1445
- var import_tokens2 = require("@marigold/tokens");
1446
- var ALIGNMENT3 = {
1447
- left: "flex-start",
1448
- center: "center",
1449
- right: "flex-end"
1450
- };
1451
- var Container = (_a) => {
1452
- var _b = _a, {
1453
- contentType = "content",
1454
- size = "medium",
1455
- align = "left",
1456
- children
1457
- } = _b, props = __objRest(_b, [
1458
- "contentType",
1459
- "size",
1460
- "align",
1461
- "children"
1462
- ]);
1463
- return /* @__PURE__ */ import_react41.default.createElement(import_system.Box, __spreadValues({
1464
- display: "flex",
1465
- flexDirection: "column",
1466
- maxWidth: import_tokens2.size[contentType][size],
1467
- alignItems: ALIGNMENT3[align]
1468
- }, props), children);
1469
- };
1470
-
1471
- // src/index.ts
1472
- var import_collections = require("@react-stately/collections");
1473
- module.exports = __toCommonJS(src_exports);
1474
2340
  // Annotate the CommonJS export names for ESM import in node:
1475
2341
  0 && (module.exports = {
1476
- ActionGroup,
1477
2342
  Aside,
1478
2343
  Aspect,
1479
2344
  Badge,
1480
2345
  Box,
2346
+ Breakout,
1481
2347
  Button,
1482
2348
  Card,
2349
+ Center,
1483
2350
  Checkbox,
1484
- Column,
2351
+ CheckboxGroup,
2352
+ CheckboxGroupContext,
1485
2353
  Columns,
1486
2354
  Container,
2355
+ Content,
1487
2356
  Dialog,
1488
2357
  Divider,
1489
- Field,
2358
+ Footer,
2359
+ Header,
2360
+ Headline,
1490
2361
  Image,
1491
2362
  Inline,
1492
2363
  Input,
1493
- Item,
1494
2364
  Label,
1495
- LabelBase,
1496
2365
  Link,
1497
2366
  MarigoldProvider,
1498
2367
  Menu,
1499
- MenuItem,
1500
2368
  Message,
2369
+ NumberField,
2370
+ Overlay,
2371
+ Popover,
1501
2372
  Radio,
1502
2373
  SSRProvider,
1503
- Section,
1504
2374
  Select,
1505
2375
  Slider,
1506
2376
  Stack,
1507
2377
  Switch,
2378
+ Table,
1508
2379
  Text,
1509
- Textarea,
2380
+ TextArea,
2381
+ TextField,
1510
2382
  ThemeProvider,
1511
2383
  Tiles,
1512
2384
  Tooltip,
1513
2385
  TooltipContext,
1514
2386
  TooltipTrigger,
1515
- ValidationMessage,
2387
+ Underlay,
1516
2388
  VisuallyHidden,
1517
- useDialogButtonProps,
2389
+ useCheckboxGroupContext,
1518
2390
  useTheme
1519
2391
  });