@ozen-ui/kit 0.80.0 → 0.81.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 (191) hide show
  1. package/__inner__/cjs/components/Dialog/Dialog.d.ts +1 -0
  2. package/__inner__/cjs/components/DialogNext/components/DialogModal/DialogModal.d.ts +1 -0
  3. package/__inner__/cjs/components/DialogNext/types.d.ts +1 -1
  4. package/__inner__/cjs/components/Drawer/Drawer.d.ts +1 -0
  5. package/__inner__/cjs/components/Modal/Modal.d.ts +1 -0
  6. package/__inner__/cjs/components/Modal/Modal.js +13 -5
  7. package/__inner__/cjs/components/Modal/constants.d.ts +1 -0
  8. package/__inner__/cjs/components/Modal/constants.js +2 -1
  9. package/__inner__/cjs/components/Modal/types.d.ts +2 -0
  10. package/__inner__/cjs/components/OzenProvider/providers/theme/entities/defaultProps.d.ts +2 -1
  11. package/__inner__/cjs/components/StepperVertical/StepperVertical.d.ts +1 -0
  12. package/__inner__/cjs/components/StepperVertical/StepperVertical.js +14 -3
  13. package/__inner__/cjs/components/StepperVertical/StepperVerticalContext.d.ts +8 -0
  14. package/__inner__/cjs/components/StepperVertical/StepperVerticalContext.js +10 -0
  15. package/__inner__/cjs/components/StepperVertical/hooks/index.d.ts +4 -0
  16. package/__inner__/cjs/components/StepperVertical/hooks/index.js +7 -0
  17. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/index.d.ts +2 -0
  18. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/index.js +5 -0
  19. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/types.d.ts +11 -0
  20. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/types.js +2 -0
  21. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/useStepperVerticalCreateStep.d.ts +2 -0
  22. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalCreateStep/useStepperVerticalCreateStep.js +48 -0
  23. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepHelper.d.ts +5 -0
  24. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepHelper.js +92 -0
  25. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/index.d.ts +2 -0
  26. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/index.js +5 -0
  27. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/types.d.ts +8 -0
  28. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/types.js +2 -0
  29. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/useStepperVerticalStepsControl.d.ts +2 -0
  30. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsControl/useStepperVerticalStepsControl.js +26 -0
  31. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/index.d.ts +2 -0
  32. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/index.js +5 -0
  33. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/types.d.ts +15 -0
  34. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/types.js +2 -0
  35. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/useStepperVerticalStepsStructure.d.ts +8 -0
  36. package/__inner__/cjs/components/StepperVertical/hooks/useStepperVerticalStepsStructure/useStepperVerticalStepsStructure.js +82 -0
  37. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.js +1 -0
  38. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.css +42 -4
  39. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.d.ts +0 -1
  40. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.js +46 -16
  41. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.d.ts +3 -0
  42. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.js +11 -0
  43. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepRootContext.d.ts +7 -0
  44. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepRootContext.js +15 -0
  45. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/classNames.d.ts +1 -0
  46. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/classNames.js +5 -0
  47. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/entities/variant.d.ts +1 -1
  48. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/entities/variant.js +1 -0
  49. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/index.d.ts +2 -0
  50. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/index.js +2 -0
  51. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/types.d.ts +2 -0
  52. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.css +10 -0
  53. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.d.ts +3 -0
  54. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.js +31 -0
  55. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/constants.d.ts +2 -0
  56. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/constants.js +6 -0
  57. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/content.d.ts +4 -0
  58. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/content.js +2 -0
  59. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/index.d.ts +1 -0
  60. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/index.js +4 -0
  61. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/index.d.ts +3 -0
  62. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/index.js +6 -0
  63. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.d.ts +11 -0
  64. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.js +2 -0
  65. package/__inner__/cjs/components/StepperVertical/modules/index.d.ts +1 -0
  66. package/__inner__/cjs/components/StepperVertical/modules/index.js +1 -0
  67. package/__inner__/cjs/hooks/useEventBus/index.d.ts +1 -0
  68. package/__inner__/cjs/hooks/useEventBus/index.js +4 -0
  69. package/__inner__/cjs/hooks/useEventBus/useEventBus.d.ts +3 -0
  70. package/__inner__/cjs/hooks/useEventBus/useEventBus.js +9 -0
  71. package/__inner__/cjs/hooks/useEventBusEvents/index.d.ts +2 -0
  72. package/__inner__/cjs/hooks/useEventBusEvents/index.js +5 -0
  73. package/__inner__/cjs/hooks/useEventBusEvents/types.d.ts +4 -0
  74. package/__inner__/cjs/hooks/useEventBusEvents/types.js +2 -0
  75. package/__inner__/cjs/hooks/useEventBusEvents/useEventBusEvents.d.ts +5 -0
  76. package/__inner__/cjs/hooks/useEventBusEvents/useEventBusEvents.js +40 -0
  77. package/__inner__/cjs/utils/eventBus/EventBus.d.ts +8 -0
  78. package/__inner__/cjs/utils/eventBus/EventBus.js +51 -0
  79. package/__inner__/cjs/utils/eventBus/index.d.ts +2 -0
  80. package/__inner__/cjs/utils/eventBus/index.js +5 -0
  81. package/__inner__/cjs/utils/eventBus/types/EventBusEvents.d.ts +1 -0
  82. package/__inner__/cjs/utils/eventBus/types/EventBusEvents.js +2 -0
  83. package/__inner__/cjs/utils/eventBus/types/EventBusListener.d.ts +5 -0
  84. package/__inner__/cjs/utils/eventBus/types/EventBusListener.js +2 -0
  85. package/__inner__/cjs/utils/eventBus/types/EventBusListenerCallback.d.ts +1 -0
  86. package/__inner__/cjs/utils/eventBus/types/EventBusListenerCallback.js +2 -0
  87. package/__inner__/cjs/utils/eventBus/types/ExtractEventBusEvents.d.ts +3 -0
  88. package/__inner__/cjs/utils/eventBus/types/ExtractEventBusEvents.js +2 -0
  89. package/__inner__/cjs/utils/eventBus/types/index.d.ts +4 -0
  90. package/__inner__/cjs/utils/eventBus/types/index.js +7 -0
  91. package/__inner__/cjs/utils/index.d.ts +1 -0
  92. package/__inner__/cjs/utils/index.js +1 -0
  93. package/__inner__/cjs/utils/test-utils.d.ts +9 -1
  94. package/__inner__/cjs/utils/test-utils.js +19 -2
  95. package/__inner__/esm/components/Dialog/Dialog.d.ts +1 -0
  96. package/__inner__/esm/components/DialogNext/components/DialogModal/DialogModal.d.ts +1 -0
  97. package/__inner__/esm/components/DialogNext/types.d.ts +1 -1
  98. package/__inner__/esm/components/Drawer/Drawer.d.ts +1 -0
  99. package/__inner__/esm/components/Modal/Modal.d.ts +1 -0
  100. package/__inner__/esm/components/Modal/Modal.js +14 -6
  101. package/__inner__/esm/components/Modal/constants.d.ts +1 -0
  102. package/__inner__/esm/components/Modal/constants.js +1 -0
  103. package/__inner__/esm/components/Modal/types.d.ts +2 -0
  104. package/__inner__/esm/components/OzenProvider/providers/theme/entities/defaultProps.d.ts +2 -1
  105. package/__inner__/esm/components/StepperVertical/StepperVertical.d.ts +1 -0
  106. package/__inner__/esm/components/StepperVertical/StepperVertical.js +14 -3
  107. package/__inner__/esm/components/StepperVertical/StepperVerticalContext.d.ts +8 -0
  108. package/__inner__/esm/components/StepperVertical/StepperVerticalContext.js +10 -0
  109. package/__inner__/esm/components/StepperVertical/hooks/index.d.ts +4 -0
  110. package/__inner__/esm/components/StepperVertical/hooks/index.js +4 -0
  111. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/index.d.ts +2 -0
  112. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/index.js +2 -0
  113. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/types.d.ts +11 -0
  114. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/types.js +1 -0
  115. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/useStepperVerticalCreateStep.d.ts +2 -0
  116. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalCreateStep/useStepperVerticalCreateStep.js +44 -0
  117. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepHelper.d.ts +5 -0
  118. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepHelper.js +88 -0
  119. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/index.d.ts +2 -0
  120. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/index.js +2 -0
  121. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/types.d.ts +8 -0
  122. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/types.js +1 -0
  123. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/useStepperVerticalStepsControl.d.ts +2 -0
  124. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsControl/useStepperVerticalStepsControl.js +22 -0
  125. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/index.d.ts +2 -0
  126. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/index.js +2 -0
  127. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/types.d.ts +15 -0
  128. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/types.js +1 -0
  129. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/useStepperVerticalStepsStructure.d.ts +8 -0
  130. package/__inner__/esm/components/StepperVertical/hooks/useStepperVerticalStepsStructure/useStepperVerticalStepsStructure.js +78 -0
  131. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.js +2 -1
  132. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.css +42 -4
  133. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.d.ts +0 -1
  134. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.js +46 -16
  135. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.d.ts +3 -0
  136. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.js +11 -0
  137. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepRootContext.d.ts +7 -0
  138. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepRootContext.js +11 -0
  139. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/classNames.d.ts +1 -0
  140. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/classNames.js +2 -0
  141. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/variant.d.ts +1 -1
  142. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/variant.js +1 -0
  143. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/index.d.ts +2 -0
  144. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/index.js +2 -0
  145. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/types.d.ts +2 -0
  146. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.css +10 -0
  147. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.d.ts +3 -0
  148. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.js +28 -0
  149. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/constants.d.ts +2 -0
  150. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/constants.js +3 -0
  151. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/content.d.ts +4 -0
  152. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/content.js +1 -0
  153. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/index.d.ts +1 -0
  154. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/entities/index.js +1 -0
  155. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/index.d.ts +3 -0
  156. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/index.js +3 -0
  157. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.d.ts +11 -0
  158. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepSubstepButton/types.js +1 -0
  159. package/__inner__/esm/components/StepperVertical/modules/index.d.ts +1 -0
  160. package/__inner__/esm/components/StepperVertical/modules/index.js +1 -0
  161. package/__inner__/esm/hooks/useEventBus/index.d.ts +1 -0
  162. package/__inner__/esm/hooks/useEventBus/index.js +1 -0
  163. package/__inner__/esm/hooks/useEventBus/useEventBus.d.ts +3 -0
  164. package/__inner__/esm/hooks/useEventBus/useEventBus.js +5 -0
  165. package/__inner__/esm/hooks/useEventBusEvents/index.d.ts +2 -0
  166. package/__inner__/esm/hooks/useEventBusEvents/index.js +2 -0
  167. package/__inner__/esm/hooks/useEventBusEvents/types.d.ts +4 -0
  168. package/__inner__/esm/hooks/useEventBusEvents/types.js +1 -0
  169. package/__inner__/esm/hooks/useEventBusEvents/useEventBusEvents.d.ts +5 -0
  170. package/__inner__/esm/hooks/useEventBusEvents/useEventBusEvents.js +36 -0
  171. package/__inner__/esm/utils/eventBus/EventBus.d.ts +8 -0
  172. package/__inner__/esm/utils/eventBus/EventBus.js +48 -0
  173. package/__inner__/esm/utils/eventBus/index.d.ts +2 -0
  174. package/__inner__/esm/utils/eventBus/index.js +2 -0
  175. package/__inner__/esm/utils/eventBus/types/EventBusEvents.d.ts +1 -0
  176. package/__inner__/esm/utils/eventBus/types/EventBusEvents.js +1 -0
  177. package/__inner__/esm/utils/eventBus/types/EventBusListener.d.ts +5 -0
  178. package/__inner__/esm/utils/eventBus/types/EventBusListener.js +1 -0
  179. package/__inner__/esm/utils/eventBus/types/EventBusListenerCallback.d.ts +1 -0
  180. package/__inner__/esm/utils/eventBus/types/EventBusListenerCallback.js +1 -0
  181. package/__inner__/esm/utils/eventBus/types/ExtractEventBusEvents.d.ts +3 -0
  182. package/__inner__/esm/utils/eventBus/types/ExtractEventBusEvents.js +1 -0
  183. package/__inner__/esm/utils/eventBus/types/index.d.ts +4 -0
  184. package/__inner__/esm/utils/eventBus/types/index.js +4 -0
  185. package/__inner__/esm/utils/index.d.ts +1 -0
  186. package/__inner__/esm/utils/index.js +1 -0
  187. package/__inner__/esm/utils/test-utils.d.ts +9 -1
  188. package/__inner__/esm/utils/test-utils.js +16 -1
  189. package/package.json +4 -4
  190. package/useEventBus/package.json +5 -0
  191. package/useEventBusEvents/package.json +5 -0
