@marigold/components 0.5.1 → 0.8.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.
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,34 +37,30 @@ 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
54
  ActionGroup: () => ActionGroup,
62
- Alert: () => Alert,
55
+ Aside: () => Aside,
56
+ Aspect: () => Aspect,
63
57
  Badge: () => Badge,
64
58
  Box: () => import_system.Box,
59
+ Breakout: () => Breakout,
65
60
  Button: () => Button,
66
61
  Card: () => Card,
62
+ Center: () => Center,
67
63
  Checkbox: () => Checkbox,
68
- Column: () => Column,
69
64
  Columns: () => Columns,
70
65
  Container: () => Container,
71
66
  Dialog: () => Dialog,
@@ -88,38 +83,26 @@ __export(src_exports, {
88
83
  Select: () => Select,
89
84
  Slider: () => Slider,
90
85
  Stack: () => Stack,
86
+ Switch: () => Switch,
91
87
  Text: () => Text,
92
88
  Textarea: () => Textarea,
93
89
  ThemeProvider: () => import_system5.ThemeProvider,
90
+ Tiles: () => Tiles,
91
+ Tooltip: () => Tooltip,
92
+ TooltipContext: () => TooltipContext,
93
+ TooltipTrigger: () => TooltipTrigger,
94
94
  ValidationMessage: () => ValidationMessage,
95
95
  VisuallyHidden: () => import_visually_hidden2.VisuallyHidden,
96
96
  useDialogButtonProps: () => useDialogButtonProps,
97
97
  useTheme: () => import_system5.useTheme
98
98
  });
99
+ module.exports = __toCommonJS(src_exports);
99
100
 
100
101
  // src/ActionGroup/ActionGroup.tsx
101
- var import_react4 = __toESM(require("react"));
102
+ var import_react3 = __toESM(require("react"));
102
103
 
103
104
  // src/Inline/Inline.tsx
104
- var import_react2 = __toESM(require("react"));
105
-
106
- // src/utils/flatten-children.ts
107
- var import_react = require("react");
108
- var import_react_is = require("react-is");
109
- var flattenChildren = (children, depth = 0, keys = []) => import_react.Children.toArray(children).reduce((acc, node) => {
110
- if ((0, import_react_is.isFragment)(node)) {
111
- acc.push.apply(acc, flattenChildren(node.props.children, depth + 1, keys.concat(node.key)));
112
- } else {
113
- if ((0, import_react.isValidElement)(node)) {
114
- acc.push((0, import_react.cloneElement)(node, {
115
- key: keys.concat(String(node.key)).join(".")
116
- }));
117
- } else if (typeof node === "string" || typeof node === "number") {
118
- acc.push(node);
119
- }
120
- }
121
- return acc;
122
- }, []);
105
+ var import_react = __toESM(require("react"));
123
106
 
124
107
  // src/Box.ts
125
108
  var import_system = require("@marigold/system");
@@ -140,15 +123,15 @@ var Inline = (_a) => {
140
123
  "align",
141
124
  "children"
142
125
  ]);
143
- return /* @__PURE__ */ import_react2.default.createElement(import_system.Box, __spreadValues({
126
+ return /* @__PURE__ */ import_react.default.createElement(import_system.Box, __spreadValues({
127
+ __baseCSS: { gap: space, flexWrap: "wrap" },
144
128
  display: "inline-flex",
145
- css: { "> * + *": { pl: space } },
146
129
  alignItems: ALIGNMENT[align]
147
- }, props), import_react2.Children.map(flattenChildren(children), (child) => /* @__PURE__ */ import_react2.default.createElement(import_system.Box, null, import_react2.default.cloneElement(child, {}, child.props.children))));
130
+ }, props), children);
148
131
  };
149
132
 
150
133
  // src/Stack/Stack.tsx
151
- var import_react3 = __toESM(require("react"));
134
+ var import_react2 = __toESM(require("react"));
152
135
  var ALIGNMENT2 = {
153
136
  left: "flex-start",
154
137
  center: "center",
@@ -164,12 +147,13 @@ var Stack = (_a) => {
164
147
  "align",
165
148
  "children"
166
149
  ]);
167
- return /* @__PURE__ */ import_react3.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
150
+ return /* @__PURE__ */ import_react2.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
168
151
  display: "flex",
169
152
  flexDirection: "column",
170
153
  alignItems: ALIGNMENT2[align],
171
- css: { "> * + *": { pt: space } }
172
- }), import_react3.Children.map(flattenChildren(children), (child) => /* @__PURE__ */ import_react3.default.createElement(import_system.Box, null, import_react3.default.cloneElement(child, {}, child.props.children))));
154
+ p: "0",
155
+ css: { gap: space }
156
+ }), children);
173
157
  };
174
158
 
175
159
  // src/ActionGroup/ActionGroup.tsx
@@ -183,50 +167,74 @@ var ActionGroup = (_a) => {
183
167
  "verticalAlignment",
184
168
  "children"
185
169
  ]);
186
- return verticalAlignment ? /* @__PURE__ */ import_react4.default.createElement(Stack, __spreadValues({
170
+ return verticalAlignment ? /* @__PURE__ */ import_react3.default.createElement(Stack, __spreadValues({
187
171
  space
188
- }, props), children) : /* @__PURE__ */ import_react4.default.createElement(Inline, __spreadValues({
172
+ }, props), children) : /* @__PURE__ */ import_react3.default.createElement(Inline, __spreadValues({
189
173
  space
190
174
  }, props), children);
191
175
  };
192
176
 
193
- // src/Alert/Alert.tsx
194
- var import_react5 = __toESM(require("react"));
195
- var import_icons = require("@marigold/icons");
196
- var ICON_MAP = {
197
- success: import_icons.Check,
198
- warning: import_icons.Notification,
199
- error: import_icons.Exclamation
177
+ // src/Aside/Aside.tsx
178
+ var import_react4 = __toESM(require("react"));
179
+ var SIDE_MAP = {
180
+ left: [":not(style):first-of-type", ":last-child"],
181
+ right: [":last-child", ":not(style):first-of-type"]
200
182
  };
201
- var Alert = (_a) => {
202
- var _b = _a, {
203
- variant = "success",
204
- children
205
- } = _b, props = __objRest(_b, [
206
- "variant",
207
- "children"
208
- ]);
209
- const Icon = ICON_MAP[variant];
210
- return /* @__PURE__ */ import_react5.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
211
- display: "flex",
212
- variant: `alert.${variant}`
213
- }), /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
214
- display: "inline-block",
215
- alignItems: "center",
216
- width: "32px",
217
- height: "32px",
218
- bg: variant
219
- }, /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
220
- as: Icon,
221
- size: 12,
222
- color: "#fff",
223
- bg: variant,
224
- m: 10
225
- })), /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
226
- mx: "16px"
227
- }, children));
183
+ var Aside = ({
184
+ children,
185
+ sideWidth,
186
+ space = "none",
187
+ side = "left",
188
+ stretch = true,
189
+ wrap = "50%"
190
+ }) => {
191
+ const [aside, content] = SIDE_MAP[side];
192
+ return /* @__PURE__ */ import_react4.default.createElement(import_system.Box, {
193
+ css: {
194
+ display: "flex",
195
+ flexWrap: "wrap",
196
+ gap: space,
197
+ alignItems: stretch ? void 0 : "flex-start",
198
+ [`> ${aside}`]: {
199
+ flexBasis: sideWidth,
200
+ flexGrow: 1
201
+ },
202
+ [`> ${content}`]: {
203
+ flexBasis: 0,
204
+ flexGrow: 999,
205
+ minInlineSize: wrap
206
+ }
207
+ }
208
+ }, children);
228
209
  };
