@tedi-design-system/react 17.1.0-rc.8 → 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 (111) hide show
  1. package/_virtual/index.es13.js +2 -2
  2. package/_virtual/index.es14.js +2 -2
  3. package/bundle-stats.html +1 -1
  4. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.cjs.js +1 -1
  5. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.development.es.js +1 -1
  6. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  7. package/external/hoist-non-react-statics/external/react-is/cjs/react-is.production.min.es.js +1 -1
  8. package/external/hoist-non-react-statics/external/react-is/index.cjs.js +1 -1
  9. package/external/hoist-non-react-statics/external/react-is/index.es.js +1 -1
  10. package/external/prop-types/external/react-is/cjs/react-is.development.cjs.js +1 -1
  11. package/external/prop-types/external/react-is/cjs/react-is.development.es.js +1 -1
  12. package/external/prop-types/external/react-is/cjs/react-is.production.min.cjs.js +1 -1
  13. package/external/prop-types/external/react-is/cjs/react-is.production.min.es.js +1 -1
  14. package/external/prop-types/external/react-is/index.cjs.js +1 -1
  15. package/external/prop-types/external/react-is/index.es.js +1 -1
  16. package/external/react-is/index.cjs.js +1 -1
  17. package/external/react-is/index.es.js +1 -1
  18. package/external/toposort/index.cjs.js +1 -1
  19. package/external/toposort/index.es.js +1 -1
  20. package/index.css +1 -1
  21. package/package.json +2 -2
  22. package/src/tedi/components/buttons/button-content/button-content.d.ts +1 -1
  23. package/src/tedi/components/buttons/button-content/button-content.module.scss.cjs.js +1 -1
  24. package/src/tedi/components/buttons/button-content/button-content.module.scss.es.js +1 -1
  25. package/src/tedi/components/buttons/button-group/button-group.cjs.js +1 -1
  26. package/src/tedi/components/buttons/button-group/button-group.es.js +39 -37
  27. package/src/tedi/components/buttons/floating-button/floating-button.module.scss.cjs.js +1 -1
  28. package/src/tedi/components/buttons/floating-button/floating-button.module.scss.es.js +1 -1
  29. package/src/tedi/components/cards/card/card-stories-templates.d.ts +1 -1
  30. package/src/tedi/components/form/input-group/components/input/input.es.js +8 -8
  31. package/src/tedi/components/form/input-group/components/prefix/prefix.es.js +10 -10
  32. package/src/tedi/components/form/input-group/components/suffix/suffix.es.js +6 -6
  33. package/src/tedi/components/form/input-group/input-group.es.js +13 -13
  34. package/src/tedi/components/form/select/components/select-bulk-helpers.cjs.js +1 -0
  35. package/src/tedi/components/form/select/components/select-bulk-helpers.d.ts +55 -0
  36. package/src/tedi/components/form/select/components/select-bulk-helpers.es.js +34 -0
  37. package/src/tedi/components/form/select/components/select-group-bulk-context.cjs.js +1 -0
  38. package/src/tedi/components/form/select/components/select-group-bulk-context.d.ts +18 -0
  39. package/src/tedi/components/form/select/components/select-group-bulk-context.es.js +6 -0
  40. package/src/tedi/components/form/select/components/select-group-heading.cjs.js +1 -1
  41. package/src/tedi/components/form/select/components/select-group-heading.d.ts +4 -1
  42. package/src/tedi/components/form/select/components/select-group-heading.es.js +43 -8
  43. package/src/tedi/components/form/select/components/select-group.cjs.js +1 -1
  44. package/src/tedi/components/form/select/components/select-group.d.ts +4 -1
  45. package/src/tedi/components/form/select/components/select-group.es.js +18 -6
  46. package/src/tedi/components/form/select/components/select-menu-list.cjs.js +1 -1
  47. package/src/tedi/components/form/select/components/select-menu-list.d.ts +9 -1
  48. package/src/tedi/components/form/select/components/select-menu-list.es.js +22 -8
  49. package/src/tedi/components/form/select/components/select-multi-option.cjs.js +1 -1
  50. package/src/tedi/components/form/select/components/select-multi-option.es.js +40 -18
  51. package/src/tedi/components/form/select/components/select-multi-value.cjs.js +1 -1
  52. package/src/tedi/components/form/select/components/select-multi-value.d.ts +12 -1
  53. package/src/tedi/components/form/select/components/select-multi-value.es.js +42 -8
  54. package/src/tedi/components/form/select/components/select-single-option.cjs.js +1 -1
  55. package/src/tedi/components/form/select/components/select-single-option.es.js +5 -4
  56. package/src/tedi/components/form/select/components/select-single-value.cjs.js +1 -0
  57. package/src/tedi/components/form/select/components/select-single-value.d.ts +3 -0
  58. package/src/tedi/components/form/select/components/select-single-value.es.js +9 -0
  59. package/src/tedi/components/form/select/components/select-tags-context.cjs.js +1 -0
  60. package/src/tedi/components/form/select/components/select-tags-context.d.ts +11 -0
  61. package/src/tedi/components/form/select/components/select-tags-context.es.js +9 -0
  62. package/src/tedi/components/form/select/components/select-value-container.cjs.js +1 -1
  63. package/src/tedi/components/form/select/components/select-value-container.d.ts +12 -2
  64. package/src/tedi/components/form/select/components/select-value-container.es.js +76 -13
  65. package/src/tedi/components/form/select/select.cjs.js +1 -1
  66. package/src/tedi/components/form/select/select.d.ts +258 -0
  67. package/src/tedi/components/form/select/select.es.js +265 -175
  68. package/src/tedi/components/form/select/select.module.scss.cjs.js +1 -1
  69. package/src/tedi/components/form/select/select.module.scss.es.js +14 -5
  70. package/src/tedi/components/layout/header/components/header-language/header-language.d.ts +45 -0
  71. package/src/tedi/components/layout/header/components/header-login/header-login.d.ts +22 -0
  72. package/src/tedi/components/layout/header/components/header-logout/header-logout.d.ts +22 -0
  73. package/src/tedi/components/layout/header/components/header-mobile-button/header-mobile-button.d.ts +21 -0
  74. package/src/tedi/components/layout/header/components/header-profile/header-profile.d.ts +43 -0
  75. package/src/tedi/components/layout/header/components/header-role/header-role-representatives.d.ts +79 -0
  76. package/src/tedi/components/layout/header/components/header-role/header-role.d.ts +74 -0
  77. package/src/tedi/components/layout/header/components/header-search/header-search.d.ts +28 -0
  78. package/src/tedi/components/layout/header/header.d.ts +115 -0
  79. package/src/tedi/components/layout/header/index.d.ts +7 -0
  80. package/src/tedi/components/layout/hide-at/hide-at.d.ts +10 -0
  81. package/src/tedi/components/layout/show-at/show-at.d.ts +10 -0
  82. package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.module.scss.cjs.js +1 -1
  83. package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.module.scss.es.js +1 -0
  84. package/src/tedi/components/overlays/overlay/overlay.cjs.js +1 -1
  85. package/src/tedi/components/overlays/overlay/overlay.d.ts +7 -0
  86. package/src/tedi/components/overlays/overlay/overlay.es.js +41 -40
  87. package/src/tedi/components/overlays/popover/index.d.ts +1 -0
  88. package/src/tedi/components/overlays/popover/popover-content.cjs.js +1 -1
  89. package/src/tedi/components/overlays/popover/popover-content.d.ts +5 -2
  90. package/src/tedi/components/overlays/popover/popover-content.es.js +36 -27
  91. package/src/tedi/components/overlays/popover/popover-context.cjs.js +1 -0
  92. package/src/tedi/components/overlays/popover/popover-context.d.ts +9 -0
  93. package/src/tedi/components/overlays/popover/popover-context.es.js +7 -0
  94. package/src/tedi/components/overlays/popover/popover.cjs.js +1 -1
  95. package/src/tedi/components/overlays/popover/popover.d.ts +12 -2
  96. package/src/tedi/components/overlays/popover/popover.es.js +18 -16
  97. package/src/tedi/components/overlays/popover/popover.module.scss.cjs.js +1 -1
  98. package/src/tedi/components/overlays/popover/popover.module.scss.es.js +2 -0
  99. package/src/tedi/components/tags/tag/tag.cjs.js +1 -1
  100. package/src/tedi/components/tags/tag/tag.d.ts +8 -0
  101. package/src/tedi/components/tags/tag/tag.es.js +14 -13
  102. package/src/tedi/helpers/hooks/use-breakpoint.cjs.js +1 -1
  103. package/src/tedi/helpers/hooks/use-breakpoint.es.js +7 -7
  104. package/src/tedi/providers/label-provider/label-provider.cjs.js +1 -1
  105. package/src/tedi/providers/label-provider/label-provider.d.ts +2 -0
  106. package/src/tedi/providers/label-provider/label-provider.es.js +57 -44
  107. package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
  108. package/src/tedi/providers/label-provider/labels-map.d.ts +84 -0
  109. package/src/tedi/providers/label-provider/labels-map.es.js +118 -34
  110. package/tedi.cjs.js +1 -1
  111. package/tedi.es.js +60 -58
