@studiolxd/brand 49.24.1 → 49.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/dist/_shared/tokens.js +23 -0
  3. package/dist/_types/atoms/Button/Button.d.ts +14 -0
  4. package/dist/_types/atoms/FileUpload/FileUpload.d.ts +22 -0
  5. package/dist/_types/molecules/LoadingRegion/LoadingRegion.d.ts +53 -0
  6. package/dist/_types/molecules/LoadingState/LoadingState.d.ts +50 -0
  7. package/dist/brand.css +41 -1
  8. package/dist/button.css +1 -1
  9. package/dist/button.js +57 -45
  10. package/dist/file-upload.css +1 -1
  11. package/dist/file-upload.js +129 -105
  12. package/dist/loading-region.css +1 -0
  13. package/dist/loading-region.js +61 -0
  14. package/dist/loading-state.css +1 -0
  15. package/dist/loading-state.js +52 -0
  16. package/dist/toaster.css +1 -1
  17. package/dist/tokens.css +45 -1
  18. package/package.json +11 -1
  19. package/src/tokens/components/button.css +2 -0
  20. package/src/tokens/index.css +2 -0
  21. package/src/tokens/molecules/loading-region.css +16 -0
  22. package/src/tokens/molecules/loading-region.ts +4 -0
  23. package/src/tokens/molecules/loading-state.css +17 -0
  24. package/src/tokens/molecules/loading-state.ts +4 -0
  25. package/src/tokens/scss/_index.legacy.scss +2 -0
  26. package/src/tokens/scss/_index.scss +2 -0
  27. package/src/tokens/scss/components/_button.scss +2 -0
  28. package/src/tokens/scss/molecules/_loading-region.scss +13 -0
  29. package/src/tokens/scss/molecules/_loading-state.scss +14 -0
  30. package/src/tokens/surface-dark-derived.css +2 -0
  31. package/src/tokens/surface-invert.css +2 -0
  32. package/src/tokens/surface-light.css +2 -0
  33. package/src/tokens/surface-public.css +1 -0
  34. package/src/tokens/tokens.json +23 -0