229
210
 
211
+ // src/Aspect/Aspect.tsx
212
+ var import_react5 = __toESM(require("react"));
213
+ var import_tokens = require("@marigold/tokens");
214
+ var Aspect = import_react5.default.forwardRef(function AspectRatio(_a, ref) {
215
+ var _b = _a, { ratio = "square", maxWidth = "100%", children } = _b, props = __objRest(_b, ["ratio", "maxWidth", "children"]);
216
+ return /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
217
+ ref,
218
+ __baseCSS: {
219
+ position: "relative",
220
+ overflow: "hidden",
221
+ maxWidth
222
+ }
223
+ }, /* @__PURE__ */ import_react5.default.createElement(import_system.Box, {
224
+ __baseCSS: {
225
+ aspectRatio: import_tokens.aspect[ratio]
226
+ }
227
+ }), /* @__PURE__ */ import_react5.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
228
+ __baseCSS: {
229
+ position: "absolute",
230
+ top: 0,
231
+ right: 0,
232
+ bottom: 0,
233
+ left: 0
234
+ }
235
+ }), children));
236
+ });
237
+
230
238
  // src/Badge/Badge.tsx
231
239
  var import_react6 = __toESM(require("react"));
232
240
  var Badge = (_a) => {
@@ -283,8 +291,44 @@ var Button = (0, import_react7.forwardRef)((_a, ref) => {
283
291
  }), children);
284
292
  });
285
293
 
286
- // src/Card/Card.tsx
294
+ // src/Breakout/Breakout.tsx
287
295
  var import_react8 = __toESM(require("react"));
296
+ var useAlignment = (direction) => {
297
+ switch (direction) {
298
+ case "right":
299
+ return "flex-end";
300
+ case "bottom":
301
+ return "flex-end";
302
+ case "center":
303
+ return "center";
304
+ }
305
+ return "flex-start";
306
+ };
307
+ var Breakout = (_a) => {
308
+ var _b = _a, {
309
+ horizontalAlign,
310
+ verticalAlign,
311
+ children
312
+ } = _b, props = __objRest(_b, [
313
+ "horizontalAlign",
314
+ "verticalAlign",
315
+ "children"
316
+ ]);
317
+ const alignItems = useAlignment(horizontalAlign);
318
+ const justifyContent = useAlignment(verticalAlign);
319
+ return /* @__PURE__ */ import_react8.default.createElement(import_system.Box, __spreadValues({
320
+ alignItems,
321
+ justifyContent,
322
+ width: "100%",
323
+ display: verticalAlign || horizontalAlign ? "flex" : "block",
324
+ css: {
325
+ gridColumn: "1 / -1"
326
+ }
327
+ }, props), children);
328
+ };
329
+
330
+ // src/Card/Card.tsx
331
+ var import_react9 = __toESM(require("react"));
288
332
  var Card = (_a) => {
289
333
  var _b = _a, {
290
334
  variant = "",
@@ -299,127 +343,59 @@ var Card = (_a) => {
299
343
  "className",
300
344
  "children"
301
345
  ]);
302
- return /* @__PURE__ */ import_react8.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
346
+ return /* @__PURE__ */ import_react9.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
303
347
  variant: `card.${variant}`,
304
348
  maxWidth: width,
305
349
  className
306
- }), title && /* @__PURE__ */ import_react8.default.createElement(import_system.Box, {
350
+ }), title && /* @__PURE__ */ import_react9.default.createElement(import_system.Box, {
307
351
  as: "h2",
308
352
  variant: "text.h2",
309
353
  pb: "small"
310
354
  }, title), children);
311
355
  };
312
356
 
357
+ // src/Center/Center.tsx
358
+ var import_react10 = __toESM(require("react"));
359
+ var Center = (_a) => {
360
+ var _b = _a, {
361
+ maxWidth,
362
+ space = "none",
363
+ children
364
+ } = _b, props = __objRest(_b, [
365
+ "maxWidth",
366
+ "space",
367
+ "children"
368
+ ]);
369
+ return /* @__PURE__ */ import_react10.default.createElement(import_system.Box, __spreadValues({
370
+ css: {
371
+ boxSizing: "content-box",
372
+ display: "flex",
373
+ flexDirection: "column",
374
+ alignItems: "center",
375
+ justifyContent: "center",
376
+ marginInline: "auto",
377
+ maxInlineSize: maxWidth,
378
+ gap: space
379
+ }
380
+ }, props), children);
381
+ };
382
+
313
383
  // src/Checkbox/Checkbox.tsx
314
- var import_react13 = __toESM(require("react"));
384
+ var import_react14 = __toESM(require("react"));
315
385
  var import_focus = require("@react-aria/focus");
316
386
  var import_visually_hidden = require("@react-aria/visually-hidden");
317
387
  var import_checkbox = require("@react-aria/checkbox");
318
-
319
- // ../../node_modules/@react-stately/utils/dist/module.js
320
- var import_react9 = require("react");
321
- function useControlledState(value, defaultValue, onChange) {
322
- let [stateValue, setStateValue] = (0, import_react9.useState)(value || defaultValue);
323
- let ref = (0, import_react9.useRef)(value !== void 0);
324
- let wasControlled = ref.current;
325
- let isControlled = value !== void 0;
326
- let stateRef = (0, import_react9.useRef)(stateValue);
327
- if (wasControlled !== isControlled) {
328
- console.warn("WARN: A component changed from " + (wasControlled ? "controlled" : "uncontrolled") + " to " + (isControlled ? "controlled" : "uncontrolled") + ".");
329
- }
330
- ref.current = isControlled;
331
- let setValue = (0, import_react9.useCallback)(function(value2) {
332
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
333
- args[_key - 1] = arguments[_key];
334
- }
335
- let onChangeCaller = function onChangeCaller2(value3) {
336
- if (onChange) {
337
- if (!Object.is(stateRef.current, value3)) {
338
- for (var _len2 = arguments.length, onChangeArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
339
- onChangeArgs[_key2 - 1] = arguments[_key2];
340
- }
341
- onChange(value3, ...onChangeArgs);
342
- }
343
- }
344
- if (!isControlled) {
345
- stateRef.current = value3;
346
- }
347
- };
348
- if (typeof value2 === "function") {
349
- let updateFunction = function updateFunction2(oldValue) {
350
- for (var _len3 = arguments.length, functionArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
351
- functionArgs[_key3 - 1] = arguments[_key3];
352
- }
353
- let interceptedValue = value2(isControlled ? stateRef.current : oldValue, ...functionArgs);
354
- onChangeCaller(interceptedValue, ...args);
355
- if (!isControlled) {
356
- return interceptedValue;
357
- }
358
- return oldValue;
359
- };
360
- setStateValue(updateFunction);
361
- } else {
362
- if (!isControlled) {
363
- setStateValue(value2);
364
- }
365
- onChangeCaller(value2, ...args);
366
- }
367
- }, [isControlled, onChange]);
368
- if (isControlled) {
369
- stateRef.current = value;
370
- } else {
371
- value = stateValue;
372
- }
373
- return [value, setValue];
374
- }
375
-
376
- // ../../node_modules/@react-stately/toggle/dist/module.js
377
- function useToggleState(props) {
378
- if (props === void 0) {
379
- props = {};
380
- }
381
- let {
382
- isReadOnly,
383
- onChange
384
- } = props;
385
- let [isSelected, setSelected] = useControlledState(props.isSelected, props.defaultSelected || false, () => {
386
- });
387
- function updateSelected(value) {
388
- if (!isReadOnly) {
389
- setSelected(value);
390
- if (onChange) {
391
- onChange(value);
392
- }
393
- }
394
- }
395
- function toggleState() {
396
- if (!isReadOnly) {
397
- setSelected((prev) => {
398
- let newVal = !prev;
399
- if (onChange) {
400
- onChange(newVal);
401
- }
402
- return newVal;
403
- });
404
- }
405
- }
406
- return {
407
- isSelected,
408
- setSelected: updateSelected,
409
- toggle: toggleState
410
- };
411
- }
412
-
413
- // src/Checkbox/Checkbox.tsx
414
- var import_icons3 = require("@marigold/icons");
388
+ var import_toggle = require("@react-stately/toggle");
389
+ var import_icons2 = require("@marigold/icons");
415
390
 
