@tedi-design-system/react 17.1.0-rc.9 → 17.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/bundle-stats.html +1 -1
  2. package/index.css +1 -1
  3. package/package.json +2 -2
  4. package/src/tedi/components/buttons/button-content/button-content.d.ts +1 -1
  5. package/src/tedi/components/buttons/button-content/button-content.module.scss.cjs.js +1 -1
  6. package/src/tedi/components/buttons/button-content/button-content.module.scss.es.js +1 -1
  7. package/src/tedi/components/buttons/button-group/button-group.cjs.js +1 -1
  8. package/src/tedi/components/buttons/button-group/button-group.es.js +39 -37
  9. package/src/tedi/components/buttons/floating-button/floating-button.module.scss.cjs.js +1 -1
  10. package/src/tedi/components/buttons/floating-button/floating-button.module.scss.es.js +1 -1
  11. package/src/tedi/components/cards/card/card-stories-templates.d.ts +1 -1
  12. package/src/tedi/components/layout/header/components/header-language/header-language.d.ts +45 -0
  13. package/src/tedi/components/layout/header/components/header-login/header-login.d.ts +22 -0
  14. package/src/tedi/components/layout/header/components/header-logout/header-logout.d.ts +22 -0
  15. package/src/tedi/components/layout/header/components/header-mobile-button/header-mobile-button.d.ts +21 -0
  16. package/src/tedi/components/layout/header/components/header-profile/header-profile.d.ts +43 -0
  17. package/src/tedi/components/layout/header/components/header-role/header-role-representatives.d.ts +79 -0
  18. package/src/tedi/components/layout/header/components/header-role/header-role.d.ts +74 -0
  19. package/src/tedi/components/layout/header/components/header-search/header-search.d.ts +28 -0
  20. package/src/tedi/components/layout/header/header.d.ts +115 -0
  21. package/src/tedi/components/layout/header/index.d.ts +7 -0
  22. package/src/tedi/components/layout/hide-at/hide-at.d.ts +10 -0
  23. package/src/tedi/components/layout/show-at/show-at.d.ts +10 -0
  24. package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.module.scss.cjs.js +1 -1
  25. package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.module.scss.es.js +1 -0
  26. package/src/tedi/components/overlays/overlay/overlay.cjs.js +1 -1
  27. package/src/tedi/components/overlays/overlay/overlay.d.ts +7 -0
  28. package/src/tedi/components/overlays/overlay/overlay.es.js +41 -40
  29. package/src/tedi/components/overlays/popover/index.d.ts +1 -0
  30. package/src/tedi/components/overlays/popover/popover-content.cjs.js +1 -1
  31. package/src/tedi/components/overlays/popover/popover-content.d.ts +5 -2
  32. package/src/tedi/components/overlays/popover/popover-content.es.js +36 -27
  33. package/src/tedi/components/overlays/popover/popover-context.cjs.js +1 -0
  34. package/src/tedi/components/overlays/popover/popover-context.d.ts +9 -0
  35. package/src/tedi/components/overlays/popover/popover-context.es.js +7 -0
  36. package/src/tedi/components/overlays/popover/popover.cjs.js +1 -1
  37. package/src/tedi/components/overlays/popover/popover.d.ts +12 -2
  38. package/src/tedi/components/overlays/popover/popover.es.js +18 -16
  39. package/src/tedi/components/overlays/popover/popover.module.scss.cjs.js +1 -1
  40. package/src/tedi/components/overlays/popover/popover.module.scss.es.js +2 -0
  41. package/src/tedi/helpers/hooks/use-breakpoint.cjs.js +1 -1
  42. package/src/tedi/helpers/hooks/use-breakpoint.es.js +7 -7
  43. package/src/tedi/providers/label-provider/label-provider.cjs.js +1 -1
  44. package/src/tedi/providers/label-provider/label-provider.d.ts +2 -0
  45. package/src/tedi/providers/label-provider/label-provider.es.js +57 -44
  46. package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
  47. package/src/tedi/providers/label-provider/labels-map.d.ts +77 -0
  48. package/src/tedi/providers/label-provider/labels-map.es.js +112 -35
  49. package/tedi.cjs.js +1 -1
  50. package/tedi.es.js +60 -58
