@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.
Files changed (129) hide show
  1. package/DESIGN.md +308 -0
  2. package/README.md +28 -0
  3. package/_virtual/index.es13.js +2 -2
  4. package/_virtual/index.es14.js +2 -2
  5. package/bundle-stats.html +1 -1
  6. package/component.manifest.json +1191 -0
  7. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.cjs.js +1 -1
  8. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.es.js +1 -1
  9. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  10. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.es.js +1 -1
  11. package/external/hoist-non-react-statics/external/react-is/index.cjs.js +1 -1
  12. package/external/hoist-non-react-statics/external/react-is/index.es.js +1 -1
  13. package/external/prop-types/external/react-is/cjs/react-is.development.cjs.js +1 -1
  14. package/external/prop-types/external/react-is/cjs/react-is.development.es.js +1 -1
  15. package/external/prop-types/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  16. package/external/prop-types/external/react-is/cjs/react-is.production.min.es.js +1 -1
  17. package/external/prop-types/external/react-is/index.cjs.js +1 -1
  18. package/external/prop-types/external/react-is/index.es.js +1 -1
  19. package/external/react-is/index.cjs.js +1 -1
  20. package/external/react-is/index.es.js +1 -1
  21. package/external/toposort/index.cjs.js +1 -1
  22. package/external/toposort/index.es.js +1 -1
  23. package/index.css +1 -1
  24. package/package.json +2 -2
  25. package/src/community/components/layout/sidenav/sidenav.cjs.js +1 -1
  26. package/src/community/components/layout/sidenav/sidenav.es.js +38 -40
  27. package/src/community/components/map-components/base-map-selection/base-map-option.cjs.js +1 -1
  28. package/src/community/components/map-components/base-map-selection/base-map-option.d.ts +8 -5
  29. package/src/community/components/map-components/base-map-selection/base-map-option.es.js +63 -65
  30. package/src/community/components/map-components/base-map-selection/base-map-selection.cjs.js +1 -1
  31. package/src/community/components/map-components/base-map-selection/base-map-selection.d.ts +1 -4
  32. package/src/community/components/map-components/base-map-selection/base-map-selection.es.js +55 -55
  33. package/src/community/components/map-components/map-button/map-button.cjs.js +1 -1
  34. package/src/community/components/map-components/map-button/map-button.d.ts +2 -3
  35. package/src/community/components/map-components/map-button/map-button.es.js +37 -36
  36. package/src/community/components/map-components/map-dropdown/map-dropdown.cjs.js +1 -1
  37. package/src/community/components/map-components/map-dropdown/map-dropdown.es.js +51 -49
  38. package/src/community/components/vertical-stepper/step-item/step-item.d.ts +6 -0
  39. package/src/community/components/vertical-stepper/sub-item/sub-item.d.ts +6 -0
  40. package/src/community/components/vertical-stepper/vertical-stepper.d.ts +6 -0
  41. package/src/tedi/components/content/card/card.module.scss.cjs.js +1 -1
  42. package/src/tedi/components/content/card/card.module.scss.es.js +3 -2
  43. package/src/tedi/components/content/collapse/collapse.cjs.js +1 -1
  44. package/src/tedi/components/content/collapse/collapse.d.ts +9 -0
  45. package/src/tedi/components/content/collapse/collapse.es.js +44 -35
  46. package/src/tedi/components/filter/filter/filter.cjs.js +1 -1
  47. package/src/tedi/components/filter/filter/filter.d.ts +5 -0
  48. package/src/tedi/components/filter/filter/filter.es.js +154 -144
  49. package/src/tedi/components/filter/filter/filter.module.scss.cjs.js +1 -1
  50. package/src/tedi/components/filter/filter/filter.module.scss.es.js +2 -1
  51. package/src/tedi/components/form/date-field/date-field-helpers.cjs.js +1 -1
  52. package/src/tedi/components/form/date-field/date-field-helpers.d.ts +12 -19
  53. package/src/tedi/components/form/date-field/date-field-helpers.es.js +27 -21
  54. package/src/tedi/components/form/date-field/date-field.cjs.js +1 -1
  55. package/src/tedi/components/form/date-field/date-field.d.ts +1 -1
  56. package/src/tedi/components/form/date-field/date-field.es.js +169 -164
  57. package/src/tedi/components/form/textfield/textfield.cjs.js +1 -1
  58. package/src/tedi/components/form/textfield/textfield.es.js +21 -21
  59. package/src/tedi/components/form/time-field/time-field.cjs.js +1 -1
  60. package/src/tedi/components/form/time-field/time-field.es.js +126 -124
  61. package/src/tedi/components/layout/sidenav/components/sidenav-item/sidenav-item.cjs.js +1 -1
  62. package/src/tedi/components/layout/sidenav/components/sidenav-item/sidenav-item.es.js +82 -85
  63. package/src/tedi/components/layout/sidenav/sidenav.cjs.js +1 -1
  64. package/src/tedi/components/layout/sidenav/sidenav.es.js +16 -16
  65. package/src/tedi/components/layout/top-nav/components/top-nav-item/top-nav-item.cjs.js +1 -1
  66. package/src/tedi/components/layout/top-nav/components/top-nav-item/top-nav-item.es.js +6 -7
  67. package/src/tedi/components/layout/top-nav/components/top-nav-separator/top-nav-separator.cjs.js +1 -1
  68. package/src/tedi/components/layout/top-nav/components/top-nav-separator/top-nav-separator.es.js +2 -2
  69. package/src/tedi/components/layout/top-nav/top-nav.cjs.js +1 -1
  70. package/src/tedi/components/layout/top-nav/top-nav.es.js +9 -8
  71. package/src/tedi/components/misc/affix/affix.cjs.js +1 -1
  72. package/src/tedi/components/misc/affix/affix.es.js +20 -8
  73. package/src/tedi/components/navigation/card-stepper/card-stepper-step.cjs.js +1 -0
  74. package/src/tedi/components/navigation/card-stepper/card-stepper-step.d.ts +86 -0
  75. package/src/tedi/components/navigation/card-stepper/card-stepper-step.es.js +5 -0
  76. package/src/tedi/components/navigation/card-stepper/card-stepper.cjs.js +1 -0
  77. package/src/tedi/components/navigation/card-stepper/card-stepper.d.ts +130 -0
  78. package/src/tedi/components/navigation/card-stepper/card-stepper.es.js +200 -0
  79. package/src/tedi/components/navigation/card-stepper/card-stepper.module.scss.cjs.js +1 -0
  80. package/src/tedi/components/navigation/card-stepper/card-stepper.module.scss.es.js +26 -0
  81. package/src/tedi/components/navigation/card-stepper/index.d.ts +2 -0
  82. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-collapsible/table-of-contents-collapsible.cjs.js +1 -1
  83. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-collapsible/table-of-contents-collapsible.d.ts +9 -1
  84. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-collapsible/table-of-contents-collapsible.es.js +82 -65
  85. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-item/table-of-contents-item.d.ts +6 -0
  86. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-row/table-of-contents-row.cjs.js +1 -1
  87. package/src/tedi/components/navigation/table-of-contents/components/table-of-contents-row/table-of-contents-row.es.js +23 -28
  88. package/src/tedi/components/navigation/table-of-contents/table-of-contents.cjs.js +1 -1
  89. package/src/tedi/components/navigation/table-of-contents/table-of-contents.d.ts +32 -21
  90. package/src/tedi/components/navigation/table-of-contents/table-of-contents.es.js +58 -55
  91. package/src/tedi/components/navigation/table-of-contents/table-of-contents.module.scss.cjs.js +1 -1
  92. package/src/tedi/components/navigation/table-of-contents/table-of-contents.module.scss.es.js +4 -1
  93. package/src/tedi/components/navigation/vertical-stepper/index.d.ts +3 -0
  94. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-context.cjs.js +1 -0
  95. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-context.d.ts +10 -0
  96. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-context.es.js +8 -0
  97. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-item.cjs.js +1 -0
  98. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-item.d.ts +74 -0
  99. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-item.es.js +109 -0
  100. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-sub-item.cjs.js +1 -0
  101. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-sub-item.d.ts +47 -0
  102. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper-sub-item.es.js +65 -0
  103. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.cjs.js +1 -0
  104. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.d.ts +28 -0
  105. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.es.js +32 -0
  106. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.module.scss.cjs.js +1 -0
  107. package/src/tedi/components/navigation/vertical-stepper/vertical-stepper.module.scss.es.js +34 -0
  108. package/src/tedi/components/overlays/dropdown/dropdown.cjs.js +1 -1
  109. package/src/tedi/components/overlays/dropdown/dropdown.d.ts +8 -0
  110. package/src/tedi/components/overlays/dropdown/dropdown.es.js +82 -74
  111. package/src/tedi/components/overlays/dropdown/dropdown.module.scss.cjs.js +1 -1
  112. package/src/tedi/components/overlays/dropdown/dropdown.module.scss.es.js +1 -0
  113. package/src/tedi/components/overlays/overlay/overlay-trigger.cjs.js +1 -1
  114. package/src/tedi/components/overlays/overlay/overlay-trigger.es.js +22 -21
  115. package/src/tedi/components/overlays/sheet/sheet.cjs.js +1 -0
  116. package/src/tedi/components/overlays/sheet/sheet.d.ts +65 -0
  117. package/src/tedi/components/overlays/sheet/sheet.es.js +41 -0
  118. package/src/tedi/components/overlays/sheet/sheet.module.scss.cjs.js +1 -0
  119. package/src/tedi/components/overlays/sheet/sheet.module.scss.es.js +8 -0
  120. package/src/tedi/helpers/hooks/use-safe-id.cjs.js +1 -0
  121. package/src/tedi/helpers/hooks/use-safe-id.d.ts +16 -0
  122. package/src/tedi/helpers/hooks/use-safe-id.es.js +5 -0
  123. package/src/tedi/helpers/index.d.ts +1 -0
  124. package/src/tedi/index.d.ts +2 -0
  125. package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
  126. package/src/tedi/providers/label-provider/labels-map.d.ts +56 -0
  127. package/src/tedi/providers/label-provider/labels-map.es.js +127 -71
  128. package/tedi.cjs.js +1 -1
  129. package/tedi.es.js +284 -272