416
391
  // src/Checkbox/CheckboxIcon.tsx
417
- var import_react10 = __toESM(require("react"));
392
+ var import_react11 = __toESM(require("react"));
418
393
  var import_system2 = require("@marigold/system");
419
394
  var CheckboxIcon = ({
420
395
  variant = "",
421
396
  checked = false,
422
397
  disabled = false,
398
+ indeterminated,
423
399
  error = false
424
400
  }) => {
425
401
  const conditionalStates = disabled ? {
@@ -428,13 +404,13 @@ var CheckboxIcon = ({
428
404
  checked,
429
405
  error
430
406
  };
431
- return /* @__PURE__ */ import_react10.default.createElement(import_system2.SVG, {
407
+ return /* @__PURE__ */ import_react11.default.createElement(import_system2.SVG, {
432
408
  width: "16",
433
409
  height: "32",
434
410
  viewBox: "0 0 16 32",
435
411
  fill: "none",
436
412
  "aria-hidden": "true"
437
- }, /* @__PURE__ */ import_react10.default.createElement(import_system.Box, {
413
+ }, /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
438
414
  as: "rect",
439
415
  x: "0.5",
440
416
  y: "8.5",
@@ -442,7 +418,13 @@ var CheckboxIcon = ({
442
418
  height: "15px",
443
419
  rx: "1.5",
444
420
  variant: (0, import_system2.conditional)(`checkbox.${variant}`, conditionalStates)
445
- }), checked && /* @__PURE__ */ import_react10.default.createElement(import_system.Box, {
421
+ }), checked && indeterminated && /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
422
+ __baseCSS: { fill: "gray00" },
423
+ as: "path",
424
+ fillRule: "evenodd",
425
+ clipRule: "evenodd",
426
+ d: "M13.5 17.0402H2.5V15.4688H13.5V17.0402V17.0402Z"
427
+ }), checked && !indeterminated && /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
446
428
  __baseCSS: { fill: "gray00" },
447
429
  as: "path",
448
430
  fillRule: "evenodd",
@@ -452,8 +434,8 @@ var CheckboxIcon = ({
452
434
  };
453
435
 
454
436
  // src/Label/Label.tsx
455
- var import_react11 = __toESM(require("react"));
456
- var import_icons2 = require("@marigold/icons");
437
+ var import_react12 = __toESM(require("react"));
438
+ var import_icons = require("@marigold/icons");
457
439
  var LabelBase = (_a) => {
458
440
  var _b = _a, {
459
441
  variant = "above",
@@ -466,7 +448,7 @@ var LabelBase = (_a) => {
466
448
  "color",
467
449
  "children"
468
450
  ]);
469
- return /* @__PURE__ */ import_react11.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
451
+ return /* @__PURE__ */ import_react12.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
470
452
  as: "label",
471
453
  __baseCSS: { color },
472
454
  variant: `label.${variant}`
@@ -480,19 +462,18 @@ var Label = (_a) => {
480
462
  "required",
481
463
  "children"
482
464
  ]);
483
- return required ? /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
465
+ return required ? /* @__PURE__ */ import_react12.default.createElement(import_system.Box, {
484
466
  as: "span",
485
467
  display: "inline-flex",
486
468
  alignItems: "center"
487
- }, /* @__PURE__ */ import_react11.default.createElement(LabelBase, __spreadValues({}, props), children), required && /* @__PURE__ */ import_react11.default.createElement(import_system.Box, {
488
- as: import_icons2.Required,
469
+ }, /* @__PURE__ */ import_react12.default.createElement(LabelBase, __spreadValues({}, props), children), required && /* @__PURE__ */ import_react12.default.createElement(import_icons.Required, {
489
470
  size: 16,
490
- css: { color: "error" }
491
- })) : /* @__PURE__ */ import_react11.default.createElement(LabelBase, __spreadValues({}, props), children);
471
+ fill: "error"
472
+ })) : /* @__PURE__ */ import_react12.default.createElement(LabelBase, __spreadValues({}, props), children);
492
473
  };
493
474
 
494
475
  // src/ValidationMessage/ValidationMessage.tsx
495
- var import_react12 = __toESM(require("react"));
476
+ var import_react13 = __toESM(require("react"));
496
477
  var ValidationMessage = (_a) => {
497
478
  var _b = _a, {
498
479
  variant = "error",
@@ -503,7 +484,7 @@ var ValidationMessage = (_a) => {
503
484
  "children",
504
485
  "className"
505
486
  ]);
506
- return /* @__PURE__ */ import_react12.default.createElement(import_system.Box, __spreadValues({
487
+ return /* @__PURE__ */ import_react13.default.createElement(import_system.Box, __spreadValues({
507
488
  as: "span",
508
489
  display: "flex",
509
490
  alignItems: "center",
@@ -514,20 +495,27 @@ var ValidationMessage = (_a) => {
514
495
 
515
496
  // src/Checkbox/Checkbox.tsx
516
497
  var CheckboxInput = (_a) => {
517
- var _b = _a, { error } = _b, props = __objRest(_b, ["error"]);
518
- const state = useToggleState(props);
519
- const ref = import_react13.default.useRef(null);
498
+ var _b = _a, {
499
+ error,
500
+ indeterminated = false
501
+ } = _b, props = __objRest(_b, [
502
+ "error",
503
+ "indeterminated"
504
+ ]);
505
+ const state = (0, import_toggle.useToggleState)(props);
506
+ const ref = import_react14.default.useRef(null);
520
507
  const { inputProps } = (0, import_checkbox.useCheckbox)(props, state, ref);
521
508
  const { focusProps } = (0, import_focus.useFocusRing)();
522
509
  const _a2 = props, { children } = _a2, restProps = __objRest(_a2, ["children"]);
523
- return /* @__PURE__ */ import_react13.default.createElement(import_system.Box, {
510
+ return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, {
524
511
  pr: "xsmall"
525
- }, /* @__PURE__ */ import_react13.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react13.default.createElement("input", __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
512
+ }, /* @__PURE__ */ import_react14.default.createElement(import_visually_hidden.VisuallyHidden, null, /* @__PURE__ */ import_react14.default.createElement("input", __spreadValues(__spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
526
513
  ref
527
- }), restProps))), /* @__PURE__ */ import_react13.default.createElement(CheckboxIcon, {
514
+ }), restProps))), /* @__PURE__ */ import_react14.default.createElement(CheckboxIcon, {
528
515
  checked: props.checked,
529
516
  variant: props.variant,
530
517
  disabled: props.disabled,
518
+ indeterminated,
531
519
  error
532
520
  }));
533
521
  };
@@ -541,7 +529,7 @@ var Checkbox = (_a) => {
541
529
  "labelVariant",
542
530
  "errorMessage"
543
531
  ]);
544
- return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement(import_system.Box, {
532
+ return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(import_system.Box, {
545
533
  as: Label,
546
534
  __baseCSS: {
547
535
  ":hover": { cursor: props.disabled ? "not-allowed" : "pointer" }
@@ -550,84 +538,47 @@ var Checkbox = (_a) => {
550
538
  required,
551
539
  variant: `label.${labelVariant}`,
552
540
  color: props.disabled ? "disabled" : "text"
553
- }, /* @__PURE__ */ import_react13.default.createElement(import_system.Box, __spreadValues({
554
- as: CheckboxInput,
541
+ }, /* @__PURE__ */ import_react14.default.createElement(CheckboxInput, __spreadValues({
555
542
  error: props.error
556
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react13.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react13.default.createElement(import_icons3.Exclamation, {
543
+ }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react14.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react14.default.createElement(import_icons2.Exclamation, {
557
544
  size: 16
558
545
  }), errorMessage));
559
546
  };
560
547
 
561
- // src/Column/Column.tsx
562
- var import_react14 = __toESM(require("react"));
563
- var transform = (width) => {
564
- if (Array.isArray(width)) {
565
- return width.map((v) => `${v / 12 * 100}%`);
566
- }
567
- return `${width / 12 * 100}%`;
568
- };
569
- var Column = (_a) => {
570
- var _b = _a, {
571
- width = 12,
572
- children
573
- } = _b, props = __objRest(_b, [
574
- "width",
575
- "children"
576
- ]);
577
- return /* @__PURE__ */ import_react14.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
578
- width: transform(width)
579
- }), children);
580
- };
581
-
582
548
  // src/Columns/Columns.tsx
583
549
  var import_react15 = __toESM(require("react"));
584
- var import_system3 = require("@marigold/system");
585
- var useAlignment = (direction) => {
586
- switch (direction) {
587
- case "right":
588
- return "flex-end";
589
- case "bottom":
590
- return "flex-end";
591
- case "center":
592
- return "center";
593
- }
594
- return "flex-start";
595
- };
596
550
  var Columns = (_a) => {
597
551
  var _b = _a, {
598
552
  space = "none",
599
- horizontalAlign = "left",
600
- verticalAlign = "top",
601
- className,
553
+ columns,
554
+ collapseAt = "40em",
602
555
  children
603
556
  } = _b, props = __objRest(_b, [
604
557
  "space",
605
- "horizontalAlign",
606
- "verticalAlign",
607
- "className",
558
+ "columns",
559
+ "collapseAt",
608
560
  "children"
609
561
  ]);
610
- const justifyContent = useAlignment(horizontalAlign);
611
- const alignItems = useAlignment(verticalAlign);
612
- const { css } = (0, import_system3.useTheme)();
613
- const spaceObject = css({ space });
614
- const spaceValue = Object.values(spaceObject)[0];
615
- return /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
616
- p: space,
617
- display: "flex",
618
- className
619
- }, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, __spreadValues({
620
- width: `calc(100% + ${spaceValue}px)`,
621
- m: `${-spaceValue / 2}px`,
562
+ if (import_react15.Children.count(children) !== columns.length) {
563
+ throw new Error(`Columns: expected ${columns.length} children, got ${import_react15.Children.count(children)}`);
564
+ }
565
+ const getColumnWidths = columns.map((column, index) => {
566
+ return {
567
+ [`> :nth-of-type(${index + 1})`]: {
568
+ flexGrow: column
569
+ }
570
+ };
571
+ });
572
+ return /* @__PURE__ */ import_react15.default.createElement(import_system.Box, __spreadValues({
622
573
  display: "flex",
623
- flexWrap: "wrap",
624
- alignItems,
625
- justifyContent
626
- }, props), import_react15.Children.map(flattenChildren(children), (child) => {
627
- return import_react15.default.cloneElement(child, {}, /* @__PURE__ */ import_react15.default.createElement(import_system.Box, {
628
- css: { p: `${spaceValue / 2}px` }
629
- }, child.props.children));
630
- })));
574
+ css: Object.assign({
575
+ flexWrap: "wrap",
576
+ gap: space,
577
+ "> *": {
578
+ flexBasis: `calc(( ${collapseAt} - 100%) * 999)`
579
+ }
580
+ }, ...getColumnWidths)
581
+ }, props), children);
631
582
  };
632
583
 
633
584
  // src/Dialog/Dialog.tsx
@@ -635,7 +586,7 @@ var import_react18 = __toESM(require("react"));
635
586
  var import_overlays2 = require("@react-stately/overlays");
636
587
  var import_overlays3 = require("@react-aria/overlays");
637
588
  var import_button2 = require("@react-aria/button");
638
- var import_icons4 = require("@marigold/icons");
589
+ var import_icons3 = require("@marigold/icons");
639
590
 
640
591
  // src/Text/Text.tsx
641
592
  var import_react16 = __toESM(require("react"));
@@ -788,7 +739,7 @@ var Dialog = (_a) => {
788
739
  }
789
740
  }, closeButtonProps), {
790
741
  ref: closeButtonRef
791
- }), /* @__PURE__ */ import_react18.default.createElement(import_icons4.Close, {
742
+ }), /* @__PURE__ */ import_react18.default.createElement(import_icons3.Close, {
792
743
  size: 16
793
744
  }))))));
