@redis-ui/components 39.18.0 → 41.3.2

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 (215) hide show
  1. package/dist/AppSelectionMenu/components/Icon/Icon.cjs +3 -1
  2. package/dist/AppSelectionMenu/components/Icon/Icon.js +3 -1
  3. package/dist/AppSelectionMenu/components/Trigger/Trigger.styles.cjs +1 -1
  4. package/dist/AppSelectionMenu/components/Trigger/Trigger.styles.js +1 -1
  5. package/dist/AutoCompleteSelect/AutoCompleteSelect.style.d.ts +1 -1
  6. package/dist/Banner/Banner.d.ts +3 -3
  7. package/dist/Banner/components/Actions/Actions.d.ts +1 -1
  8. package/dist/Banner/components/Compose/Compose.style.d.ts +1 -1
  9. package/dist/BoxSelectionGroup/components/Item/components/Compose/Compose.types.d.ts +1 -1
  10. package/dist/ChipList/Components/ExtraItem.cjs +3 -0
  11. package/dist/ChipList/Components/ExtraItem.js +3 -0
  12. package/dist/Drawer/Drawer.d.ts +2 -2
  13. package/dist/Drawer/components/Body/Body.cjs +17 -3
  14. package/dist/Drawer/components/Body/Body.d.ts +1 -1
  15. package/dist/Drawer/components/Body/Body.js +17 -3
  16. package/dist/Drawer/components/Body/Body.types.d.ts +3 -1
  17. package/dist/Filters/components/MultiSelectFilter/MultiSelectFilter.styles.d.ts +2 -2
  18. package/dist/FormField/FormField.context.d.ts +6 -2
  19. package/dist/FormField/FormField.d.ts +2 -4
  20. package/dist/FormField/components/Compose/Compose.d.ts +1 -1
  21. package/dist/FormField/components/Compose/Compose.types.d.ts +2 -2
  22. package/dist/FormField/components/Nested/Nested.cjs +25 -8
  23. package/dist/FormField/components/Nested/Nested.d.ts +1 -1
  24. package/dist/FormField/components/Nested/Nested.js +25 -8
  25. package/dist/FormField/components/Nested/Nested.types.d.ts +2 -0
  26. package/dist/Helpers/common.types.d.ts +1 -1
  27. package/dist/Helpers/contexts/NullableContext.cjs +17 -0
  28. package/dist/Helpers/contexts/NullableContext.d.ts +4 -0
  29. package/dist/Helpers/contexts/NullableContext.js +17 -0
  30. package/dist/Helpers/contexts/PrimitiveContextState.cjs +27 -0
  31. package/dist/Helpers/contexts/PrimitiveContextState.d.ts +7 -2
  32. package/dist/Helpers/contexts/PrimitiveContextState.js +27 -0
  33. package/dist/Helpers/hooks/useScrollable.cjs +32 -0
  34. package/dist/Helpers/hooks/useScrollable.d.ts +3 -0
  35. package/dist/Helpers/hooks/useScrollable.js +32 -0
  36. package/dist/Helpers/index.d.ts +2 -0
  37. package/dist/Inputs/Input/Input.d.ts +1 -1
  38. package/dist/Inputs/NumericInput/NumericInput.d.ts +1 -1
  39. package/dist/Inputs/PasswordInput/components/Compose/Compose.style.d.ts +1 -1
  40. package/dist/Inputs/QuantityCounter/QuantityCounter.d.ts +2 -2
  41. package/dist/Inputs/QuantityCounter/components/Compose/Compose.style.d.ts +1 -1
  42. package/dist/Inputs/QuantityCounter/components/InputGroup/InputGroup.d.ts +1 -1
  43. package/dist/Inputs/SearchInput/SearchInput.d.ts +1 -1
  44. package/dist/Inputs/TextArea/TextArea.d.ts +1 -1
  45. package/dist/Inputs/TextArea/components/Compose/Compose.style.d.ts +1 -1
  46. package/dist/Inputs/components/Context/Field.context.d.ts +3 -1
  47. package/dist/Loader/Loader.style.cjs +1 -1
  48. package/dist/Loader/Loader.style.js +1 -1
  49. package/dist/Menu/Menu.d.ts +1 -1
  50. package/dist/Menu/components/Content/Content.d.ts +1 -1
  51. package/dist/Menu/components/Content/components/Label/Label.d.ts +1 -1
  52. package/dist/Modal/Modal.d.ts +1 -1
  53. package/dist/Modal/components/Content/Content.d.ts +1 -1
  54. package/dist/ProfileIcon/ProfileIcon.types.d.ts +1 -1
  55. package/dist/ScreenReaderAnnounce/ScreenReaderAnnounce.cjs +32 -0
  56. package/dist/ScreenReaderAnnounce/ScreenReaderAnnounce.d.ts +8 -0
  57. package/dist/ScreenReaderAnnounce/ScreenReaderAnnounce.js +32 -0
  58. package/dist/ScreenReaderAnnounce/index.d.ts +1 -0
  59. package/dist/Section/Section.cjs +11 -8
  60. package/dist/Section/Section.d.ts +9 -7
  61. package/dist/Section/Section.js +11 -8
  62. package/dist/Section/Section.types.d.ts +8 -2
  63. package/dist/Section/components/Body/Body.cjs +10 -6
  64. package/dist/Section/components/Body/Body.d.ts +1 -1
  65. package/dist/Section/components/Body/Body.js +11 -7
  66. package/dist/Section/components/Body/Body.style.cjs +1 -1
  67. package/dist/Section/components/Body/Body.style.js +1 -1
  68. package/dist/Section/components/Body/Body.types.d.ts +2 -5
  69. package/dist/Section/components/Compose/Compose.cjs +18 -7
  70. package/dist/Section/components/Compose/Compose.d.ts +1 -1
  71. package/dist/Section/components/Compose/Compose.js +18 -7
  72. package/dist/Section/components/Compose/Compose.types.d.ts +2 -2
  73. package/dist/Section/components/Header/Header.cjs +12 -20
  74. package/dist/Section/components/Header/Header.d.ts +5 -4
  75. package/dist/Section/components/Header/Header.js +12 -20
  76. package/dist/Section/components/Header/Header.types.d.ts +7 -3
  77. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.cjs +34 -0
  78. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.d.ts +2 -0
  79. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.js +34 -0
  80. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.style.cjs +30 -0
  81. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.style.d.ts +3 -0
  82. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.style.js +28 -0
  83. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.types.d.ts +6 -0
  84. package/dist/Section/components/Header/components/Compose/Compose.cjs +2 -30
  85. package/dist/Section/components/Header/components/Compose/Compose.d.ts +1 -1
  86. package/dist/Section/components/Header/components/Compose/Compose.js +3 -31
  87. package/dist/Section/components/Header/components/Compose/Compose.style.cjs +3 -36
  88. package/dist/Section/components/Header/components/Compose/Compose.style.d.ts +1 -9
  89. package/dist/Section/components/Header/components/Compose/Compose.style.js +5 -38
  90. package/dist/Section/components/Header/components/Compose/Compose.types.d.ts +2 -5
  91. package/dist/Section/components/Header/components/Group/Group.types.d.ts +1 -1
  92. package/dist/Section/components/Header/components/Label/Label.cjs +18 -7
  93. package/dist/Section/components/Header/components/Label/Label.js +19 -8
  94. package/dist/Section/components/Header/components/Label/Label.style.cjs +17 -4
  95. package/dist/Section/components/Header/components/Label/Label.style.d.ts +2 -1
  96. package/dist/Section/components/Header/components/Label/Label.style.js +17 -4
  97. package/dist/Section/components/Header/components/Label/Label.types.d.ts +2 -2
  98. package/dist/Section/components/SummaryBar/SummaryBar.cjs +14 -0
  99. package/dist/Section/components/SummaryBar/SummaryBar.d.ts +2 -0
  100. package/dist/Section/components/SummaryBar/SummaryBar.js +14 -0
  101. package/dist/Section/components/SummaryBar/SummaryBar.style.cjs +22 -0
  102. package/dist/Section/components/SummaryBar/SummaryBar.style.d.ts +3 -0
  103. package/dist/Section/components/SummaryBar/SummaryBar.style.js +20 -0
  104. package/dist/Section/components/SummaryBar/SummaryBar.types.d.ts +4 -0
  105. package/dist/Select/components/Content/components/Search/SelectSearchInput.style.d.ts +1 -1
  106. package/dist/SideBar/components/Footer/Footer.style.cjs +4 -1
  107. package/dist/SideBar/components/Footer/Footer.style.js +5 -2
  108. package/dist/SideBar/components/Header/Header.cjs +4 -6
  109. package/dist/SideBar/components/Header/Header.js +4 -6
  110. package/dist/SideBar/components/ScrollContainer/ScrollContainer.types.d.ts +1 -1
  111. package/dist/Stepper/Stepper.cjs +15 -27
  112. package/dist/Stepper/Stepper.context.cjs +13 -0
  113. package/dist/Stepper/Stepper.context.d.ts +12 -0
  114. package/dist/Stepper/Stepper.context.js +13 -0
  115. package/dist/Stepper/Stepper.d.ts +14 -5
  116. package/dist/Stepper/Stepper.js +15 -25
  117. package/dist/Stepper/Stepper.types.d.ts +9 -3
  118. package/dist/Stepper/components/Compose/Compose.cjs +42 -0
  119. package/dist/Stepper/components/Compose/Compose.d.ts +10 -0
  120. package/dist/Stepper/components/Compose/Compose.js +42 -0
  121. package/dist/Stepper/{Stepper.style.cjs → components/Compose/Compose.style.cjs} +4 -4
  122. package/dist/Stepper/components/Compose/Compose.style.d.ts +1 -0
  123. package/dist/Stepper/{Stepper.style.js → components/Compose/Compose.style.js} +4 -4
  124. package/dist/Stepper/components/Compose/Compose.types.d.ts +6 -0
  125. package/dist/Stepper/components/Step/Step.cjs +10 -17
  126. package/dist/Stepper/components/Step/Step.context.d.ts +3 -3
  127. package/dist/Stepper/components/Step/Step.d.ts +7 -5
  128. package/dist/Stepper/components/Step/Step.js +10 -17
  129. package/dist/Stepper/components/Step/Step.types.cjs +2 -2
  130. package/dist/Stepper/components/Step/Step.types.d.ts +6 -8
  131. package/dist/Stepper/components/Step/Step.types.js +2 -2
  132. package/dist/Stepper/components/Step/components/Compose/Compose.cjs +36 -4
  133. package/dist/Stepper/components/Step/components/Compose/Compose.d.ts +1 -1
  134. package/dist/Stepper/components/Step/components/Compose/Compose.js +37 -5
  135. package/dist/Stepper/components/Step/components/Compose/Compose.style.cjs +8 -4
  136. package/dist/Stepper/components/Step/components/Compose/Compose.style.d.ts +1 -1
  137. package/dist/Stepper/components/Step/components/Compose/Compose.style.js +10 -6
  138. package/dist/Stepper/components/Step/components/Compose/Compose.types.d.ts +2 -5
  139. package/dist/Stepper/components/Step/components/Icon/Icon.cjs +11 -6
  140. package/dist/Stepper/components/Step/components/Icon/Icon.d.ts +1 -1
  141. package/dist/Stepper/components/Step/components/Icon/Icon.js +12 -7
  142. package/dist/Stepper/components/Step/components/Icon/Icon.style.cjs +1 -1
  143. package/dist/Stepper/components/Step/components/Icon/Icon.style.js +2 -2
  144. package/dist/Stepper/components/Step/components/Label/Label.cjs +11 -13
  145. package/dist/Stepper/components/Step/components/Label/Label.d.ts +1 -1
  146. package/dist/Stepper/components/Step/components/Label/Label.js +12 -14
  147. package/dist/Stepper/components/Step/components/Label/Label.style.cjs +8 -8
  148. package/dist/Stepper/components/Step/components/Label/Label.style.d.ts +1 -1
  149. package/dist/Stepper/components/Step/components/Label/Label.style.js +9 -9
  150. package/dist/Stepper/components/Step/components/Label/Label.types.d.ts +3 -2
  151. package/dist/Stepper/hooks/useStepIndexing.cjs +38 -0
  152. package/dist/Stepper/hooks/useStepIndexing.d.ts +10 -0
  153. package/dist/Stepper/hooks/useStepIndexing.js +38 -0
  154. package/dist/Stepper/hooks/useStepRegistration.cjs +25 -0
  155. package/dist/Stepper/hooks/useStepRegistration.d.ts +5 -0
  156. package/dist/Stepper/hooks/useStepRegistration.js +25 -0
  157. package/dist/Stepper/hooks/useStepperInteractive.cjs +96 -0
  158. package/dist/Stepper/hooks/useStepperInteractive.d.ts +30 -0
  159. package/dist/Stepper/hooks/useStepperInteractive.js +96 -0
  160. package/dist/Switch/Switch.d.ts +1 -1
  161. package/dist/TableHeading/TableHeading.d.ts +1 -1
  162. package/dist/TableHeading/TableHeading.style.d.ts +1 -1
  163. package/dist/Tabs/Tabs.d.ts +3 -3
  164. package/dist/Tabs/components/ContentPane/ContentPane.d.ts +1 -1
  165. package/dist/Tabs/components/TabBar/TabBar.d.ts +2 -2
  166. package/dist/Tabs/components/TabBar/components/Trigger/Trigger.d.ts +1 -1
  167. package/dist/Toast/Toast.d.ts +4 -4
  168. package/dist/Toast/components/Actions/Actions.d.ts +1 -1
  169. package/dist/Toast/components/Actions/Actions.types.d.ts +1 -1
  170. package/dist/Toast/components/Actions/components/Action/Action.cjs +1 -1
  171. package/dist/Toast/components/Actions/components/Action/Action.js +1 -1
  172. package/dist/Toast/components/Actions/components/Compose/Compose.d.ts +1 -1
  173. package/dist/Toast/components/Compose/Compose.cjs +2 -2
  174. package/dist/Toast/components/Compose/Compose.d.ts +1 -1
  175. package/dist/Toast/components/Compose/Compose.js +2 -2
  176. package/dist/Toast/components/Compose/Compose.style.d.ts +1 -1
  177. package/dist/Toast/components/Content/Content.d.ts +1 -1
  178. package/dist/Toast/components/Content/Content.types.d.ts +1 -1
  179. package/dist/Toast/components/Content/components/Compose/Compose.cjs +15 -3
  180. package/dist/Toast/components/Content/components/Compose/Compose.d.ts +1 -1
  181. package/dist/Toast/components/Content/components/Compose/Compose.js +15 -3
  182. package/dist/Toast/components/Content/components/Description/Description.cjs +1 -1
  183. package/dist/Toast/components/Content/components/Description/Description.js +1 -1
  184. package/dist/Toast/components/Content/components/Message/Message.cjs +1 -1
  185. package/dist/Toast/components/Content/components/Message/Message.js +1 -1
  186. package/dist/Toast/components/Icon/Icon.cjs +1 -0
  187. package/dist/Toast/components/Icon/Icon.js +1 -0
  188. package/dist/Toast/core/content.helper.cjs +1 -1
  189. package/dist/Toast/core/content.helper.js +2 -2
  190. package/dist/Toast/core/context.cjs +4 -5
  191. package/dist/Toast/core/context.d.ts +1 -2
  192. package/dist/Toast/core/context.js +4 -5
  193. package/dist/Toast/core/core.cjs +2 -0
  194. package/dist/Toast/core/core.d.ts +9 -8
  195. package/dist/Toast/core/core.js +3 -1
  196. package/dist/Toast/core/mapping.helpers.cjs +24 -16
  197. package/dist/Toast/core/mapping.helpers.d.ts +8 -6
  198. package/dist/Toast/core/mapping.helpers.js +25 -17
  199. package/dist/Toast/core/mapping.types.d.ts +9 -8
  200. package/dist/Tooltip/Tooltip.types.d.ts +1 -1
  201. package/dist/Typography/components/Heading/Heading.types.d.ts +1 -1
  202. package/dist/index.cjs +7 -1
  203. package/dist/index.d.ts +1 -0
  204. package/dist/index.js +8 -2
  205. package/package.json +3 -3
  206. package/dist/Section/components/Header/components/ActionButton/ActionButton.cjs +0 -23
  207. package/dist/Section/components/Header/components/ActionButton/ActionButton.js +0 -23
  208. package/dist/Section/components/Header/components/CollapseIndicator/CollapseIndicator.cjs +0 -19
  209. package/dist/Section/components/Header/components/CollapseIndicator/CollapseIndicator.d.ts +0 -2
  210. package/dist/Section/components/Header/components/CollapseIndicator/CollapseIndicator.js +0 -19
  211. package/dist/Section/components/Header/components/CollapseIndicator/CollapseIndicator.style.cjs +0 -11
  212. package/dist/Section/components/Header/components/CollapseIndicator/CollapseIndicator.style.d.ts +0 -1
  213. package/dist/Section/components/Header/components/CollapseIndicator/CollapseIndicator.style.js +0 -9
  214. package/dist/Section/components/Header/components/CollapseIndicator/CollapseIndicator.types.d.ts +0 -2
  215. package/dist/Stepper/Stepper.style.d.ts +0 -1
