@redsift/design-system 11.5.0-muiv5 → 11.6.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/_internal/Alert2.js +197 -0
  2. package/_internal/Alert2.js.map +1 -0
  3. package/_internal/AppBar.js +248 -0
  4. package/_internal/AppBar.js.map +1 -0
  5. package/_internal/AppContainer.js +142 -0
  6. package/_internal/AppContainer.js.map +1 -0
  7. package/_internal/AppContent.js +92 -0
  8. package/_internal/AppContent.js.map +1 -0
  9. package/_internal/Badge2.js +142 -0
  10. package/_internal/Badge2.js.map +1 -0
  11. package/_internal/BreadcrumbItem.js +91 -0
  12. package/_internal/BreadcrumbItem.js.map +1 -0
  13. package/_internal/Breadcrumbs2.js +94 -0
  14. package/_internal/Breadcrumbs2.js.map +1 -0
  15. package/_internal/Button2.js +91 -0
  16. package/_internal/Button2.js.map +1 -0
  17. package/_internal/ButtonGroup.js +181 -0
  18. package/_internal/ButtonGroup.js.map +1 -0
  19. package/_internal/ButtonLink.js +84 -0
  20. package/_internal/ButtonLink.js.map +1 -0
  21. package/_internal/Card2.js +157 -0
  22. package/_internal/Card2.js.map +1 -0
  23. package/_internal/CardActions.js +44 -0
  24. package/_internal/CardActions.js.map +1 -0
  25. package/_internal/CardBody.js +42 -0
  26. package/_internal/CardBody.js.map +1 -0
  27. package/_internal/CardHeader.js +83 -0
  28. package/_internal/CardHeader.js.map +1 -0
  29. package/_internal/Checkbox2.js +244 -0
  30. package/_internal/Checkbox2.js.map +1 -0
  31. package/_internal/CheckboxGroup.js +188 -0
  32. package/_internal/CheckboxGroup.js.map +1 -0
  33. package/_internal/ConditionalWrapper.js +13 -0
  34. package/_internal/ConditionalWrapper.js.map +1 -0
  35. package/_internal/DetailedCard.js +6916 -0
  36. package/_internal/DetailedCard.js.map +1 -0
  37. package/_internal/DetailedCardCollapsibleSectionItems.js +64 -0
  38. package/_internal/DetailedCardCollapsibleSectionItems.js.map +1 -0
  39. package/_internal/DetailedCardHeader.js +67 -0
  40. package/_internal/DetailedCardHeader.js.map +1 -0
  41. package/_internal/DetailedCardSection.js +172 -0
  42. package/_internal/DetailedCardSection.js.map +1 -0
  43. package/_internal/DetailedCardSectionItem.js +94 -0
  44. package/_internal/DetailedCardSectionItem.js.map +1 -0
  45. package/_internal/Flexbox2.js +93 -0
  46. package/_internal/Flexbox2.js.map +1 -0
  47. package/_internal/Grid2.js +95 -0
  48. package/_internal/Grid2.js.map +1 -0
  49. package/_internal/GridItem.js +40 -0
  50. package/_internal/GridItem.js.map +1 -0
  51. package/_internal/Heading2.js +113 -0
  52. package/_internal/Heading2.js.map +1 -0
  53. package/_internal/Icon2.js +211 -0
  54. package/_internal/Icon2.js.map +1 -0
  55. package/_internal/IconButton.js +80 -0
  56. package/_internal/IconButton.js.map +1 -0
  57. package/_internal/IconButtonLink.js +75 -0
  58. package/_internal/IconButtonLink.js.map +1 -0
  59. package/_internal/Item2.js +399 -0
  60. package/_internal/Item2.js.map +1 -0
  61. package/_internal/Link2.js +67 -0
  62. package/_internal/Link2.js.map +1 -0
  63. package/_internal/LinkButton.js +66 -0
  64. package/_internal/LinkButton.js.map +1 -0
  65. package/_internal/Listbox2.js +274 -0
  66. package/_internal/Listbox2.js.map +1 -0
  67. package/_internal/Number2.js +111 -0
  68. package/_internal/Number2.js.map +1 -0
  69. package/_internal/NumberField.js +3974 -0
  70. package/_internal/NumberField.js.map +1 -0
  71. package/_internal/Pill2.js +405 -0
  72. package/_internal/Pill2.js.map +1 -0
  73. package/_internal/ProgressBar.js +69 -0
  74. package/_internal/ProgressBar.js.map +1 -0
  75. package/_internal/Radio2.js +237 -0
  76. package/_internal/Radio2.js.map +1 -0
  77. package/_internal/RadioGroup.js +176 -0
  78. package/_internal/RadioGroup.js.map +1 -0
  79. package/_internal/Shield2.js +225 -0
  80. package/_internal/Shield2.js.map +1 -0
  81. package/_internal/SideNavigationMenu.js +591 -0
  82. package/_internal/SideNavigationMenu.js.map +1 -0
  83. package/_internal/SideNavigationMenuItem.js +304 -0
  84. package/_internal/SideNavigationMenuItem.js.map +1 -0
  85. package/_internal/Skeleton2.js +42 -0
  86. package/_internal/Skeleton2.js.map +1 -0
  87. package/_internal/SkeletonCircle.js +58 -0
  88. package/_internal/SkeletonCircle.js.map +1 -0
  89. package/_internal/SkeletonText.js +77 -0
  90. package/_internal/SkeletonText.js.map +1 -0
  91. package/_internal/Spinner2.js +333 -0
  92. package/_internal/Spinner2.js.map +1 -0
  93. package/_internal/Switch2.js +320 -0
  94. package/_internal/Switch2.js.map +1 -0
  95. package/_internal/SwitchGroup.js +188 -0
  96. package/_internal/SwitchGroup.js.map +1 -0
  97. package/_internal/Text2.js +51 -0
  98. package/_internal/Text2.js.map +1 -0
  99. package/_internal/TextArea.js +444 -0
  100. package/_internal/TextArea.js.map +1 -0
  101. package/_internal/TextField.js +473 -0
  102. package/_internal/TextField.js.map +1 -0
  103. package/_internal/_rollupPluginBabelHelpers.js +133 -0
  104. package/_internal/_rollupPluginBabelHelpers.js.map +1 -0
  105. package/_internal/alert.js +2 -0
  106. package/_internal/alert.js.map +1 -0
  107. package/_internal/app-bar.js +2 -0
  108. package/_internal/app-bar.js.map +1 -0
  109. package/_internal/app-container.js +3 -0
  110. package/_internal/app-container.js.map +1 -0
  111. package/_internal/app-content.js +2 -0
  112. package/_internal/app-content.js.map +1 -0
  113. package/_internal/app-side-panel.js +3 -0
  114. package/_internal/app-side-panel.js.map +1 -0
  115. package/_internal/badge.js +2 -0
  116. package/_internal/badge.js.map +1 -0
  117. package/_internal/breadcrumb-item.js +2 -0
  118. package/_internal/breadcrumb-item.js.map +1 -0
  119. package/_internal/breadcrumbs.js +2 -0
  120. package/_internal/breadcrumbs.js.map +1 -0
  121. package/_internal/button-group.js +2 -0
  122. package/_internal/button-group.js.map +1 -0
  123. package/_internal/button-link.js +2 -0
  124. package/_internal/button-link.js.map +1 -0
  125. package/_internal/button.js +3 -0
  126. package/_internal/button.js.map +1 -0
  127. package/_internal/card-actions.js +2 -0
  128. package/_internal/card-actions.js.map +1 -0
  129. package/_internal/card-body.js +2 -0
  130. package/_internal/card-body.js.map +1 -0
  131. package/_internal/card-header.js +2 -0
  132. package/_internal/card-header.js.map +1 -0
  133. package/_internal/card.js +2 -0
  134. package/_internal/card.js.map +1 -0
  135. package/_internal/checkbox-group.js +2 -0
  136. package/_internal/checkbox-group.js.map +1 -0
  137. package/_internal/checkbox.js +2 -0
  138. package/_internal/checkbox.js.map +1 -0
  139. package/_internal/colors.js +98 -0
  140. package/_internal/colors.js.map +1 -0
  141. package/_internal/conditional-wrapper.js +2 -0
  142. package/_internal/conditional-wrapper.js.map +1 -0
  143. package/_internal/context.js +6 -0
  144. package/_internal/context.js.map +1 -0
  145. package/_internal/context2.js +300 -0
  146. package/_internal/context2.js.map +1 -0
  147. package/_internal/context3.js +6 -0
  148. package/_internal/context3.js.map +1 -0
  149. package/_internal/context4.js +6 -0
  150. package/_internal/context4.js.map +1 -0
  151. package/_internal/context5.js +6 -0
  152. package/_internal/context5.js.map +1 -0
  153. package/_internal/detailed-card-collapsible-section-items.js +2 -0
  154. package/_internal/detailed-card-collapsible-section-items.js.map +1 -0
  155. package/_internal/detailed-card-header.js +2 -0
  156. package/_internal/detailed-card-header.js.map +1 -0
  157. package/_internal/detailed-card-section-item.js +2 -0
  158. package/_internal/detailed-card-section-item.js.map +1 -0
  159. package/_internal/detailed-card-section.js +2 -0
  160. package/_internal/detailed-card-section.js.map +1 -0
  161. package/_internal/detailed-card.js +2 -0
  162. package/_internal/detailed-card.js.map +1 -0
  163. package/_internal/filterComponents.js +24 -0
  164. package/_internal/filterComponents.js.map +1 -0
  165. package/_internal/flexbox.js +2 -0
  166. package/_internal/flexbox.js.map +1 -0
  167. package/_internal/focus-within-group.js +3 -0
  168. package/_internal/focus-within-group.js.map +1 -0
  169. package/_internal/fonts.js +10 -0
  170. package/_internal/fonts.js.map +1 -0
  171. package/_internal/gradient-border.js +38 -0
  172. package/_internal/gradient-border.js.map +1 -0
  173. package/_internal/grid-item.js +2 -0
  174. package/_internal/grid-item.js.map +1 -0
  175. package/_internal/grid.js +2 -0
  176. package/_internal/grid.js.map +1 -0
  177. package/_internal/heading.js +3 -0
  178. package/_internal/heading.js.map +1 -0
  179. package/_internal/icon-button-link.js +2 -0
  180. package/_internal/icon-button-link.js.map +1 -0
  181. package/_internal/icon-button.js +3 -0
  182. package/_internal/icon-button.js.map +1 -0
  183. package/_internal/icon.js +2 -0
  184. package/_internal/icon.js.map +1 -0
  185. package/_internal/isComponent.js +15 -0
  186. package/_internal/isComponent.js.map +1 -0
  187. package/_internal/item.js +2 -0
  188. package/_internal/item.js.map +1 -0
  189. package/_internal/link-button.js +2 -0
  190. package/_internal/link-button.js.map +1 -0
  191. package/_internal/link.js +3 -0
  192. package/_internal/link.js.map +1 -0
  193. package/_internal/listbox.js +3 -0
  194. package/_internal/listbox.js.map +1 -0
  195. package/_internal/number-field.js +2 -0
  196. package/_internal/number-field.js.map +1 -0
  197. package/_internal/number.js +2 -0
  198. package/_internal/number.js.map +1 -0
  199. package/_internal/partitionComponents.js +26 -0
  200. package/_internal/partitionComponents.js.map +1 -0
  201. package/_internal/pill.js +2 -0
  202. package/_internal/pill.js.map +1 -0
  203. package/_internal/progress-bar.js +2 -0
  204. package/_internal/progress-bar.js.map +1 -0
  205. package/_internal/radio-group.js +2 -0
  206. package/_internal/radio-group.js.map +1 -0
  207. package/_internal/radio.js +2 -0
  208. package/_internal/radio.js.map +1 -0
  209. package/_internal/redsift-design-tokens.js +1391 -0
  210. package/_internal/redsift-design-tokens.js.map +1 -0
  211. package/_internal/shared.js +2 -0
  212. package/_internal/shared.js.map +1 -0
  213. package/_internal/shield.js +2 -0
  214. package/_internal/shield.js.map +1 -0
  215. package/_internal/side-navigation-menu-bar.js +3 -0
  216. package/_internal/side-navigation-menu-bar.js.map +1 -0
  217. package/_internal/side-navigation-menu-item.js +2 -0
  218. package/_internal/side-navigation-menu-item.js.map +1 -0
  219. package/_internal/side-navigation-menu.js +2 -0
  220. package/_internal/side-navigation-menu.js.map +1 -0
  221. package/_internal/skeleton-circle.js +2 -0
  222. package/_internal/skeleton-circle.js.map +1 -0
  223. package/_internal/skeleton-text.js +3 -0
  224. package/_internal/skeleton-text.js.map +1 -0
  225. package/_internal/skeleton.js +2 -0
  226. package/_internal/skeleton.js.map +1 -0
  227. package/_internal/spinner.js +2 -0
  228. package/_internal/spinner.js.map +1 -0
  229. package/_internal/styles.js +235 -0
  230. package/_internal/styles.js.map +1 -0
  231. package/_internal/styles2.js +47 -0
  232. package/_internal/styles2.js.map +1 -0
  233. package/_internal/styles3.js +145 -0
  234. package/_internal/styles3.js.map +1 -0
  235. package/_internal/styles4.js +250 -0
  236. package/_internal/styles4.js.map +1 -0
  237. package/_internal/styles5.js +143 -0
  238. package/_internal/styles5.js.map +1 -0
  239. package/_internal/styles6.js +84 -0
  240. package/_internal/styles6.js.map +1 -0
  241. package/_internal/switch-group.js +2 -0
  242. package/_internal/switch-group.js.map +1 -0
  243. package/_internal/switch.js +2 -0
  244. package/_internal/switch.js.map +1 -0
  245. package/_internal/text-area.js +2 -0
  246. package/_internal/text-area.js.map +1 -0
  247. package/_internal/text-field.js +2 -0
  248. package/_internal/text-field.js.map +1 -0
  249. package/_internal/text.js +3 -0
  250. package/_internal/text.js.map +1 -0
  251. package/_internal/theme.js +2 -0
  252. package/_internal/theme.js.map +1 -0
  253. package/_internal/types.js +15 -0
  254. package/_internal/types.js.map +1 -0
  255. package/_internal/types2.js +26 -0
  256. package/_internal/types2.js.map +1 -0
  257. package/_internal/types3.js +20 -0
  258. package/_internal/types3.js.map +1 -0
  259. package/_internal/useAppSidePanel.js +337 -0
  260. package/_internal/useAppSidePanel.js.map +1 -0
  261. package/_internal/useFocusOnList.js +541 -0
  262. package/_internal/useFocusOnList.js.map +1 -0
  263. package/_internal/useFocusOnListItem.js +203 -0
  264. package/_internal/useFocusOnListItem.js.map +1 -0
  265. package/_internal/useFocusRing.js +669 -0
  266. package/_internal/useFocusRing.js.map +1 -0
  267. package/_internal/useId.js +42 -0
  268. package/_internal/useId.js.map +1 -0
  269. package/_internal/useIsLoaded.js +14 -0
  270. package/_internal/useIsLoaded.js.map +1 -0
  271. package/_internal/useListboxItem.js +129 -0
  272. package/_internal/useListboxItem.js.map +1 -0
  273. package/_internal/useMessageFormatter.js +143 -0
  274. package/_internal/useMessageFormatter.js.map +1 -0
  275. package/_internal/useNumberFormatter.js +239 -0
  276. package/_internal/useNumberFormatter.js.map +1 -0
  277. package/_internal/useSideNavigationMenuBar.js +373 -0
  278. package/_internal/useSideNavigationMenuBar.js.map +1 -0
  279. package/_internal/useTheme.js +15 -0
  280. package/_internal/useTheme.js.map +1 -0
  281. package/_internal/warnIfNoAccessibleLabelFound.js +20 -0
  282. package/_internal/warnIfNoAccessibleLabelFound.js.map +1 -0
  283. package/index.js +315 -24243
  284. package/index.js.map +1 -1
  285. package/package.json +3 -3
@@ -0,0 +1,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":"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"}
@@ -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;;;;"}