794
745
  };
@@ -820,7 +771,7 @@ var Divider = (_a) => {
820
771
  // src/Field/Field.tsx
821
772
  var import_react20 = __toESM(require("react"));
822
773
  var import_textfield = require("@react-aria/textfield");
823
- var import_icons5 = require("@marigold/icons");
774
+ var import_icons4 = require("@marigold/icons");
824
775
  var Field = (_a) => {
825
776
  var _b = _a, {
826
777
  type = "text",
@@ -852,7 +803,7 @@ var Field = (_a) => {
852
803
  variant: `input.${variant}`
853
804
  }, inputProps), {
854
805
  ref
855
- }), props)), error && errorMessage && /* @__PURE__ */ import_react20.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react20.default.createElement(import_icons5.Exclamation, {
806
+ }), props)), error && errorMessage && /* @__PURE__ */ import_react20.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react20.default.createElement(import_icons4.Exclamation, {
856
807
  size: 16
857
808
  }), errorMessage));
858
809
  };
@@ -877,10 +828,11 @@ var Image = (_a) => {
877
828
  // src/Link/Link.tsx
878
829
  var import_react22 = __toESM(require("react"));
879
830
  var import_link = require("@react-aria/link");
831
+ var import_system3 = require("@marigold/system");
880
832
  var Link = (_a) => {
881
833
  var _b = _a, {
882
834
  as = "a",
883
- variant = "link",
835
+ variant = "",
884
836
  children,
885
837
  disabled
886
838
  } = _b, props = __objRest(_b, [
@@ -889,16 +841,17 @@ var Link = (_a) => {
889
841
  "children",
890
842
  "disabled"
891
843
  ]);
892
- const ref = (0, import_react22.useRef)();
844
+ const ref = (0, import_react22.useRef)(null);
893
845
  const { linkProps } = (0, import_link.useLink)(__spreadProps(__spreadValues({}, props), {
894
846
  elementType: typeof as === "string" ? as : "span",
895
847
  isDisabled: disabled
896
848
  }), ref);
897
- return /* @__PURE__ */ import_react22.default.createElement(Text, __spreadProps(__spreadValues(__spreadValues({}, props), linkProps), {
849
+ return /* @__PURE__ */ import_react22.default.createElement(import_system.Box, __spreadValues(__spreadValues({
898
850
  as,
899
- variant,
851
+ variant: (0, import_system3.conditional)(`link.${variant}`, { disabled }),
852
+ css: { cursor: disabled ? "default" : "pointer" },
900
853
  ref
901
- }), children);
854
+ }, props), linkProps), children);
902
855
  };
903
856
 
904
857
  // src/Menu/Menu.tsx
@@ -949,7 +902,7 @@ var MenuItem = (_a) => {
949
902
 
950
903
  // src/Message/Message.tsx
951
904
  var import_react25 = __toESM(require("react"));
952
- var import_icons6 = require("@marigold/icons");
905
+ var import_icons5 = require("@marigold/icons");
953
906
  var Message = (_a) => {
954
907
  var _b = _a, {
955
908
  messageTitle,
@@ -962,12 +915,12 @@ var Message = (_a) => {
962
915
  "className",
963
916
  "children"
964
917
  ]);
965
- var icon = /* @__PURE__ */ import_react25.default.createElement(import_icons6.Info, null);
918
+ var icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Info, null);
966
919
  if (variant === "warning") {
967
- icon = /* @__PURE__ */ import_react25.default.createElement(import_icons6.Notification, null);
920
+ icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Notification, null);
968
921
  }
969
922
  if (variant === "error") {
970
- icon = /* @__PURE__ */ import_react25.default.createElement(import_icons6.Exclamation, null);
923
+ icon = /* @__PURE__ */ import_react25.default.createElement(import_icons5.Exclamation, null);
971
924
  }
972
925
  return /* @__PURE__ */ import_react25.default.createElement(import_system.Box, __spreadValues({
973
926
  display: "inline-block",
@@ -1006,7 +959,7 @@ function MarigoldProvider({
1006
959
 
1007
960
  // src/Radio/Radio.tsx
1008
961
  var import_react28 = __toESM(require("react"));
1009
- var import_icons7 = require("@marigold/icons");
962
+ var import_icons6 = require("@marigold/icons");
1010
963
  var import_focus3 = require("@react-aria/focus");
1011
964
  var import_visually_hidden3 = require("@react-aria/visually-hidden");
1012
965
 
@@ -1081,55 +1034,43 @@ var Radio = (_a) => {
1081
1034
  }, /* @__PURE__ */ import_react28.default.createElement(import_system.Box, __spreadValues({
1082
1035
  as: RadioInput,
1083
1036
  error: props.error
1084
- }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react28.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react28.default.createElement(import_icons7.Exclamation, {
1037
+ }, props)), props.children), props.error && errorMessage && /* @__PURE__ */ import_react28.default.createElement(ValidationMessage, null, /* @__PURE__ */ import_react28.default.createElement(import_icons6.Exclamation, {
1085
1038
  size: 16
1086
1039
  }), errorMessage));
1087
1040
  };
1088
1041
 
1089
- // src/Slider/Slider.tsx
1090
- var import_react29 = __toESM(require("react"));
1091
- var Slider = (_a) => {
1092
- var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
1093
- return /* @__PURE__ */ import_react29.default.createElement(import_system.Box, __spreadValues({
1094
- as: "input",
1095
- type: "range",
1096
- css: { verticalAlign: "middle" },
1097
- variant: `slider.${variant}`
1098
- }, props));
1099
- };
1100
-
1101
1042
  // src/Select/Select.tsx
1102
- var import_react34 = __toESM(require("react"));
1043
+ var import_react33 = __toESM(require("react"));
1103
1044
  var import_select = require("@react-stately/select");
1104
1045
  var import_button3 = require("@react-aria/button");
1105
- var import_utils6 = require("@react-aria/utils");
1046
+ var import_utils2 = require("@react-aria/utils");
1106
1047
  var import_focus5 = require("@react-aria/focus");
1107
1048
  var import_select2 = require("@react-aria/select");
1108
1049
  var import_overlays6 = require("@react-stately/overlays");
1109
1050
  var import_overlays7 = require("@react-aria/overlays");
1110
- var import_icons8 = require("@marigold/icons");
1051
+ var import_icons7 = require("@marigold/icons");
1111
1052
 
1112
1053
  // src/Select/ListBox.tsx
1113
- var import_react32 = __toESM(require("react"));
1054
+ var import_react31 = __toESM(require("react"));
1114
1055
  var import_listbox3 = require("@react-aria/listbox");
1115
1056
 
1116
1057
  // src/Select/Option.tsx
1117
- var import_react30 = __toESM(require("react"));
1058
+ var import_react29 = __toESM(require("react"));
1118
1059
  var import_listbox = require("@react-aria/listbox");
1119
1060
  var Option = ({ item, state }) => {
1120
- const ref = (0, import_react30.useRef)(null);
1121
- const [disabled, setDisabled] = (0, import_react30.useState)(false);
1061
+ const ref = (0, import_react29.useRef)(null);
1062
+ const [disabled, setDisabled] = (0, import_react29.useState)(false);
1122
1063
  const { optionProps, isSelected } = (0, import_listbox.useOption)({
1123
1064
  key: item.key
1124
1065
  }, state, ref);
1125
- (0, import_react30.useEffect)(() => {
1066
+ (0, import_react29.useEffect)(() => {
1126
1067
  for (const key of state.disabledKeys.values()) {
1127
1068
  if (key === item.key) {
1128
1069
  setDisabled(true);
1129
1070
  }
1130
1071
  }
1131
1072
  }, [state.disabledKeys, item.key]);
1132
- return /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1073
+ return /* @__PURE__ */ import_react29.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1133
1074
  as: "li"
1134
1075
  }, optionProps), {
1135
1076
  ref,
@@ -1138,26 +1079,26 @@ var Option = ({ item, state }) => {
1138
1079
  };
1139
1080
 
1140
1081
  // src/Select/ListBoxSection.tsx
1141
- var import_react31 = __toESM(require("react"));
1082
+ var import_react30 = __toESM(require("react"));
1142
1083
  var import_listbox2 = require("@react-aria/listbox");
1143
1084
  var ListBoxSection = ({ section, state }) => {
1144
1085
  const { itemProps, headingProps, groupProps } = (0, import_listbox2.useListBoxSection)({
1145
1086
  heading: section.rendered,
1146
1087
  "aria-label": section["aria-label"]
1147
1088
  });
1148
- return /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1089
+ return /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1149
1090
  as: "li"
1150
1091
  }, itemProps), {
1151
1092
  css: {
1152
1093
  cursor: "not-allowed"
1153
1094
  }
1154
- }), section.rendered && /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1095
+ }), section.rendered && /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1155
1096
  as: "span"
1156
1097
  }, headingProps), {
1157
1098
  variant: "select.section"
1158
- }), section.rendered), /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadValues({
1099
+ }), section.rendered), /* @__PURE__ */ import_react30.default.createElement(import_system.Box, __spreadValues({
1159
1100
  as: "ul"
1160
- }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react31.default.createElement(Option, {
1101
+ }, groupProps), [...section.childNodes].map((node) => /* @__PURE__ */ import_react30.default.createElement(Option, {
1161
1102
  key: node.key,
1162
1103
  item: node,
1163
1104
  state
@@ -1166,10 +1107,10 @@ var ListBoxSection = ({ section, state }) => {
1166
1107
 
1167
1108
  // src/Select/ListBox.tsx
1168
1109
  var ListBox = (props) => {
1169
- const ref = (0, import_react32.useRef)(null);
1110
+ const ref = (0, import_react31.useRef)(null);
1170
1111
  const { state, error } = props;
1171
1112
  const { listBoxProps } = (0, import_listbox3.useListBox)(props, state, ref);
1172
- return /* @__PURE__ */ import_react32.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1113
+ return /* @__PURE__ */ import_react31.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1173
1114
  as: "ul",
1174
1115
  p: "none",
1175
1116
  css: {
@@ -1178,11 +1119,11 @@ var ListBox = (props) => {
1178
1119
  }, listBoxProps), {
1179
1120
  variant: error ? "select.listbox.error" : "select.listbox",
1180
1121
  ref
1181
- }), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react32.default.createElement(ListBoxSection, {
1122
+ }), [...state.collection].map((item) => item.type === "section" ? /* @__PURE__ */ import_react31.default.createElement(ListBoxSection, {
1182
1123
  key: item.key,
1183
1124
  section: item,
1184
1125
  state
1185
- }) : /* @__PURE__ */ import_react32.default.createElement(Option, {
1126
+ }) : /* @__PURE__ */ import_react31.default.createElement(Option, {
1186
1127
  key: item.key,
1187
1128
  item,
1188
1129
  state
@@ -1190,11 +1131,11 @@ var ListBox = (props) => {
1190
1131
  };
1191
1132
 
1192
1133
  // src/Select/Popover.tsx
1193
- var import_react33 = __toESM(require("react"));
1134
+ var import_react32 = __toESM(require("react"));
1194
1135
  var import_focus4 = require("@react-aria/focus");
1195
1136
  var import_overlays5 = require("@react-aria/overlays");
1196
- var import_utils5 = require("@react-aria/utils");
1197
- var Popover = (0, import_react33.forwardRef)((_a, ref) => {
1137
+ var import_utils = require("@react-aria/utils");
1138
+ var Popover = (0, import_react32.forwardRef)((_a, ref) => {
1198
1139
  var _b = _a, { children, className, isOpen, onClose } = _b, otherProps = __objRest(_b, ["children", "className", "isOpen", "onClose"]);
1199
1140
  const { overlayProps } = (0, import_overlays5.useOverlay)({
1200
1141
  isOpen,
@@ -1203,12 +1144,12 @@ var Popover = (0, import_react33.forwardRef)((_a, ref) => {
1203
1144
  isDismissable: true
1204
1145
  }, ref);
1205
1146
  const { modalProps } = (0, import_overlays5.useModal)();
1206
- return /* @__PURE__ */ import_react33.default.createElement(import_overlays5.OverlayContainer, null, /* @__PURE__ */ import_react33.default.createElement(import_focus4.FocusScope, {
1147
+ return /* @__PURE__ */ import_react32.default.createElement(import_overlays5.OverlayContainer, null, /* @__PURE__ */ import_react32.default.createElement(import_focus4.FocusScope, {
1207
1148
  restoreFocus: true
1208
- }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, (0, import_utils5.mergeProps)(overlayProps, otherProps, modalProps)), {
1149
+ }, /* @__PURE__ */ import_react32.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, (0, import_utils.mergeProps)(overlayProps, otherProps, modalProps)), {
1209
1150
  className,
1210
1151
  ref
1211
- }), children, /* @__PURE__ */ import_react33.default.createElement(import_overlays5.DismissButton, {
1152
+ }), children, /* @__PURE__ */ import_react32.default.createElement(import_overlays5.DismissButton, {
1212
1153
  onDismiss: onClose
1213
1154
  }))));
1214
1155
  });
@@ -1236,8 +1177,8 @@ var Select = (_a) => {
1236
1177
  ]);
1237
1178
  const state = (0, import_select.useSelectState)(props);
1238
1179
  const overlayTriggerState = (0, import_overlays6.useOverlayTriggerState)({});
1239
- const triggerRef = (0, import_react34.useRef)();
1240
- const overlayRef = (0, import_react34.useRef)();
1180
+ const triggerRef = (0, import_react33.useRef)();
1181
+ const overlayRef = (0, import_react33.useRef)();
1241
1182
  const { overlayProps } = (0, import_overlays7.useOverlayTrigger)({ type: "listbox" }, overlayTriggerState, triggerRef);
1242
1183
  const { overlayProps: positionProps } = (0, import_overlays7.useOverlayPosition)({
1243
1184
  targetRef: triggerRef,
@@ -1250,47 +1191,44 @@ var Select = (_a) => {
1250
1191
  const { labelProps, triggerProps, valueProps, menuProps } = (0, import_select2.useSelect)(props, state, triggerRef);
1251
1192
  const { buttonProps } = (0, import_button3.useButton)(triggerProps, triggerRef);
1252
1193
  const { focusProps } = (0, import_focus5.useFocusRing)();
1253
- return /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1194
+ return /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1254
1195
  position: "relative",
1255
1196
  display: "inline-block",
1256
1197
  width: width && width
1257
- }, props.label && /* @__PURE__ */ import_react34.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react34.default.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
1198
+ }, props.label && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react33.default.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
1258
1199
  htmlFor: labelProps.id,
1259
1200
  variant: labelVariant
1260
- }), required ? /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1201
+ }), required ? /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1261
1202
  as: "span",
1262
1203
  display: "inline-flex",
1263
1204
  alignItems: "center"
1264
- }, props.label, /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1265
- as: import_icons8.Required,
1205
+ }, props.label, /* @__PURE__ */ import_react33.default.createElement(import_icons7.Required, {
1266
1206
  size: 16,
1267
- css: { color: "error" }
1268
- })) : props.label)), /* @__PURE__ */ import_react34.default.createElement(import_select2.HiddenSelect, {
1207
+ fill: "error"
1208
+ })) : props.label)), /* @__PURE__ */ import_react33.default.createElement(import_select2.HiddenSelect, {
1269
1209
  state,
1270
1210
  triggerRef,
1271
1211
  label: props.label,
1272
1212
  name: props.name,
1273
1213
  isDisabled: disabled
1274
- }), /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1214
+ }), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1275
1215
  as: "button"
