@tedi-design-system/react 18.1.0-rc.20 → 18.1.0-rc.22

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 (31) hide show
  1. package/bundle-stats.html +1 -1
  2. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.cjs.js +1 -1
  3. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.es.js +1 -1
  4. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  5. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.es.js +1 -1
  6. package/external/hoist-non-react-statics/external/react-is/index.cjs.js +1 -1
  7. package/external/hoist-non-react-statics/external/react-is/index.es.js +1 -1
  8. package/external/prop-types/external/react-is/cjs/react-is.development.cjs.js +1 -1
  9. package/external/prop-types/external/react-is/cjs/react-is.development.es.js +1 -1
  10. package/external/prop-types/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  11. package/external/prop-types/external/react-is/cjs/react-is.production.min.es.js +1 -1
  12. package/external/prop-types/external/react-is/index.cjs.js +1 -1
  13. package/external/prop-types/external/react-is/index.es.js +1 -1
  14. package/package.json +1 -1
  15. package/src/tedi/components/buttons/button-content/button-content.cjs.js +1 -1
  16. package/src/tedi/components/buttons/button-content/button-content.es.js +31 -30
  17. package/src/tedi/components/form/number-field/number-field.cjs.js +1 -1
  18. package/src/tedi/components/form/number-field/number-field.es.js +117 -112
  19. package/src/tedi/components/loaders/spinner/spinner.cjs.js +1 -1
  20. package/src/tedi/components/loaders/spinner/spinner.d.ts +7 -0
  21. package/src/tedi/components/loaders/spinner/spinner.es.js +29 -18
  22. package/src/tedi/components/overlays/overlay/overlay-content.cjs.js +1 -1
  23. package/src/tedi/components/overlays/overlay/overlay-content.es.js +14 -12
  24. package/src/tedi/components/overlays/overlay/overlay-trigger.cjs.js +1 -1
  25. package/src/tedi/components/overlays/overlay/overlay-trigger.es.js +16 -16
  26. package/src/tedi/components/overlays/overlay/overlay.cjs.js +1 -1
  27. package/src/tedi/components/overlays/overlay/overlay.d.ts +10 -0
  28. package/src/tedi/components/overlays/overlay/overlay.es.js +74 -71
  29. package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
  30. package/src/tedi/providers/label-provider/labels-map.d.ts +6 -6
  31. package/src/tedi/providers/label-provider/labels-map.es.js +9 -9
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../_virtual/react-is.development.cjs.js");/** @license React v16.13.1
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../_virtual/react-is.development.cjs2.js");/** @license React v16.13.1
2
2
  * react-is.development.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -1,4 +1,4 @@
