@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,304 @@
|
|
|
1
|
+
import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React__default, { forwardRef, useRef, useContext, useState, useEffect } from 'react';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { w as warnIfNoAccessibleLabelFound } from './warnIfNoAccessibleLabelFound.js';
|
|
5
|
+
import styled, { css } from 'styled-components';
|
|
6
|
+
import { a as Icon, I as IconSize } from './Icon2.js';
|
|
7
|
+
import { a as Badge, B as BadgeVariant } from './Badge2.js';
|
|
8
|
+
import { u as useTheme } from './useTheme.js';
|
|
9
|
+
import { F as Flexbox } from './Flexbox2.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Component variant.
|
|
13
|
+
*/
|
|
14
|
+
const SideNavigationMenuBarVariant = {
|
|
15
|
+
shrinked: 'shrinked',
|
|
16
|
+
standard: 'standard'
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Context props.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Component props.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Hook props.
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
const SideNavigationMenuBarContext = /*#__PURE__*/React__default.createContext(null);
|
|
32
|
+
|
|
33
|
+
const SideNavigationMenuContext = /*#__PURE__*/React__default.createContext(null);
|
|
34
|
+
|
|
35
|
+
const StyledSideNavigationMenuItemIndicatorContainer = styled.div`
|
|
36
|
+
min-width: 4px;
|
|
37
|
+
`;
|
|
38
|
+
const StyledSideNavigationMenuItemIndicator = styled.div`
|
|
39
|
+
position: relative;
|
|
40
|
+
width: 4px;
|
|
41
|
+
height: 40px;
|
|
42
|
+
border-radius: 0px 4px 4px 0px;
|
|
43
|
+
background-color: ${_ref => {
|
|
44
|
+
let {
|
|
45
|
+
$theme
|
|
46
|
+
} = _ref;
|
|
47
|
+
return `var(--redsift-color-${$theme}-components-side-navigation-current-marker)`;
|
|
48
|
+
}};
|
|
49
|
+
`;
|
|
50
|
+
const StyledSideNavigationMenuItemBorder = styled.div`
|
|
51
|
+
position: relative;
|
|
52
|
+
width: 100%;
|
|
53
|
+
height: 1px;
|
|
54
|
+
background-color: var(--redsift-color-neutral-light-grey);
|
|
55
|
+
margin-left: 62px;
|
|
56
|
+
margin-top: -1px;
|
|
57
|
+
`;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Component style.
|
|
61
|
+
*/
|
|
62
|
+
const StyledSideNavigationMenuItem = styled.a`
|
|
63
|
+
/**
|
|
64
|
+
* Common style
|
|
65
|
+
*/
|
|
66
|
+
${_ref2 => {
|
|
67
|
+
let {
|
|
68
|
+
$isDisabled,
|
|
69
|
+
$theme,
|
|
70
|
+
$color
|
|
71
|
+
} = _ref2;
|
|
72
|
+
return !$isDisabled ? css`
|
|
73
|
+
& {
|
|
74
|
+
color: ${$color ? $color : `var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-resting)`};
|
|
75
|
+
}
|
|
76
|
+
` : css`
|
|
77
|
+
& {
|
|
78
|
+
color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-disabled);
|
|
79
|
+
}
|
|
80
|
+
`;
|
|
81
|
+
}}
|
|
82
|
+
align-items: center;
|
|
83
|
+
border-radius: 0 4px 4px 0;
|
|
84
|
+
display: flex;
|
|
85
|
+
font-family: var(--redsift-typography-body-font-family);
|
|
86
|
+
font-size: 14px;
|
|
87
|
+
font-weight: var(--redsift-typography-body-font-weight);
|
|
88
|
+
gap: 8px;
|
|
89
|
+
line-height: var(--redsift-typography-body-line-height);
|
|
90
|
+
overflow: hidden;
|
|
91
|
+
text-decoration: none;
|
|
92
|
+
text-transform: uppercase;
|
|
93
|
+
width: 100%;
|
|
94
|
+
|
|
95
|
+
&:hover,
|
|
96
|
+
&:focus-visible {
|
|
97
|
+
outline: none;
|
|
98
|
+
|
|
99
|
+
${_ref3 => {
|
|
100
|
+
let {
|
|
101
|
+
$isDisabled,
|
|
102
|
+
$theme,
|
|
103
|
+
$color
|
|
104
|
+
} = _ref3;
|
|
105
|
+
return !$isDisabled ? css`
|
|
106
|
+
background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-hover);
|
|
107
|
+
& {
|
|
108
|
+
color: ${$color ? $color : `var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-hover)`};
|
|
109
|
+
}
|
|
110
|
+
` : '';
|
|
111
|
+
}}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
:active {
|
|
115
|
+
${_ref4 => {
|
|
116
|
+
let {
|
|
117
|
+
$isDisabled,
|
|
118
|
+
$theme
|
|
119
|
+
} = _ref4;
|
|
120
|
+
return !$isDisabled ? css`
|
|
121
|
+
background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-active);
|
|
122
|
+
` : '';
|
|
123
|
+
}}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
${_ref5 => {
|
|
127
|
+
let {
|
|
128
|
+
$variant
|
|
129
|
+
} = _ref5;
|
|
130
|
+
return css`
|
|
131
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
132
|
+
:focus-visible {
|
|
133
|
+
> span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {
|
|
134
|
+
outline: 2px solid var(--redsift-color-primary-n);
|
|
135
|
+
transition: outline-offset 75ms ease-out;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
:not(:active):focus-visible {
|
|
139
|
+
> span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {
|
|
140
|
+
transition-duration: 0.25s;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
:not(:active):focus-visible {
|
|
146
|
+
> span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {
|
|
147
|
+
outline-offset: 0.25rem;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.content {
|
|
153
|
+
transition: opacity 300ms ease-out;
|
|
154
|
+
opacity: ${$variant === SideNavigationMenuBarVariant.shrinked ? '0' : '1'};
|
|
155
|
+
overflow: hidden;
|
|
156
|
+
white-space: nowrap;
|
|
157
|
+
}
|
|
158
|
+
`;
|
|
159
|
+
}}
|
|
160
|
+
|
|
161
|
+
${_ref6 => {
|
|
162
|
+
let {
|
|
163
|
+
$hasIcon,
|
|
164
|
+
$isSecondLevel,
|
|
165
|
+
$variant,
|
|
166
|
+
$theme
|
|
167
|
+
} = _ref6;
|
|
168
|
+
return !$isSecondLevel ? css`
|
|
169
|
+
/**
|
|
170
|
+
* First-level items
|
|
171
|
+
*/
|
|
172
|
+
|
|
173
|
+
background-color: var(--redsift-color-${$theme}-components-side-navigation-background);
|
|
174
|
+
height: 40px;
|
|
175
|
+
margin-bottom: 4px;
|
|
176
|
+
margin-left: -4px;
|
|
177
|
+
transition: padding 300ms ease-out;
|
|
178
|
+
padding: 0 16px 0 ${$variant === SideNavigationMenuBarVariant.shrinked ? '16px' : '16px'};
|
|
179
|
+
|
|
180
|
+
.redsift-icon.first {
|
|
181
|
+
box-sizing: unset;
|
|
182
|
+
}
|
|
183
|
+
` : `
|
|
184
|
+
/**
|
|
185
|
+
* Second-level items
|
|
186
|
+
*/
|
|
187
|
+
|
|
188
|
+
background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-secondary);
|
|
189
|
+
font-size: var(--redsift-typography-caption-font-size);
|
|
190
|
+
padding-bottom: 4px;
|
|
191
|
+
padding-left: ${$hasIcon ? '18px' : '54px'};
|
|
192
|
+
padding-right: 0;
|
|
193
|
+
padding-top: 4px;
|
|
194
|
+
border-radius: 0;
|
|
195
|
+
|
|
196
|
+
.redsift-icon.first {
|
|
197
|
+
box-sizing: unset;
|
|
198
|
+
margin-right: 8px;
|
|
199
|
+
}
|
|
200
|
+
`;
|
|
201
|
+
}}
|
|
202
|
+
`;
|
|
203
|
+
|
|
204
|
+
const _excluded = ["as", "badge", "badgeProps", "children", "className", "color", "hasBorder", "href", "icon", "iconProps", "iconRef", "isCurrent", "isDisabled", "isSecondLevel", "onClick", "onKeyDown", "tabIndex", "theme"];
|
|
205
|
+
const COMPONENT_NAME = 'SideNavigationMenuItem';
|
|
206
|
+
const CLASSNAME = 'redsift-side-navigation-menu-item';
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* The SideNavigationMenuItem component.
|
|
210
|
+
*/
|
|
211
|
+
const SideNavigationMenuItem = /*#__PURE__*/forwardRef((props, ref) => {
|
|
212
|
+
const menuItemRef = ref || useRef();
|
|
213
|
+
const {
|
|
214
|
+
as,
|
|
215
|
+
badge,
|
|
216
|
+
badgeProps,
|
|
217
|
+
children,
|
|
218
|
+
className,
|
|
219
|
+
color,
|
|
220
|
+
hasBorder,
|
|
221
|
+
href,
|
|
222
|
+
icon,
|
|
223
|
+
iconProps,
|
|
224
|
+
iconRef = useRef(),
|
|
225
|
+
isCurrent,
|
|
226
|
+
isDisabled,
|
|
227
|
+
isSecondLevel,
|
|
228
|
+
onClick,
|
|
229
|
+
onKeyDown,
|
|
230
|
+
tabIndex,
|
|
231
|
+
theme: propsTheme
|
|
232
|
+
} = props,
|
|
233
|
+
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
234
|
+
warnIfNoAccessibleLabelFound(props, [children], 'SideNavigationMenuItem');
|
|
235
|
+
const sideNavigationMenuBarContext = useContext(SideNavigationMenuBarContext);
|
|
236
|
+
const sideNavigationMenuContext = useContext(SideNavigationMenuContext);
|
|
237
|
+
const theme = useTheme(propsTheme);
|
|
238
|
+
const [isFirstChild, setIsFirstChild] = useState(false);
|
|
239
|
+
const {
|
|
240
|
+
menuItems
|
|
241
|
+
} = sideNavigationMenuContext || sideNavigationMenuBarContext || {};
|
|
242
|
+
useEffect(() => {
|
|
243
|
+
if (!(sideNavigationMenuContext || sideNavigationMenuBarContext)) {
|
|
244
|
+
setIsFirstChild(true);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const menuItemNode = menuItemRef.current;
|
|
248
|
+
if (menuItemNode) {
|
|
249
|
+
if (!menuItems.size) {
|
|
250
|
+
setIsFirstChild(true);
|
|
251
|
+
}
|
|
252
|
+
menuItems.add(menuItemNode);
|
|
253
|
+
}
|
|
254
|
+
return () => {
|
|
255
|
+
menuItems.delete(menuItemNode);
|
|
256
|
+
};
|
|
257
|
+
}, [menuItems]);
|
|
258
|
+
const sideNavigationVariant = sideNavigationMenuBarContext === null || sideNavigationMenuBarContext === void 0 ? void 0 : sideNavigationMenuBarContext.sideNavigationMenuBarVariant;
|
|
259
|
+
return /*#__PURE__*/React__default.createElement(Flexbox, {
|
|
260
|
+
flexDirection: "column",
|
|
261
|
+
gap: "0px"
|
|
262
|
+
}, /*#__PURE__*/React__default.createElement(Flexbox, {
|
|
263
|
+
flexDirection: "row",
|
|
264
|
+
gap: "0px"
|
|
265
|
+
}, !isSecondLevel ? /*#__PURE__*/React__default.createElement(StyledSideNavigationMenuItemIndicatorContainer, null, isCurrent ? /*#__PURE__*/React__default.createElement(StyledSideNavigationMenuItemIndicator, {
|
|
266
|
+
$theme: theme
|
|
267
|
+
}) : null) : null, /*#__PURE__*/React__default.createElement(StyledSideNavigationMenuItem, _extends({
|
|
268
|
+
as: as,
|
|
269
|
+
role: "menuitem"
|
|
270
|
+
}, forwardedProps, {
|
|
271
|
+
$color: color,
|
|
272
|
+
$hasIcon: icon !== undefined,
|
|
273
|
+
$isCurrent: isCurrent,
|
|
274
|
+
$isDisabled: isDisabled,
|
|
275
|
+
$isSecondLevel: isSecondLevel,
|
|
276
|
+
$theme: theme,
|
|
277
|
+
$variant: sideNavigationVariant,
|
|
278
|
+
"aria-current": isCurrent ? 'page' : undefined,
|
|
279
|
+
"aria-disabled": isDisabled,
|
|
280
|
+
className: classNames(SideNavigationMenuItem.className, className),
|
|
281
|
+
href: !isDisabled ? href : undefined,
|
|
282
|
+
onClick: isDisabled ? undefined : onClick,
|
|
283
|
+
onKeyDown: isDisabled ? undefined : onKeyDown,
|
|
284
|
+
ref: menuItemRef,
|
|
285
|
+
tabIndex: tabIndex !== undefined ? tabIndex : !sideNavigationMenuContext && isFirstChild ? 0 : -1
|
|
286
|
+
}), !isSecondLevel || icon ? /*#__PURE__*/React__default.createElement(Icon, _extends({
|
|
287
|
+
color: `var(--redsift-side-navigation-color-menu-item-text-${isSecondLevel || isDisabled ? 'disabled' : 'resting'})`
|
|
288
|
+
}, iconProps, {
|
|
289
|
+
icon: icon,
|
|
290
|
+
ref: iconRef,
|
|
291
|
+
className: "first",
|
|
292
|
+
size: isSecondLevel ? IconSize.small : IconSize.medium
|
|
293
|
+
})) : null, /*#__PURE__*/React__default.createElement("span", {
|
|
294
|
+
className: "content"
|
|
295
|
+
}, children), badge ? /*#__PURE__*/React__default.createElement(Badge, _extends({
|
|
296
|
+
variant: BadgeVariant.standard,
|
|
297
|
+
color: "error"
|
|
298
|
+
}, badgeProps), badge) : null)), isSecondLevel && hasBorder ? /*#__PURE__*/React__default.createElement(StyledSideNavigationMenuItemBorder, null) : null);
|
|
299
|
+
});
|
|
300
|
+
SideNavigationMenuItem.className = CLASSNAME;
|
|
301
|
+
SideNavigationMenuItem.displayName = COMPONENT_NAME;
|
|
302
|
+
|
|
303
|
+
export { SideNavigationMenuBarVariant as S, SideNavigationMenuItem as a, SideNavigationMenuBarContext as b, SideNavigationMenuContext as c, StyledSideNavigationMenuItemIndicator as d };
|
|
304
|
+
//# sourceMappingURL=SideNavigationMenuItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavigationMenuItem.js","sources":["../../src/components/side-navigation-menu-bar/types.ts","../../src/components/side-navigation-menu-bar/context.ts","../../src/components/side-navigation-menu/context.ts","../../src/components/side-navigation-menu-item/styles.ts","../../src/components/side-navigation-menu-item/SideNavigationMenuItem.tsx"],"sourcesContent":["import { ComponentProps, Dispatch, MutableRefObject, SetStateAction } from 'react';\nimport { SideNavigationMenuProps } from '../side-navigation-menu';\nimport { SideNavigationMenuItemProps } from '../side-navigation-menu-item';\nimport { Theme, ValueOf } from '@redsift/design-system/types';\n\n/**\n * Component variant.\n */\nexport const SideNavigationMenuBarVariant = {\n shrinked: 'shrinked',\n standard: 'standard',\n} as const;\nexport type SideNavigationMenuBarVariant = ValueOf<typeof SideNavigationMenuBarVariant>;\n\n/**\n * Context props.\n */\nexport type SideNavigationMenuBarContextProps = {\n /** List of menu items. */\n menuItems: Set<HTMLAnchorElement | HTMLButtonElement>;\n /** Side navigation variant. */\n sideNavigationMenuBarVariant: SideNavigationMenuBarVariant;\n /** Change side navigation variant. */\n setSideNavigationMenuBarVariant: Dispatch<SetStateAction<SideNavigationMenuBarVariant>>;\n /** Current open menu, used to close other menu when canHaveMultipleMenuOpenAtOnce is false. */\n currentOpenMenuId?: string;\n /** Change current open menu id. */\n setCurrentOpenMenuId?: Dispatch<SetStateAction<string | undefined>>;\n};\n\n/**\n * Component props.\n */\nexport interface SideNavigationMenuBarProps extends ComponentProps<'nav'> {\n /** Whether or not opening a menu closes the others. */\n canHaveMultipleMenuOpenAtOnce?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Custom props to pass to the menubar. */\n menubarProps?: ComponentProps<'ul'>;\n /** Custom ref to pass to the menubar. */\n menubarRef?: MutableRefObject<HTMLUListElement>;\n /** Theme. */\n theme?: Theme;\n /** Variant. */\n variant?: SideNavigationMenuBarVariant;\n}\n\nexport type StyledSideNavigationMenuBarProps = Omit<SideNavigationMenuBarProps, 'isDisabled'> & {\n $isDisabled: SideNavigationMenuBarProps['isDisabled'];\n $marginTop?: number;\n $variant: SideNavigationMenuBarProps['variant'];\n $theme: SideNavigationMenuBarProps['theme'];\n};\n\n/**\n * Hook props.\n */\nexport interface MenuItem extends Omit<SideNavigationMenuItemProps, 'children'> {\n title: string;\n}\nexport interface Menu extends Omit<SideNavigationMenuProps, 'children'> {\n title: string;\n children: MenuItem[];\n}\nexport type MenuBarItems = (Menu | MenuItem)[];\n","import React from 'react';\nimport { SideNavigationMenuBarContextProps } from './types';\n\nexport const SideNavigationMenuBarContext =\n React.createContext<SideNavigationMenuBarContextProps>(null!);\n","import React from 'react';\nimport { SideNavigationMenuContextProps } from './types';\n\nexport const SideNavigationMenuContext =\n React.createContext<SideNavigationMenuContextProps>(null!);\n","import styled, { css } from 'styled-components';\nimport { StyledSideNavigationMenuItemProps } from './types';\nimport { SideNavigationMenuBarVariant } from '../side-navigation-menu-bar';\nimport { Theme } from '../../types';\n\nexport const StyledSideNavigationMenuItemIndicatorContainer = styled.div`\n min-width: 4px;\n`;\n\nexport const StyledSideNavigationMenuItemIndicator = styled.div<{ $theme: Theme }>`\n position: relative;\n width: 4px;\n height: 40px;\n border-radius: 0px 4px 4px 0px;\n background-color: ${({ $theme }) => `var(--redsift-color-${$theme}-components-side-navigation-current-marker)`};\n`;\n\nexport const StyledSideNavigationMenuItemBorder = styled.div`\n position: relative;\n width: 100%;\n height: 1px;\n background-color: var(--redsift-color-neutral-light-grey);\n margin-left: 62px;\n margin-top: -1px;\n`;\n\n/**\n * Component style.\n */\nexport const StyledSideNavigationMenuItem = styled.a<StyledSideNavigationMenuItemProps>`\n /**\n * Common style\n */\n ${({ $isDisabled, $theme, $color }) =>\n !$isDisabled\n ? css`\n & {\n color: ${$color\n ? $color\n : `var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-resting)`};\n }\n `\n : css`\n & {\n color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-disabled);\n }\n `}\n align-items: center;\n border-radius: 0 4px 4px 0;\n display: flex;\n font-family: var(--redsift-typography-body-font-family);\n font-size: 14px;\n font-weight: var(--redsift-typography-body-font-weight);\n gap: 8px;\n line-height: var(--redsift-typography-body-line-height);\n overflow: hidden;\n text-decoration: none;\n text-transform: uppercase;\n width: 100%;\n\n &:hover,\n &:focus-visible {\n outline: none;\n\n ${({ $isDisabled, $theme, $color }) =>\n !$isDisabled\n ? css`\n background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-hover);\n & {\n color: ${$color\n ? $color\n : `var(--redsift-color-${$theme}-components-side-navigation-menu-item-text-hover)`};\n }\n `\n : ''}\n }\n\n :active {\n ${({ $isDisabled, $theme }) =>\n !$isDisabled\n ? css`\n background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-active);\n `\n : ''}\n }\n\n ${({ $variant }) => css`\n @media (prefers-reduced-motion: no-preference) {\n :focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n outline: 2px solid var(--redsift-color-primary-n);\n transition: outline-offset 75ms ease-out;\n }\n\n :not(:active):focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n transition-duration: 0.25s;\n }\n }\n }\n\n :not(:active):focus-visible {\n > span${$variant === SideNavigationMenuBarVariant.shrinked ? '.first' : '.content'} {\n outline-offset: 0.25rem;\n }\n }\n }\n\n .content {\n transition: opacity 300ms ease-out;\n opacity: ${$variant === SideNavigationMenuBarVariant.shrinked ? '0' : '1'};\n overflow: hidden;\n white-space: nowrap;\n }\n `}\n\n ${({ $hasIcon, $isSecondLevel, $variant, $theme }) =>\n !$isSecondLevel\n ? css`\n /**\n * First-level items\n */\n\n background-color: var(--redsift-color-${$theme}-components-side-navigation-background);\n height: 40px;\n margin-bottom: 4px;\n margin-left: -4px;\n transition: padding 300ms ease-out;\n padding: 0 16px 0 ${$variant === SideNavigationMenuBarVariant.shrinked ? '16px' : '16px'};\n\n .redsift-icon.first {\n box-sizing: unset;\n }\n `\n : `\n /**\n * Second-level items\n */\n\n background-color: var(--redsift-color-${$theme}-components-side-navigation-menu-item-background-secondary);\n font-size: var(--redsift-typography-caption-font-size);\n padding-bottom: 4px;\n padding-left: ${$hasIcon ? '18px' : '54px'};\n padding-right: 0;\n padding-top: 4px;\n border-radius: 0;\n\n .redsift-icon.first {\n box-sizing: unset;\n margin-right: 8px;\n }\n `}\n`;\n","import React, { forwardRef, MutableRefObject, useContext, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { Comp } from '../../types';\nimport { Icon, IconSize } from '../icon';\nimport { warnIfNoAccessibleLabelFound } from '../../utils/warnIfNoAccessibleLabelFound';\nimport { SideNavigationMenuBarContext } from '../side-navigation-menu-bar/context';\nimport { SideNavigationMenuContext } from '../side-navigation-menu/context';\nimport {\n StyledSideNavigationMenuItem,\n StyledSideNavigationMenuItemBorder,\n StyledSideNavigationMenuItemIndicator,\n StyledSideNavigationMenuItemIndicatorContainer,\n} from './styles';\nimport { SideNavigationMenuItemProps } from './types';\nimport { Badge, BadgeVariant } from '../badge';\nimport { Flexbox } from '../flexbox';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'SideNavigationMenuItem';\nconst CLASSNAME = 'redsift-side-navigation-menu-item';\n\n/**\n * The SideNavigationMenuItem component.\n */\nexport const SideNavigationMenuItem: Comp<SideNavigationMenuItemProps, HTMLAnchorElement> = forwardRef((props, ref) => {\n const menuItemRef = ref || useRef<HTMLAnchorElement>();\n\n const {\n as,\n badge,\n badgeProps,\n children,\n className,\n color,\n hasBorder,\n href,\n icon,\n iconProps,\n iconRef = useRef<HTMLElement>(),\n isCurrent,\n isDisabled,\n isSecondLevel,\n onClick,\n onKeyDown,\n tabIndex,\n theme: propsTheme,\n ...forwardedProps\n } = props;\n\n warnIfNoAccessibleLabelFound(props, [children], 'SideNavigationMenuItem');\n\n const sideNavigationMenuBarContext = useContext(SideNavigationMenuBarContext);\n const sideNavigationMenuContext = useContext(SideNavigationMenuContext);\n const theme = useTheme(propsTheme);\n\n const [isFirstChild, setIsFirstChild] = useState(false);\n const { menuItems } = sideNavigationMenuContext || sideNavigationMenuBarContext || {};\n\n useEffect(() => {\n if (!(sideNavigationMenuContext || sideNavigationMenuBarContext)) {\n setIsFirstChild(true);\n return;\n }\n\n const menuItemNode = (menuItemRef as MutableRefObject<HTMLAnchorElement>).current;\n\n if (menuItemNode) {\n if (!menuItems.size) {\n setIsFirstChild(true);\n }\n\n menuItems.add(menuItemNode);\n }\n\n return () => {\n menuItems.delete(menuItemNode);\n };\n }, [menuItems]);\n\n const sideNavigationVariant = sideNavigationMenuBarContext?.sideNavigationMenuBarVariant;\n\n return (\n <Flexbox flexDirection=\"column\" gap=\"0px\">\n <Flexbox flexDirection=\"row\" gap=\"0px\">\n {!isSecondLevel ? (\n <StyledSideNavigationMenuItemIndicatorContainer>\n {isCurrent ? <StyledSideNavigationMenuItemIndicator $theme={theme} /> : null}\n </StyledSideNavigationMenuItemIndicatorContainer>\n ) : null}\n <StyledSideNavigationMenuItem\n as={as as any}\n role=\"menuitem\"\n {...forwardedProps}\n $color={color}\n $hasIcon={icon !== undefined}\n $isCurrent={isCurrent}\n $isDisabled={isDisabled}\n $isSecondLevel={isSecondLevel}\n $theme={theme}\n $variant={sideNavigationVariant}\n aria-current={isCurrent ? 'page' : undefined}\n aria-disabled={isDisabled}\n className={classNames(SideNavigationMenuItem.className, className)}\n href={!isDisabled ? href : undefined}\n onClick={isDisabled ? undefined : onClick}\n onKeyDown={isDisabled ? undefined : onKeyDown}\n ref={menuItemRef as MutableRefObject<HTMLAnchorElement>}\n tabIndex={tabIndex !== undefined ? tabIndex : !sideNavigationMenuContext && isFirstChild ? 0 : -1}\n >\n {!isSecondLevel || icon ? (\n <Icon\n color={`var(--redsift-side-navigation-color-menu-item-text-${\n isSecondLevel || isDisabled ? 'disabled' : 'resting'\n })`}\n {...iconProps}\n icon={icon!}\n ref={iconRef as MutableRefObject<HTMLElement>}\n className=\"first\"\n size={isSecondLevel ? IconSize.small : IconSize.medium}\n />\n ) : null}\n <span className=\"content\">{children}</span>\n {badge ? (\n <Badge variant={BadgeVariant.standard} color=\"error\" {...badgeProps}>\n {badge}\n </Badge>\n ) : null}\n </StyledSideNavigationMenuItem>\n </Flexbox>\n {isSecondLevel && hasBorder ? <StyledSideNavigationMenuItemBorder /> : null}\n </Flexbox>\n );\n});\nSideNavigationMenuItem.className = CLASSNAME;\nSideNavigationMenuItem.displayName = COMPONENT_NAME;\n"],"names":["SideNavigationMenuBarVariant","shrinked","standard","SideNavigationMenuBarContext","React","createContext","SideNavigationMenuContext","StyledSideNavigationMenuItemIndicatorContainer","styled","div","StyledSideNavigationMenuItemIndicator","_ref","$theme","StyledSideNavigationMenuItemBorder","StyledSideNavigationMenuItem","a","_ref2","$isDisabled","$color","css","_ref3","_ref4","_ref5","$variant","_ref6","$hasIcon","$isSecondLevel","COMPONENT_NAME","CLASSNAME","SideNavigationMenuItem","forwardRef","props","ref","menuItemRef","useRef","as","badge","badgeProps","children","className","color","hasBorder","href","icon","iconProps","iconRef","isCurrent","isDisabled","isSecondLevel","onClick","onKeyDown","tabIndex","theme","propsTheme","forwardedProps","_objectWithoutProperties","_excluded","warnIfNoAccessibleLabelFound","sideNavigationMenuBarContext","useContext","sideNavigationMenuContext","useTheme","isFirstChild","setIsFirstChild","useState","menuItems","useEffect","menuItemNode","current","size","add","delete","sideNavigationVariant","sideNavigationMenuBarVariant","createElement","Flexbox","flexDirection","gap","_extends","role","undefined","$isCurrent","classNames","Icon","IconSize","small","medium","Badge","variant","BadgeVariant","displayName"],"mappings":";;;;;;;;;;AAKA;AACA;AACA;AACO,MAAMA,4BAA4B,GAAG;AAC1CC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,QAAQ,EAAE,UAAA;AACZ,EAAU;;AAGV;AACA;AACA;;AAcA;AACA;AACA;;AAuBA;AACA;AACA;;ACtDO,MAAMC,4BAA4B,gBACvCC,cAAK,CAACC,aAAa,CAAoC,IAAK;;ACDvD,MAAMC,yBAAyB,gBACpCF,cAAK,CAACC,aAAa,CAAiC,IAAK;;ACCpD,MAAME,8CAA8C,GAAGC,MAAM,CAACC,GAAI,CAAA;AACzE;AACA,CAAC,CAAA;AAEYC,MAAAA,qCAAqC,GAAGF,MAAM,CAACC,GAAuB,CAAA;AACnF;AACA;AACA;AACA;AACA,oBAAA,EAAsBE,IAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,MAAAA;AAAO,GAAC,GAAAD,IAAA,CAAA;EAAA,OAAM,CAAA,oBAAA,EAAsBC,MAAO,CAA4C,2CAAA,CAAA,CAAA;AAAA,CAAC,CAAA;AACjH,EAAC;AAEM,MAAMC,kCAAkC,GAAGL,MAAM,CAACC,GAAI,CAAA;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAA;;AAED;AACA;AACA;AACO,MAAMK,4BAA4B,GAAGN,MAAM,CAACO,CAAqC,CAAA;AACxF;AACA;AACA;AACA,EAAA,EAAIC,KAAA,IAAA;EAAA,IAAC;IAAEC,WAAW;IAAEL,MAAM;AAAEM,IAAAA,MAAAA;AAAO,GAAC,GAAAF,KAAA,CAAA;EAAA,OAChC,CAACC,WAAW,GACRE,GAAI,CAAA;AACZ;AACA,mBAAA,EAAqBD,MAAM,GACXA,MAAM,GACL,CAAA,oBAAA,EAAsBN,MAAO,CAAqD,mDAAA,CAAA,CAAA;AACnG;AACA,QAAA,CAAS,GACDO,GAAI,CAAA;AACZ;AACA,uCAAA,EAAyCP,MAAO,CAAA;AAChD;AACA,QAAS,CAAA,CAAA;AAAA,CAAC,CAAA;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAA,EAAMQ,KAAA,IAAA;EAAA,IAAC;IAAEH,WAAW;IAAEL,MAAM;AAAEM,IAAAA,MAAAA;AAAO,GAAC,GAAAE,KAAA,CAAA;EAAA,OAChC,CAACH,WAAW,GACRE,GAAI,CAAA;AACd,kDAAA,EAAoDP,MAAO,CAAA;AAC3D;AACA,qBAAA,EAAuBM,MAAM,GACXA,MAAM,GACL,CAAA,oBAAA,EAAsBN,MAAO,CAAmD,iDAAA,CAAA,CAAA;AACnG;AACA,UAAA,CAAW,GACD,EAAE,CAAA;AAAA,CAAC,CAAA;AACb;AACA;AACA;AACA,IAAA,EAAMS,KAAA,IAAA;EAAA,IAAC;IAAEJ,WAAW;AAAEL,IAAAA,MAAAA;AAAO,GAAC,GAAAS,KAAA,CAAA;EAAA,OACxB,CAACJ,WAAW,GACRE,GAAI,CAAA;AACd,kDAAA,EAAoDP,MAAO,CAAA;AAC3D,UAAA,CAAW,GACD,EAAE,CAAA;AAAA,CAAC,CAAA;AACb;AACA;AACA,EAAA,EAAIU,KAAA,IAAA;EAAA,IAAC;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAAD,KAAA,CAAA;AAAA,EAAA,OAAKH,GAAI,CAAA;AAC1B;AACA;AACA,cAAgBI,EAAAA,QAAQ,KAAKvB,4BAA4B,CAACC,QAAQ,GAAG,QAAQ,GAAG,UAAW,CAAA;AAC3F;AACA;AACA;AACA;AACA;AACA,gBAAkBsB,EAAAA,QAAQ,KAAKvB,4BAA4B,CAACC,QAAQ,GAAG,QAAQ,GAAG,UAAW,CAAA;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,cAAgBsB,EAAAA,QAAQ,KAAKvB,4BAA4B,CAACC,QAAQ,GAAG,QAAQ,GAAG,UAAW,CAAA;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAiBsB,EAAAA,QAAQ,KAAKvB,4BAA4B,CAACC,QAAQ,GAAG,GAAG,GAAG,GAAI,CAAA;AAChF;AACA;AACA;AACA,EAAG,CAAA,CAAA;AAAA,CAAC,CAAA;AACJ;AACA,EAAA,EAAIuB,KAAA,IAAA;EAAA,IAAC;IAAEC,QAAQ;IAAEC,cAAc;IAAEH,QAAQ;AAAEX,IAAAA,MAAAA;AAAO,GAAC,GAAAY,KAAA,CAAA;EAAA,OAC/C,CAACE,cAAc,GACXP,GAAI,CAAA;AACZ;AACA;AACA;AACA;AACA,gDAAA,EAAkDP,MAAO,CAAA;AACzD;AACA;AACA;AACA;AACA,4BAA8BW,EAAAA,QAAQ,KAAKvB,4BAA4B,CAACC,QAAQ,GAAG,MAAM,GAAG,MAAO,CAAA;AACnG;AACA;AACA;AACA;AACA,QAAA,CAAS,GACA,CAAA;AACT;AACA;AACA;AACA;AACA,0CAAA,EAA4CW,MAAO,CAAA;AACnD;AACA;AACA,kBAAA,EAAoBa,QAAQ,GAAG,MAAM,GAAG,MAAO,CAAA;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAG,CAAA,CAAA;AAAA,CAAC,CAAA;AACJ,CAAC;;;ACtID,MAAME,cAAc,GAAG,wBAAwB,CAAA;AAC/C,MAAMC,SAAS,GAAG,mCAAmC,CAAA;;AAErD;AACA;AACA;AACO,MAAMC,sBAA4E,gBAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;AACrH,EAAA,MAAMC,WAAW,GAAGD,GAAG,IAAIE,MAAM,EAAqB,CAAA;EAEtD,MAAM;MACJC,EAAE;MACFC,KAAK;MACLC,UAAU;MACVC,QAAQ;MACRC,SAAS;MACTC,KAAK;MACLC,SAAS;MACTC,IAAI;MACJC,IAAI;MACJC,SAAS;MACTC,OAAO,GAAGX,MAAM,EAAe;MAC/BY,SAAS;MACTC,UAAU;MACVC,aAAa;MACbC,OAAO;MACPC,SAAS;MACTC,QAAQ;AACRC,MAAAA,KAAK,EAAEC,UAAAA;AAET,KAAC,GAAGtB,KAAK;AADJuB,IAAAA,cAAc,GAAAC,wBAAA,CACfxB,KAAK,EAAAyB,SAAA,CAAA,CAAA;EAETC,4BAA4B,CAAC1B,KAAK,EAAE,CAACO,QAAQ,CAAC,EAAE,wBAAwB,CAAC,CAAA;AAEzE,EAAA,MAAMoB,4BAA4B,GAAGC,UAAU,CAACxD,4BAA4B,CAAC,CAAA;AAC7E,EAAA,MAAMyD,yBAAyB,GAAGD,UAAU,CAACrD,yBAAyB,CAAC,CAAA;AACvE,EAAA,MAAM8C,KAAK,GAAGS,QAAQ,CAACR,UAAU,CAAC,CAAA;EAElC,MAAM,CAACS,YAAY,EAAEC,eAAe,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EACvD,MAAM;AAAEC,IAAAA,SAAAA;AAAU,GAAC,GAAGL,yBAAyB,IAAIF,4BAA4B,IAAI,EAAE,CAAA;AAErFQ,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAI,EAAEN,yBAAyB,IAAIF,4BAA4B,CAAC,EAAE;MAChEK,eAAe,CAAC,IAAI,CAAC,CAAA;AACrB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMI,YAAY,GAAIlC,WAAW,CAAyCmC,OAAO,CAAA;AAEjF,IAAA,IAAID,YAAY,EAAE;AAChB,MAAA,IAAI,CAACF,SAAS,CAACI,IAAI,EAAE;QACnBN,eAAe,CAAC,IAAI,CAAC,CAAA;AACvB,OAAA;AAEAE,MAAAA,SAAS,CAACK,GAAG,CAACH,YAAY,CAAC,CAAA;AAC7B,KAAA;AAEA,IAAA,OAAO,MAAM;AACXF,MAAAA,SAAS,CAACM,MAAM,CAACJ,YAAY,CAAC,CAAA;KAC/B,CAAA;AACH,GAAC,EAAE,CAACF,SAAS,CAAC,CAAC,CAAA;EAEf,MAAMO,qBAAqB,GAAGd,4BAA4B,KAAA,IAAA,IAA5BA,4BAA4B,KAA5BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,4BAA4B,CAAEe,4BAA4B,CAAA;AAExF,EAAA,oBACErE,cAAA,CAAAsE,aAAA,CAACC,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAC,QAAQ;AAACC,IAAAA,GAAG,EAAC,KAAA;AAAK,GAAA,eACvCzE,cAAA,CAAAsE,aAAA,CAACC,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAC,KAAK;AAACC,IAAAA,GAAG,EAAC,KAAA;AAAK,GAAA,EACnC,CAAC7B,aAAa,gBACb5C,cAAA,CAAAsE,aAAA,CAACnE,8CAA8C,EAAA,IAAA,EAC5CuC,SAAS,gBAAG1C,cAAA,CAAAsE,aAAA,CAAChE,qCAAqC,EAAA;AAACE,IAAAA,MAAM,EAAEwC,KAAAA;AAAM,GAAE,CAAC,GAAG,IAC1B,CAAC,GAC/C,IAAI,eACRhD,cAAA,CAAAsE,aAAA,CAAC5D,4BAA4B,EAAAgE,QAAA,CAAA;AAC3B3C,IAAAA,EAAE,EAAEA,EAAU;AACd4C,IAAAA,IAAI,EAAC,UAAA;AAAU,GAAA,EACXzB,cAAc,EAAA;AAClBpC,IAAAA,MAAM,EAAEsB,KAAM;IACdf,QAAQ,EAAEkB,IAAI,KAAKqC,SAAU;AAC7BC,IAAAA,UAAU,EAAEnC,SAAU;AACtB7B,IAAAA,WAAW,EAAE8B,UAAW;AACxBrB,IAAAA,cAAc,EAAEsB,aAAc;AAC9BpC,IAAAA,MAAM,EAAEwC,KAAM;AACd7B,IAAAA,QAAQ,EAAEiD,qBAAsB;AAChC,IAAA,cAAA,EAAc1B,SAAS,GAAG,MAAM,GAAGkC,SAAU;AAC7C,IAAA,eAAA,EAAejC,UAAW;IAC1BR,SAAS,EAAE2C,UAAU,CAACrD,sBAAsB,CAACU,SAAS,EAAEA,SAAS,CAAE;AACnEG,IAAAA,IAAI,EAAE,CAACK,UAAU,GAAGL,IAAI,GAAGsC,SAAU;AACrC/B,IAAAA,OAAO,EAAEF,UAAU,GAAGiC,SAAS,GAAG/B,OAAQ;AAC1CC,IAAAA,SAAS,EAAEH,UAAU,GAAGiC,SAAS,GAAG9B,SAAU;AAC9ClB,IAAAA,GAAG,EAAEC,WAAmD;AACxDkB,IAAAA,QAAQ,EAAEA,QAAQ,KAAK6B,SAAS,GAAG7B,QAAQ,GAAG,CAACS,yBAAyB,IAAIE,YAAY,GAAG,CAAC,GAAG,CAAC,CAAA;GAE/F,CAAA,EAAA,CAACd,aAAa,IAAIL,IAAI,gBACrBvC,cAAA,CAAAsE,aAAA,CAACS,IAAI,EAAAL,QAAA,CAAA;IACHtC,KAAK,EAAG,sDACNQ,aAAa,IAAID,UAAU,GAAG,UAAU,GAAG,SAC5C,CAAA,CAAA,CAAA;AAAG,GAAA,EACAH,SAAS,EAAA;AACbD,IAAAA,IAAI,EAAEA,IAAM;AACZX,IAAAA,GAAG,EAAEa,OAAyC;AAC9CN,IAAAA,SAAS,EAAC,OAAO;IACjB8B,IAAI,EAAErB,aAAa,GAAGoC,QAAQ,CAACC,KAAK,GAAGD,QAAQ,CAACE,MAAAA;AAAO,GAAA,CACxD,CAAC,GACA,IAAI,eACRlF,cAAA,CAAAsE,aAAA,CAAA,MAAA,EAAA;AAAMnC,IAAAA,SAAS,EAAC,SAAA;GAAWD,EAAAA,QAAe,CAAC,EAC1CF,KAAK,gBACJhC,cAAA,CAAAsE,aAAA,CAACa,KAAK,EAAAT,QAAA,CAAA;IAACU,OAAO,EAAEC,YAAY,CAACvF,QAAS;AAACsC,IAAAA,KAAK,EAAC,OAAA;GAAYH,EAAAA,UAAU,GAChED,KACI,CAAC,GACN,IACwB,CACvB,CAAC,EACTY,aAAa,IAAIP,SAAS,gBAAGrC,cAAA,CAAAsE,aAAA,CAAC7D,kCAAkC,EAAE,IAAA,CAAC,GAAG,IAChE,CAAC,CAAA;AAEd,CAAC,EAAC;AACFgB,sBAAsB,CAACU,SAAS,GAAGX,SAAS,CAAA;AAC5CC,sBAAsB,CAAC6D,WAAW,GAAG/D,cAAc;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React__default, { forwardRef } from 'react';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { S as StyledSkeleton } from './styles6.js';
|
|
5
|
+
import { S as SkeletonCircle } from './SkeletonCircle.js';
|
|
6
|
+
import { S as SkeletonText } from './SkeletonText.js';
|
|
7
|
+
import { u as useTheme } from './useTheme.js';
|
|
8
|
+
|
|
9
|
+
const _excluded = ["children", "className", "isLoaded", "theme"];
|
|
10
|
+
const COMPONENT_NAME = 'Skeleton';
|
|
11
|
+
const CLASSNAME = 'redsift-skeleton';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The Skeleton component.
|
|
15
|
+
*/
|
|
16
|
+
const BaseSkeleton = /*#__PURE__*/forwardRef((props, ref) => {
|
|
17
|
+
const {
|
|
18
|
+
children,
|
|
19
|
+
className,
|
|
20
|
+
isLoaded,
|
|
21
|
+
theme: propsTheme
|
|
22
|
+
} = props,
|
|
23
|
+
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
24
|
+
const theme = useTheme(propsTheme);
|
|
25
|
+
if (isLoaded) {
|
|
26
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children);
|
|
27
|
+
}
|
|
28
|
+
return /*#__PURE__*/React__default.createElement(StyledSkeleton, _extends({}, forwardedProps, {
|
|
29
|
+
$theme: theme,
|
|
30
|
+
className: classNames(BaseSkeleton.className, className),
|
|
31
|
+
ref: ref
|
|
32
|
+
}), typeof children === 'string' ? /*#__PURE__*/React__default.createElement("span", null, children) : children);
|
|
33
|
+
});
|
|
34
|
+
BaseSkeleton.className = CLASSNAME;
|
|
35
|
+
BaseSkeleton.displayName = COMPONENT_NAME;
|
|
36
|
+
const Skeleton = Object.assign(BaseSkeleton, {
|
|
37
|
+
Circle: SkeletonCircle,
|
|
38
|
+
Text: SkeletonText
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
export { BaseSkeleton as B, Skeleton as S };
|
|
42
|
+
//# sourceMappingURL=Skeleton2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Skeleton2.js","sources":["../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { StyledSkeleton } from './styles';\nimport { SkeletonProps } from './types';\nimport { SkeletonCircle } from '../skeleton-circle';\nimport { SkeletonText } from '../skeleton-text';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'Skeleton';\nconst CLASSNAME = 'redsift-skeleton';\n\n/**\n * The Skeleton component.\n */\nexport const BaseSkeleton: Comp<SkeletonProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, isLoaded, theme: propsTheme, ...forwardedProps } = props;\n\n const theme = useTheme(propsTheme);\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeleton\n {...forwardedProps}\n $theme={theme}\n className={classNames(BaseSkeleton.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeleton>\n );\n});\nBaseSkeleton.className = CLASSNAME;\nBaseSkeleton.displayName = COMPONENT_NAME;\n\nexport const Skeleton = Object.assign(BaseSkeleton, {\n Circle: SkeletonCircle,\n Text: SkeletonText,\n});\n"],"names":["COMPONENT_NAME","CLASSNAME","BaseSkeleton","forwardRef","props","ref","children","className","isLoaded","theme","propsTheme","forwardedProps","_objectWithoutProperties","_excluded","useTheme","React","createElement","Fragment","StyledSkeleton","_extends","$theme","classNames","displayName","Skeleton","Object","assign","Circle","SkeletonCircle","Text","SkeletonText"],"mappings":";;;;;;;;;AAUA,MAAMA,cAAc,GAAG,UAAU,CAAA;AACjC,MAAMC,SAAS,GAAG,kBAAkB,CAAA;;AAEpC;AACA;AACA;AACO,MAAMC,YAAiD,gBAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC1F,MAAM;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,QAAQ;AAAEC,MAAAA,KAAK,EAAEC,UAAAA;AAA8B,KAAC,GAAGN,KAAK;AAAxBO,IAAAA,cAAc,GAAAC,wBAAA,CAAKR,KAAK,EAAAS,SAAA,CAAA,CAAA;AAErF,EAAA,MAAMJ,KAAK,GAAGK,QAAQ,CAACJ,UAAU,CAAC,CAAA;AAElC,EAAA,IAAIF,QAAQ,EAAE;IACZ,oBAAOO,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAGX,IAAAA,EAAAA,QAAW,CAAC,CAAA;AACxB,GAAA;EAEA,oBACES,cAAA,CAAAC,aAAA,CAACE,cAAc,EAAAC,QAAA,KACTR,cAAc,EAAA;AAClBS,IAAAA,MAAM,EAAEX,KAAM;IACdF,SAAS,EAAEc,UAAU,CAACnB,YAAY,CAACK,SAAS,EAAEA,SAAS,CAAE;AACzDF,IAAAA,GAAG,EAAEA,GAAAA;AAAiC,GAAA,CAAA,EAErC,OAAOC,QAAQ,KAAK,QAAQ,gBAAGS,cAAA,CAAAC,aAAA,CAAOV,MAAAA,EAAAA,IAAAA,EAAAA,QAAe,CAAC,GAAGA,QAC5C,CAAC,CAAA;AAErB,CAAC,EAAC;AACFJ,YAAY,CAACK,SAAS,GAAGN,SAAS,CAAA;AAClCC,YAAY,CAACoB,WAAW,GAAGtB,cAAc,CAAA;AAElC,MAAMuB,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAACvB,YAAY,EAAE;AAClDwB,EAAAA,MAAM,EAAEC,cAAc;AACtBC,EAAAA,IAAI,EAAEC,YAAAA;AACR,CAAC;;;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React__default, { forwardRef } from 'react';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import styled, { css } from 'styled-components';
|
|
5
|
+
import { S as StyledSkeleton } from './styles6.js';
|
|
6
|
+
import { u as useTheme } from './useTheme.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Component style.
|
|
10
|
+
*/
|
|
11
|
+
const StyledSkeletonCircle = styled(StyledSkeleton)`
|
|
12
|
+
border-radius: 50%;
|
|
13
|
+
|
|
14
|
+
${_ref => {
|
|
15
|
+
let {
|
|
16
|
+
height,
|
|
17
|
+
width
|
|
18
|
+
} = _ref;
|
|
19
|
+
return css`
|
|
20
|
+
&,
|
|
21
|
+
&::after {
|
|
22
|
+
${height ? `height: ${height};` : width ? `height: ${width};` : ''}
|
|
23
|
+
${width ? `width: ${width};` : height ? `width: ${height};` : ''}
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
}}
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
const _excluded = ["children", "className", "isLoaded", "theme"];
|
|
30
|
+
const COMPONENT_NAME = 'SkeletonCircle';
|
|
31
|
+
const CLASSNAME = 'redsift-skeleton-circle';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The SkeletonCircle component.
|
|
35
|
+
*/
|
|
36
|
+
const SkeletonCircle = /*#__PURE__*/forwardRef((props, ref) => {
|
|
37
|
+
const {
|
|
38
|
+
children,
|
|
39
|
+
className,
|
|
40
|
+
isLoaded,
|
|
41
|
+
theme: propsTheme
|
|
42
|
+
} = props,
|
|
43
|
+
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
44
|
+
const theme = useTheme(propsTheme);
|
|
45
|
+
if (isLoaded) {
|
|
46
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children);
|
|
47
|
+
}
|
|
48
|
+
return /*#__PURE__*/React__default.createElement(StyledSkeletonCircle, _extends({}, forwardedProps, {
|
|
49
|
+
$theme: theme,
|
|
50
|
+
className: classNames(SkeletonCircle.className, className),
|
|
51
|
+
ref: ref
|
|
52
|
+
}), typeof children === 'string' ? /*#__PURE__*/React__default.createElement("span", null, children) : children);
|
|
53
|
+
});
|
|
54
|
+
SkeletonCircle.className = CLASSNAME;
|
|
55
|
+
SkeletonCircle.displayName = COMPONENT_NAME;
|
|
56
|
+
|
|
57
|
+
export { SkeletonCircle as S };
|
|
58
|
+
//# sourceMappingURL=SkeletonCircle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkeletonCircle.js","sources":["../../src/components/skeleton-circle/styles.ts","../../src/components/skeleton-circle/SkeletonCircle.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { StyledSkeleton } from '../skeleton/styles';\nimport { StyledSkeletonCircleProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSkeletonCircle = styled(\n StyledSkeleton\n)<StyledSkeletonCircleProps>`\n border-radius: 50%;\n\n ${({ height, width }) => css`\n &,\n &::after {\n ${height ? `height: ${height};` : width ? `height: ${width};` : ''}\n ${width ? `width: ${width};` : height ? `width: ${height};` : ''}\n }\n `}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { StyledSkeletonCircle } from './styles';\nimport { SkeletonCircleProps } from './types';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'SkeletonCircle';\nconst CLASSNAME = 'redsift-skeleton-circle';\n\n/**\n * The SkeletonCircle component.\n */\nexport const SkeletonCircle: Comp<SkeletonCircleProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, isLoaded, theme: propsTheme, ...forwardedProps } = props;\n\n const theme = useTheme(propsTheme);\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeletonCircle\n {...forwardedProps}\n $theme={theme}\n className={classNames(SkeletonCircle.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeletonCircle>\n );\n});\nSkeletonCircle.className = CLASSNAME;\nSkeletonCircle.displayName = COMPONENT_NAME;\n"],"names":["StyledSkeletonCircle","styled","StyledSkeleton","_ref","height","width","css","COMPONENT_NAME","CLASSNAME","SkeletonCircle","forwardRef","props","ref","children","className","isLoaded","theme","propsTheme","forwardedProps","_objectWithoutProperties","_excluded","useTheme","React","createElement","Fragment","_extends","$theme","classNames","displayName"],"mappings":";;;;;;;AAIA;AACA;AACA;AACO,MAAMA,oBAAoB,GAAGC,MAAM,CACxCC,cACF,CAA6B,CAAA;AAC7B;AACA;AACA,EAAA,EAAIC,IAAA,IAAA;EAAA,IAAC;IAAEC,MAAM;AAAEC,IAAAA,KAAAA;AAAM,GAAC,GAAAF,IAAA,CAAA;AAAA,EAAA,OAAKG,GAAI,CAAA;AAC/B;AACA;AACA,MAAA,EAAQF,MAAM,GAAI,CAAUA,QAAAA,EAAAA,MAAO,CAAE,CAAA,CAAA,GAAGC,KAAK,GAAI,CAAUA,QAAAA,EAAAA,KAAM,CAAE,CAAA,CAAA,GAAG,EAAG,CAAA;AACzE,MAAA,EAAQA,KAAK,GAAI,CAASA,OAAAA,EAAAA,KAAM,CAAE,CAAA,CAAA,GAAGD,MAAM,GAAI,CAASA,OAAAA,EAAAA,MAAO,CAAE,CAAA,CAAA,GAAG,EAAG,CAAA;AACvE;AACA,EAAG,CAAA,CAAA;AAAA,CAAC,CAAA;AACJ,CAAC;;;ACXD,MAAMG,cAAc,GAAG,gBAAgB,CAAA;AACvC,MAAMC,SAAS,GAAG,yBAAyB,CAAA;;AAE3C;AACA;AACA;AACO,MAAMC,cAAyD,gBAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAClG,MAAM;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,QAAQ;AAAEC,MAAAA,KAAK,EAAEC,UAAAA;AAA8B,KAAC,GAAGN,KAAK;AAAxBO,IAAAA,cAAc,GAAAC,wBAAA,CAAKR,KAAK,EAAAS,SAAA,CAAA,CAAA;AAErF,EAAA,MAAMJ,KAAK,GAAGK,QAAQ,CAACJ,UAAU,CAAC,CAAA;AAElC,EAAA,IAAIF,QAAQ,EAAE;IACZ,oBAAOO,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAGX,IAAAA,EAAAA,QAAW,CAAC,CAAA;AACxB,GAAA;EAEA,oBACES,cAAA,CAAAC,aAAA,CAACvB,oBAAoB,EAAAyB,QAAA,KACfP,cAAc,EAAA;AAClBQ,IAAAA,MAAM,EAAEV,KAAM;IACdF,SAAS,EAAEa,UAAU,CAAClB,cAAc,CAACK,SAAS,EAAEA,SAAS,CAAE;AAC3DF,IAAAA,GAAG,EAAEA,GAAAA;AAAiC,GAAA,CAAA,EAErC,OAAOC,QAAQ,KAAK,QAAQ,gBAAGS,cAAA,CAAAC,aAAA,CAAOV,MAAAA,EAAAA,IAAAA,EAAAA,QAAe,CAAC,GAAGA,QACtC,CAAC,CAAA;AAE3B,CAAC,EAAC;AACFJ,cAAc,CAACK,SAAS,GAAGN,SAAS,CAAA;AACpCC,cAAc,CAACmB,WAAW,GAAGrB,cAAc;;;;"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React__default, { forwardRef } from 'react';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import styled, { css } from 'styled-components';
|
|
5
|
+
import { S as StyledSkeleton } from './styles6.js';
|
|
6
|
+
import { u as useTheme } from './useTheme.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Component style.
|
|
10
|
+
*/
|
|
11
|
+
const StyledSkeletonText = styled(StyledSkeleton)`
|
|
12
|
+
background-clip: content-box;
|
|
13
|
+
|
|
14
|
+
${_ref => {
|
|
15
|
+
let {
|
|
16
|
+
height,
|
|
17
|
+
$fontSize,
|
|
18
|
+
$lineHeight,
|
|
19
|
+
$variant
|
|
20
|
+
} = _ref;
|
|
21
|
+
return height ? css`
|
|
22
|
+
&,
|
|
23
|
+
&::after {
|
|
24
|
+
height: ${height};
|
|
25
|
+
}
|
|
26
|
+
` : css`
|
|
27
|
+
&,
|
|
28
|
+
&::after {
|
|
29
|
+
height: ${$fontSize ? $fontSize : `var(--redsift-typography-${$variant}-font-size)`};
|
|
30
|
+
padding: calc(
|
|
31
|
+
(
|
|
32
|
+
${$lineHeight ? $lineHeight : `var(--redsift-typography-${$variant}-line-height)`} -
|
|
33
|
+
${$fontSize ? $fontSize : `var(--redsift-typography-${$variant}-font-size)`}
|
|
34
|
+
) / 2
|
|
35
|
+
)
|
|
36
|
+
0px;
|
|
37
|
+
}
|
|
38
|
+
`;
|
|
39
|
+
}}}
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
const _excluded = ["children", "className", "fontSize", "isLoaded", "lineHeight", "theme", "variant"];
|
|
43
|
+
const COMPONENT_NAME = 'SkeletonText';
|
|
44
|
+
const CLASSNAME = 'redsift-skeleton-text';
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* The SkeletonText component.
|
|
48
|
+
*/
|
|
49
|
+
const SkeletonText = /*#__PURE__*/forwardRef((props, ref) => {
|
|
50
|
+
const {
|
|
51
|
+
children,
|
|
52
|
+
className,
|
|
53
|
+
fontSize,
|
|
54
|
+
isLoaded,
|
|
55
|
+
lineHeight,
|
|
56
|
+
theme: propsTheme,
|
|
57
|
+
variant = 'body'
|
|
58
|
+
} = props,
|
|
59
|
+
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
60
|
+
const theme = useTheme(propsTheme);
|
|
61
|
+
if (isLoaded) {
|
|
62
|
+
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children);
|
|
63
|
+
}
|
|
64
|
+
return /*#__PURE__*/React__default.createElement(StyledSkeletonText, _extends({}, forwardedProps, {
|
|
65
|
+
className: classNames(SkeletonText.className, className),
|
|
66
|
+
ref: ref,
|
|
67
|
+
$fontSize: fontSize,
|
|
68
|
+
$lineHeight: lineHeight,
|
|
69
|
+
$theme: theme,
|
|
70
|
+
$variant: variant
|
|
71
|
+
}), typeof children === 'string' ? /*#__PURE__*/React__default.createElement("span", null, children) : children);
|
|
72
|
+
});
|
|
73
|
+
SkeletonText.className = CLASSNAME;
|
|
74
|
+
SkeletonText.displayName = COMPONENT_NAME;
|
|
75
|
+
|
|
76
|
+
export { SkeletonText as S };
|
|
77
|
+
//# sourceMappingURL=SkeletonText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkeletonText.js","sources":["../../src/components/skeleton-text/styles.ts","../../src/components/skeleton-text/SkeletonText.tsx"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { StyledSkeleton } from '../skeleton/styles';\nimport { StyledSkeletonTextProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledSkeletonText = styled(StyledSkeleton)<StyledSkeletonTextProps>`\n background-clip: content-box;\n\n ${({ height, $fontSize, $lineHeight, $variant }) =>\n height\n ? css`\n &,\n &::after {\n height: ${height};\n }\n `\n : css`\n &,\n &::after {\n height: ${$fontSize ? $fontSize : `var(--redsift-typography-${$variant}-font-size)`};\n padding: calc(\n (\n ${$lineHeight ? $lineHeight : `var(--redsift-typography-${$variant}-line-height)`} -\n ${$fontSize ? $fontSize : `var(--redsift-typography-${$variant}-font-size)`}\n ) / 2\n )\n 0px;\n }\n `}}\n`;\n","import React, { forwardRef, RefObject } from 'react';\nimport classNames from 'classnames';\n\nimport { Comp } from '../../types';\nimport { StyledSkeletonText } from './styles';\nimport { SkeletonTextProps } from './types';\nimport { useTheme } from '../theme';\n\nconst COMPONENT_NAME = 'SkeletonText';\nconst CLASSNAME = 'redsift-skeleton-text';\n\n/**\n * The SkeletonText component.\n */\nexport const SkeletonText: Comp<SkeletonTextProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n children,\n className,\n fontSize,\n isLoaded,\n lineHeight,\n theme: propsTheme,\n variant = 'body',\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <StyledSkeletonText\n {...forwardedProps}\n className={classNames(SkeletonText.className, className)}\n ref={ref as RefObject<HTMLDivElement>}\n $fontSize={fontSize}\n $lineHeight={lineHeight}\n $theme={theme}\n $variant={variant}\n >\n {typeof children === 'string' ? <span>{children}</span> : children}\n </StyledSkeletonText>\n );\n});\nSkeletonText.className = CLASSNAME;\nSkeletonText.displayName = COMPONENT_NAME;\n"],"names":["StyledSkeletonText","styled","StyledSkeleton","_ref","height","$fontSize","$lineHeight","$variant","css","COMPONENT_NAME","CLASSNAME","SkeletonText","forwardRef","props","ref","children","className","fontSize","isLoaded","lineHeight","theme","propsTheme","variant","forwardedProps","_objectWithoutProperties","_excluded","useTheme","React","createElement","Fragment","_extends","classNames","$theme","displayName"],"mappings":";;;;;;;AAIA;AACA;AACA;AACO,MAAMA,kBAAkB,GAAGC,MAAM,CAACC,cAAc,CAA2B,CAAA;AAClF;AACA;AACA,EAAA,EAAIC,IAAA,IAAA;EAAA,IAAC;IAAEC,MAAM;IAAEC,SAAS;IAAEC,WAAW;AAAEC,IAAAA,QAAAA;AAAS,GAAC,GAAAJ,IAAA,CAAA;EAAA,OAC7CC,MAAM,GACFI,GAAI,CAAA;AACZ;AACA;AACA,oBAAA,EAAsBJ,MAAO,CAAA;AAC7B;AACA,QAAA,CAAS,GACDI,GAAI,CAAA;AACZ;AACA;AACA,oBAAA,EAAsBH,SAAS,GAAGA,SAAS,GAAI,CAAA,yBAAA,EAA2BE,QAAS,CAAa,WAAA,CAAA,CAAA;AAChG;AACA;AACA,oBAAA,EAAsBD,WAAW,GAAGA,WAAW,GAAI,CAAA,yBAAA,EAA2BC,QAAS,CAAe,aAAA,CAAA,CAAA;AACtG,sBAAA,EAAwBF,SAAS,GAAGA,SAAS,GAAI,CAAA,yBAAA,EAA2BE,QAAS,CAAa,WAAA,CAAA,CAAA;AAClG;AACA;AACA;AACA;AACA,QAAS,CAAA,CAAA;AAAA,CAAC,CAAA;AACV,CAAC;;;ACvBD,MAAME,cAAc,GAAG,cAAc,CAAA;AACrC,MAAMC,SAAS,GAAG,uBAAuB,CAAA;;AAEzC;AACA;AACA;AACO,MAAMC,YAAqD,gBAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC9F,MAAM;MACJC,QAAQ;MACRC,SAAS;MACTC,QAAQ;MACRC,QAAQ;MACRC,UAAU;AACVC,MAAAA,KAAK,EAAEC,UAAU;AACjBC,MAAAA,OAAO,GAAG,MAAA;AAEZ,KAAC,GAAGT,KAAK;AADJU,IAAAA,cAAc,GAAAC,wBAAA,CACfX,KAAK,EAAAY,SAAA,CAAA,CAAA;AAET,EAAA,MAAML,KAAK,GAAGM,QAAQ,CAACL,UAAU,CAAC,CAAA;AAElC,EAAA,IAAIH,QAAQ,EAAE;IACZ,oBAAOS,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAGd,IAAAA,EAAAA,QAAW,CAAC,CAAA;AACxB,GAAA;EAEA,oBACEY,cAAA,CAAAC,aAAA,CAAC5B,kBAAkB,EAAA8B,QAAA,KACbP,cAAc,EAAA;IAClBP,SAAS,EAAEe,UAAU,CAACpB,YAAY,CAACK,SAAS,EAAEA,SAAS,CAAE;AACzDF,IAAAA,GAAG,EAAEA,GAAiC;AACtCT,IAAAA,SAAS,EAAEY,QAAS;AACpBX,IAAAA,WAAW,EAAEa,UAAW;AACxBa,IAAAA,MAAM,EAAEZ,KAAM;AACdb,IAAAA,QAAQ,EAAEe,OAAAA;AAAQ,GAAA,CAAA,EAEjB,OAAOP,QAAQ,KAAK,QAAQ,gBAAGY,cAAA,CAAAC,aAAA,CAAOb,MAAAA,EAAAA,IAAAA,EAAAA,QAAe,CAAC,GAAGA,QACxC,CAAC,CAAA;AAEzB,CAAC,EAAC;AACFJ,YAAY,CAACK,SAAS,GAAGN,SAAS,CAAA;AAClCC,YAAY,CAACsB,WAAW,GAAGxB,cAAc;;;;"}
|