@@ -0,0 +1,115 @@
1
+ import { default as React } from 'react';
2
+ export interface HeaderProps {
3
+ /**
4
+ * Content rendered inside the header, typically Header.Logo, Header.Center, and Header.Actions subcomponents.
5
+ */
6
+ children: React.ReactNode;
7
+ /**
8
+ * Toggle element for the mobile side navigation menu.
9
+ * Typically a SideNav.Toggle component.
10
+ */
11
+ toggle?: React.ReactNode;
12
+ /**
13
+ * Content rendered below the main header bar on mobile viewports (below `md` breakpoint).
14
+ * Commonly used for a mobile-specific search bar or other compact navigation elements.
15
+ */
16
+ bottom?: React.ReactNode;
17
+ /** Additional CSS class name applied to the header wrapper. */
18
+ className?: string;
19
+ }
20
+ export declare const Header: {
21
+ (props: HeaderProps): import("react/jsx-runtime").JSX.Element;
22
+ displayName: string;
23
+ Logo: {
24
+ (props: HeaderLogoProps): import("react/jsx-runtime").JSX.Element | null;
25
+ displayName: string;
26
+ };
27
+ Center: {
28
+ (props: HeaderCenterProps): import("react/jsx-runtime").JSX.Element;
29
+ displayName: string;
30
+ };
31
+ Actions: {
32
+ (props: HeaderActionsProps): import("react/jsx-runtime").JSX.Element;
33
+ displayName: string;
34
+ };
35
+ Language: {
36
+ (props: import('./components/header-language/header-language').HeaderLanguageProps): import("react/jsx-runtime").JSX.Element;
37
+ displayName: string;
38
+ };
39
+ Login: {
40
+ (props: import('./components/header-login/header-login').HeaderLoginProps): import("react/jsx-runtime").JSX.Element;
41
+ displayName: string;
42
+ };
43
+ Logout: {
44
+ (props: import('./components/header-logout/header-logout').HeaderLogoutProps): import("react/jsx-runtime").JSX.Element;
45
+ displayName: string;
46
+ };
47
+ Profile: {
48
+ (props: import('./components/header-profile/header-profile').HeaderProfileProps): import("react/jsx-runtime").JSX.Element;
49
+ displayName: string;
50
+ };
51
+ Role: {
52
+ (props: import('./components/header-role/header-role').HeaderRoleProps): import("react/jsx-runtime").JSX.Element;
53
+ displayName: string;
54
+ };
55
+ Search: {
56
+ (props: import('./components/header-search/header-search').HeaderSearchProps): import("react/jsx-runtime").JSX.Element;
57
+ displayName: string;
58
+ };
59
+ };
60
+ export interface HeaderLogoProps {
61
+ /**
62
+ * The default logo to display (typically used in light theme).
63
+ */
64
+ logo: React.ReactNode;
65
+ /**
66
+ * Optional logo variant for dark theme.
67
+ * If provided, it will be used when the current theme is dark.
68
+ */
69
+ logoDark?: React.ReactNode;
70
+ /**
71
+ * Controls visibility of the logo.
72
+ * Useful for conditionally hiding the logo based on application state, feature flags,
73
+ * or custom media queries that fall between standard breakpoints (e.g. 420px).
74
+ * For responsive hiding at standard breakpoints, prefer wrapping Header.Logo with HideAt/ShowAt.
75
+ * @default true
76
+ */
77
+ showLogo?: boolean;
78
+ /**
79
+ * Optional link URL.
80
+ * If provided, the logo will be wrapped in an anchor element.
81
+ */
82
+ href?: string;
83
+ /** Additional CSS class name applied to the logo wrapper. */
84
+ className?: string;
85
+ }
86
+ export declare const HeaderLogo: {
87
+ (props: HeaderLogoProps): import("react/jsx-runtime").JSX.Element | null;
88
+ displayName: string;
89
+ };
90
+ export interface HeaderCenterProps {
91
+ /** Content rendered in the center area of the header, typically navigation links or a search bar. */
92
+ children: React.ReactNode;
93
+ /**
94
+ * Controls the horizontal alignment of center content.
95
+ * @default center
96
+ */
97
+ alignment?: 'flex-start' | 'center' | 'space-between';
98
+ /** Additional CSS class name applied to the center content area. */
99
+ className?: string;
100
+ }
101
+ export declare const HeaderCenter: {
102
+ (props: HeaderCenterProps): import("react/jsx-runtime").JSX.Element;
103
+ displayName: string;
104
+ };
105
+ export interface HeaderActionsProps {
106
+ /** Action elements rendered on the right side of the header (e.g. language selector, login, profile). */
107
+ children: React.ReactNode;
108
+ /** Additional CSS class name applied to the actions wrapper. */
109
+ className?: string;
110
+ }
111
+ export declare const HeaderActions: {
112
+ (props: HeaderActionsProps): import("react/jsx-runtime").JSX.Element;
113
+ displayName: string;
114
+ };
115
+ export default Header;
@@ -0,0 +1,7 @@
1
+ export * from './header';
2
+ export * from './components/header-language/header-language';
3
+ export * from './components/header-login/header-login';
4
+ export * from './components/header-logout/header-logout';
5
+ export * from './components/header-profile/header-profile';
6
+ export * from './components/header-role/header-role';
7
+ export * from './components/header-search/header-search';
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { Breakpoint } from '../../../helpers';
3
+ type HideAtProps = {
4
+ children: React.ReactNode;
5
+ } & Partial<Record<Breakpoint, boolean>>;
6
+ export declare const HideAt: {
7
+ ({ children, ...breakpoints }: HideAtProps): import("react/jsx-runtime").JSX.Element | null;
8
+ displayName: string;
9
+ };
10
+ export {};
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { Breakpoint } from '../../../helpers';
3
+ type ShowAtProps = {
4
+ children: React.ReactNode;
5
+ } & Partial<Record<Breakpoint, boolean>>;
6
+ export declare const ShowAt: {
7
+ ({ children, ...breakpoints }: ShowAtProps): import("react/jsx-runtime").JSX.Element | null;
8
+ displayName: string;
9
+ };
10
+ export {};
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-sidenav-toggle":"tedi-sidenav-toggle-5aa60f9e","tedi-sidenav-toggle--collapse":"tedi-sidenav-toggle--collapse-3b54974c"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-sidenav-toggle":"tedi-sidenav-toggle-5aa60f9e","tedi-sidenav-toggle__icon":"tedi-sidenav-toggle__icon-a52afb07","tedi-sidenav-toggle--collapse":"tedi-sidenav-toggle--collapse-3b54974c"};exports.default=e;
@@ -1,5 +1,6 @@
1
1
  const e = {
2
2
  "tedi-sidenav-toggle": "tedi-sidenav-toggle-5aa60f9e",
3
+ "tedi-sidenav-toggle__icon": "tedi-sidenav-toggle__icon-a52afb07",
3
4
  "tedi-sidenav-toggle--collapse": "tedi-sidenav-toggle--collapse-3b54974c"
4
5
  };