1
- import { __exports as r } from "../../../../../_virtual/react-is.development.es.js";
1
+ import { __exports as r } from "../../../../../_virtual/react-is.development.es2.js";
2
2
  /** @license React v16.13.1
3
3
  * react-is.development.js
4
4
  *
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../_virtual/react-is.production.min.cjs.js");/** @license React v16.13.1
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../_virtual/react-is.production.min.cjs2.js");/** @license React v16.13.1
2
2
  * react-is.production.min.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -1,4 +1,4 @@
1
- import { __exports as r } from "../../../../../_virtual/react-is.production.min.es.js";
1
+ import { __exports as r } from "../../../../../_virtual/react-is.production.min.es2.js";
2
2
  /** @license React v16.13.1
3
3
  * react-is.production.min.js
4
4
  *
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../_virtual/index.cjs3.js"),r=require("./cjs/react-is.production.min.cjs.js"),o=require("./cjs/react-is.development.cjs.js");process.env.NODE_ENV==="production"?e.__module.exports=r.__require():e.__module.exports=o.__require();var t=e.__module.exports;exports.reactIsExports=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../_virtual/index.cjs4.js"),r=require("./cjs/react-is.production.min.cjs.js"),o=require("./cjs/react-is.development.cjs.js");process.env.NODE_ENV==="production"?e.__module.exports=r.__require():e.__module.exports=o.__require();var t=e.__module.exports;exports.reactIsExports=t;
@@ -1,4 +1,4 @@
1
- import { __module as r } from "../../../../_virtual/index.es3.js";
1
+ import { __module as r } from "../../../../_virtual/index.es4.js";
2
2
  import { __require as e } from "./cjs/react-is.production.min.es.js";
3
3
  import { __require as o } from "./cjs/react-is.development.es.js";
4
4
  process.env.NODE_ENV === "production" ? r.exports = e() : r.exports = o();
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../_virtual/react-is.development.cjs2.js");/** @license React v16.13.1
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../_virtual/react-is.development.cjs.js");/** @license React v16.13.1
2
2
  * react-is.development.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -1,4 +1,4 @@
1
- import { __exports as r } from "../../../../../_virtual/react-is.development.es2.js";
1
+ import { __exports as r } from "../../../../../_virtual/react-is.development.es.js";
2
2
  /** @license React v16.13.1
3
3
  * react-is.development.js
4
4
  *
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../_virtual/react-is.production.min.cjs2.js");/** @license React v16.13.1
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../../../../_virtual/react-is.production.min.cjs.js");/** @license React v16.13.1
2
2
  * react-is.production.min.js
3
3
  *
4
4
  * Copyright (c) Facebook, Inc. and its affiliates.
@@ -1,4 +1,4 @@
1
- import { __exports as r } from "../../../../../_virtual/react-is.production.min.es2.js";
1
+ import { __exports as r } from "../../../../../_virtual/react-is.production.min.es.js";
2
2
  /** @license React v16.13.1
3
3
  * react-is.production.min.js
4
4
  *
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../_virtual/index.cjs4.js"),t=require("./cjs/react-is.production.min.cjs.js"),o=require("./cjs/react-is.development.cjs.js");var r;function u(){return r||(r=1,process.env.NODE_ENV==="production"?e.__module.exports=t.__require():e.__module.exports=o.__require()),e.__module.exports}exports.__require=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../../../_virtual/index.cjs3.js"),t=require("./cjs/react-is.production.min.cjs.js"),o=require("./cjs/react-is.development.cjs.js");var r;function u(){return r||(r=1,process.env.NODE_ENV==="production"?e.__module.exports=t.__require():e.__module.exports=o.__require()),e.__module.exports}exports.__require=u;
@@ -1,4 +1,4 @@
1
- import { __module as e } from "../../../../_virtual/index.es4.js";
1
+ import { __module as e } from "../../../../_virtual/index.es3.js";
2
2
  import { __require as o } from "./cjs/react-is.production.min.es.js";
3
3
  import { __require as t } from "./cjs/react-is.development.es.js";
4
4
  var r;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tedi-design-system/react",
3
- "version": "18.1.0-rc.20",
3
+ "version": "18.1.0-rc.22",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),r=require("../../../../../external/classnames/index.cjs.js"),D=require("react"),F=require("../../base/icon/icon.cjs.js"),q=require("../../loaders/spinner/spinner.cjs.js"),G=require("../../misc/print/print.cjs.js"),t=require("./button-content.module.scss.cjs.js"),b=require("../../overlays/tooltip/tooltip.cjs.js"),T=D.forwardRef(({children:d,as:g,_text:J,className:p,visualType:h="primary",color:E="default",size:o,icon:l,iconLeft:u,iconRight:i,underline:M=!1,isHovered:P,isActive:w,isLoading:a=!1,noStyle:m,_renderWrapperElement:K,fullWidth:_,onClick:x,showTooltip:S=!1,...j},A)=>{const y=g||"button",C=l||u||i,O=m?r.default(t.default["tedi-btn--no-style"],{[t.default["tedi-btn--full-width"]]:_},p):r.default(t.default["tedi-btn"],t.default[`tedi-btn--${h}`],t.default[`tedi-btn--${E}`],{[t.default[`tedi-btn--${o}`]]:o},{[t.default["tedi-btn--underline"]]:M},{[t.default["tedi-btn--is-hovered"]]:P},{[t.default["tedi-btn--is-active"]]:w},{[t.default["tedi-btn--is-loading"]]:a},{[t.default["tedi-btn--icon-only"]]:l},{[t.default["tedi-btn--icon"]]:C},{[t.default["tedi-btn--full-width"]]:_},p),f=(e,s)=>{const z=r.default(t.default["tedi-btn__icon"],t.default[`tedi-btn__icon--${e}`],{[t.default["tedi-btn__spinner"]]:a,[t.default["tedi-btn__icon-responsive"]]:y==="a"&&o==="small"}),c={size:o==="large"?24:18,className:z},B=typeof s=="string"?{...c,name:s}:{...c,...s,className:r.default(c.className,s==null?void 0:s.className)};return a?n.jsx(q.Spinner,{className:B.className,size:18}):n.jsx(F.Icon,{...B})},k=()=>{const e=a?n.jsx(q.Spinner,{position:C?void 0:"absolute",className:r.default(t.default["tedi-btn__spinner"],t.default["tedi-btn__spinner--left"]),size:18}):u?f("left",u):l?f("center",l):null;return n.jsxs("span",{className:t.default["tedi-btn__inner"],children:[e,n.jsx("span",{className:t.default["tedi-btn__text"],children:d}),!a&&i&&f("right",i)]})},H=e=>{x&&!a&&x(e)},R=!!l,N=(e=>{if(typeof e=="string")return e;if(Array.isArray(e))return e.map(s=>typeof s=="string"?s:"").join("").trim()})(d),v=n.jsx(y,{"data-name":"button-content",...j,"aria-disabled":a||j["aria-disabled"],"aria-busy":a||void 0,onClick:H,ref:A,className:O,children:m?d:k()});return n.jsx(G.Print,{visibility:"hide",children:S&&R&&N?n.jsxs(b.Tooltip,{children:[n.jsx(b.Tooltip.Trigger,{children:v}),n.jsx(b.Tooltip.Content,{children:N})]}):v})});T.displayName="ButtonContent";const I=T;exports.ButtonContent=I;exports.default=I;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),l=require("../../../../../external/classnames/index.cjs.js"),D=require("react"),F=require("../../base/icon/icon.cjs.js"),q=require("../../loaders/spinner/spinner.cjs.js"),G=require("../../misc/print/print.cjs.js"),t=require("./button-content.module.scss.cjs.js"),b=require("../../overlays/tooltip/tooltip.cjs.js"),T=D.forwardRef(({children:d,as:g,_text:J,className:p,visualType:h="primary",color:E="default",size:o,icon:r,iconLeft:u,iconRight:i,underline:M=!1,isHovered:P,isActive:w,isLoading:s=!1,noStyle:m,_renderWrapperElement:K,fullWidth:_,onClick:x,showTooltip:S=!1,...j},A)=>{const y=g||"button",v=r||u||i,H=m?l.default(t.default["tedi-btn--no-style"],{[t.default["tedi-btn--full-width"]]:_},p):l.default(t.default["tedi-btn"],t.default[`tedi-btn--${h}`],t.default[`tedi-btn--${E}`],{[t.default[`tedi-btn--${o}`]]:o},{[t.default["tedi-btn--underline"]]:M},{[t.default["tedi-btn--is-hovered"]]:P},{[t.default["tedi-btn--is-active"]]:w},{[t.default["tedi-btn--is-loading"]]:s},{[t.default["tedi-btn--icon-only"]]:r},{[t.default["tedi-btn--icon"]]:v},{[t.default["tedi-btn--full-width"]]:_},p),f=(e,a)=>{const z=l.default(t.default["tedi-btn__icon"],t.default[`tedi-btn__icon--${e}`],{[t.default["tedi-btn__spinner"]]:s,[t.default["tedi-btn__icon-responsive"]]:y==="a"&&o==="small"}),c={size:o==="large"?24:18,className:z},B=typeof a=="string"?{...c,name:a}:{...c,...a,className:l.default(c.className,a==null?void 0:a.className)};return s?n.jsx(q.Spinner,{className:B.className,size:18,decorative:!0}):n.jsx(F.Icon,{...B})},O=()=>{const e=s?n.jsx(q.Spinner,{position:v?void 0:"absolute",className:l.default(t.default["tedi-btn__spinner"],t.default["tedi-btn__spinner--left"]),size:18,decorative:!0}):u?f("left",u):r?f("center",r):null;return n.jsxs("span",{className:t.default["tedi-btn__inner"],children:[e,n.jsx("span",{className:t.default["tedi-btn__text"],children:d}),!s&&i&&f("right",i)]})},k=e=>{x&&!s&&x(e)},R=!!r,C=(e=>{if(typeof e=="string")return e;if(Array.isArray(e))return e.map(a=>typeof a=="string"?a:"").join("").trim()})(d),N=n.jsx(y,{"data-name":"button-content",...j,"aria-disabled":s||j["aria-disabled"],"aria-busy":s||void 0,onClick:k,ref:A,className:H,children:m?d:O()});return n.jsx(G.Print,{visibility:"hide",children:S&&R&&C?n.jsxs(b.Tooltip,{ariaHidden:!0,children:[n.jsx(b.Tooltip.Trigger,{children:N}),n.jsx(b.Tooltip.Content,{children:C})]}):N})});T.displayName="ButtonContent";const I=T;exports.ButtonContent=I;exports.default=I;
@@ -1,35 +1,35 @@
1
- import { jsx as s, jsxs as T } from "react/jsx-runtime";
1
+ import { jsx as o, jsxs as T } from "react/jsx-runtime";
2
2
  import a from "../../../../../external/classnames/index.es.js";
3
3
  import { forwardRef as F } from "react";
4
4
  import { Icon as G } from "../../base/icon/icon.es.js";
5
5
  import { Spinner as h } from "../../loaders/spinner/spinner.es.js";
6
6
  import { Print as J } from "../../misc/print/print.es.js";
7
7
  import t from "./button-content.module.scss.es.js";
8
- import { Tooltip as c } from "../../overlays/tooltip/tooltip.es.js";
8
+ import { Tooltip as p } from "../../overlays/tooltip/tooltip.es.js";
9
9
  const E = F(
10
10
  ({
11
11
  children: l,
12
12
  as: $,
13
13
  _text: K,
14
- className: f,
14
+ className: u,
15
15
  visualType: j = "primary",
16
16
  color: w = "default",
17
17
  size: i,
18
- icon: o,
18
+ icon: s,
19
19
  iconLeft: d,
20
20
  iconRight: m,
21
21
  underline: P = !1,
22
22
  isHovered: g,
23
23
  isActive: A,
24
24
  isLoading: r = !1,
25
- noStyle: u,
25
+ noStyle: f,
26
26
  _renderWrapperElement: Q,
27
27
  fullWidth: _,
28
28
  onClick: y,
29
- showTooltip: M = !1,
29
+ showTooltip: H = !1,
30
30
  ...N
31
- }, k) => {
32
- const x = $ || "button", B = o || d || m, H = u ? a(t["tedi-btn--no-style"], { [t["tedi-btn--full-width"]]: _ }, f) : a(
31
+ }, M) => {
32
+ const v = $ || "button", x = s || d || m, k = f ? a(t["tedi-btn--no-style"], { [t["tedi-btn--full-width"]]: _ }, u) : a(
33
33
  t["tedi-btn"],
34
34
  t[`tedi-btn--${j}`],
35
35
  t[`tedi-btn--${w}`],
@@ -38,56 +38,57 @@ const E = F(
38
38
  { [t["tedi-btn--is-hovered"]]: g },
39
39
  { [t["tedi-btn--is-active"]]: A },
40
40
  { [t["tedi-btn--is-loading"]]: r },
41
- { [t["tedi-btn--icon-only"]]: o },
42
- { [t["tedi-btn--icon"]]: B },
41
+ { [t["tedi-btn--icon-only"]]: s },
42
+ { [t["tedi-btn--icon"]]: x },
43
43
  { [t["tedi-btn--full-width"]]: _ },
44
- f
44
+ u
45
45
  ), b = (e, n) => {
46
46
  const D = a(t["tedi-btn__icon"], t[`tedi-btn__icon--${e}`], {
47
47
  [t["tedi-btn__spinner"]]: r,
48
- [t["tedi-btn__icon-responsive"]]: x === "a" && i === "small"
49
- }), p = {
48
+ [t["tedi-btn__icon-responsive"]]: v === "a" && i === "small"
49
+ }), c = {
50
50
  size: i === "large" ? 24 : 18,
51
51
  className: D
52
- }, I = typeof n == "string" ? { ...p, name: n } : { ...p, ...n, className: a(p.className, n == null ? void 0 : n.className) };
53
- return r ? /* @__PURE__ */ s(h, { className: I.className, size: 18 }) : /* @__PURE__ */ s(G, { ...I });
52
+ }, I = typeof n == "string" ? { ...c, name: n } : { ...c, ...n, className: a(c.className, n == null ? void 0 : n.className) };
53
+ return r ? /* @__PURE__ */ o(h, { className: I.className, size: 18, decorative: !0 }) : /* @__PURE__ */ o(G, { ...I });
54
54
  }, O = () => {
55
- const e = r ? /* @__PURE__ */ s(
55
+ const e = r ? /* @__PURE__ */ o(
56
56
  h,
57
57
  {
58
- position: B ? void 0 : "absolute",
58
+ position: x ? void 0 : "absolute",
59
59
  className: a(t["tedi-btn__spinner"], t["tedi-btn__spinner--left"]),
60
- size: 18
60
+ size: 18,
61
+ decorative: !0
61
62
  }
62
- ) : d ? b("left", d) : o ? b("center", o) : null;
63
+ ) : d ? b("left", d) : s ? b("center", s) : null;
63
64
  return /* @__PURE__ */ T("span", { className: t["tedi-btn__inner"], children: [
64
65
  e,
65
- /* @__PURE__ */ s("span", { className: t["tedi-btn__text"], children: l }),
66
+ /* @__PURE__ */ o("span", { className: t["tedi-btn__text"], children: l }),
66
67
  !r && m && b("right", m)
67
68
  ] });
68
69
  }, q = (e) => {
69
70
  y && !r && y(e);
70
- }, z = !!o, C = ((e) => {
71
+ }, z = !!s, B = ((e) => {
71
72
  if (typeof e == "string") return e;
72
73
  if (Array.isArray(e))
73
74
  return e.map((n) => typeof n == "string" ? n : "").join("").trim();
74
- })(l), v = /* @__PURE__ */ s(
75
- x,
75
+ })(l), C = /* @__PURE__ */ o(
76
+ v,
76
77
  {
77
78
  "data-name": "button-content",
78
79
  ...N,
79
80
  "aria-disabled": r || N["aria-disabled"],
80
81
  "aria-busy": r || void 0,
81
82
  onClick: q,
82
- ref: k,
83
- className: H,
84
- children: u ? l : O()
83
+ ref: M,
84
+ className: k,
85
+ children: f ? l : O()
85
86
  }
86
87
  );
