@redsift/design-system 11.5.0-muiv5 → 11.6.0-alpha.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 (285) hide show
  1. package/_internal/Alert2.js +197 -0
  2. package/_internal/Alert2.js.map +1 -0
  3. package/_internal/AppBar.js +248 -0
  4. package/_internal/AppBar.js.map +1 -0
  5. package/_internal/AppContainer.js +142 -0
  6. package/_internal/AppContainer.js.map +1 -0
  7. package/_internal/AppContent.js +92 -0
  8. package/_internal/AppContent.js.map +1 -0
  9. package/_internal/Badge2.js +142 -0
  10. package/_internal/Badge2.js.map +1 -0
  11. package/_internal/BreadcrumbItem.js +91 -0
  12. package/_internal/BreadcrumbItem.js.map +1 -0
  13. package/_internal/Breadcrumbs2.js +94 -0
  14. package/_internal/Breadcrumbs2.js.map +1 -0
  15. package/_internal/Button2.js +91 -0
  16. package/_internal/Button2.js.map +1 -0
  17. package/_internal/ButtonGroup.js +181 -0
  18. package/_internal/ButtonGroup.js.map +1 -0
  19. package/_internal/ButtonLink.js +84 -0
  20. package/_internal/ButtonLink.js.map +1 -0
  21. package/_internal/Card2.js +157 -0
  22. package/_internal/Card2.js.map +1 -0
  23. package/_internal/CardActions.js +44 -0
  24. package/_internal/CardActions.js.map +1 -0
  25. package/_internal/CardBody.js +42 -0
  26. package/_internal/CardBody.js.map +1 -0
  27. package/_internal/CardHeader.js +83 -0
  28. package/_internal/CardHeader.js.map +1 -0
  29. package/_internal/Checkbox2.js +244 -0
  30. package/_internal/Checkbox2.js.map +1 -0
  31. package/_internal/CheckboxGroup.js +188 -0
  32. package/_internal/CheckboxGroup.js.map +1 -0
  33. package/_internal/ConditionalWrapper.js +13 -0
  34. package/_internal/ConditionalWrapper.js.map +1 -0
  35. package/_internal/DetailedCard.js +6916 -0
  36. package/_internal/DetailedCard.js.map +1 -0
  37. package/_internal/DetailedCardCollapsibleSectionItems.js +64 -0
  38. package/_internal/DetailedCardCollapsibleSectionItems.js.map +1 -0
  39. package/_internal/DetailedCardHeader.js +67 -0
  40. package/_internal/DetailedCardHeader.js.map +1 -0
  41. package/_internal/DetailedCardSection.js +172 -0
  42. package/_internal/DetailedCardSection.js.map +1 -0
  43. package/_internal/DetailedCardSectionItem.js +94 -0
  44. package/_internal/DetailedCardSectionItem.js.map +1 -0
  45. package/_internal/Flexbox2.js +93 -0
  46. package/_internal/Flexbox2.js.map +1 -0
  47. package/_internal/Grid2.js +95 -0
  48. package/_internal/Grid2.js.map +1 -0
  49. package/_internal/GridItem.js +40 -0
  50. package/_internal/GridItem.js.map +1 -0
  51. package/_internal/Heading2.js +113 -0
  52. package/_internal/Heading2.js.map +1 -0
  53. package/_internal/Icon2.js +211 -0
  54. package/_internal/Icon2.js.map +1 -0
  55. package/_internal/IconButton.js +80 -0
  56. package/_internal/IconButton.js.map +1 -0
  57. package/_internal/IconButtonLink.js +75 -0
  58. package/_internal/IconButtonLink.js.map +1 -0
  59. package/_internal/Item2.js +399 -0
  60. package/_internal/Item2.js.map +1 -0
  61. package/_internal/Link2.js +67 -0
  62. package/_internal/Link2.js.map +1 -0
  63. package/_internal/LinkButton.js +66 -0
  64. package/_internal/LinkButton.js.map +1 -0
  65. package/_internal/Listbox2.js +274 -0
  66. package/_internal/Listbox2.js.map +1 -0
  67. package/_internal/Number2.js +111 -0
  68. package/_internal/Number2.js.map +1 -0
  69. package/_internal/NumberField.js +3974 -0
  70. package/_internal/NumberField.js.map +1 -0
  71. package/_internal/Pill2.js +405 -0
  72. package/_internal/Pill2.js.map +1 -0
  73. package/_internal/ProgressBar.js +69 -0
  74. package/_internal/ProgressBar.js.map +1 -0
  75. package/_internal/Radio2.js +237 -0
  76. package/_internal/Radio2.js.map +1 -0
  77. package/_internal/RadioGroup.js +176 -0
  78. package/_internal/RadioGroup.js.map +1 -0
  79. package/_internal/Shield2.js +225 -0
  80. package/_internal/Shield2.js.map +1 -0
  81. package/_internal/SideNavigationMenu.js +591 -0
  82. package/_internal/SideNavigationMenu.js.map +1 -0
  83. package/_internal/SideNavigationMenuItem.js +304 -0
  84. package/_internal/SideNavigationMenuItem.js.map +1 -0
  85. package/_internal/Skeleton2.js +42 -0
  86. package/_internal/Skeleton2.js.map +1 -0
  87. package/_internal/SkeletonCircle.js +58 -0
  88. package/_internal/SkeletonCircle.js.map +1 -0
  89. package/_internal/SkeletonText.js +77 -0
  90. package/_internal/SkeletonText.js.map +1 -0
  91. package/_internal/Spinner2.js +333 -0
  92. package/_internal/Spinner2.js.map +1 -0
  93. package/_internal/Switch2.js +320 -0
  94. package/_internal/Switch2.js.map +1 -0
  95. package/_internal/SwitchGroup.js +188 -0
  96. package/_internal/SwitchGroup.js.map +1 -0
  97. package/_internal/Text2.js +51 -0
  98. package/_internal/Text2.js.map +1 -0
  99. package/_internal/TextArea.js +444 -0
  100. package/_internal/TextArea.js.map +1 -0
  101. package/_internal/TextField.js +473 -0
  102. package/_internal/TextField.js.map +1 -0
  103. package/_internal/_rollupPluginBabelHelpers.js +133 -0
  104. package/_internal/_rollupPluginBabelHelpers.js.map +1 -0
  105. package/_internal/alert.js +2 -0
  106. package/_internal/alert.js.map +1 -0
  107. package/_internal/app-bar.js +2 -0
  108. package/_internal/app-bar.js.map +1 -0
  109. package/_internal/app-container.js +3 -0
  110. package/_internal/app-container.js.map +1 -0
  111. package/_internal/app-content.js +2 -0
  112. package/_internal/app-content.js.map +1 -0
  113. package/_internal/app-side-panel.js +3 -0
  114. package/_internal/app-side-panel.js.map +1 -0
  115. package/_internal/badge.js +2 -0
  116. package/_internal/badge.js.map +1 -0
  117. package/_internal/breadcrumb-item.js +2 -0
  118. package/_internal/breadcrumb-item.js.map +1 -0
  119. package/_internal/breadcrumbs.js +2 -0
  120. package/_internal/breadcrumbs.js.map +1 -0
  121. package/_internal/button-group.js +2 -0
  122. package/_internal/button-group.js.map +1 -0
  123. package/_internal/button-link.js +2 -0
  124. package/_internal/button-link.js.map +1 -0
  125. package/_internal/button.js +3 -0
  126. package/_internal/button.js.map +1 -0
  127. package/_internal/card-actions.js +2 -0
  128. package/_internal/card-actions.js.map +1 -0
  129. package/_internal/card-body.js +2 -0
  130. package/_internal/card-body.js.map +1 -0
  131. package/_internal/card-header.js +2 -0
  132. package/_internal/card-header.js.map +1 -0
  133. package/_internal/card.js +2 -0
  134. package/_internal/card.js.map +1 -0
  135. package/_internal/checkbox-group.js +2 -0
  136. package/_internal/checkbox-group.js.map +1 -0
  137. package/_internal/checkbox.js +2 -0
  138. package/_internal/checkbox.js.map +1 -0
  139. package/_internal/colors.js +98 -0
  140. package/_internal/colors.js.map +1 -0
  141. package/_internal/conditional-wrapper.js +2 -0
  142. package/_internal/conditional-wrapper.js.map +1 -0
  143. package/_internal/context.js +6 -0
  144. package/_internal/context.js.map +1 -0
  145. package/_internal/context2.js +300 -0
  146. package/_internal/context2.js.map +1 -0
  147. package/_internal/context3.js +6 -0
  148. package/_internal/context3.js.map +1 -0
  149. package/_internal/context4.js +6 -0
  150. package/_internal/context4.js.map +1 -0
  151. package/_internal/context5.js +6 -0
  152. package/_internal/context5.js.map +1 -0
  153. package/_internal/detailed-card-collapsible-section-items.js +2 -0
  154. package/_internal/detailed-card-collapsible-section-items.js.map +1 -0
  155. package/_internal/detailed-card-header.js +2 -0
  156. package/_internal/detailed-card-header.js.map +1 -0
  157. package/_internal/detailed-card-section-item.js +2 -0
  158. package/_internal/detailed-card-section-item.js.map +1 -0
  159. package/_internal/detailed-card-section.js +2 -0
  160. package/_internal/detailed-card-section.js.map +1 -0
  161. package/_internal/detailed-card.js +2 -0
  162. package/_internal/detailed-card.js.map +1 -0
  163. package/_internal/filterComponents.js +24 -0
  164. package/_internal/filterComponents.js.map +1 -0
  165. package/_internal/flexbox.js +2 -0
  166. package/_internal/flexbox.js.map +1 -0
  167. package/_internal/focus-within-group.js +3 -0
  168. package/_internal/focus-within-group.js.map +1 -0
  169. package/_internal/fonts.js +10 -0
  170. package/_internal/fonts.js.map +1 -0
  171. package/_internal/gradient-border.js +38 -0
  172. package/_internal/gradient-border.js.map +1 -0
  173. package/_internal/grid-item.js +2 -0
  174. package/_internal/grid-item.js.map +1 -0
  175. package/_internal/grid.js +2 -0
  176. package/_internal/grid.js.map +1 -0
  177. package/_internal/heading.js +3 -0
  178. package/_internal/heading.js.map +1 -0
  179. package/_internal/icon-button-link.js +2 -0
  180. package/_internal/icon-button-link.js.map +1 -0
  181. package/_internal/icon-button.js +3 -0
  182. package/_internal/icon-button.js.map +1 -0
  183. package/_internal/icon.js +2 -0
  184. package/_internal/icon.js.map +1 -0
  185. package/_internal/isComponent.js +15 -0
  186. package/_internal/isComponent.js.map +1 -0
  187. package/_internal/item.js +2 -0
  188. package/_internal/item.js.map +1 -0
  189. package/_internal/link-button.js +2 -0
  190. package/_internal/link-button.js.map +1 -0
  191. package/_internal/link.js +3 -0
  192. package/_internal/link.js.map +1 -0
  193. package/_internal/listbox.js +3 -0
  194. package/_internal/listbox.js.map +1 -0
  195. package/_internal/number-field.js +2 -0
  196. package/_internal/number-field.js.map +1 -0
  197. package/_internal/number.js +2 -0
  198. package/_internal/number.js.map +1 -0
  199. package/_internal/partitionComponents.js +26 -0
  200. package/_internal/partitionComponents.js.map +1 -0
  201. package/_internal/pill.js +2 -0
  202. package/_internal/pill.js.map +1 -0
  203. package/_internal/progress-bar.js +2 -0
  204. package/_internal/progress-bar.js.map +1 -0
  205. package/_internal/radio-group.js +2 -0
  206. package/_internal/radio-group.js.map +1 -0
  207. package/_internal/radio.js +2 -0
  208. package/_internal/radio.js.map +1 -0
  209. package/_internal/redsift-design-tokens.js +1391 -0
  210. package/_internal/redsift-design-tokens.js.map +1 -0
  211. package/_internal/shared.js +2 -0
  212. package/_internal/shared.js.map +1 -0
  213. package/_internal/shield.js +2 -0
  214. package/_internal/shield.js.map +1 -0
  215. package/_internal/side-navigation-menu-bar.js +3 -0
  216. package/_internal/side-navigation-menu-bar.js.map +1 -0
  217. package/_internal/side-navigation-menu-item.js +2 -0
  218. package/_internal/side-navigation-menu-item.js.map +1 -0
  219. package/_internal/side-navigation-menu.js +2 -0
  220. package/_internal/side-navigation-menu.js.map +1 -0
  221. package/_internal/skeleton-circle.js +2 -0
  222. package/_internal/skeleton-circle.js.map +1 -0
  223. package/_internal/skeleton-text.js +3 -0
  224. package/_internal/skeleton-text.js.map +1 -0
  225. package/_internal/skeleton.js +2 -0
  226. package/_internal/skeleton.js.map +1 -0
  227. package/_internal/spinner.js +2 -0
  228. package/_internal/spinner.js.map +1 -0
  229. package/_internal/styles.js +235 -0
  230. package/_internal/styles.js.map +1 -0
  231. package/_internal/styles2.js +47 -0
  232. package/_internal/styles2.js.map +1 -0
  233. package/_internal/styles3.js +145 -0
  234. package/_internal/styles3.js.map +1 -0
  235. package/_internal/styles4.js +250 -0
  236. package/_internal/styles4.js.map +1 -0
  237. package/_internal/styles5.js +143 -0
  238. package/_internal/styles5.js.map +1 -0
  239. package/_internal/styles6.js +84 -0
  240. package/_internal/styles6.js.map +1 -0
  241. package/_internal/switch-group.js +2 -0
  242. package/_internal/switch-group.js.map +1 -0
  243. package/_internal/switch.js +2 -0
  244. package/_internal/switch.js.map +1 -0
  245. package/_internal/text-area.js +2 -0
  246. package/_internal/text-area.js.map +1 -0
  247. package/_internal/text-field.js +2 -0
  248. package/_internal/text-field.js.map +1 -0
  249. package/_internal/text.js +3 -0
  250. package/_internal/text.js.map +1 -0
  251. package/_internal/theme.js +2 -0
  252. package/_internal/theme.js.map +1 -0
  253. package/_internal/types.js +15 -0
  254. package/_internal/types.js.map +1 -0
  255. package/_internal/types2.js +26 -0
  256. package/_internal/types2.js.map +1 -0
  257. package/_internal/types3.js +20 -0
  258. package/_internal/types3.js.map +1 -0
  259. package/_internal/useAppSidePanel.js +337 -0
  260. package/_internal/useAppSidePanel.js.map +1 -0
  261. package/_internal/useFocusOnList.js +541 -0
  262. package/_internal/useFocusOnList.js.map +1 -0
  263. package/_internal/useFocusOnListItem.js +203 -0
  264. package/_internal/useFocusOnListItem.js.map +1 -0
  265. package/_internal/useFocusRing.js +669 -0
  266. package/_internal/useFocusRing.js.map +1 -0
  267. package/_internal/useId.js +42 -0
  268. package/_internal/useId.js.map +1 -0
  269. package/_internal/useIsLoaded.js +14 -0
  270. package/_internal/useIsLoaded.js.map +1 -0
  271. package/_internal/useListboxItem.js +129 -0
  272. package/_internal/useListboxItem.js.map +1 -0
  273. package/_internal/useMessageFormatter.js +143 -0
  274. package/_internal/useMessageFormatter.js.map +1 -0
  275. package/_internal/useNumberFormatter.js +239 -0
  276. package/_internal/useNumberFormatter.js.map +1 -0
  277. package/_internal/useSideNavigationMenuBar.js +373 -0
  278. package/_internal/useSideNavigationMenuBar.js.map +1 -0
  279. package/_internal/useTheme.js +15 -0
  280. package/_internal/useTheme.js.map +1 -0
  281. package/_internal/warnIfNoAccessibleLabelFound.js +20 -0
  282. package/_internal/warnIfNoAccessibleLabelFound.js.map +1 -0
  283. package/index.js +315 -24243
  284. package/index.js.map +1 -1
  285. package/package.json +3 -3