1276
- }, (0, import_utils6.mergeProps)(buttonProps, focusProps)), {
1216
+ }, (0, import_utils2.mergeProps)(buttonProps, focusProps)), {
1277
1217
  ref: triggerRef,
1278
1218
  variant: error && state.isOpen && !disabled ? "button.select.errorOpened" : error ? "button.select.error" : state.isOpen && !disabled ? "button.select.open" : "button.select",
1279
1219
  disabled,
1280
1220
  className
1281
- }), /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1221
+ }), /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues({
1282
1222
  as: "span"
1283
1223
  }, valueProps), {
1284
1224
  variant: disabled ? "select.disabled" : "select"
1285
- }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1286
- as: import_icons8.ArrowUp,
1225
+ }), state.selectedItem ? state.selectedItem.rendered : placeholder), state.isOpen && !disabled ? /* @__PURE__ */ import_react33.default.createElement(import_icons7.ArrowUp, {
1287
1226
  size: 16,
1288
- css: { fill: "text" }
1289
- }) : /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1290
- as: import_icons8.ArrowDown,
1227
+ fill: "text"
1228
+ }) : /* @__PURE__ */ import_react33.default.createElement(import_icons7.ArrowDown, {
1291
1229
  size: 16,
1292
- css: { fill: disabled ? "disabled" : "text" }
1293
- })), state.isOpen && !disabled && /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({
1230
+ fill: disabled ? "disabled" : "text"
1231
+ })), state.isOpen && !disabled && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, __spreadProps(__spreadValues(__spreadValues({
1294
1232
  as: Popover
1295
1233
  }, overlayProps), positionProps), {
1296
1234
  css: {
@@ -1299,25 +1237,100 @@ var Select = (_a) => {
1299
1237
  ref: overlayRef,
1300
1238
  isOpen: state.isOpen,
1301
1239
  onClose: state.close
1302
- }), /* @__PURE__ */ import_react34.default.createElement(ListBox, __spreadProps(__spreadValues({
1240
+ }), /* @__PURE__ */ import_react33.default.createElement(ListBox, __spreadProps(__spreadValues({
1303
1241
  error
1304
1242
  }, menuProps), {
1305
1243
  state
1306
- }))), error && errorMessage && /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1244
+ }))), error && errorMessage && /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1307
1245
  as: "span",