5
6
  export {
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const K=require("react/jsx-runtime"),t=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),n=require("react"),N=require("./overlay-content.cjs.js"),Q=require("./overlay-trigger.cjs.js"),j=require("../../../../../external/@floating-ui/dom/dist/floating-ui.dom.cjs.js"),i=require("../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js"),X=require("../../../helpers/hooks/use-is-touch-device.cjs.js"),Y=require("../../../helpers/hooks/use-is-mounted.cjs.js"),Z=3,S=n.createContext({open:!1,onOpenChange:()=>{},isMounted:!1,openWith:"hover",reference:()=>{},floating:()=>{},focusManager:{},arrowRef:{current:null},x:0,y:0,strategy:"absolute",getReferenceProps:()=>({}),getFloatingProps:()=>({}),arrow:{width:0,height:0,x:0,y:0,centerOffset:0},placement:"top",context:{},scrollLock:void 0,contentId:""}),u=E=>{const L=X.useIsTouchDevice(),{children:W,placement:A="top",openWith:s=L?"click":"hover",defaultOpen:G=!1,open:c,onToggle:r,role:d="tooltip",arrowDimensions:e,offset:H=Z+((e==null?void 0:e.height)??0),focusManager:f,dismissible:y,scrollLock:O,trackReferencePosition:V=!1}=E,{order:M=["reference","content"],initialFocus:m,modal:g,...x}=f??{},C=m!==void 0?m:g?0:void 0,[F,R]=n.useState(G),p=n.useRef(null),P=Y.useIsMounted(),h=n.useMemo(()=>r&&typeof c<"u"?c:F,[r,c,F]),v=n.useCallback(l=>{typeof c>"u"&&R(l),r==null||r(l)},[c,R,r]),{x:q,y:I,refs:a,strategy:b,context:o,middlewareData:k,placement:w}=t.useFloating({placement:A,open:h,onOpenChange:v,middleware:[i.offset(H),i.flip(),i.shift({padding:8}),i.arrow({element:p,padding:4})],whileElementsMounted:V?(l,B,J)=>j.autoUpdate(l,B,J,{animationFrame:!0}):j.autoUpdate}),{getReferenceProps:T,getFloatingProps:U}=t.useInteractions([t.useHover(o,{enabled:s==="hover",handleClose:t.safePolygon()}),t.useClick(o,{toggle:y}),t.useFocus(o,{enabled:s==="hover"}),t.useRole(o,{role:d}),t.useDismiss(o,{enabled:y,outsidePressEvent:s==="click"?"mousedown":"pointerdown"})]),_=n.useId(),z=n.useMemo(()=>({open:h,onOpenChange:v,isMounted:P,openWith:s,focusManager:f?{order:M,modal:g,initialFocus:C,...x}:void 0,reference:a.setReference,floating:a.setFloating,arrowRef:p,x:q,y:I,strategy:b,getReferenceProps:T,getFloatingProps:U,arrow:{width:e==null?void 0:e.width,height:e==null?void 0:e.height,...k.arrow},context:o,placement:w,scrollLock:O,role:d,contentId:_}),[h,v,P,s,f,a.setReference,a.setFloating,p,q,I,b,T,U,e==null?void 0:e.width,e==null?void 0:e.height,k.arrow,o,w,O,d,_,g,M,C,x]);return K.jsx(S.Provider,{value:z,children:W})};u.Trigger=Q.OverlayTrigger;u.Content=N.OverlayContent;exports.Overlay=u;exports.OverlayContext=S;exports.default=u;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const N=require("react/jsx-runtime"),t=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),n=require("react"),Q=require("./overlay-content.cjs.js"),X=require("./overlay-trigger.cjs.js"),j=require("../../../../../external/@floating-ui/dom/dist/floating-ui.dom.cjs.js"),i=require("../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js"),Y=require("../../../helpers/hooks/use-is-touch-device.cjs.js"),Z=require("../../../helpers/hooks/use-is-mounted.cjs.js"),$=3,S=n.createContext({open:!1,onOpenChange:()=>{},isMounted:!1,openWith:"hover",reference:()=>{},floating:()=>{},focusManager:{},arrowRef:{current:null},x:0,y:0,strategy:"absolute",getReferenceProps:()=>({}),getFloatingProps:()=>({}),arrow:{width:0,height:0,x:0,y:0,centerOffset:0},placement:"top",context:{},scrollLock:void 0,contentId:""}),u=E=>{const L=Y.useIsTouchDevice(),{children:W,placement:A="top",openWith:s=L?"click":"hover",defaultOpen:G=!1,open:a,onToggle:r,role:d="tooltip",arrowDimensions:e,offset:H=$+((e==null?void 0:e.height)??0),arrowPadding:V=4,focusManager:f,dismissible:y,scrollLock:O,trackReferencePosition:z=!1}=E,{order:M=["reference","content"],initialFocus:m,modal:g,...x}=f??{},C=m!==void 0?m:g?0:void 0,[F,P]=n.useState(G),p=n.useRef(null),R=Z.useIsMounted(),h=n.useMemo(()=>r&&typeof a<"u"?a:F,[r,a,F]),v=n.useCallback(l=>{typeof a>"u"&&P(l),r==null||r(l)},[a,P,r]),{x:q,y:I,refs:c,strategy:b,context:o,middlewareData:w,placement:k}=t.useFloating({placement:A,open:h,onOpenChange:v,middleware:[i.offset(H),i.flip(),i.shift({padding:8}),i.arrow({element:p,padding:V})],whileElementsMounted:z?(l,J,K)=>j.autoUpdate(l,J,K,{animationFrame:!0}):j.autoUpdate}),{getReferenceProps:T,getFloatingProps:U}=t.useInteractions([t.useHover(o,{enabled:s==="hover",handleClose:t.safePolygon()}),t.useClick(o,{toggle:y}),t.useFocus(o,{enabled:s==="hover"}),t.useRole(o,{role:d}),t.useDismiss(o,{enabled:y,outsidePressEvent:s==="click"?"mousedown":"pointerdown"})]),_=n.useId(),B=n.useMemo(()=>({open:h,onOpenChange:v,isMounted:R,openWith:s,focusManager:f?{order:M,modal:g,initialFocus:C,...x}:void 0,reference:c.setReference,floating:c.setFloating,arrowRef:p,x:q,y:I,strategy:b,getReferenceProps:T,getFloatingProps:U,arrow:{width:e==null?void 0:e.width,height:e==null?void 0:e.height,...w.arrow},context:o,placement:k,scrollLock:O,role:d,contentId:_}),[h,v,R,s,f,c.setReference,c.setFloating,p,q,I,b,T,U,e==null?void 0:e.width,e==null?void 0:e.height,w.arrow,o,k,O,d,_,g,M,C,x]);return N.jsx(S.Provider,{value:B,children:W})};u.Trigger=X.OverlayTrigger;u.Content=Q.OverlayContent;exports.Overlay=u;exports.OverlayContext=S;exports.default=u;
@@ -75,6 +75,13 @@ export interface OverlayProps {
75
75
  * @default false
76
76
  */
77
77
  trackReferencePosition?: boolean;
78
+ /**
79
+ * Minimum distance (in px) between the arrow and the edges of the content.
80
+ * Helps keep the arrow away from rounded corners, especially on `-start` and `-end` placements.
81
+ * Use a larger value for bigger arrows or arrows with borders.
82
+ * @default 4
83
+ */
84
+ arrowPadding?: number;
78
85
  }