@@ -0,0 +1,197 @@
1
+ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef, useState, useEffect, useCallback } from 'react';
3
+ import classNames from 'classnames';
4
+ import { mdiClose, mdiAlert, mdiTriangleOutline, mdiCheckCircle, mdiCheck, mdiAlertCircle, mdiAlertOutline, mdiInformation, mdiInformationOutline } from '@redsift/icons';
5
+ import styled, { css } from 'styled-components';
6
+ import { i as baseStyling } from './styles4.js';
7
+ import { T as Theme, N as NotificationsColorPalette } from './colors.js';
8
+ import { u as useMessageFormatter } from './useMessageFormatter.js';
9
+ import { F as Flexbox } from './Flexbox2.js';
10
+ import { T as Text } from './Text2.js';
11
+ import { tz as RedsiftTypographyFontWeightSemiBold } from './redsift-design-tokens.js';
12
+ import { I as IconButton } from './IconButton.js';
13
+ import { u as useTheme } from './useTheme.js';
14
+ import { a as Icon } from './Icon2.js';
15
+
16
+ /**
17
+ * Component variant.
18
+ */
19
+ const AlertVariant = {
20
+ success: 'success',
21
+ error: 'error',
22
+ warning: 'warning',
23
+ info: 'info'
24
+ };
25
+ const AlertStyleVariant = {
26
+ default: 'default',
27
+ minimal: 'minimal'
28
+ };
29
+
30
+ /**
31
+ * Component props.
32
+ */
33
+
34
+ var close$1 = "Close";
35
+ var enUS = {
36
+ close: close$1
37
+ };
38
+
39
+ var close = "Fermer";
40
+ var frFR = {
41
+ close: close
42
+ };
43
+
44
+ var intlMessages = {
45
+ 'en-US': enUS,
46
+ 'fr-FR': frFR
47
+ };
48
+
49
+ /**
50
+ * Component style.
51
+ */
52
+ const StyledAlert = styled.div`
53
+ ${baseStyling}
54
+
55
+ padding: 16px;
56
+ ${_ref => {
57
+ let {
58
+ $hasTitle,
59
+ $isClosable,
60
+ $isClosed,
61
+ $variant,
62
+ $styleVariant,
63
+ $theme
64
+ } = _ref;
65
+ return css`
66
+ color: var(--redsift-color-neutral-${$theme === Theme.light ? 'x-dark-grey' : 'white'});
67
+ display: ${!$isClosed ? 'block' : 'none'};
68
+ background-color: ${$styleVariant == 'minimal' ? `var(--redsift-color-neutral-${$theme !== Theme.light ? 'x-dark-grey' : 'white'})` : `var(--redsift-color-${$theme}-components-alert-${$variant}-background)`};
69
+
70
+ border: ${$styleVariant == 'minimal' ? `1px solid var(--redsift-color-${$theme}-components-alert-${$variant}-border)` : 'none'};
71
+ border-radius: ${$styleVariant == 'minimal' ? '8px' : '4px'};
72
+
73
+ .redsift-alert-header__icon-button {
74
+ background-color: transparent;
75
+ padding: 0px;
76
+ .redsift-icon {
77
+ color: var(--redsift-color-neutral-x-dark-grey);
78
+ }
79
+
80
+ &:hover,
81
+ &:focus-visible {
82
+ background-color: var(--redsift-color-notifications-${$variant}-active);
83
+ }
84
+ }
85
+
86
+ .redsift-alert__content {
87
+ margin-top: ${$hasTitle ? '8px' : '-24px'};
88
+ margin-left: 38px;
89
+ ${$isClosable ? css`
90
+ margin-right: 24px;
91
+ ` : ''};
92
+ }
93
+ `;
94
+ }}
95
+ `;
96
+
97
+ const _excluded = ["children", "className", "isClosable", "isClosed", "onClose", "theme", "title", "variant", "styleVariant"];
98
+ const COMPONENT_NAME = 'Alert';
99
+ const CLASSNAME = 'redsift-alert';
100
+ const getVariant = (variant, styleVariant, theme) => {
101
+ switch (variant) {
102
+ case AlertVariant.info:
103
+ default:
104
+ return {
105
+ color: theme === Theme.light ? NotificationsColorPalette.info : 'white',
106
+ icon: styleVariant == 'default' ? mdiInformation : mdiInformationOutline
107
+ };
108
+ case AlertVariant.error:
109
+ return {
110
+ color: theme === Theme.light ? NotificationsColorPalette.error : 'white',
111
+ icon: styleVariant == 'default' ? mdiAlertCircle : mdiAlertOutline
112
+ };
113
+ case AlertVariant.success:
114
+ return {
115
+ color: theme === Theme.light ? NotificationsColorPalette.success : 'white',
116
+ icon: styleVariant == 'default' ? mdiCheckCircle : mdiCheck
117
+ };
118
+ case AlertVariant.warning:
119
+ return {
120
+ color: theme === Theme.light ? NotificationsColorPalette.warning : 'white',
121
+ icon: styleVariant == 'default' ? mdiAlert : mdiTriangleOutline
122
+ };
123
+ }
124
+ };
125
+
126
+ /**
127
+ * The Alert component.
128
+ */
129
+ const Alert = /*#__PURE__*/forwardRef((props, ref) => {
130
+ const {
131
+ children,
132
+ className,
133
+ isClosable,
134
+ isClosed: propsIsClosed,
135
+ onClose,
136
+ theme: propsTheme,
137
+ title,
138
+ variant: propsVariant,
139
+ styleVariant: propsStyleVariant
140
+ } = props,
141
+ forwardedProps = _objectWithoutProperties(props, _excluded);
142
+ const theme = useTheme(propsTheme);
143
+ const variant = Object.values(AlertVariant).includes(propsVariant) ? propsVariant : 'info';
144
+ const styleVariant = Object.values(AlertStyleVariant).includes(propsStyleVariant) ? propsStyleVariant : 'default';
145
+ const format = useMessageFormatter(intlMessages);
146
+ const {
147
+ color,
148
+ icon
149
+ } = getVariant(variant, styleVariant, theme);
150
+ const [isClosed, setIsClosed] = useState(propsIsClosed);
151
+ useEffect(() => {
152
+ setIsClosed(propsIsClosed);
153
+ }, [propsIsClosed]);
154
+ const handleClose = useCallback(() => {
155
+ if (onClose) {
156
+ onClose(true);
157
+ }
158
+ if (propsIsClosed === undefined || propsIsClosed === null) {
159
+ setIsClosed(true);
160
+ }
161
+ }, [onClose]);
162
+ return /*#__PURE__*/React__default.createElement(StyledAlert, _extends({}, forwardedProps, {
163
+ className: classNames(Alert.className, className),
164
+ ref: ref,
165
+ $hasTitle: Boolean(title),
166
+ $isClosable: isClosable,
167
+ $isClosed: isClosed,
168
+ $theme: theme,
169
+ $variant: variant,
170
+ $styleVariant: styleVariant
171
+ }), /*#__PURE__*/React__default.createElement(Flexbox, {
172
+ className: `${Alert.className}__header`,
173
+ justifyContent: "space-between"
174
+ }, /*#__PURE__*/React__default.createElement(Flexbox, {
175
+ className: `${Alert.className}-header__title`,
176
+ gap: "14px",
177
+ alignItems: "center"
178
+ }, /*#__PURE__*/React__default.createElement(Icon, {
179
+ icon: icon,
180
+ color: color
181
+ }), title ? /*#__PURE__*/React__default.createElement(Text, {
182
+ fontWeight: RedsiftTypographyFontWeightSemiBold
183
+ }, title) : null), isClosable ? /*#__PURE__*/React__default.createElement(IconButton, {
184
+ "aria-label": format('close'),
185
+ className: `${Alert.className}-header__icon-button`,
186
+ icon: mdiClose,
187
+ onClick: handleClose,
188
+ color: color
189
+ }) : null), children ? /*#__PURE__*/React__default.createElement("div", {
190
+ className: `${Alert.className}__content`
191
+ }, children) : null);
192
+ });
193
+ Alert.className = CLASSNAME;
194
+ Alert.displayName = COMPONENT_NAME;
195
+
196
+ export { AlertVariant as A, AlertStyleVariant as a, Alert as b };
197
+ //# sourceMappingURL=Alert2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert2.js","sources":["../../src/components/alert/types.ts","../../src/components/alert/intl/index.ts","../../src/components/alert/styles.ts","../../src/components/alert/Alert.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\nimport { ValueOf, StylingProps, Theme } from '../..';\n\n/**\n * Component variant.\n */\nexport const AlertVariant = {\n success: 'success',\n error: 'error',\n warning: 'warning',\n info: 'info',\n} as const;\nexport type AlertVariant = ValueOf<typeof AlertVariant>;\n\nexport const AlertStyleVariant = {\n default: 'default',\n minimal: 'minimal',\n} as const;\nexport type AlertStyleVariant = ValueOf<typeof AlertStyleVariant>;\n\n/**\n * Component props.\n */\nexport interface AlertProps extends ComponentProps<'div'>, StylingProps {\n /** Whether the component can be closed or not. */\n isClosable?: boolean;\n /** Whether the component is closed or not. Used for controlled version. */\n isClosed?: boolean;\n /** Method to handle component change. */\n onClose?(isClosed: boolean): void;\n /** Title. */\n title?: string;\n /** Theme. */\n theme?: Theme;\n /** Variant */\n variant?: AlertVariant;\n /** Style variant. */\n styleVariant?: AlertStyleVariant;\n}\n\nexport type StyledAlertProps = Omit<AlertProps, 'variant' | 'styleVariant'> & {\n $hasTitle: boolean;\n $isClosable: AlertProps['isClosable'];\n $isClosed: AlertProps['isClosed'];\n $variant: AlertProps['variant'];\n $theme: AlertProps['theme'];\n $styleVariant: AlertProps['styleVariant'];\n};\n","import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import styled, { css } from 'styled-components';\nimport { baseStyling } from '../shared';\nimport { StyledAlertProps } from './types';\nimport { Theme } from '../../types';\n\n/**\n * Component style.\n */\nexport const StyledAlert = styled.div<StyledAlertProps>`\n ${baseStyling}\n\n padding: 16px;\n ${({ $hasTitle, $isClosable, $isClosed, $variant, $styleVariant, $theme }) => css`\n color: var(--redsift-color-neutral-${$theme === Theme.light ? 'x-dark-grey' : 'white'});\n display: ${!$isClosed ? 'block' : 'none'};\n background-color: ${$styleVariant == 'minimal'\n ? `var(--redsift-color-neutral-${$theme !== Theme.light ? 'x-dark-grey' : 'white'})`\n : `var(--redsift-color-${$theme}-components-alert-${$variant}-background)`};\n\n border: ${$styleVariant == 'minimal'\n ? `1px solid var(--redsift-color-${$theme}-components-alert-${$variant}-border)`\n : 'none'};\n border-radius: ${$styleVariant == 'minimal' ? '8px' : '4px'};\n\n .redsift-alert-header__icon-button {\n background-color: transparent;\n padding: 0px;\n .redsift-icon {\n color: var(--redsift-color-neutral-x-dark-grey);\n }\n\n &:hover,\n &:focus-visible {\n background-color: var(--redsift-color-notifications-${$variant}-active);\n }\n }\n\n .redsift-alert__content {\n margin-top: ${$hasTitle ? '8px' : '-24px'};\n margin-left: 38px;\n ${$isClosable\n ? css`\n margin-right: 24px;\n `\n : ''};\n }\n `}\n`;\n","import React, { forwardRef, RefObject, useCallback, useEffect, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { useMessageFormatter } from '../../react-aria/react-aria/i18n';\nimport intlMessages from './intl';\n\nimport {\n mdiAlert,\n mdiTriangleOutline,\n mdiAlertCircle,\n mdiAlertOutline,\n mdiCheck,\n mdiCheckCircle,\n mdiClose,\n mdiInformation,\n mdiInformationOutline,\n} from '@redsift/icons';\nimport { IconButton } from '../icon-button';\nimport { NotificationsColorPalette, Comp, Theme } from '../../types';\nimport { StyledAlert } from './styles';\nimport { AlertProps, AlertVariant, AlertStyleVariant } from './types';\nimport { Icon } from '../icon';\nimport { Text } from '../text';\nimport { Flexbox } from '../flexbox';\nimport { RedsiftTypographyFontWeightSemiBold } from '../../utils';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'Alert';\nconst CLASSNAME = 'redsift-alert';\n\nconst getVariant = (variant: AlertVariant, styleVariant: AlertStyleVariant, theme: Theme) => {\n switch (variant) {\n case AlertVariant.info:\n default:\n return {\n color: theme === Theme.light ? NotificationsColorPalette.info : 'white',\n icon: styleVariant == 'default' ? mdiInformation : mdiInformationOutline,\n };\n case AlertVariant.error:\n return {\n color: theme === Theme.light ? NotificationsColorPalette.error : 'white',\n icon: styleVariant == 'default' ? mdiAlertCircle : mdiAlertOutline,\n };\n case AlertVariant.success:\n return {\n color: theme === Theme.light ? NotificationsColorPalette.success : 'white',\n icon: styleVariant == 'default' ? mdiCheckCircle : mdiCheck,\n };\n case AlertVariant.warning:\n return {\n color: theme === Theme.light ? NotificationsColorPalette.warning : 'white',\n icon: styleVariant == 'default' ? mdiAlert : mdiTriangleOutline,\n };\n }\n};\n\n/**\n * The Alert component.\n */\nexport const Alert: Comp<AlertProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n isClosable,\n isClosed: propsIsClosed,\n onClose,\n theme: propsTheme,\n title,\n variant: propsVariant,\n styleVariant: propsStyleVariant,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n const variant = Object.values(AlertVariant).includes(propsVariant!) ? propsVariant : 'info';\n const styleVariant = Object.values(AlertStyleVariant).includes(propsStyleVariant!) ? propsStyleVariant : 'default';\n\n const format = useMessageFormatter(intlMessages);\n\n const { color, icon } = getVariant(variant!, styleVariant!, theme);\n const [isClosed, setIsClosed] = useState(propsIsClosed);\n\n useEffect(() => {\n setIsClosed(propsIsClosed);\n }, [propsIsClosed]);\n\n const handleClose = useCallback(() => {\n if (onClose) {\n onClose(true);\n }\n if (propsIsClosed === undefined || propsIsClosed === null) {\n setIsClosed(true);\n }\n }, [onClose]);\n\n return (\n <StyledAlert\n {...forwardedProps}\n className={classNames(Alert.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $hasTitle={Boolean(title)}\n $isClosable={isClosable}\n $isClosed={isClosed}\n $theme={theme}\n $variant={variant}\n $styleVariant={styleVariant}\n >\n <Flexbox className={`${Alert.className}__header`} justifyContent=\"space-between\">\n <Flexbox className={`${Alert.className}-header__title`} gap=\"14px\" alignItems=\"center\">\n <Icon icon={icon} color={color} />\n {title ? <Text fontWeight={RedsiftTypographyFontWeightSemiBold}>{title}</Text> : null}\n </Flexbox>\n\n {isClosable ? (\n <IconButton\n aria-label={format('close')}\n className={`${Alert.className}-header__icon-button`}\n icon={mdiClose}\n onClick={handleClose}\n color={color}\n />\n ) : null}\n </Flexbox>\n\n {children ? <div className={`${Alert.className}__content`}>{children}</div> : null}\n </StyledAlert>\n );\n});\nAlert.className = CLASSNAME;\nAlert.displayName = COMPONENT_NAME;\n"],"names":["AlertVariant","success","error","warning","info","AlertStyleVariant","default","minimal","enUS","frFR","StyledAlert","styled","div","baseStyling","_ref","$hasTitle","$isClosable","$isClosed","$variant","$styleVariant","$theme","css","Theme","light","COMPONENT_NAME","CLASSNAME","getVariant","variant","styleVariant","theme","color","NotificationsColorPalette","icon","mdiInformation","mdiInformationOutline","mdiAlertCircle","mdiAlertOutline","mdiCheckCircle","mdiCheck","mdiAlert","mdiTriangleOutline","Alert","forwardRef","props","ref","children","className","isClosable","isClosed","propsIsClosed","onClose","propsTheme","title","propsVariant","propsStyleVariant","forwardedProps","_objectWithoutProperties","_excluded","useTheme","Object","values","includes","format","useMessageFormatter","intlMessages","setIsClosed","useState","useEffect","handleClose","useCallback","undefined","React","createElement","_extends","classNames","Boolean","Flexbox","justifyContent","gap","alignItems","Icon","Text","fontWeight","RedsiftTypographyFontWeightSemiBold","IconButton","mdiClose","onClick","displayName"],"mappings":"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"}
@@ -0,0 +1,248 @@
1
+ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef, useState, useEffect, useContext } from 'react';
3
+ import classNames from 'classnames';
4
+ import { mdiMenuOpen } from '@redsift/icons';
5
+ import { A as AppContainerContext } from './context.js';
6
+ import { u as useIsLoaded } from './useIsLoaded.js';
7
+ import styled, { css } from 'styled-components';
8
+ import { u as useMessageFormatter } from './useMessageFormatter.js';
9
+ import { H as Heading } from './Heading2.js';
10
+ import { a as Breadcrumbs } from './Breadcrumbs2.js';
11
+ import { a as ProductName } from './colors.js';
12
+ import { u as useTheme } from './useTheme.js';
13
+ import { A as AppSidePanelVariant } from './types.js';
14
+ import { I as IconButton } from './IconButton.js';
15
+
16
+ var expand$1 = "Expand left side panel";
17
+ var collapse$1 = "Collapse left side panel";
18
+ var enUS = {
19
+ expand: expand$1,
20
+ collapse: collapse$1
21
+ };
22
+
23
+ var expand = "Développer le panneau latéral gauche";
24
+ var collapse = "Réduire le panneau latéral gauche";
25
+ var frFR = {
26
+ expand: expand,
27
+ collapse: collapse
28
+ };
29
+
30
+ var intlMessages = {
31
+ 'en-US': enUS,
32
+ 'fr-FR': frFR
33
+ };
34
+
35
+ /**
36
+ * Component style.
37
+ */
38
+ const StyledAppBar = styled.header`
39
+ align-content: center;
40
+ align-items: center;
41
+
42
+ ${_ref => {
43
+ let {
44
+ $theme
45
+ } = _ref;
46
+ return css`
47
+ background-color: var(--redsift-color-${$theme}-components-app-bar-background);
48
+ color: var(--redsift-color-${$theme}-components-text);
49
+ `;
50
+ }};
51
+
52
+ display: flex;
53
+ flex-direction: row;
54
+ z-index: var(--redsift-layout-z-index-header);
55
+
56
+ ${_ref2 => {
57
+ let {
58
+ $isAppFullScreen
59
+ } = _ref2;
60
+ return !$isAppFullScreen ? css`
61
+ height: 92px;
62
+ @media (max-width: 1080px) {
63
+ height: 72px;
64
+ }
65
+ ` : css`
66
+ height: 0;
67
+ visibility: hidden;
68
+ @media (max-width: 1080px) {
69
+ height: 0;
70
+ }
71
+ `;
72
+ }}
73
+
74
+ justify-content: space-between;
75
+ left: 0;
76
+ position: sticky;
77
+ top: 0;
78
+
79
+ ${_ref3 => {
80
+ let {
81
+ $hasBorder,
82
+ $theme
83
+ } = _ref3;
84
+ return $hasBorder ? css`
85
+ border-bottom: 2px solid var(--redsift-color-${$theme}-components-app-bar-border);
86
+ ` : css`
87
+ border-bottom: none;
88
+ `;
89
+ }}
90
+
91
+ ${_ref4 => {
92
+ let {
93
+ $isSidePanelCollapsed,
94
+ $isAppFullScreen
95
+ } = _ref4;
96
+ return $isAppFullScreen ? css`
97
+ width: calc(100%);
98
+ ` : !$isSidePanelCollapsed ? css`
99
+ transform: translate(254px);
100
+ width: calc(100% - 254px);
101
+ ` : css`
102
+ transform: translate(64px);
103
+ width: calc(100% - 64px);
104
+ `;
105
+ }}
106
+
107
+ ${_ref5 => {
108
+ let {
109
+ $isLoaded
110
+ } = _ref5;
111
+ return $isLoaded ? css`
112
+ transition: transform 0.25s ease-out, width 0.25s ease-out, height 0.25s ease-out, visibility 0.25s ease-out;
113
+ ` : '';
114
+ }}
115
+
116
+ h1 {
117
+ margin: unset;
118
+ padding: unset;
119
+ }
120
+
121
+ .redsift-icon-button {
122
+ > span,
123
+ > span > svg {
124
+ width: 30px;
125
+ height: 30px;
126
+ }
127
+ }
128
+
129
+ .redsift-app-bar__left {
130
+ align-content: center;
131
+ align-items: center;
132
+ display: inline-flex;
133
+ flex-direction: row;
134
+ gap: 8px;
135
+ justify-content: center;
136
+ margin-left: 19px;
137
+ }
138
+
139
+ .redsift-app-bar-left__expand-button,
140
+ .redsift-app-bar-left__collapse-button {
141
+ margin-right: 3px;
142
+ padding: 2px;
143
+ margin-left: -2px;
144
+ }
145
+
146
+ .redsift-app-bar__right {
147
+ display: inline-flex;
148
+ margin: 16px;
149
+ }
150
+
151
+ .redsift-breadcrumb-item,
152
+ .redsift-breadcrumbs__separator {
153
+ font-family: var(--redsift-typography-h1-font-family) !important;
154
+ font-size: var(--redsift-typography-h1-font-size) !important;
155
+ font-weight: var(--redsift-typography-body-font-weight) !important;
156
+ line-height: var(--redsift-typography-h1-line-height) !important;
157
+ color: ${_ref6 => {
158
+ let {
159
+ $theme
160
+ } = _ref6;
161
+ return css`var(--redsift-color-${$theme}-components-app-bar-breadcrumb-default) !important`;
162
+ }};
163
+ }
164
+
165
+ h1.redsift-breadcrumb-item {
166
+ font-weight: var(--redsift-typography-h1-font-weight) !important;
167
+ }
168
+ `;
169
+
170
+ const _excluded = ["breadcrumbs", "children", "className", "iconButtonProps", "iconButtonRef", "fallbackTitle", "theme", "title"];
171
+ const COMPONENT_NAME = 'AppBar';
172
+ const CLASSNAME = 'redsift-app-bar';
173
+
174
+ /**
175
+ * The AppBar component.
176
+ */
177
+ const AppBar = /*#__PURE__*/forwardRef((props, ref) => {
178
+ var _breadcrumbs$, _appContainerState$pr;
179
+ const {
180
+ breadcrumbs,
181
+ children,
182
+ className,
183
+ iconButtonProps,
184
+ iconButtonRef,
185
+ fallbackTitle,
186
+ theme: propsTheme,
187
+ title: propsTitle
188
+ } = props,
189
+ forwardedProps = _objectWithoutProperties(props, _excluded);
190
+ const [scroll, setScroll] = useState(false);
191
+ useEffect(() => {
192
+ window.addEventListener('scroll', () => {
193
+ setScroll(window.scrollY > 8);
194
+ });
195
+ }, []);
196
+ const {
197
+ isLoaded
198
+ } = useIsLoaded();
199
+ const appContainerState = useContext(AppContainerContext);
200
+ const theme = useTheme(propsTheme);
201
+ const format = useMessageFormatter(intlMessages);
202
+ return /*#__PURE__*/React__default.createElement(StyledAppBar, _extends({}, forwardedProps, {
203
+ $hasBorder: scroll,
204
+ $isLoaded: isLoaded,
205
+ $isSidePanelCollapsed: appContainerState ? appContainerState.sidePanelVariant === AppSidePanelVariant.shrinked : true,
206
+ $isAppFullScreen: appContainerState ? appContainerState.sidePanelVariant === AppSidePanelVariant.hidden : false,
207
+ $theme: theme,
208
+ className: classNames(AppBar.className, className),
209
+ ref: ref
210
+ }), /*#__PURE__*/React__default.createElement("div", {
211
+ className: `${AppBar.className}__left`
212
+ }, appContainerState ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, appContainerState.sidePanelVariant === AppSidePanelVariant.shrinked ? /*#__PURE__*/React__default.createElement("div", {
213
+ style: {
214
+ width: '30px',
215
+ height: '30px',
216
+ marginRight: '3px'
217
+ }
218
+ }) : /*#__PURE__*/React__default.createElement(IconButton, _extends({
219
+ className: `${AppBar.className}-left__collapse-button`
220
+ }, iconButtonProps, {
221
+ "aria-label": format('collapse'),
222
+ icon: mdiMenuOpen,
223
+ onClick: appContainerState.collapseSidePanel,
224
+ ref: iconButtonRef,
225
+ color: "grey"
226
+ }))) : null, propsTitle && typeof propsTitle !== 'string' ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, propsTitle) : typeof propsTitle === 'string' ? /*#__PURE__*/React__default.createElement(Heading, {
227
+ as: "h1"
228
+ }, propsTitle) : breadcrumbs ? /*#__PURE__*/React__default.createElement(Breadcrumbs, {
229
+ "aria-label": "Breadcrumb"
230
+ }, appContainerState && appContainerState.sidePanelVariant === AppSidePanelVariant.shrinked ? /*#__PURE__*/React__default.createElement(Breadcrumbs.Item, {
231
+ href: "/",
232
+ as: ((_breadcrumbs$ = breadcrumbs[0]) === null || _breadcrumbs$ === void 0 ? void 0 : _breadcrumbs$.as) || 'a'
233
+ }, typeof appContainerState.product === 'string' ? ProductName[appContainerState.product] : (_appContainerState$pr = appContainerState.product) === null || _appContainerState$pr === void 0 ? void 0 : _appContainerState$pr.name) : null, breadcrumbs.map((breadcrumbItem, index) => /*#__PURE__*/React__default.createElement(Breadcrumbs.Item, _extends({
234
+ key: index
235
+ }, breadcrumbItem, {
236
+ isDisabled: breadcrumbItem.isDisabled || breadcrumbItem.href === undefined,
237
+ as: index === breadcrumbs.length - 1 ? 'h1' : breadcrumbItem.href === undefined ? 'span' : breadcrumbItem.as || 'a'
238
+ })))) : fallbackTitle ? /*#__PURE__*/React__default.createElement(Heading, {
239
+ as: "h1"
240
+ }, fallbackTitle) : null), children ? /*#__PURE__*/React__default.createElement("div", {
241
+ className: `${AppBar.className}__right`
242
+ }, children) : null);
243
+ });
244
+ AppBar.className = CLASSNAME;
245
+ AppBar.displayName = COMPONENT_NAME;
246
+
247
+ export { AppBar as A };
248
+ //# sourceMappingURL=AppBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppBar.js","sources":["../../src/components/app-bar/intl/index.ts","../../src/components/app-bar/styles.ts","../../src/components/app-bar/AppBar.tsx"],"sourcesContent":["import enUS from './en-US.json';\nimport frFR from './fr-FR.json';\n\nexport default {\n 'en-US': enUS,\n 'fr-FR': frFR,\n};\n","import styled, { css } from 'styled-components';\nimport { StyledAppBarProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledAppBar = styled.header<StyledAppBarProps>`\n align-content: center;\n align-items: center;\n\n ${({ $theme }) => css`\n background-color: var(--redsift-color-${$theme}-components-app-bar-background);\n color: var(--redsift-color-${$theme}-components-text);\n `};\n\n display: flex;\n flex-direction: row;\n z-index: var(--redsift-layout-z-index-header);\n\n ${({ $isAppFullScreen }) =>\n !$isAppFullScreen\n ? css`\n height: 92px;\n @media (max-width: 1080px) {\n height: 72px;\n }\n `\n : css`\n height: 0;\n visibility: hidden;\n @media (max-width: 1080px) {\n height: 0;\n }\n `}\n\n justify-content: space-between;\n left: 0;\n position: sticky;\n top: 0;\n\n ${({ $hasBorder, $theme }) =>\n $hasBorder\n ? css`\n border-bottom: 2px solid var(--redsift-color-${$theme}-components-app-bar-border);\n `\n : css`\n border-bottom: none;\n `}\n\n ${({ $isSidePanelCollapsed, $isAppFullScreen }) =>\n $isAppFullScreen\n ? css`\n width: calc(100%);\n `\n : !$isSidePanelCollapsed\n ? css`\n transform: translate(254px);\n width: calc(100% - 254px);\n `\n : css`\n transform: translate(64px);\n width: calc(100% - 64px);\n `}\n\n ${({ $isLoaded }) =>\n $isLoaded\n ? css`\n transition: transform 0.25s ease-out, width 0.25s ease-out, height 0.25s ease-out, visibility 0.25s ease-out;\n `\n : ''}\n\n h1 {\n margin: unset;\n padding: unset;\n }\n\n .redsift-icon-button {\n > span,\n > span > svg {\n width: 30px;\n height: 30px;\n }\n }\n\n .redsift-app-bar__left {\n align-content: center;\n align-items: center;\n display: inline-flex;\n flex-direction: row;\n gap: 8px;\n justify-content: center;\n margin-left: 19px;\n }\n\n .redsift-app-bar-left__expand-button,\n .redsift-app-bar-left__collapse-button {\n margin-right: 3px;\n padding: 2px;\n margin-left: -2px;\n }\n\n .redsift-app-bar__right {\n display: inline-flex;\n margin: 16px;\n }\n\n .redsift-breadcrumb-item,\n .redsift-breadcrumbs__separator {\n font-family: var(--redsift-typography-h1-font-family) !important;\n font-size: var(--redsift-typography-h1-font-size) !important;\n font-weight: var(--redsift-typography-body-font-weight) !important;\n line-height: var(--redsift-typography-h1-line-height) !important;\n color: ${({ $theme }) => css`var(--redsift-color-${$theme}-components-app-bar-breadcrumb-default) !important`};\n }\n\n h1.redsift-breadcrumb-item {\n font-weight: var(--redsift-typography-h1-font-weight) !important;\n }\n`;\n","import React, { forwardRef, RefObject, useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { useMessageFormatter } from '../../react-aria/react-aria/i18n';\nimport intlMessages from './intl';\n\nimport { mdiMenuOpen } from '@redsift/icons';\nimport { Comp, ProductName } from '../../types';\nimport { IconButton } from '../icon-button';\nimport { AppContainerContext } from '../app-container/context';\nimport { useIsLoaded } from '../../hooks/useIsLoaded';\nimport { StyledAppBar } from './styles';\nimport { AppBarProps } from './types';\nimport { Heading } from '../heading';\nimport { AppSidePanelVariant } from '../app-side-panel';\nimport { Breadcrumbs } from '../breadcrumbs';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'AppBar';\nconst CLASSNAME = 'redsift-app-bar';\n\n/**\n * The AppBar component.\n */\nexport const AppBar: Comp<AppBarProps, HTMLHeadingElement> = forwardRef((props, ref) => {\n const {\n breadcrumbs,\n children,\n className,\n iconButtonProps,\n iconButtonRef,\n fallbackTitle,\n theme: propsTheme,\n title: propsTitle,\n ...forwardedProps\n } = props;\n\n const [scroll, setScroll] = useState(false);\n useEffect(() => {\n window.addEventListener('scroll', () => {\n setScroll(window.scrollY > 8);\n });\n }, []);\n\n const { isLoaded } = useIsLoaded();\n const appContainerState = useContext(AppContainerContext);\n const theme = useTheme(propsTheme);\n\n const format = useMessageFormatter(intlMessages);\n\n return (\n <StyledAppBar\n {...forwardedProps}\n $hasBorder={scroll}\n $isLoaded={isLoaded}\n $isSidePanelCollapsed={\n appContainerState ? appContainerState.sidePanelVariant === AppSidePanelVariant.shrinked : true\n }\n $isAppFullScreen={appContainerState ? appContainerState.sidePanelVariant === AppSidePanelVariant.hidden : false}\n $theme={theme}\n className={classNames(AppBar.className, className)}\n ref={ref as RefObject<HTMLHeadingElement>}\n >\n <div className={`${AppBar.className}__left`}>\n {appContainerState ? (\n <>\n {appContainerState.sidePanelVariant === AppSidePanelVariant.shrinked ? (\n <div style={{ width: '30px', height: '30px', marginRight: '3px' }} />\n ) : (\n <IconButton\n className={`${AppBar.className}-left__collapse-button`}\n {...iconButtonProps}\n aria-label={format('collapse')}\n icon={mdiMenuOpen}\n onClick={appContainerState.collapseSidePanel}\n ref={iconButtonRef as RefObject<HTMLButtonElement>}\n color=\"grey\"\n />\n )}\n </>\n ) : null}\n {propsTitle && typeof propsTitle !== 'string' ? (\n <>{propsTitle}</>\n ) : typeof propsTitle === 'string' ? (\n <Heading as=\"h1\">{propsTitle}</Heading>\n ) : breadcrumbs ? (\n <Breadcrumbs aria-label=\"Breadcrumb\">\n {appContainerState && appContainerState.sidePanelVariant === AppSidePanelVariant.shrinked ? (\n <Breadcrumbs.Item href=\"/\" as={breadcrumbs[0]?.as || 'a'}>\n {typeof appContainerState.product === 'string'\n ? ProductName[appContainerState.product]\n : appContainerState.product?.name}\n </Breadcrumbs.Item>\n ) : null}\n {breadcrumbs.map((breadcrumbItem, index) => (\n <Breadcrumbs.Item\n key={index}\n {...breadcrumbItem}\n isDisabled={breadcrumbItem.isDisabled || breadcrumbItem.href === undefined}\n as={\n index === breadcrumbs.length - 1\n ? 'h1'\n : breadcrumbItem.href === undefined\n ? 'span'\n : breadcrumbItem.as || 'a'\n }\n />\n ))}\n </Breadcrumbs>\n ) : fallbackTitle ? (\n <Heading as=\"h1\">{fallbackTitle}</Heading>\n ) : null}\n </div>\n {children ? <div className={`${AppBar.className}__right`}>{children}</div> : null}\n </StyledAppBar>\n );\n});\nAppBar.className = CLASSNAME;\nAppBar.displayName = COMPONENT_NAME;\n"],"names":["enUS","frFR","StyledAppBar","styled","header","_ref","$theme","css","_ref2","$isAppFullScreen","_ref3","$hasBorder","_ref4","$isSidePanelCollapsed","_ref5","$isLoaded","_ref6","COMPONENT_NAME","CLASSNAME","AppBar","forwardRef","props","ref","_breadcrumbs$","_appContainerState$pr","breadcrumbs","children","className","iconButtonProps","iconButtonRef","fallbackTitle","theme","propsTheme","title","propsTitle","forwardedProps","_objectWithoutProperties","_excluded","scroll","setScroll","useState","useEffect","window","addEventListener","scrollY","isLoaded","useIsLoaded","appContainerState","useContext","AppContainerContext","useTheme","format","useMessageFormatter","intlMessages","React","createElement","_extends","sidePanelVariant","AppSidePanelVariant","shrinked","hidden","classNames","Fragment","style","width","height","marginRight","IconButton","icon","mdiMenuOpen","onClick","collapseSidePanel","color","Heading","as","Breadcrumbs","Item","href","product","ProductName","name","map","breadcrumbItem","index","key","isDisabled","undefined","length","displayName"],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef, useRef, useState, useEffect } from 'react';
3
+ import classNames from 'classnames';
4
+ import { A as AppContainerContext } from './context.js';
5
+ import styled from 'styled-components';
6
+ import { A as AppSidePanelVariant } from './types.js';
7
+ import { I as I18nProvider } from './context2.js';
8
+ import { u as useTheme, a as ThemeProvider } from './useTheme.js';
9
+
10
+ /**
11
+ * Component style.
12
+ */
13
+ const StyledAppContainer = styled.div`
14
+ box-sizing: content-box;
15
+
16
+ --redsift-color-text-primary: ${_ref => {
17
+ let {
18
+ $theme
19
+ } = _ref;
20
+ return `var(--redsift-color-${$theme}-components-text-primary);`;
21
+ }};
22
+ --redsift-color-text-secondary: ${_ref2 => {
23
+ let {
24
+ $theme
25
+ } = _ref2;
26
+ return `var(--redsift-color-${$theme}-components-text-secondary);`;
27
+ }};
28
+ color: ${_ref3 => {
29
+ let {
30
+ $theme
31
+ } = _ref3;
32
+ return `var(--redsift-color-${$theme}-components-text-primary)`;
33
+ }};
34
+ `;
35
+
36
+ const _excluded = ["children", "className", "locale", "product", "theme", "isFullScreen"];
37
+ const COMPONENT_NAME = 'AppContainer';
38
+ const CLASSNAME = 'redsift-app-container';
39
+ const RadarSvgLinearGradient = () => /*#__PURE__*/React__default.createElement("svg", {
40
+ width: "0",
41
+ height: "0"
42
+ }, /*#__PURE__*/React__default.createElement("linearGradient", {
43
+ id: "radar-gradient-default",
44
+ x1: "100%",
45
+ y1: "100%",
46
+ x2: "0%",
47
+ y2: "0%"
48
+ }, /*#__PURE__*/React__default.createElement("stop", {
49
+ stopColor: "rgba(81, 183, 164, 1)",
50
+ offset: "0%"
51
+ }), /*#__PURE__*/React__default.createElement("stop", {
52
+ stopColor: "rgba(0, 129, 195, 1)",
53
+ offset: "100%"
54
+ })), /*#__PURE__*/React__default.createElement("linearGradient", {
55
+ id: "radar-gradient-hover",
56
+ x1: "100%",
57
+ y1: "100%",
58
+ x2: "0%",
59
+ y2: "0%"
60
+ }, /*#__PURE__*/React__default.createElement("stop", {
61
+ stopColor: "rgba(65, 146, 131, 1)",
62
+ offset: "0%"
63
+ }), /*#__PURE__*/React__default.createElement("stop", {
64
+ stopColor: "rgba(3, 114, 171, 1)",
65
+ offset: "100%"
66
+ })), /*#__PURE__*/React__default.createElement("linearGradient", {
67
+ id: "radar-gradient-active",
68
+ x1: "100%",
69
+ y1: "100%",
70
+ x2: "0%",
71
+ y2: "0%"
72
+ }, /*#__PURE__*/React__default.createElement("stop", {
73
+ stopColor: "rgba(58, 122, 110, 1)",
74
+ offset: "0%"
75
+ }), /*#__PURE__*/React__default.createElement("stop", {
76
+ stopColor: "rgba(0, 96, 145, 1)",
77
+ offset: "100%"
78
+ })));
79
+
80
+ /**
81
+ * The AppContainer component.
82
+ */
83
+ const AppContainer = /*#__PURE__*/forwardRef((props, ref) => {
84
+ const _ref = useRef();
85
+ const divRef = ref || _ref;
86
+ const {
87
+ children,
88
+ className,
89
+ locale,
90
+ product,
91
+ theme: propsTheme,
92
+ isFullScreen = false
93
+ } = props,
94
+ forwardedProps = _objectWithoutProperties(props, _excluded);
95
+ const theme = useTheme(propsTheme);
96
+ const [sidePanelVariant, setSidePanelVariant] = useState(isFullScreen ? AppSidePanelVariant.hidden : AppSidePanelVariant.standard);
97
+ const [breadcrumbs, setBreadcrumbs] = useState();
98
+ useEffect(() => {
99
+ if (isFullScreen && sidePanelVariant !== AppSidePanelVariant.hidden) {
100
+ setSidePanelVariant(AppSidePanelVariant.hidden);
101
+ } else if (!isFullScreen && sidePanelVariant !== AppSidePanelVariant.standard) {
102
+ setSidePanelVariant(AppSidePanelVariant.standard);
103
+ }
104
+ }, [isFullScreen]);
105
+ const state = {
106
+ collapseSidePanel() {
107
+ setSidePanelVariant(AppSidePanelVariant.shrinked);
108
+ },
109
+ expandSidePanel() {
110
+ setSidePanelVariant(AppSidePanelVariant.standard);
111
+ },
112
+ setBreadcrumbs(breadcrumbs) {
113
+ setBreadcrumbs(breadcrumbs);
114
+ },
115
+ product,
116
+ breadcrumbs,
117
+ sidePanelVariant,
118
+ setSidePanelVariant,
119
+ appContainerRef: divRef,
120
+ isFullScreen
121
+ };
122
+ return /*#__PURE__*/React__default.createElement(StyledAppContainer, _extends({}, forwardedProps, {
123
+ id: "redsift-app-container",
124
+ $theme: theme,
125
+ $product: product,
126
+ className: classNames(AppContainer.className, className),
127
+ ref: divRef
128
+ }), /*#__PURE__*/React__default.createElement(AppContainerContext.Provider, {
129
+ value: state
130
+ }, /*#__PURE__*/React__default.createElement(ThemeProvider, {
131
+ value: {
132
+ theme
133
+ }
134
+ }, /*#__PURE__*/React__default.createElement(I18nProvider, {
135
+ locale: locale
136
+ }, children))), /*#__PURE__*/React__default.createElement(RadarSvgLinearGradient, null));
137
+ });
138
+ AppContainer.className = CLASSNAME;
139
+ AppContainer.displayName = COMPONENT_NAME;
140
+
141
+ export { AppContainer as A, RadarSvgLinearGradient as R };
142
+ //# sourceMappingURL=AppContainer.js.map