@umami/react-zen 0.125.0 → 0.127.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.css CHANGED
@@ -3222,60 +3222,57 @@ body a.Button_button__YTAxZ {
3222
3222
  }
3223
3223
 
3224
3224
  /* virtual-css:css:d2946ea0055c0d1ebfac02670168114b */
3225
- .Toast_toast__YjU0N {
3225
+ .Toast_toast__ODE0M {
3226
3226
  display: grid;
3227
3227
  grid-template-areas: "icon title action" "icon description action";
3228
3228
  grid-template-columns: auto 1fr auto;
3229
3229
  grid-auto-columns: auto;
3230
3230
  align-items: center;
3231
- background-color: var(--background-color);
3231
+ color: var(--base-color-1);
3232
+ background-color: var(--base-color-12);
3232
3233
  border-radius: var(--border-radius);
3233
3234
  box-shadow: var(--box-shadow-3);
3234
3235
  padding: var(--spacing-4) var(--spacing-5);
3235
3236
  border: var(--border);
3236
3237
  position: relative;
3237
3238
  }
3238
- .Toast_toast__YjU0N:has(.Toast_icon__YmFhZ) {
3239
+ .Toast_toast__ODE0M:has(.Toast_icon__ZmRlO) {
3239
3240
  grid-template-columns: auto 1fr auto;
3240
3241
  column-gap: var(--gap);
3241
3242
  }
3242
- .Toast_icon__YmFhZ {
3243
+ .Toast_icon__ZmRlO {
3243
3244
  grid-area: icon;
3244
3245
  }
3245
- .Toast_icon__YmFhZ:empty {
3246
+ .Toast_icon__ZmRlO:empty {
3246
3247
  display: none;
3247
3248
  }
3248
- .Toast_title__OGRhM {
3249
+ .Toast_title__OGFiM {
3249
3250
  grid-area: title;
3250
- color: var(--font-color);
3251
3251
  font-weight: 700;
3252
3252
  }
3253
- .Toast_description__MDBkN {
3253
+ .Toast_description__OTAxY {
3254
3254
  grid-area: description;
3255
3255
  }
3256
- .Toast_action__MjUxO {
3256
+ .Toast_action__YzYxM {
3257
3257
  grid-area: action;
3258
3258
  border: 0;
3259
3259
  background: transparent;
3260
3260
  }
3261
- .Toast_close__ZDVjN {
3261
+ .Toast_close__ZmMzM {
3262
+ grid-area: action;
3262
3263
  display: none;
3263
3264
  color: currentColor;
3264
- position: absolute;
3265
- right: var(--spacing-3);
3266
- top: 50%;
3267
- transform: translateY(-50%);
3268
3265
  }
3269
- .Toast_toast__YjU0N:hover .Toast_close__ZDVjN {
3266
+ .Toast_toast__ODE0M:hover .Toast_close__ZmMzM {
3270
3267
  display: block;
3271
3268
  cursor: pointer;
3272
3269
  }
3273
- .Toast_toast__YjU0N.Toast_info__ZDRhY {
3274
- color: var(--primary-font-color);
3275
- background: var(--primary-color);
3270
+ .Toast_toast__ODE0M.Toast_success__Y2ZhZ {
3271
+ color: var(--success-font-color);
3272
+ background: var(--success-color);
3276
3273
  border: 0;
3277
3274
  }
3278
- .Toast_toast__YjU0N.Toast_error__NmEwO {
3275
+ .Toast_toast__ODE0M.Toast_error__YzE0Y {
3279
3276
  color: var(--danger-font-color);
3280
3277
  background: var(--danger-color);
3281
3278
  border: 0;
@@ -4376,55 +4373,89 @@ body a.Button_button__YTAxZ {
4376
4373
  }
4377
4374
 
4378
4375
  /* virtual-css:css:e3e6aca5943038cfd68ddbab1d1ccf5e */
4379
- .RadioGroup_radiogroup__ZDJlY {
4376
+ .RadioGroup_radiogroup__ZjliM {
4377
+ display: grid;
4380
4378
  font-size: var(--font-size);
4381
4379
  color: var(--font-color);
4382
4380
  }
4383
- .RadioGroup_inputs__OTc1Y {
4381
+ .RadioGroup_inputs__NjA4N {
4384
4382
  display: flex;
4385
4383
  flex-direction: column;
4386
- gap: var(--spacing-4);
4384
+ gap: var(--spacing-3);
4387
4385
  }
4388
- .RadioGroup_radiogroup__ZDJlY[data-orientation=vertical] .RadioGroup_inputs__OTc1Y {
4386
+ .RadioGroup_radiogroup__ZjliM[data-orientation=vertical] .RadioGroup_inputs__NjA4N {
4389
4387
  flex-direction: column;
4390
4388
  }
4391
- .RadioGroup_radiogroup__ZDJlY[data-orientation=horizontal] .RadioGroup_inputs__OTc1Y {
4389
+ .RadioGroup_radiogroup__ZjliM[data-orientation=horizontal] .RadioGroup_inputs__NjA4N {
4392
4390
  flex-direction: row;
4393
- gap: var(--spacing-6);
4394
4391
  }
4395
- .RadioGroup_radio__ZDJiM {
4392
+ .RadioGroup_radio__MmE2Z {
4396
4393
  display: flex;
4397
4394
  align-items: center;
4398
4395
  gap: var(--gap);
4399
4396
  forced-color-adjust: none;
4400
- }
4401
- .RadioGroup_radio__ZDJiM:before {
4402
- content: "";
4403
- display: block;
4404
- width: 20px;
4405
- height: 20px;
4406
- box-sizing: border-box;
4407
- border: var(--border);
4408
- background: var(--background-color);
4409
- border-radius: 20px;
4397
+ cursor: pointer;
4410
4398
  transition: all 200ms;
4411
- box-shadow: var(--box-shadow);
4412
- }
4413
- .RadioGroup_radio__ZDJiM[data-pressed]:before {
4414
- border-color: var(--border-color);
4415
- }
4416
- .RadioGroup_radio__ZDJiM[data-selected]:before {
4417
- border-color: var(--primary-color);
4418
- border-width: 7px;
4419
4399
  }
4420
- .RadioGroup_radio__ZDJiM[data-selected][data-pressed]:before {
4421
- border-color: var(--primary-color);
4422
- }
4423
- .RadioGroup_radio__ZDJiM[data-disabled] {
4424
- color: var(--font-color-muted);
4400
+ .RadioGroup_radiogroup__ZjliM.RadioGroup_variant-circle__NzliY {
4401
+ &[data-orientation=horizontal] .RadioGroup_inputs__NjA4N {
4402
+ gap: var(--spacing-6);
4403
+ }
4404
+ & .RadioGroup_radio__MmE2Z:before {
4405
+ content: "";
4406
+ display: block;
4407
+ width: 20px;
4408
+ height: 20px;
4409
+ box-sizing: border-box;
4410
+ border: var(--border);
4411
+ background: var(--background-color);
4412
+ border-radius: 20px;
4413
+ transition: all 200ms;
4414
+ box-shadow: var(--box-shadow);
4415
+ }
4416
+ & .RadioGroup_radio__MmE2Z[data-pressed]:before {
4417
+ border-color: var(--border-color);
4418
+ }
4419
+ & .RadioGroup_radio__MmE2Z[data-selected]:before {
4420
+ border-color: var(--primary-color);
4421
+ border-width: 7px;
4422
+ }
4423
+ & .RadioGroup_radio__MmE2Z[data-selected][data-pressed]:before {
4424
+ border-color: var(--primary-color);
4425
+ }
4426
+ & .RadioGroup_radio__MmE2Z[data-disabled] {
4427
+ color: var(--font-color-muted);
4428
+ cursor: default;
4429
+ }
4430
+ & .RadioGroup_radio__MmE2Z[data-disabled]:before {
4431
+ background-color: var(--base-color-3);
4432
+ }
4425
4433
  }
4426
- .RadioGroup_radio__ZDJiM[data-disabled]:before {
4427
- background-color: var(--base-color-4);
4434
+ .RadioGroup_radiogroup__ZjliM.RadioGroup_variant-box__Mjk3N {
4435
+ & .RadioGroup_radio__MmE2Z {
4436
+ justify-content: center;
4437
+ padding: var(--padding);
4438
+ border: var(--border);
4439
+ border-radius: var(--border-radius);
4440
+ }
4441
+ & .RadioGroup_radio__MmE2Z[data-pressed] {
4442
+ border-color: var(--border-color);
4443
+ }
4444
+ & .RadioGroup_radio__MmE2Z[data-selected] {
4445
+ color: var(--primary-color);
4446
+ border-color: var(--primary-color);
4447
+ }
4448
+ & .RadioGroup_radio__MmE2Z[data-selected][data-pressed] {
4449
+ color: var(--primary-color);
4450
+ border-color: var(--primary-color);
4451
+ }
4452
+ & .RadioGroup_radio__MmE2Z[data-disabled] {
4453
+ color: var(--font-color-muted);
4454
+ cursor: default;
4455
+ }
4456
+ & .RadioGroup_radio__MmE2Z[data-disabled] {
4457
+ background-color: var(--base-color-3);
4458
+ }
4428
4459
  }
4429
4460
 
4430
4461
  /* virtual-css:css:851dd5366a20c382ffec60997ee93e35 */
package/dist/index.d.mts CHANGED
@@ -22,14 +22,17 @@ type FontColor = BaseColor | AccentColor | 'primary' | 'muted' | 'disabled' | tr
22
22
  type BackgroundColor = BaseColor | AccentColor | 'primary' | 'transparent' | true;
23
23
  type BorderColor = BaseColor | AccentColor | 'primary' | 'muted' | 'disabled' | 'transparent' | true;
24
24
  type HoverColor = FontColor;
25
+ type StrokeColor = FontColor;
26
+ type FillColor = FontColor;
25
27
  type Spacing = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';
26
28
  type NegativeSpacing = '-1' | '-2' | '-3' | '-4' | '-5' | '-6' | '-7' | '-8' | '-9' | '-10' | '-11' | '-12';
27
29
  type Padding = Spacing | NegativeSpacing | true;
28
- type Position = 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
29
30
  type Top = Spacing | NegativeSpacing | string;
30
31
  type Right = Spacing | NegativeSpacing | string;
31
32
  type Bottom = Spacing | NegativeSpacing | string;
32
33
  type Left = Spacing | NegativeSpacing | string;
34
+ type Gap = Spacing | true;
35
+ type Position = 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
33
36
  type Overflow = 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto';
34
37
  type Display = 'none' | 'inline' | 'inline-block' | 'block';
35
38
  type BorderPosition = true | 'top' | 'right' | 'bottom' | 'left';
@@ -124,9 +127,9 @@ interface FlexboxProps extends Omit<BoxProps, 'display'> {
124
127
  justifyItems?: Responsive<JustifyItems>;
125
128
  alignContent?: AlignContent;
126
129
  alignItems?: AlignItems;
127
- gap?: Responsive<Spacing | true>;
128
- gapX?: Responsive<Spacing | true>;
129
- gapY?: Responsive<Spacing | true>;
130
+ gap?: Responsive<Gap>;
131
+ gapX?: Responsive<Gap>;
132
+ gapY?: Responsive<Gap>;
130
133
  }
131
134
  declare function Flexbox({ display, direction, wrap, justifyContent, justifyItems, alignContent, alignItems, gap, gapX, gapY, className, style, children, ...props }: FlexboxProps): react.JSX.Element;
132
135
 
@@ -180,7 +183,7 @@ interface ToastProps extends HTMLAttributes<HTMLDivElement> {
180
183
  title?: string;
181
184
  actions?: string[];
182
185
  allowClose?: boolean;
183
- variant?: 'info' | 'error';
186
+ variant?: 'success' | 'error';
184
187
  onClose?: (action?: string) => void;
185
188
  }
186
189
  declare function Toast({ id, message, title, actions, allowClose, variant, className, children, onClose, ...props }: ToastProps): react.JSX.Element;
@@ -205,12 +208,13 @@ declare function useTheme(defaultTheme?: string): {
205
208
  setTheme: typeof setTheme;
206
209
  };
207
210
 
211
+ type ToastVariant = 'success' | 'error';
208
212
  interface ToastOptions {
209
213
  duration?: number;
210
214
  title?: string;
211
215
  actions?: string[];
212
216
  allowClose?: boolean;
213
- variant?: 'info' | 'error';
217
+ variant?: ToastVariant;
214
218
  onClose?: (action?: string) => void;
215
219
  }
216
220
  interface ToastState extends ToastOptions {
@@ -351,9 +355,9 @@ interface GridProps extends Omit<BoxProps, 'display'> {
351
355
  justifyItems?: Responsive<JustifyItems>;
352
356
  alignContent?: AlignContent;
353
357
  alignItems?: AlignItems;
354
- gap?: Responsive<Spacing>;
355
- gapX?: Responsive<Spacing>;
356
- gapY?: Responsive<Spacing>;
358
+ gap?: Responsive<Gap>;
359
+ gapX?: Responsive<Gap>;
360
+ gapY?: Responsive<Gap>;
357
361
  autoFlow?: Responsive<GridAutoFlow>;
358
362
  rows?: Responsive<GridTemplateRows>;
359
363
  columns?: Responsive<GridTemplateColumns>;
@@ -384,8 +388,8 @@ interface IconProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
384
388
  variant?: 'input';
385
389
  rotate?: number;
386
390
  strokeWidth?: string;
387
- strokeColor?: FontColor;
388
- fillColor?: FontColor;
391
+ strokeColor?: StrokeColor;
392
+ fillColor?: FillColor;
389
393
  }
390
394
  declare function Icon({ color, size, variant, rotate, strokeWidth, strokeColor, fillColor, style, className, children, ...props }: IconProps & HTMLAttributes<HTMLElement>): react.JSX.Element;
391
395
 
@@ -509,8 +513,9 @@ declare function ProgressCircle({ className, showValue, ...props }: ProgressCirc
509
513
 
510
514
  interface RadioGroupProps extends RadioGroupProps$1 {
511
515
  label?: string;
516
+ variant?: 'circle' | 'box';
512
517
  }
513
- declare function RadioGroup({ label, children, className, ...props }: RadioGroupProps): react.JSX.Element;
518
+ declare function RadioGroup({ variant, label, children, className, ...props }: RadioGroupProps): react.JSX.Element;
514
519
 
515
520
  declare function Radio({ children, className, ...props }: RadioProps): react.JSX.Element;
516
521
 
package/dist/index.d.ts CHANGED
@@ -22,14 +22,17 @@ type FontColor = BaseColor | AccentColor | 'primary' | 'muted' | 'disabled' | tr
22
22
  type BackgroundColor = BaseColor | AccentColor | 'primary' | 'transparent' | true;
23
23
  type BorderColor = BaseColor | AccentColor | 'primary' | 'muted' | 'disabled' | 'transparent' | true;
24
24
  type HoverColor = FontColor;
25
+ type StrokeColor = FontColor;
26
+ type FillColor = FontColor;
25
27
  type Spacing = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12';
26
28
  type NegativeSpacing = '-1' | '-2' | '-3' | '-4' | '-5' | '-6' | '-7' | '-8' | '-9' | '-10' | '-11' | '-12';
27
29
  type Padding = Spacing | NegativeSpacing | true;
28
- type Position = 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
29
30
  type Top = Spacing | NegativeSpacing | string;
30
31
  type Right = Spacing | NegativeSpacing | string;
31
32
  type Bottom = Spacing | NegativeSpacing | string;
32
33
  type Left = Spacing | NegativeSpacing | string;
34
+ type Gap = Spacing | true;
35
+ type Position = 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
33
36
  type Overflow = 'visible' | 'hidden' | 'clip' | 'scroll' | 'auto';
34
37
  type Display = 'none' | 'inline' | 'inline-block' | 'block';
35
38
  type BorderPosition = true | 'top' | 'right' | 'bottom' | 'left';
@@ -124,9 +127,9 @@ interface FlexboxProps extends Omit<BoxProps, 'display'> {
124
127
  justifyItems?: Responsive<JustifyItems>;
125
128
  alignContent?: AlignContent;
126
129
  alignItems?: AlignItems;
127
- gap?: Responsive<Spacing | true>;
128
- gapX?: Responsive<Spacing | true>;
129
- gapY?: Responsive<Spacing | true>;
130
+ gap?: Responsive<Gap>;
131
+ gapX?: Responsive<Gap>;
132
+ gapY?: Responsive<Gap>;
130
133
  }
131
134
  declare function Flexbox({ display, direction, wrap, justifyContent, justifyItems, alignContent, alignItems, gap, gapX, gapY, className, style, children, ...props }: FlexboxProps): react.JSX.Element;
132
135
 
@@ -180,7 +183,7 @@ interface ToastProps extends HTMLAttributes<HTMLDivElement> {
180
183
  title?: string;
181
184
  actions?: string[];
182
185
  allowClose?: boolean;
183
- variant?: 'info' | 'error';
186
+ variant?: 'success' | 'error';
184
187
  onClose?: (action?: string) => void;
185
188
  }
186
189
  declare function Toast({ id, message, title, actions, allowClose, variant, className, children, onClose, ...props }: ToastProps): react.JSX.Element;
@@ -205,12 +208,13 @@ declare function useTheme(defaultTheme?: string): {
205
208
  setTheme: typeof setTheme;
206
209
  };
207
210
 
211
+ type ToastVariant = 'success' | 'error';
208
212
  interface ToastOptions {
209
213
  duration?: number;
210
214
  title?: string;
211
215
  actions?: string[];
212
216
  allowClose?: boolean;
213
- variant?: 'info' | 'error';
217
+ variant?: ToastVariant;
214
218
  onClose?: (action?: string) => void;
215
219
  }
216
220
  interface ToastState extends ToastOptions {
@@ -351,9 +355,9 @@ interface GridProps extends Omit<BoxProps, 'display'> {
351
355
  justifyItems?: Responsive<JustifyItems>;
352
356
  alignContent?: AlignContent;
353
357
  alignItems?: AlignItems;
354
- gap?: Responsive<Spacing>;
355
- gapX?: Responsive<Spacing>;
356
- gapY?: Responsive<Spacing>;
358
+ gap?: Responsive<Gap>;
359
+ gapX?: Responsive<Gap>;
360
+ gapY?: Responsive<Gap>;
357
361
  autoFlow?: Responsive<GridAutoFlow>;
358
362
  rows?: Responsive<GridTemplateRows>;
359
363
  columns?: Responsive<GridTemplateColumns>;
@@ -384,8 +388,8 @@ interface IconProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
384
388
  variant?: 'input';
385
389
  rotate?: number;
386
390
  strokeWidth?: string;
387
- strokeColor?: FontColor;
388
- fillColor?: FontColor;
391
+ strokeColor?: StrokeColor;
392
+ fillColor?: FillColor;
389
393
  }
390
394
  declare function Icon({ color, size, variant, rotate, strokeWidth, strokeColor, fillColor, style, className, children, ...props }: IconProps & HTMLAttributes<HTMLElement>): react.JSX.Element;
391
395
 
@@ -509,8 +513,9 @@ declare function ProgressCircle({ className, showValue, ...props }: ProgressCirc
509
513
 
510
514
  interface RadioGroupProps extends RadioGroupProps$1 {
511
515
  label?: string;
516
+ variant?: 'circle' | 'box';
512
517
  }
513
- declare function RadioGroup({ label, children, className, ...props }: RadioGroupProps): react.JSX.Element;
518
+ declare function RadioGroup({ variant, label, children, className, ...props }: RadioGroupProps): react.JSX.Element;
514
519
 
515
520
  declare function Radio({ children, className, ...props }: RadioProps): react.JSX.Element;
516
521
 
package/dist/index.js CHANGED
@@ -26248,7 +26248,7 @@ function FormSubmitButton({
26248
26248
  var import_classnames9 = __toESM(require_classnames());
26249
26249
 
26250
26250
  // css-modules:E:\dev\umami-react-zen\src\components\toast\Toast.module.css
26251
- var Toast_default = { "toast": "Toast_toast__YjU0N", "icon": "Toast_icon__YmFhZ", "title": "Toast_title__OGRhM", "description": "Toast_description__MDBkN", "action": "Toast_action__MjUxO", "close": "Toast_close__ZDVjN", "info": "Toast_info__ZDRhY", "error": "Toast_error__NmEwO" };
26251
+ var Toast_default = { "toast": "Toast_toast__ODE0M", "icon": "Toast_icon__ZmRlO", "title": "Toast_title__OGFiM", "description": "Toast_description__OTAxY", "action": "Toast_action__YzYxM", "close": "Toast_close__ZmMzM", "success": "Toast_success__Y2ZhZ", "error": "Toast_error__YzE0Y" };
26252
26252
 
26253
26253
  // src/components/toast/Toast.tsx
26254
26254
  var import_jsx_runtime18 = require("react/jsx-runtime");
@@ -26270,15 +26270,24 @@ function Toast({
26270
26270
  title && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: Toast_default.title, children: title }),
26271
26271
  message && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: Toast_default.description, children: message }),
26272
26272
  hasActions && actions.map((action) => {
26273
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button2, { className: Toast_default.action, onPress: () => onClose?.(action), children: action }, action);
26273
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
26274
+ Button2,
26275
+ {
26276
+ variant: "outline",
26277
+ className: Toast_default.action,
26278
+ onPress: () => onClose?.(action),
26279
+ children: action
26280
+ },
26281
+ action
26282
+ );
26274
26283
  }),
26275
26284
  !hasActions && allowClose && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
26276
26285
  Icon2,
26277
26286
  {
26278
- size: "sm",
26279
26287
  "aria-hidden": true,
26280
- className: Toast_default.close,
26281
26288
  "aria-label": "Close",
26289
+ size: "sm",
26290
+ className: Toast_default.close,
26282
26291
  onClick: () => onClose?.(TOAST_CLOSE_ACTION),
26283
26292
  children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(X, {})
26284
26293
  }
@@ -31230,18 +31239,32 @@ function ProgressCircle({ className, showValue, ...props }) {
31230
31239
  var import_classnames42 = __toESM(require_classnames());
31231
31240
 
31232
31241
  // css-modules:E:\dev\umami-react-zen\src\components\RadioGroup.module.css
31233
- var RadioGroup_default = { "radiogroup": "RadioGroup_radiogroup__ZDJlY", "inputs": "RadioGroup_inputs__OTc1Y", "radio": "RadioGroup_radio__ZDJiM" };
31242
+ var RadioGroup_default = { "radiogroup": "RadioGroup_radiogroup__ZjliM", "inputs": "RadioGroup_inputs__NjA4N", "radio": "RadioGroup_radio__MmE2Z", "variant-circle": "RadioGroup_variant-circle__NzliY", "variant-box": "RadioGroup_variant-box__Mjk3N" };
31234
31243
 
31235
31244
  // src/components/RadioGroup.tsx
31236
31245
  var import_jsx_runtime56 = require("react/jsx-runtime");
31237
- function RadioGroup2({ label, children, className, ...props }) {
31238
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)($b6c3ddc6086f204d$export$a98f0dcb43a68a25, { ...props, className: (0, import_classnames42.default)(RadioGroup_default.radiogroup, className), children: [
31239
- label && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Label2, { children: label }),
31240
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: RadioGroup_default.inputs, children })
31241
- ] });
31246
+ function RadioGroup2({
31247
+ variant = "circle",
31248
+ label,
31249
+ children,
31250
+ className,
31251
+ ...props
31252
+ }) {
31253
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
31254
+ $b6c3ddc6086f204d$export$a98f0dcb43a68a25,
31255
+ {
31256
+ "aria-label": "RadioGroup",
31257
+ ...props,
31258
+ className: (0, import_classnames42.default)(RadioGroup_default.radiogroup, RadioGroup_default[`variant-${variant}`], className),
31259
+ children: [
31260
+ label && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Label2, { children: label }),
31261
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: RadioGroup_default.inputs, children })
31262
+ ]
31263
+ }
31264
+ );
31242
31265
  }
31243
31266
  function Radio2({ children, className, ...props }) {
31244
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)($b6c3ddc6086f204d$export$d7b12c4107be0d61, { ...props, className: (0, import_classnames42.default)(RadioGroup_default.radio, className), children });
31267
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)($b6c3ddc6086f204d$export$d7b12c4107be0d61, { "aria-label": "Radio", ...props, className: (0, import_classnames42.default)(RadioGroup_default.radio, className), children });
31245
31268
  }
31246
31269
 
31247
31270
  // src/components/SearchField.tsx
package/dist/index.mjs CHANGED
@@ -26135,7 +26135,7 @@ function FormSubmitButton({
26135
26135
  var import_classnames9 = __toESM(require_classnames());
26136
26136
 
26137
26137
  // css-modules:E:\dev\umami-react-zen\src\components\toast\Toast.module.css
26138
- var Toast_default = { "toast": "Toast_toast__YjU0N", "icon": "Toast_icon__YmFhZ", "title": "Toast_title__OGRhM", "description": "Toast_description__MDBkN", "action": "Toast_action__MjUxO", "close": "Toast_close__ZDVjN", "info": "Toast_info__ZDRhY", "error": "Toast_error__NmEwO" };
26138
+ var Toast_default = { "toast": "Toast_toast__ODE0M", "icon": "Toast_icon__ZmRlO", "title": "Toast_title__OGFiM", "description": "Toast_description__OTAxY", "action": "Toast_action__YzYxM", "close": "Toast_close__ZmMzM", "success": "Toast_success__Y2ZhZ", "error": "Toast_error__YzE0Y" };
26139
26139
 
26140
26140
  // src/components/toast/Toast.tsx
26141
26141
  import { jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
@@ -26157,15 +26157,24 @@ function Toast({
26157
26157
  title && /* @__PURE__ */ jsx18("div", { className: Toast_default.title, children: title }),
26158
26158
  message && /* @__PURE__ */ jsx18("div", { className: Toast_default.description, children: message }),
26159
26159
  hasActions && actions.map((action) => {
26160
- return /* @__PURE__ */ jsx18(Button2, { className: Toast_default.action, onPress: () => onClose?.(action), children: action }, action);
26160
+ return /* @__PURE__ */ jsx18(
26161
+ Button2,
26162
+ {
26163
+ variant: "outline",
26164
+ className: Toast_default.action,
26165
+ onPress: () => onClose?.(action),
26166
+ children: action
26167
+ },
26168
+ action
26169
+ );
26161
26170
  }),
26162
26171
  !hasActions && allowClose && /* @__PURE__ */ jsx18(
26163
26172
  Icon2,
26164
26173
  {
26165
- size: "sm",
26166
26174
  "aria-hidden": true,
26167
- className: Toast_default.close,
26168
26175
  "aria-label": "Close",
26176
+ size: "sm",
26177
+ className: Toast_default.close,
26169
26178
  onClick: () => onClose?.(TOAST_CLOSE_ACTION),
26170
26179
  children: /* @__PURE__ */ jsx18(X, {})
26171
26180
  }
@@ -31121,18 +31130,32 @@ function ProgressCircle({ className, showValue, ...props }) {
31121
31130
  var import_classnames42 = __toESM(require_classnames());
31122
31131
 
31123
31132
  // css-modules:E:\dev\umami-react-zen\src\components\RadioGroup.module.css
31124
- var RadioGroup_default = { "radiogroup": "RadioGroup_radiogroup__ZDJlY", "inputs": "RadioGroup_inputs__OTc1Y", "radio": "RadioGroup_radio__ZDJiM" };
31133
+ var RadioGroup_default = { "radiogroup": "RadioGroup_radiogroup__ZjliM", "inputs": "RadioGroup_inputs__NjA4N", "radio": "RadioGroup_radio__MmE2Z", "variant-circle": "RadioGroup_variant-circle__NzliY", "variant-box": "RadioGroup_variant-box__Mjk3N" };
31125
31134
 
31126
31135
  // src/components/RadioGroup.tsx
31127
31136
  import { jsx as jsx56, jsxs as jsxs31 } from "react/jsx-runtime";
31128
- function RadioGroup2({ label, children, className, ...props }) {
31129
- return /* @__PURE__ */ jsxs31($b6c3ddc6086f204d$export$a98f0dcb43a68a25, { ...props, className: (0, import_classnames42.default)(RadioGroup_default.radiogroup, className), children: [
31130
- label && /* @__PURE__ */ jsx56(Label2, { children: label }),
31131
- /* @__PURE__ */ jsx56("div", { className: RadioGroup_default.inputs, children })
31132
- ] });
31137
+ function RadioGroup2({
31138
+ variant = "circle",
31139
+ label,
31140
+ children,
31141
+ className,
31142
+ ...props
31143
+ }) {
31144
+ return /* @__PURE__ */ jsxs31(
31145
+ $b6c3ddc6086f204d$export$a98f0dcb43a68a25,
31146
+ {
31147
+ "aria-label": "RadioGroup",
31148
+ ...props,
31149
+ className: (0, import_classnames42.default)(RadioGroup_default.radiogroup, RadioGroup_default[`variant-${variant}`], className),
31150
+ children: [
31151
+ label && /* @__PURE__ */ jsx56(Label2, { children: label }),
31152
+ /* @__PURE__ */ jsx56("div", { className: RadioGroup_default.inputs, children })
31153
+ ]
31154
+ }
31155
+ );
31133
31156
  }
31134
31157
  function Radio2({ children, className, ...props }) {
31135
- return /* @__PURE__ */ jsx56($b6c3ddc6086f204d$export$d7b12c4107be0d61, { ...props, className: (0, import_classnames42.default)(RadioGroup_default.radio, className), children });
31158
+ return /* @__PURE__ */ jsx56($b6c3ddc6086f204d$export$d7b12c4107be0d61, { "aria-label": "Radio", ...props, className: (0, import_classnames42.default)(RadioGroup_default.radio, className), children });
31136
31159
  }
31137
31160
 
31138
31161
  // src/components/SearchField.tsx
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umami/react-zen",
3
- "version": "0.125.0",
3
+ "version": "0.127.0",
4
4
  "description": "Modern, minimalist React component library",
5
5
  "author": "Umami <hello@umami.is>",
6
6
  "license": "MIT",
package/styles.css CHANGED
@@ -237,7 +237,7 @@ html[data-theme='dark'], .dark-theme {
237
237
  --highlight-font-color: var(--font-color);
238
238
 
239
239
  --success-color: var(--accent-color-green);
240
- --success-font-color: var(--base-color-1);
240
+ --success-font-color: var(--base-color-12);
241
241
 
242
242
  --danger-color: var(--accent-color-red);
243
243
  --danger-font-color: var(--base-color-12);
@@ -3540,60 +3540,57 @@ body a.Button_button__YTAxZ {
3540
3540
  }
3541
3541
 
3542
3542
  /* virtual-css:css:d2946ea0055c0d1ebfac02670168114b */
3543
- .Toast_toast__YjU0N {
3543
+ .Toast_toast__ODE0M {
3544
3544
  display: grid;
3545
3545
  grid-template-areas: "icon title action" "icon description action";
3546
3546
  grid-template-columns: auto 1fr auto;
3547
3547
  grid-auto-columns: auto;
3548
3548
  align-items: center;
3549
- background-color: var(--background-color);
3549
+ color: var(--base-color-1);
3550
+ background-color: var(--base-color-12);
3550
3551
  border-radius: var(--border-radius);
3551
3552
  box-shadow: var(--box-shadow-3);
3552
3553
  padding: var(--spacing-4) var(--spacing-5);
3553
3554
  border: var(--border);
3554
3555
  position: relative;
3555
3556
  }
3556
- .Toast_toast__YjU0N:has(.Toast_icon__YmFhZ) {
3557
+ .Toast_toast__ODE0M:has(.Toast_icon__ZmRlO) {
3557
3558
  grid-template-columns: auto 1fr auto;
3558
3559
  column-gap: var(--gap);
3559
3560
  }
3560
- .Toast_icon__YmFhZ {
3561
+ .Toast_icon__ZmRlO {
3561
3562
  grid-area: icon;
3562
3563
  }
3563
- .Toast_icon__YmFhZ:empty {
3564
+ .Toast_icon__ZmRlO:empty {
3564
3565
  display: none;
3565
3566
  }
3566
- .Toast_title__OGRhM {
3567
+ .Toast_title__OGFiM {
3567
3568
  grid-area: title;
3568
- color: var(--font-color);
3569
3569
  font-weight: 700;
3570
3570
  }
3571
- .Toast_description__MDBkN {
3571
+ .Toast_description__OTAxY {
3572
3572
  grid-area: description;
3573
3573
  }
3574
- .Toast_action__MjUxO {
3574
+ .Toast_action__YzYxM {
3575
3575
  grid-area: action;
3576
3576
  border: 0;
3577
3577
  background: transparent;
3578
3578
  }
3579
- .Toast_close__ZDVjN {
3579
+ .Toast_close__ZmMzM {
3580
+ grid-area: action;
3580
3581
  display: none;
3581
3582
  color: currentColor;
3582
- position: absolute;
3583
- right: var(--spacing-3);
3584
- top: 50%;
3585
- transform: translateY(-50%);
3586
3583
  }
3587
- .Toast_toast__YjU0N:hover .Toast_close__ZDVjN {
3584
+ .Toast_toast__ODE0M:hover .Toast_close__ZmMzM {
3588
3585
  display: block;
3589
3586
  cursor: pointer;
3590
3587
  }
3591
- .Toast_toast__YjU0N.Toast_info__ZDRhY {
3592
- color: var(--primary-font-color);
3593
- background: var(--primary-color);
3588
+ .Toast_toast__ODE0M.Toast_success__Y2ZhZ {
3589
+ color: var(--success-font-color);
3590
+ background: var(--success-color);
3594
3591
  border: 0;
3595
3592
  }
3596
- .Toast_toast__YjU0N.Toast_error__NmEwO {
3593
+ .Toast_toast__ODE0M.Toast_error__YzE0Y {
3597
3594
  color: var(--danger-font-color);
3598
3595
  background: var(--danger-color);
3599
3596
  border: 0;
@@ -4694,55 +4691,89 @@ body a.Button_button__YTAxZ {
4694
4691
  }
4695
4692
 
4696
4693
  /* virtual-css:css:e3e6aca5943038cfd68ddbab1d1ccf5e */
4697
- .RadioGroup_radiogroup__ZDJlY {
4694
+ .RadioGroup_radiogroup__ZjliM {
4695
+ display: grid;
4698
4696
  font-size: var(--font-size);
4699
4697
  color: var(--font-color);
4700
4698
  }
4701
- .RadioGroup_inputs__OTc1Y {
4699
+ .RadioGroup_inputs__NjA4N {
4702
4700
  display: flex;
4703
4701
  flex-direction: column;
4704
- gap: var(--spacing-4);
4702
+ gap: var(--spacing-3);
4705
4703
  }
4706
- .RadioGroup_radiogroup__ZDJlY[data-orientation=vertical] .RadioGroup_inputs__OTc1Y {
4704
+ .RadioGroup_radiogroup__ZjliM[data-orientation=vertical] .RadioGroup_inputs__NjA4N {
4707
4705
  flex-direction: column;
4708
4706
  }
4709
- .RadioGroup_radiogroup__ZDJlY[data-orientation=horizontal] .RadioGroup_inputs__OTc1Y {
4707
+ .RadioGroup_radiogroup__ZjliM[data-orientation=horizontal] .RadioGroup_inputs__NjA4N {
4710
4708
  flex-direction: row;
4711
- gap: var(--spacing-6);
4712
4709
  }
4713
- .RadioGroup_radio__ZDJiM {
4710
+ .RadioGroup_radio__MmE2Z {
4714
4711
  display: flex;
4715
4712
  align-items: center;
4716
4713
  gap: var(--gap);
4717
4714
  forced-color-adjust: none;
4718
- }
4719
- .RadioGroup_radio__ZDJiM:before {
4720
- content: "";
4721
- display: block;
4722
- width: 20px;
4723
- height: 20px;
4724
- box-sizing: border-box;
4725
- border: var(--border);
4726
- background: var(--background-color);
4727
- border-radius: 20px;
4715
+ cursor: pointer;
4728
4716
  transition: all 200ms;
4729
- box-shadow: var(--box-shadow);
4730
- }
4731
- .RadioGroup_radio__ZDJiM[data-pressed]:before {
4732
- border-color: var(--border-color);
4733
- }
4734
- .RadioGroup_radio__ZDJiM[data-selected]:before {
4735
- border-color: var(--primary-color);
4736
- border-width: 7px;
4737
- }
4738
- .RadioGroup_radio__ZDJiM[data-selected][data-pressed]:before {
4739
- border-color: var(--primary-color);
4740
4717
  }
4741
- .RadioGroup_radio__ZDJiM[data-disabled] {
4742
- color: var(--font-color-muted);
4718
+ .RadioGroup_radiogroup__ZjliM.RadioGroup_variant-circle__NzliY {
4719
+ &[data-orientation=horizontal] .RadioGroup_inputs__NjA4N {
4720
+ gap: var(--spacing-6);
4721
+ }
4722
+ & .RadioGroup_radio__MmE2Z:before {
4723
+ content: "";
4724
+ display: block;
4725
+ width: 20px;
4726
+ height: 20px;
4727
+ box-sizing: border-box;
4728
+ border: var(--border);
4729
+ background: var(--background-color);
4730
+ border-radius: 20px;
4731
+ transition: all 200ms;
4732
+ box-shadow: var(--box-shadow);
4733
+ }
4734
+ & .RadioGroup_radio__MmE2Z[data-pressed]:before {
4735
+ border-color: var(--border-color);
4736
+ }
4737
+ & .RadioGroup_radio__MmE2Z[data-selected]:before {
4738
+ border-color: var(--primary-color);
4739
+ border-width: 7px;
4740
+ }
4741
+ & .RadioGroup_radio__MmE2Z[data-selected][data-pressed]:before {
4742
+ border-color: var(--primary-color);
4743
+ }
4744
+ & .RadioGroup_radio__MmE2Z[data-disabled] {
4745
+ color: var(--font-color-muted);
4746
+ cursor: default;
4747
+ }
4748
+ & .RadioGroup_radio__MmE2Z[data-disabled]:before {
4749
+ background-color: var(--base-color-3);
4750
+ }
4743
4751
  }
4744
- .RadioGroup_radio__ZDJiM[data-disabled]:before {
4745
- background-color: var(--base-color-4);
4752
+ .RadioGroup_radiogroup__ZjliM.RadioGroup_variant-box__Mjk3N {
4753
+ & .RadioGroup_radio__MmE2Z {
4754
+ justify-content: center;
4755
+ padding: var(--padding);
4756
+ border: var(--border);
4757
+ border-radius: var(--border-radius);
4758
+ }
4759
+ & .RadioGroup_radio__MmE2Z[data-pressed] {
4760
+ border-color: var(--border-color);
4761
+ }
4762
+ & .RadioGroup_radio__MmE2Z[data-selected] {
4763
+ color: var(--primary-color);
4764
+ border-color: var(--primary-color);
4765
+ }
4766
+ & .RadioGroup_radio__MmE2Z[data-selected][data-pressed] {
4767
+ color: var(--primary-color);
4768
+ border-color: var(--primary-color);
4769
+ }
4770
+ & .RadioGroup_radio__MmE2Z[data-disabled] {
4771
+ color: var(--font-color-muted);
4772
+ cursor: default;
4773
+ }
4774
+ & .RadioGroup_radio__MmE2Z[data-disabled] {
4775
+ background-color: var(--base-color-3);
4776
+ }
4746
4777
  }
4747
4778
 
4748
4779
  /* virtual-css:css:851dd5366a20c382ffec60997ee93e35 */