@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.
- package/_internal/Alert2.js +197 -0
- package/_internal/Alert2.js.map +1 -0
- package/_internal/AppBar.js +248 -0
- package/_internal/AppBar.js.map +1 -0
- package/_internal/AppContainer.js +142 -0
- package/_internal/AppContainer.js.map +1 -0
- package/_internal/AppContent.js +92 -0
- package/_internal/AppContent.js.map +1 -0
- package/_internal/Badge2.js +142 -0
- package/_internal/Badge2.js.map +1 -0
- package/_internal/BreadcrumbItem.js +91 -0
- package/_internal/BreadcrumbItem.js.map +1 -0
- package/_internal/Breadcrumbs2.js +94 -0
- package/_internal/Breadcrumbs2.js.map +1 -0
- package/_internal/Button2.js +91 -0
- package/_internal/Button2.js.map +1 -0
- package/_internal/ButtonGroup.js +181 -0
- package/_internal/ButtonGroup.js.map +1 -0
- package/_internal/ButtonLink.js +84 -0
- package/_internal/ButtonLink.js.map +1 -0
- package/_internal/Card2.js +157 -0
- package/_internal/Card2.js.map +1 -0
- package/_internal/CardActions.js +44 -0
- package/_internal/CardActions.js.map +1 -0
- package/_internal/CardBody.js +42 -0
- package/_internal/CardBody.js.map +1 -0
- package/_internal/CardHeader.js +83 -0
- package/_internal/CardHeader.js.map +1 -0
- package/_internal/Checkbox2.js +244 -0
- package/_internal/Checkbox2.js.map +1 -0
- package/_internal/CheckboxGroup.js +188 -0
- package/_internal/CheckboxGroup.js.map +1 -0
- package/_internal/ConditionalWrapper.js +13 -0
- package/_internal/ConditionalWrapper.js.map +1 -0
- package/_internal/DetailedCard.js +6916 -0
- package/_internal/DetailedCard.js.map +1 -0
- package/_internal/DetailedCardCollapsibleSectionItems.js +64 -0
- package/_internal/DetailedCardCollapsibleSectionItems.js.map +1 -0
- package/_internal/DetailedCardHeader.js +67 -0
- package/_internal/DetailedCardHeader.js.map +1 -0
- package/_internal/DetailedCardSection.js +172 -0
- package/_internal/DetailedCardSection.js.map +1 -0
- package/_internal/DetailedCardSectionItem.js +94 -0
- package/_internal/DetailedCardSectionItem.js.map +1 -0
- package/_internal/Flexbox2.js +93 -0
- package/_internal/Flexbox2.js.map +1 -0
- package/_internal/Grid2.js +95 -0
- package/_internal/Grid2.js.map +1 -0
- package/_internal/GridItem.js +40 -0
- package/_internal/GridItem.js.map +1 -0
- package/_internal/Heading2.js +113 -0
- package/_internal/Heading2.js.map +1 -0
- package/_internal/Icon2.js +211 -0
- package/_internal/Icon2.js.map +1 -0
- package/_internal/IconButton.js +80 -0
- package/_internal/IconButton.js.map +1 -0
- package/_internal/IconButtonLink.js +75 -0
- package/_internal/IconButtonLink.js.map +1 -0
- package/_internal/Item2.js +399 -0
- package/_internal/Item2.js.map +1 -0
- package/_internal/Link2.js +67 -0
- package/_internal/Link2.js.map +1 -0
- package/_internal/LinkButton.js +66 -0
- package/_internal/LinkButton.js.map +1 -0
- package/_internal/Listbox2.js +274 -0
- package/_internal/Listbox2.js.map +1 -0
- package/_internal/Number2.js +111 -0
- package/_internal/Number2.js.map +1 -0
- package/_internal/NumberField.js +3974 -0
- package/_internal/NumberField.js.map +1 -0
- package/_internal/Pill2.js +405 -0
- package/_internal/Pill2.js.map +1 -0
- package/_internal/ProgressBar.js +69 -0
- package/_internal/ProgressBar.js.map +1 -0
- package/_internal/Radio2.js +237 -0
- package/_internal/Radio2.js.map +1 -0
- package/_internal/RadioGroup.js +176 -0
- package/_internal/RadioGroup.js.map +1 -0
- package/_internal/Shield2.js +225 -0
- package/_internal/Shield2.js.map +1 -0
- package/_internal/SideNavigationMenu.js +591 -0
- package/_internal/SideNavigationMenu.js.map +1 -0
- package/_internal/SideNavigationMenuItem.js +304 -0
- package/_internal/SideNavigationMenuItem.js.map +1 -0
- package/_internal/Skeleton2.js +42 -0
- package/_internal/Skeleton2.js.map +1 -0
- package/_internal/SkeletonCircle.js +58 -0
- package/_internal/SkeletonCircle.js.map +1 -0
- package/_internal/SkeletonText.js +77 -0
- package/_internal/SkeletonText.js.map +1 -0
- package/_internal/Spinner2.js +333 -0
- package/_internal/Spinner2.js.map +1 -0
- package/_internal/Switch2.js +320 -0
- package/_internal/Switch2.js.map +1 -0
- package/_internal/SwitchGroup.js +188 -0
- package/_internal/SwitchGroup.js.map +1 -0
- package/_internal/Text2.js +51 -0
- package/_internal/Text2.js.map +1 -0
- package/_internal/TextArea.js +444 -0
- package/_internal/TextArea.js.map +1 -0
- package/_internal/TextField.js +473 -0
- package/_internal/TextField.js.map +1 -0
- package/_internal/_rollupPluginBabelHelpers.js +133 -0
- package/_internal/_rollupPluginBabelHelpers.js.map +1 -0
- package/_internal/alert.js +2 -0
- package/_internal/alert.js.map +1 -0
- package/_internal/app-bar.js +2 -0
- package/_internal/app-bar.js.map +1 -0
- package/_internal/app-container.js +3 -0
- package/_internal/app-container.js.map +1 -0
- package/_internal/app-content.js +2 -0
- package/_internal/app-content.js.map +1 -0
- package/_internal/app-side-panel.js +3 -0
- package/_internal/app-side-panel.js.map +1 -0
- package/_internal/badge.js +2 -0
- package/_internal/badge.js.map +1 -0
- package/_internal/breadcrumb-item.js +2 -0
- package/_internal/breadcrumb-item.js.map +1 -0
- package/_internal/breadcrumbs.js +2 -0
- package/_internal/breadcrumbs.js.map +1 -0
- package/_internal/button-group.js +2 -0
- package/_internal/button-group.js.map +1 -0
- package/_internal/button-link.js +2 -0
- package/_internal/button-link.js.map +1 -0
- package/_internal/button.js +3 -0
- package/_internal/button.js.map +1 -0
- package/_internal/card-actions.js +2 -0
- package/_internal/card-actions.js.map +1 -0
- package/_internal/card-body.js +2 -0
- package/_internal/card-body.js.map +1 -0
- package/_internal/card-header.js +2 -0
- package/_internal/card-header.js.map +1 -0
- package/_internal/card.js +2 -0
- package/_internal/card.js.map +1 -0
- package/_internal/checkbox-group.js +2 -0
- package/_internal/checkbox-group.js.map +1 -0
- package/_internal/checkbox.js +2 -0
- package/_internal/checkbox.js.map +1 -0
- package/_internal/colors.js +98 -0
- package/_internal/colors.js.map +1 -0
- package/_internal/conditional-wrapper.js +2 -0
- package/_internal/conditional-wrapper.js.map +1 -0
- package/_internal/context.js +6 -0
- package/_internal/context.js.map +1 -0
- package/_internal/context2.js +300 -0
- package/_internal/context2.js.map +1 -0
- package/_internal/context3.js +6 -0
- package/_internal/context3.js.map +1 -0
- package/_internal/context4.js +6 -0
- package/_internal/context4.js.map +1 -0
- package/_internal/context5.js +6 -0
- package/_internal/context5.js.map +1 -0
- package/_internal/detailed-card-collapsible-section-items.js +2 -0
- package/_internal/detailed-card-collapsible-section-items.js.map +1 -0
- package/_internal/detailed-card-header.js +2 -0
- package/_internal/detailed-card-header.js.map +1 -0
- package/_internal/detailed-card-section-item.js +2 -0
- package/_internal/detailed-card-section-item.js.map +1 -0
- package/_internal/detailed-card-section.js +2 -0
- package/_internal/detailed-card-section.js.map +1 -0
- package/_internal/detailed-card.js +2 -0
- package/_internal/detailed-card.js.map +1 -0
- package/_internal/filterComponents.js +24 -0
- package/_internal/filterComponents.js.map +1 -0
- package/_internal/flexbox.js +2 -0
- package/_internal/flexbox.js.map +1 -0
- package/_internal/focus-within-group.js +3 -0
- package/_internal/focus-within-group.js.map +1 -0
- package/_internal/fonts.js +10 -0
- package/_internal/fonts.js.map +1 -0
- package/_internal/gradient-border.js +38 -0
- package/_internal/gradient-border.js.map +1 -0
- package/_internal/grid-item.js +2 -0
- package/_internal/grid-item.js.map +1 -0
- package/_internal/grid.js +2 -0
- package/_internal/grid.js.map +1 -0
- package/_internal/heading.js +3 -0
- package/_internal/heading.js.map +1 -0
- package/_internal/icon-button-link.js +2 -0
- package/_internal/icon-button-link.js.map +1 -0
- package/_internal/icon-button.js +3 -0
- package/_internal/icon-button.js.map +1 -0
- package/_internal/icon.js +2 -0
- package/_internal/icon.js.map +1 -0
- package/_internal/isComponent.js +15 -0
- package/_internal/isComponent.js.map +1 -0
- package/_internal/item.js +2 -0
- package/_internal/item.js.map +1 -0
- package/_internal/link-button.js +2 -0
- package/_internal/link-button.js.map +1 -0
- package/_internal/link.js +3 -0
- package/_internal/link.js.map +1 -0
- package/_internal/listbox.js +3 -0
- package/_internal/listbox.js.map +1 -0
- package/_internal/number-field.js +2 -0
- package/_internal/number-field.js.map +1 -0
- package/_internal/number.js +2 -0
- package/_internal/number.js.map +1 -0
- package/_internal/partitionComponents.js +26 -0
- package/_internal/partitionComponents.js.map +1 -0
- package/_internal/pill.js +2 -0
- package/_internal/pill.js.map +1 -0
- package/_internal/progress-bar.js +2 -0
- package/_internal/progress-bar.js.map +1 -0
- package/_internal/radio-group.js +2 -0
- package/_internal/radio-group.js.map +1 -0
- package/_internal/radio.js +2 -0
- package/_internal/radio.js.map +1 -0
- package/_internal/redsift-design-tokens.js +1391 -0
- package/_internal/redsift-design-tokens.js.map +1 -0
- package/_internal/shared.js +2 -0
- package/_internal/shared.js.map +1 -0
- package/_internal/shield.js +2 -0
- package/_internal/shield.js.map +1 -0
- package/_internal/side-navigation-menu-bar.js +3 -0
- package/_internal/side-navigation-menu-bar.js.map +1 -0
- package/_internal/side-navigation-menu-item.js +2 -0
- package/_internal/side-navigation-menu-item.js.map +1 -0
- package/_internal/side-navigation-menu.js +2 -0
- package/_internal/side-navigation-menu.js.map +1 -0
- package/_internal/skeleton-circle.js +2 -0
- package/_internal/skeleton-circle.js.map +1 -0
- package/_internal/skeleton-text.js +3 -0
- package/_internal/skeleton-text.js.map +1 -0
- package/_internal/skeleton.js +2 -0
- package/_internal/skeleton.js.map +1 -0
- package/_internal/spinner.js +2 -0
- package/_internal/spinner.js.map +1 -0
- package/_internal/styles.js +235 -0
- package/_internal/styles.js.map +1 -0
- package/_internal/styles2.js +47 -0
- package/_internal/styles2.js.map +1 -0
- package/_internal/styles3.js +145 -0
- package/_internal/styles3.js.map +1 -0
- package/_internal/styles4.js +250 -0
- package/_internal/styles4.js.map +1 -0
- package/_internal/styles5.js +143 -0
- package/_internal/styles5.js.map +1 -0
- package/_internal/styles6.js +84 -0
- package/_internal/styles6.js.map +1 -0
- package/_internal/switch-group.js +2 -0
- package/_internal/switch-group.js.map +1 -0
- package/_internal/switch.js +2 -0
- package/_internal/switch.js.map +1 -0
- package/_internal/text-area.js +2 -0
- package/_internal/text-area.js.map +1 -0
- package/_internal/text-field.js +2 -0
- package/_internal/text-field.js.map +1 -0
- package/_internal/text.js +3 -0
- package/_internal/text.js.map +1 -0
- package/_internal/theme.js +2 -0
- package/_internal/theme.js.map +1 -0
- package/_internal/types.js +15 -0
- package/_internal/types.js.map +1 -0
- package/_internal/types2.js +26 -0
- package/_internal/types2.js.map +1 -0
- package/_internal/types3.js +20 -0
- package/_internal/types3.js.map +1 -0
- package/_internal/useAppSidePanel.js +337 -0
- package/_internal/useAppSidePanel.js.map +1 -0
- package/_internal/useFocusOnList.js +541 -0
- package/_internal/useFocusOnList.js.map +1 -0
- package/_internal/useFocusOnListItem.js +203 -0
- package/_internal/useFocusOnListItem.js.map +1 -0
- package/_internal/useFocusRing.js +669 -0
- package/_internal/useFocusRing.js.map +1 -0
- package/_internal/useId.js +42 -0
- package/_internal/useId.js.map +1 -0
- package/_internal/useIsLoaded.js +14 -0
- package/_internal/useIsLoaded.js.map +1 -0
- package/_internal/useListboxItem.js +129 -0
- package/_internal/useListboxItem.js.map +1 -0
- package/_internal/useMessageFormatter.js +143 -0
- package/_internal/useMessageFormatter.js.map +1 -0
- package/_internal/useNumberFormatter.js +239 -0
- package/_internal/useNumberFormatter.js.map +1 -0
- package/_internal/useSideNavigationMenuBar.js +373 -0
- package/_internal/useSideNavigationMenuBar.js.map +1 -0
- package/_internal/useTheme.js +15 -0
- package/_internal/useTheme.js.map +1 -0
- package/_internal/warnIfNoAccessibleLabelFound.js +20 -0
- package/_internal/warnIfNoAccessibleLabelFound.js.map +1 -0
- package/index.js +315 -24243
- package/index.js.map +1 -1
- 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
|