@tedi-design-system/react 19.0.1-rc.2 → 19.1.0-rc.10
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/DESIGN.md +308 -0
- package/README.md +28 -0
- package/_virtual/index.es13.js +2 -2
- package/_virtual/index.es14.js +2 -2
- package/bundle-stats.html +1 -1
- package/component.manifest.json +1191 -0
- 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/external/react-is/index.cjs.js +1 -1
- package/external/react-is/index.es.js +1 -1
- package/external/toposort/index.cjs.js +1 -1
- package/external/toposort/index.es.js +1 -1
- package/index.css +1 -1
- package/package.json +2 -2
- package/src/community/components/layout/sidenav/sidenav.cjs.js +1 -1
- package/src/community/components/layout/sidenav/sidenav.es.js +38 -40
- package/src/community/components/map-components/base-map-selection/base-map-option.cjs.js +1 -1
- package/src/community/components/map-components/base-map-selection/base-map-option.d.ts +8 -5
- package/src/community/components/map-components/base-map-selection/base-map-option.es.js +63 -65
- package/src/community/components/map-components/base-map-selection/base-map-selection.cjs.js +1 -1
- package/src/community/components/map-components/base-map-selection/base-map-selection.d.ts +1 -4
- package/src/community/components/map-components/base-map-selection/base-map-selection.es.js +55 -55
- package/src/community/components/map-components/map-button/map-button.cjs.js +1 -1
- package/src/community/components/map-components/map-button/map-button.d.ts +2 -3
- package/src/community/components/map-components/map-button/map-button.es.js +37 -36
- package/src/community/components/map-components/map-dropdown/map-dropdown.cjs.js +1 -1
- package/src/community/components/map-components/map-dropdown/map-dropdown.es.js +51 -49
- package/src/community/components/vertical-stepper/step-item/step-item.d.ts +6 -0
- package/src/community/components/vertical-stepper/sub-item/sub-item.d.ts +6 -0
- package/src/community/components/vertical-stepper/vertical-stepper.d.ts +6 -0
- package/src/tedi/components/content/card/card.module.scss.cjs.js +1 -1
- package/src/tedi/components/content/card/card.module.scss.es.js +3 -2
- package/src/tedi/components/content/collapse/collapse.cjs.js +1 -1
- package/src/tedi/components/content/collapse/collapse.d.ts +9 -0
- package/src/tedi/components/content/collapse/collapse.es.js +44 -35
- package/src/tedi/components/filter/filter/filter.cjs.js +1 -1
- package/src/tedi/components/filter/filter/filter.d.ts +5 -0
- package/src/tedi/components/filter/filter/filter.es.js +154 -144
- package/src/tedi/components/filter/filter/filter.module.scss.cjs.js +1 -1
- package/src/tedi/components/filter/filter/filter.module.scss.es.js +2 -1
- package/src/tedi/components/form/date-field/date-field-helpers.cjs.js +1 -1
- package/src/tedi/components/form/date-field/date-field-helpers.d.ts +12 -19
- package/src/tedi/components/form/date-field/date-field-helpers.es.js +27 -21
- package/src/tedi/components/form/date-field/date-field.cjs.js +1 -1
- package/src/tedi/components/form/date-field/date-field.d.ts +1 -1
- package/src/tedi/components/form/date-field/date-field.es.js +169 -164
- package/src/tedi/components/form/textfield/textfield.cjs.js +1 -1
- package/src/tedi/components/form/textfield/textfield.es.js +21 -21
- package/src/tedi/components/form/time-field/time-field.cjs.js +1 -1
- package/src/tedi/components/form/time-field/time-field.es.js +126 -124
- package/src/tedi/components/layout/sidenav/components/sidenav-item/sidenav-item.cjs.js +1 -1
- package/src/tedi/components/layout/sidenav/components/sidenav-item/sidenav-item.es.js +82 -85
- package/src/tedi/components/layout/sidenav/sidenav.cjs.js +1 -1
- package/src/tedi/components/layout/sidenav/sidenav.es.js +16 -16
- package/src/tedi/components/layout/top-nav/components/top-nav-item/top-nav-item.cjs.js +1 -1
- package/src/tedi/components/layout/top-nav/components/top-nav-item/top-nav-item.es.js +6 -7
- package/src/tedi/components/layout/top-nav/components/top-nav-separator/top-nav-separator.cjs.js +1 -1
- package/src/tedi/components/layout/top-nav/components/top-nav-separator/top-nav-separator.es.js +2 -2
- package/src/tedi/components/layout/top-nav/top-nav.cjs.js +1 -1
- package/src/tedi/components/layout/top-nav/top-nav.es.js +9 -8
- package/src/tedi/components/misc/affix/affix.cjs.js +1 -1
- package/src/tedi/components/misc/affix/affix.es.js +20 -8
- package/src/tedi/components/navigation/card-stepper/card-stepper-step.cjs.js +1 -0
- package/src/tedi/components/navigation/card-stepper/card-stepper-step.d.ts +86 -0
- package/src/tedi/components/navigation/card-stepper/card-stepper-step.es.js +5 -0
- package/src/tedi/components/navigation/card-stepper/card-stepper.cjs.js +1 -0
- package/src/tedi/components/navigation/card-stepper/card-stepper.d.ts +130 -0
- package/src/tedi/components/navigation/card-stepper/card-stepper.es.js +200 -0
- package/src/tedi/components/navigation/card-stepper/card-stepper.module.scss.cjs.js +1 -0
- package/src/tedi/components/navigation/card-stepper/card-stepper.module.scss.es.js +26 -0
- package/src/tedi/components/navigation/card-stepper/index.d.ts +2 -0
- package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-collapsible/table-of-contents-collapsible.cjs.js +1 -1
- package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-collapsible/table-of-contents-collapsible.d.ts +9 -1
- package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-collapsible/table-of-contents-collapsible.es.js +82 -65
- package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-item/table-of-contents-item.d.ts +6 -0
- package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-row/table-of-contents-row.cjs.js +1 -1
- package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-row/table-of-contents-row.es.js +23 -28
- package/src/tedi/components/navigation/table-of-contents/table-of-contents.cjs.js +1 -1
- package/src/tedi/components/navigation/table-of-contents/table-of-contents.d.ts +32 -21
- package/src/tedi/components/navigation/table-of-contents/table-of-contents.es.js +58 -55
- package/src/tedi/components/navigation/table-of-contents/table-of-contents.module.scss.cjs.js +1 -1
- package/src/tedi/components/navigation/table-of-contents/table-of-contents.module.scss.es.js +4 -1
- package/src/tedi/components/navigation/vertical-stepper/index.d.ts +3 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-context.cjs.js +1 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-context.d.ts +10 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-context.es.js +8 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-item.cjs.js +1 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-item.d.ts +74 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-item.es.js +109 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-sub-item.cjs.js +1 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-sub-item.d.ts +47 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-sub-item.es.js +65 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.cjs.js +1 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.d.ts +28 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.es.js +32 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.module.scss.cjs.js +1 -0
- package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.module.scss.es.js +34 -0
- package/src/tedi/components/overlays/dropdown/dropdown.cjs.js +1 -1
- package/src/tedi/components/overlays/dropdown/dropdown.d.ts +8 -0
- package/src/tedi/components/overlays/dropdown/dropdown.es.js +82 -74
- package/src/tedi/components/overlays/dropdown/dropdown.module.scss.cjs.js +1 -1
- package/src/tedi/components/overlays/dropdown/dropdown.module.scss.es.js +1 -0
- package/src/tedi/components/overlays/overlay/overlay-trigger.cjs.js +1 -1
- package/src/tedi/components/overlays/overlay/overlay-trigger.es.js +22 -21
- package/src/tedi/components/overlays/sheet/sheet.cjs.js +1 -0
- package/src/tedi/components/overlays/sheet/sheet.d.ts +65 -0
- package/src/tedi/components/overlays/sheet/sheet.es.js +41 -0
- package/src/tedi/components/overlays/sheet/sheet.module.scss.cjs.js +1 -0
- package/src/tedi/components/overlays/sheet/sheet.module.scss.es.js +8 -0
- package/src/tedi/helpers/hooks/use-safe-id.cjs.js +1 -0
- package/src/tedi/helpers/hooks/use-safe-id.d.ts +16 -0
- package/src/tedi/helpers/hooks/use-safe-id.es.js +5 -0
- package/src/tedi/helpers/index.d.ts +1 -0
- package/src/tedi/index.d.ts +2 -0
- package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
- package/src/tedi/providers/label-provider/labels-map.d.ts +56 -0
- package/src/tedi/providers/label-provider/labels-map.es.js +127 -71
- package/tedi.cjs.js +1 -1
- package/tedi.es.js +284 -272
|
@@ -1,121 +1,129 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useFloatingNodeId as
|
|
3
|
-
import
|
|
1
|
+
import { jsxs as A, jsx as d } from "react/jsx-runtime";
|
|
2
|
+
import { useFloatingNodeId as U, useFloating as q, useInteractions as z, useClick as G, useRole as J, useDismiss as K, useListNavigation as Q, FloatingPortal as V, FloatingFocusManager as X } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
|
|
3
|
+
import Y from "../../../../../external/classnames/index.es.js";
|
|
4
4
|
import e from "react";
|
|
5
|
-
import
|
|
6
|
-
import { DropdownContent as
|
|
7
|
-
import { DropdownContext as
|
|
8
|
-
import { resolveDropdownWidth as
|
|
9
|
-
import { DropdownItem as
|
|
10
|
-
import { DropdownSeparator as
|
|
11
|
-
import { DropdownTrigger as
|
|
12
|
-
import { useBreakpointProps as
|
|
13
|
-
import { useLabels as
|
|
14
|
-
import { autoUpdate as
|
|
15
|
-
import { offset as
|
|
16
|
-
const
|
|
17
|
-
var
|
|
18
|
-
const { getCurrentBreakpointProps:
|
|
19
|
-
children:
|
|
20
|
-
modal:
|
|
5
|
+
import v from "./dropdown.module.scss.es.js";
|
|
6
|
+
import { DropdownContent as Z } from "./dropdown-content/dropdown-content.es.js";
|
|
7
|
+
import { DropdownContext as ee } from "./dropdown-context.es.js";
|
|
8
|
+
import { resolveDropdownWidth as te } from "./dropdown-helpers.es.js";
|
|
9
|
+
import { DropdownItem as oe } from "./dropdown-item/dropdown-item.es.js";
|
|
10
|
+
import { DropdownSeparator as ne } from "./dropdown-separator/dropdown-separator.es.js";
|
|
11
|
+
import { DropdownTrigger as re } from "./dropdown-trigger/dropdown-trigger.es.js";
|
|
12
|
+
import { useBreakpointProps as ie } from "../../../helpers/hooks/use-breakpoint-props.es.js";
|
|
13
|
+
import { useLabels as se } from "../../../providers/label-provider/use-labels.es.js";
|
|
14
|
+
import { autoUpdate as ae } from "../../../../../external/@floating-ui/dom/dist/floating-ui.dom.es.js";
|
|
15
|
+
import { offset as le, flip as de, shift as ce } from "../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js";
|
|
16
|
+
const me = 4, c = (h) => {
|
|
17
|
+
var O;
|
|
18
|
+
const { getCurrentBreakpointProps: F } = ie(h.defaultServerBreakpoint), {
|
|
19
|
+
children: N,
|
|
20
|
+
modal: w = !1,
|
|
21
21
|
divided: R = !1,
|
|
22
|
-
width:
|
|
23
|
-
variant:
|
|
24
|
-
open:
|
|
22
|
+
width: y = "auto",
|
|
23
|
+
variant: m = "default",
|
|
24
|
+
open: p,
|
|
25
25
|
defaultOpen: P = !1,
|
|
26
26
|
onOpenChange: s,
|
|
27
27
|
defaultActiveIndex: o,
|
|
28
28
|
placement: u = "bottom-start",
|
|
29
|
+
maxHeight: a,
|
|
29
30
|
className: S
|
|
30
|
-
} =
|
|
31
|
+
} = F(h), { getLabel: b } = se(), k = U(), x = e.useRef([]), [l, f] = e.useState(o ?? null), [g, B] = e.useState(null), [_, W] = e.useState(P), t = p ?? _;
|
|
31
32
|
e.useEffect(() => {
|
|
32
|
-
t ||
|
|
33
|
+
t || f(o ?? null);
|
|
33
34
|
}, [t, o]);
|
|
34
|
-
const
|
|
35
|
+
const D = e.useCallback(
|
|
35
36
|
(i) => {
|
|
36
|
-
|
|
37
|
+
p === void 0 && W(i), s == null || s(i);
|
|
37
38
|
},
|
|
38
|
-
[
|
|
39
|
-
), E =
|
|
40
|
-
nodeId:
|
|
39
|
+
[p, s]
|
|
40
|
+
), E = q({
|
|
41
|
+
nodeId: k,
|
|
41
42
|
open: t,
|
|
42
43
|
placement: u,
|
|
43
|
-
onOpenChange:
|
|
44
|
-
middleware: [
|
|
45
|
-
whileElementsMounted:
|
|
46
|
-
}), { context: n, refs: r, x:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
listRef:
|
|
52
|
-
activeIndex:
|
|
53
|
-
onNavigate:
|
|
44
|
+
onOpenChange: D,
|
|
45
|
+
middleware: [le(me), de(), ce()],
|
|
46
|
+
whileElementsMounted: ae
|
|
47
|
+
}), { context: n, refs: r, x: H, y: L, strategy: M } = E, I = z([
|
|
48
|
+
G(n),
|
|
49
|
+
J(n, { role: "menu" }),
|
|
50
|
+
K(n),
|
|
51
|
+
Q(n, {
|
|
52
|
+
listRef: x,
|
|
53
|
+
activeIndex: l,
|
|
54
|
+
onNavigate: f,
|
|
54
55
|
loop: !0,
|
|
55
56
|
selectedIndex: o ?? null,
|
|
56
57
|
focusItemOnOpen: o !== null ? !0 : "auto"
|
|
57
58
|
})
|
|
58
|
-
]),
|
|
59
|
+
]), T = {
|
|
59
60
|
open: t,
|
|
60
|
-
setOpen:
|
|
61
|
+
setOpen: D,
|
|
61
62
|
refs: r,
|
|
62
|
-
listItemsRef:
|
|
63
|
-
activeIndex:
|
|
64
|
-
setActiveIndex:
|
|
63
|
+
listItemsRef: x,
|
|
64
|
+
activeIndex: l,
|
|
65
|
+
setActiveIndex: f,
|
|
65
66
|
placement: u,
|
|
66
|
-
content:
|
|
67
|
+
content: g,
|
|
67
68
|
setContent: B,
|
|
68
69
|
divided: R,
|
|
69
|
-
variant:
|
|
70
|
-
...
|
|
71
|
-
},
|
|
70
|
+
variant: m,
|
|
71
|
+
...I
|
|
72
|
+
}, $ = (O = r.reference.current) == null ? void 0 : O.getBoundingClientRect().width, j = e.useMemo(() => {
|
|
72
73
|
const i = r.reference.current;
|
|
73
74
|
if (!i) return;
|
|
74
|
-
const
|
|
75
|
-
if (
|
|
76
|
-
return
|
|
75
|
+
const C = i.offsetParent;
|
|
76
|
+
if (C)
|
|
77
|
+
return C.getBoundingClientRect().width;
|
|
77
78
|
}, [r.reference.current]);
|
|
78
|
-
return /* @__PURE__ */
|
|
79
|
-
|
|
80
|
-
/* @__PURE__ */
|
|
81
|
-
|
|
79
|
+
return /* @__PURE__ */ A(ee.Provider, { value: T, children: [
|
|
80
|
+
N,
|
|
81
|
+
/* @__PURE__ */ d(V, { children: t && /* @__PURE__ */ d(
|
|
82
|
+
X,
|
|
82
83
|
{
|
|
83
84
|
context: n,
|
|
84
|
-
modal:
|
|
85
|
-
visuallyHiddenDismiss:
|
|
86
|
-
children: /* @__PURE__ */
|
|
85
|
+
modal: w,
|
|
86
|
+
visuallyHiddenDismiss: w ? b("close") : !1,
|
|
87
|
+
children: /* @__PURE__ */ d(
|
|
87
88
|
"div",
|
|
88
89
|
{
|
|
89
|
-
...
|
|
90
|
+
...I.getFloatingProps({
|
|
90
91
|
ref: r.setFloating,
|
|
91
|
-
className:
|
|
92
|
-
|
|
93
|
-
{ [
|
|
92
|
+
className: Y(
|
|
93
|
+
v["tedi-dropdown"],
|
|
94
|
+
{ [v[`tedi-dropdown--${m}`]]: m === "tree" },
|
|
94
95
|
S
|
|
95
96
|
),
|
|
96
97
|
style: {
|
|
97
|
-
position:
|
|
98
|
-
left:
|
|
99
|
-
top:
|
|
100
|
-
width:
|
|
98
|
+
position: M,
|
|
99
|
+
left: H ?? 0,
|
|
100
|
+
top: L ?? 0,
|
|
101
|
+
width: te(y, $, j)
|
|
101
102
|
},
|
|
102
103
|
role: "menu",
|
|
103
104
|
"aria-orientation": "vertical",
|
|
104
|
-
"aria-activedescendant":
|
|
105
|
+
"aria-activedescendant": l !== null ? `dropdown-item-${l}` : void 0
|
|
105
106
|
}),
|
|
106
107
|
"data-placement": u,
|
|
107
108
|
"data-state": t ? "open" : "closed",
|
|
108
|
-
children:
|
|
109
|
+
children: a !== void 0 ? /* @__PURE__ */ d(
|
|
110
|
+
"div",
|
|
111
|
+
{
|
|
112
|
+
className: v["tedi-dropdown__scroll"],
|
|
113
|
+
style: { maxHeight: typeof a == "number" ? `${a}px` : a },
|
|
114
|
+
children: g
|
|
115
|
+
}
|
|
116
|
+
) : g
|
|
109
117
|
}
|
|
110
118
|
)
|
|
111
119
|
}
|
|
112
120
|
) })
|
|
113
121
|
] });
|
|
114
122
|
};
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
123
|
+
c.Trigger = re;
|
|
124
|
+
c.Content = Z;
|
|
125
|
+
c.Item = oe;
|
|
126
|
+
c.Separator = ne;
|
|
119
127
|
export {
|
|
120
|
-
|
|
128
|
+
c as Dropdown
|
|
121
129
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-dropdown":"tedi-dropdown-0246d37c","tedi-dropdown--tree":"tedi-dropdown--tree-c13f70ee","tedi-dropdown__item":"tedi-dropdown__item-fa7ee478"};exports.default=e;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-dropdown":"tedi-dropdown-0246d37c","tedi-dropdown__scroll":"tedi-dropdown__scroll-c7d1c849","tedi-dropdown--tree":"tedi-dropdown--tree-c13f70ee","tedi-dropdown__item":"tedi-dropdown__item-fa7ee478"};exports.default=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react/jsx-runtime"),m=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),q=require("../../../../../external/classnames/index.cjs.js"),t=require("react"),x=require("../../../helpers/get-element-ref.cjs.js"),_=require("../../base/icon/icon.cjs.js"),R=require("./overlay.cjs.js"),o=require("./overlay.module.scss.cjs.js"),E=require("../../../providers/label-provider/use-labels.cjs.js"),I=c=>{const{children:e,className:a}=c,{getLabel:d}=E.useLabels(),{getReferenceProps:i,reference:u,openWith:g,open:f,role:r,ariaHidden:n,contentId:v}=t.useContext(R.OverlayContext),p=t.isValidElement(e)?x.getElementRef(e):void 0,l=m.useMergeRefs([u,p]),b=r!=="tooltip"&&r!=="label"&&!n,s=r==="tooltip"&&!n?{"aria-describedby":f?v:void 0}:{};return t.isValidElement(e)?t.cloneElement(e,i({tabIndex:0,...s,label:e.type===_.Icon?d("tooltip.icon-trigger"):void 0,...e.props,ref:l})):y.jsx("div",{...i({ref:l,tabIndex:0,role:b?"button":void 0,className:q.default(o.default["tedi-overlay__trigger"],o.default["tedi-overlay__trigger--text"],{[o.default["tedi-overlay__trigger--click"]]:g==="click"},a),...s}),children:e})};exports.OverlayTrigger=I;
|
|
@@ -1,45 +1,46 @@
|
|
|
1
1
|
import { jsx as x } from "react/jsx-runtime";
|
|
2
2
|
import { useMergeRefs as y } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
|
|
3
|
-
import
|
|
4
|
-
import { useContext as _, isValidElement as
|
|
5
|
-
import { getElementRef as
|
|
6
|
-
import { Icon as
|
|
7
|
-
import { OverlayContext as
|
|
3
|
+
import u from "../../../../../external/classnames/index.es.js";
|
|
4
|
+
import { useContext as _, isValidElement as l, cloneElement as I } from "react";
|
|
5
|
+
import { getElementRef as R } from "../../../helpers/get-element-ref.es.js";
|
|
6
|
+
import { Icon as h } from "../../base/icon/icon.es.js";
|
|
7
|
+
import { OverlayContext as E } from "./overlay.es.js";
|
|
8
8
|
import r from "./overlay.module.scss.es.js";
|
|
9
|
-
import { useLabels as
|
|
10
|
-
const
|
|
11
|
-
const { children: e, className:
|
|
12
|
-
"aria-describedby":
|
|
9
|
+
import { useLabels as N } from "../../../providers/label-provider/use-labels.es.js";
|
|
10
|
+
const V = (c) => {
|
|
11
|
+
const { children: e, className: a } = c, { getLabel: m } = N(), { getReferenceProps: o, reference: p, openWith: d, open: f, role: t, ariaHidden: i, contentId: g } = _(E), v = l(e) ? R(e) : void 0, n = y([p, v]), b = t !== "tooltip" && t !== "label" && !i, s = t === "tooltip" && !i ? {
|
|
12
|
+
"aria-describedby": f ? g : void 0
|
|
13
13
|
} : {};
|
|
14
|
-
return
|
|
14
|
+
return l(e) ? I(
|
|
15
15
|
e,
|
|
16
|
-
|
|
16
|
+
o({
|
|
17
17
|
tabIndex: 0,
|
|
18
|
-
...
|
|
19
|
-
label: e.type ===
|
|
18
|
+
...s,
|
|
19
|
+
label: e.type === h ? m("tooltip.icon-trigger") : void 0,
|
|
20
20
|
...e.props,
|
|
21
|
-
ref:
|
|
21
|
+
ref: n
|
|
22
22
|
})
|
|
23
23
|
) : /* @__PURE__ */ x(
|
|
24
24
|
"div",
|
|
25
25
|
{
|
|
26
|
-
...
|
|
27
|
-
ref:
|
|
26
|
+
...o({
|
|
27
|
+
ref: n,
|
|
28
28
|
tabIndex: 0,
|
|
29
|
-
|
|
29
|
+
role: b ? "button" : void 0,
|
|
30
|
+
className: u(
|
|
30
31
|
r["tedi-overlay__trigger"],
|
|
31
32
|
r["tedi-overlay__trigger--text"],
|
|
32
33
|
{
|
|
33
|
-
[r["tedi-overlay__trigger--click"]]:
|
|
34
|
+
[r["tedi-overlay__trigger--click"]]: d === "click"
|
|
34
35
|
},
|
|
35
|
-
|
|
36
|
+
a
|
|
36
37
|
),
|
|
37
|
-
...
|
|
38
|
+
...s
|
|
38
39
|
}),
|
|
39
40
|
children: e
|
|
40
41
|
}
|
|
41
42
|
);
|
|
42
43
|
};
|
|
43
44
|
export {
|
|
44
|
-
|
|
45
|
+
V as OverlayTrigger
|
|
45
46
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),j=require("../../../../../external/classnames/index.cjs.js"),m=require("react"),b=require("../../base/typography/text/text.cjs.js"),f=require("../../buttons/closing-button/closing-button.cjs.js"),t=require("../modal/modal.cjs.js"),d=require("./sheet.module.scss.cjs.js"),i=({open:r,onToggle:a,defaultOpen:n,title:s,header:l,closeButton:c=!0,ariaLabel:u,className:h,children:x})=>{const o=m.useId();return e.jsx(t.Modal,{open:r,onToggle:a,defaultOpen:n,children:e.jsxs(t.Modal.Content,{position:"bottom",fullscreen:"edge","aria-label":u,"aria-labelledby":!l&&s!==void 0&&s!==null?o:void 0,className:j.default(d.default["tedi-sheet"],h),children:[l?e.jsx(t.Modal.Header,{children:l}):e.jsx(t.Modal.Header,{children:e.jsxs("div",{className:d.default["tedi-sheet__header"],children:[e.jsx(b.Text,{id:o,modifiers:"bold",color:"secondary",className:d.default["tedi-sheet__title"],children:s}),c&&e.jsx(t.Modal.Closer,{children:e.jsx(f.ClosingButton,{size:"small"})})]})}),e.jsx(t.Modal.Body,{children:x})]})})};i.displayName="Sheet";exports.Sheet=i;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface SheetBaseProps {
|
|
3
|
+
/** Controlled open state. Pair with `onToggle`; omit for uncontrolled use with `defaultOpen`. */
|
|
4
|
+
open?: boolean;
|
|
5
|
+
/** Called when the sheet opens or closes. */
|
|
6
|
+
onToggle?: (open: boolean) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Initial open state in uncontrolled mode. Ignored when `open` is provided.
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
defaultOpen?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the close button is shown next to the `title`. Only applies to the
|
|
14
|
+
* `title` layout — a custom `header` owns its own controls.
|
|
15
|
+
* @default true
|
|
16
|
+
*/
|
|
17
|
+
closeButton?: boolean;
|
|
18
|
+
/** Extra class name applied to the sheet container. */
|
|
19
|
+
className?: string;
|
|
20
|
+
/** Sheet body content. */
|
|
21
|
+
children: ReactNode;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The dialog must always have an accessible name (WCAG 4.1.2). A plain `title` names it via
|
|
25
|
+
* `aria-labelledby`; when no title is rendered (a custom `header`, or no title at all) an explicit
|
|
26
|
+
* `ariaLabel` is required — the type enforces one of these.
|
|
27
|
+
*/
|
|
28
|
+
export type SheetProps = SheetBaseProps & ({
|
|
29
|
+
/**
|
|
30
|
+
* Plain header title, rendered as the sheet's bold heading (with a close button per
|
|
31
|
+
* `closeButton`) and wired to the dialog's `aria-labelledby`.
|
|
32
|
+
*/
|
|
33
|
+
title: ReactNode;
|
|
34
|
+
header?: never;
|
|
35
|
+
/** Optional — the rendered `title` already names the dialog. */
|
|
36
|
+
ariaLabel?: string;
|
|
37
|
+
} | {
|
|
38
|
+
/**
|
|
39
|
+
* Accessible name for the dialog. Required here because no plain `title` is rendered
|
|
40
|
+
* (a custom `header`, or no title).
|
|
41
|
+
*/
|
|
42
|
+
ariaLabel: string;
|
|
43
|
+
/** Plain header title. Ignored when `header` is set. */
|
|
44
|
+
title?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Full header override (custom controls, layout, …), rendered as `Modal.Header` children —
|
|
47
|
+
* replaces the default title/close-button layout, so the consumer owns any close control.
|
|
48
|
+
* Takes precedence over `title`.
|
|
49
|
+
*/
|
|
50
|
+
header?: ReactNode;
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* ⚠️ Internal, temporary component — **not exported publicly**.
|
|
54
|
+
*
|
|
55
|
+
* A bottom-sheet overlay built on `Modal` (`position="bottom"` +
|
|
56
|
+
* `fullscreen="edge"`), so the sheet sits flush to the screen edges with no
|
|
57
|
+
* outer margin. It centralises that configuration for the mobile variants that
|
|
58
|
+
* need a sheet (e.g. `TableOfContents.Collapsible`, `CardStepper`) until a real
|
|
59
|
+
* `Sheet` component exists — at which point these usages migrate to it.
|
|
60
|
+
*/
|
|
61
|
+
export declare const Sheet: {
|
|
62
|
+
({ open, onToggle, defaultOpen, title, header, closeButton, ariaLabel, className, children, }: SheetProps): JSX.Element;
|
|
63
|
+
displayName: string;
|
|
64
|
+
};
|
|
65
|
+
export default Sheet;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { jsx as e, jsxs as t } from "react/jsx-runtime";
|
|
2
|
+
import f from "../../../../../external/classnames/index.es.js";
|
|
3
|
+
import { useId as u } from "react";
|
|
4
|
+
import { Text as b } from "../../base/typography/text/text.es.js";
|
|
5
|
+
import { ClosingButton as y } from "../../buttons/closing-button/closing-button.es.js";
|
|
6
|
+
import { Modal as o } from "../modal/modal.es.js";
|
|
7
|
+
import l from "./sheet.module.scss.es.js";
|
|
8
|
+
const N = ({
|
|
9
|
+
open: d,
|
|
10
|
+
onToggle: m,
|
|
11
|
+
defaultOpen: a,
|
|
12
|
+
title: r,
|
|
13
|
+
header: i,
|
|
14
|
+
closeButton: n = !0,
|
|
15
|
+
ariaLabel: c,
|
|
16
|
+
className: h,
|
|
17
|
+
children: p
|
|
18
|
+
}) => {
|
|
19
|
+
const s = u();
|
|
20
|
+
return /* @__PURE__ */ e(o, { open: d, onToggle: m, defaultOpen: a, children: /* @__PURE__ */ t(
|
|
21
|
+
o.Content,
|
|
22
|
+
{
|
|
23
|
+
position: "bottom",
|
|
24
|
+
fullscreen: "edge",
|
|
25
|
+
"aria-label": c,
|
|
26
|
+
"aria-labelledby": !i && r !== void 0 && r !== null ? s : void 0,
|
|
27
|
+
className: f(l["tedi-sheet"], h),
|
|
28
|
+
children: [
|
|
29
|
+
i ? /* @__PURE__ */ e(o.Header, { children: i }) : /* @__PURE__ */ e(o.Header, { children: /* @__PURE__ */ t("div", { className: l["tedi-sheet__header"], children: [
|
|
30
|
+
/* @__PURE__ */ e(b, { id: s, modifiers: "bold", color: "secondary", className: l["tedi-sheet__title"], children: r }),
|
|
31
|
+
n && /* @__PURE__ */ e(o.Closer, { children: /* @__PURE__ */ e(y, { size: "small" }) })
|
|
32
|
+
] }) }),
|
|
33
|
+
/* @__PURE__ */ e(o.Body, { children: p })
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
) });
|
|
37
|
+
};
|
|
38
|
+
N.displayName = "Sheet";
|
|
39
|
+
export {
|
|
40
|
+
N as Sheet
|
|
41
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-sheet":"tedi-sheet-3174d4b8","tedi-sheet__header":"tedi-sheet__header-39963c05","tedi-sheet__title":"tedi-sheet__title-d67212d8"};exports.default=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),a=(e="tedi")=>`${e}-${t.useId()}`.replace(/[^a-zA-Z0-9_-]/g,"");exports.useSafeId=a;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Colon-free variant of React's `useId()`. `useId()` returns ids wrapped in colons
|
|
3
|
+
* (e.g. `:r8m:`) which are valid in the DOM but break CSS-selector resolution — so
|
|
4
|
+
* selector-based tooling (such as axe resolving an `aria-controls` idref) can't
|
|
5
|
+
* confirm the referenced element exists and reports it as inconclusive. Use this
|
|
6
|
+
* whenever the id is written to the DOM and referenced by an `id` / aria idref
|
|
7
|
+
* attribute (`aria-controls`, `aria-labelledby`, `htmlFor`, …).
|
|
8
|
+
*
|
|
9
|
+
* The whole result (prefix included) is stripped of any character that isn't a
|
|
10
|
+
* letter, digit, `-` or `_`, so a caller-supplied prefix such as `"nav:main"`
|
|
11
|
+
* can't reintroduce a colon and break the selector-safe contract.
|
|
12
|
+
*
|
|
13
|
+
* @param prefix Readable prefix prepended to the id. @default 'tedi'
|
|
14
|
+
* @returns A stable, unique, selector-safe id (e.g. `tedi-r8m`).
|
|
15
|
+
*/
|
|
16
|
+
export declare const useSafeId: (prefix?: string) => string;
|
package/src/tedi/index.d.ts
CHANGED
|
@@ -40,6 +40,8 @@ export * from './components/navigation/link/link';
|
|
|
40
40
|
export * from './components/navigation/pagination';
|
|
41
41
|
export * from './components/navigation/table-of-contents';
|
|
42
42
|
export * from './components/navigation/tabs';
|
|
43
|
+
export * from './components/navigation/vertical-stepper';
|
|
44
|
+
export * from './components/navigation/card-stepper';
|
|
43
45
|
export * from './components/form/textfield/textfield';
|
|
44
46
|
export * from './components/form/textarea/textarea';
|
|
45
47
|
export * from './components/form/number-field/number-field';
|