@tedi-design-system/react 19.2.0-rc.5 → 19.2.0-rc.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle-stats.html +1 -1
- package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.cjs.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.es.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.es.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/index.cjs.js +1 -1
- package/external/hoist-non-react-statics/external/react-is/index.es.js +1 -1
- package/external/prop-types/external/react-is/cjs/react-is.development.cjs.js +1 -1
- package/external/prop-types/external/react-is/cjs/react-is.development.es.js +1 -1
- package/external/prop-types/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
- package/external/prop-types/external/react-is/cjs/react-is.production.min.es.js +1 -1
- package/external/prop-types/external/react-is/index.cjs.js +1 -1
- package/external/prop-types/external/react-is/index.es.js +1 -1
- package/package.json +1 -1
- package/src/tedi/components/content/carousel/components/carousel-indicators/carousel-indicators.cjs.js +1 -1
- package/src/tedi/components/content/carousel/components/carousel-indicators/carousel-indicators.es.js +18 -18
- package/src/tedi/components/content/carousel/use-carousel.cjs.js +1 -1
- package/src/tedi/components/content/carousel/use-carousel.d.ts +2 -1
- package/src/tedi/components/content/carousel/use-carousel.es.js +177 -163
- package/src/tedi/components/content/label/label.cjs.js +1 -1
- package/src/tedi/components/content/label/label.d.ts +22 -0
- package/src/tedi/components/content/label/label.es.js +30 -28
- package/src/tedi/components/form/checkbox/checkbox.cjs.js +1 -1
- package/src/tedi/components/form/checkbox/checkbox.es.js +32 -30
- package/src/tedi/components/form/choice-group/choice-group.cjs.js +1 -1
- package/src/tedi/components/form/choice-group/choice-group.es.js +80 -69
- package/src/tedi/components/form/choice-input.types.d.ts +7 -0
- package/src/tedi/components/form/date-field/date-field.cjs.js +1 -1
- package/src/tedi/components/form/date-field/date-field.d.ts +5 -0
- package/src/tedi/components/form/date-field/date-field.es.js +187 -184
- package/src/tedi/components/form/date-time-field/date-time-field.cjs.js +1 -1
- package/src/tedi/components/form/date-time-field/date-time-field.d.ts +5 -0
- package/src/tedi/components/form/date-time-field/date-time-field.es.js +103 -101
- package/src/tedi/components/form/form-label/form-label.cjs.js +1 -1
- package/src/tedi/components/form/form-label/form-label.d.ts +9 -0
- package/src/tedi/components/form/form-label/form-label.es.js +15 -14
- package/src/tedi/components/form/multi-value-field/multi-value-field.cjs.js +1 -1
- package/src/tedi/components/form/multi-value-field/multi-value-field.d.ts +7 -0
- package/src/tedi/components/form/multi-value-field/multi-value-field.es.js +41 -40
- package/src/tedi/components/form/number-field/number-field.cjs.js +1 -1
- package/src/tedi/components/form/number-field/number-field.es.js +54 -43
- package/src/tedi/components/form/radio/radio.cjs.js +1 -1
- package/src/tedi/components/form/radio/radio.es.js +30 -28
- package/src/tedi/components/form/select/select.cjs.js +1 -1
- package/src/tedi/components/form/select/select.es.js +79 -77
- package/src/tedi/components/form/slider/slider.cjs.js +1 -1
- package/src/tedi/components/form/slider/slider.d.ts +7 -0
- package/src/tedi/components/form/slider/slider.es.js +48 -47
- package/src/tedi/components/form/textfield/textfield.cjs.js +1 -1
- package/src/tedi/components/form/textfield/textfield.es.js +72 -61
- package/src/tedi/components/form/time-field/time-field.cjs.js +1 -1
- package/src/tedi/components/form/time-field/time-field.d.ts +5 -0
- package/src/tedi/components/form/time-field/time-field.es.js +87 -85
- package/src/tedi/components/form/toggle/toggle.cjs.js +1 -1
- package/src/tedi/components/form/toggle/toggle.d.ts +7 -0
- package/src/tedi/components/form/toggle/toggle.es.js +26 -24
|
@@ -2,60 +2,61 @@ import { jsxs as s, jsx as i } from "react/jsx-runtime";
|
|
|
2
2
|
import t from "../../../../../external/classnames/index.es.js";
|
|
3
3
|
import n from "react";
|
|
4
4
|
import { Icon as C } from "../../base/icon/icon.es.js";
|
|
5
|
-
import { FeedbackText as
|
|
6
|
-
import { FormLabel as
|
|
5
|
+
import { FeedbackText as M } from "../feedback-text/feedback-text.es.js";
|
|
6
|
+
import { FormLabel as P } from "../form-label/form-label.es.js";
|
|
7
7
|
import e from "./checkbox.module.scss.es.js";
|
|
8
8
|
import { Row as S } from "../../layout/grid/row.es.js";
|
|
9
9
|
import { Col as R } from "../../layout/grid/col.es.js";
|
|
10
|
-
const
|
|
10
|
+
const V = (y) => {
|
|
11
11
|
const {
|
|
12
|
-
id:
|
|
13
|
-
label:
|
|
14
|
-
value:
|
|
12
|
+
id: a,
|
|
13
|
+
label: f,
|
|
14
|
+
value: k,
|
|
15
15
|
className: g,
|
|
16
16
|
disabled: h = !1,
|
|
17
|
-
onChange:
|
|
17
|
+
onChange: d,
|
|
18
18
|
hideLabel: v = !1,
|
|
19
|
-
helper:
|
|
19
|
+
helper: o,
|
|
20
20
|
checked: m,
|
|
21
21
|
defaultChecked: z,
|
|
22
22
|
indeterminate: r,
|
|
23
23
|
hover: I,
|
|
24
24
|
name: j,
|
|
25
25
|
tooltip: _,
|
|
26
|
+
labelProps: w,
|
|
26
27
|
invalid: u,
|
|
27
28
|
size: l = "default",
|
|
28
29
|
required: p,
|
|
29
|
-
...
|
|
30
|
-
} = y, [
|
|
30
|
+
...L
|
|
31
|
+
} = y, [$, B] = n.useState(z || !1), x = n.useRef(null), b = n.useRef(null), E = d && typeof m < "u" ? m : $;
|
|
31
32
|
n.useEffect(() => {
|
|
32
|
-
|
|
33
|
+
b.current && (b.current.indeterminate = !!r);
|
|
33
34
|
}, [r]);
|
|
34
|
-
const
|
|
35
|
-
typeof m > "u" &&
|
|
36
|
-
}, N =
|
|
35
|
+
const F = (c) => {
|
|
36
|
+
typeof m > "u" && B(c == null ? void 0 : c.target.checked), d == null || d(k, c == null ? void 0 : c.target.checked);
|
|
37
|
+
}, N = o ? o.id ?? `${a}-helper` : void 0, q = _ ? `${a}-tooltip` : void 0, H = t(e["tedi-checkbox__label"], { [e["tedi-checkbox--disabled"]]: h });
|
|
37
38
|
return /* @__PURE__ */ s(
|
|
38
39
|
"div",
|
|
39
40
|
{
|
|
40
41
|
className: t(e["tedi-checkbox"], { [e["tedi-checkbox--disabled"]]: h }),
|
|
41
42
|
"data-name": "check",
|
|
42
|
-
...
|
|
43
|
+
...L,
|
|
43
44
|
children: [
|
|
44
45
|
/* @__PURE__ */ s(S, { gutter: 0, children: [
|
|
45
46
|
/* @__PURE__ */ i(R, { width: "auto", children: /* @__PURE__ */ s("div", { className: e["tedi-checkbox__outer-indicator-wrapper"], children: [
|
|
46
47
|
/* @__PURE__ */ i(
|
|
47
48
|
"input",
|
|
48
49
|
{
|
|
49
|
-
ref:
|
|
50
|
-
id:
|
|
51
|
-
value:
|
|
50
|
+
ref: b,
|
|
51
|
+
id: a,
|
|
52
|
+
value: k,
|
|
52
53
|
name: j,
|
|
53
54
|
type: "checkbox",
|
|
54
55
|
disabled: h,
|
|
55
|
-
checked: r ? !1 :
|
|
56
|
-
onChange:
|
|
56
|
+
checked: r ? !1 : E,
|
|
57
|
+
onChange: F,
|
|
57
58
|
className: e["tedi-checkbox__input"],
|
|
58
|
-
"aria-describedby": [N,
|
|
59
|
+
"aria-describedby": [N, q].filter(Boolean).join(" "),
|
|
59
60
|
required: p,
|
|
60
61
|
"aria-invalid": u || void 0
|
|
61
62
|
}
|
|
@@ -100,26 +101,27 @@ const U = (y) => {
|
|
|
100
101
|
}
|
|
101
102
|
)
|
|
102
103
|
] }) }),
|
|
103
|
-
|
|
104
|
-
|
|
104
|
+
f && /* @__PURE__ */ i(R, { children: /* @__PURE__ */ i(
|
|
105
|
+
P,
|
|
105
106
|
{
|
|
106
107
|
ref: x,
|
|
107
|
-
className:
|
|
108
|
-
id:
|
|
108
|
+
className: H,
|
|
109
|
+
id: a,
|
|
109
110
|
"data-testid": "checkbox-label",
|
|
110
111
|
hideLabel: v,
|
|
111
|
-
label:
|
|
112
|
+
label: f,
|
|
112
113
|
tooltip: _,
|
|
113
|
-
required: p
|
|
114
|
+
required: p,
|
|
115
|
+
labelProps: w
|
|
114
116
|
}
|
|
115
117
|
) })
|
|
116
118
|
] }),
|
|
117
|
-
|
|
119
|
+
o && /* @__PURE__ */ i(M, { id: N, ...o, className: t(e["tedi-checkbox__helper"], o.className) })
|
|
118
120
|
]
|
|
119
121
|
}
|
|
120
122
|
);
|
|
121
123
|
};
|
|
122
124
|
export {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
+
V as Checkbox,
|
|
126
|
+
V as default
|
|
125
127
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),N=require("../../../../../external/classnames/index.cjs.js"),f=require("react"),ee=require("../feedback-text/feedback-text.cjs.js"),te=require("../form-label/form-label.cjs.js"),re=require("../checkbox/checkbox.cjs.js"),q=require("./choice-group.module.scss.cjs.js"),oe=require("./choice-group-context.cjs.js"),P=require("./components/choice-group-item/choice-group-item.cjs.js"),ne=require("../../../providers/label-provider/use-labels.cjs.js"),j=require("../../../helpers/hooks/use-breakpoint.cjs.js"),ie=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),F=require("../../layout/grid/row.cjs.js"),ae=require("../../layout/grid/col.cjs.js"),B=h=>{const{getLabel:m}=ne.useLabels(),I=j.default(h.defaultServerBreakpoint),{getCurrentBreakpointProps:R}=ie.useBreakpointProps(h.defaultServerBreakpoint),{id:u,className:T,label:S,required:G,helper:a,items:o,variant:g="default",direction:k=g==="default"||j.isBreakpointBelow(I,"md")?"column":"row",rowProps:p,name:w,inputType:n="radio",value:L,defaultValue:M,onChange:d,hideLabel:H,labelProps:E,indeterminateCheck:s,indeterminateCheckProps:b={},color:$,layout:v="separated",showIndicator:O,...W}=R(h),{...X}=b,Y=(b==null?void 0:b.indented)??!0,y=(a==null?void 0:a.id)??`${u}-helper`,A=s&&n==="checkbox",[z,_]=f.useState(()=>{if(M)return M;if(n==="radio"){const e=o.find(l=>l.defaultChecked);return e?e.value:null}return n==="checkbox"?o.filter(e=>e.defaultChecked).map(e=>e.value):null}),C=(e=h.value)=>!!d&&typeof e<"u",r=C(L)?L:z,x=f.useMemo(()=>(r==null?void 0:r.length)===0,[r==null?void 0:r.length]),c=f.useMemo(()=>{var e;return(r==null?void 0:r.length)===((e=o==null?void 0:o.filter(l=>!l.disabled))==null?void 0:e.length)},[r==null?void 0:r.length,o]),D=f.useMemo(()=>!x&&!c,[c,x]),J=f.useMemo(()=>{const e=c?"all":x?"none":"some";return typeof s=="string"?s:typeof s=="function"?s(e):s?m(e==="all"?"table.filter.remove-all":"table.filter.select-all"):""},[m,s,c,x]),K={name:w,inputType:n,onChange:(e,l)=>{let t=r;n==="checkbox"&&t?t=l?Array.isArray(t)?[...t,e]:[e]:Array.isArray(t)?t.filter(Z=>Z!==e):t:t=e,C()||_(Array.isArray(t)?[...t]:t),d==null||d(t)},currentValue:r},Q=N.default(q.default["tedi-choice-group"],T),U=N.default(q.default["tedi-choice-group__inner"],p==null?void 0:p.className,{[q.default["tedi-choice-group__inner--indented"]]:A&&Y}),V=()=>{var l;const e=c?[]:(l=o==null?void 0:o.filter(t=>!t.disabled))==null?void 0:l.map(t=>t.value);C()||_([...e]),d==null||d(e)};return i.jsx(oe.ChoiceGroupContext.Provider,{value:K,children:i.jsxs("fieldset",{...W,className:Q,id:u,name:w,"aria-describedby":a&&n!=="radio"?y:void 0,children:[S&&i.jsx(te.FormLabel,{id:u,label:S,required:G,hideLabel:H,renderWithoutLabel:!0,labelProps:E}),i.jsx(F.Row,{children:i.jsx(ae.Col,{children:o!=null&&o.length?i.jsxs(i.Fragment,{children:[A&&i.jsx(re.Checkbox,{id:`${u}-indeterminate`,value:"indeterminate",name:"indeterminate",...X,label:J,indeterminate:D,checked:c,onChange:V}),i.jsx(F.Row,{direction:k,gutterX:v==="segmented"?0:2,gutterY:v==="segmented"?0:1,gap:g==="default"&&(j.isBreakpointBelow(I,"md")||k==="row")?1:0,...p,className:U,role:n==="radio"?"radiogroup":void 0,"aria-labelledby":n==="radio"?u:void 0,"aria-describedby":n==="radio"&&a?y:void 0,"aria-required":n==="radio"&&G?!0:void 0,"aria-invalid":n==="radio"&&(a==null?void 0:a.type)==="error"?!0:void 0,children:o.map(e=>i.jsx(P.ChoiceGroupItem,{...e,color:$,variant:g,type:n,layout:v,showIndicator:O,direction:k},e.id))})]}):i.jsx("p",{children:m("table.filter.no-options")})})}),a&&i.jsx(ee.FeedbackText,{...a,id:y})]})})};B.Item=P.ChoiceGroupItem;exports.ChoiceGroup=B;exports.default=B;
|
|
@@ -1,107 +1,118 @@
|
|
|
1
|
-
import { jsx as a, jsxs as F, Fragment as
|
|
1
|
+
import { jsx as a, jsxs as F, Fragment as ee } from "react/jsx-runtime";
|
|
2
2
|
import G from "../../../../../external/classnames/index.es.js";
|
|
3
|
-
import
|
|
4
|
-
import { FeedbackText as
|
|
5
|
-
import { FormLabel as
|
|
6
|
-
import { Checkbox as
|
|
7
|
-
import
|
|
8
|
-
import { ChoiceGroupContext as
|
|
3
|
+
import g, { useState as te } from "react";
|
|
4
|
+
import { FeedbackText as re } from "../feedback-text/feedback-text.es.js";
|
|
5
|
+
import { FormLabel as oe } from "../form-label/form-label.es.js";
|
|
6
|
+
import { Checkbox as ie } from "../checkbox/checkbox.es.js";
|
|
7
|
+
import I from "./choice-group.module.scss.es.js";
|
|
8
|
+
import { ChoiceGroupContext as ne } from "./choice-group-context.es.js";
|
|
9
9
|
import { ChoiceGroupItem as q } from "./components/choice-group-item/choice-group-item.es.js";
|
|
10
|
-
import { useLabels as
|
|
11
|
-
import
|
|
10
|
+
import { useLabels as ae } from "../../../providers/label-provider/use-labels.es.js";
|
|
11
|
+
import de, { isBreakpointBelow as H } from "../../../helpers/hooks/use-breakpoint.es.js";
|
|
12
12
|
import { useBreakpointProps as le } from "../../../helpers/hooks/use-breakpoint-props.es.js";
|
|
13
13
|
import { Row as j } from "../../layout/grid/row.es.js";
|
|
14
|
-
import { Col as
|
|
15
|
-
const
|
|
16
|
-
const { getLabel: f } =
|
|
17
|
-
id:
|
|
18
|
-
className:
|
|
19
|
-
label:
|
|
14
|
+
import { Col as se } from "../../layout/grid/col.es.js";
|
|
15
|
+
const ce = (u) => {
|
|
16
|
+
const { getLabel: f } = ae(), B = de(u.defaultServerBreakpoint), { getCurrentBreakpointProps: E } = le(u.defaultServerBreakpoint), {
|
|
17
|
+
id: m,
|
|
18
|
+
className: P,
|
|
19
|
+
label: S,
|
|
20
20
|
required: A,
|
|
21
21
|
helper: n,
|
|
22
22
|
items: o,
|
|
23
|
-
variant:
|
|
24
|
-
direction:
|
|
25
|
-
rowProps:
|
|
23
|
+
variant: y = "default",
|
|
24
|
+
direction: k = y === "default" || H(B, "md") ? "column" : "row",
|
|
25
|
+
rowProps: p,
|
|
26
26
|
name: L,
|
|
27
27
|
inputType: i = "radio",
|
|
28
28
|
value: M,
|
|
29
29
|
defaultValue: N,
|
|
30
|
-
onChange:
|
|
31
|
-
hideLabel:
|
|
30
|
+
onChange: l,
|
|
31
|
+
hideLabel: R,
|
|
32
|
+
labelProps: T,
|
|
32
33
|
indeterminateCheck: s,
|
|
33
|
-
indeterminateCheckProps:
|
|
34
|
+
indeterminateCheckProps: h = {},
|
|
34
35
|
color: $,
|
|
35
|
-
layout:
|
|
36
|
-
showIndicator:
|
|
37
|
-
...
|
|
38
|
-
} = E(u), { ...
|
|
36
|
+
layout: v = "separated",
|
|
37
|
+
showIndicator: W,
|
|
38
|
+
...X
|
|
39
|
+
} = E(u), { ...Y } = h, z = (h == null ? void 0 : h.indented) ?? !0, C = (n == null ? void 0 : n.id) ?? `${m}-helper`, _ = s && i === "checkbox", [D, w] = te(() => {
|
|
39
40
|
if (N) return N;
|
|
40
41
|
if (i === "radio") {
|
|
41
|
-
const e = o.find((
|
|
42
|
+
const e = o.find((d) => d.defaultChecked);
|
|
42
43
|
return e ? e.value : null;
|
|
43
44
|
}
|
|
44
45
|
return i === "checkbox" ? o.filter((e) => e.defaultChecked).map((e) => e.value) : null;
|
|
45
|
-
}),
|
|
46
|
+
}), x = (e = u.value) => !!l && typeof e < "u", r = x(M) ? M : D, b = g.useMemo(() => (r == null ? void 0 : r.length) === 0, [r == null ? void 0 : r.length]), c = g.useMemo(
|
|
46
47
|
() => {
|
|
47
48
|
var e;
|
|
48
|
-
return (r == null ? void 0 : r.length) === ((e = o == null ? void 0 : o.filter((
|
|
49
|
+
return (r == null ? void 0 : r.length) === ((e = o == null ? void 0 : o.filter((d) => !d.disabled)) == null ? void 0 : e.length);
|
|
49
50
|
},
|
|
50
51
|
[r == null ? void 0 : r.length, o]
|
|
51
|
-
),
|
|
52
|
-
const e =
|
|
52
|
+
), J = g.useMemo(() => !b && !c, [c, b]), K = g.useMemo(() => {
|
|
53
|
+
const e = c ? "all" : b ? "none" : "some";
|
|
53
54
|
return typeof s == "string" ? s : typeof s == "function" ? s(e) : s ? f(e === "all" ? "table.filter.remove-all" : "table.filter.select-all") : "";
|
|
54
|
-
}, [f, s,
|
|
55
|
+
}, [f, s, c, b]), O = {
|
|
55
56
|
name: L,
|
|
56
57
|
inputType: i,
|
|
57
|
-
onChange: (e,
|
|
58
|
+
onChange: (e, d) => {
|
|
58
59
|
let t = r;
|
|
59
|
-
i === "checkbox" && t ? t =
|
|
60
|
+
i === "checkbox" && t ? t = d ? Array.isArray(t) ? [...t, e] : [e] : Array.isArray(t) ? t.filter((Z) => Z !== e) : t : t = e, x() || w(Array.isArray(t) ? [...t] : t), l == null || l(t);
|
|
60
61
|
},
|
|
61
62
|
currentValue: r
|
|
62
|
-
},
|
|
63
|
-
[
|
|
64
|
-
}),
|
|
65
|
-
var
|
|
66
|
-
const e =
|
|
67
|
-
|
|
63
|
+
}, Q = G(I["tedi-choice-group"], P), U = G(I["tedi-choice-group__inner"], p == null ? void 0 : p.className, {
|
|
64
|
+
[I["tedi-choice-group__inner--indented"]]: _ && z
|
|
65
|
+
}), V = () => {
|
|
66
|
+
var d;
|
|
67
|
+
const e = c ? [] : (d = o == null ? void 0 : o.filter((t) => !t.disabled)) == null ? void 0 : d.map((t) => t.value);
|
|
68
|
+
x() || w([...e]), l == null || l(e);
|
|
68
69
|
};
|
|
69
|
-
return /* @__PURE__ */ a(
|
|
70
|
+
return /* @__PURE__ */ a(ne.Provider, { value: O, children: /* @__PURE__ */ F(
|
|
70
71
|
"fieldset",
|
|
71
72
|
{
|
|
72
|
-
...
|
|
73
|
-
className:
|
|
74
|
-
id:
|
|
73
|
+
...X,
|
|
74
|
+
className: Q,
|
|
75
|
+
id: m,
|
|
75
76
|
name: L,
|
|
76
|
-
"aria-describedby": n && i !== "radio" ?
|
|
77
|
+
"aria-describedby": n && i !== "radio" ? C : void 0,
|
|
77
78
|
children: [
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
S && /* @__PURE__ */ a(
|
|
80
|
+
oe,
|
|
81
|
+
{
|
|
82
|
+
id: m,
|
|
83
|
+
label: S,
|
|
84
|
+
required: A,
|
|
85
|
+
hideLabel: R,
|
|
86
|
+
renderWithoutLabel: !0,
|
|
87
|
+
labelProps: T
|
|
88
|
+
}
|
|
89
|
+
),
|
|
90
|
+
/* @__PURE__ */ a(j, { children: /* @__PURE__ */ a(se, { children: o != null && o.length ? /* @__PURE__ */ F(ee, { children: [
|
|
80
91
|
_ && /* @__PURE__ */ a(
|
|
81
|
-
|
|
92
|
+
ie,
|
|
82
93
|
{
|
|
83
|
-
id: `${
|
|
94
|
+
id: `${m}-indeterminate`,
|
|
84
95
|
value: "indeterminate",
|
|
85
96
|
name: "indeterminate",
|
|
86
|
-
...
|
|
87
|
-
label:
|
|
88
|
-
indeterminate:
|
|
89
|
-
checked:
|
|
90
|
-
onChange:
|
|
97
|
+
...Y,
|
|
98
|
+
label: K,
|
|
99
|
+
indeterminate: J,
|
|
100
|
+
checked: c,
|
|
101
|
+
onChange: V
|
|
91
102
|
}
|
|
92
103
|
),
|
|
93
104
|
/* @__PURE__ */ a(
|
|
94
105
|
j,
|
|
95
106
|
{
|
|
96
|
-
direction:
|
|
97
|
-
gutterX:
|
|
98
|
-
gutterY:
|
|
99
|
-
gap:
|
|
100
|
-
...
|
|
101
|
-
className:
|
|
107
|
+
direction: k,
|
|
108
|
+
gutterX: v === "segmented" ? 0 : 2,
|
|
109
|
+
gutterY: v === "segmented" ? 0 : 1,
|
|
110
|
+
gap: y === "default" && (H(B, "md") || k === "row") ? 1 : 0,
|
|
111
|
+
...p,
|
|
112
|
+
className: U,
|
|
102
113
|
role: i === "radio" ? "radiogroup" : void 0,
|
|
103
|
-
"aria-labelledby": i === "radio" ?
|
|
104
|
-
"aria-describedby": i === "radio" && n ?
|
|
114
|
+
"aria-labelledby": i === "radio" ? m : void 0,
|
|
115
|
+
"aria-describedby": i === "radio" && n ? C : void 0,
|
|
105
116
|
"aria-required": i === "radio" && A ? !0 : void 0,
|
|
106
117
|
"aria-invalid": i === "radio" && (n == null ? void 0 : n.type) === "error" ? !0 : void 0,
|
|
107
118
|
children: o.map((e) => /* @__PURE__ */ a(
|
|
@@ -109,24 +120,24 @@ const se = (u) => {
|
|
|
109
120
|
{
|
|
110
121
|
...e,
|
|
111
122
|
color: $,
|
|
112
|
-
variant:
|
|
123
|
+
variant: y,
|
|
113
124
|
type: i,
|
|
114
|
-
layout:
|
|
115
|
-
showIndicator:
|
|
116
|
-
direction:
|
|
125
|
+
layout: v,
|
|
126
|
+
showIndicator: W,
|
|
127
|
+
direction: k
|
|
117
128
|
},
|
|
118
129
|
e.id
|
|
119
130
|
))
|
|
120
131
|
}
|
|
121
132
|
)
|
|
122
133
|
] }) : /* @__PURE__ */ a("p", { children: f("table.filter.no-options") }) }) }),
|
|
123
|
-
n && /* @__PURE__ */ a(
|
|
134
|
+
n && /* @__PURE__ */ a(re, { ...n, id: C })
|
|
124
135
|
]
|
|
125
136
|
}
|
|
126
137
|
) });
|
|
127
138
|
};
|
|
128
|
-
|
|
139
|
+
ce.Item = q;
|
|
129
140
|
export {
|
|
130
|
-
|
|
131
|
-
|
|
141
|
+
ce as ChoiceGroup,
|
|
142
|
+
ce as default
|
|
132
143
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { FeedbackTextProps } from './feedback-text/feedback-text';
|
|
2
|
+
import { FormLabelProps } from './form-label/form-label';
|
|
2
3
|
export interface ChoiceInputProps {
|
|
3
4
|
/**
|
|
4
5
|
* ID property
|
|
@@ -53,6 +54,12 @@ export interface ChoiceInputProps {
|
|
|
53
54
|
* not just a plain string.
|
|
54
55
|
*/
|
|
55
56
|
tooltip?: React.ReactNode;
|
|
57
|
+
/**
|
|
58
|
+
* Additional props forwarded to the underlying `Label` component.
|
|
59
|
+
* Use `modifiers` to control how the label text wraps or breaks
|
|
60
|
+
* (e.g. `{ modifiers: 'nowrap' }`).
|
|
61
|
+
*/
|
|
62
|
+
labelProps?: FormLabelProps['labelProps'];
|
|
56
63
|
/**
|
|
57
64
|
* Input size
|
|
58
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),A=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),I=require("../../../../../external/classnames/index.cjs.js"),a=require("react"),At=require("../../content/calendar/calendar.cjs.js"),Ft=require("../multi-value-field/multi-value-field.cjs.js"),kt=require("../textfield/textfield.cjs.js"),D=require("./date-field.module.scss.cjs.js"),v=require("./date-field-helpers.cjs.js"),vt=require("./date-picker-modal/date-picker-modal.cjs.js"),Pt=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),wt=require("../../../providers/label-provider/use-labels.cjs.js"),Nt=require("../../../../../external/react-day-picker/dist/esm/locale/et.cjs.js"),pe=require("../../../helpers/hooks/use-breakpoint.cjs.js"),Et=require("../../../../../external/@floating-ui/dom/dist/floating-ui.dom.cjs.js"),z=require("../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js"),Ot=require("../../../../../external/react-day-picker/dist/esm/utils/dateMatchModifiers.cjs.js"),He=a.forwardRef((P,w)=>{const{getCurrentBreakpointProps:Ye}=Pt.useBreakpointProps(P.defaultServerBreakpoint),{getLabel:X}=wt.useLabels(),{useNativePicker:Ue=!1,enableCalendar:g=!0,calendarTrigger:T="button",numberOfMonths:J,clearable:ge=!0}=Ye(P),{id:he,mode:s="single",label:be,selected:j,onSelect:i,disabled:N,disabledMatchers:E,placeholder:We,className:Ge,formatDate:c,required:S,showOutsideDays:ye=!0,parseDate:K,monthYearSelectType:De,minYear:_e,maxYear:xe,dayStatus:Me,tagsDirection:ze,showNavigation:Ce=!0,selectionLevel:O="days",initialView:L,locale:Ae=Nt.et,localeCode:$="et-EE",initialMonth:H,closeOnSelect:Xe,footer:Fe,defaultValue:Y,minDate:Q,maxDate:Z,disablePast:ke,disableFuture:ve,shouldDisableMonth:ee,shouldDisableYear:te,readOnly:R,availableDays:Pe,inputProps:n,modal:re=!1,modalProps:Je,modalTitle:Ke,disabledDateErrorMessage:Qe=X("dateField.disabledDateError"),invalidDateErrorMessage:Ze=X("dateField.invalidDateError"),useNativePicker:Rt,enableCalendar:Vt,calendarTrigger:qt,numberOfMonths:Bt,defaultServerBreakpoint:It,sm:Tt,md:jt,lg:St,xl:Lt,xxl:$t,...we}=P,f=Ue&&s==="single",Ne=pe.default(P.defaultServerBreakpoint),F=pe.isBreakpointBelow(Ne,"md"),[et,h]=a.useState(j??Y),[b,V]=a.useState(!1),[ae,Ee]=a.useState(!1),[tt,Oe]=a.useState(L??O),[ie,_]=a.useState(""),[Re,m]=a.useState(!1),[Ve,U]=a.useState(!1),y=g&&!f&&!R&&(re===!0||typeof re=="string"&&pe.isBreakpointBelow(Ne,re)),qe=F&&!y&&typeof J=="number"&&J>1?1:J,{current:u}=a.useRef("selected"in P),o=u?j:et,ne=a.useRef(null),Be=a.useRef(null),rt=a.useCallback(e=>{ne.current=e,typeof w=="function"?w(e):w&&(w.current=e)},[w]),at=e=>{if(!e)return"";const t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),l=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${l}`},it=f&&o instanceof Date?at(o):"",se=a.useCallback((e,t)=>e instanceof Date?e:Array.isArray(e)&&e.length>0?[...e].sort((r,l)=>r.getTime()-l.getTime())[0]:e&&typeof e=="object"&&"from"in e&&e.from instanceof Date?e.from:e&&typeof e=="object"&&"to"in e&&e.to instanceof Date?e.to:t??new Date,[]),[nt,oe]=a.useState(()=>se(o,H));a.useEffect(()=>{b||oe(se(o,H))},[o,H,b,se]),a.useEffect(()=>{b&&Oe(L??O)},[b,O,L]),a.useEffect(()=>{u&&h(j)},[j,u]);const x=a.useMemo(()=>new Intl.DateTimeFormat($,{day:"2-digit",month:"2-digit",year:"numeric"}),[$]),M=a.useCallback(e=>{if(!e)return"";if(e instanceof Date)return x.format(e);if(Array.isArray(e))return e.map(t=>x.format(t)).join(", ");if(e.from){const t=x.format(e.from);return e.to?`${t} – ${x.format(e.to)}`:t}return""},[x]),le=Xe??s==="single",Ie=s==="multiple"&&Array.isArray(o)?o.map((e,t)=>({id:t,label:c?c(e):M(e),date:e})):[],W=a.useMemo(()=>{const e=[];return N&&(Array.isArray(N)?e.push(...N):e.push(N)),E&&(Array.isArray(E)?e.push(...E):e.push(E)),Q&&e.push({before:Q}),Z&&e.push({after:Z}),ke&&e.push({before:new Date}),ve&&e.push({after:new Date}),ee&&e.push(t=>ee(t)),te&&e.push(t=>te(t)),e},[N,E,Q,Z,ke,ve,ee,te]),k=a.useCallback(e=>Ot.dateMatchModifiers(e,W),[W]),st=(e,t,r,l)=>{const d=s==="range"?v.resolveRangeSelection(e,o,t):e;if(m(!1),u||h(d),i==null||i(d,t,r,l),d){const C=c?c(d):M(d);_(C)}else _("");le&&V(!1)},ot=e=>{if(k(e))return;const t=s==="range"?{from:e,to:void 0}:s==="multiple"?[...Array.isArray(o)?o:[],e]:e;m(!1),u||h(t),i==null||i(t,e,{},{});const r=c?c(t):M(t);_(r),le&&V(!1)},lt=a.useMemo(()=>{const e=v.getLocaleDateParts(x),t=new RegExp(`^${v.buildDateRegexSource(e)}$`),{fieldOrder:r}=e;return l=>{const d=l.match(t);if(!d)return;const C={};r.forEach((Mt,Ct)=>{C[Mt]=Number(d[Ct+1])});const{day:ce,month:fe,year:me}=C;if(ce===void 0||fe===void 0||me===void 0)return;const B=new Date(me,fe-1,ce);if(!(isNaN(B.getTime())||B.getFullYear()!==me||B.getMonth()!==fe-1||B.getDate()!==ce))return B}},[x]),Te=e=>(K??(s==="single"?lt:()=>{}))(e),je=e=>s==="single"&&e instanceof Date||s==="multiple"&&Array.isArray(e)||s==="range"&&!!e&&!Array.isArray(e)&&"from"in e,dt=e=>{if(_(e),U(!1),e.trim()===""){m(!1),o!==void 0&&(u||h(void 0),i==null||i(void 0,void 0,{},{}));return}const t=Te(e);if(!je(t)){m(!1);return}const l=t&&!Array.isArray(t)&&"from"in t?t:null;if(t instanceof Date&&k(t)||Array.isArray(t)&&t.some(C=>C instanceof Date&&k(C))||!!l&&(l.from&&k(l.from)||l.to&&k(l.to))){m(!0);return}m(!1),u||h(t),i==null||i(t,t,{},{}),t instanceof Date&&oe(t),le&&V(!1)},ut=()=>{if(ie.trim()===""){U(!1);return}if(!K&&s!=="single"){U(!1);return}U(!je(Te(ie)))};a.useEffect(()=>{if(u){const e=c?c(o):M(o);_(e)}},[o,u,c,M]),a.useEffect(()=>{if(!u&&Y){const e=c?c(Y):M(Y);_(e)}},[]);const ct=A.useFloating({open:b,onOpenChange:V,placement:T==="input"?"bottom-start":"bottom-end",middleware:[z.offset(v.CALENDAR_POPOVER_OFFSET),z.flip(),z.shift({padding:v.CALENDAR_POPOVER_PADDING}),z.size({padding:v.CALENDAR_POPOVER_PADDING,apply({availableWidth:e,elements:t}){const r=t.floating;if(r.style.width="",r.style.maxWidth="",r.style.overflowX="",F)return;r.style.width="max-content",r.getBoundingClientRect().width>e&&(r.style.width="min-content",r.style.maxWidth=`${e}px`)}})],whileElementsMounted:Et.autoUpdate}),{refs:q,context:G,x:ft,y:mt,strategy:pt}=ct,gt=A.useClick(G),Se=A.useInteractions([...g&&!f&&T==="input"&&!y?[gt]:[],A.useDismiss(G,{outsidePress:e=>{const t=e.target;return!(t!=null&&t.closest('[role="menu"], [role="listbox"]'))}}),A.useRole(G,{role:"dialog"})]);a.useEffect(()=>{var t,r;const e=s==="multiple"?((t=Be.current)==null?void 0:t.wrapper)??null:((r=ne.current)==null?void 0:r.input)??null;q.setPositionReference(e??q.reference.current)},[s,b,q]);const ht=()=>{var t;const e=(t=ne.current)==null?void 0:t.input;if(e){if(typeof e.showPicker=="function")try{e.showPicker();return}catch{}e.focus()}},de=()=>{!g||R||(f?ht():y?Ee(!0):V(e=>!e))},bt=e=>{if(m(!1),u||h(e),i==null||i(e,e,{},{}),e){const t=c?c(e):M(e);_(t)}else _("")},yt=e=>{if(!e){m(!1),u||h(void 0),i==null||i(void 0,void 0,{},{});return}const[t,r,l]=e.split("-").map(Number);if(!t||!r||!l)return;const d=new Date(t,r-1,l);if(!Number.isNaN(d.getTime())){if(k(d)){m(!0);return}m(!1),u||h(d),i==null||i(d,d,{},{})}},Dt=Se.getReferenceProps(y&&T==="input"?{onClick:()=>de()}:void 0),{role:Ht,"aria-expanded":Yt,"aria-haspopup":Ut,"aria-controls":_t,...xt}=Dt,Le=y?void 0:_t,ue=X("dateField.openCalendar"),$e={"aria-label":ue,"aria-expanded":y?ae:b,"aria-haspopup":"dialog","aria-controls":Le};return p.jsxs(p.Fragment,{children:[p.jsx("div",{className:I.default(D.default["tedi-date-field__container"],Ge),...xt,ref:q.setReference,children:s==="multiple"?p.jsx(Ft.MultiValueField,{...n,ref:Be,id:he,label:be,tagsDirection:ze,values:Ie.map(e=>e.label),icon:"calendar_today",onIconClick:de,iconButtonProps:g?$e:{"aria-label":ue},isClearable:ge,required:S,onChange:e=>{if(!Array.isArray(o))return;const t=Ie.filter(r=>e.includes(r.label)).map(r=>r.date);u||h(t),i==null||i(t,{},{},{})},className:I.default(D.default["tedi-date-field__textfield"],{[D.default["tedi-date-field__icon--disabled"]]:!g||R})}):p.jsx(kt.TextField,{...n,ref:rt,id:he,label:be,readOnly:R,value:f?it:ie,placeholder:We,icon:"calendar_today",isClearable:ge,onIconClick:de,iconButtonProps:g&&!f?$e:{"aria-label":ue},onChange:e=>f?yt(e):dt(e),onBlur:e=>{var t;f||ut(),(t=n==null?void 0:n.onBlur)==null||t.call(n,e)},required:S,invalid:Re||Ve||(n==null?void 0:n.invalid),helper:(()=>{const e=n==null?void 0:n.helper,t=Re?Qe:Ve?Ze:null,r=t?{text:t,type:"error"}:null;return r?e?Array.isArray(e)?[...e,r]:[e,r]:r:e})(),className:I.default(D.default["tedi-date-field__textfield"],{[D.default["tedi-date-field__textfield--disabled"]]:n==null?void 0:n.disabled,[D.default["tedi-date-field__icon--disabled"]]:!g||R}),input:{...n==null?void 0:n.input,...!K&&s!=="single"&&{readOnly:!0},...f&&{type:"date"},...g&&!f&&T==="input"?{role:"combobox","aria-haspopup":"dialog","aria-expanded":y?ae:b,"aria-controls":Le}:{}}})}),y&&p.jsx(vt.DatePickerModal,{open:ae,onOpenChange:Ee,value:o,onConfirm:bt,mode:s,numberOfMonths:qe,locale:Ae,localeCode:$,showOutsideDays:ye,disabledMatchers:W,required:S,availableDays:Pe,footer:Fe,monthYearSelectType:De,minYear:_e,maxYear:xe,dayStatus:Me,showNavigation:Ce,selectionLevel:O,initialView:L,initialMonth:H,modalProps:Je,...we,title:Ke}),g&&!f&&!y&&p.jsx(A.FloatingPortal,{children:b&&p.jsx(A.FloatingFocusManager,{context:G,modal:!1,initialFocus:-1,children:p.jsx("div",{ref:q.setFloating,className:I.default({[D.default["tedi-date-field__calendar-popover--fullwidth"]]:F}),...Se.getFloatingProps({style:{position:pt,top:mt??0,left:F?0:ft??0,right:F?0:void 0}}),children:p.jsx(At.Calendar,{...we,numberOfMonths:qe,view:tt,selectionLevel:O,currentMonth:nt,setCurrentMonth:oe,setView:Oe,mode:s,value:o,locale:Ae,localeCode:$,showOutsideDays:ye,disabledMatchers:W,required:S,availableDays:Pe,footer:Fe,monthYearSelectType:De,minYear:_e,maxYear:xe,dayStatus:Me,showNavigation:Ce,handleSelect:st,applyValue:ot,className:I.default(D.default["tedi-date-field__calendar"],{[D.default["tedi-date-field__calendar--fullwidth"]]:F})})})})})]})});He.displayName="DateField";exports.DateField=He;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),A=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),I=require("../../../../../external/classnames/index.cjs.js"),i=require("react"),Ft=require("../../content/calendar/calendar.cjs.js"),kt=require("../multi-value-field/multi-value-field.cjs.js"),vt=require("../textfield/textfield.cjs.js"),D=require("./date-field.module.scss.cjs.js"),v=require("./date-field-helpers.cjs.js"),Pt=require("./date-picker-modal/date-picker-modal.cjs.js"),wt=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),Nt=require("../../../providers/label-provider/use-labels.cjs.js"),Et=require("../../../../../external/react-day-picker/dist/esm/locale/et.cjs.js"),pe=require("../../../helpers/hooks/use-breakpoint.cjs.js"),Ot=require("../../../../../external/@floating-ui/dom/dist/floating-ui.dom.cjs.js"),z=require("../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js"),Rt=require("../../../../../external/react-day-picker/dist/esm/utils/dateMatchModifiers.cjs.js"),Ye=i.forwardRef((P,w)=>{const{getCurrentBreakpointProps:Ue}=wt.useBreakpointProps(P.defaultServerBreakpoint),{getLabel:X}=Nt.useLabels(),{useNativePicker:We=!1,enableCalendar:g=!0,calendarTrigger:T="button",numberOfMonths:J,clearable:ge=!0}=Ue(P),{id:he,mode:s="single",label:be,labelProps:ye,selected:j,onSelect:n,disabled:N,disabledMatchers:E,placeholder:Ge,className:ze,formatDate:c,required:S,showOutsideDays:De=!0,parseDate:K,monthYearSelectType:_e,minYear:xe,maxYear:Me,dayStatus:Ce,tagsDirection:Xe,showNavigation:Ae=!0,selectionLevel:O="days",initialView:L,locale:Fe=Et.et,localeCode:$="et-EE",initialMonth:H,closeOnSelect:Je,footer:ke,defaultValue:Y,minDate:Q,maxDate:Z,disablePast:ve,disableFuture:Pe,shouldDisableMonth:ee,shouldDisableYear:te,readOnly:R,availableDays:we,inputProps:r,modal:ae=!1,modalProps:Ke,modalTitle:Qe,disabledDateErrorMessage:Ze=X("dateField.disabledDateError"),invalidDateErrorMessage:et=X("dateField.invalidDateError"),useNativePicker:Vt,enableCalendar:qt,calendarTrigger:Bt,numberOfMonths:It,defaultServerBreakpoint:Tt,sm:jt,md:St,lg:Lt,xl:$t,xxl:Ht,...Ne}=P,f=We&&s==="single",Ee=pe.default(P.defaultServerBreakpoint),F=pe.isBreakpointBelow(Ee,"md"),[tt,h]=i.useState(j??Y),[b,V]=i.useState(!1),[re,Oe]=i.useState(!1),[at,Re]=i.useState(L??O),[ie,_]=i.useState(""),[Ve,m]=i.useState(!1),[qe,U]=i.useState(!1),y=g&&!f&&!R&&(ae===!0||typeof ae=="string"&&pe.isBreakpointBelow(Ee,ae)),Be=F&&!y&&typeof J=="number"&&J>1?1:J,{current:u}=i.useRef("selected"in P),o=u?j:tt,ne=i.useRef(null),Ie=i.useRef(null),rt=i.useCallback(e=>{ne.current=e,typeof w=="function"?w(e):w&&(w.current=e)},[w]),it=e=>{if(!e)return"";const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),l=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${l}`},nt=f&&o instanceof Date?it(o):"",se=i.useCallback((e,t)=>e instanceof Date?e:Array.isArray(e)&&e.length>0?[...e].sort((a,l)=>a.getTime()-l.getTime())[0]:e&&typeof e=="object"&&"from"in e&&e.from instanceof Date?e.from:e&&typeof e=="object"&&"to"in e&&e.to instanceof Date?e.to:t??new Date,[]),[st,oe]=i.useState(()=>se(o,H));i.useEffect(()=>{b||oe(se(o,H))},[o,H,b,se]),i.useEffect(()=>{b&&Re(L??O)},[b,O,L]),i.useEffect(()=>{u&&h(j)},[j,u]);const x=i.useMemo(()=>new Intl.DateTimeFormat($,{day:"2-digit",month:"2-digit",year:"numeric"}),[$]),M=i.useCallback(e=>{if(!e)return"";if(e instanceof Date)return x.format(e);if(Array.isArray(e))return e.map(t=>x.format(t)).join(", ");if(e.from){const t=x.format(e.from);return e.to?`${t} – ${x.format(e.to)}`:t}return""},[x]),le=Je??s==="single",Te=s==="multiple"&&Array.isArray(o)?o.map((e,t)=>({id:t,label:c?c(e):M(e),date:e})):[],W=i.useMemo(()=>{const e=[];return N&&(Array.isArray(N)?e.push(...N):e.push(N)),E&&(Array.isArray(E)?e.push(...E):e.push(E)),Q&&e.push({before:Q}),Z&&e.push({after:Z}),ve&&e.push({before:new Date}),Pe&&e.push({after:new Date}),ee&&e.push(t=>ee(t)),te&&e.push(t=>te(t)),e},[N,E,Q,Z,ve,Pe,ee,te]),k=i.useCallback(e=>Rt.dateMatchModifiers(e,W),[W]),ot=(e,t,a,l)=>{const d=s==="range"?v.resolveRangeSelection(e,o,t):e;if(m(!1),u||h(d),n==null||n(d,t,a,l),d){const C=c?c(d):M(d);_(C)}else _("");le&&V(!1)},lt=e=>{if(k(e))return;const t=s==="range"?{from:e,to:void 0}:s==="multiple"?[...Array.isArray(o)?o:[],e]:e;m(!1),u||h(t),n==null||n(t,e,{},{});const a=c?c(t):M(t);_(a),le&&V(!1)},dt=i.useMemo(()=>{const e=v.getLocaleDateParts(x),t=new RegExp(`^${v.buildDateRegexSource(e)}$`),{fieldOrder:a}=e;return l=>{const d=l.match(t);if(!d)return;const C={};a.forEach((Ct,At)=>{C[Ct]=Number(d[At+1])});const{day:ce,month:fe,year:me}=C;if(ce===void 0||fe===void 0||me===void 0)return;const B=new Date(me,fe-1,ce);if(!(isNaN(B.getTime())||B.getFullYear()!==me||B.getMonth()!==fe-1||B.getDate()!==ce))return B}},[x]),je=e=>(K??(s==="single"?dt:()=>{}))(e),Se=e=>s==="single"&&e instanceof Date||s==="multiple"&&Array.isArray(e)||s==="range"&&!!e&&!Array.isArray(e)&&"from"in e,ut=e=>{if(_(e),U(!1),e.trim()===""){m(!1),o!==void 0&&(u||h(void 0),n==null||n(void 0,void 0,{},{}));return}const t=je(e);if(!Se(t)){m(!1);return}const l=t&&!Array.isArray(t)&&"from"in t?t:null;if(t instanceof Date&&k(t)||Array.isArray(t)&&t.some(C=>C instanceof Date&&k(C))||!!l&&(l.from&&k(l.from)||l.to&&k(l.to))){m(!0);return}m(!1),u||h(t),n==null||n(t,t,{},{}),t instanceof Date&&oe(t),le&&V(!1)},ct=()=>{if(ie.trim()===""){U(!1);return}if(!K&&s!=="single"){U(!1);return}U(!Se(je(ie)))};i.useEffect(()=>{if(u){const e=c?c(o):M(o);_(e)}},[o,u,c,M]),i.useEffect(()=>{if(!u&&Y){const e=c?c(Y):M(Y);_(e)}},[]);const ft=A.useFloating({open:b,onOpenChange:V,placement:T==="input"?"bottom-start":"bottom-end",middleware:[z.offset(v.CALENDAR_POPOVER_OFFSET),z.flip(),z.shift({padding:v.CALENDAR_POPOVER_PADDING}),z.size({padding:v.CALENDAR_POPOVER_PADDING,apply({availableWidth:e,elements:t}){const a=t.floating;if(a.style.width="",a.style.maxWidth="",a.style.overflowX="",F)return;a.style.width="max-content",a.getBoundingClientRect().width>e&&(a.style.width="min-content",a.style.maxWidth=`${e}px`)}})],whileElementsMounted:Ot.autoUpdate}),{refs:q,context:G,x:mt,y:pt,strategy:gt}=ft,ht=A.useClick(G),Le=A.useInteractions([...g&&!f&&T==="input"&&!y?[ht]:[],A.useDismiss(G,{outsidePress:e=>{const t=e.target;return!(t!=null&&t.closest('[role="menu"], [role="listbox"]'))}}),A.useRole(G,{role:"dialog"})]);i.useEffect(()=>{var t,a;const e=s==="multiple"?((t=Ie.current)==null?void 0:t.wrapper)??null:((a=ne.current)==null?void 0:a.input)??null;q.setPositionReference(e??q.reference.current)},[s,b,q]);const bt=()=>{var t;const e=(t=ne.current)==null?void 0:t.input;if(e){if(typeof e.showPicker=="function")try{e.showPicker();return}catch{}e.focus()}},de=()=>{!g||R||(f?bt():y?Oe(!0):V(e=>!e))},yt=e=>{if(m(!1),u||h(e),n==null||n(e,e,{},{}),e){const t=c?c(e):M(e);_(t)}else _("")},Dt=e=>{if(!e){m(!1),u||h(void 0),n==null||n(void 0,void 0,{},{});return}const[t,a,l]=e.split("-").map(Number);if(!t||!a||!l)return;const d=new Date(t,a-1,l);if(!Number.isNaN(d.getTime())){if(k(d)){m(!0);return}m(!1),u||h(d),n==null||n(d,d,{},{})}},_t=Le.getReferenceProps(y&&T==="input"?{onClick:()=>de()}:void 0),{role:Yt,"aria-expanded":Ut,"aria-haspopup":Wt,"aria-controls":xt,...Mt}=_t,$e=y?void 0:xt,ue=X("dateField.openCalendar"),He={"aria-label":ue,"aria-expanded":y?re:b,"aria-haspopup":"dialog","aria-controls":$e};return p.jsxs(p.Fragment,{children:[p.jsx("div",{className:I.default(D.default["tedi-date-field__container"],ze),...Mt,ref:q.setReference,children:s==="multiple"?p.jsx(kt.MultiValueField,{...r,ref:Ie,id:he,label:be,labelProps:ye??(r==null?void 0:r.labelProps),tagsDirection:Xe,values:Te.map(e=>e.label),icon:"calendar_today",onIconClick:de,iconButtonProps:g?He:{"aria-label":ue},isClearable:ge,required:S,onChange:e=>{if(!Array.isArray(o))return;const t=Te.filter(a=>e.includes(a.label)).map(a=>a.date);u||h(t),n==null||n(t,{},{},{})},className:I.default(D.default["tedi-date-field__textfield"],{[D.default["tedi-date-field__icon--disabled"]]:!g||R})}):p.jsx(vt.TextField,{...r,ref:rt,id:he,label:be,labelProps:ye??(r==null?void 0:r.labelProps),readOnly:R,value:f?nt:ie,placeholder:Ge,icon:"calendar_today",isClearable:ge,onIconClick:de,iconButtonProps:g&&!f?He:{"aria-label":ue},onChange:e=>f?Dt(e):ut(e),onBlur:e=>{var t;f||ct(),(t=r==null?void 0:r.onBlur)==null||t.call(r,e)},required:S,invalid:Ve||qe||(r==null?void 0:r.invalid),helper:(()=>{const e=r==null?void 0:r.helper,t=Ve?Ze:qe?et:null,a=t?{text:t,type:"error"}:null;return a?e?Array.isArray(e)?[...e,a]:[e,a]:a:e})(),className:I.default(D.default["tedi-date-field__textfield"],{[D.default["tedi-date-field__textfield--disabled"]]:r==null?void 0:r.disabled,[D.default["tedi-date-field__icon--disabled"]]:!g||R}),input:{...r==null?void 0:r.input,...!K&&s!=="single"&&{readOnly:!0},...f&&{type:"date"},...g&&!f&&T==="input"?{role:"combobox","aria-haspopup":"dialog","aria-expanded":y?re:b,"aria-controls":$e}:{}}})}),y&&p.jsx(Pt.DatePickerModal,{open:re,onOpenChange:Oe,value:o,onConfirm:yt,mode:s,numberOfMonths:Be,locale:Fe,localeCode:$,showOutsideDays:De,disabledMatchers:W,required:S,availableDays:we,footer:ke,monthYearSelectType:_e,minYear:xe,maxYear:Me,dayStatus:Ce,showNavigation:Ae,selectionLevel:O,initialView:L,initialMonth:H,modalProps:Ke,...Ne,title:Qe}),g&&!f&&!y&&p.jsx(A.FloatingPortal,{children:b&&p.jsx(A.FloatingFocusManager,{context:G,modal:!1,initialFocus:-1,children:p.jsx("div",{ref:q.setFloating,className:I.default({[D.default["tedi-date-field__calendar-popover--fullwidth"]]:F}),...Le.getFloatingProps({style:{position:gt,top:pt??0,left:F?0:mt??0,right:F?0:void 0}}),children:p.jsx(Ft.Calendar,{...Ne,numberOfMonths:Be,view:at,selectionLevel:O,currentMonth:st,setCurrentMonth:oe,setView:Re,mode:s,value:o,locale:Fe,localeCode:$,showOutsideDays:De,disabledMatchers:W,required:S,availableDays:we,footer:ke,monthYearSelectType:_e,minYear:xe,maxYear:Me,dayStatus:Ce,showNavigation:Ae,handleSelect:ot,applyValue:lt,className:I.default(D.default["tedi-date-field__calendar"],{[D.default["tedi-date-field__calendar--fullwidth"]]:F})})})})})]})});Ye.displayName="DateField";exports.DateField=Ye;
|
|
@@ -54,6 +54,11 @@ export interface DateFieldProps extends BreakpointSupport<DateFieldBreakpointPro
|
|
|
54
54
|
* Field label. Required for accessibility.
|
|
55
55
|
*/
|
|
56
56
|
label: string;
|
|
57
|
+
/**
|
|
58
|
+
* Props forwarded to the field's label (e.g. `{ modifiers: 'nowrap' }` to control
|
|
59
|
+
* how a long label wraps). Breakpoint keys are supported for responsive wrapping.
|
|
60
|
+
*/
|
|
61
|
+
labelProps?: TextFieldProps['labelProps'];
|
|
57
62
|
/**
|
|
58
63
|
* Determines the selection mode of the calendar.
|
|
59
64
|
* - `'single'` (default) – only one date can be selected. The `selected` prop should be a `Date` object or `undefined`.
|