87
- return /* @__PURE__ */ s(J, { visibility: "hide", children: M && z && C ? /* @__PURE__ */ T(c, { children: [
88
- /* @__PURE__ */ s(c.Trigger, { children: v }),
89
- /* @__PURE__ */ s(c.Content, { children: C })
90
- ] }) : v });
88
+ return /* @__PURE__ */ o(J, { visibility: "hide", children: H && z && B ? /* @__PURE__ */ T(p, { ariaHidden: !0, children: [
89
+ /* @__PURE__ */ o(p.Trigger, { children: C }),
90
+ /* @__PURE__ */ o(p.Content, { children: B })
91
+ ] }) : C });
91
92
  }
92
93
  );
93
94
  E.displayName = "ButtonContent";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),y=require("../../../../../external/classnames/index.cjs.js"),u=require("react"),re=require("../../base/typography/text/text.cjs.js"),le=require("../../buttons/button/button.cjs.js"),se=require("../feedback-text/feedback-text.cjs.js"),ue=require("../form-label/form-label.cjs.js"),n=require("./number-field.module.scss.cjs.js"),de=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),oe=require("../../../providers/label-provider/use-labels.cjs.js"),z=S=>{const{getCurrentBreakpointProps:C}=de.useBreakpointProps(S.defaultServerBreakpoint),{getLabel:L,locale:D}=oe.useLabels(),W=D==="en"?".":",",{id:B,label:A,hideLabel:G,required:T,className:V,size:N,inputMode:H,decimalPlaces:p,decimalSeparator:F=W,min:d,max:o,step:I=1,defaultValue:g,value:c,onChange:a,suffix:h,fullWidth:J=!1,disabled:b=!1,invalid:k=!1,helper:i,input:v}=C(S),K=H??(p&&p>0||F===","?"decimal":"numeric"),m=u.useCallback(e=>e===void 0?"":F===","?String(e).replace(".",","):String(e),[F]),x=u.useRef(null),q=u.useRef(!1),[w,E]=u.useState(""),[Q,j]=u.useState(g),[X,_]=u.useState(()=>m(c??g)),r=a&&typeof c<"u"?c:Q;u.useEffect(()=>{!q.current&&typeof c<"u"&&_(m(c))},[c,m]);const O=i?`${B}-helper`:void 0,P=u.useCallback(e=>{if(e===void 0)return k||(i==null?void 0:i.type)==="error";const t=d!==void 0&&e<d,s=o!==void 0&&e>o;return k||t||s||(i==null?void 0:i.type)==="error"},[k,i,o,d]),U=e=>Math.min(o??1/0,Math.max(d??-1/0,e)),Y=e=>{const t=L("numberField.quantityUpdated",e);E(t),setTimeout(()=>{E("")},5e3)},R=e=>p!==void 0?parseFloat(e.toFixed(p)):e,Z=e=>{let t=r??0;e==="increment"&&(t=t+I),e==="decrement"&&(t=t-I),t=U(t),t=R(t),Y(t),a==null||a(t),j(t),_(m(t))},ee=({currentTarget:{value:e}})=>{if(_(e),e===""){r!==void 0&&(a==null||a(void 0),j(void 0));return}const t=e.replace(",",".");if(!/^-?(\d+(\.\d*)?|\.\d+)$/.test(t))return;const s=parseFloat(t);if(Number.isNaN(s))return;const f=U(s),M=R(f);M!==r&&(a==null||a(M),j(M))},te=()=>{q.current=!0},ne=()=>{q.current=!1,_(m(r))},$=e=>{const t=r!==void 0&&(e==="increment"?o!==void 0&&r>=o:d!==void 0&&r<=d),s=y.default(n.default["tedi-number-field__button"],n.default[`tedi-number-field__button--${e}`],{[n.default["tedi-number-field__button--disabled"]]:t||b}),f=L(`numberField.${e}`,I);return l.jsx(le.Button,{"aria-label":f,onClick:()=>Z(e),disabled:t||b,visualType:"secondary",className:s,icon:{name:e==="increment"?"add":"remove"},size:N==="small"?"small":void 0,children:e==="increment"?"+":"-"})},ae=()=>{const e=y.default(n.default["tedi-number-field__input-wrapper"],{[n.default["tedi-number-field__input-wrapper--with-suffix"]]:h,[n.default["tedi-number-field__input-wrapper--full-width"]]:J}),t=y.default(n.default["tedi-number-field__input"],v==null?void 0:v.className),s=()=>{var f;return(f=x==null?void 0:x.current)==null?void 0:f.focus()};return l.jsxs("div",{className:e,onClick:s,children:[l.jsx("input",{ref:x,id:B,role:"spinbutton","aria-valuemin":d,"aria-valuemax":o,"aria-valuenow":r,"aria-describedby":O,"aria-invalid":P(r)?"true":"false",type:"text",inputMode:K,value:X,required:T,disabled:b,onChange:ee,onFocus:te,onBlur:ne,className:t,...v}),h&&l.jsx(re.Text,{element:"span",modifiers:"small",color:"tertiary",className:n.default["tedi-number-field__suffix"],children:h})]})},ie=y.default(n.default["tedi-number-field"],{[n.default["tedi-number-field--invalid"]]:P(r)},{[n.default["tedi-number-field--disabled"]]:b},{[n.default["tedi-number-field--small"]]:N==="small"},V);return l.jsxs("div",{"data-name":"number-field",className:V,children:[l.jsx(ue.FormLabel,{id:B,label:A,required:T,hideLabel:G,size:N}),l.jsxs("div",{className:ie,children:[$("decrement"),ae(),$("increment")]}),i&&l.jsx(se.FeedbackText,{className:n.default["tedi-number-field__feedback"],...i,id:O}),w&&l.jsx("div",{"aria-live":"polite",className:"sr-only",children:w})]})};z.displayName="NumberField";exports.NumberField=z;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),T=require("../../../../../external/classnames/index.cjs.js"),r=require("react"),ce=require("../../base/typography/text/text.cjs.js"),fe=require("../../buttons/button/button.cjs.js"),me=require("../feedback-text/feedback-text.cjs.js"),be=require("../form-label/form-label.cjs.js"),i=require("./number-field.module.scss.cjs.js"),pe=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),ve=require("../../../providers/label-provider/use-labels.cjs.js"),U=g=>{const{getCurrentBreakpointProps:G}=pe.useBreakpointProps(g.defaultServerBreakpoint),{getLabel:h,locale:J}=ve.useLabels(),K=J==="en"?".":",",{id:Q,label:k,hideLabel:X,required:w,className:C,size:q,inputMode:Y,decimalPlaces:x,decimalSeparator:j=K,min:d,max:o,step:M=1,defaultValue:O,value:c,onChange:a,suffix:S,fullWidth:Z=!1,disabled:N=!1,invalid:R=!1,helper:u,input:_}=G(g),ee=r.useId(),E=Q??ee,te=Y??(x&&x>0||j===","?"decimal":"numeric"),m=r.useCallback(e=>e===void 0?"":j===","?String(e).replace(".",","):String(e),[j]),y=r.useRef(null),B=r.useRef(!1),[ne,L]=r.useState(""),[re,V]=r.useState(O),[ie,I]=r.useState(()=>m(c??O)),F=c!==void 0,n=F?c:re,b=r.useRef(),p=r.useRef(),P=r.useRef(n);r.useEffect(()=>{!B.current&&typeof c<"u"&&I(m(c))},[c,m]);const $=u?`${E}-helper`:void 0,z=r.useCallback(e=>{if(e===void 0)return R||(u==null?void 0:u.type)==="error";const t=d!==void 0&&e<d,l=o!==void 0&&e>o;return R||t||l||(u==null?void 0:u.type)==="error"},[R,u,o,d]),A=e=>Math.min(o??1/0,Math.max(d??-1/0,e)),D=r.useCallback(e=>{e&&(L(""),b.current&&clearTimeout(b.current),p.current&&clearTimeout(p.current),b.current=setTimeout(()=>{L(e),p.current=setTimeout(()=>L(""),5e3)},100))},[]);r.useEffect(()=>()=>{b.current&&clearTimeout(b.current),p.current&&clearTimeout(p.current)},[]),r.useEffect(()=>{P.current!==n&&(!B.current&&n!==void 0&&D(h("numberField.quantityUpdated",n)),P.current=n)},[n,D,h]);const W=e=>x!==void 0?parseFloat(e.toFixed(x)):e,ue=e=>{let t=n??0;e==="increment"&&(t=t+M),e==="decrement"&&(t=t-M),t=A(t),t=W(t),a==null||a(t),F||V(t),I(m(t))},ae=({currentTarget:{value:e}})=>{if(I(e),e===""){n!==void 0&&(a==null||a(void 0),F||V(void 0));return}const t=e.replace(",",".");if(!/^-?(\d+(\.\d*)?|\.\d+)$/.test(t))return;const l=parseFloat(t);if(Number.isNaN(l))return;const f=A(l),v=W(f);v!==n&&(a==null||a(v),F||V(v))},se=()=>{B.current=!0},le=()=>{B.current=!1,I(m(n))},H=e=>{const t=n!==void 0&&(e==="increment"?o!==void 0&&n>=o:d!==void 0&&n<=d),l=T.default(i.default["tedi-number-field__button"],i.default[`tedi-number-field__button--${e}`],{[i.default["tedi-number-field__button--disabled"]]:t||N}),f=typeof k=="string"?k:void 0,v=h(`numberField.${e}`,M,f);return s.jsx(fe.Button,{"aria-label":v,onClick:()=>ue(e),disabled:t||N,visualType:"secondary",className:l,icon:{name:e==="increment"?"add":"remove"},size:q==="small"?"small":void 0,children:e==="increment"?"+":"-"})},de=()=>{const e=T.default(i.default["tedi-number-field__input-wrapper"],{[i.default["tedi-number-field__input-wrapper--with-suffix"]]:S,[i.default["tedi-number-field__input-wrapper--full-width"]]:Z}),t=T.default(i.default["tedi-number-field__input"],_==null?void 0:_.className),l=()=>{var f;return(f=y==null?void 0:y.current)==null?void 0:f.focus()};return s.jsxs("div",{className:e,onClick:l,children:[s.jsx("input",{ref:y,id:E,role:"spinbutton","aria-valuemin":d,"aria-valuemax":o,"aria-valuenow":n,"aria-describedby":$,"aria-invalid":z(n)?"true":"false",type:"text",inputMode:te,value:ie,required:w,disabled:N,onChange:ae,onFocus:se,onBlur:le,className:t,..._}),S&&s.jsx(ce.Text,{element:"span",modifiers:"small",color:"tertiary",className:i.default["tedi-number-field__suffix"],children:S})]})},oe=T.default(i.default["tedi-number-field"],{[i.default["tedi-number-field--invalid"]]:z(n)},{[i.default["tedi-number-field--disabled"]]:N},{[i.default["tedi-number-field--small"]]:q==="small"},C);return s.jsxs("div",{"data-name":"number-field",className:C,children:[s.jsx(be.FormLabel,{id:E,label:k,required:w,hideLabel:X,size:q}),s.jsxs("div",{className:oe,children:[H("decrement"),de(),H("increment")]}),u&&s.jsx(me.FeedbackText,{className:i.default["tedi-number-field__feedback"],...u,id:$}),s.jsx("div",{role:"status","aria-live":"polite","aria-atomic":"true",className:"sr-only",children:ne})]})};U.displayName="NumberField";exports.NumberField=U;
