@ozen-ui/kit 0.75.0 → 0.77.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 (215) hide show
  1. package/ImageBase/package.json +5 -0
  2. package/StepperVertical/package.json +5 -0
  3. package/__inner__/cjs/components/Autocomplete/helper.d.ts +5 -5
  4. package/__inner__/cjs/components/Autocomplete/types.d.ts +1 -1
  5. package/__inner__/cjs/components/AutocompleteBase/AutocompleteBase.d.ts +2 -1
  6. package/__inner__/cjs/components/AutocompleteNext/helpers.d.ts +4 -4
  7. package/__inner__/cjs/components/ButtonNext/types.d.ts +2 -1
  8. package/__inner__/cjs/components/DataList/types.d.ts +1 -1
  9. package/__inner__/cjs/components/InputOTP/InputOTP.js +79 -76
  10. package/__inner__/cjs/components/InputOTP/constants.d.ts +4 -4
  11. package/__inner__/cjs/components/InputOTP/presets.d.ts +5 -0
  12. package/__inner__/cjs/components/InputOTP/presets.js +5 -0
  13. package/__inner__/cjs/components/InputOTP/types.d.ts +9 -6
  14. package/__inner__/cjs/components/OzenProvider/providers/theme/entities/defaultProps.d.ts +6 -0
  15. package/__inner__/cjs/components/Select/Select.css +10 -1
  16. package/__inner__/cjs/components/Select/Select.d.ts +0 -1
  17. package/__inner__/cjs/components/Select/Select.js +40 -10
  18. package/__inner__/cjs/components/Select/SelectContext.d.ts +21 -0
  19. package/__inner__/cjs/components/Select/SelectContext.js +29 -0
  20. package/__inner__/cjs/components/Select/classNames.d.ts +1 -0
  21. package/__inner__/cjs/components/Select/classNames.js +5 -0
  22. package/__inner__/cjs/components/Select/components/SelectInput/SelectInput.js +14 -15
  23. package/__inner__/cjs/components/Select/components/SelectInput/types.d.ts +0 -22
  24. package/__inner__/cjs/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.js +3 -3
  25. package/__inner__/cjs/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.d.ts +2 -0
  26. package/__inner__/cjs/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.js +42 -0
  27. package/__inner__/cjs/components/Select/components/SelectInputRenderRight/index.d.ts +1 -0
  28. package/__inner__/cjs/components/Select/components/SelectInputRenderRight/index.js +4 -0
  29. package/__inner__/cjs/components/Select/components/index.d.ts +1 -0
  30. package/__inner__/cjs/components/Select/components/index.js +1 -0
  31. package/__inner__/cjs/components/Select/constants.d.ts +3 -0
  32. package/__inner__/cjs/components/Select/constants.js +8 -1
  33. package/__inner__/cjs/components/Select/entities/index.d.ts +2 -0
  34. package/__inner__/cjs/components/Select/entities/index.js +5 -0
  35. package/__inner__/cjs/components/Select/entities/onClear.d.ts +2 -0
  36. package/__inner__/cjs/components/Select/entities/onClear.js +2 -0
  37. package/__inner__/cjs/components/Select/entities/render.d.ts +6 -0
  38. package/__inner__/cjs/components/Select/entities/render.js +4 -0
  39. package/__inner__/cjs/components/Select/index.d.ts +1 -0
  40. package/__inner__/cjs/components/Select/index.js +1 -0
  41. package/__inner__/cjs/components/Select/types.d.ts +30 -5
  42. package/__inner__/cjs/components/Select/types.js +3 -0
  43. package/__inner__/cjs/components/StepperVertical/StepperVertical.css +4 -0
  44. package/__inner__/cjs/components/StepperVertical/StepperVertical.d.ts +7 -0
  45. package/__inner__/cjs/components/StepperVertical/StepperVertical.js +21 -0
  46. package/__inner__/cjs/components/StepperVertical/StepperVerticalContext.d.ts +6 -0
  47. package/__inner__/cjs/components/StepperVertical/StepperVerticalContext.js +18 -0
  48. package/__inner__/cjs/components/StepperVertical/constants.d.ts +3 -0
  49. package/__inner__/cjs/components/StepperVertical/constants.js +6 -0
  50. package/__inner__/cjs/components/StepperVertical/index.d.ts +5 -0
  51. package/__inner__/cjs/components/StepperVertical/index.js +8 -0
  52. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.css +4 -0
  53. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.d.ts +3 -0
  54. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.js +24 -0
  55. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.d.ts +3 -0
  56. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.js +12 -0
  57. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/entities/icon.d.ts +3 -0
  58. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/entities/icon.js +2 -0
  59. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/entities/index.d.ts +1 -0
  60. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/entities/index.js +4 -0
  61. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/index.d.ts +4 -0
  62. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/index.js +7 -0
  63. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/types.d.ts +7 -0
  64. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIconIndicator/types.js +2 -0
  65. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/StepperVerticalIndicator.css +20 -0
  66. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/StepperVerticalIndicator.d.ts +3 -0
  67. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/StepperVerticalIndicator.js +23 -0
  68. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/constants.d.ts +1 -0
  69. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/constants.js +4 -0
  70. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/index.d.ts +3 -0
  71. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/index.js +6 -0
  72. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/types.d.ts +11 -0
  73. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalIndicator/types.js +2 -0
  74. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.css +105 -0
  75. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.d.ts +3 -0
  76. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.js +41 -0
  77. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.d.ts +8 -0
  78. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.js +19 -0
  79. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/constants.d.ts +3 -0
  80. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/constants.js +6 -0
  81. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/entities/index.d.ts +1 -0
  82. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/entities/index.js +4 -0
  83. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/entities/variant.d.ts +2 -0
  84. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/entities/variant.js +11 -0
  85. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/index.d.ts +5 -0
  86. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/index.js +8 -0
  87. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/types.d.ts +26 -0
  88. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStep/types.js +2 -0
  89. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepButton/StepperVerticalStepButton.d.ts +3 -0
  90. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepButton/StepperVerticalStepButton.js +19 -0
  91. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepButton/constants.d.ts +3 -0
  92. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepButton/constants.js +8 -0
  93. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepButton/index.d.ts +3 -0
  94. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepButton/index.js +6 -0
  95. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepButton/types.d.ts +7 -0
  96. package/__inner__/cjs/components/StepperVertical/modules/StepperVerticalStepButton/types.js +2 -0
  97. package/__inner__/cjs/components/StepperVertical/modules/index.d.ts +4 -0
  98. package/__inner__/cjs/components/StepperVertical/modules/index.js +7 -0
  99. package/__inner__/cjs/components/StepperVertical/types.d.ts +13 -0
  100. package/__inner__/cjs/components/StepperVertical/types.js +2 -0
  101. package/__inner__/cjs/hooks/useLockBodyScroll/useLockBodyScroll.js +25 -5
  102. package/__inner__/cjs/locale/locale.js +9 -0
  103. package/__inner__/cjs/utils/array/generatePermutations/generatePermutations.d.ts +1 -0
  104. package/__inner__/cjs/utils/array/generatePermutations/generatePermutations.js +47 -0
  105. package/__inner__/cjs/utils/array/generatePermutations/index.d.ts +1 -0
  106. package/__inner__/cjs/utils/array/generatePermutations/index.js +4 -0
  107. package/__inner__/cjs/utils/array/index.d.ts +1 -0
  108. package/__inner__/cjs/utils/array/index.js +1 -0
  109. package/__inner__/esm/components/Autocomplete/helper.d.ts +5 -5
  110. package/__inner__/esm/components/Autocomplete/types.d.ts +1 -1
  111. package/__inner__/esm/components/AutocompleteBase/AutocompleteBase.d.ts +2 -1
  112. package/__inner__/esm/components/AutocompleteNext/helpers.d.ts +4 -4
  113. package/__inner__/esm/components/ButtonNext/types.d.ts +2 -1
  114. package/__inner__/esm/components/DataList/types.d.ts +1 -1
  115. package/__inner__/esm/components/InputOTP/InputOTP.js +79 -76
  116. package/__inner__/esm/components/InputOTP/constants.d.ts +4 -4
  117. package/__inner__/esm/components/InputOTP/presets.d.ts +5 -0
  118. package/__inner__/esm/components/InputOTP/presets.js +5 -0
  119. package/__inner__/esm/components/InputOTP/types.d.ts +9 -6
  120. package/__inner__/esm/components/OzenProvider/providers/theme/entities/defaultProps.d.ts +6 -0
  121. package/__inner__/esm/components/Select/Select.css +10 -1
  122. package/__inner__/esm/components/Select/Select.d.ts +0 -1
  123. package/__inner__/esm/components/Select/Select.js +40 -10
  124. package/__inner__/esm/components/Select/SelectContext.d.ts +21 -0
  125. package/__inner__/esm/components/Select/SelectContext.js +25 -0
  126. package/__inner__/esm/components/Select/classNames.d.ts +1 -0
  127. package/__inner__/esm/components/Select/classNames.js +2 -0
  128. package/__inner__/esm/components/Select/components/SelectInput/SelectInput.js +7 -8
  129. package/__inner__/esm/components/Select/components/SelectInput/types.d.ts +0 -22
  130. package/__inner__/esm/components/Select/components/SelectInputContextConsumer/SelectInputContextConsumer.js +1 -1
  131. package/__inner__/esm/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.d.ts +2 -0
  132. package/__inner__/esm/components/Select/components/SelectInputRenderRight/SelectInputRenderRight.js +38 -0
  133. package/__inner__/esm/components/Select/components/SelectInputRenderRight/index.d.ts +1 -0
  134. package/__inner__/esm/components/Select/components/SelectInputRenderRight/index.js +1 -0
  135. package/__inner__/esm/components/Select/components/index.d.ts +1 -0
  136. package/__inner__/esm/components/Select/components/index.js +1 -0
  137. package/__inner__/esm/components/Select/constants.d.ts +3 -0
  138. package/__inner__/esm/components/Select/constants.js +7 -0
  139. package/__inner__/esm/components/Select/entities/index.d.ts +2 -0
  140. package/__inner__/esm/components/Select/entities/index.js +2 -0
  141. package/__inner__/esm/components/Select/entities/onClear.d.ts +2 -0
  142. package/__inner__/esm/components/Select/entities/onClear.js +1 -0
  143. package/__inner__/esm/components/Select/entities/render.d.ts +6 -0
  144. package/__inner__/esm/components/Select/entities/render.js +1 -0
  145. package/__inner__/esm/components/Select/index.d.ts +1 -0
  146. package/__inner__/esm/components/Select/index.js +1 -0
  147. package/__inner__/esm/components/Select/types.d.ts +30 -5
  148. package/__inner__/esm/components/Select/types.js +2 -1
  149. package/__inner__/esm/components/StepperVertical/StepperVertical.css +4 -0
  150. package/__inner__/esm/components/StepperVertical/StepperVertical.d.ts +7 -0
  151. package/__inner__/esm/components/StepperVertical/StepperVertical.js +18 -0
  152. package/__inner__/esm/components/StepperVertical/StepperVerticalContext.d.ts +6 -0
  153. package/__inner__/esm/components/StepperVertical/StepperVerticalContext.js +14 -0
  154. package/__inner__/esm/components/StepperVertical/constants.d.ts +3 -0
  155. package/__inner__/esm/components/StepperVertical/constants.js +3 -0
  156. package/__inner__/esm/components/StepperVertical/index.d.ts +5 -0
  157. package/__inner__/esm/components/StepperVertical/index.js +5 -0
  158. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.css +4 -0
  159. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.d.ts +3 -0
  160. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/StepperVerticalIconIndicator.js +21 -0
  161. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.d.ts +3 -0
  162. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/constants.js +9 -0
  163. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/entities/icon.d.ts +3 -0
  164. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/entities/icon.js +1 -0
  165. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/entities/index.d.ts +1 -0
  166. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/entities/index.js +1 -0
  167. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/index.d.ts +4 -0
  168. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/index.js +4 -0
  169. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/types.d.ts +7 -0
  170. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIconIndicator/types.js +1 -0
  171. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/StepperVerticalIndicator.css +20 -0
  172. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/StepperVerticalIndicator.d.ts +3 -0
  173. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/StepperVerticalIndicator.js +20 -0
  174. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/constants.d.ts +1 -0
  175. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/constants.js +1 -0
  176. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/index.d.ts +3 -0
  177. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/index.js +3 -0
  178. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/types.d.ts +11 -0
  179. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalIndicator/types.js +1 -0
  180. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.css +105 -0
  181. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.d.ts +3 -0
  182. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStep.js +38 -0
  183. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.d.ts +8 -0
  184. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/StepperVerticalStepContext.js +15 -0
  185. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/constants.d.ts +3 -0
  186. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/constants.js +3 -0
  187. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/index.d.ts +1 -0
  188. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/index.js +1 -0
  189. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/variant.d.ts +2 -0
  190. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/entities/variant.js +8 -0
  191. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/index.d.ts +5 -0
  192. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/index.js +5 -0
  193. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/types.d.ts +26 -0
  194. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStep/types.js +1 -0
  195. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepButton/StepperVerticalStepButton.d.ts +3 -0
  196. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepButton/StepperVerticalStepButton.js +16 -0
  197. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepButton/constants.d.ts +3 -0
  198. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepButton/constants.js +5 -0
  199. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepButton/index.d.ts +3 -0
  200. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepButton/index.js +3 -0
  201. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepButton/types.d.ts +7 -0
  202. package/__inner__/esm/components/StepperVertical/modules/StepperVerticalStepButton/types.js +1 -0
  203. package/__inner__/esm/components/StepperVertical/modules/index.d.ts +4 -0
  204. package/__inner__/esm/components/StepperVertical/modules/index.js +4 -0
  205. package/__inner__/esm/components/StepperVertical/types.d.ts +13 -0
  206. package/__inner__/esm/components/StepperVertical/types.js +1 -0
  207. package/__inner__/esm/hooks/useLockBodyScroll/useLockBodyScroll.js +25 -5
  208. package/__inner__/esm/locale/locale.js +9 -0
  209. package/__inner__/esm/utils/array/generatePermutations/generatePermutations.d.ts +1 -0
  210. package/__inner__/esm/utils/array/generatePermutations/generatePermutations.js +43 -0
  211. package/__inner__/esm/utils/array/generatePermutations/index.d.ts +1 -0
  212. package/__inner__/esm/utils/array/generatePermutations/index.js +1 -0
  213. package/__inner__/esm/utils/array/index.d.ts +1 -0
  214. package/__inner__/esm/utils/array/index.js +1 -0
  215. package/package.json +4 -4