@@ -1,7 +1,9 @@
1
- import { StepProps } from './Step.types';
2
- declare const Step: (({ children, className, index, state }: StepProps) => import("react/jsx-runtime").JSX.Element) & {
3
- Compose: ({ state, ...restProps }: import("./components/Compose/Compose.types").ComposeProps) => import("react/jsx-runtime").JSX.Element;
4
- Icon: ({ children, className }: import("./components/Icon/Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
5
- Label: ({ children, className }: import("./components/Label/Label.types").LabelProps) => import("react/jsx-runtime").JSX.Element;
1
+ import { StepperStepProps } from './Step.types';
2
+ import { useStepContext } from './Step.context';
3
+ declare const Step: (({ children, ...restProps }: StepperStepProps) => import("react/jsx-runtime").JSX.Element) & {
4
+ Compose: ({ onClick, onKeyDown, ...restProps }: import("./components/Compose/Compose.types").ComposeProps) => import("react/jsx-runtime").JSX.Element | null;
5
+ Icon: ({ children, ...restProps }: import("./components/Icon/Icon.types").IconProps) => import("react/jsx-runtime").JSX.Element;
6
+ Label: ({ children, ...restProps }: import("../../..").TypographyBodyProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ useStepContext: typeof useStepContext;
6
8
  };
7
9
  export default Step;
@@ -2,27 +2,20 @@ import { j as jsxRuntimeExports } from "../../../node_modules/react/jsx-runtime.
2
2
  import Compose from "./components/Compose/Compose.js";
3
3
  import Icon from "./components/Icon/Icon.js";
4
4
  import Label from "./components/Label/Label.js";
5
- import { StepState } from "./Step.types.js";
5
+ import { useStepContext } from "./Step.context.js";
6
6
  const Step = Object.assign(({
7
7
  children,
8
- className,
9
- index = "",
10
- state = StepState.IDLE
11
- }) => {
12
- return jsxRuntimeExports.jsxs(Step.Compose, {
13
- className,
14
- state,
15
- "data-state": state,
16
- children: [jsxRuntimeExports.jsx(Step.Icon, {
17
- children: index
18
- }), jsxRuntimeExports.jsx(Step.Label, {
19
- children
20
- })]
21
- });
22
- }, {
8
+ ...restProps
9
+ }) => jsxRuntimeExports.jsxs(Step.Compose, {
10
+ ...restProps,
11
+ children: [jsxRuntimeExports.jsx(Step.Icon, {}), jsxRuntimeExports.jsx(Step.Label, {
12
+ children
13
+ })]
14
+ }), {
23
15
  Compose,
24
16
  Icon,
25
- Label
17
+ Label,
18
+ useStepContext
26
19
  });
27
20
  export {
28
21
  Step as default
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const StepState = {
3
+ const StepperStepState = {
4
4
  IDLE: "idle",
5
5
  FOCUSED: "focused",
6
6
  COMPLETED: "completed"
7
7
  };
8
- exports.StepState = StepState;
8
+ exports.StepperStepState = StepperStepState;
@@ -1,14 +1,12 @@
1
1
  import { HTMLAttributes } from 'react';
2
- export interface StepProps extends HTMLAttributes<HTMLDivElement> {
3
- state?: StepStateType;
4
- index?: string;
5
- }
6
- export declare const StepState: {
2
+ export type StepperStepProps = HTMLAttributes<HTMLDivElement>;
3
+ export declare const StepperStepState: {
7
4
  readonly IDLE: "idle";
8
5
  readonly FOCUSED: "focused";
9
6
  readonly COMPLETED: "completed";
10
7
  };
11
- export type StepStateType = (typeof StepState)[keyof typeof StepState];
12
- export interface StepContextType {
13
- state: StepStateType;
8
+ export type StepperStepStateType = (typeof StepperStepState)[keyof typeof StepperStepState];
9
+ export interface StepperStepContextType {
10
+ state: StepperStepStateType;
11
+ index: number;
14
12
  }
@@ -1,8 +1,8 @@
1
- const StepState = {
1
+ const StepperStepState = {
2
2
  IDLE: "idle",
3
3
  FOCUSED: "focused",
4
4
  COMPLETED: "completed"
5
5
  };
6
6
  export {
7
- StepState
7
+ StepperStepState
8
8
  };
@@ -2,19 +2,51 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const jsxRuntime = require("../../../../../node_modules/react/jsx-runtime.cjs");
4
4
  const React = require("react");
5
- const Compose_style = require("./Compose.style.cjs");
6
5
  const Step_context = require("../../Step.context.cjs");
7
6
  const Step_types = require("../../Step.types.cjs");
7
+ const useStepRegistration = require("../../../../hooks/useStepRegistration.cjs");
8
+ const Stepper_context = require("../../../../Stepper.context.cjs");
9
+ const Compose_style = require("./Compose.style.cjs");
10
+ const useStepperInteractive = require("../../../../hooks/useStepperInteractive.cjs");
8
11
  const Compose = ({
9
- state = Step_types.StepState.IDLE,
12
+ onClick,
13
+ onKeyDown,
10
14
  ...restProps
11
15
  }) => {
16
+ const {
17
+ currentStep,
18
+ onStepChange,
19
+ getIsStepInteractive
20
+ } = Stepper_context.useStepperContext();
21
+ const {
22
+ stepIndex
23
+ } = useStepRegistration.useStepRegistration();
24
+ let state = Step_types.StepperStepState.IDLE;
25
+ if (stepIndex >= 0) {
26
+ if (stepIndex < currentStep) {
27
+ state = Step_types.StepperStepState.COMPLETED;
28
+ } else if (stepIndex === currentStep) {
29
+ state = Step_types.StepperStepState.FOCUSED;
30
+ }
31
+ }
12
32
  const contextValue = React.useMemo(() => ({
33
+ state,
34
+ index: stepIndex
35
+ }), [state, stepIndex]);
36
+ if (stepIndex < 0) return null;
37
+ const interactiveProps = useStepperInteractive.getInteractiveStepProps({
38
+ onStepChange,
39
+ getIsStepInteractive,
40
+ stepIndex,
41
+ onClick,
42
+ onKeyDown,
13
43
  state
14
- }), [state]);
44
+ });
15
45
  return jsxRuntime.jsxRuntimeExports.jsx(Step_context.StepContext.Provider, {
16
46
  value: contextValue,
17
- children: jsxRuntime.jsxRuntimeExports.jsx(Compose_style.Container, {
47
+ children: jsxRuntime.jsxRuntimeExports.jsx(Compose_style.StepCompose, {
48
+ "data-state": state,
49
+ ...interactiveProps,
18
50
  ...restProps
19
51
  })
20
52
  });
@@ -1,3 +1,3 @@
1
1
  import { ComposeProps } from './Compose.types';
2
- declare const Compose: ({ state, ...restProps }: ComposeProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const Compose: ({ onClick, onKeyDown, ...restProps }: ComposeProps) => import("react/jsx-runtime").JSX.Element | null;
3
3
  export default Compose;
@@ -1,18 +1,50 @@
1
1
  import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
2
  import { useMemo } from "react";
3
- import { Container } from "./Compose.style.js";
4
3
  import { StepContext } from "../../Step.context.js";
5
- import { StepState } from "../../Step.types.js";
4
+ import { StepperStepState } from "../../Step.types.js";
5
+ import { useStepRegistration } from "../../../../hooks/useStepRegistration.js";
6
+ import { useStepperContext } from "../../../../Stepper.context.js";
7
+ import { StepCompose } from "./Compose.style.js";
8
+ import { getInteractiveStepProps } from "../../../../hooks/useStepperInteractive.js";
6
9
  const Compose = ({
7
- state = StepState.IDLE,
10
+ onClick,
11
+ onKeyDown,
8
12
  ...restProps
9
13
  }) => {
14
+ const {
15
+ currentStep,
16
+ onStepChange,
17
+ getIsStepInteractive
18
+ } = useStepperContext();
19
+ const {
20
+ stepIndex
21
+ } = useStepRegistration();
22
+ let state = StepperStepState.IDLE;
23
+ if (stepIndex >= 0) {
24
+ if (stepIndex < currentStep) {
25
+ state = StepperStepState.COMPLETED;
26
+ } else if (stepIndex === currentStep) {
27
+ state = StepperStepState.FOCUSED;
28
+ }
29
+ }
10
30
  const contextValue = useMemo(() => ({
31
+ state,
32
+ index: stepIndex
33
+ }), [state, stepIndex]);
34
+ if (stepIndex < 0) return null;
35
+ const interactiveProps = getInteractiveStepProps({
36
+ onStepChange,
37
+ getIsStepInteractive,
38
+ stepIndex,
39
+ onClick,
40
+ onKeyDown,
11
41
  state
12
- }), [state]);
42
+ });
13
43
  return jsxRuntimeExports.jsx(StepContext.Provider, {
14
44
  value: contextValue,
15
- children: jsxRuntimeExports.jsx(Container, {
45
+ children: jsxRuntimeExports.jsx(StepCompose, {
46
+ "data-state": state,
47
+ ...interactiveProps,
16
48
  ...restProps
17
49
  })
18
50
  });
@@ -4,8 +4,12 @@ const _styled = require("styled-components");
4
4
  const redisUiStyles = require("@redislabsdev/redis-ui-styles");
5
5
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
6
6
  const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
7
- const Container = _styled__default.default.div.withConfig({
8
- displayName: "Composestyle__Container",
7
+ const StepCompose = _styled__default.default.div.withConfig({
8
+ displayName: "Composestyle__StepCompose",
9
9
  componentId: "RedisUI__sc-1t34ip6-0"
10
- })(["display:flex;align-items:center;justify-content:left;gap:", ";flex-shrink:0;"], () => redisUiStyles.useTheme().components.stepper.step.gap);
11
- exports.Container = Container;
10
+ })(["display:flex;align-items:center;justify-content:left;gap:", ";flex-shrink:0;", " ", ""], () => redisUiStyles.useTheme().components.stepper.step.gap, redisUiStyles.getFocusStyle(), ({
11
+ tabIndex
12
+ }) => tabIndex === 0 && _styled.css`
13
+ cursor: pointer;
14
+ `);
15
+ exports.StepCompose = StepCompose;
@@ -1 +1 @@
1
- export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
1
+ export declare const StepCompose: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1,9 +1,13 @@
1
- import _styled from "styled-components";
2
- import { useTheme } from "@redislabsdev/redis-ui-styles";
3
- const Container = _styled.div.withConfig({
4
- displayName: "Composestyle__Container",
1
+ import _styled, { css } from "styled-components";
2
+ import { useTheme, getFocusStyle } from "@redislabsdev/redis-ui-styles";
3
+ const StepCompose = _styled.div.withConfig({
4
+ displayName: "Composestyle__StepCompose",
5
5
  componentId: "RedisUI__sc-1t34ip6-0"
6
- })(["display:flex;align-items:center;justify-content:left;gap:", ";flex-shrink:0;"], () => useTheme().components.stepper.step.gap);
6
+ })(["display:flex;align-items:center;justify-content:left;gap:", ";flex-shrink:0;", " ", ""], () => useTheme().components.stepper.step.gap, getFocusStyle(), ({
7
+ tabIndex
8
+ }) => tabIndex === 0 && css`
9
+ cursor: pointer;
10
+ `);
7
11
  export {
8
- Container
12
+ StepCompose
9
13
  };
@@ -1,5 +1,2 @@
1
- import { HTMLAttributes } from 'react';
2
- import { StepStateType } from '../../Step.types';
3
- export interface ComposeProps extends HTMLAttributes<HTMLDivElement> {
4
- state?: StepStateType;
5
- }
1
+ import { ComposeElementProps } from '../../../../../Helpers';
2
+ export type ComposeProps = ComposeElementProps;
@@ -7,15 +7,20 @@ const Icon_style = require("./Icon.style.cjs");
7
7
  const Typography = require("../../../../../Typography/Typography.cjs");
8
8
  const Icon = ({
9
9
  children,
10
- className
10
+ ...restProps
11
11
  }) => {
12
- const context = Step_context.useStepContext();
12
+ const {
13
+ index,
14
+ state
15
+ } = Step_context.useStepContext();
13
16
  return jsxRuntime.jsxRuntimeExports.jsx(Icon_style.Container, {
14
- className,
15
- "data-state": context.state,
16
- children: context.state === Step_types.StepState.COMPLETED ? jsxRuntime.jsxRuntimeExports.jsx(Icon_style.IconCheck, {}) : jsxRuntime.jsxRuntimeExports.jsx(Typography.default.Body, {
17
+ ...restProps,
18
+ "data-state": state,
19
+ "aria-hidden": true,
20
+ children: state === Step_types.StepperStepState.COMPLETED ? jsxRuntime.jsxRuntimeExports.jsx(Icon_style.IconCheck, {}) : jsxRuntime.jsxRuntimeExports.jsx(Typography.default.Body, {
17
21
  size: "S",
18
- children
22
+ component: "div",
23
+ children: children || index + 1
19
24
  })
20
25
  });
21
26
  };
@@ -1,3 +1,3 @@
1
1
  import { IconProps } from './Icon.types';
2
- declare const Icon: ({ children, className }: IconProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const Icon: ({ children, ...restProps }: IconProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default Icon;
@@ -1,19 +1,24 @@
1
1
  import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
2
  import { useStepContext } from "../../Step.context.js";
3
- import { StepState } from "../../Step.types.js";
3
+ import { StepperStepState } from "../../Step.types.js";
4
4
  import { Container, IconCheck } from "./Icon.style.js";
5
5
  import Typography from "../../../../../Typography/Typography.js";
6
6
  const Icon = ({
7
7
  children,
8
- className
8
+ ...restProps
9
9
  }) => {
10
- const context = useStepContext();
10
+ const {
11
+ index,
12
+ state
13
+ } = useStepContext();
11
14
  return jsxRuntimeExports.jsx(Container, {
12
- className,
13
- "data-state": context.state,
14
- children: context.state === StepState.COMPLETED ? jsxRuntimeExports.jsx(IconCheck, {}) : jsxRuntimeExports.jsx(Typography.Body, {
15
+ ...restProps,
16
+ "data-state": state,
17
+ "aria-hidden": true,
18
+ children: state === StepperStepState.COMPLETED ? jsxRuntimeExports.jsx(IconCheck, {}) : jsxRuntimeExports.jsx(Typography.Body, {
15
19
  size: "S",
16
- children
20
+ component: "div",
21
+ children: children || index + 1
17
22
  })
18
23
  });
19
24
  };
@@ -13,7 +13,7 @@ const Container = _styled__default.default.div.withConfig({
13
13
  const {
14
14
  states
15
15
  } = redisUiStyles.useTheme().components.stepper.step;
16
- return Object.values(Step_types.StepState).map((state) => {
16
+ return Object.values(Step_types.StepperStepState).map((state) => {
17
17
  const theme = states[state].indicator;
18
18
  return _styled.css`
19
19
  &[data-state='${state}'] {
@@ -1,7 +1,7 @@
1
1
  import _styled, { css } from "styled-components";
2
2
  import { useTheme } from "@redislabsdev/redis-ui-styles";
3
3
  import { CheckBoldIcon } from "@redislabsdev/redis-ui-icons";
4
- import { StepState } from "../../Step.types.js";
4
+ import { StepperStepState } from "../../Step.types.js";
5
5
  const Container = _styled.div.withConfig({
6
6
  displayName: "Iconstyle__Container",
7
7
  componentId: "RedisUI__sc-1ojkwgp-0"
@@ -9,7 +9,7 @@ const Container = _styled.div.withConfig({
9
9
  const {
10
10
  states
11
11
  } = useTheme().components.stepper.step;
12
- return Object.values(StepState).map((state) => {
12
+ return Object.values(StepperStepState).map((state) => {
13
13
  const theme = states[state].indicator;
14
14
  return css`
15
15
  &[data-state='${state}'] {
@@ -3,21 +3,19 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const jsxRuntime = require("../../../../../node_modules/react/jsx-runtime.cjs");
4
4
  const Step_context = require("../../Step.context.cjs");
5
5
  const Label_style = require("./Label.style.cjs");
6
- const Step_types = require("../../Step.types.cjs");
7
- const Typography = require("../../../../../Typography/Typography.cjs");
8
6
  const Label = ({
9
7
  children,
10
- className
8
+ ...restProps
11
9
  }) => {
12
- const context = Step_context.useStepContext();
13
- return jsxRuntime.jsxRuntimeExports.jsx(Label_style.Container, {
14
- className,
15
- "data-state": context.state,
16
- children: jsxRuntime.jsxRuntimeExports.jsx(Typography.default.Body, {
17
- size: "M",
18
- variant: context.state === Step_types.StepState.FOCUSED ? "semiBold" : "regular",
19
- children
20
- })
21
- });
10
+ const {
11
+ state
12
+ } = Step_context.useStepContext();
13
+ return children ? jsxRuntime.jsxRuntimeExports.jsx(Label_style.StepLabel, {
14
+ size: "M",
15
+ component: "div",
16
+ ...restProps,
17
+ "data-state": state,
18
+ children
19
+ }) : null;
22
20
  };
23
21
  exports.default = Label;
@@ -1,3 +1,3 @@
1
1
  import { LabelProps } from './Label.types';
2
- declare const Label: ({ children, className }: LabelProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const Label: ({ children, ...restProps }: LabelProps) => import("react/jsx-runtime").JSX.Element | null;
3
3
  export default Label;
@@ -1,22 +1,20 @@
1
1
  import { j as jsxRuntimeExports } from "../../../../../node_modules/react/jsx-runtime.js";
2
2
  import { useStepContext } from "../../Step.context.js";
3
- import { Container } from "./Label.style.js";
4
- import { StepState } from "../../Step.types.js";
5
- import Typography from "../../../../../Typography/Typography.js";
3
+ import { StepLabel } from "./Label.style.js";
6
4
  const Label = ({
7
5
  children,
8
- className
6
+ ...restProps
9
7
  }) => {
10
- const context = useStepContext();
11
- return jsxRuntimeExports.jsx(Container, {
12
- className,
13
- "data-state": context.state,
14
- children: jsxRuntimeExports.jsx(Typography.Body, {
15
- size: "M",
16
- variant: context.state === StepState.FOCUSED ? "semiBold" : "regular",
17
- children
18
- })
19
- });
8
+ const {
9
+ state
10
+ } = useStepContext();
11
+ return children ? jsxRuntimeExports.jsx(StepLabel, {
12
+ size: "M",
13
+ component: "div",
14
+ ...restProps,
15
+ "data-state": state,
16
+ children
17
+ }) : null;
20
18
  };
21
19
  export {
22
20
  Label as default
@@ -3,25 +3,25 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const _styled = require("styled-components");
4
4
  const redisUiStyles = require("@redislabsdev/redis-ui-styles");
5
5
  const Step_types = require("../../Step.types.cjs");
6
+ const Typography = require("../../../../../Typography/Typography.cjs");
6
7
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
7
8
  const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
8
- const Container = _styled__default.default.div.withConfig({
9
- displayName: "Labelstyle__Container",
9
+ const StepLabel = _styled__default.default(Typography.default.Body).withConfig({
10
+ displayName: "Labelstyle__StepLabel",
10
11
  componentId: "RedisUI__sc-dclu3d-0"
11
- })(["display:flex;align-items:center;justify-content:center;", ""], () => {
12
+ })(["display:flex;align-items:center;", ""], () => {
12
13
  const {
13
14
  states
14
15
  } = redisUiStyles.useTheme().components.stepper.step;
15
- return Object.values(Step_types.StepState).map((state) => {
16
+ return Object.values(Step_types.StepperStepState).map((state) => {
16
17
  const theme = states[state].label;
17
18
  return _styled.css`
18
19
  &[data-state='${state}'] {
19
20
  color: ${theme.textColor};
20
- > * {
21
- letter-spacing: ${theme.letterSpacing};
22
- }
21
+ letter-spacing: ${theme.letterSpacing};
22
+ font-weight: ${theme.fontWeight};
23
23
  }
24
24
  `;
25
25
  });
26
26
  });
27
- exports.Container = Container;
27
+ exports.StepLabel = StepLabel;
@@ -1 +1 @@
1
- export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
1
+ export declare const StepLabel: import("styled-components").StyledComponent<({ size, variant, color, component, ellipsis, ...restProps }: import("../../../../../Typography").TypographyBodyProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
@@ -1,25 +1,25 @@
1
1
  import _styled, { css } from "styled-components";
2
2
  import { useTheme } from "@redislabsdev/redis-ui-styles";
3
- import { StepState } from "../../Step.types.js";
4
- const Container = _styled.div.withConfig({
5
- displayName: "Labelstyle__Container",
3
+ import { StepperStepState } from "../../Step.types.js";
4
+ import Typography from "../../../../../Typography/Typography.js";
5
+ const StepLabel = _styled(Typography.Body).withConfig({
6
+ displayName: "Labelstyle__StepLabel",
6
7
  componentId: "RedisUI__sc-dclu3d-0"
7
- })(["display:flex;align-items:center;justify-content:center;", ""], () => {
8
+ })(["display:flex;align-items:center;", ""], () => {
8
9
  const {
9
10
  states
10
11
  } = useTheme().components.stepper.step;
11
- return Object.values(StepState).map((state) => {
12
+ return Object.values(StepperStepState).map((state) => {
12
13
  const theme = states[state].label;
13
14
  return css`
14
15
  &[data-state='${state}'] {
15
16
  color: ${theme.textColor};
16
- > * {
17
- letter-spacing: ${theme.letterSpacing};
18
- }
17
+ letter-spacing: ${theme.letterSpacing};
18
+ font-weight: ${theme.fontWeight};
19
19
  }
20
20
  `;
21
21
  });
22
22
  });
23
23
  export {
24
- Container
24
+ StepLabel
25
25
  };
@@ -1,2 +1,3 @@
1
- import { HTMLAttributes } from 'react';
2
- export type LabelProps = HTMLAttributes<HTMLDivElement>;
1
+ import { ComponentProps } from 'react';
2
+ import { Typography } from '../../../../../Typography';
3
+ export type LabelProps = ComponentProps<typeof Typography.Body>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const useStepIndexing = () => {
5
+ const [stepOrder, setStepOrder] = React.useState([]);
6
+ const pendingStepsRef = React.useRef(/* @__PURE__ */ new Set());
7
+ const renderOrderRef = React.useRef([]);
8
+ const registerStep = React.useCallback((stepId) => {
9
+ pendingStepsRef.current.add(stepId);
10
+ }, []);
11
+ const unregisterStep = React.useCallback((stepId) => {
12
+ pendingStepsRef.current.delete(stepId);
13
+ setStepOrder((prev) => prev.filter((id) => id !== stepId));
14
+ }, []);
15
+ const getStepIndex = React.useCallback((stepId) => {
16
+ return stepOrder.indexOf(stepId);
17
+ }, [stepOrder]);
18
+ const collectStepOrder = React.useCallback((stepId) => {
19
+ if (!renderOrderRef.current.includes(stepId)) {
20
+ renderOrderRef.current.push(stepId);
21
+ }
22
+ }, []);
23
+ renderOrderRef.current = [];
24
+ React.useLayoutEffect(() => {
25
+ const newOrder = renderOrderRef.current.filter((id) => pendingStepsRef.current.has(id));
26
+ if (JSON.stringify(newOrder) !== JSON.stringify(stepOrder)) {
27
+ setStepOrder(newOrder);
28
+ }
29
+ });
30
+ return {
31
+ registerStep,
32
+ unregisterStep,
33
+ getStepIndex,
34
+ collectStepOrder,
35
+ totalSteps: stepOrder == null ? void 0 : stepOrder.length
36
+ };
37
+ };
38
+ exports.useStepIndexing = useStepIndexing;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Concurrency safe Step indexing manager
3
+ */
4
+ export declare const useStepIndexing: () => {
5
+ registerStep: (stepId: string) => void;
6
+ unregisterStep: (stepId: string) => void;
7
+ getStepIndex: (stepId: string) => number;
8
+ collectStepOrder: (stepId: string) => void;
9
+ totalSteps: number;
10
+ };
@@ -0,0 +1,38 @@
1
+ import { useState, useRef, useCallback, useLayoutEffect } from "react";
2
+ const useStepIndexing = () => {
3
+ const [stepOrder, setStepOrder] = useState([]);
4
+ const pendingStepsRef = useRef(/* @__PURE__ */ new Set());
5
+ const renderOrderRef = useRef([]);
6
+ const registerStep = useCallback((stepId) => {
7
+ pendingStepsRef.current.add(stepId);
8
+ }, []);
9
+ const unregisterStep = useCallback((stepId) => {
10
+ pendingStepsRef.current.delete(stepId);
11
+ setStepOrder((prev) => prev.filter((id) => id !== stepId));
12
+ }, []);
13
+ const getStepIndex = useCallback((stepId) => {
14
+ return stepOrder.indexOf(stepId);
15
+ }, [stepOrder]);
16
+ const collectStepOrder = useCallback((stepId) => {
17
+ if (!renderOrderRef.current.includes(stepId)) {
18
+ renderOrderRef.current.push(stepId);
19
+ }
20
+ }, []);
21
+ renderOrderRef.current = [];
22
+ useLayoutEffect(() => {
23
+ const newOrder = renderOrderRef.current.filter((id) => pendingStepsRef.current.has(id));
24
+ if (JSON.stringify(newOrder) !== JSON.stringify(stepOrder)) {
25
+ setStepOrder(newOrder);
26
+ }
27
+ });
28
+ return {
29
+ registerStep,
30
+ unregisterStep,
31
+ getStepIndex,
32
+ collectStepOrder,
33
+ totalSteps: stepOrder == null ? void 0 : stepOrder.length
34
+ };
35
+ };
36
+ export {
37
+ useStepIndexing
38
+ };
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const index = require("../../node_modules/@radix-ui/react-id/dist/index.cjs");
5
+ const Stepper_context = require("../Stepper.context.cjs");
6
+ const useStepRegistration = () => {
7
+ const {
8
+ registerStep,
9
+ unregisterStep,
10
+ getStepIndex,
11
+ collectStepOrder
12
+ } = Stepper_context.useStepperContext();
13
+ const stepId = index.useId();
14
+ React.useLayoutEffect(() => {
15
+ registerStep(stepId);
16
+ return () => unregisterStep(stepId);
17
+ }, [stepId, registerStep, unregisterStep]);
18
+ collectStepOrder(stepId);
19
+ const stepIndex = getStepIndex(stepId);
20
+ return {
21
+ stepId,
22
+ stepIndex
23
+ };
24
+ };
25
+ exports.useStepRegistration = useStepRegistration;