@@ -1,121 +1,129 @@
1
- import { jsxs as U, jsx as f } from "react/jsx-runtime";
2
- import { useFloatingNodeId as $, useFloating as H, useInteractions as q, useClick as z, useRole as G, useDismiss as J, useListNavigation as K, FloatingPortal as Q, FloatingFocusManager as V } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
3
- import X from "../../../../../external/classnames/index.es.js";
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 x from "./dropdown.module.scss.es.js";
6
- import { DropdownContent as Y } from "./dropdown-content/dropdown-content.es.js";
7
- import { DropdownContext as Z } from "./dropdown-context.es.js";
8
- import { resolveDropdownWidth as ee } from "./dropdown-helpers.es.js";
9
- import { DropdownItem as te } from "./dropdown-item/dropdown-item.es.js";
10
- import { DropdownSeparator as oe } from "./dropdown-separator/dropdown-separator.es.js";
11
- import { DropdownTrigger as ne } from "./dropdown-trigger/dropdown-trigger.es.js";
12
- import { useBreakpointProps as re } from "../../../helpers/hooks/use-breakpoint-props.es.js";
13
- import { useLabels as ie } from "../../../providers/label-provider/use-labels.es.js";
14
- import { autoUpdate as se } from "../../../../../external/@floating-ui/dom/dist/floating-ui.dom.es.js";
15
- import { offset as ae, flip as le, shift as de } from "../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js";
16
- const ce = 4, l = (p) => {
17
- var I;
18
- const { getCurrentBreakpointProps: C } = re(p.defaultServerBreakpoint), {
19
- children: F,
20
- modal: g = !1,
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: N = "auto",
23
- variant: d = "default",
24
- open: c,
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
- } = C(p), { getLabel: k } = ie(), y = $(), v = e.useRef([]), [a, m] = e.useState(o ?? null), [w, B] = e.useState(null), [b, W] = e.useState(P), t = c ?? b;
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 || m(o ?? null);
33
+ t || f(o ?? null);
33
34
  }, [t, o]);