1308
1246
  display: "inline-flex",
1309
1247
  alignItems: "center"
1310
- }, /* @__PURE__ */ import_react34.default.createElement(import_system.Box, {
1311
- as: import_icons8.Exclamation,
1248
+ }, /* @__PURE__ */ import_react33.default.createElement(import_system.Box, {
1249
+ as: import_icons7.Exclamation,
1312
1250
  size: 16,
1313
1251
  css: { color: "error" }
1314
- }), /* @__PURE__ */ import_react34.default.createElement(ValidationMessage, null, errorMessage)));
1252
+ }), /* @__PURE__ */ import_react33.default.createElement(ValidationMessage, null, errorMessage)));
1315
1253
  };
1316
1254
 
1317
- // src/Textarea/Textarea.tsx
1255
+ // src/Slider/Slider.tsx
1256
+ var import_react34 = __toESM(require("react"));
1257
+ var Slider = (_a) => {
1258
+ var _b = _a, { variant = "" } = _b, props = __objRest(_b, ["variant"]);
1259
+ return /* @__PURE__ */ import_react34.default.createElement(import_system.Box, __spreadValues({
1260
+ as: "input",
1261
+ type: "range",
1262
+ css: { verticalAlign: "middle" },
1263
+ variant: `slider.${variant}`
1264
+ }, props));
1265
+ };
1266
+
1267
+ // src/Switch/Switch.tsx
1318
1268
  var import_react35 = __toESM(require("react"));