@@ -9,7 +9,7 @@ export declare function withDefaultGetters<OPTION>(props: AutocompleteProps<OPTI
9
9
  defaultValue?: import("./types").AutocompletePropValue<OPTION>;
10
10
  open?: boolean;
11
11
  defaultOpen?: boolean;
12
- onChange?: ((e: import("react").SyntheticEvent | KeyboardEvent, value: OPTION | null) => void) | undefined;
12
+ onChange?: ((e: import("react").SyntheticEvent | KeyboardEvent | MouseEvent, value: OPTION | null) => void) | undefined;
13
13
  inputValue?: string;
14
14
  onInputChange?: (e: import("react").ChangeEvent<HTMLInputElement> | null, value: string) => void;
15
15
  renderInput?: import("./types").AutocompleteRenderInput;
@@ -38,16 +38,16 @@ export declare function withDefaultGetters<OPTION>(props: AutocompleteProps<OPTI
38
38
  label?: string | undefined;
39
39
  style?: import("react").CSSProperties | undefined;
40
40
  autoFocus?: boolean | undefined;
41
- className?: string | undefined;
41
+ className?: string | undefined | undefined;
42
42
  onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
43
43
  disabled?: boolean | undefined;
44
44
  placeholder?: string | undefined;
45
45
  required?: boolean | undefined;
46
46
  fullWidth?: boolean | undefined;
47
- hint?: string | null | undefined;
47
+ hint?: string | null | undefined | undefined;
48
48
  disableStroke?: boolean | undefined;
49
- renderLeft?: import("../FieldIcon").FieldIconProps["icon"];
50
- renderRight?: import("../FieldIcon").FieldIconProps["icon"];
49
+ renderLeft?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
50
+ renderRight?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
51
51
  inputProps?: import("../FieldInput").FieldInputProps | undefined;
52
52
  bodyProps?: import("react").ComponentPropsWithRef<"label"> | undefined;
53
53
  hintProps?: Omit<import("../FieldHint").FieldHintProps, "children"> | undefined;
@@ -35,7 +35,7 @@ export type AutocompleteProps<OPTION = AutocompleteDefaultOption> = {
35
35
  /** Состояние открытие по умолчанию (неконтролируемый компонент) */
36
36
  defaultOpen?: boolean;
37
37
  /** Функция обратного вызова, которая будет вызвана при выборе значения */
38
- onChange?: (e: SyntheticEvent | KeyboardEvent, value: OPTION | null) => void;
38
+ onChange?: (e: SyntheticEvent | KeyboardEvent | MouseEvent, value: OPTION | null) => void;
39
39
  /** Введённое значение в текстовом поле */
40
40
  inputValue?: string;
41
41
  /** Функция обратного вызова, которая будет вызвана при вводе значения с клавиатуры */
@@ -2,5 +2,6 @@ import './modules/AutocompleteBaseDropdown/AutocompleteBaseDropdown.css';
2
2
  import './modules/AutocompleteBaseInput/AutocompleteBaseInput.css';
3
3
  import './modules/AutocompleteBaseInputTag/AutocompleteBaseInputTag.css';
4
4
  import React from 'react';
5
+ import { AUTOCOMPLETE_BASE_DEFAULT_MULTIPLE } from './constants';
5
6
  import type { AutocompleteBaseProps } from './types';
6
- export declare const AutocompleteBase: <Option, Multiple extends boolean = false>(inProps: AutocompleteBaseProps<Option, Multiple>) => React.JSX.Element;
7
+ export declare const AutocompleteBase: <Option, Multiple extends boolean = typeof AUTOCOMPLETE_BASE_DEFAULT_MULTIPLE>(inProps: AutocompleteBaseProps<Option, Multiple>) => React.JSX.Element;
@@ -44,16 +44,16 @@ export declare function withDefaultGetters<OPTION = AutocompleteDefaultOption, M
44
44
  label?: string | undefined;
45
45
  style?: import("react").CSSProperties | undefined;
46
46
  autoFocus?: boolean | undefined;
47
- className?: string | undefined;
47
+ className?: string | undefined | undefined;
48
48
  onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
49
49
  disabled?: boolean | undefined;
50
50
  placeholder?: string | undefined;
51
51
  required?: boolean | undefined;
52
52
  fullWidth?: boolean | undefined;
53
- hint?: string | null | undefined;
53
+ hint?: string | null | undefined | undefined;
54
54
  disableStroke?: boolean | undefined;
55
- renderLeft?: import("../FieldIcon").FieldIconProps["icon"];
56
- renderRight?: import("../FieldIcon").FieldIconProps["icon"];
55
+ renderLeft?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
56
+ renderRight?: string | number | import("react").FC<import("@ozen-ui/icons").IconProps> | import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>> | (() => import("react").ReactElement<import("@ozen-ui/icons").IconProps, string | import("react").JSXElementConstructor<any>>) | undefined;
57
57
  inputProps?: import("../FieldInput").FieldInputProps | undefined;
58
58
  bodyProps?: import("react").ComponentPropsWithRef<"label"> | undefined;
59
59
  hintProps?: Omit<import("../FieldHint").FieldHintProps, "children"> | undefined;
@@ -1,4 +1,4 @@
1
- import type { ComponentPropsWithRef, ElementType, ReactNode } from 'react';
1
+ import type { ComponentPropsWithRef, ComponentRef, ElementType, ReactNode } from 'react';
2
2
  import type { IconProps } from '@ozen-ui/icons';
3
3
  import type { FormElementSizeVariant } from '../../types/FormElementSizeVariant';
4
4
  import type { PolymorphicComponentPropsWithoutRef } from '../../utils/polymorphicComponentWithRef';
@@ -46,3 +46,4 @@ export type ButtonBaseProps = {
46
46
  'data-testid'?: string;
47
47
  };
48
48
  export type ButtonProps<As extends ElementType = typeof BUTTON_DEFAULT_TAG> = PolymorphicComponentPropsWithoutRef<ButtonBaseProps, As>;
49
+ export type ButtonRef<As extends ElementType = typeof BUTTON_DEFAULT_TAG> = ComponentRef<As>;
@@ -12,7 +12,7 @@ export type DataListPayload<MULTIPLE extends boolean> = {
12
12
  name?: string;
13
13
  value: DataListSelected<MULTIPLE>;
14
14
  };
15
- export type DataListOnSelect<MULTIPLE extends boolean> = (event: SyntheticEvent | KeyboardEvent, payload: DataListPayload<MULTIPLE>) => void;
15
+ export type DataListOnSelect<MULTIPLE extends boolean> = (event: SyntheticEvent | KeyboardEvent | MouseEvent, payload: DataListPayload<MULTIPLE>) => void;
16
16
  export type DataListBaseProps<MULTIPLE extends boolean = false> = {
17
17
  /** Имя списка */
18
18
  name?: string;
@@ -11,6 +11,7 @@ import { isString } from '../../utils/isString';
11
11
  import { polymorphicComponentWithRef } from '../../utils/polymorphicComponentWithRef';
12
12
  import { setRef } from '../../utils/setRef';
13
13
  import { FieldControl } from '../FieldControl';
14
+ import { FieldHint } from '../FieldHint';
14
15
  import { FieldInput } from '../FieldInput';
15
16
  import { Fieldset } from '../Fieldset';
16
17
  import { Stack } from '../Stack';
@@ -23,7 +24,7 @@ export var InputOTP = polymorphicComponentWithRef(function (inProps, ref) {
23
24
  props: inProps,
24
25
  name: 'InputOTP',
25
26
  });
26
- var _a = props.as, as = _a === void 0 ? INPUT_OTP_DEFAULT_TAG : _a, className = props.className, length = props.length, autoComplete = props.autoComplete, _b = props.autoCompleteMode, autoCompleteMode = _b === void 0 ? INPUT_OTP_DEFAULT_AUTO_COMPLETE_MODE : _b, placeholder = props.placeholder, disabled = props.disabled, error = props.error, onChangeFromProps = props.onChange, ariaLabel = props.ariaLabel, value = props.value, defaultValue = props.defaultValue, mask = props.mask, autoFocus = props.autoFocus, onFinish = props.onFinish, onPasteFromProps = props.onPaste, onKeyDownFromProps = props.onKeyDown, _c = props.disableStroke, disableStroke = _c === void 0 ? INPUT_OTP_DEFAULT_DISABLE_STROKE : _c, validate = props.validate, _d = props.size, size = _d === void 0 ? INPUT_OTP_DEFAULT_SIZE : _d, inputProps = props.inputProps, fieldProps = props.fieldProps, _e = props.finishBehavior, finishBehavior = _e === void 0 ? INPUT_OTP_DEFAULT_FINISH_BEHAVIOR : _e, inputContainerProps = props.inputContainerProps, other = __rest(props, ["as", "className", "length", "autoComplete", "autoCompleteMode", "placeholder", "disabled", "error", "onChange", "ariaLabel", "value", "defaultValue", "mask", "autoFocus", "onFinish", "onPaste", "onKeyDown", "disableStroke", "validate", "size", "inputProps", "fieldProps", "finishBehavior", "inputContainerProps"]);
27
+ var _a = props.as, as = _a === void 0 ? INPUT_OTP_DEFAULT_TAG : _a, className = props.className, length = props.length, autoComplete = props.autoComplete, _b = props.autoCompleteMode, autoCompleteMode = _b === void 0 ? INPUT_OTP_DEFAULT_AUTO_COMPLETE_MODE : _b, placeholder = props.placeholder, disabled = props.disabled, error = props.error, onChangeFromProps = props.onChange, ariaLabel = props.ariaLabel, value = props.value, defaultValue = props.defaultValue, mask = props.mask, autoFocus = props.autoFocus, onFinish = props.onFinish, onPasteFromProps = props.onPaste, onKeyDownFromProps = props.onKeyDown, _c = props.disableStroke, disableStroke = _c === void 0 ? INPUT_OTP_DEFAULT_DISABLE_STROKE : _c, validate = props.validate, _d = props.size, size = _d === void 0 ? INPUT_OTP_DEFAULT_SIZE : _d, inputProps = props.inputProps, fieldProps = props.fieldProps, _e = props.finishBehavior, finishBehavior = _e === void 0 ? INPUT_OTP_DEFAULT_FINISH_BEHAVIOR : _e, inputContainerProps = props.inputContainerProps, hint = props.hint, other = __rest(props, ["as", "className", "length", "autoComplete", "autoCompleteMode", "placeholder", "disabled", "error", "onChange", "ariaLabel", "value", "defaultValue", "mask", "autoFocus", "onFinish", "onPaste", "onKeyDown", "disableStroke", "validate", "size", "inputProps", "fieldProps", "finishBehavior", "inputContainerProps", "hint"]);
27
28
  var _f = __read(useState(null), 2), focusedInputIndex = _f[0], setFocusedInputIndex = _f[1];
28
29
  var _g = __read(useControlled({
29
30
  value: isString(value) ? valueToArray(value) : value,
@@ -97,81 +98,83 @@ export var InputOTP = polymorphicComponentWithRef(function (inProps, ref) {
97
98
  return (React.createElement(Stack, __assign({ as: as, className: cnInputOTP({
98
99
  size: size,
99
100
  disabled: disabled,
100
- }, [className]), gap: INPUT_OTP_SPACING_BY_SIZE[size] }, other, { ref: ref }), createEmptyArray(length).map(function (_, index) {
101
- var _a, _b;
102
- var calculatedInput = calculateInput(valueByIndex, index);
103
- var isInputDisabled = calculatedInput.isDisabled, value = calculatedInput.value;
104
- var processedAutocomplete = (function () {
105
- if (autoCompleteMode === 'firstOnly') {
106
- return !!autoComplete && index === 0 ? autoComplete : 'off';
107
- }
108
- return autoComplete;
109
- })();
110
- var processedContainerProps = isFunction(inputContainerProps)
111
- ? inputContainerProps(calculatedInput, index)
112
- : inputContainerProps;
113
- var processedFieldProps = isFunction(fieldProps)
114
- ? fieldProps(calculatedInput, index)
115
- : fieldProps;
116
- var processedInputProps = isFunction(inputProps)
117
- ? inputProps(calculatedInput, index)
118
- : inputProps;
119
- var processedPlaceholder = isFunction(placeholder)
120
- ? placeholder(calculatedInput, index)
121
- : placeholder;
122
- return (
123
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
124
- React.createElement("div", __assign({ key: index }, processedContainerProps, { className: cnInputOTP('InputContainer', [
125
- processedContainerProps === null || processedContainerProps === void 0 ? void 0 : processedContainerProps.className,
126
- ]), onClick: function () {
127
- if (isInputDisabled) {
128
- focusFirstNonFilledInput();
101
+ }, [className]), direction: "column" }, other, { ref: ref }),
102
+ React.createElement(Stack, { className: cnInputOTP('Inputs'), gap: INPUT_OTP_SPACING_BY_SIZE[size] }, createEmptyArray(length).map(function (_, index) {
103
+ var _a, _b;
104
+ var calculatedInput = calculateInput(valueByIndex, index);
105
+ var isInputDisabled = calculatedInput.isDisabled, value = calculatedInput.value;
106
+ var processedAutocomplete = (function () {
107
+ if (autoCompleteMode === 'firstOnly') {
108
+ return !!autoComplete && index === 0 ? autoComplete : 'off';
129
109
  }
130
- } }),
131
- React.createElement(FieldControl, __assign({ size: size, disabled: disabled, error: error, disableStroke: disableStroke }, processedFieldProps, { className: cnInputOTP('Field', {
132
- notAvailable: isInputDisabled,
133
- }, [processedFieldProps === null || processedFieldProps === void 0 ? void 0 : processedFieldProps.className]) }),
134
- React.createElement(FieldInput, __assign({ inputMode: (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.inputMode) !== null && _a !== void 0 ? _a : 'numeric', type: (_b = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.type) !== null && _b !== void 0 ? _b : 'text', value: value, autoComplete: processedAutocomplete, "aria-label": ariaLabel && "".concat(ariaLabel, ": ").concat(index + 1, "."), placeholder: processedPlaceholder, disabled: isInputDisabled }, processedInputProps, { onMouseDown: function (event) {
135
- var _a;
136
- (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
137
- onInputSelect(index);
138
- }, onTouchStart: function (event) {
139
- var _a;
140
- (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onTouchStart) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
141
- onInputSelect(index);
142
- }, onPointerDown: function (event) {
143
- var _a;
144
- (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onPointerDown) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
145
- onInputSelect(index);
146
- }, onChange: function (event) {
147
- var _a;
148
- (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onChange) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
149
- onInputChange(event, index);
150
- }, onKeyDown: function (event) {
151
- var _a;
152
- (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
153
- onKeyDown(event, index);
154
- }, onPaste: function (event) {
155
- var _a;
156
- (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onPaste) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
157
- onPaste(event, index);
158
- }, onFocus: function (event) {
159
- var _a;
160
- (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onFocus) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
161
- setFocusedInputIndex(index);
162
- }, onBlur: function (event) {
163
- var _a;
164
- (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
165
- setFocusedInputIndex(null);
166
- }, className: cnInputOTP('Input', [
167
- processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.className,
168
- ]), ref: function (instance) {
169
- if (instance) {
170
- inputs.current[index] = instance;
171
- }
172
- setRef(processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.ref, instance);
173
- } })),
174
- React.createElement(Fieldset, null))));
175
- })));
110
+ return autoComplete;
111
+ })();
112
+ var processedContainerProps = isFunction(inputContainerProps)
113
+ ? inputContainerProps(calculatedInput, index)
114
+ : inputContainerProps;
115
+ var processedFieldProps = isFunction(fieldProps)
116
+ ? fieldProps(calculatedInput, index)
117
+ : fieldProps;
118
+ var processedInputProps = isFunction(inputProps)
119
+ ? inputProps(calculatedInput, index)
120
+ : inputProps;
121
+ var processedPlaceholder = isFunction(placeholder)
122
+ ? placeholder(calculatedInput, index)
123
+ : placeholder;
124
+ return (
125
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
126
+ React.createElement("div", __assign({ key: index }, processedContainerProps, { className: cnInputOTP('InputContainer', [
127
+ processedContainerProps === null || processedContainerProps === void 0 ? void 0 : processedContainerProps.className,
128
+ ]), onClick: function () {
129
+ if (isInputDisabled) {
130
+ focusFirstNonFilledInput();
131
+ }
132
+ } }),
133
+ React.createElement(FieldControl, __assign({ size: size, disabled: disabled, error: error, disableStroke: disableStroke }, processedFieldProps, { className: cnInputOTP('Field', {
134
+ notAvailable: isInputDisabled,
135
+ }, [processedFieldProps === null || processedFieldProps === void 0 ? void 0 : processedFieldProps.className]) }),
136
+ React.createElement(FieldInput, __assign({ inputMode: (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.inputMode) !== null && _a !== void 0 ? _a : 'numeric', type: (_b = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.type) !== null && _b !== void 0 ? _b : 'text', value: value, autoComplete: processedAutocomplete, "aria-label": ariaLabel && "".concat(ariaLabel, ": ").concat(index + 1, "."), placeholder: processedPlaceholder, disabled: isInputDisabled }, processedInputProps, { onMouseDown: function (event) {
137
+ var _a;
138
+ (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
139
+ onInputSelect(index);
140
+ }, onTouchStart: function (event) {
141
+ var _a;
142
+ (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onTouchStart) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
143
+ onInputSelect(index);
144
+ }, onPointerDown: function (event) {
145
+ var _a;
146
+ (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onPointerDown) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
147
+ onInputSelect(index);
148
+ }, onChange: function (event) {
149
+ var _a;
150
+ (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onChange) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
151
+ onInputChange(event, index);
152
+ }, onKeyDown: function (event) {
153
+ var _a;
154
+ (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
155
+ onKeyDown(event, index);
156
+ }, onPaste: function (event) {
157
+ var _a;
158
+ (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onPaste) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
159
+ onPaste(event, index);
160
+ }, onFocus: function (event) {
161
+ var _a;
162
+ (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onFocus) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
163
+ setFocusedInputIndex(index);
164
+ }, onBlur: function (event) {
165
+ var _a;
166
+ (_a = processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(processedInputProps, event);
167
+ setFocusedInputIndex(null);
168
+ }, className: cnInputOTP('Input', [
169
+ processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.className,
170
+ ]), ref: function (instance) {
171
+ if (instance) {
172
+ inputs.current[index] = instance;
173
+ }
174
+ setRef(processedInputProps === null || processedInputProps === void 0 ? void 0 : processedInputProps.ref, instance);
175
+ } })),
176
+ React.createElement(Fieldset, null))));
177
+ })),
178
+ React.createElement(FieldHint, { className: cnInputOTP('Hint'), size: "l", disabled: disabled, error: error }, hint)));
176
179
  });
177
180
  InputOTP.displayName = 'InputOTP';
@@ -1,8 +1,8 @@
1
1
  import type { StackGapVariant } from '../Stack';
2
- import type { InputOTPAutoCompleteMode, InputOTPSizeVariant } from './types';
2
+ import type { InputOTPSizeVariant } from './types';
3
3
  export declare const INPUT_OTP_DEFAULT_TAG = "div";
4
- export declare const INPUT_OTP_DEFAULT_AUTO_COMPLETE_MODE: InputOTPAutoCompleteMode;
5
- export declare const INPUT_OTP_DEFAULT_DISABLE_STROKE: boolean;
6
- export declare const INPUT_OTP_DEFAULT_SIZE: InputOTPSizeVariant;
4
+ export declare const INPUT_OTP_DEFAULT_AUTO_COMPLETE_MODE = "firstOnly";
5
+ export declare const INPUT_OTP_DEFAULT_DISABLE_STROKE = false;
6
+ export declare const INPUT_OTP_DEFAULT_SIZE = "s";
7
7
  export declare const INPUT_OTP_SPACING_BY_SIZE: Readonly<Record<InputOTPSizeVariant, StackGapVariant>>;
8
8
  export declare const INPUT_OTP_DEFAULT_FINISH_BEHAVIOR: ({ isFullFilled }: import("./types").InputOTPFinishBehaviorContext) => boolean;
@@ -1,12 +1,17 @@
1
1
  export declare const INPUT_OTP_VALIDATE_PRESET: {
2
+ /** Только текст */
2
3
  TEXT: (value: string) => boolean;
4
+ /** Только числа */
3
5
  NUMERIC: (value: string) => boolean;
6
+ /** Текст и числа */
4
7
  TEXT_NUMERIC: (value: string) => boolean;
5
8
  };
6
9
  export declare const INPUT_OTP_MASK_PRESET: {
7
10
  PASSWORD: string;
8
11
  };
9
12
  export declare const INPUT_OTP_FINISH_BEHAVIOR_PRESET: {
13
+ /** Реагирует на полный ввод на любом из input */
10
14
  FULL_FILLED_NON_LAST_INPUT: ({ isFullFilled }: import("./types").InputOTPFinishBehaviorContext) => boolean;
15
+ /** Реагирует на полный ввод только на последнем input, либо на нажатие на Enter при полном заполнении */
11
16
  FULL_FILLED_ON_LAST_INPUT: ({ isFullFilled, isChangeOnLastInput, isEnter, }: import("./types").InputOTPFinishBehaviorContext) => boolean;
12
17
  };
@@ -1,16 +1,21 @@
1
1
  export var INPUT_OTP_VALIDATE_PRESET = {
2
+ /** Только текст */
2
3
  TEXT: function (value) { return /[a-zA-Z]{1}/.test(value); },
4
+ /** Только числа */
3
5
  NUMERIC: function (value) { return /\d{1}/.test(value); },
6
+ /** Текст и числа */
4
7
  TEXT_NUMERIC: function (value) { return /[a-zA-Z0-9]{1}/.test(value); },
5
8
  };
6
9
  export var INPUT_OTP_MASK_PRESET = {
7
10
  PASSWORD: '•',
8
11
  };
9
12
  export var INPUT_OTP_FINISH_BEHAVIOR_PRESET = {
13
+ /** Реагирует на полный ввод на любом из input */
10
14
  FULL_FILLED_NON_LAST_INPUT: function (_a) {
11
15
  var isFullFilled = _a.isFullFilled;
12
16
  return isFullFilled;
13
17
  },
18
+ /** Реагирует на полный ввод только на последнем input, либо на нажатие на Enter при полном заполнении */
14
19
  FULL_FILLED_ON_LAST_INPUT: function (_a) {
15
20
  var isFullFilled = _a.isFullFilled, isChangeOnLastInput = _a.isChangeOnLastInput, isEnter = _a.isEnter;
16
21
  if (isFullFilled && isChangeOnLastInput) {
@@ -1,4 +1,4 @@
1
- import type { ComponentPropsWithRef, ElementType } from 'react';
1
+ import type { ComponentPropsWithRef, ComponentRef, ElementType, ReactNode } from 'react';
2
2
  import type { PolymorphicComponentPropsWithRef } from '../../utils/polymorphicComponentWithRef';
3
3
  import type { FIELD_CONTROL_DEFAULT_TAG, FieldControlBaseProps } from '../FieldControl';
4
4
  import type { FieldInputProps } from '../FieldInput';
@@ -38,15 +38,15 @@ export type InputOTPFinishBehaviorContext = {
38
38
  value: string;
39
39
  /** Необработанное значение */
40
40
  rawValue: InputOTPRawValue;
41
- /** Значение с маской */
41
+ /** Значение с примененной маской */
42
42
  maskedValue: string;
43
- /** Необработанное значение с маской */
43
+ /** Необработанное значение с примененной маской */
44
44
  maskedRawValue: InputOTPRawValue;
45
- /** Флаг: Это изменение на последнем input */
45
+ /** Если `true` — это изменение на последнем input */
46
46
  isChangeOnLastInput: boolean;
47
- /** index input'а, на котором произошло изменение */
47
+ /** index input, на котором произошло изменение */
48
48
  inputIndex: number;
49
- /** Флаг: Был нажат enter */
49
+ /** Если `true` это нажатие Enter */
50
50
  isEnter: boolean;
51
51
  };
52
52
  export type InputOTPFinishBehavior = (context: InputOTPFinishBehaviorContext) => boolean;
@@ -87,6 +87,8 @@ export type InputOTPBaseProps = {
87
87
  placeholder?: InputOTPDynamicInputParameter<string>;
88
88
  /** Свойства Field */
89
89
  fieldProps?: InputOTPDynamicInputParameter<PolymorphicComponentPropsWithRef<FieldControlBaseProps, typeof FIELD_CONTROL_DEFAULT_TAG>>;
90
+ /** Дополнительное описание к полю */
91
+ hint?: ReactNode;
90
92
  /** Свойства Input */
91
93
  inputProps?: InputOTPDynamicInputParameter<FieldInputProps>;
92
94
  /** Свойства InputContainer */
@@ -99,3 +101,4 @@ export type InputOTPBaseProps = {
99
101
  'data-testid'?: string;
100
102
  };
101
103
  export type InputOTPProps<As extends ElementType = typeof INPUT_OTP_DEFAULT_TAG> = PolymorphicComponentPropsWithRef<InputOTPBaseProps, As>;
104
+ export type InputOTPRef<As extends ElementType = typeof INPUT_OTP_DEFAULT_TAG> = ComponentRef<As>;
@@ -66,6 +66,7 @@ import type { 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
70
  import type { TableContainerProps, TableProps, TableCaptionProps, TableCellProps } from '../../../../Table';
70
71
  import type { TagProps } from '../../../../Tag';
71
72
  import type { TagProps as TagPropsNext } from '../../../../TagNext';
@@ -188,6 +189,11 @@ export type ThemeDefaultProps = {
188
189
  Slider?: Partial<SliderProps>;
189
190
  SnackbarProvider?: Partial<SnackbarProviderProps>;
190
191
  Stack?: Partial<StackProps>;
192
+ StepperVertical?: Partial<StepperVerticalProps>;
193
+ StepperVerticalStep?: Partial<StepperVerticalStepProps>;
194
+ StepperVerticalStepButton?: Partial<StepperVerticalStepButtonProps>;
195
+ StepperVerticalIconIndicator?: Partial<StepperVerticalIconIndicatorProps>;
196
+ StepperVerticalIndicator?: Partial<StepperVerticalIndicatorProps>;
191
197
  Table?: Partial<TableProps>;
192
198
  TableCaption?: Partial<TableCaptionProps>;
193
199
  TableCell?: Partial<TableCellProps>;
@@ -79,10 +79,19 @@
79
79
  }
80
80
 
81
81
  .Select-RenderLeft,
82
- .Select-RenderRight {
82
+ .Select-RenderRight_nonInteractive {
83
83
  pointer-events: none;
84
84
  }
85
85
 
86
+ .Select-ClearIcon {
87
+ visibility: hidden;
88
+ transition: visibility var(--transition-default);
89
+ }
90
+
91
+ .Select-ClearIcon_visibility {
92
+ visibility: visible;
93
+ }
94
+
86
95
  .Select-DropDownIcon {
87
96
  display: flex;
88
97
  align-items: center;
@@ -1,4 +1,3 @@
1
1
  import './Select.css';
2
2
  import type { SelectComponent } from './types';
3
- export declare const cnSelect: import("@bem-react/classname").ClassNameFormatter;
4
3
  export declare const Select: SelectComponent;
@@ -1,39 +1,46 @@
1
1
  import { __assign, __read, __rest, __spreadArray } from "tslib";
2
2
  import './Select.css';
3
3
  import React, { Children, forwardRef, isValidElement, useEffect, useRef, } from 'react';
4
+ import { logger } from '@ozen-ui/logger';
4
5
  import { isFragment } from 'react-is';
5
6
  import { useControlled } from '../../hooks/useControlled';
7
+ import { useDevEffect } from '../../hooks/useDevEffect';
6
8
  import { useMultiRef } from '../../hooks/useMultiRef';
7
9
  import { useThemeProps } from '../../hooks/useThemeProps';
8
- import { cn } from '../../utils/classname';
10
+ import { isArray, isNotNil } from '../../utils';
9
11
  import { isKeys } from '../../utils/isKeys';
10
12
  import { isString } from '../../utils/isString';
11
13
  import { DataList, DataListOption } from '../DataList';
12
14
  import { SelectInput } from './components';
13
- import { SELECT_DEFAULT_AUTO_FOCUS, SELECT_DEFAULT_DEFAULT_OPEN, SELECT_DEFAULT_DISABLED, SELECT_DEFAULT_FULL_WIDTH, SELECT_DEFAULT_MULTILINE, SELECT_DEFAULT_REQUIRED, SELECT_DEFAULT_SIZE, } from './constants';
15
+ import { SELECT_DEFAULT_AUTO_FOCUS, SELECT_DEFAULT_DEFAULT_OPEN, SELECT_DEFAULT_DISABLED, SELECT_DEFAULT_FULL_WIDTH, SELECT_DEFAULT_RENDER_RIGHT_LAYOUT, SELECT_DEFAULT_MULTILINE, SELECT_DEFAULT_REQUIRED, SELECT_DEFAULT_SIZE, SELECT_DEFAULT_SHOW_CLEAR_BUTTON, SELECT_DEFAULT_ERROR, } from './constants';
14
16
  import { isMultipleLabel, isMultipleParams, isNotMultipleLabel, isNotMultipleParams, } from './helpers';
15
- export var cnSelect = cn('Select');
17
+ import { SelectContext } from './SelectContext';
16
18
  var SelectRender = function (inProps, ref) {
17
19
  var props = useThemeProps({
18
20
  props: inProps,
19
21
  name: 'Select',
20
22
  });
21
- var _a = props.size, size = _a === void 0 ? SELECT_DEFAULT_SIZE : _a, _b = props.autoFocus, autoFocus = _b === void 0 ? SELECT_DEFAULT_AUTO_FOCUS : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? SELECT_DEFAULT_FULL_WIDTH : _c, _d = props.disabled, disabled = _d === void 0 ? SELECT_DEFAULT_DISABLED : _d, _e = props.required, required = _e === void 0 ? SELECT_DEFAULT_REQUIRED : _e, _f = props.multiline, multiline = _f === void 0 ? SELECT_DEFAULT_MULTILINE : _f, _g = props.defaultOpen, defaultOpen = _g === void 0 ? SELECT_DEFAULT_DEFAULT_OPEN : _g, valueProp = props.value, defaultValue = props.defaultValue, onChange = props.onChange, renderValueProp = props.renderValue, children = props.children, onClick = props.onClick, onKeyDown = props.onKeyDown, menuProps = props.menuProps, dataListPropsProp = props.dataListProps, bodyProps = props.bodyProps, bodyRefProp = props.bodyRef, onCloseProp = props.onClose, onOpenProp = props.onOpen, openProp = props.open, multiple = props.multiple, other = __rest(props, ["size", "autoFocus", "fullWidth", "disabled", "required", "multiline", "defaultOpen", "value", "defaultValue", "onChange", "renderValue", "children", "onClick", "onKeyDown", "menuProps", "dataListProps", "bodyProps", "bodyRef", "onClose", "onOpen", "open", "multiple"]);
23
+ var _a = props.size, size = _a === void 0 ? SELECT_DEFAULT_SIZE : _a, _b = props.autoFocus, autoFocus = _b === void 0 ? SELECT_DEFAULT_AUTO_FOCUS : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? SELECT_DEFAULT_FULL_WIDTH : _c, _d = props.disabled, disabled = _d === void 0 ? SELECT_DEFAULT_DISABLED : _d, _e = props.required, required = _e === void 0 ? SELECT_DEFAULT_REQUIRED : _e, _f = props.multiline, multiline = _f === void 0 ? SELECT_DEFAULT_MULTILINE : _f, _g = props.defaultOpen, defaultOpen = _g === void 0 ? SELECT_DEFAULT_DEFAULT_OPEN : _g, _h = props.renderRightLayout, renderRightLayout = _h === void 0 ? SELECT_DEFAULT_RENDER_RIGHT_LAYOUT : _h, valueProp = props.value, defaultValue = props.defaultValue, onChange = props.onChange, renderValueProp = props.renderValue, children = props.children, onClick = props.onClick, onKeyDown = props.onKeyDown, menuProps = props.menuProps, dataListPropsProp = props.dataListProps, bodyProps = props.bodyProps, bodyRefProp = props.bodyRef, onCloseProp = props.onClose, onOpenProp = props.onOpen, openProp = props.open, multiple = props.multiple, _j = props.showClearButton, showClearButton = _j === void 0 ? SELECT_DEFAULT_SHOW_CLEAR_BUTTON : _j, renderLeft = props.renderLeft, renderRight = props.renderRight, onClearProp = props.onClear, clearText = props.clearText, _k = props.error, error = _k === void 0 ? SELECT_DEFAULT_ERROR : _k, other = __rest(props, ["size", "autoFocus", "fullWidth", "disabled", "required", "multiline", "defaultOpen", "renderRightLayout", "value", "defaultValue", "onChange", "renderValue", "children", "onClick", "onKeyDown", "menuProps", "dataListProps", "bodyProps", "bodyRef", "onClose", "onOpen", "open", "multiple", "showClearButton", "renderLeft", "renderRight", "onClear", "clearText", "error"]);
24
+ useDevEffect(function () {
25
+ if (renderRightLayout.length !== new Set(renderRightLayout).size) {
26
+ logger.error("\u0412 renderRightLayout [".concat(renderRightLayout.map(function (element) { return "\"".concat(element, "\""); }).join(', '), "] \u0435\u0441\u0442\u044C \u0434\u0443\u0431\u043B\u0438\u0440\u0443\u044E\u0449\u0438\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B, \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043C\u044B\u0435 \u0434\u0430\u043D\u043D\u044B\u0435."));
27
+ }
28
+ }, [renderRightLayout]);
22
29
  var bodyInnerRef = useRef(null);
23
30
  var bodyRef = useMultiRef([(bodyProps === null || bodyProps === void 0 ? void 0 : bodyProps.ref) || bodyRefProp, bodyInnerRef]);
24
31
  var dataListProps = dataListPropsProp || menuProps;
25
- var _h = __read(useControlled({
32
+ var _l = __read(useControlled({
26
33
  value: valueProp,
27
34
  defaultValue: defaultValue,
28
35
  name: 'Select',
29
36
  state: 'value',
30
- }), 2), valueState = _h[0], setValueState = _h[1];
31
- var _j = __read(useControlled({
37
+ }), 2), valueState = _l[0], setValueState = _l[1];
38
+ var _m = __read(useControlled({
32
39
  value: openProp,
33
40
  defaultValue: defaultOpen,
34
41
  name: 'Select',
35
42
  state: 'open',
36
- }), 2), open = _j[0], setOpen = _j[1];
43
+ }), 2), open = _m[0], setOpen = _m[1];
37
44
  var currentLabel;
38
45
  var isNotSelectOption = function (child) { return !isValidElement(child) || child.type !== DataListOption; };
39
46
  var resolvedChildren = isFragment(children)
@@ -122,8 +129,16 @@ var SelectRender = function (inProps, ref) {
122
129
  return (params === null || params === void 0 ? void 0 : params.value) || '';
123
130
  return '';
124
131
  };
132
+ var onClear = function (event) {
133
+ setValueState(undefined);
134
+ onChange === null || onChange === void 0 ? void 0 : onChange(undefined, event);
135
+ onClearProp === null || onClearProp === void 0 ? void 0 : onClearProp(event);
136
+ };
125
137
  /** Представление значение элемента контроля */
126
138
  var renderValue = renderValueProp || renderDefaultValue;
139
+ var hasValue = isArray(valueState)
140
+ ? valueState.length > 0
141
+ : isNotNil(valueState);
127
142
  useEffect(function () {
128
143
  var _a;
129
144
  /** Устанавливает фокус на элементе контроля
@@ -138,8 +153,23 @@ var SelectRender = function (inProps, ref) {
138
153
  if (autoFocus)
139
154
  (_a = bodyInnerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
140
155
  }, [autoFocus]);
141
- return (React.createElement(React.Fragment, null,
142
- React.createElement(SelectInput, __assign({ size: size, disabled: disabled, required: required, multiline: multiline, fullWidth: fullWidth }, other, { open: open, value: inputValue(), onClick: handleClick, onKeyDown: handleKeyDown, renderedValue: renderValue({
156
+ return (React.createElement(SelectContext.Provider, { value: {
157
+ open: open !== null && open !== void 0 ? open : false,
158
+ hasValue: hasValue,
159
+ size: size,
160
+ disabled: disabled,
161
+ renderRightLayout: renderRightLayout,
162
+ showClearButton: showClearButton,
163
+ fullWidth: fullWidth,
164
+ required: required,
165
+ multiline: multiline,
166
+ onClear: onClear,
167
+ clearText: clearText !== null && clearText !== void 0 ? clearText : '',
168
+ renderRight: renderRight,
169
+ renderLeft: renderLeft,
170
+ error: error,
171
+ } },
172
+ React.createElement(SelectInput, __assign({}, other, { value: inputValue(), onClick: handleClick, onKeyDown: handleKeyDown, renderedValue: renderValue({
143
173
  label: currentLabel,
144
174
  value: valueState,
145
175
  }), bodyProps: __assign(__assign({}, bodyProps), { ref: bodyRef }), ref: ref })),
@@ -0,0 +1,21 @@
1
+ import type { SelectOnClear, SelectRenderLeft, SelectRenderRight, SelectRenderRightLayout } from './entities';
2
+ import type { SelectPropSize } from './types';
3
+ export type SelectContextValue = {
4
+ renderRightLayout: SelectRenderRightLayout;
5
+ size: SelectPropSize;
6
+ open: boolean;
7
+ disabled: boolean;
8
+ hasValue: boolean;
9
+ onClear: SelectOnClear;
10
+ renderLeft: SelectRenderLeft;
11
+ renderRight: SelectRenderRight;
12
+ clearText: string;
13
+ showClearButton: boolean;
14
+ required: boolean;
15
+ multiline: boolean;
16
+ fullWidth: boolean;
17
+ error: boolean;
18
+ };
19
+ export declare const SelectContextDefaultValue: SelectContextValue;
20
+ export declare const SelectContext: import("react").Context<SelectContextValue>;
21
+ export declare const useSelectContext: () => SelectContextValue;
@@ -0,0 +1,25 @@
1
+ import { useContext, createContext } from 'react';
2
+ import { isDev } from '../../constants/environment';
3
+ import { SELECT_DEFAULT_RENDER_RIGHT_LAYOUT, SELECT_DEFAULT_SIZE, SELECT_DEFAULT_DEFAULT_OPEN, SELECT_DEFAULT_DISABLED, SELECT_DEFAULT_SHOW_CLEAR_BUTTON, SELECT_DEFAULT_REQUIRED, SELECT_DEFAULT_MULTILINE, SELECT_DEFAULT_FULL_WIDTH, } from './constants';
4
+ export var SelectContextDefaultValue = {
5
+ renderRightLayout: SELECT_DEFAULT_RENDER_RIGHT_LAYOUT,
6
+ disabled: SELECT_DEFAULT_DISABLED,
7
+ size: SELECT_DEFAULT_SIZE,
8
+ open: SELECT_DEFAULT_DEFAULT_OPEN,
9
+ hasValue: false,
10
+ onClear: function () { },
11
+ clearText: '',
12
+ renderLeft: undefined,
13
+ renderRight: undefined,
14
+ showClearButton: SELECT_DEFAULT_SHOW_CLEAR_BUTTON,
15
+ required: SELECT_DEFAULT_REQUIRED,
16
+ multiline: SELECT_DEFAULT_MULTILINE,
17
+ fullWidth: SELECT_DEFAULT_FULL_WIDTH,
18
+ error: false,
19
+ };
20
+ export var SelectContext = createContext(SelectContextDefaultValue);
21
+ export var useSelectContext = function () { return useContext(SelectContext); };
22
+ // Именованный провайдер
23
+ if (isDev) {
24
+ SelectContext.displayName = 'SelectContext';
25
+ }
@@ -0,0 +1 @@
1
+ export declare const cnSelect: import("@bem-react/classname").ClassNameFormatter;
@@ -0,0 +1,2 @@
1
+ import { cn } from '../../utils';
2
+ export var cnSelect = cn('Select');