@@ -1,145 +1,150 @@
1
- import { jsxs as L, jsx as c } from "react/jsx-runtime";
2
- import _ from "../../../../../external/classnames/index.es.js";
3
- import { useCallback as D, useRef as W, useState as S, useEffect as se } from "react";
4
- import { Text as oe } from "../../base/typography/text/text.es.js";
5
- import { Button as de } from "../../buttons/button/button.es.js";
6
- import { FeedbackText as ue } from "../feedback-text/feedback-text.es.js";
7
- import { FormLabel as ce } from "../form-label/form-label.es.js";
1
+ import { jsxs as $, jsx as c } from "react/jsx-runtime";
2
+ import F from "../../../../../external/classnames/index.es.js";
3
+ import { useId as pe, useCallback as z, useRef as v, useState as C, useEffect as P } from "react";
4
+ import { Text as be } from "../../base/typography/text/text.es.js";
5
+ import { Button as ve } from "../../buttons/button/button.es.js";
6
+ import { FeedbackText as Ne } from "../feedback-text/feedback-text.es.js";
7
+ import { FormLabel as _e } from "../form-label/form-label.es.js";
8
8
  import n from "./number-field.module.scss.es.js";
9
- import { useBreakpointProps as me } from "../../../helpers/hooks/use-breakpoint-props.es.js";
10
- import { useLabels as fe } from "../../../providers/label-provider/use-labels.es.js";
11
- const pe = (T) => {
12
- const { getCurrentBreakpointProps: A } = me(T.defaultServerBreakpoint), { getLabel: w, locale: R } = fe(), G = R === "en" ? "." : ",", {
13
- id: y,
14
- label: H,
15
- hideLabel: J,
16
- required: E,
17
- className: U,
18
- size: B,
19
- inputMode: K,
20
- decimalPlaces: f,
21
- decimalSeparator: I = G,
22
- min: l,
23
- max: s,
24
- step: x = 1,
25
- defaultValue: O,
26
- value: d,
27
- onChange: i,
28
- suffix: h,
29
- fullWidth: Q = !1,
30
- disabled: p = !1,
31
- invalid: F = !1,
32
- helper: r,
33
- input: b
34
- } = A(T), X = K ?? (f && f > 0 || I === "," ? "decimal" : "numeric"), m = D(
35
- (e) => e === void 0 ? "" : I === "," ? String(e).replace(".", ",") : String(e),
36
- [I]
37
- ), v = W(null), M = W(!1), [$, g] = S(""), [Y, k] = S(O), [Z, N] = S(() => m(d ?? O)), a = i && typeof d < "u" ? d : Y;
38
- se(() => {
39
- !M.current && typeof d < "u" && N(m(d));
40
- }, [d, m]);
41
- const z = r ? `${y}-helper` : void 0, P = D(
9
+ import { useBreakpointProps as ye } from "../../../helpers/hooks/use-breakpoint-props.es.js";
10
+ import { useLabels as Be } from "../../../providers/label-provider/use-labels.es.js";
11
+ const Ie = (j) => {
12
+ const { getCurrentBreakpointProps: Q } = ye(j.defaultServerBreakpoint), { getLabel: T, locale: X } = Be(), Y = X === "en" ? "." : ",", {
13
+ id: Z,
14
+ label: M,
15
+ hideLabel: ee,
16
+ required: q,
17
+ className: A,
18
+ size: k,
19
+ inputMode: te,
20
+ decimalPlaces: N,
21
+ decimalSeparator: S = Y,
22
+ min: a,
23
+ max: l,
24
+ step: V = 1,
25
+ defaultValue: D,
26
+ value: u,
27
+ onChange: o,
28
+ suffix: w,
29
+ fullWidth: re = !1,
30
+ disabled: _ = !1,
31
+ invalid: E = !1,
32
+ helper: i,
33
+ input: y
34
+ } = Q(j), ne = pe(), L = Z ?? ne, ie = te ?? (N && N > 0 || S === "," ? "decimal" : "numeric"), m = z(
35
+ (e) => e === void 0 ? "" : S === "," ? String(e).replace(".", ",") : String(e),
36
+ [S]
37
+ ), B = v(null), I = v(!1), [oe, g] = C(""), [ae, O] = C(D), [le, h] = C(() => m(u ?? D)), x = u !== void 0, r = x ? u : ae, f = v(), p = v(), R = v(r);
38
+ P(() => {
39
+ !I.current && typeof u < "u" && h(m(u));
40
+ }, [u, m]);
41
+ const W = i ? `${L}-helper` : void 0, H = z(
42
42
  (e) => {
43
43
  if (e === void 0)
44
- return F || (r == null ? void 0 : r.type) === "error";
45
- const t = l !== void 0 && e < l, o = s !== void 0 && e > s;
46
- return F || t || o || (r == null ? void 0 : r.type) === "error";
44
+ return E || (i == null ? void 0 : i.type) === "error";
45
+ const t = a !== void 0 && e < a, s = l !== void 0 && e > l;
46
+ return E || t || s || (i == null ? void 0 : i.type) === "error";
47
47
  },
48
- [F, r, s, l]
49
- ), j = (e) => Math.min(s ?? 1 / 0, Math.max(l ?? -1 / 0, e)), ee = (e) => {
50
- const t = w("numberField.quantityUpdated", e);
51
- g(t), setTimeout(() => {
52
- g("");
53
- }, 5e3);
54
- }, q = (e) => f !== void 0 ? parseFloat(e.toFixed(f)) : e, te = (e) => {
55
- let t = a ?? 0;
56
- e === "increment" && (t = t + x), e === "decrement" && (t = t - x), t = j(t), t = q(t), ee(t), i == null || i(t), k(t), N(m(t));
57
- }, ne = ({ currentTarget: { value: e } }) => {
58
- if (N(e), e === "") {
59
- a !== void 0 && (i == null || i(void 0), k(void 0));
48
+ [E, i, l, a]
49
+ ), U = (e) => Math.min(l ?? 1 / 0, Math.max(a ?? -1 / 0, e)), G = z((e) => {
50
+ e && (g(""), f.current && clearTimeout(f.current), p.current && clearTimeout(p.current), f.current = setTimeout(() => {
51
+ g(e), p.current = setTimeout(() => g(""), 5e3);
52
+ }, 100));
53
+ }, []);
54
+ P(() => () => {
55
+ f.current && clearTimeout(f.current), p.current && clearTimeout(p.current);
56
+ }, []), P(() => {
57
+ R.current !== r && (!I.current && r !== void 0 && G(T("numberField.quantityUpdated", r)), R.current = r);
58
+ }, [r, G, T]);
59
+ const J = (e) => N !== void 0 ? parseFloat(e.toFixed(N)) : e, se = (e) => {
60
+ let t = r ?? 0;
61
+ e === "increment" && (t = t + V), e === "decrement" && (t = t - V), t = U(t), t = J(t), o == null || o(t), x || O(t), h(m(t));
62
+ }, ue = ({ currentTarget: { value: e } }) => {
63
+ if (h(e), e === "") {
64
+ r !== void 0 && (o == null || o(void 0), x || O(void 0));
60
65
  return;
61
66
  }
62
67
  const t = e.replace(",", ".");
63
68
  if (!/^-?(\d+(\.\d*)?|\.\d+)$/.test(t))
64
69
  return;
65
- const o = parseFloat(t);
66
- if (Number.isNaN(o)) return;
67
- const u = j(o), V = q(u);
68
- V !== a && (i == null || i(V), k(V));
69
- }, ie = () => {
70
- M.current = !0;
71
- }, re = () => {
72
- M.current = !1, N(m(a));
73
- }, C = (e) => {
74
- const t = a !== void 0 && (e === "increment" ? s !== void 0 && a >= s : l !== void 0 && a <= l), o = _(n["tedi-number-field__button"], n[`tedi-number-field__button--${e}`], {
75
- [n["tedi-number-field__button--disabled"]]: t || p
76
- }), u = w(`numberField.${e}`, x);
70
+ const s = parseFloat(t);
71
+ if (Number.isNaN(s)) return;
72
+ const d = U(s), b = J(d);
73
+ b !== r && (o == null || o(b), x || O(b));
74
+ }, de = () => {
75
+ I.current = !0;
76
+ }, ce = () => {
77
+ I.current = !1, h(m(r));
78
+ }, K = (e) => {
79
+ const t = r !== void 0 && (e === "increment" ? l !== void 0 && r >= l : a !== void 0 && r <= a), s = F(n["tedi-number-field__button"], n[`tedi-number-field__button--${e}`], {
80
+ [n["tedi-number-field__button--disabled"]]: t || _
81
+ }), d = typeof M == "string" ? M : void 0, b = T(`numberField.${e}`, V, d);
77
82
  return /* @__PURE__ */ c(
78
- de,
83
+ ve,
79
84
  {
80
- "aria-label": u,
81
- onClick: () => te(e),
82
- disabled: t || p,
85
+ "aria-label": b,
86
+ onClick: () => se(e),
87
+ disabled: t || _,
83
88
  visualType: "secondary",
84
- className: o,
89
+ className: s,
85
90
  icon: { name: e === "increment" ? "add" : "remove" },
86
- size: B === "small" ? "small" : void 0,
91
+ size: k === "small" ? "small" : void 0,
87
92
  children: e === "increment" ? "+" : "-"
88
93
  }
89
94
  );
90
- }, ae = () => {
91
- const e = _(n["tedi-number-field__input-wrapper"], {
92
- [n["tedi-number-field__input-wrapper--with-suffix"]]: h,
93
- [n["tedi-number-field__input-wrapper--full-width"]]: Q
94
- }), t = _(n["tedi-number-field__input"], b == null ? void 0 : b.className);
95
- return /* @__PURE__ */ L("div", { className: e, onClick: () => {
96
- var u;
97
- return (u = v == null ? void 0 : v.current) == null ? void 0 : u.focus();
95
+ }, me = () => {
96
+ const e = F(n["tedi-number-field__input-wrapper"], {
97
+ [n["tedi-number-field__input-wrapper--with-suffix"]]: w,
98
+ [n["tedi-number-field__input-wrapper--full-width"]]: re
99
+ }), t = F(n["tedi-number-field__input"], y == null ? void 0 : y.className);
100
+ return /* @__PURE__ */ $("div", { className: e, onClick: () => {
101
+ var d;
102
+ return (d = B == null ? void 0 : B.current) == null ? void 0 : d.focus();
98
103
  }, children: [
99
104
  /* @__PURE__ */ c(
100
105
  "input",
101
106
  {
102
- ref: v,
103
- id: y,
107
+ ref: B,
108
+ id: L,
104
109
  role: "spinbutton",
105
- "aria-valuemin": l,
106
- "aria-valuemax": s,
107
- "aria-valuenow": a,
108
- "aria-describedby": z,
109
- "aria-invalid": P(a) ? "true" : "false",
110
+ "aria-valuemin": a,
111
+ "aria-valuemax": l,
112
+ "aria-valuenow": r,
113
+ "aria-describedby": W,
114
+ "aria-invalid": H(r) ? "true" : "false",
110
115
  type: "text",
111
- inputMode: X,
112
- value: Z,
113
- required: E,
114
- disabled: p,
115
- onChange: ne,
116
- onFocus: ie,
117
- onBlur: re,
116
+ inputMode: ie,
117
+ value: le,
118
+ required: q,
119
+ disabled: _,
120
+ onChange: ue,
121
+ onFocus: de,
122
+ onBlur: ce,
118
123
  className: t,
119
- ...b
124
+ ...y
120
125
  }
121
126
  ),
122
- h && /* @__PURE__ */ c(oe, { element: "span", modifiers: "small", color: "tertiary", className: n["tedi-number-field__suffix"], children: h })
127
+ w && /* @__PURE__ */ c(be, { element: "span", modifiers: "small", color: "tertiary", className: n["tedi-number-field__suffix"], children: w })
123
128
  ] });
124
- }, le = _(
129
+ }, fe = F(
125
130
  n["tedi-number-field"],
126
- { [n["tedi-number-field--invalid"]]: P(a) },
127
- { [n["tedi-number-field--disabled"]]: p },
128
- { [n["tedi-number-field--small"]]: B === "small" },
129
- U
131
+ { [n["tedi-number-field--invalid"]]: H(r) },
132
+ { [n["tedi-number-field--disabled"]]: _ },
133
+ { [n["tedi-number-field--small"]]: k === "small" },
134
+ A
130
135
  );
131
- return /* @__PURE__ */ L("div", { "data-name": "number-field", className: U, children: [
132
- /* @__PURE__ */ c(ce, { id: y, label: H, required: E, hideLabel: J, size: B }),
133
- /* @__PURE__ */ L("div", { className: le, children: [
134
- C("decrement"),
135
- ae(),
136
- C("increment")
136
+ return /* @__PURE__ */ $("div", { "data-name": "number-field", className: A, children: [
137
+ /* @__PURE__ */ c(_e, { id: L, label: M, required: q, hideLabel: ee, size: k }),
138
+ /* @__PURE__ */ $("div", { className: fe, children: [
139
+ K("decrement"),
140
+ me(),
141
+ K("increment")
137
142
  ] }),
138
- r && /* @__PURE__ */ c(ue, { className: n["tedi-number-field__feedback"], ...r, id: z }),
139
- $ && /* @__PURE__ */ c("div", { "aria-live": "polite", className: "sr-only", children: $ })
143
+ i && /* @__PURE__ */ c(Ne, { className: n["tedi-number-field__feedback"], ...i, id: W }),
144
+ /* @__PURE__ */ c("div", { role: "status", "aria-live": "polite", "aria-atomic": "true", className: "sr-only", children: oe })
140
145
  ] });
141
146
  };
142
- pe.displayName = "NumberField";
147
+ Ie.displayName = "NumberField";
143
148
  export {
144
- pe as NumberField
149
+ Ie as NumberField
145
150
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),u=require("../../../../../external/classnames/index.cjs.js"),e=require("./spinner.module.scss.cjs.js"),p=require("../../../providers/label-provider/use-labels.cjs.js"),f=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),m=s=>{const{getLabel:a}=p.useLabels(),{getCurrentBreakpointProps:l}=f.useBreakpointProps(s.defaultServerBreakpoint),{className:o,size:r=16,color:i="primary",label:c=a("spinner.loading"),position:t}=l(s),d=u.default(e.default["tedi-spinner"],o,t&&e.default[`tedi-spinner--${t}`],r&&e.default[`tedi-spinner--size-${r}`],i&&e.default[`tedi-spinner--color-${i}`]);return n.jsxs("span",{className:d,role:"status","aria-live":"polite","data-testid":"tedi-spinner",children:[n.jsx("svg",{viewBox:"22 22 44 44","aria-hidden":"true",children:n.jsx("circle",{className:e.default["tedi-spinner__inner"],cx:"44",cy:"44",r:"20",fill:"none"})}),n.jsx("span",{className:"sr-only",children:c})]})};exports.Spinner=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),p=require("../../../../../external/classnames/index.cjs.js"),e=require("./spinner.module.scss.cjs.js"),f=require("../../../providers/label-provider/use-labels.cjs.js"),v=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),m=r=>{const{getLabel:o}=f.useLabels(),{getCurrentBreakpointProps:l}=v.useBreakpointProps(r.defaultServerBreakpoint),{className:d,size:s=16,color:t="primary",label:c=o("spinner.loading"),position:a,decorative:i=!1}=l(r),u=p.default(e.default["tedi-spinner"],d,a&&e.default[`tedi-spinner--${a}`],s&&e.default[`tedi-spinner--size-${s}`],t&&e.default[`tedi-spinner--color-${t}`]);return n.jsxs("span",{className:u,role:i?void 0:"status","aria-live":i?void 0:"polite","aria-hidden":i||void 0,"data-testid":"tedi-spinner",children:[n.jsx("svg",{viewBox:"22 22 44 44","aria-hidden":"true",children:n.jsx("circle",{className:e.default["tedi-spinner__inner"],cx:"44",cy:"44",r:"20",fill:"none"})}),!i&&n.jsx("span",{className:"sr-only",children:c})]})};exports.Spinner=m;
@@ -33,6 +33,13 @@ export interface SpinnerProps extends BreakpointSupport<SpinnerBreakpointProps>
33
33
  * Provides a text label for screen readers to announce the spinner's purpose or status.
34
34
  */
35
35
  label?: string;
36
+ /**
37
+ * Renders the spinner as purely decorative — no `role="status"` live region and
38
+ * no screen-reader label. Use when the loading state is already announced by an
39
+ * ancestor (e.g. a button's `aria-busy`), so it isn't announced twice.
40
+ * @default false
41
+ */
42
+ decorative?: boolean;
36
43
  }
37
44
  export declare const Spinner: (props: SpinnerProps) => JSX.Element;
38
45
  export {};