@@ -34,6 +34,7 @@ export declare const Dialog: React.ForwardRefExoticComponent<{
34
34
  className?: string;
35
35
  'data-testid'?: string;
36
36
  ignoreClickOutsideRefs?: React.RefObject<HTMLElement>[];
37
+ closeOnlyOnTop?: boolean;
37
38
  } & {
38
39
  container?: import("../../hooks/usePortalContainer").PortalContainer;
39
40
  } & Omit<import("../PortalBase").PortalBaseBaseProps, "container"> & {
@@ -30,6 +30,7 @@ export declare const DialogModal: React.ForwardRefExoticComponent<{
30
30
  className?: string;
31
31
  'data-testid'?: string;
32
32
  ignoreClickOutsideRefs?: React.RefObject<HTMLElement>[];
33
+ closeOnlyOnTop?: boolean;
33
34
  } & {
34
35
  container?: import("../../../../hooks/usePortalContainer").PortalContainer;
35
36
  } & Omit<import("../../../PortalBase").PortalBaseBaseProps, "container"> & {
@@ -6,7 +6,7 @@ import type { DIALOG_DEFAULT_DEVICE_TYPE } from './constants';
6
6
  import type { DialogDeviceType, DialogSizeVariantByDeviceType, DialogVariant } from './entities';
7
7
  export type DialogRef = HTMLDivElement;
8
8
  export type DialogRenderCloseButton = RenderContentTypeEmptyProps['content'];
9
- export type DialogContentBottomSheetProps = Omit<DialogBottomSheetProps, 'hideCloseButton' | 'backdrop' | 'open' | 'size' | 'variant' | 'closeButton' | 'onClose' | 'className'>;
9
+ export type DialogContentBottomSheetProps = Omit<DialogBottomSheetProps, 'hideCloseButton' | 'backdrop' | 'open' | 'size' | 'variant' | 'closeButton' | 'onClose' | 'className' | 'children'>;
10
10
  export type DialogContentModalProps = Omit<DialogModalProps, 'open' | 'onClose' | 'hideCloseButton' | 'className' | 'closeButton' | 'size' | 'variant' | 'children'>;
11
11
  export type DialogBaseProps = {
12
12
  /** Если `true`, будет отображаться окно диалога */
@@ -35,6 +35,7 @@ export declare const Drawer: React.ForwardRefExoticComponent<{
35
35
  className?: string;
36
36
  'data-testid'?: string;
37
37
  ignoreClickOutsideRefs?: React.RefObject<HTMLElement>[];
38
+ closeOnlyOnTop?: boolean;
38
39
  } & {
39
40
  container?: import("../../hooks/usePortalContainer").PortalContainer;
40
41
  } & Omit<import("../PortalBase").PortalBaseBaseProps, "container"> & {
@@ -24,6 +24,7 @@ export declare const Modal: React.ForwardRefExoticComponent<{
24
24
  className?: string;
25
25
  'data-testid'?: string;
26
26
  ignoreClickOutsideRefs?: React.RefObject<HTMLElement>[];
27
+ closeOnlyOnTop?: boolean;
27
28
  } & {
28
29
  container?: import("../../hooks/usePortalContainer").PortalContainer;
29
30
  } & Omit<import("../PortalBase").PortalBaseBaseProps, "container"> & {
@@ -12,6 +12,7 @@ var useFocusTrap_1 = require("../../hooks/useFocusTrap");
12
12
  var useLockBodyScroll_1 = require("../../hooks/useLockBodyScroll");
13
13
  var useMultiRef_1 = require("../../hooks/useMultiRef");
14
14
  var usePortalContainer_1 = require("../../hooks/usePortalContainer");
15
+ var useThemeProps_1 = require("../../hooks/useThemeProps");
15
16
  var classname_1 = require("../../utils/classname");
16
17
  var isKey_1 = require("../../utils/isKey");
17
18
  var Backdrop_1 = require("../Backdrop");
@@ -20,8 +21,12 @@ var components_1 = require("./components");
20
21
  var constants_1 = require("./constants");
21
22
  var index_1 = require("./index");
22
23
  exports.cnModal = (0, classname_1.cn)('Modal');
23
- exports.Modal = (0, react_1.forwardRef)(function (_a, ref) {
24
- var _b = _a.open, open = _b === void 0 ? constants_1.MODAL_DEFAULT_OPEN : _b, _c = _a.keepMounted, keepMounted = _c === void 0 ? constants_1.MODAL_DEFAULT_KEEP_MOUNTED : _c, _d = _a.hideBackdrop, hideBackdrop = _d === void 0 ? constants_1.MODAL_DEFAULT_HIDE_BACKDROP : _d, _e = _a.disableScrollLock, disableScrollLock = _e === void 0 ? constants_1.MODAL_DEFAULT_DISABLE_SCROLL_LOCK : _e, _f = _a.disableClickOutside, disableClickOutside = _f === void 0 ? constants_1.MODAL_DEFAULT_DISABLE_CLICK_OUTSIDE : _f, _g = _a.disableEscapeKeyDown, disableEscapeKeyDown = _g === void 0 ? constants_1.MODAL_DEFAULT_ESCAPE_KEY_DOWN : _g, children = _a.children, onEnter = _a.onEnter, onEntered = _a.onEntered, onExit = _a.onExit, onExitedProp = _a.onExited, onClose = _a.onClose, backdropProps = _a.backdropProps, windowProps = _a.windowProps, transitionProps = _a.transitionProps, className = _a.className, ignoreClickOutsideRefs = _a.ignoreClickOutsideRefs, _h = _a.container, containerProp = _h === void 0 ? constants_1.MODAL_DEFAULT_PORTAL_CONTAINER : _h, other = tslib_1.__rest(_a, ["open", "keepMounted", "hideBackdrop", "disableScrollLock", "disableClickOutside", "disableEscapeKeyDown", "children", "onEnter", "onEntered", "onExit", "onExited", "onClose", "backdropProps", "windowProps", "transitionProps", "className", "ignoreClickOutsideRefs", "container"]);
24
+ exports.Modal = (0, react_1.forwardRef)(function (inProps, ref) {
25
+ var props = (0, useThemeProps_1.useThemeProps)({
26
+ name: 'Modal',
27
+ props: inProps,
28
+ });
29
+ var _a = props.open, open = _a === void 0 ? constants_1.MODAL_DEFAULT_OPEN : _a, _b = props.keepMounted, keepMounted = _b === void 0 ? constants_1.MODAL_DEFAULT_KEEP_MOUNTED : _b, _c = props.hideBackdrop, hideBackdrop = _c === void 0 ? constants_1.MODAL_DEFAULT_HIDE_BACKDROP : _c, _d = props.disableScrollLock, disableScrollLock = _d === void 0 ? constants_1.MODAL_DEFAULT_DISABLE_SCROLL_LOCK : _d, _e = props.disableClickOutside, disableClickOutside = _e === void 0 ? constants_1.MODAL_DEFAULT_DISABLE_CLICK_OUTSIDE : _e, _f = props.disableEscapeKeyDown, disableEscapeKeyDown = _f === void 0 ? constants_1.MODAL_DEFAULT_ESCAPE_KEY_DOWN : _f, children = props.children, onEnter = props.onEnter, onEntered = props.onEntered, onExit = props.onExit, onExitedProp = props.onExited, onClose = props.onClose, backdropProps = props.backdropProps, windowProps = props.windowProps, transitionProps = props.transitionProps, className = props.className, ignoreClickOutsideRefs = props.ignoreClickOutsideRefs, _g = props.container, containerProp = _g === void 0 ? constants_1.MODAL_DEFAULT_PORTAL_CONTAINER : _g, _h = props.closeOnlyOnTop, closeOnlyOnTop = _h === void 0 ? constants_1.MODAL_DEFAULT_CLOSE_ONLY_ON_TOP : _h, other = tslib_1.__rest(props, ["open", "keepMounted", "hideBackdrop", "disableScrollLock", "disableClickOutside", "disableEscapeKeyDown", "children", "onEnter", "onEntered", "onExit", "onExited", "onClose", "backdropProps", "windowProps", "transitionProps", "className", "ignoreClickOutsideRefs", "container", "closeOnlyOnTop"]);
25
30
  var hasBackdrop = !hideBackdrop;
26
31
  var rootRef = (0, react_1.useRef)(null);
27
32
  var windowInnerRef = (0, react_1.useRef)(null);
@@ -35,6 +40,7 @@ exports.Modal = (0, react_1.forwardRef)(function (_a, ref) {
35
40
  active: isTop,
36
41
  focusinTrap: false,
37
42
  });
43
+ var isCloseHandlersActive = closeOnlyOnTop ? isTop : true;
38
44
  var modalConsumerMultiRef = (0, useMultiRef_1.useMultiRef)([
39
45
  windowInnerRef,
40
46
  trapRef,
@@ -45,7 +51,7 @@ exports.Modal = (0, react_1.forwardRef)(function (_a, ref) {
45
51
  windowInnerRef
46
52
  ], tslib_1.__read(refsClickOutside), false), tslib_1.__read((ignoreClickOutsideRefs || [])), false),
47
53
  handler: onClose,
48
- active: open && !disableClickOutside,
54
+ active: open && !disableClickOutside && isCloseHandlersActive,
49
55
  });
50
56
  // Блокирует прокрутку основного окна приложения
51
57
  (0, useLockBodyScroll_1.useLockBodyScroll)(opened && !disableScrollLock);
@@ -81,13 +87,15 @@ exports.Modal = (0, react_1.forwardRef)(function (_a, ref) {
81
87
  return;
82
88
  onClose === null || onClose === void 0 ? void 0 : onClose();
83
89
  },
84
- active: isTop && !disableEscapeKeyDown,
90
+ active: isCloseHandlersActive && !disableEscapeKeyDown,
85
91
  });
86
92
  if (!container) {
87
93
  return null;
88
94
  }
89
95
  return (react_1.default.createElement(react_transition_group_1.CSSTransition, tslib_1.__assign({ classNames: (0, exports.cnModal)({ animation: true }), nodeRef: rootRef, timeout: 300 }, transitionProps, { in: openState, onEnter: onEnter, onEntered: onEntered, onExit: onExit, onExited: onExited, unmountOnExit: !keepMounted, appear: true }),
90
- react_1.default.createElement(PortalBase_1.PortalBase, tslib_1.__assign({}, other, { container: container, className: (0, exports.cnModal)({ hidden: keepMounted && !openState, hasBackdrop: hasBackdrop }, [className]), ref: portalMultiRef }),
96
+ react_1.default.createElement(PortalBase_1.PortalBase, tslib_1.__assign({}, other, { container: container, className: (0, exports.cnModal)({ hidden: keepMounted && !openState, hasBackdrop: hasBackdrop }, [
97
+ className,
98
+ ]), ref: portalMultiRef }),
91
99
  !hideBackdrop && (react_1.default.createElement(Backdrop_1.Backdrop, tslib_1.__assign({ zIndex: -1, open: openState }, backdropProps, { className: backdropProps === null || backdropProps === void 0 ? void 0 : backdropProps.className }))),
92
100
  react_1.default.createElement(components_1.ModalConsumer, tslib_1.__assign({}, windowProps, { ref: modalConsumerMultiRef }), children))));
93
101
  });
@@ -5,3 +5,4 @@ export declare const MODAL_DEFAULT_DISABLE_SCROLL_LOCK = false;
5
5
  export declare const MODAL_DEFAULT_DISABLE_CLICK_OUTSIDE = false;
6
6
  export declare const MODAL_DEFAULT_ESCAPE_KEY_DOWN = false;
7
7
  export declare const MODAL_DEFAULT_PORTAL_CONTAINER: () => HTMLElement;
8
+ export declare const MODAL_DEFAULT_CLOSE_ONLY_ON_TOP = true;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MODAL_DEFAULT_PORTAL_CONTAINER = exports.MODAL_DEFAULT_ESCAPE_KEY_DOWN = exports.MODAL_DEFAULT_DISABLE_CLICK_OUTSIDE = exports.MODAL_DEFAULT_DISABLE_SCROLL_LOCK = exports.MODAL_DEFAULT_HIDE_BACKDROP = exports.MODAL_DEFAULT_KEEP_MOUNTED = exports.MODAL_DEFAULT_OPEN = void 0;
3
+ exports.MODAL_DEFAULT_CLOSE_ONLY_ON_TOP = exports.MODAL_DEFAULT_PORTAL_CONTAINER = exports.MODAL_DEFAULT_ESCAPE_KEY_DOWN = exports.MODAL_DEFAULT_DISABLE_CLICK_OUTSIDE = exports.MODAL_DEFAULT_DISABLE_SCROLL_LOCK = exports.MODAL_DEFAULT_HIDE_BACKDROP = exports.MODAL_DEFAULT_KEEP_MOUNTED = exports.MODAL_DEFAULT_OPEN = void 0;
4
4
  exports.MODAL_DEFAULT_OPEN = false;
5
5
  exports.MODAL_DEFAULT_KEEP_MOUNTED = false;
6
6
  exports.MODAL_DEFAULT_HIDE_BACKDROP = false;
@@ -10,3 +10,4 @@ exports.MODAL_DEFAULT_ESCAPE_KEY_DOWN = false;
10
10
  exports.MODAL_DEFAULT_PORTAL_CONTAINER = (function () {
11
11
  return window.document.body;
12
12
  });
13
+ exports.MODAL_DEFAULT_CLOSE_ONLY_ON_TOP = true;
@@ -49,5 +49,7 @@ export type ModalProps = {
49
49
  'data-testid'?: string;
50
50
  /** Список ссылок на элементы при клике на которые Modal не будет закрываться (см. хук useClickOutside) */
51
51
  ignoreClickOutsideRefs?: RefObject<HTMLElement>[];
52
+ /** Закрыть только если окно находится на самом верхнем слое */
53
+ closeOnlyOnTop?: boolean;
52
54
  } & PortalProps;
53
55
  export type ModalRef = PortalRef;
@@ -66,7 +66,7 @@ import type { SelectIconButtonProps, SelectProps } from '../../../../Select';
66
66
  import type { SliderProps } from '../../../../Slider';
67
67
  import type { SnackbarProviderProps } from '../../../../Snackbar';
68
68
  import type { StackProps } from '../../../../Stack';
69
- import type { StepperVerticalProps, StepperVerticalStepButtonProps, StepperVerticalStepProps, StepperVerticalIndicatorProps, StepperVerticalIconIndicatorProps } from '../../../../StepperVertical';
69
+ import type { StepperVerticalStepSubstepButtonProps, StepperVerticalProps, StepperVerticalStepButtonProps, StepperVerticalStepProps, StepperVerticalIndicatorProps, StepperVerticalIconIndicatorProps } from '../../../../StepperVertical';
70
70
  import type { TableContainerProps, TableProps, TableCaptionProps, TableCellProps } from '../../../../Table';
71
71
  import type { TagProps } from '../../../../Tag';
72
72
  import type { TagProps as TagPropsNext } from '../../../../TagNext';
@@ -193,6 +193,7 @@ export type ThemeDefaultProps = {
193
193
  StepperVertical?: Partial<StepperVerticalProps>;
194
194
  StepperVerticalStep?: Partial<StepperVerticalStepProps>;
195
195
  StepperVerticalStepButton?: Partial<StepperVerticalStepButtonProps>;
196
+ StepperVerticalStepSubstepButton?: Partial<StepperVerticalStepSubstepButtonProps>;
196
197
  StepperVerticalIconIndicator?: Partial<StepperVerticalIconIndicatorProps>;
197
198
  StepperVerticalIndicator?: Partial<StepperVerticalIndicatorProps>;
198
199
  Table?: Partial<TableProps>;
@@ -2,6 +2,7 @@ import './StepperVertical.css';
2
2
  import './modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.css';
3
3
  import './modules/StepperVerticalIndicator/StepperVerticalIndicator.css';
4
4
  import './modules/StepperVerticalStep/StepperVerticalStep.css';
5
+ import './modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.css';
5
6
  import type { StepperVerticalBaseProps } from './types';
6
7
  export declare const cnStepperVertical: import("@bem-react/classname").ClassNameFormatter;
7
8
  export declare const StepperVertical: import("../../utils").PolymorphicComponentWithRef<StepperVerticalBaseProps, "div", "as">;
@@ -6,16 +6,27 @@ require("./StepperVertical.css");
6
6
  require("./modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.css");
7
7
  require("./modules/StepperVerticalIndicator/StepperVerticalIndicator.css");
8
8
  require("./modules/StepperVerticalStep/StepperVerticalStep.css");
9
- var react_1 = tslib_1.__importDefault(require("react"));
9
+ require("./modules/StepperVerticalStepSubstepButton/StepperVerticalStepSubstepButton.css");
10
+ var react_1 = tslib_1.__importStar(require("react"));
11
+ var useMultiRef_1 = require("../../hooks/useMultiRef");
10
12
  var useThemeProps_1 = require("../../hooks/useThemeProps");
11
13
  var utils_1 = require("../../utils");
12
14
  var Stack_1 = require("../Stack");
13
15
  var constants_1 = require("./constants");
16
+ var hooks_1 = require("./hooks");
14
17
  var StepperVerticalContext_1 = require("./StepperVerticalContext");
15
18
  exports.cnStepperVertical = (0, utils_1.cn)('StepperVertical');
16
19
  exports.StepperVertical = (0, utils_1.polymorphicComponentWithRef)(function (inProps, ref) {
17
20
  var props = (0, useThemeProps_1.useThemeProps)({ name: 'StepperVertical', props: inProps });
18
21
  var children = props.children, _a = props.as, as = _a === void 0 ? constants_1.STEPPER_VERTICAL_DEFAULT_TAG : _a, _b = props.ellipsis, ellipsis = _b === void 0 ? constants_1.STEPPER_VERTICAL_DEFAULT_ELLIPSIS : _b, className = props.className, fullWidth = props.fullWidth, other = tslib_1.__rest(props, ["children", "as", "ellipsis", "className", "fullWidth"]);
19
- return (react_1.default.createElement(StepperVerticalContext_1.StepperVerticalContext.Provider, { value: { ellipsis: ellipsis } },
20
- react_1.default.createElement(Stack_1.Stack, tslib_1.__assign({}, other, { ref: ref, as: as, className: (0, exports.cnStepperVertical)('', [className]), direction: "column", display: fullWidth ? 'block' : 'inline' }), children)));
22
+ var internalRef = (0, react_1.useRef)(null);
23
+ var stepsControl = (0, hooks_1.useStepperVerticalStepsControl)();
24
+ var structure = (0, hooks_1.useStepperVerticalStepsStructure)(internalRef, stepsControl, children);
25
+ var memoizedContextValue = (0, react_1.useMemo)(function () { return ({
26
+ ellipsis: ellipsis,
27
+ stepsControl: stepsControl,
28
+ structure: structure,
29
+ }); }, [ellipsis, stepsControl, structure]);
30
+ return (react_1.default.createElement(StepperVerticalContext_1.StepperVerticalContext.Provider, { value: memoizedContextValue },
31
+ react_1.default.createElement(Stack_1.Stack, tslib_1.__assign({}, other, { ref: (0, useMultiRef_1.useMultiRef)([internalRef, ref]), as: as, className: (0, exports.cnStepperVertical)('', [className]), direction: "column", display: fullWidth ? 'block' : 'inline' }), children)));
21
32
  });
@@ -1,5 +1,13 @@
1
+ import type { StoredValue } from '../../hooks/useStoredValue';
2
+ import { EventBus } from '../../utils';
3
+ import type { StepperVerticalStepsControl, StepperVerticalStepsStructure, StepperVerticalStepsStructureEvents } from './hooks';
1
4
  export type StepperVerticalContextValue = {
2
5
  ellipsis: boolean;
6
+ stepsControl: StepperVerticalStepsControl;
7
+ structure: {
8
+ value: StoredValue<StepperVerticalStepsStructure>;
9
+ eventBus: EventBus<StepperVerticalStepsStructureEvents>;
10
+ };
3
11
  };
4
12
  export declare const StepperVerticalContextDefaultValue: StepperVerticalContextValue;
5
13
  export declare const StepperVerticalContext: import("react").Context<StepperVerticalContextValue>;
@@ -3,9 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useStepperVerticalContext = exports.StepperVerticalContext = exports.StepperVerticalContextDefaultValue = void 0;
4
4
  var react_1 = require("react");
5
5
  var environment_1 = require("../../constants/environment");
6
+ var utils_1 = require("../../utils");
6
7
  var constants_1 = require("./constants");
7
8
  exports.StepperVerticalContextDefaultValue = {
8
9
  ellipsis: constants_1.STEPPER_VERTICAL_DEFAULT_ELLIPSIS,
10
+ stepsControl: {
11
+ steps: { current: {} },
12
+ initializeStep: function () { },
13
+ deleteStep: function () { },
14
+ },
15
+ structure: {
16
+ value: { current: { nodes: [], nodeById: {} } },
17
+ eventBus: new utils_1.EventBus(),
18
+ },
9
19
  };
10
20
  exports.StepperVerticalContext = (0, react_1.createContext)(exports.StepperVerticalContextDefaultValue);
11
21
  var useStepperVerticalContext = function () {
@@ -0,0 +1,4 @@
1
+ export * from './useStepperVerticalCreateStep';
2
+ export * from './useStepperVerticalStepsControl';
3
+ export * from './useStepperVerticalStepsStructure';
4
+ export * from './useStepperVerticalStepHelper';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./useStepperVerticalCreateStep"), exports);
5
+ tslib_1.__exportStar(require("./useStepperVerticalStepsControl"), exports);
6
+ tslib_1.__exportStar(require("./useStepperVerticalStepsStructure"), exports);
7
+ tslib_1.__exportStar(require("./useStepperVerticalStepHelper"), exports);
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useStepperVerticalCreateStep';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./types"), exports);
5
+ tslib_1.__exportStar(require("./useStepperVerticalCreateStep"), exports);
@@ -0,0 +1,11 @@
1
+ import type { Dispatch, RefObject, SetStateAction } from 'react';
2
+ export type StepperVerticalStepControl = {
3
+ id: string;
4
+ ref: RefObject<HTMLElement | null>;
5
+ root: StepperVerticalStepControl | null;
6
+ substeps: Record<string, StepperVerticalStepControl>;
7
+ registerSubstep: (substep: StepperVerticalStepControl) => void;
8
+ unregisterSubstep: (substep: StepperVerticalStepControl) => void;
9
+ isSubStepsOpen: boolean;
10
+ setIsSubStepsOpen: Dispatch<SetStateAction<boolean>>;
11
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import type { StepperVerticalStepControl } from './types';
2
+ export declare const useStepperVerticalCreateStep: (root?: StepperVerticalStepControl) => StepperVerticalStepControl;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useStepperVerticalCreateStep = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = require("react");
6
+ var useStoredValue_1 = require("../../../../hooks/useStoredValue");
7
+ var useUniqueId_1 = require("../../../../hooks/useUniqueId");
8
+ var StepperVerticalContext_1 = require("../../StepperVerticalContext");
9
+ var useStepperVerticalCreateStep = function (root) {
10
+ var id = (0, useUniqueId_1.useUniqueId)();
11
+ var _a = tslib_1.__read((0, react_1.useState)(false), 2), isSubStepsOpen = _a[0], setIsSubStepsOpen = _a[1];
12
+ var stepperVerticalContext = (0, StepperVerticalContext_1.useStepperVerticalContext)();
13
+ var ref = (0, react_1.useRef)(null);
14
+ var step = (0, useStoredValue_1.useStoredValue)(function () { return ({
15
+ id: id,
16
+ root: root !== null && root !== void 0 ? root : null,
17
+ ref: ref,
18
+ isSubStepsOpen: isSubStepsOpen,
19
+ setIsSubStepsOpen: setIsSubStepsOpen,
20
+ unregisterSubstep: function () { },
21
+ registerSubstep: function () { },
22
+ substeps: {},
23
+ }); });
24
+ var registerSubstep = (0, react_1.useCallback)(function (substep) {
25
+ step.current.substeps[substep.id] = substep;
26
+ }, []);
27
+ var unregisterSubstep = (0, react_1.useCallback)(function (substep) {
28
+ delete step.current.substeps[substep.id];
29
+ }, []);
30
+ step.current.isSubStepsOpen = isSubStepsOpen;
31
+ step.current.root = root !== null && root !== void 0 ? root : null;
32
+ step.current.registerSubstep = registerSubstep;
33
+ step.current.unregisterSubstep = unregisterSubstep;
34
+ (0, react_1.useEffect)(function () {
35
+ stepperVerticalContext.stepsControl.initializeStep(step.current);
36
+ if (root) {
37
+ root.registerSubstep(step.current);
38
+ }
39
+ return function () {
40
+ stepperVerticalContext.stepsControl.deleteStep(step.current);
41
+ if (root) {
42
+ root.unregisterSubstep(step.current);
43
+ }
44
+ };
45
+ }, []);
46
+ return step.current;
47
+ };
48
+ exports.useStepperVerticalCreateStep = useStepperVerticalCreateStep;
@@ -0,0 +1,5 @@
1
+ import type { StepperVerticalStepControl } from './useStepperVerticalCreateStep';
2
+ export declare const useStepperVerticalStepHelper: (step: StepperVerticalStepControl) => {
3
+ hasPrevious: boolean;
4
+ hasNext: boolean;
5
+ };
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useStepperVerticalStepHelper = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = require("react");
6
+ var useEventBusEvents_1 = require("../../../hooks/useEventBusEvents");
7
+ var StepperVerticalContext_1 = require("../StepperVerticalContext");
8
+ var useStepperVerticalStepHelper = function (step) {
9
+ var _a;
10
+ var structure = (0, StepperVerticalContext_1.useStepperVerticalContext)().structure;
11
+ var _b = tslib_1.__read((0, react_1.useState)(false), 2), hasPrevious = _b[0], setHasPrevious = _b[1];
12
+ var _c = tslib_1.__read((0, react_1.useState)(false), 2), hasNext = _c[0], setHasNext = _c[1];
13
+ var getStructureNode = function (forStep) {
14
+ var _a;
15
+ if (forStep === void 0) { forStep = step; }
16
+ var node = (_a = structure.value.current.nodeById[forStep.id]) !== null && _a !== void 0 ? _a : null;
17
+ return node;
18
+ };
19
+ var getNodeIndex = function (node) {
20
+ if (!node.root) {
21
+ return structure.value.current.nodes.indexOf(node);
22
+ }
23
+ return node.root.substeps.indexOf(node);
24
+ };
25
+ var checkHasNext = function (forStep) {
26
+ if (forStep === void 0) { forStep = step; }
27
+ if (forStep.isSubStepsOpen) {
28
+ return true;
29
+ }
30
+ var node = getStructureNode(forStep);
31
+ if (!node) {
32
+ return false;
33
+ }
34
+ var nodeIndex = getNodeIndex(node);
35
+ if (!node.root) {
36
+ return !!structure.value.current.nodes[nodeIndex + 1];
37
+ }
38
+ var sameLevelNext = node.root.substeps[nodeIndex + 1];
39
+ if (sameLevelNext) {
40
+ return true;
41
+ }
42
+ var checkHasTopLevelNext = function (node) {
43
+ if (!node.root) {
44
+ return false;
45
+ }
46
+ var rootIndex = getNodeIndex(node.root);
47
+ var nextStep = node.root.root
48
+ ? node.root.root.substeps[rootIndex + 1]
49
+ : structure.value.current.nodes[rootIndex + 1];
50
+ if (nextStep) {
51
+ return true;
52
+ }
53
+ return checkHasTopLevelNext(node.root);
54
+ };
55
+ var otherLevelNext = checkHasTopLevelNext(node);
56
+ return otherLevelNext;
57
+ };
58
+ var checkHasPrevious = function (forStep) {
59
+ if (forStep === void 0) { forStep = step; }
60
+ var node = getStructureNode(forStep);
61
+ if (!node) {
62
+ return false;
63
+ }
64
+ var nodeIndex = getNodeIndex(node);
65
+ if (!node.root) {
66
+ return !!structure.value.current.nodes[nodeIndex - 1];
67
+ }
68
+ var rootHasNext = checkHasNext(node.root.step);
69
+ if (rootHasNext) {
70
+ return true;
71
+ }
72
+ if (nodeIndex === 0) {
73
+ return node.root.step.isSubStepsOpen;
74
+ }
75
+ return true;
76
+ };
77
+ var recalculate = function () {
78
+ setHasPrevious(checkHasPrevious());
79
+ setHasNext(checkHasNext());
80
+ };
81
+ (0, useEventBusEvents_1.useEventBusEvents)(structure.eventBus, {
82
+ update: recalculate,
83
+ });
84
+ (0, react_1.useEffect)(function () {
85
+ recalculate();
86
+ }, [step.isSubStepsOpen, (_a = step.root) === null || _a === void 0 ? void 0 : _a.isSubStepsOpen]);
87
+ return {
88
+ hasPrevious: hasPrevious,
89
+ hasNext: hasNext,
90
+ };
91
+ };
92
+ exports.useStepperVerticalStepHelper = useStepperVerticalStepHelper;
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useStepperVerticalStepsControl';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./types"), exports);
5
+ tslib_1.__exportStar(require("./useStepperVerticalStepsControl"), exports);
@@ -0,0 +1,8 @@
1
+ import type { StoredValue } from '../../../../hooks/useStoredValue';
2
+ import type { StepperVerticalStepControl } from '../useStepperVerticalCreateStep';
3
+ export type StepperVerticalSteps = Record<string, StepperVerticalStepControl>;
4
+ export type StepperVerticalStepsControl = {
5
+ initializeStep: (step: StepperVerticalStepControl) => void;
6
+ deleteStep: (step: StepperVerticalStepControl) => void;
7
+ steps: StoredValue<StepperVerticalSteps>;
8
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import type { StepperVerticalStepsControl } from './types';
2
+ export declare const useStepperVerticalStepsControl: () => StepperVerticalStepsControl;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useStepperVerticalStepsControl = void 0;
4
+ var react_1 = require("react");
5
+ var useStoredValue_1 = require("../../../../hooks/useStoredValue");
6
+ var useStepperVerticalStepsControl = function () {
7
+ var steps = (0, useStoredValue_1.useStoredValue)({});
8
+ var initializeStep = (0, react_1.useCallback)(function (step) {
9
+ if (steps.current[step.id]) {
10
+ return;
11
+ }
12
+ steps.current[step.id] = step;
13
+ }, []);
14
+ var deleteStep = (0, react_1.useCallback)(function (step) {
15
+ if (!steps.current[step.id]) {
16
+ return;
17
+ }
18
+ delete steps.current[step.id];
19
+ }, []);
20
+ return (0, react_1.useMemo)(function () { return ({
21
+ deleteStep: deleteStep,
22
+ initializeStep: initializeStep,
23
+ steps: steps,
24
+ }); }, []);
25
+ };
26
+ exports.useStepperVerticalStepsControl = useStepperVerticalStepsControl;
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ export * from './useStepperVerticalStepsStructure';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./types"), exports);
5
+ tslib_1.__exportStar(require("./useStepperVerticalStepsStructure"), exports);
@@ -0,0 +1,15 @@
1
+ import type { StepperVerticalStepControl } from '../useStepperVerticalCreateStep';
2
+ export type StepperVerticalStepsStructureNode = {
3
+ root: StepperVerticalStepsStructureNode | null;
4
+ step: StepperVerticalStepControl;
5
+ substeps: StepperVerticalStepsStructureNode[];
6
+ };
7
+ export type StepperVerticalStepsStructure = {
8
+ nodeById: Record<string, StepperVerticalStepsStructureNode>;
9
+ nodes: StepperVerticalStepsStructureNode[];
10
+ };
11
+ export type StepperVerticalStepsStructureEvents = {
12
+ update: {
13
+ structure: StepperVerticalStepsStructure;
14
+ };
15
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import type { ReactNode, RefObject } from 'react';
2
+ import type { StepperVerticalRef } from '../../types';
3
+ import type { StepperVerticalStepsControl } from '../useStepperVerticalStepsControl';
4
+ import type { StepperVerticalStepsStructure, StepperVerticalStepsStructureEvents } from './types';
5
+ export declare const useStepperVerticalStepsStructure: (ref: RefObject<StepperVerticalRef>, stepsControl: StepperVerticalStepsControl, children: ReactNode) => {
6
+ value: import("../../../../hooks/useStoredValue").StoredValue<StepperVerticalStepsStructure>;
7
+ eventBus: import("../../../../utils").EventBus<StepperVerticalStepsStructureEvents>;
8
+ };
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useStepperVerticalStepsStructure = void 0;
4
+ var react_1 = require("react");
5
+ var useEventBus_1 = require("../../../../hooks/useEventBus");
6
+ var useStoredValue_1 = require("../../../../hooks/useStoredValue");
7
+ var Collapse_1 = require("../../../Collapse");
8
+ var useStepperVerticalStepsStructure = function (ref, stepsControl, children) {
9
+ var eventBus = (0, useEventBus_1.useEventBus)();
10
+ var structure = (0, useStoredValue_1.useStoredValue)({
11
+ nodes: [],
12
+ nodeById: {},
13
+ });
14
+ var calculate = function () {
15
+ var element = ref.current;
16
+ if (!element) {
17
+ return { nodes: [], nodeById: {} };
18
+ }
19
+ var nodeById = {};
20
+ var nodes = [];
21
+ var stepsControlSteps = Object.values(stepsControl.steps.current);
22
+ var collectNodeSubsteps = function (node, element) {
23
+ var substeps = Object.values(node.step.substeps);
24
+ if (substeps.length === 0) {
25
+ return;
26
+ }
27
+ var nextElement = element.nextElementSibling;
28
+ if (!nextElement) {
29
+ throw new Error('Ожидается следующий элемент для шага с подшагами');
30
+ }
31
+ var isNextElementCollapse = nextElement.classList.contains((0, Collapse_1.cnCollapse)());
32
+ if (!isNextElementCollapse) {
33
+ throw new Error('Ожидается collapse для подшагов');
34
+ }
35
+ var collapseInner = nextElement.firstElementChild;
36
+ if (!collapseInner) {
37
+ throw new Error('Не удалось получить inner для collapse');
38
+ }
39
+ Array.from(collapseInner.childNodes).forEach(function (collapseStep) {
40
+ var relatedSubstep = substeps.find(function (substep) { return substep.ref.current === collapseStep; });
41
+ if (!relatedSubstep) {
42
+ return;
43
+ }
44
+ var newNode = {
45
+ root: node,
46
+ step: relatedSubstep,
47
+ substeps: [],
48
+ };
49
+ nodeById[relatedSubstep.id] = newNode;
50
+ node.substeps.push(newNode);
51
+ if (Object.keys(relatedSubstep.substeps).length > 0) {
52
+ collectNodeSubsteps(newNode, relatedSubstep.ref.current);
53
+ }
54
+ });
55
+ };
56
+ element.childNodes.forEach(function (node) {
57
+ var relatedStep = stepsControlSteps.find(function (step) { return step.ref.current === node; });
58
+ if (!relatedStep) {
59
+ return;
60
+ }
61
+ var newNode = {
62
+ root: null,
63
+ step: relatedStep,
64
+ substeps: [],
65
+ };
66
+ nodeById[relatedStep.id] = newNode;
67
+ nodes.push(newNode);
68
+ collectNodeSubsteps(newNode, newNode.step.ref.current);
69
+ });
70
+ return { nodeById: nodeById, nodes: nodes };
71
+ };
72
+ var recalculate = function () {
73
+ var newStructure = calculate();
74
+ structure.current = newStructure;
75
+ eventBus.publish('update', { structure: structure.current });
76
+ };
77
+ (0, react_1.useEffect)(function () {
78
+ recalculate();
79
+ }, [children]);
80
+ return (0, react_1.useMemo)(function () { return ({ value: structure, eventBus: eventBus }); }, []);
81
+ };
82
+ exports.useStepperVerticalStepsStructure = useStepperVerticalStepsStructure;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.STEPPER_VERTICAL_STEP_DEFAULT_ICON_BY_VARIANT = void 0;
4
4
  var icons_1 = require("@ozen-ui/icons");
5
5
  exports.STEPPER_VERTICAL_STEP_DEFAULT_ICON_BY_VARIANT = {
6
+ default: icons_1.DotBigIcon,
6
7
  refusal: icons_1.MinusCircleFilledIcon,
7
8
  blocked: icons_1.CrossCircleFilledIcon,
8
9
  warning: icons_1.WarningCircleFilledIcon,