79
86
  export interface OverlayContextType {
80
87
  open: boolean;
@@ -1,13 +1,13 @@
1
- import { jsx as B } from "react/jsx-runtime";
2
- import { useFloating as J, useInteractions as K, useHover as N, useClick as Q, useFocus as X, useRole as Y, useDismiss as Z, safePolygon as _ } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
3
- import { createContext as $, useState as D, useRef as ee, useMemo as T, useCallback as te, useId as oe } from "react";
4
- import { OverlayContent as ne } from "./overlay-content.es.js";
5
- import { OverlayTrigger as re } from "./overlay-trigger.es.js";
1
+ import { jsx as J } from "react/jsx-runtime";
2
+ import { useFloating as K, useInteractions as N, useHover as Q, useClick as X, useFocus as Y, useRole as Z, useDismiss as _, safePolygon as $ } from "../../../../../external/@floating-ui/react/dist/floating-ui.react.es.js";
3
+ import { createContext as D, useState as ee, useRef as te, useMemo as T, useCallback as oe, useId as ne } from "react";
4
+ import { OverlayContent as re } from "./overlay-content.es.js";
5
+ import { OverlayTrigger as se } from "./overlay-trigger.es.js";
6
6
  import { autoUpdate as E } from "../../../../../external/@floating-ui/dom/dist/floating-ui.dom.es.js";
7
- import { offset as se, flip as ae, shift as ce, arrow as le } from "../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js";
8
- import { useIsTouchDevice as ie } from "../../../helpers/hooks/use-is-touch-device.es.js";
9
- import { useIsMounted as fe } from "../../../helpers/hooks/use-is-mounted.es.js";
10
- const ue = 3, de = $({
7
+ import { offset as ae, flip as ce, shift as le, arrow as ie } from "../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js";
8
+ import { useIsTouchDevice as fe } from "../../../helpers/hooks/use-is-touch-device.es.js";
9
+ import { useIsMounted as ue } from "../../../helpers/hooks/use-is-mounted.es.js";
10
+ const de = 3, pe = D({
11
11
  open: !1,
12
12
  onOpenChange: () => {
13
13
  },
@@ -36,7 +36,7 @@ const ue = 3, de = $({
36
36
  scrollLock: void 0,
37
37
  contentId: ""
38
38
  }), L = (W) => {
39
- const j = ie(), {
39
+ const j = fe(), {
40
40
  children: A,
41
41
  placement: G = "top",
42
42
  openWith: n = j ? "click" : "hover",
@@ -45,47 +45,48 @@ const ue = 3, de = $({
45
45
  onToggle: o,
46
46
  role: c = "tooltip",
47
47
  arrowDimensions: e,
48
- offset: S = ue + ((e == null ? void 0 : e.height) ?? 0),
48
+ offset: S = de + ((e == null ? void 0 : e.height) ?? 0),
49
+ arrowPadding: U = 4,
49
50
  focusManager: l,
50
51
  dismissible: p,
51
52
  scrollLock: g,
52
- trackReferencePosition: U = !1
53
- } = W, { order: h = ["reference", "content"], initialFocus: m, modal: i, ...v } = l ?? {}, y = m !== void 0 ? m : i ? 0 : void 0, [O, x] = D(H), f = ee(null), F = fe(), u = T(() => o && typeof r < "u" ? r : O, [o, r, O]), d = te(
53
+ trackReferencePosition: V = !1
54
+ } = W, { order: h = ["reference", "content"], initialFocus: m, modal: i, ...v } = l ?? {}, y = m !== void 0 ? m : i ? 0 : void 0, [O, x] = ee(H), f = te(null), F = ue(), u = T(() => o && typeof r < "u" ? r : O, [o, r, O]), d = oe(
54
55
  (a) => {
55
56
  typeof r > "u" && x(a), o == null || o(a);
56
57
  },
57
58
  [r, x, o]
58
- ), { x: C, y: M, refs: s, strategy: P, context: t, middlewareData: R, placement: k } = J({
59
+ ), { x: P, y: C, refs: s, strategy: M, context: t, middlewareData: R, placement: w } = K({
59
60
  placement: G,
60
61
  open: u,
61
62
  onOpenChange: d,
62
63
  middleware: [
63
- se(S),
64
- ae(),
65
- ce({ padding: 8 }),
66
- le({
64
+ ae(S),
65
+ ce(),
66
+ le({ padding: 8 }),
67
+ ie({
67
68
  element: f,
68
- padding: 4
69
+ padding: U
69
70
  })
70
71
  ],
71
- whileElementsMounted: U ? (a, q, z) => E(a, q, z, { animationFrame: !0 }) : E
72
- }), { getReferenceProps: w, getFloatingProps: I } = K([
73
- N(t, {
72
+ whileElementsMounted: V ? (a, z, B) => E(a, z, B, { animationFrame: !0 }) : E
73
+ }), { getReferenceProps: k, getFloatingProps: I } = N([
74
+ Q(t, {
74
75
  enabled: n === "hover",
75
- handleClose: _()
76
+ handleClose: $()
76
77
  }),
77
- Q(t, {
78
+ X(t, {
78
79
  toggle: p
79
80
  }),
80
- X(t, {
81
+ Y(t, {
81
82
  enabled: n === "hover"
82
83
  }),
83
- Y(t, { role: c }),
84
- Z(t, {
84
+ Z(t, { role: c }),
85
+ _(t, {
85
86
  enabled: p,
86
87
  outsidePressEvent: n === "click" ? "mousedown" : "pointerdown"
87
88
  })
88
- ]), b = oe(), V = T(
89
+ ]), b = ne(), q = T(
89
90
  () => ({
90
91
  open: u,
91
92
  onOpenChange: d,
@@ -100,10 +101,10 @@ const ue = 3, de = $({
100
101
  reference: s.setReference,
101
102
  floating: s.setFloating,
102
103
  arrowRef: f,
103
- x: C,
104
- y: M,
105
- strategy: P,
106
- getReferenceProps: w,
104
+ x: P,
105
+ y: C,
106
+ strategy: M,
107
+ getReferenceProps: k,
107
108
  getFloatingProps: I,
108
109
  arrow: {
109
110
  width: e == null ? void 0 : e.width,
@@ -111,7 +112,7 @@ const ue = 3, de = $({
111
112
  ...R.arrow
112
113
  },
113
114
  context: t,
114
- placement: k,
115
+ placement: w,
115
116
  scrollLock: g,
116
117
  role: c,
117
118
  contentId: b
@@ -125,16 +126,16 @@ const ue = 3, de = $({
125
126
  s.setReference,
126
127
  s.setFloating,
127
128
  f,
129
+ P,
128
130
  C,
129
131
  M,
130
- P,
131
- w,
132
+ k,
132
133
  I,
133
134
  e == null ? void 0 : e.width,
134
135
  e == null ? void 0 : e.height,
135
136
  R.arrow,
136
137
  t,
137
- k,
138
+ w,
138
139
  g,
139
140
  c,
140
141
  b,
@@ -144,12 +145,12 @@ const ue = 3, de = $({
144
145
  v
145
146
  ]
146
147
  );
147
- return /* @__PURE__ */ B(de.Provider, { value: V, children: A });
148
+ return /* @__PURE__ */ J(pe.Provider, { value: q, children: A });
148
149
  };
149
- L.Trigger = re;
150
- L.Content = ne;
150
+ L.Trigger = se;
151
+ L.Content = re;
151
152
  export {
152
153
  L as Overlay,
153
- de as OverlayContext,
154
+ pe as OverlayContext,
154
155
  L as default
155
156
  };
@@ -1,3 +1,4 @@
1
1
  export * from './popover';
2
2
  export * from './popover-content';
3
+ export * from './popover-context';
3
4
  export * from './popover-trigger';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),s=require("../../../../../external/classnames/index.cjs.js"),i=require("react"),C=require("../../base/typography/text/text.cjs.js"),q=require("../../buttons/closing-button/closing-button.cjs.js"),y=require("../overlay/overlay.cjs.js"),j=require("../overlay/overlay-content.cjs.js"),o=require("./popover.module.scss.cjs.js"),_=f=>{const{children:r,width:l="small",className:x,title:e,titleProps:d={element:"h4"},close:a,closeProps:n={size:"default"}}=f,{onOpenChange:h}=i.useContext(y.OverlayContext),c=i.useId(),u=!!r,p=i.useId();return t.jsxs(j.OverlayContent,{classNames:{content:s.default(o.default["tedi-popover"],{[o.default[`tedi-popover--${l}`]]:l},x),arrow:o.default["tedi-popover__arrow"]},labelledBy:e?c:void 0,describedBy:u?p:void 0,children:[(e||a)&&t.jsxs("div",{className:s.default(o.default["tedi-popover__header"],{[o.default["tedi-popover__header--no-title"]]:!e}),children:[e&&t.jsx(C.Text,{...d,id:c,className:s.default("align-self-center",d.className),children:e}),a&&t.jsx(q.ClosingButton,{...n,onClick:m=>{var v;h(!1),(v=n.onClick)==null||v.call(n,m)}})]}),u?t.jsx("div",{id:p,children:r}):r]})};exports.PopoverContent=_;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),n=require("../../../../../external/classnames/index.cjs.js"),s=require("react"),y=require("../../base/typography/text/text.cjs.js"),_=require("../../buttons/closing-button/closing-button.cjs.js"),j=require("../overlay/overlay.cjs.js"),b=require("../overlay/overlay-content.cjs.js"),e=require("./popover.module.scss.cjs.js"),g=require("./popover-context.cjs.js"),x=C=>{const{children:i,width:d="small",className:h,title:t,titleProps:l={element:"h4"},close:a,closeProps:r={size:"default"}}=C,{onOpenChange:m}=s.useContext(j.OverlayContext),{withBorder:c}=s.useContext(g.PopoverContext),u=s.useId(),p=!!i,v=s.useId();return o.jsxs(b.OverlayContent,{classNames:{content:n.default(e.default["tedi-popover"],{[e.default[`tedi-popover--${d}`]]:d&&d!=="none",[e.default["tedi-popover--border"]]:c},h),arrow:n.default(e.default["tedi-popover__arrow"],{[e.default["tedi-popover__arrow--border"]]:c})},labelledBy:t?u:void 0,describedBy:p?v:void 0,children:[(t||a)&&o.jsxs("div",{className:n.default(e.default["tedi-popover__header"],{[e.default["tedi-popover__header--no-title"]]:!t}),children:[t&&o.jsx(y.Text,{...l,id:u,className:n.default("align-self-center",l.className),children:t}),a&&o.jsx(_.ClosingButton,{...r,onClick:q=>{var f;m(!1),(f=r.onClick)==null||f.call(r,q)}})]}),p?o.jsx("div",{id:v,children:i}):i]})};x.displayName="PopoverContent";exports.PopoverContent=x;
@@ -27,6 +27,9 @@ export interface PopoverContentProps extends Omit<OverlayContentProps, 'classNam
27
27
  * Popover width.
28
28
  * @default small
29
29
  */
30
- width?: 'small' | 'medium' | 'large';
30
+ width?: 'small' | 'medium' | 'large' | 'none';
31
31
  }
32
- export declare const PopoverContent: (props: PopoverContentProps) => import("react/jsx-runtime").JSX.Element;
32
+ export declare const PopoverContent: {
33
+ (props: PopoverContentProps): import("react/jsx-runtime").JSX.Element;
34
+ displayName: string;
35
+ };
@@ -1,49 +1,58 @@
1
- import { jsxs as v, jsx as i } from "react/jsx-runtime";
2
- import s from "../../../../../external/classnames/index.es.js";
3
- import { useContext as _, useId as f } from "react";
1
+ import { jsxs as f, jsx as s } from "react/jsx-runtime";
2
+ import r from "../../../../../external/classnames/index.es.js";
3
+ import { useContext as h, useId as C } from "react";
4
4
  import { Text as u } from "../../base/typography/text/text.es.js";
5
- import { ClosingButton as y } from "../../buttons/closing-button/closing-button.es.js";
5
+ import { ClosingButton as w } from "../../buttons/closing-button/closing-button.es.js";
6
6
  import { OverlayContext as B } from "../overlay/overlay.es.js";
7
- import { OverlayContent as g } from "../overlay/overlay-content.es.js";
8
- import o from "./popover.module.scss.es.js";
9
- const P = (h) => {
7
+ import { OverlayContent as b } from "../overlay/overlay-content.es.js";
8
+ import e from "./popover.module.scss.es.js";
9
+ import { PopoverContext as g } from "./popover-context.es.js";
10
+ const I = (_) => {
10
11
  const {
11
- children: r,
12
+ children: i,
12
13
  width: n = "small",
13
- className: C,
14
- title: e,
15
- titleProps: l = { element: "h4" },
16
- close: a,
14
+ className: x,
15
+ title: o,
16
+ titleProps: d = { element: "h4" },
17
+ close: l,
17
18
  closeProps: t = { size: "default" }
18
- } = h, { onOpenChange: x } = _(B), d = f(), m = !!r, c = f();
19
- return /* @__PURE__ */ v(
20
- g,
19
+ } = _, { onOpenChange: N } = h(B), { withBorder: p } = h(g), a = C(), m = !!i, c = C();
20
+ return /* @__PURE__ */ f(
21
+ b,
21
22
  {
22
23
  classNames: {
23
- content: s(o["tedi-popover"], { [o[`tedi-popover--${n}`]]: n }, C),
24
- arrow: o["tedi-popover__arrow"]
24
+ content: r(
25
+ e["tedi-popover"],
26
+ {
27
+ [e[`tedi-popover--${n}`]]: n && n !== "none",
28
+ [e["tedi-popover--border"]]: p
29
+ },
30
+ x
31
+ ),
32
+ arrow: r(e["tedi-popover__arrow"], { [e["tedi-popover__arrow--border"]]: p })
25
33
  },
26
- labelledBy: e ? d : void 0,
34
+ labelledBy: o ? a : void 0,
27
35
  describedBy: m ? c : void 0,
28
36
  children: [
29
- (e || a) && /* @__PURE__ */ v("div", { className: s(o["tedi-popover__header"], { [o["tedi-popover__header--no-title"]]: !e }), children: [
30
- e && /* @__PURE__ */ i(u, { ...l, id: d, className: s("align-self-center", l.className), children: e }),
31
- a && /* @__PURE__ */ i(
32
- y,
37
+ (o || l) && /* @__PURE__ */ f("div", { className: r(e["tedi-popover__header"], { [e["tedi-popover__header--no-title"]]: !o }), children: [
38
+ o && /* @__PURE__ */ s(u, { ...d, id: a, className: r("align-self-center", d.className), children: o }),
39
+ l && /* @__PURE__ */ s(
40
+ w,
33
41
  {
34
42
  ...t,
35
- onClick: (N) => {
36
- var p;
37
- x(!1), (p = t.onClick) == null || p.call(t, N);
43
+ onClick: (y) => {
44
+ var v;
45
+ N(!1), (v = t.onClick) == null || v.call(t, y);
38
46
  }
39
47
  }
40
48
  )
41
49
  ] }),
42
- m ? /* @__PURE__ */ i("div", { id: c, children: r }) : r
50
+ m ? /* @__PURE__ */ s("div", { id: c, children: i }) : i
43
51
  ]
44
52
  }
45
53
  );
46
54
  };
55
+ I.displayName = "PopoverContent";
47
56
  export {
48
- P as PopoverContent
57
+ I as PopoverContent
49
58
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=e.createContext({withBorder:!1});exports.PopoverContext=t;
@@ -0,0 +1,9 @@
1
+ export interface PopoverContextValue {
2
+ /**
3
+ * If true, the popover is rendered with an illustrative border on the arrow
4
+ * side. Consumed by `Popover.Content` to apply the `--border` modifier
5
+ * classes.
6
+ */
7
+ withBorder: boolean;
8
+ }
9
+ export declare const PopoverContext: import('react').Context<PopoverContextValue>;
@@ -0,0 +1,7 @@
1
+ import { createContext as o } from "react";
2
+ const e = o({
3
+ withBorder: !1
4
+ });
5
+ export {
6
+ e as PopoverContext
7
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("react/jsx-runtime"),i=require("../overlay/overlay.cjs.js"),s=require("./popover-content.cjs.js"),u=require("./popover-trigger.cjs.js"),c=34,l=17,e=o=>{const{openWith:r="click",...t}=o;return n.jsx(i.Overlay,{arrowDimensions:{width:c,height:l},openWith:r,role:"dialog",...t})};e.Trigger=u.PopoverTrigger;e.Content=s.PopoverContent;exports.Popover=e;exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),s=require("../overlay/overlay.cjs.js"),c=require("./popover-content.cjs.js"),u=require("./popover-context.cjs.js"),l=require("./popover-trigger.cjs.js"),v=34,p=17,a=12,d=4,e=t=>{const{openWith:n="click",withBorder:o=!1,...i}=t;return r.jsx(u.PopoverContext.Provider,{value:{withBorder:o},children:r.jsx(s.Overlay,{...i,arrowDimensions:{width:v,height:p},arrowPadding:o?a:d,openWith:n,role:"dialog"})})};e.Trigger=l.PopoverTrigger;e.Content=c.PopoverContent;exports.Popover=e;exports.default=e;
@@ -1,6 +1,6 @@
1
1
  import { OffsetOptions } from '@floating-ui/react';
2
2
  import { OverlayOpenWith, OverlayProps } from '../overlay/overlay';
3
- export interface PopoverProps extends Omit<OverlayProps, 'arrowDimensions' | 'openWith' | 'offset'> {
3
+ export interface PopoverProps extends Omit<OverlayProps, 'arrowDimensions' | 'openWith' | 'offset' | 'arrowPadding'> {
4
4
  /**
5
5
  * Adds correct event listeners that change the open state.
6
6
  * @default click
@@ -11,10 +11,20 @@ export interface PopoverProps extends Omit<OverlayProps, 'arrowDimensions' | 'op
11
11
  * @default GAP + ARROW_HEIGHT (3px + 17px)
12
12
  */
13
13
  offset?: OffsetOptions;
14
+ /**
15
+ * If true, popover renders with an illustrative border on the arrow side
16
+ * and extra arrow padding so the arrow's shoulders stay clear of the
17
+ * rounded corner on `-start` / `-end` placements.
18
+ * @default false
19
+ */
20
+ withBorder?: boolean;
14
21
  }
15
22
  export declare const Popover: {
16
23
  (props: PopoverProps): import("react/jsx-runtime").JSX.Element;
17
24
  Trigger: (props: import('../overlay/overlay-trigger').OverlayTriggerProps) => import("react/jsx-runtime").JSX.Element;
18
- Content: (props: import('./popover-content').PopoverContentProps) => import("react/jsx-runtime").JSX.Element;
25
+ Content: {
26
+ (props: import('./popover-content').PopoverContentProps): import("react/jsx-runtime").JSX.Element;
27
+ displayName: string;
28
+ };
19
29
  };
20
30
  export default Popover;
@@ -1,25 +1,27 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { Overlay as n } from "../overlay/overlay.es.js";
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { Overlay as s } from "../overlay/overlay.es.js";
3
3
  import { PopoverContent as m } from "./popover-content.es.js";
4
- import { PopoverTrigger as p } from "./popover-trigger.es.js";
5
- const s = 34, c = 17, o = (r) => {
6
- const { openWith: t = "click", ...e } = r;
7
- return /* @__PURE__ */ i(
8
- n,
4
+ import { PopoverContext as p } from "./popover-context.es.js";
5
+ import { PopoverTrigger as R } from "./popover-trigger.es.js";
6
+ const a = 34, c = 17, D = 12, d = 4, t = (e) => {
7
+ const { openWith: i = "click", withBorder: o = !1, ...n } = e;
8
+ return /* @__PURE__ */ r(p.Provider, { value: { withBorder: o }, children: /* @__PURE__ */ r(
9
+ s,
9
10
  {
11
+ ...n,
10
12
  arrowDimensions: {
11
- width: s,
13
+ width: a,
12
14
  height: c
13
15
  },
14
- openWith: t,
15
- role: "dialog",
16
- ...e
16
+ arrowPadding: o ? D : d,
17
+ openWith: i,
18
+ role: "dialog"
17
19
  }
18
- );
20
+ ) });
19
21
  };
20
- o.Trigger = p;
21
- o.Content = m;
22
+ t.Trigger = R;
23
+ t.Content = m;
22
24
  export {
23
- o as Popover,
24
- o as default
25
+ t as Popover,
26
+ t as default
25
27
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-popover":"tedi-popover-8ff01648","tedi-popover--small":"tedi-popover--small-32885e48","tedi-popover--medium":"tedi-popover--medium-5da84c95","tedi-popover--large":"tedi-popover--large-70d97488","tedi-popover__arrow":"tedi-popover__arrow-43ccaae6","tedi-popover__header":"tedi-popover__header-d68faca1","tedi-popover__header--no-title":"tedi-popover__header--no-title-abe089cb"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-popover":"tedi-popover-8ff01648","tedi-popover--small":"tedi-popover--small-32885e48","tedi-popover--medium":"tedi-popover--medium-5da84c95","tedi-popover--large":"tedi-popover--large-70d97488","tedi-popover__arrow":"tedi-popover__arrow-43ccaae6","tedi-popover__arrow--border":"tedi-popover__arrow--border-43347b38","tedi-popover--border":"tedi-popover--border-f542a513","tedi-popover__header":"tedi-popover__header-d68faca1","tedi-popover__header--no-title":"tedi-popover__header--no-title-abe089cb"};exports.default=e;
@@ -4,6 +4,8 @@ const e = {
4
4
  "tedi-popover--medium": "tedi-popover--medium-5da84c95",
5
5
  "tedi-popover--large": "tedi-popover--large-70d97488",
6
6
  "tedi-popover__arrow": "tedi-popover__arrow-43ccaae6",
7
+ "tedi-popover__arrow--border": "tedi-popover__arrow--border-43347b38",
8
+ "tedi-popover--border": "tedi-popover--border-f542a513",
7
9
  "tedi-popover__header": "tedi-popover__header-d68faca1",
8
10
  "tedi-popover__header--no-title": "tedi-popover__header--no-title-abe089cb"
9
11
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),d=require("../../../../external/lodash-es/debounce.cjs.js"),n=["xs","sm","md","lg","xl","xxl"],o=(e="xs")=>{const[t,r]=a.useState(e);return a.useLayoutEffect(()=>{const s=()=>window.matchMedia("(min-width: 1400px)").matches?"xxl":window.matchMedia("(min-width: 1200px)").matches?"xl":window.matchMedia("(min-width: 992px)").matches?"lg":window.matchMedia("(min-width: 768px)").matches?"md":window.matchMedia("(min-width: 576px)").matches?"sm":"xs",i=d.default(()=>{r(s())},20);return r(s()),window.addEventListener("resize",i),()=>{i.cancel(),window.removeEventListener("resize",i)}},[]),t},u=(e,t)=>e?n.indexOf(e)<n.indexOf(t):!1;exports.breakpoints=n;exports.default=o;exports.isBreakpointBelow=u;exports.useBreakpoint=o;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react"),d=require("../../../../external/lodash-es/debounce.cjs.js"),n=["xs","sm","md","lg","xl","xxl"],o=(e="xs")=>{const[t,r]=a.useState(e);return a.useLayoutEffect(()=>{const s=()=>window.matchMedia("(min-width: 87.5rem)").matches?"xxl":window.matchMedia("(min-width: 75rem)").matches?"xl":window.matchMedia("(min-width: 62rem)").matches?"lg":window.matchMedia("(min-width: 48rem)").matches?"md":window.matchMedia("(min-width: 36rem)").matches?"sm":"xs",i=d.default(()=>{r(s())},20);return r(s()),window.addEventListener("resize",i),()=>{i.cancel(),window.removeEventListener("resize",i)}},[]),t},m=(e,t)=>e?n.indexOf(e)<n.indexOf(t):!1;exports.breakpoints=n;exports.default=o;exports.isBreakpointBelow=m;exports.useBreakpoint=o;
@@ -1,19 +1,19 @@
1
- import { useState as a, useLayoutEffect as o } from "react";
2
- import d from "../../../../external/lodash-es/debounce.es.js";
1
+ import { useState as m, useLayoutEffect as a } from "react";
2
+ import o from "../../../../external/lodash-es/debounce.es.js";
3
3
  const s = ["xs", "sm", "md", "lg", "xl", "xxl"], c = (e = "xs") => {
4
- const [t, n] = a(e);
5
- return o(() => {
6
- const r = () => window.matchMedia("(min-width: 1400px)").matches ? "xxl" : window.matchMedia("(min-width: 1200px)").matches ? "xl" : window.matchMedia("(min-width: 992px)").matches ? "lg" : window.matchMedia("(min-width: 768px)").matches ? "md" : window.matchMedia("(min-width: 576px)").matches ? "sm" : "xs", i = d(() => {
4
+ const [t, n] = m(e);
5
+ return a(() => {
6
+ const r = () => window.matchMedia("(min-width: 87.5rem)").matches ? "xxl" : window.matchMedia("(min-width: 75rem)").matches ? "xl" : window.matchMedia("(min-width: 62rem)").matches ? "lg" : window.matchMedia("(min-width: 48rem)").matches ? "md" : window.matchMedia("(min-width: 36rem)").matches ? "sm" : "xs", i = o(() => {
7
7
  n(r());
8
8
  }, 20);
9
9
  return n(r()), window.addEventListener("resize", i), () => {
10
10
  i.cancel(), window.removeEventListener("resize", i);
11
11
  };
12
12
  }, []), t;
13
- }, x = (e, t) => e ? s.indexOf(e) < s.indexOf(t) : !1;
13
+ }, h = (e, t) => e ? s.indexOf(e) < s.indexOf(t) : !1;
14
14
  export {
15
15
  s as breakpoints,
16
16
  c as default,
17
- x as isBreakpointBelow,
17
+ h as isBreakpointBelow,
18
18
  c as useBreakpoint
19
19
  };