1269
+ var import_focus6 = require("@react-aria/focus");
1270
+ var import_switch = require("@react-aria/switch");
1271
+ var import_visually_hidden4 = require("@react-aria/visually-hidden");
1272
+ var import_toggle2 = require("@react-stately/toggle");
1273
+ var import_system7 = require("@marigold/system");
1274
+ var Switch = (_a) => {
1275
+ var _b = _a, {
1276
+ variant = "",
1277
+ labelVariant = "above",
1278
+ disabled
1279
+ } = _b, props = __objRest(_b, [
1280
+ "variant",
1281
+ "labelVariant",
1282
+ "disabled"
1283
+ ]);
1284
+ const state = (0, import_toggle2.useToggleState)(props);
1285
+ const ref = (0, import_react35.useRef)();
1286
+ const { inputProps } = (0, import_switch.useSwitch)(props, state, ref);
1287
+ const { focusProps } = (0, import_focus6.useFocusRing)();
1288
+ return /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1289
+ as: Label,
1290
+ __baseCSS: {
1291
+ userSelect: "none"
1292
+ },
1293
+ variant: labelVariant
1294
+ }, props.children, /* @__PURE__ */ import_react35.default.createElement(import_visually_hidden4.VisuallyHidden, null, /* @__PURE__ */ import_react35.default.createElement("input", __spreadProps(__spreadValues(__spreadValues({}, inputProps), focusProps), {
1295
+ disabled,
1296
+ ref
1297
+ }))), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1298
+ as: "svg",
1299
+ __baseCSS: {
1300
+ cursor: disabled ? "not-allowed" : "pointer",
1301
+ width: 56,
1302
+ height: 32
1303
+ },
1304
+ "aria-hidden": "true"
1305
+ }, /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1306
+ as: "rect",
1307
+ __baseCSS: {
1308
+ x: 4,
1309
+ y: 4,
1310
+ rx: 12,
1311
+ width: 48,
1312
+ height: 24
1313
+ },
1314
+ variant: (0, import_system7.conditional)(`switch.${variant}`, {
1315
+ checked: state.isSelected,
1316
+ disabled
1317
+ })
1318
+ }), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, {
1319
+ as: "circle",
1320
+ __baseCSS: {
1321
+ boxShadow: "1px 1px 4px rgba(0, 0, 0, 0.25)",
1322
+ cx: state.isSelected ? 40 : 16,
1323
+ cy: 16,
1324
+ r: 11,
1325
+ fill: disabled ? "gray20" : "gray00"
1326
+ }
1327
+ })));
1328
+ };
1329
+
1330
+ // src/Textarea/Textarea.tsx
1331
+ var import_react36 = __toESM(require("react"));
1319
1332
  var import_textfield2 = require("@react-aria/textfield");
1320
- var import_icons9 = require("@marigold/icons");
1333
+ var import_icons8 = require("@marigold/icons");
1321
1334
  var Textarea = (_a) => {
1322
1335
  var _b = _a, {
1323
1336
  variant = "",
@@ -1334,14 +1347,14 @@ var Textarea = (_a) => {
1334
1347
  "required",
1335
1348
  "children"
1336
1349
  ]);
1337
- const ref = (0, import_react35.useRef)(null);
1350
+ const ref = (0, import_react36.useRef)(null);
1338
1351
  const { labelProps, inputProps, errorMessageProps } = (0, import_textfield2.useTextField)(__spreadProps(__spreadValues({}, props), {
1339
1352
  inputElementType: "textarea"
1340
1353
  }), ref);
1341
- return /* @__PURE__ */ import_react35.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react35.default.createElement(Label, __spreadValues({
1354
+ return /* @__PURE__ */ import_react36.default.createElement(import_system.Box, null, /* @__PURE__ */ import_react36.default.createElement(Label, __spreadValues({
1342
1355
  htmlFor,
1343
1356
  required
1344
- }, labelProps), props.label), /* @__PURE__ */ import_react35.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
1357
+ }, labelProps), props.label), /* @__PURE__ */ import_react36.default.createElement(import_system.Box, __spreadValues(__spreadProps(__spreadValues({
1345
1358
  as: "textarea",
1346
1359
  variant: `textarea.${variant}`,
1347
1360
  css: {
@@ -1349,13 +1362,73 @@ var Textarea = (_a) => {
1349
1362
  }
1350
1363
  }, inputProps), {
1351
1364
  ref
1352
- }), props)), error && errorMessage && /* @__PURE__ */ import_react35.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react35.default.createElement(import_icons9.Exclamation, {
1365
+ }), props)), error && errorMessage && /* @__PURE__ */ import_react36.default.createElement(ValidationMessage, __spreadValues({}, errorMessageProps), /* @__PURE__ */ import_react36.default.createElement(import_icons8.Exclamation, {
1353
1366
  size: 16
1354
1367
  }), errorMessage));
1355
1368
  };
1356
1369
 