34
- const h = e.useCallback(
35
+ const D = e.useCallback(
35
36
  (i) => {
36
- c === void 0 && W(i), s == null || s(i);
37
+ p === void 0 && W(i), s == null || s(i);
37
38
  },
38
- [c, s]
39
- ), E = H({
40
- nodeId: y,
39
+ [p, s]
40
+ ), E = q({
41
+ nodeId: k,
41
42
  open: t,
42
43
  placement: u,
43
- onOpenChange: h,
44
- middleware: [ae(ce), le(), de()],
45
- whileElementsMounted: se
46
- }), { context: n, refs: r, x: L, y: M, strategy: T } = E, D = q([
47
- z(n),
48
- G(n, { role: "menu" }),
49
- J(n),
50
- K(n, {
51
- listRef: v,
52
- activeIndex: a,
53
- onNavigate: m,
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: h,
61
+ setOpen: D,
61
62
  refs: r,
62
- listItemsRef: v,
63
- activeIndex: a,
64
- setActiveIndex: m,
63
+ listItemsRef: x,
64
+ activeIndex: l,
65
+ setActiveIndex: f,
65
66
  placement: u,
66
- content: w,
67
+ content: g,
67
68
  setContent: B,
68
69
  divided: R,
69
- variant: d,
70
- ...D
71
- }, j = (I = r.reference.current) == null ? void 0 : I.getBoundingClientRect().width, A = e.useMemo(() => {
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 O = i.offsetParent;
75
- if (O)
76
- return O.getBoundingClientRect().width;
75
+ const C = i.offsetParent;
76
+ if (C)
77
+ return C.getBoundingClientRect().width;
77
78
  }, [r.reference.current]);
78
- return /* @__PURE__ */ U(Z.Provider, { value: _, children: [
79
- F,
80
- /* @__PURE__ */ f(Q, { children: t && /* @__PURE__ */ f(
81
- V,
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: g,
85
- visuallyHiddenDismiss: g ? k("close") : !1,
86
- children: /* @__PURE__ */ f(
85
+ modal: w,
86
+ visuallyHiddenDismiss: w ? b("close") : !1,
87
+ children: /* @__PURE__ */ d(
87
88
  "div",
88
89
  {
89
- ...D.getFloatingProps({
90
+ ...I.getFloatingProps({
90
91
  ref: r.setFloating,
91
- className: X(
92
- x["tedi-dropdown"],
93
- { [x[`tedi-dropdown--${d}`]]: d === "tree" },
92
+ className: Y(
93
+ v["tedi-dropdown"],
94
+ { [v[`tedi-dropdown--${m}`]]: m === "tree" },
94
95
  S
95
96
  ),
96
97
  style: {
97
- position: T,
98
- left: L ?? 0,
99
- top: M ?? 0,
100
- width: ee(N, j, A)
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": a !== null ? `dropdown-item-${a}` : void 0
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: w
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
- l.Trigger = ne;
116
- l.Content = Y;
117
- l.Item = te;
118
- l.Separator = oe;
123
+ c.Trigger = re;
124
+ c.Content = Z;
125
+ c.Item = oe;
126
+ c.Separator = ne;
119
127
  export {
120
- l as Dropdown
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,5 +1,6 @@
1
1
  const d = {
2
2
  "tedi-dropdown": "tedi-dropdown-0246d37c",
3
+ "tedi-dropdown__scroll": "tedi-dropdown__scroll-c7d1c849",
3
4
  "tedi-dropdown--tree": "tedi-dropdown--tree-c13f70ee",
4
5
  "tedi-dropdown__item": "tedi-dropdown__item-fa7ee478"
5
6
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react/jsx-runtime"),m=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),p=require("../../../../../external/classnames/index.cjs.js"),t=require("react"),q=require("../../../helpers/get-element-ref.cjs.js"),x=require("../../base/icon/icon.cjs.js"),_=require("./overlay.cjs.js"),r=require("./overlay.module.scss.cjs.js"),R=require("../../../providers/label-provider/use-labels.cjs.js"),E=l=>{const{children:e,className:s}=l,{getLabel:c}=R.useLabels(),{getReferenceProps:i,reference:a,openWith:d,open:u,role:g,ariaHidden:f,contentId:v}=t.useContext(_.OverlayContext),y=t.isValidElement(e)?q.getElementRef(e):void 0,o=m.useMergeRefs([a,y]),n=g==="tooltip"&&!f?{"aria-describedby":u?v:void 0}:{};return t.isValidElement(e)?t.cloneElement(e,i({tabIndex:0,...n,label:e.type===x.Icon?c("tooltip.icon-trigger"):void 0,...e.props,ref:o})):b.jsx("div",{...i({ref:o,tabIndex:0,className:p.default(r.default["tedi-overlay__trigger"],r.default["tedi-overlay__trigger--text"],{[r.default["tedi-overlay__trigger--click"]]:d==="click"},s),...n}),children:e})};exports.OverlayTrigger=E;
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 b from "../../../../../external/classnames/index.es.js";
4
- import { useContext as _, isValidElement as s, cloneElement as u } from "react";
5
- import { getElementRef as I } from "../../../helpers/get-element-ref.es.js";
6
- import { Icon as R } from "../../base/icon/icon.es.js";
7
- import { OverlayContext as h } from "./overlay.es.js";
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 E } from "../../../providers/label-provider/use-labels.es.js";
10
- const T = (n) => {
11
- const { children: e, className: l } = n, { getLabel: m } = E(), { getReferenceProps: t, reference: c, openWith: a, open: p, role: f, ariaHidden: d, contentId: g } = _(h), v = s(e) ? I(e) : void 0, o = y([c, v]), i = f === "tooltip" && !d ? {
12
- "aria-describedby": p ? g : void 0
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 s(e) ? u(
14
+ return l(e) ? I(
15
15
  e,
16
- t({
16
+ o({
17
17
  tabIndex: 0,
18
- ...i,
19
- label: e.type === R ? m("tooltip.icon-trigger") : void 0,
18
+ ...s,
19
+ label: e.type === h ? m("tooltip.icon-trigger") : void 0,
20
20
  ...e.props,
21
- ref: o
21
+ ref: n
22
22
  })
23
23
  ) : /* @__PURE__ */ x(
24
24
  "div",
25
25
  {
26
- ...t({
27
- ref: o,
26
+ ...o({
27
+ ref: n,
28
28
  tabIndex: 0,
29
- className: b(
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"]]: a === "click"
34
+ [r["tedi-overlay__trigger--click"]]: d === "click"
34
35
  },
35
- l
36
+ a
36
37
  ),
37
- ...i
38
+ ...s
38
39
  }),
39
40
  children: e
40
41
  }
41
42
  );
42
43
  };
43
44
  export {
44
- T as OverlayTrigger
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,8 @@
1
+ const e = {
2
+ "tedi-sheet": "tedi-sheet-3174d4b8",
3
+ "tedi-sheet__header": "tedi-sheet__header-39963c05",
4
+ "tedi-sheet__title": "tedi-sheet__title-d67212d8"
5
+ };
6
+ export {
7
+ e as default
8
+ };
@@ -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;
@@ -0,0 +1,5 @@
1
+ import { useId as o } from "react";
2
+ const t = (e = "tedi") => `${e}-${o()}`.replace(/[^a-zA-Z0-9_-]/g, "");
3
+ export {
4
+ t as useSafeId
5
+ };
@@ -1,4 +1,5 @@
1
1
  export * from './hooks/use-is-mounted';
2
+ export * from './hooks/use-safe-id';
2
3
  export * from './hooks/use-breakpoint';
3
4
  export * from './hooks/use-breakpoint-props';
4
5
  export * from './hooks/use-element-size';
@@ -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';