@@ -0,0 +1,21 @@
1
+ import { default as React } from 'react';
2
+ import { IconWithoutBackgroundProps } from '../../../../base/icon/icon';
3
+ interface HeaderMobileButtonProps {
4
+ /** Click handler for the button. */
5
+ onClick?: () => void;
6
+ /** If provided, the button renders as a link navigating to this URL. */
7
+ href?: string;
8
+ /**
9
+ * Icon displayed inside the button.
10
+ * Can be a material icon name (e.g. 'menu') or a full IconWithoutBackgroundProps object for more control.
11
+ */
12
+ icon: string | IconWithoutBackgroundProps;
13
+ /** Label text displayed below the icon. */
14
+ label?: string;
15
+ /** Whether the button is in a selected state. */
16
+ selected?: boolean;
17
+ /** Whether the button is disabled. */
18
+ disabled?: boolean;
19
+ }
20
+ declare const HeaderMobileButton: React.ForwardRefExoticComponent<HeaderMobileButtonProps & React.RefAttributes<HTMLButtonElement>>;
21
+ export default HeaderMobileButton;
@@ -0,0 +1,43 @@
1
+ import { Breakpoint, BreakpointSupport } from '../../../../../helpers';
2
+ interface HeaderProfileContextValue {
3
+ activeRoleId: string | null;
4
+ setActiveRoleId: (id: string | null) => void;
5
+ }
6
+ export declare const useHeaderProfile: () => HeaderProfileContextValue | null;
7
+ interface HeaderProfileBreakpointProps {
8
+ /**
9
+ * Defines the breakpoint from which the profile menu is displayed as a popover.
10
+ * Below this breakpoint, it is rendered as a modal.
11
+ *
12
+ * @default lg
13
+ */
14
+ showPopover?: Breakpoint;
15
+ /** Custom label text for the profile button. Falls back to the `header.profile` translation key. */
16
+ label?: string;
17
+ }
18
+ export interface HeaderProfileProps extends BreakpointSupport<HeaderProfileBreakpointProps> {
19
+ /** Content rendered inside the profile popover or modal (e.g. navigation links, logout button). */
20
+ children: React.ReactNode;
21
+ /**
22
+ * Whether to display a text label next to the profile icon on non-mobile viewports.
23
+ * @default false
24
+ */
25
+ showLabel?: boolean;
26
+ /**
27
+ * Whether the profile button is disabled. Prevents opening the popover or modal.
28
+ * @default false
29
+ */
30
+ disabled?: boolean;
31
+ /**
32
+ * Removes default item styles from the mobile modal content.
33
+ * When `true`, children are rendered without padding, borders, or background applied by the component.
34
+ * Use when the content requires custom item styling.
35
+ * @default false
36
+ */
37
+ noStyle?: boolean;
38
+ }
39
+ export declare const HeaderProfile: {
40
+ (props: HeaderProfileProps): import("react/jsx-runtime").JSX.Element;
41
+ displayName: string;
42
+ };
43
+ export default HeaderProfile;
@@ -0,0 +1,79 @@
1
+ import { default as React } from 'react';
2
+ import { IconProps } from '../../../../base/icon/icon';
3
+ export interface Representative {
4
+ /** Unique identifier for the representative. */
5
+ id: string;
6
+ /** Display name shown in the header and selection list. */
7
+ name: string;
8
+ /** Additional context shown below the name (e.g. role, organization, personal code). */
9
+ description?: string;
10
+ /**
11
+ * Icon displayed next to the representative in the selection list. Accepts either a
12
+ * Material Icon name as a string (`'person'`) for the common case, or a full
13
+ * `IconProps` object (`{ name: 'person', size: 18 }`) when explicit props are needed.
14
+ */
15
+ icon?: string | IconProps;
16
+ }
17
+ interface HeaderRoleRepresentativesProps {
18
+ /** Unique id for the collapsible panel, used for aria-controls on the toggle. */
19
+ id?: string;
20
+ /** Id of the toggle button, used for aria-labelledby on the panel. */
21
+ toggleId?: string;
22
+ /** List of representatives to display in the selection list. */
23
+ representatives: Representative[];
24
+ /** Currently selected representative. */
25
+ representative?: Representative;
26
+ /** Current value of the search input. */
27
+ inputValue: string;
28
+ /** Callback to update the search input value. */
29
+ setInputValue: (value: string) => void;
30
+ /** Callback to update the selected representative. */
31
+ setRepresentative: (rep: Representative) => void;
32
+ /** Callback to control the open/closed state of the role selection. */
33
+ setIsRoleSelectionOpen: (open: boolean) => void;
34
+ /** Callback fired when the role selection is toggled. Handles both state update and external notification. */
35
+ onRoleSelectionToggle?: () => void;
36
+ /** Whether the role selection panel is currently open. */
37
+ isRoleSelectionOpen: boolean;
38
+ /** Whether the representatives belong to an organization context. Affects the search input label. */
39
+ isOrganization?: boolean;
40
+ /**
41
+ * Label for the search input when selecting a representative.
42
+ * Falls back to i18n labels when not provided.
43
+ */
44
+ searchLabel?: string;
45
+ /**
46
+ * Label for the search input when selecting an organization representative.
47
+ * Overrides both the default and `searchLabel` when `isOrganization` is true.
48
+ */
49
+ organizationSearchLabel?: string;
50
+ /** Optional id for the search input. Falls back to a generated unique id. */
51
+ searchId?: string;
52
+ /** Whether to keep the role selection open after selecting a representative. */
53
+ keepOpenOnSelect?: boolean;
54
+ /**
55
+ * Whether to display the search input above the representative list.
56
+ * @default false
57
+ */
58
+ showSearch?: boolean;
59
+ /**
60
+ * Whether the search input shows a clear button.
61
+ * @default false
62
+ */
63
+ searchClearable?: boolean;
64
+ /**
65
+ * Whether to clear the search input when a representative is selected.
66
+ * @default true
67
+ */
68
+ clearSearchOnSelect?: boolean;
69
+ /**
70
+ * Custom content rendered when the filtered representative list is empty.
71
+ * Falls back to the default "no results" label when not provided.
72
+ */
73
+ noResultsContent?: React.ReactNode;
74
+ }
75
+ declare const HeaderRoleRepresentatives: {
76
+ (props: HeaderRoleRepresentativesProps): import("react/jsx-runtime").JSX.Element;
77
+ displayName: string;
78
+ };
79
+ export default HeaderRoleRepresentatives;
@@ -0,0 +1,74 @@
1
+ import { default as React } from 'react';
2
+ import { Representative } from './header-role-representatives';
3
+ export interface HeaderRoleProps {
4
+ /**
5
+ * Descriptive label rendered above the representative name (e.g. plain text, Tag, or any ReactNode).
6
+ */
7
+ label?: React.ReactNode;
8
+ /**
9
+ * Whether to display the selected representative's description text in the header area.
10
+ * Does not affect the description shown in the selection list items.
11
+ * @default true
12
+ */
13
+ showDescription?: boolean;
14
+ /** List of selectable representatives. */
15
+ representatives: Representative[];
16
+ /** Whether the role represents an organization. */
17
+ isOrganization?: boolean;
18
+ /** Custom labels for the accordion toggle button. */
19
+ accordionLabels?: {
20
+ open?: string;
21
+ close?: string;
22
+ };
23
+ /**
24
+ * Label for the search input when selecting a representative.
25
+ * Falls back to i18n labels when not provided.
26
+ */
27
+ searchLabel?: string;
28
+ /**
29
+ * Label for the search input when selecting an organization representative.
30
+ * Overrides both the default and `searchLabel` when `isOrganization` is true.
31
+ */
32
+ organizationSearchLabel?: string;
33
+ /** Optional id for the search input. Falls back to a generated unique id. */
34
+ searchId?: string;
35
+ /** Callback fired when the role selection accordion or popover is toggled. */
36
+ onRoleSelectionToggle?: (isOpen: boolean) => void;
37
+ /** Callback fired when a representative is selected. */
38
+ onRepresentativeChange?: (representative: Representative) => void;
39
+ /**
40
+ * Whether to display the search input above the representative list.
41
+ * @default false
42
+ */
43
+ showSearch?: boolean;
44
+ /**
45
+ * Whether the search input shows a clear button.
46
+ * @default false
47
+ */
48
+ searchClearable?: boolean;
49
+ /**
50
+ * Whether to clear the search input when a representative is selected.
51
+ * @default true
52
+ */
53
+ clearSearchOnSelect?: boolean;
54
+ /**
55
+ * Custom content rendered inside the role selection popover (desktop) or accordion (tablet and mobile).
56
+ * When provided, replaces the default representative list entirely.
57
+ */
58
+ children?: React.ReactNode;
59
+ /**
60
+ * Whether to show the role selection toggle and dropdown.
61
+ * When omitted, defaults to showing the selection when there are multiple representatives.
62
+ */
63
+ showRoleSwitch?: boolean;
64
+ /**
65
+ * Custom content rendered when the filtered representative list is empty.
66
+ * Falls back to the default "no results" label when not provided.
67
+ */
68
+ noResultsContent?: React.ReactNode;
69
+ }
70
+ export declare const HeaderRole: {
71
+ (props: HeaderRoleProps): import("react/jsx-runtime").JSX.Element;
72
+ displayName: string;
73
+ };
74
+ export default HeaderRole;
@@ -0,0 +1,28 @@
1
+ type MobileSearchVariant = 'modal' | 'inline';
2
+ export interface HeaderSearchProps {
3
+ /** Search input or form content rendered inside the search area. */
4
+ children: React.ReactNode;
5
+ /**
6
+ * How the search is presented on mobile viewports.
7
+ * `'modal'` opens a full-screen overlay with a close button, `'inline'` renders the search directly in the header bottom area.
8
+ * @default modal
9
+ */
10
+ mobileVariant?: MobileSearchVariant;
11
+ /** Custom label overrides for the search button and modal title. */
12
+ mobileLabels?: {
13
+ /** Label for the mobile search toggle button. Falls back to the `header.search` translation key. */
14
+ button?: string;
15
+ /** Title displayed at the top of the mobile search modal. Falls back to the `header.search` translation key. */
16
+ modalTitle?: string;
17
+ };
18
+ /**
19
+ * Whether the mobile search button is disabled. Prevents opening the search modal.
20
+ * @default false
21
+ */
22
+ disabled?: boolean;
23
+ }
24
+ export declare const HeaderSearch: {
25
+ (props: HeaderSearchProps): import("react/jsx-runtime").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ export default HeaderSearch;
@@ -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
+ };