package/dist/button.css CHANGED
@@ -1 +1 @@
1
- .button{align-items:center;display:inline-flex}.button:not(.button--text){block-size:var(--button-height);padding-block:0}.button--primary{justify-content:var(--button-primary-justify-content);padding-inline:var(--button-primary-padding-inline);border-radius:var(--button-primary-border-radius);border-width:var(--button-primary-border-width);border-style:var(--button-primary-border-style);border-color:var(--button-primary-border);font-family:var(--button-primary-font-family);font-size:var(--button-primary-font-size);font-weight:var(--button-primary-font-weight);line-height:var(--button-primary-line-height);cursor:var(--button-primary-cursor);white-space:var(--button-primary-white-space);-webkit-text-decoration:var(--button-primary-text-decoration);text-decoration:var(--button-primary-text-decoration);background-color:var(--button-primary-bg);color:var(--button-primary-color);transition:background-color var(--button-primary-transition-duration) var(--button-primary-transition-easing), color var(--button-primary-transition-duration) var(--button-primary-transition-easing), border-color var(--button-primary-transition-duration) var(--button-primary-transition-easing)}.button--primary:hover{background-color:var(--button-primary-hover-bg);color:var(--button-primary-hover-color);border-color:var(--button-primary-hover-border)}.button--primary:active{background-color:var(--button-primary-active-bg);color:var(--button-primary-active-color);border-color:var(--button-primary-active-border)}.button--primary:focus-visible{outline:var(--button-primary-focus-ring-width) var(--button-primary-focus-ring-style) var(--button-primary-focus-ring-color);outline-offset:var(--button-primary-focus-ring-offset)}.button--primary:disabled,.button--primary[aria-disabled=true]{background-color:var(--button-primary-disabled-bg);color:var(--button-primary-disabled-color);border-color:var(--button-primary-disabled-border);cursor:var(--button-primary-disabled-cursor);pointer-events:none}.button--outline{justify-content:var(--button-outline-justify-content);padding-inline:var(--button-outline-padding-inline);border-radius:var(--button-outline-border-radius);border-width:var(--button-outline-border-width);border-style:var(--button-outline-border-style);border-color:var(--button-outline-border);font-family:var(--button-outline-font-family);font-size:var(--button-outline-font-size);font-weight:var(--button-outline-font-weight);line-height:var(--button-outline-line-height);cursor:var(--button-outline-cursor);white-space:var(--button-outline-white-space);-webkit-text-decoration:var(--button-outline-text-decoration);text-decoration:var(--button-outline-text-decoration);background-color:var(--button-outline-bg);color:var(--button-outline-color);transition:background-color var(--button-outline-transition-duration) var(--button-outline-transition-easing), color var(--button-outline-transition-duration) var(--button-outline-transition-easing), border-color var(--button-outline-transition-duration) var(--button-outline-transition-easing)}.button--outline:hover{background-color:var(--button-outline-hover-bg);color:var(--button-outline-hover-color);border-color:var(--button-outline-hover-border)}.button--outline:active{background-color:var(--button-outline-active-bg);color:var(--button-outline-active-color);border-color:var(--button-outline-active-border)}.button--outline:focus-visible{outline:var(--button-outline-focus-ring-width) var(--button-outline-focus-ring-style) var(--button-outline-focus-ring-color);outline-offset:var(--button-outline-focus-ring-offset)}.button--outline:disabled,.button--outline[aria-disabled=true]{color:var(--button-outline-disabled-color);border-color:var(--button-outline-disabled-border);cursor:var(--button-outline-disabled-cursor);pointer-events:none}.button--text{justify-content:var(--button-text-justify-content);padding-inline:var(--button-text-padding-inline);border-radius:var(--button-text-border-radius);border-width:var(--button-text-border-width);border-style:var(--button-text-border-style);border-color:var(--button-text-border);font-family:var(--button-text-font-family);font-size:var(--button-text-font-size);font-weight:var(--button-text-font-weight);line-height:var(--button-text-line-height);cursor:var(--button-text-cursor);white-space:var(--button-text-white-space);box-shadow:inset 0 calc(-1 * var(--button-text-underline-width)) 0 0 currentColor;background-color:var(--button-text-bg);color:var(--button-text-color);transition:color var(--button-text-transition-duration) var(--button-text-transition-easing);padding-block-end:var(--button-text-underline-offset);text-decoration:none}.button--text:hover{background-color:var(--button-text-hover-bg);color:var(--button-text-hover-color);border-color:var(--button-text-hover-border);box-shadow:inset 0 calc(-1 * var(--button-text-hover-underline-width)) 0 0 currentColor}.button--text:active{background-color:var(--button-text-active-bg);color:var(--button-text-active-color);border-color:var(--button-text-active-border);box-shadow:inset 0 calc(-1 * var(--button-text-hover-underline-width)) 0 0 currentColor}.button--text.button--ink{color:var(--button-text-ink-color);box-shadow:inset 0 calc(-1 * var(--button-text-ink-underline-width)) 0 0 currentColor}.button--text.button--ink:hover,.button--text.button--ink:active{color:var(--button-text-ink-color);box-shadow:inset 0 calc(-1 * var(--button-text-ink-hover-underline-width)) 0 0 currentColor}.button--text:focus-visible{outline:var(--button-text-focus-ring-width) var(--button-text-focus-ring-style) var(--button-text-focus-ring-color);outline-offset:var(--button-text-focus-ring-offset)}.button--text:disabled,.button--text[aria-disabled=true]{color:var(--button-text-disabled-color);cursor:var(--button-text-disabled-cursor);pointer-events:none}.button--ghost{justify-content:var(--button-ghost-justify-content);padding-inline:var(--button-ghost-padding-inline);border-radius:var(--button-ghost-border-radius);border-width:var(--button-ghost-border-width);border-style:var(--button-ghost-border-style);border-color:var(--button-ghost-border);font-family:var(--button-ghost-font-family);font-size:var(--button-ghost-font-size);font-weight:var(--button-ghost-font-weight);line-height:var(--button-ghost-line-height);cursor:var(--button-ghost-cursor);white-space:var(--button-ghost-white-space);-webkit-text-decoration:var(--button-ghost-text-decoration);text-decoration:var(--button-ghost-text-decoration);background-color:var(--button-ghost-bg);color:var(--button-ghost-color);transition:background-color var(--button-ghost-transition-duration) var(--button-ghost-transition-easing), color var(--button-ghost-transition-duration) var(--button-ghost-transition-easing)}.button--ghost:hover{background-color:var(--button-ghost-hover-bg);color:var(--button-ghost-hover-color)}.button--ghost:active{background-color:var(--button-ghost-active-bg);color:var(--button-ghost-active-color)}.button--ghost:focus-visible{outline:var(--button-ghost-focus-ring-width) var(--button-ghost-focus-ring-style) var(--button-ghost-focus-ring-color);outline-offset:var(--button-ghost-focus-ring-offset)}.button--ghost:disabled,.button--ghost[aria-disabled=true]{color:var(--button-ghost-disabled-color);cursor:var(--button-ghost-disabled-cursor);pointer-events:none}.button--outline.button--destructive-intent:not(:disabled):not([aria-disabled=true]){color:var(--button-destructive-color);border-color:var(--button-destructive-border)}.button--outline.button--destructive-intent:not(:disabled):not([aria-disabled=true]):hover{background-color:var(--button-destructive-hover-bg);color:var(--button-destructive-hover-color);border-color:var(--button-destructive-hover-border)}.button--outline.button--destructive-intent:not(:disabled):not([aria-disabled=true]):active{background-color:var(--button-destructive-active-bg);color:var(--button-destructive-active-color);border-color:var(--button-destructive-active-border)}.button--outline.button--destructive-intent:not(:disabled):not([aria-disabled=true]):focus-visible{outline-color:var(--button-destructive-focus-ring-color)}.button--text.button--destructive-intent:not(:disabled):not([aria-disabled=true]),.button--text.button--destructive-intent:not(:disabled):not([aria-disabled=true]):hover,.button--text.button--destructive-intent:not(:disabled):not([aria-disabled=true]):active{color:var(--button-destructive-color)}.button--text.button--destructive-intent:not(:disabled):not([aria-disabled=true]):focus-visible{outline-color:var(--button-destructive-focus-ring-color)}.button.button--sm:not(.button--text){block-size:var(--button-sm-height);padding-inline:var(--button-sm-padding-inline)}.button.button--sm{font-size:var(--button-sm-font-size)}.button.button--lg:not(.button--text){block-size:var(--button-lg-height);padding-inline:var(--button-lg-padding-inline)}.button.button--lg{font-size:var(--button-lg-font-size)}.button--block{width:var(--button-block-width)}@media (width<=767.98px){.button--block-mobile{width:var(--button-block-width)}}.button:not(.button--icon-only) .icon{--icon-size:1em}.button.button--icon-only{inline-size:var(--button-height);justify-content:center;padding-inline:0}.button.button--icon-only.button--sm{inline-size:var(--button-sm-height);padding-inline:0}.button.button--icon-only.button--lg{inline-size:var(--button-lg-height);padding-inline:0}
1
+ .button{align-items:center;display:inline-flex}.button:not(.button--text){block-size:var(--button-height);padding-block:0}.button--primary{justify-content:var(--button-primary-justify-content);padding-inline:var(--button-primary-padding-inline);border-radius:var(--button-primary-border-radius);border-width:var(--button-primary-border-width);border-style:var(--button-primary-border-style);border-color:var(--button-primary-border);font-family:var(--button-primary-font-family);font-size:var(--button-primary-font-size);font-weight:var(--button-primary-font-weight);line-height:var(--button-primary-line-height);cursor:var(--button-primary-cursor);white-space:var(--button-primary-white-space);-webkit-text-decoration:var(--button-primary-text-decoration);text-decoration:var(--button-primary-text-decoration);background-color:var(--button-primary-bg);color:var(--button-primary-color);transition:background-color var(--button-primary-transition-duration) var(--button-primary-transition-easing), color var(--button-primary-transition-duration) var(--button-primary-transition-easing), border-color var(--button-primary-transition-duration) var(--button-primary-transition-easing)}.button--primary:hover{background-color:var(--button-primary-hover-bg);color:var(--button-primary-hover-color);border-color:var(--button-primary-hover-border)}.button--primary:active{background-color:var(--button-primary-active-bg);color:var(--button-primary-active-color);border-color:var(--button-primary-active-border)}.button--primary:focus-visible{outline:var(--button-primary-focus-ring-width) var(--button-primary-focus-ring-style) var(--button-primary-focus-ring-color);outline-offset:var(--button-primary-focus-ring-offset)}.button--primary:disabled,.button--primary[aria-disabled=true]{background-color:var(--button-primary-disabled-bg);color:var(--button-primary-disabled-color);border-color:var(--button-primary-disabled-border);cursor:var(--button-primary-disabled-cursor);pointer-events:none}.button--outline{justify-content:var(--button-outline-justify-content);padding-inline:var(--button-outline-padding-inline);border-radius:var(--button-outline-border-radius);border-width:var(--button-outline-border-width);border-style:var(--button-outline-border-style);border-color:var(--button-outline-border);font-family:var(--button-outline-font-family);font-size:var(--button-outline-font-size);font-weight:var(--button-outline-font-weight);line-height:var(--button-outline-line-height);cursor:var(--button-outline-cursor);white-space:var(--button-outline-white-space);-webkit-text-decoration:var(--button-outline-text-decoration);text-decoration:var(--button-outline-text-decoration);background-color:var(--button-outline-bg);color:var(--button-outline-color);transition:background-color var(--button-outline-transition-duration) var(--button-outline-transition-easing), color var(--button-outline-transition-duration) var(--button-outline-transition-easing), border-color var(--button-outline-transition-duration) var(--button-outline-transition-easing)}.button--outline:hover{background-color:var(--button-outline-hover-bg);color:var(--button-outline-hover-color);border-color:var(--button-outline-hover-border)}.button--outline:active{background-color:var(--button-outline-active-bg);color:var(--button-outline-active-color);border-color:var(--button-outline-active-border)}.button--outline:focus-visible{outline:var(--button-outline-focus-ring-width) var(--button-outline-focus-ring-style) var(--button-outline-focus-ring-color);outline-offset:var(--button-outline-focus-ring-offset)}.button--outline:disabled,.button--outline[aria-disabled=true]{color:var(--button-outline-disabled-color);border-color:var(--button-outline-disabled-border);cursor:var(--button-outline-disabled-cursor);pointer-events:none}.button--text{justify-content:var(--button-text-justify-content);padding-inline:var(--button-text-padding-inline);border-radius:var(--button-text-border-radius);border-width:var(--button-text-border-width);border-style:var(--button-text-border-style);border-color:var(--button-text-border);font-family:var(--button-text-font-family);font-size:var(--button-text-font-size);font-weight:var(--button-text-font-weight);line-height:var(--button-text-line-height);cursor:var(--button-text-cursor);white-space:var(--button-text-white-space);box-shadow:inset 0 calc(-1 * var(--button-text-underline-width)) 0 0 currentColor;background-color:var(--button-text-bg);color:var(--button-text-color);transition:color var(--button-text-transition-duration) var(--button-text-transition-easing);padding-block-end:var(--button-text-underline-offset);text-decoration:none}.button--text:hover{background-color:var(--button-text-hover-bg);color:var(--button-text-hover-color);border-color:var(--button-text-hover-border);box-shadow:inset 0 calc(-1 * var(--button-text-hover-underline-width)) 0 0 currentColor}.button--text:active{background-color:var(--button-text-active-bg);color:var(--button-text-active-color);border-color:var(--button-text-active-border);box-shadow:inset 0 calc(-1 * var(--button-text-hover-underline-width)) 0 0 currentColor}.button--text.button--ink{color:var(--button-text-ink-color);box-shadow:inset 0 calc(-1 * var(--button-text-ink-underline-width)) 0 0 currentColor}.button--text.button--ink:hover,.button--text.button--ink:active{color:var(--button-text-ink-color);box-shadow:inset 0 calc(-1 * var(--button-text-ink-hover-underline-width)) 0 0 currentColor}.button--text:focus-visible{outline:var(--button-text-focus-ring-width) var(--button-text-focus-ring-style) var(--button-text-focus-ring-color);outline-offset:var(--button-text-focus-ring-offset)}.button--text:disabled,.button--text[aria-disabled=true]{color:var(--button-text-disabled-color);cursor:var(--button-text-disabled-cursor);pointer-events:none}.button--ghost{justify-content:var(--button-ghost-justify-content);padding-inline:var(--button-ghost-padding-inline);border-radius:var(--button-ghost-border-radius);border-width:var(--button-ghost-border-width);border-style:var(--button-ghost-border-style);border-color:var(--button-ghost-border);font-family:var(--button-ghost-font-family);font-size:var(--button-ghost-font-size);font-weight:var(--button-ghost-font-weight);line-height:var(--button-ghost-line-height);cursor:var(--button-ghost-cursor);white-space:var(--button-ghost-white-space);-webkit-text-decoration:var(--button-ghost-text-decoration);text-decoration:var(--button-ghost-text-decoration);background-color:var(--button-ghost-bg);color:var(--button-ghost-color);transition:background-color var(--button-ghost-transition-duration) var(--button-ghost-transition-easing), color var(--button-ghost-transition-duration) var(--button-ghost-transition-easing)}.button--ghost:hover{background-color:var(--button-ghost-hover-bg);color:var(--button-ghost-hover-color)}.button--ghost:active{background-color:var(--button-ghost-active-bg);color:var(--button-ghost-active-color)}.button--ghost:focus-visible{outline:var(--button-ghost-focus-ring-width) var(--button-ghost-focus-ring-style) var(--button-ghost-focus-ring-color);outline-offset:var(--button-ghost-focus-ring-offset)}.button--ghost:disabled,.button--ghost[aria-disabled=true]{color:var(--button-ghost-disabled-color);cursor:var(--button-ghost-disabled-cursor);pointer-events:none}.button--outline.button--destructive-intent:not(:disabled):not([aria-disabled=true]){color:var(--button-destructive-color);border-color:var(--button-destructive-border)}.button--outline.button--destructive-intent:not(:disabled):not([aria-disabled=true]):hover{background-color:var(--button-destructive-hover-bg);color:var(--button-destructive-hover-color);border-color:var(--button-destructive-hover-border)}.button--outline.button--destructive-intent:not(:disabled):not([aria-disabled=true]):active{background-color:var(--button-destructive-active-bg);color:var(--button-destructive-active-color);border-color:var(--button-destructive-active-border)}.button--outline.button--destructive-intent:not(:disabled):not([aria-disabled=true]):focus-visible{outline-color:var(--button-destructive-focus-ring-color)}.button--text.button--destructive-intent:not(:disabled):not([aria-disabled=true]),.button--text.button--destructive-intent:not(:disabled):not([aria-disabled=true]):hover,.button--text.button--destructive-intent:not(:disabled):not([aria-disabled=true]):active{color:var(--button-destructive-color)}.button--text.button--destructive-intent:not(:disabled):not([aria-disabled=true]):focus-visible{outline-color:var(--button-destructive-focus-ring-color)}.button.button--sm:not(.button--text){block-size:var(--button-sm-height);padding-inline:var(--button-sm-padding-inline)}.button.button--sm{font-size:var(--button-sm-font-size)}.button.button--lg:not(.button--text){block-size:var(--button-lg-height);padding-inline:var(--button-lg-padding-inline)}.button.button--lg{font-size:var(--button-lg-font-size)}.button--block{width:var(--button-block-width)}@media (width<=767.98px){.button--block-mobile{width:var(--button-block-width)}}.button:not(.button--icon-only) .icon{--icon-size:1em}.button.button--icon-only{inline-size:var(--button-height);justify-content:center;padding-inline:0}.button.button--icon-only.button--sm{inline-size:var(--button-sm-height);padding-inline:0}.button.button--icon-only.button--lg{inline-size:var(--button-lg-height);padding-inline:0}.button__spinner{margin-inline-end:var(--button-loading-gap);display:inline-flex}.button.button--icon-only .button__spinner{margin-inline-end:0}.button .button__spinner .spinner__square{width:var(--button-loading-spinner-size);height:var(--button-loading-spinner-size)}
package/dist/button.js CHANGED
@@ -1,60 +1,72 @@
1
1
  'use client';