1370
+ // src/Tiles/Tiles.tsx
1371
+ var import_react37 = __toESM(require("react"));
1372
+ var Tiles = import_react37.default.forwardRef(function Tiles2(_a, ref) {
1373
+ var _b = _a, { space = "none", itemMinWidth = "250px", children } = _b, props = __objRest(_b, ["space", "itemMinWidth", "children"]);
1374
+ return /* @__PURE__ */ import_react37.default.createElement(import_system.Box, __spreadValues({
1375
+ ref,
1376
+ display: "grid",
1377
+ __baseCSS: {
1378
+ gap: space,
1379
+ gridTemplateColumns: `repeat(auto-fit, minmax(min(${itemMinWidth}, 100%), 1fr))`
1380
+ }
1381
+ }, props), children);
1382
+ });
1383
+
1384
+ // src/Tooltip/Tooltip.tsx
1385
+ var import_react39 = __toESM(require("react"));
1386
+ var import_tooltip3 = require("@react-aria/tooltip");
1387
+ var import_utils3 = require("@react-aria/utils");
1388
+
1389
+ // src/Tooltip/TooltipTrigger.tsx
1390
+ var import_react38 = __toESM(require("react"));
1391
+ var import_focus7 = require("@react-aria/focus");
1392
+ var import_tooltip = require("@react-aria/tooltip");
1393
+ var import_tooltip2 = require("@react-stately/tooltip");
1394
+ var TooltipContext = import_react38.default.createContext({});
1395
+ var TooltipTrigger = (_a) => {
1396
+ var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1397
+ const [trigger, tooltip] = import_react38.default.Children.toArray(children);
1398
+ const state = (0, import_tooltip2.useTooltipTriggerState)(props);
1399
+ const tooltipTriggerRef = (0, import_react38.useRef)();
1400
+ const { triggerProps, tooltipProps } = (0, import_tooltip.useTooltipTrigger)({}, state, tooltipTriggerRef);
1401
+ return /* @__PURE__ */ import_react38.default.createElement(import_focus7.FocusableProvider, __spreadProps(__spreadValues({}, triggerProps), {
1402
+ ref: tooltipTriggerRef
1403
+ }), trigger, state.isOpen && /* @__PURE__ */ import_react38.default.createElement(TooltipContext.Provider, {
1404
+ value: __spreadValues({
1405
+ state
1406
+ }, tooltipProps)
1407
+ }, tooltip));
1408
+ };
1409
+
1410
+ // src/Tooltip/Tooltip.tsx
1411
+ var Tooltip = (_a) => {
1412
+ var _b = _a, {
1413
+ variant = "",
1414
+ children
1415
+ } = _b, props = __objRest(_b, [
1416
+ "variant",
1417
+ "children"
1418
+ ]);
1419
+ const _a2 = (0, import_react39.useContext)(TooltipContext), { state } = _a2, tooltipProviderProps = __objRest(_a2, ["state"]);
1420
+ const mergedProps = (0, import_utils3.mergeProps)(props, tooltipProviderProps);
1421
+ const { tooltipProps } = (0, import_tooltip3.useTooltip)(mergedProps, state);
1422
+ return /* @__PURE__ */ import_react39.default.createElement(import_system.Box, __spreadValues({
1423
+ position: "relative"
1424
+ }, tooltipProps), /* @__PURE__ */ import_react39.default.createElement(import_system.Box, __spreadValues({
1425
+ position: "absolute",
1426
+ variant: `tooltip.${variant}`
1427
+ }, mergedProps), children));
1428
+ };
1429
+
1357
1430
  // src/Input/Input.tsx
1358
- var import_react36 = __toESM(require("react"));
1431
+ var import_react40 = __toESM(require("react"));
1359
1432
  var Input = (_a) => {
1360
1433
  var _b = _a, {
1361
1434
  variant = "",
@@ -1364,7 +1437,7 @@ var Input = (_a) => {
1364
1437
  "variant",
1365
1438
  "type"
1366
1439
  ]);
1367
- return /* @__PURE__ */ import_react36.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1440
+ return /* @__PURE__ */ import_react40.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1368
1441
  as: "input",
1369
1442
  type,
1370
1443
  variant: `input.${variant}`
@@ -1372,27 +1445,64 @@ var Input = (_a) => {
1372
1445
  };
1373
1446
 
1374
1447
  // src/Container/Container.tsx
1375
- var import_react37 = __toESM(require("react"));
1448
+ var import_react41 = __toESM(require("react"));
1449
+ var import_tokens2 = require("@marigold/tokens");
1450
+ var ALIGNMENT3 = {
1451
+ left: "flex-start",
1452
+ center: "center",
1453
+ right: "flex-end"
1454
+ };
1376
1455
  var Container = (_a) => {
1377
- var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
1378
- return /* @__PURE__ */ import_react37.default.createElement(import_system.Box, __spreadProps(__spreadValues({}, props), {
1379
- width: "100%"
1380
- }), children);
1456
+ var _b = _a, {
1457
+ contentType = "content",
1458
+ size = "medium",
1459
+ align = "left",
1460
+ alignContainer = "left",
1461
+ children
1462
+ } = _b, props = __objRest(_b, [
1463
+ "contentType",
1464
+ "size",
1465
+ "align",
1466
+ "alignContainer",
1467
+ "children"
1468
+ ]);
1469
+ const maxWidth = import_tokens2.size[contentType][size];
1470
+ let gridTemplateColumns = `${maxWidth} 1fr 1fr`;
1471
+ let gridColumn = 1;
1472
+ if (alignContainer === "center") {
1473
+ gridTemplateColumns = `1fr ${maxWidth} 1fr`;
1474
+ gridColumn = 2;
1475
+ }
1476
+ if (alignContainer === "right") {
1477
+ gridTemplateColumns = `1fr 1fr ${maxWidth}`;
1478
+ gridColumn = 3;
1479
+ }
1480
+ return /* @__PURE__ */ import_react41.default.createElement(import_system.Box, __spreadValues({
1481
+ display: "grid",
1482
+ css: {
1483
+ gridTemplateColumns,
1484
+ placeItems: ALIGNMENT3[align],
1485
+ "> *": {
1486
+ gridColumn
1487
+ }
1488
+ }
1489
+ }, props), children);
1381
1490
  };
1382
1491
 
1383
1492
  // src/index.ts
1384
1493
  var import_collections = require("@react-stately/collections");
1385
- module.exports = __toCommonJS(src_exports);
1386
1494
  // Annotate the CommonJS export names for ESM import in node:
1387
1495
  0 && (module.exports = {
1388
1496
  ActionGroup,
1389
- Alert,
1497
+ Aside,
1498
+ Aspect,
1390
1499
  Badge,
1391
1500
  Box,
1501
+ Breakout,
1392
1502
  Button,
1393
1503
  Card,
1504
+ Center,
1394
1505
  Checkbox,
1395
- Column,
1396
1506
  Columns,
1397
1507
  Container,
1398
1508
  Dialog,
@@ -1415,9 +1525,14 @@ module.exports = __toCommonJS(src_exports);
1415
1525
  Select,
1416
1526
  Slider,
1417
1527
  Stack,
1528
+ Switch,
1418
1529
  Text,
1419
1530
  Textarea,
1420
1531
  ThemeProvider,
1532
+ Tiles,
1533
+ Tooltip,
1534
+ TooltipContext,
1535
+ TooltipTrigger,
1421
1536
  ValidationMessage,
1422
1537
  VisuallyHidden,
1423
1538
  useDialogButtonProps,