2
2
  import './button.css';
3
- import { n as e } from "./_shared/form-size.js";
4
- import { forwardRef as t } from "react";
5
- import { jsx as n } from "react/jsx-runtime";
6
- import { useRender as r } from "@base-ui/react/use-render";
3
+ import { Spinner as e } from "./spinner.js";
4
+ import { n as t } from "./_shared/form-size.js";
5
+ import { forwardRef as n } from "react";
6
+ import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
7
+ import { useRender as o } from "@base-ui/react/use-render";
7
8
  //#region src/stories/atoms/Button/Button.tsx
8
- var i = t(function({ variant: t = "primary", tone: i = "accent", destructive: a = !1, size: o, block: s = !1, iconOnly: c = !1, children: l, type: u = "button", disabled: d, onClick: f, href: p, external: m = !1, render: h, className: g, ..._ }, v) {
9
- let y = e(o), b = [
9
+ var s = n(function({ variant: n = "primary", tone: s = "accent", destructive: c = !1, size: l, block: u = !1, iconOnly: d = !1, children: f, type: p = "button", disabled: m, loading: h = !1, onClick: g, href: _, external: v = !1, render: y, className: b, ...x }, S) {
10
+ let C = t(l), w = [
10
11
  "button",
11
- `button--${t}`,
12
- t === "text" && i === "ink" ? "button--ink" : "",
13
- a ? "button--destructive-intent" : "",
14
- y === "md" ? "" : `button--${y}`,
15
- s === "mobile" ? "button--block-mobile" : s ? "button--block" : "",
16
- c ? "button--icon-only" : "",
17
- g ?? ""
18
- ].filter(Boolean).join(" "), x = (e) => {
19
- if (d) {
12
+ `button--${n}`,
13
+ n === "text" && s === "ink" ? "button--ink" : "",
14
+ c ? "button--destructive-intent" : "",
15
+ C === "md" ? "" : `button--${C}`,
16
+ u === "mobile" ? "button--block-mobile" : u ? "button--block" : "",
17
+ d ? "button--icon-only" : "",
18
+ h ? "button--loading" : "",
19
+ b ?? ""
20
+ ].filter(Boolean).join(" "), T = !!m || h, E = (e) => {
21
+ if (T) {
20
22
  e.preventDefault(), e.stopPropagation();
21
23
  return;
22
24
  }
23
- f?.(e);
24
- };
25
- return r({
26
- render: h,
27
- ref: v,
28
- enabled: h !== void 0,
25
+ g?.(e);
26
+ }, D = h ? /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("span", {
27
+ className: "button__spinner",
28
+ children: /* @__PURE__ */ i(e, {
29
+ size: "sm",
30
+ "aria-hidden": !0
31
+ })
32
+ }), d ? null : f] }) : f;
33
+ return o({
34
+ render: y,
35
+ ref: S,
36
+ enabled: y !== void 0,
29
37
  props: {
30
- className: b,
31
- "aria-disabled": d ? !0 : void 0,
32
- onClick: x,
33
- ..._,
34
- children: l
38
+ className: w,
39
+ "aria-disabled": T ? !0 : void 0,
40
+ "aria-busy": h ? !0 : void 0,
41
+ onClick: E,
42
+ ...x,
43
+ children: D
35
44
  }
36
- }) || (p === void 0 ? /* @__PURE__ */ n("button", {
37
- ref: v,
38
- className: b,
39
- type: u,
40
- disabled: d,
41
- onClick: f,
42
- ..._,
43
- children: l
44
- }) : /* @__PURE__ */ n("a", {
45
- ref: v,
46
- className: b,
47
- href: d ? void 0 : p,
48
- "aria-disabled": d ? !0 : void 0,
49
- role: d ? "link" : void 0,
50
- onClick: x,
51
- ...m ? {
45
+ }) || (_ === void 0 ? /* @__PURE__ */ i("button", {
46
+ ref: S,
47
+ className: w,
48
+ type: p,
49
+ disabled: m,
50
+ "aria-disabled": h ? !0 : void 0,
51
+ "aria-busy": h ? !0 : void 0,
52
+ onClick: E,
53
+ ...x,
54
+ children: D
55
+ }) : /* @__PURE__ */ i("a", {
56
+ ref: S,
57
+ className: w,
58
+ href: T ? void 0 : _,
59
+ "aria-disabled": T ? !0 : void 0,
60
+ "aria-busy": h ? !0 : void 0,
61
+ role: T ? "link" : void 0,
62
+ onClick: E,
63
+ ...v ? {
52
64
  target: "_blank",
53
65
  rel: "noopener noreferrer"
54
66
  } : {},
55
- ..._,
56
- children: l
67
+ ...x,
68
+ children: D
57
69
  }));
58
70
  });
59
71
  //#endregion
60
- export { i as Button };
72
+ export { s as Button };
@@ -1 +1 @@
1
- .file-upload{width:100%}.file-upload__dropzone{--_drop-color:var(--file-upload-border-color);--_drop-bg:var(--file-upload-bg);--_dash:var(--file-upload-border-dash-length);--_gap:var(--file-upload-border-dash-gap)}.file-upload.file-upload--sm{--file-upload-padding-block:var(--file-upload-sm-padding-block);--file-upload-padding-inline:var(--file-upload-sm-padding-inline);--file-upload-text-font-size:var(--file-upload-sm-text-font-size);--file-upload-subtext-font-size:var(--file-upload-sm-subtext-font-size);--file-upload-thumb-size:var(--file-upload-sm-thumb-size);--file-upload-item-name-font-size:var(--file-upload-sm-item-name-font-size)}.file-upload.file-upload--lg{--file-upload-padding-block:var(--file-upload-lg-padding-block);--file-upload-padding-inline:var(--file-upload-lg-padding-inline);--file-upload-text-font-size:var(--file-upload-lg-text-font-size);--file-upload-subtext-font-size:var(--file-upload-lg-subtext-font-size);--file-upload-thumb-size:var(--file-upload-lg-thumb-size);--file-upload-item-name-font-size:var(--file-upload-lg-item-name-font-size)}.file-upload__dropzone{justify-content:center;align-items:center;gap:var(--file-upload-gap);width:100%;padding-block:var(--file-upload-padding-block);padding-inline:var(--file-upload-padding-inline);background-image:repeating-linear-gradient(90deg, var(--_drop-color) 0, var(--_drop-color) var(--_dash), transparent var(--_dash), transparent calc(var(--_dash) + var(--_gap))), repeating-linear-gradient(90deg, var(--_drop-color) 0, var(--_drop-color) var(--_dash), transparent var(--_dash), transparent calc(var(--_dash) + var(--_gap))), repeating-linear-gradient(180deg, var(--_drop-color) 0, var(--_drop-color) var(--_dash), transparent var(--_dash), transparent calc(var(--_dash) + var(--_gap))), repeating-linear-gradient(180deg, var(--_drop-color) 0, var(--_drop-color) var(--_dash), transparent var(--_dash), transparent calc(var(--_dash) + var(--_gap)));background-size:100% var(--file-upload-border-width), 100% var(--file-upload-border-width), var(--file-upload-border-width) 100%, var(--file-upload-border-width) 100%;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-color:var(--_drop-bg);color:var(--file-upload-text-color);cursor:pointer;transition:background-image var(--file-upload-transition-duration) var(--file-upload-transition-easing), background-color var(--file-upload-transition-duration) var(--file-upload-transition-easing);text-align:center;box-sizing:border-box;outline:none;flex-direction:column;display:flex}.file-upload:has(input[type=file]:focus-visible) .file-upload__dropzone{outline:var(--input-focus-ring-width) solid var(--input-focus-ring-color);outline-offset:var(--file-upload-remove-focus-ring-offset)}.file-upload.file-upload--dragging .file-upload__dropzone{--_drop-color:var(--file-upload-drag-border-color);--_drop-bg:var(--file-upload-drag-bg)}.file-upload.file-upload--error .file-upload__dropzone{--_drop-color:var(--file-upload-error-border-color);--_drop-bg:var(--file-upload-error-bg)}.file-upload.file-upload--disabled .file-upload__dropzone{opacity:var(--file-upload-disabled-opacity);cursor:var(--file-upload-disabled-cursor);pointer-events:none}.file-upload__icon{color:var(--file-upload-icon-color);flex-shrink:0;margin-block-end:var(--file-upload-gap)}.file-upload__text{font-family:var(--file-upload-text-font-family);font-size:var(--file-upload-text-font-size);font-weight:var(--file-upload-text-font-weight);color:var(--file-upload-text-color)}.file-upload__text--secondary{color:var(--file-upload-subtext-color);font-weight:var(--file-upload-subtext-font-weight)}.file-upload__subtext{font-family:var(--file-upload-text-font-family);font-size:var(--file-upload-subtext-font-size);color:var(--file-upload-subtext-color);margin-block-start:var(--file-upload-gap)}.file-upload__list{gap:var(--file-upload-list-gap);flex-direction:column;margin:0;margin-block-start:var(--file-upload-list-margin-block-start);padding:0;list-style:none;display:flex}.file-upload__item{align-items:center;gap:var(--file-upload-item-gap);padding-block:var(--file-upload-item-padding-block);padding-inline:var(--file-upload-item-padding-inline);border-width:var(--file-upload-item-border-width);border-style:solid;border-color:var(--file-upload-item-border-color);border-radius:var(--file-upload-item-border-radius);background-color:var(--file-upload-item-bg);display:flex}.file-upload__item.file-upload__item--error{border-color:var(--file-upload-item-error-border-color);background-color:var(--file-upload-item-error-bg)}.file-upload__item-thumb{width:var(--file-upload-thumb-size);height:var(--file-upload-thumb-size);border-radius:var(--file-upload-thumb-border-radius);background-color:var(--file-upload-thumb-bg);color:var(--file-upload-thumb-icon-color);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.file-upload__item-thumb img{object-fit:cover;width:100%;height:100%}.file-upload__item-info{gap:var(--file-upload-item-info-gap);flex-direction:column;flex:1;min-width:0;display:flex}.file-upload__item-name{font-family:var(--file-upload-item-name-font-family);font-size:var(--file-upload-item-name-font-size);font-weight:var(--file-upload-item-name-font-weight);color:var(--file-upload-item-name-color);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-upload__item-size{font-family:var(--file-upload-item-name-font-family);font-size:var(--file-upload-item-size-font-size);color:var(--file-upload-item-size-color)}.file-upload__item-error-msg{font-family:var(--file-upload-item-name-font-family);font-size:var(--file-upload-item-error-font-size);color:var(--file-upload-item-error-color)}.file-upload__item-remove{cursor:pointer;color:var(--file-upload-remove-color);transition:color var(--file-upload-transition-duration) var(--file-upload-transition-easing);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.file-upload__item-remove:hover{color:var(--file-upload-remove-color-hover)}.file-upload__item-remove:focus-visible{outline:var(--input-focus-ring-width) solid var(--input-focus-ring-color);outline-offset:var(--file-upload-remove-focus-ring-offset);border-radius:var(--file-upload-remove-border-radius)}.file-upload__progress{margin-block-start:var(--file-upload-progress-margin-block-start)}
1
+ .file-upload{width:100%}.file-upload__dropzone{--_drop-color:var(--file-upload-border-color);--_drop-bg:var(--file-upload-bg);--_dash:var(--file-upload-border-dash-length);--_gap:var(--file-upload-border-dash-gap)}.file-upload.file-upload--sm{--file-upload-padding-block:var(--file-upload-sm-padding-block);--file-upload-padding-inline:var(--file-upload-sm-padding-inline);--file-upload-text-font-size:var(--file-upload-sm-text-font-size);--file-upload-subtext-font-size:var(--file-upload-sm-subtext-font-size);--file-upload-thumb-size:var(--file-upload-sm-thumb-size);--file-upload-item-name-font-size:var(--file-upload-sm-item-name-font-size)}.file-upload.file-upload--lg{--file-upload-padding-block:var(--file-upload-lg-padding-block);--file-upload-padding-inline:var(--file-upload-lg-padding-inline);--file-upload-text-font-size:var(--file-upload-lg-text-font-size);--file-upload-subtext-font-size:var(--file-upload-lg-subtext-font-size);--file-upload-thumb-size:var(--file-upload-lg-thumb-size);--file-upload-item-name-font-size:var(--file-upload-lg-item-name-font-size)}.file-upload__dropzone{justify-content:center;align-items:center;gap:var(--file-upload-gap);width:100%;padding-block:var(--file-upload-padding-block);padding-inline:var(--file-upload-padding-inline);background-image:repeating-linear-gradient(90deg, var(--_drop-color) 0, var(--_drop-color) var(--_dash), transparent var(--_dash), transparent calc(var(--_dash) + var(--_gap))), repeating-linear-gradient(90deg, var(--_drop-color) 0, var(--_drop-color) var(--_dash), transparent var(--_dash), transparent calc(var(--_dash) + var(--_gap))), repeating-linear-gradient(180deg, var(--_drop-color) 0, var(--_drop-color) var(--_dash), transparent var(--_dash), transparent calc(var(--_dash) + var(--_gap))), repeating-linear-gradient(180deg, var(--_drop-color) 0, var(--_drop-color) var(--_dash), transparent var(--_dash), transparent calc(var(--_dash) + var(--_gap)));background-size:100% var(--file-upload-border-width), 100% var(--file-upload-border-width), var(--file-upload-border-width) 100%, var(--file-upload-border-width) 100%;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-color:var(--_drop-bg);color:var(--file-upload-text-color);cursor:pointer;transition:background-image var(--file-upload-transition-duration) var(--file-upload-transition-easing), background-color var(--file-upload-transition-duration) var(--file-upload-transition-easing);text-align:center;box-sizing:border-box;outline:none;flex-direction:column;display:flex}.file-upload:has(input[type=file]:focus-visible) .file-upload__dropzone{outline:var(--input-focus-ring-width) solid var(--input-focus-ring-color);outline-offset:var(--file-upload-remove-focus-ring-offset)}.file-upload.file-upload--dragging .file-upload__dropzone{--_drop-color:var(--file-upload-drag-border-color);--_drop-bg:var(--file-upload-drag-bg)}.file-upload.file-upload--error .file-upload__dropzone{--_drop-color:var(--file-upload-error-border-color);--_drop-bg:var(--file-upload-error-bg)}.file-upload.file-upload--disabled .file-upload__dropzone{opacity:var(--file-upload-disabled-opacity);cursor:var(--file-upload-disabled-cursor);pointer-events:none}.file-upload.file-upload--uploading .file-upload__dropzone{cursor:progress;pointer-events:none}.file-upload.file-upload--uploading span.file-upload__icon{display:flex}.file-upload.file-upload--uploading .file-upload__item-remove{pointer-events:none}.file-upload__icon{color:var(--file-upload-icon-color);flex-shrink:0;margin-block-end:var(--file-upload-gap)}.file-upload__text{font-family:var(--file-upload-text-font-family);font-size:var(--file-upload-text-font-size);font-weight:var(--file-upload-text-font-weight);color:var(--file-upload-text-color)}.file-upload__text--secondary{color:var(--file-upload-subtext-color);font-weight:var(--file-upload-subtext-font-weight)}.file-upload__subtext{font-family:var(--file-upload-text-font-family);font-size:var(--file-upload-subtext-font-size);color:var(--file-upload-subtext-color);margin-block-start:var(--file-upload-gap)}.file-upload__list{gap:var(--file-upload-list-gap);flex-direction:column;margin:0;margin-block-start:var(--file-upload-list-margin-block-start);padding:0;list-style:none;display:flex}.file-upload__item{align-items:center;gap:var(--file-upload-item-gap);padding-block:var(--file-upload-item-padding-block);padding-inline:var(--file-upload-item-padding-inline);border-width:var(--file-upload-item-border-width);border-style:solid;border-color:var(--file-upload-item-border-color);border-radius:var(--file-upload-item-border-radius);background-color:var(--file-upload-item-bg);display:flex}.file-upload__item.file-upload__item--error{border-color:var(--file-upload-item-error-border-color);background-color:var(--file-upload-item-error-bg)}.file-upload__item-thumb{width:var(--file-upload-thumb-size);height:var(--file-upload-thumb-size);border-radius:var(--file-upload-thumb-border-radius);background-color:var(--file-upload-thumb-bg);color:var(--file-upload-thumb-icon-color);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.file-upload__item-thumb img{object-fit:cover;width:100%;height:100%}.file-upload__item-info{gap:var(--file-upload-item-info-gap);flex-direction:column;flex:1;min-width:0;display:flex}.file-upload__item-name{font-family:var(--file-upload-item-name-font-family);font-size:var(--file-upload-item-name-font-size);font-weight:var(--file-upload-item-name-font-weight);color:var(--file-upload-item-name-color);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-upload__item-size{font-family:var(--file-upload-item-name-font-family);font-size:var(--file-upload-item-size-font-size);color:var(--file-upload-item-size-color)}.file-upload__item-error-msg{font-family:var(--file-upload-item-name-font-family);font-size:var(--file-upload-item-error-font-size);color:var(--file-upload-item-error-color)}.file-upload__item-remove{cursor:pointer;color:var(--file-upload-remove-color);transition:color var(--file-upload-transition-duration) var(--file-upload-transition-easing);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.file-upload__item-remove:hover{color:var(--file-upload-remove-color-hover)}.file-upload__item-remove:focus-visible{outline:var(--input-focus-ring-width) solid var(--input-focus-ring-color);outline-offset:var(--file-upload-remove-focus-ring-offset);border-radius:var(--file-upload-remove-border-radius)}.file-upload__progress{margin-block-start:var(--file-upload-progress-margin-block-start)}
@@ -3,184 +3,208 @@ import './file-upload.css';
3
3
  import { n as e } from "./_shared/brandmessagescontext.js";
4
4
  import { Icon as t } from "./icon.js";
5
5
  import { VisuallyHidden as n } from "./visually-hidden.js";
6
- import { n as r } from "./_shared/form-size.js";
7
- import { t as i } from "./_shared/progressbar.js";
8
- import { i as a, n as o, t as s } from "./_shared/validate.js";
9
- import { forwardRef as c, useCallback as l, useEffect as u, useId as d, useRef as f, useState as p } from "react";
10
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
6
+ import { Spinner as r } from "./spinner.js";
7
+ import { n as i } from "./_shared/form-size.js";
8
+ import { t as ee } from "./_shared/progressbar.js";
9
+ import { i as te, n as a, t as o } from "./_shared/validate.js";
10
+ import { forwardRef as s, useCallback as c, useEffect as l, useId as ne, useRef as u, useState as d } from "react";
11
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
11
12
  //#region src/stories/atoms/FileUpload/FileUpload.tsx
12
- var g = /* @__PURE__ */ new WeakMap();
13
- function ee(e) {
13
+ var h = /* @__PURE__ */ new WeakMap();
14
+ function g(e) {
14
15
  if (!e.type.startsWith("image/")) return;
15
- let t = g.get(e);
16
- return t || (t = URL.createObjectURL(e), g.set(e, t)), t;
16
+ let t = h.get(e);
17
+ return t || (t = URL.createObjectURL(e), h.set(e, t)), t;
17
18
  }
18
19
  function _(e) {
19
- let t = g.get(e);
20
- t && (URL.revokeObjectURL(t), g.delete(e));
20
+ let t = h.get(e);
21
+ t && (URL.revokeObjectURL(t), h.delete(e));
21
22
  }
22
- function v(e, t) {
23
+ function re(e, t) {
23
24
  typeof e == "function" ? e(t) : e && (e.current = t);
24
25
  }
25
- var y = c(function({ multiple: c = !1, accept: g, maxSize: y, maxFiles: b, value: x, defaultValue: S = [], onChange: C, progress: w, disabled: T = !1, error: E = !1, id: D, name: te, describedBy: ne, ariaLabel: re, "aria-describedby": ie, "aria-label": ae, required: oe, onBlur: se, className: ce, locale: O = s, dropzoneLabel: le, dropzoneActiveLabel: ue, dropzoneHintLabel: de, maxSizeHint: fe, maxFilesHint: pe, filesLabel: me, progressLabel: he, removeFileLabel: k, tooLargeError: A, invalidTypeError: j, size: M }, N) {
26
- let P = e("fileUpload"), F = r(M), I = F === "sm" ? "sm" : F === "lg" ? "lg" : "md", L = x !== void 0, [R, z] = p(S), [B, V] = p(/* @__PURE__ */ new Map()), [H, U] = p(!1), W = f(/* @__PURE__ */ new Set()), G = f(null), ge = d(), K = D ?? `file-upload-${ge}`, q = L ? x : R;
27
- u(() => {
28
- q.forEach((e) => W.current.add(e));
29
- }, [q]), u(() => {
30
- let e = W.current;
26
+ var v = s(function({ multiple: s = !1, accept: h, maxSize: v, maxFiles: y, value: b, defaultValue: ie = [], onChange: x, progress: S, uploading: C = !1, uploadingLabel: w, uploadingLabelVisible: ae = !1, disabled: T = !1, error: E = !1, id: oe, name: se, describedBy: ce, ariaLabel: le, "aria-describedby": ue, "aria-label": de, required: fe, onBlur: pe, className: me, locale: D = o, dropzoneLabel: he, dropzoneActiveLabel: ge, dropzoneHintLabel: _e, maxSizeHint: ve, maxFilesHint: ye, filesLabel: be, progressLabel: xe, removeFileLabel: O, tooLargeError: k, invalidTypeError: A, size: j }, M) {
27
+ let N = e("fileUpload"), Se = e("spinner"), P = i(j), F = P === "sm" ? "sm" : P === "lg" ? "lg" : "md", I = b !== void 0, [L, R] = d(ie), [z, B] = d(/* @__PURE__ */ new Map()), [V, H] = d(!1), U = u(/* @__PURE__ */ new Set()), W = u(null), Ce = ne(), G = oe ?? `file-upload-${Ce}`, K = I ? b : L;
28
+ l(() => {
29
+ K.forEach((e) => U.current.add(e));
30
+ }, [K]), l(() => {
31
+ let e = U.current;
31
32
  return () => {
32
33
  e.forEach(_);
33
34
  };
34
35
  }, []);
35
- let J = l((e) => {
36
- if (T) return;
37
- let t = Array.from(e), n = L ? x ?? [] : R, r = new Map(B), i = [...n];
36
+ let q = c((e) => {
37
+ if (T || C) return;
38
+ let t = Array.from(e), n = I ? b ?? [] : L, r = new Map(z), i = [...n];
38
39
  for (let e of t) {
39
- if (b !== void 0 && i.filter((e) => !r.has(e)).length >= b) break;
40
- let t = a(e, g, y, P("tooLarge", A), P("invalidType", j), O);
40
+ if (y !== void 0 && i.filter((e) => !r.has(e)).length >= y) break;
41
+ let t = te(e, h, v, N("tooLarge", k), N("invalidType", A), D);
41
42
  t && r.set(e, t), i.push(e);
42
43
  }
43
- V(r), L || z(i), C?.(i.filter((e) => !r.has(e)));
44
+ B(r), I || R(i), x?.(i.filter((e) => !r.has(e)));
44
45
  }, [
45
46
  T,
46
- g,
47
+ C,
48
+ h,
49
+ v,
47
50
  y,
51
+ I,
48
52
  b,
49
53
  L,
54
+ z,
50
55
  x,
51
- R,
52
- B,
53
- C,
54
- P,
56
+ N,
57
+ k,
55
58
  A,
56
- j,
57
- O
58
- ]), _e = l((e) => {
59
- let t = (L ? x ?? [] : R).filter((t) => t !== e), n = new Map(B);
60
- n.delete(e), _(e), V(n), L || z(t), C?.(t.filter((e) => !n.has(e))), G.current && (G.current.value = "");
59
+ D
60
+ ]), we = c((e) => {
61
+ if (C) return;
62
+ let t = (I ? b ?? [] : L).filter((t) => t !== e), n = new Map(z);
63
+ n.delete(e), _(e), B(n), I || R(t), x?.(t.filter((e) => !n.has(e))), W.current && (W.current.value = "");
61
64
  }, [
65
+ C,
66
+ I,
67
+ b,
62
68
  L,
63
- x,
64
- R,
65
- B,
66
- C
67
- ]), ve = (e) => {
68
- e.target.files && J(e.target.files);
69
- }, ye = (e) => {
70
- e.preventDefault(), T || U(!0);
71
- }, be = (e) => {
72
- e.preventDefault(), U(!1);
73
- }, Y = (e) => {
74
- e.preventDefault(), U(!1), !T && e.dataTransfer.files && J(e.dataTransfer.files);
75
- }, xe = () => {
76
- T || G.current?.click();
77
- }, Se = [
69
+ z,
70
+ x
71
+ ]), Te = (e) => {
72
+ e.target.files && q(e.target.files);
73
+ }, Ee = (e) => {
74
+ e.preventDefault(), !T && !C && H(!0);
75
+ }, De = (e) => {
76
+ e.preventDefault(), H(!1);
77
+ }, Oe = (e) => {
78
+ e.preventDefault(), H(!1), !T && !C && e.dataTransfer.files && q(e.dataTransfer.files);
79
+ }, J = () => {
80
+ !T && !C && W.current?.click();
81
+ }, ke = [
78
82
  "file-upload",
79
- F === "md" ? "" : `file-upload--${F}`,
80
- H ? "file-upload--dragging" : "",
83
+ P === "md" ? "" : `file-upload--${P}`,
84
+ V ? "file-upload--dragging" : "",
81
85
  E ? "file-upload--error" : "",
82
86
  T ? "file-upload--disabled" : "",
83
- q.length > 0 ? "file-upload--has-files" : "",
84
- ce ?? ""
85
- ].filter(Boolean).join(" "), X = `${K}-hint`, Ce = [ne ?? ie, X].filter(Boolean).join(" "), Z = P("dropzone", le), Q = P("dropzoneHint", de), $ = [];
86
- return g && $.push(g), y && $.push(P("maxSize", fe)(o(y, O))), c && b && $.push(P("maxFiles", pe)(b)), /* @__PURE__ */ h("div", {
87
- className: Se,
87
+ C ? "file-upload--uploading" : "",
88
+ K.length > 0 ? "file-upload--has-files" : "",
89
+ me ?? ""
90
+ ].filter(Boolean).join(" "), Y = `${G}-hint`, Ae = [ce ?? ue, Y].filter(Boolean).join(" "), X = N("dropzone", he), Z = N("dropzoneHint", _e), Q = C ? Se("label", w) : "", je = C && ae && !!w, $ = [];
91
+ return h && $.push(h), v && $.push(N("maxSize", ve)(a(v, D))), s && y && $.push(N("maxFiles", ye)(y)), /* @__PURE__ */ m("div", {
92
+ className: ke,
88
93
  children: [
89
- /* @__PURE__ */ m(n, { children: /* @__PURE__ */ m("input", {
94
+ /* @__PURE__ */ p(n, { children: /* @__PURE__ */ p("input", {
90
95
  ref: (e) => {
91
- G.current = e, v(N, e);
96
+ W.current = e, re(M, e);
92
97
  },
93
98
  type: "file",
94
- id: K,
95
- name: te,
96
- multiple: c,
97
- accept: g,
99
+ id: G,
100
+ name: se,
101
+ multiple: s,
102
+ accept: h,
98
103
  disabled: T,
99
- required: oe,
100
- "aria-label": re ?? ae,
101
- "aria-describedby": Ce,
104
+ required: fe,
105
+ "aria-label": le ?? de,
106
+ "aria-describedby": Ae,
102
107
  "aria-invalid": E || void 0,
103
- onChange: ve,
104
- onBlur: se
108
+ "aria-busy": C || void 0,
109
+ "aria-disabled": C || void 0,
110
+ onClick: C ? (e) => e.preventDefault() : void 0,
111
+ onChange: Te,
112
+ onBlur: pe
105
113
  }) }),
106
- /* @__PURE__ */ h("div", {
114
+ /* @__PURE__ */ p("div", {
107
115
  className: "file-upload__dropzone",
108
- onClick: xe,
109
- onDragOver: ye,
110
- onDragLeave: be,
111
- onDrop: Y,
116
+ onClick: J,
117
+ onDragOver: Ee,
118
+ onDragLeave: De,
119
+ onDrop: Oe,
112
120
  "aria-hidden": "true",
113
- children: [
114
- /* @__PURE__ */ m(t, {
121
+ children: C ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p("span", {
122
+ className: "file-upload__icon",
123
+ children: /* @__PURE__ */ p(r, {
124
+ size: F,
125
+ "aria-hidden": !0
126
+ })
127
+ }), je && /* @__PURE__ */ p("span", {
128
+ className: "file-upload__text",
129
+ children: Q
130
+ })] }) : /* @__PURE__ */ m(f, { children: [
131
+ /* @__PURE__ */ p(t, {
115
132
  name: "upload",
116
- size: I,
133
+ size: F,
117
134
  className: "file-upload__icon"
118
135
  }),
119
- /* @__PURE__ */ m("span", {
136
+ /* @__PURE__ */ p("span", {
120
137
  className: "file-upload__text",
121
- children: H ? P("dropzoneActive", ue) : Z
138
+ children: V ? N("dropzoneActive", ge) : X
122
139
  }),
123
- /* @__PURE__ */ m("span", {
140
+ /* @__PURE__ */ p("span", {
124
141
  className: "file-upload__text file-upload__text--secondary",
125
- children: Q
142
+ children: Z
126
143
  }),
127
- $.length > 0 && /* @__PURE__ */ m("span", {
144
+ $.length > 0 && /* @__PURE__ */ p("span", {
128
145
  className: "file-upload__subtext",
129
146
  children: $.join(" · ")
130
147
  })
131
- ]
148
+ ] })
132
149
  }),
133
- /* @__PURE__ */ m(n, {
134
- id: X,
150
+ /* @__PURE__ */ p(n, {
151
+ id: Y,
135
152
  children: [
153
+ X,
136
154
  Z,
137
- Q,
138
155
  ...$
139
156
  ].join(". ")
140
157
  }),
141
- q.length > 0 && /* @__PURE__ */ m("ul", {
158
+ C && /* @__PURE__ */ p(n, {
159
+ role: "status",
160
+ "aria-live": "polite",
161
+ "aria-atomic": "false",
162
+ children: Q
163
+ }),
164
+ K.length > 0 && /* @__PURE__ */ p("ul", {
142
165
  className: "file-upload__list",
143
- "aria-label": P("files", me),
144
- children: q.map((e, n) => {
145
- let r = B.get(e), i = ee(e);
146
- return /* @__PURE__ */ h("li", {
166
+ "aria-label": N("files", be),
167
+ children: K.map((e, n) => {
168
+ let r = z.get(e), i = g(e);
169
+ return /* @__PURE__ */ m("li", {
147
170
  className: `file-upload__item${r ? " file-upload__item--error" : ""}`,
148
171
  children: [
149
- /* @__PURE__ */ m("div", {
172
+ /* @__PURE__ */ p("div", {
150
173
  className: "file-upload__item-thumb",
151
174
  "aria-hidden": "true",
152
- children: i ? /* @__PURE__ */ m("img", {
175
+ children: i ? /* @__PURE__ */ p("img", {
153
176
  src: i,
154
177
  alt: ""
155
- }) : /* @__PURE__ */ m(t, {
178
+ }) : /* @__PURE__ */ p(t, {
156
179
  name: "file-text",
157
180
  size: "sm"
158
181
  })
159
182
  }),
160
- /* @__PURE__ */ h("div", {
183
+ /* @__PURE__ */ m("div", {
161
184
  className: "file-upload__item-info",
162
185
  children: [
163
- /* @__PURE__ */ m("span", {
186
+ /* @__PURE__ */ p("span", {
164
187
  className: "file-upload__item-name",
165
188
  children: e.name
166
189
  }),
167
- /* @__PURE__ */ m("span", {
190
+ /* @__PURE__ */ p("span", {
168
191
  className: "file-upload__item-size",
169
- children: o(e.size, O)
192
+ children: a(e.size, D)
170
193
  }),
171
- r && /* @__PURE__ */ m("span", {
194
+ r && /* @__PURE__ */ p("span", {
172
195
  className: "file-upload__item-error-msg",
173
196
  role: "alert",
174
197
  children: r
175
198
  })
176
199
  ]
177
200
  }),
178
- /* @__PURE__ */ m("button", {
201
+ /* @__PURE__ */ p("button", {
179
202
  className: "file-upload__item-remove",
180
203
  type: "button",
181
- onClick: () => _e(e),
182
- "aria-label": P("removeFile", k)(e.name),
183
- children: /* @__PURE__ */ m(t, {
204
+ onClick: () => we(e),
205
+ "aria-disabled": C || void 0,
206
+ "aria-label": N("removeFile", O)(e.name),
207
+ children: /* @__PURE__ */ p(t, {
184
208
  name: "close",
185
209
  size: "sm"
186
210
  })
@@ -189,9 +213,9 @@ var y = c(function({ multiple: c = !1, accept: g, maxSize: y, maxFiles: b, value
189
213
  }, `${e.name}-${e.size}-${n}`);
190
214
  })
191
215
  }),
192
- w !== void 0 && /* @__PURE__ */ m(i, {
193
- value: w,
194
- label: P("progress", he),
216
+ S !== void 0 && /* @__PURE__ */ p(ee, {
217
+ value: S,
218
+ label: N("progress", xe),
195
219
  size: "sm",
196
220
  className: "file-upload__progress"
197
221
  })
@@ -199,4 +223,4 @@ var y = c(function({ multiple: c = !1, accept: g, maxSize: y, maxFiles: b, value
199
223
  });
200
224
  });
201
225
  //#endregion
202
- export { y as FileUpload };
226
+ export { v as FileUpload };
@@ -0,0 +1 @@
1
+ .loading-region{gap:var(--loading-region-gap);flex-direction:column;display:flex}.skeleton-text,.skeleton-list,.skeleton-table{flex-direction:column;display:flex}.skeleton-text{gap:var(--loading-region-text-gap)}.skeleton-list{gap:var(--loading-region-list-gap)}.skeleton-table{gap:var(--loading-region-table-gap)}.skeleton-text .skeleton.skeleton-text__line--last{width:var(--loading-region-text-last-line-width)}.skeleton-list .skeleton.skeleton-list__row{height:var(--loading-region-list-row-height)}.skeleton-table .skeleton.skeleton-table__header{height:var(--loading-region-table-header-height)}.skeleton-table .skeleton.skeleton-table__row{height:var(--loading-region-table-row-height)}.skeleton-grid{gap:var(--loading-region-grid-gap);display:grid}.skeleton-grid[data-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton-grid[data-columns="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.skeleton-grid[data-columns="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.skeleton-grid .skeleton.skeleton-grid__item{height:var(--loading-region-grid-item-height)}
@@ -0,0 +1,61 @@
1
+ 'use client';
2
+ import './loading-region.css';
3
+ import { n as e } from "./_shared/brandmessagescontext.js";
4
+ import { VisuallyHidden as t } from "./visually-hidden.js";
5
+ import { Skeleton as n } from "./skeleton.js";
6
+ import { useId as r } from "react";
7
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
8
+ //#region src/stories/molecules/LoadingRegion/LoadingRegion.tsx
9
+ function o({ label: n, announce: o = !0, children: s, className: c, ...l }) {
10
+ let u = e("spinner"), d = r(), f = ["loading-region", c].filter(Boolean).join(" ");
11
+ return o ? /* @__PURE__ */ a("div", {
12
+ className: f,
13
+ role: "status",
14
+ "aria-busy": "true",
15
+ "aria-labelledby": d,
16
+ ...l,
17
+ children: [/* @__PURE__ */ i(t, {
18
+ id: d,
19
+ children: u("label", n)
20
+ }), s]
21
+ }) : /* @__PURE__ */ i("div", {
22
+ className: f,
23
+ "aria-hidden": "true",
24
+ ...l,
25
+ children: s
26
+ });
27
+ }
28
+ function s(e) {
29
+ return Array.from({ length: Math.max(0, Math.floor(e)) }, (e, t) => t);
30
+ }
31
+ function c({ lines: e = 3 }) {
32
+ return /* @__PURE__ */ i("div", {
33
+ className: "skeleton-text",
34
+ "aria-hidden": "true",
35
+ children: s(e).map((t) => /* @__PURE__ */ i(n, { className: ["skeleton-text__line", t === e - 1 && e > 1 ? "skeleton-text__line--last" : ""].filter(Boolean).join(" ") }, t))
36
+ });
37
+ }
38
+ function l({ rows: e = 4 }) {
39
+ return /* @__PURE__ */ i("div", {
40
+ className: "skeleton-list",
41
+ "aria-hidden": "true",
42
+ children: s(e).map((e) => /* @__PURE__ */ i(n, { className: "skeleton-list__row" }, e))
43
+ });
44
+ }
45
+ function u({ rows: e = 4 }) {
46
+ return /* @__PURE__ */ a("div", {
47
+ className: "skeleton-table",
48
+ "aria-hidden": "true",
49
+ children: [/* @__PURE__ */ i(n, { className: "skeleton-table__header" }), s(e).map((e) => /* @__PURE__ */ i(n, { className: "skeleton-table__row" }, e))]
50
+ });
51
+ }
52
+ function d({ columns: e = 3, rows: t = 2 }) {
53
+ return /* @__PURE__ */ i("div", {
54
+ className: "skeleton-grid",
55
+ "data-columns": e,
56
+ "aria-hidden": "true",
57
+ children: s(e * t).map((e) => /* @__PURE__ */ i(n, { className: "skeleton-grid__item" }, e))
58
+ });
59
+ }
60
+ //#endregion
61
+ export { o as LoadingRegion, d as SkeletonGrid, l as SkeletonList, u as SkeletonTable, c as SkeletonText };
@@ -0,0 +1 @@
1
+ .loading-state{justify-content:center;align-items:center;gap:var(--loading-state-gap);block-size:100%;min-block-size:var(--loading-state-min-block-size);padding-block:var(--loading-state-padding-block);padding-inline:var(--loading-state-padding-inline);text-align:center;flex-direction:column;flex:auto;display:flex}.loading-state__spinner{color:var(--loading-state-spinner-color);display:flex}.loading-state__label{font-family:var(--loading-state-label-font-family);font-size:var(--loading-state-label-font-size);color:var(--loading-state-label-color);margin-block:0;margin-inline:0}.loading-state.loading-state--sm .loading-state__label{font-size:var(--loading-state-sm-label-font-size)}.loading-state.loading-state--sm{min-block-size:var(--loading-state-sm-min-block-size);padding-block:var(--loading-state-sm-padding-block)}.loading-state.loading-state--fill{min-block-size:calc(100dvh - var(--app-shell-chrome-block-start,0px) - 2 * var(--section-padding-block-lg))}