@salutejs/plasma-new-hope 0.327.0-canary.1741.15775036215.0 → 0.327.0-canary.1741.15776056320.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 (236) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.js +3 -3
  2. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  4. package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
  5. package/cjs/components/Checkbox/Checkbox.js +2 -1
  6. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  7. package/cjs/components/Combobox/ComboboxNew/Combobox.js +2 -1
  8. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  9. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  10. package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  11. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
  12. package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  13. package/cjs/components/Combobox/ComboboxOld/Combobox.js +2 -1
  14. package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  15. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
  16. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  17. package/cjs/components/Dropdown/Dropdown.js +2 -2
  18. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  19. package/cjs/components/Dropdown/FloatingPopover.js +2 -2
  20. package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
  21. package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  22. package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  23. package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  24. package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  25. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
  26. package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  27. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
  28. package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  29. package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  30. package/cjs/components/Radiobox/Radiobox.js +3 -2
  31. package/cjs/components/Radiobox/Radiobox.js.map +1 -1
  32. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
  33. package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  34. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
  35. package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  36. package/cjs/components/Select/FloatingPopover.js +2 -2
  37. package/cjs/components/Select/FloatingPopover.js.map +1 -1
  38. package/cjs/components/Select/Select.js +2 -2
  39. package/cjs/components/Select/Select.js.map +1 -1
  40. package/cjs/components/Select/ui/Inner/Inner.js +2 -2
  41. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  42. package/cjs/components/Spinner/Spinner.js +2 -2
  43. package/cjs/components/Spinner/Spinner.js.map +1 -1
  44. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
  45. package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  46. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
  47. package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  48. package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
  49. package/cjs/components/TextField/TextField.js +4 -3
  50. package/cjs/components/TextField/TextField.js.map +1 -1
  51. package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
  52. package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
  53. package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  54. package/emotion/cjs/components/Checkbox/Checkbox.js +3 -2
  55. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
  56. package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  57. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
  58. package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
  59. package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
  60. package/emotion/cjs/components/Dropdown/Dropdown.js +8 -8
  61. package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
  62. package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  63. package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
  64. package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  65. package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
  66. package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
  67. package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  68. package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
  69. package/emotion/cjs/components/Select/Select.js +1 -2
  70. package/emotion/cjs/components/Select/ui/Inner/Inner.js +1 -2
  71. package/emotion/cjs/components/Spinner/Spinner.js +2 -2
  72. package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
  73. package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
  74. package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  75. package/emotion/cjs/components/TextField/TextField.js +4 -4
  76. package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  77. package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
  78. package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
  79. package/emotion/es/components/Checkbox/Checkbox.js +2 -1
  80. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  81. package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  82. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  83. package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  84. package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  85. package/emotion/es/components/Dropdown/Dropdown.js +1 -1
  86. package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
  87. package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  88. package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
  89. package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  90. package/emotion/es/components/Radiobox/Radiobox.js +2 -2
  91. package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
  92. package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  93. package/emotion/es/components/Select/FloatingPopover.js +1 -1
  94. package/emotion/es/components/Select/Select.js +1 -2
  95. package/emotion/es/components/Select/ui/Inner/Inner.js +1 -2
  96. package/emotion/es/components/Spinner/Spinner.js +1 -1
  97. package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
  98. package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
  99. package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
  100. package/emotion/es/components/TextField/TextField.js +3 -3
  101. package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
  102. package/es/components/Autocomplete/Autocomplete.js +1 -1
  103. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  104. package/es/components/Autocomplete/FloatingPopover.js +1 -1
  105. package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
  106. package/es/components/Checkbox/Checkbox.js +2 -1
  107. package/es/components/Checkbox/Checkbox.js.map +1 -1
  108. package/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  109. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  110. package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  111. package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
  112. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  113. package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
  114. package/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  115. package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
  116. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
  117. package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
  118. package/es/components/Dropdown/Dropdown.js +1 -1
  119. package/es/components/Dropdown/Dropdown.js.map +1 -1
  120. package/es/components/Dropdown/FloatingPopover.js +1 -1
  121. package/es/components/Dropdown/FloatingPopover.js.map +1 -1
  122. package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
  123. package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
  124. package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
  125. package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
  126. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  127. package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
  128. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
  129. package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
  130. package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
  131. package/es/components/Radiobox/Radiobox.js +3 -2
  132. package/es/components/Radiobox/Radiobox.js.map +1 -1
  133. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
  134. package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
  135. package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
  136. package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
  137. package/es/components/Select/FloatingPopover.js +1 -1
  138. package/es/components/Select/FloatingPopover.js.map +1 -1
  139. package/es/components/Select/Select.js +1 -1
  140. package/es/components/Select/Select.js.map +1 -1
  141. package/es/components/Select/ui/Inner/Inner.js +1 -1
  142. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  143. package/es/components/Spinner/Spinner.js +1 -1
  144. package/es/components/Spinner/Spinner.js.map +1 -1
  145. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
  146. package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
  147. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
  148. package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
  149. package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
  150. package/es/components/TextField/TextField.js +2 -1
  151. package/es/components/TextField/TextField.js.map +1 -1
  152. package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
  153. package/package.json +4 -4
  154. package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
  155. package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
  156. package/styled-components/cjs/components/Checkbox/Checkbox.js +3 -2
  157. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +21 -20
  158. package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
  159. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +4 -4
  160. package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +9 -8
  161. package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -7
  162. package/styled-components/cjs/components/Dropdown/Dropdown.js +8 -8
  163. package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
  164. package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
  165. package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -3
  166. package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  167. package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
  168. package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -3
  169. package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  170. package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
  171. package/styled-components/cjs/components/Select/Select.js +1 -2
  172. package/styled-components/cjs/components/Select/ui/Inner/Inner.js +1 -2
  173. package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
  174. package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -3
  175. package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -3
  176. package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
  177. package/styled-components/cjs/components/TextField/TextField.js +3 -3
  178. package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
  179. package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
  180. package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
  181. package/styled-components/es/components/Checkbox/Checkbox.js +2 -1
  182. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +2 -1
  183. package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
  184. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
  185. package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +2 -1
  186. package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
  187. package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
  188. package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
  189. package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
  190. package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +1 -2
  191. package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
  192. package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
  193. package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +1 -2
  194. package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -2
  195. package/styled-components/es/components/Select/FloatingPopover.js +1 -1
  196. package/styled-components/es/components/Select/Select.js +1 -2
  197. package/styled-components/es/components/Select/ui/Inner/Inner.js +1 -2
  198. package/styled-components/es/components/Spinner/Spinner.js +1 -1
  199. package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +1 -2
  200. package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +1 -2
  201. package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
  202. package/styled-components/es/components/TextField/TextField.js +2 -2
  203. package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
  204. package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
  205. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  206. package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
  207. package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
  208. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  209. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
  210. package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
  211. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
  212. package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
  213. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
  214. package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
  215. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
  216. package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
  217. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
  218. package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
  219. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
  220. package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
  221. package/types/components/Radiobox/Radiobox.d.ts +2 -2
  222. package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
  223. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
  224. package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
  225. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
  226. package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
  227. package/types/components/Select/Select.d.ts.map +1 -1
  228. package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
  229. package/types/components/Spinner/Spinner.d.ts +1 -1
  230. package/types/components/Spinner/Spinner.d.ts.map +1 -1
  231. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
  232. package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
  233. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
  234. package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
  235. package/types/components/TextField/TextField.d.ts +1 -1
  236. package/types/components/TextField/TextField.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentGroup.js","sources":["../../../../../src/components/Segment/ui/SegmentGroup/SegmentGroup.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef, KeyboardEvent } from 'react';\nimport type { RefObject, MutableRefObject } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../engines/types';\nimport {\n IconDisclosureLeftWithOffset,\n IconDisclosureRightWithOffset,\n IconDisclosureDownWithOffset,\n IconDisclosureUpWithOffset,\n} from '../../../_Icon';\nimport { classes, tokens } from '../../tokens';\nimport { cx } from '../../../../utils';\nimport { useSegmentInner } from '../../SegmentProvider/SegmentProvider';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as filledBackgroundCSS } from './variations/_filledBackgound/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { base as orientationCSS } from './variations/_orientation/base';\nimport type { SegmentGroupProps } from './SegmentGroup.types';\nimport {\n StyledContent,\n StyledContentWrapper,\n base,\n StyledLeftArrow,\n StyledRightArrow,\n StyledTopArrow,\n StyledBottomArrow,\n} from './SegmentGroup.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nexport const getChildNodes = (wrapper: HTMLElement | null) => {\n const container = wrapper?.firstChild;\n return container ? (Array.from(container?.childNodes) as HTMLElement[]) : [];\n};\n\nexport const segmentGroupRoot = (Root: RootProps<HTMLDivElement, SegmentGroupProps>) =>\n forwardRef<HTMLDivElement, SegmentGroupProps>((props, outerRef) => {\n const {\n id,\n selectionMode,\n pilled,\n stretch,\n clip = true,\n orientation = 'horizontal',\n filledBackground = false,\n hasBackground = false,\n disabled = false,\n size,\n view,\n children,\n ...rest\n } = props;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const { setSelectionMode, setDisabledGroup } = useSegmentInner();\n\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(true);\n\n const uniqId = safeUseId();\n const segmentGroupId = id || uniqId;\n\n const canClip = clip && !stretch;\n\n const isVertical = orientation === 'vertical';\n const stretchClass =\n (clip ? firstItemVisible && lastItemVisible : true) && stretch ? classes.segmentStretch : undefined;\n\n const orientationClass = isVertical ? classes.segmentVertical : undefined;\n const clipScrollClass = canClip ? classes.segmentGroupClipScroll : undefined;\n\n const pilledAttr = (view !== 'clear' || hasBackground) && pilled;\n const filledBackgroundAttr = (view !== 'clear' && filledBackground) || hasBackground;\n\n const pilledClass = pilledAttr ? classes.segmentPilled : undefined;\n const filledClass = filledBackgroundAttr ? classes.segmentGroupFilledBackground : undefined;\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const childNodes = getChildNodes(scrollRef.current);\n\n const scrollLeft = Math.round(scrollRef.current.scrollLeft);\n const firstOverflowingTab = childNodes\n .slice()\n .reverse()\n .find((child: HTMLElement | null) => {\n if (!child || child.offsetLeft === undefined) {\n return;\n }\n const tabStartX = child.offsetLeft;\n\n return tabStartX < scrollLeft;\n });\n\n firstOverflowingTab?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [disabled, scrollRef]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n\n const childNodes = getChildNodes(scrollRef.current);\n\n const lastOverflowingChild = childNodes.find((child) => {\n if (!child || child.offsetLeft === undefined) {\n return;\n }\n const tabEndX = child.offsetLeft + child.offsetWidth;\n\n return tabEndX > scrollRight;\n });\n\n lastOverflowingChild?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [disabled, scrollRef]);\n\n const onKeyDown = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n const childNodes = getChildNodes(scrollRef?.current);\n\n const index = childNodes.findIndex((child) => document.activeElement === child);\n\n const minIndex = 0;\n const maxIndex = childNodes.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n childNodes[nextIndex]?.focus();\n childNodes[nextIndex]?.scrollIntoView({\n block: 'center',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }, []);\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation?.();\n\n if (!canClip) {\n setFirstItemVisible(true);\n setLastItemVisible(true);\n return;\n }\n\n if (isVertical) {\n const maxScrollTop = event.currentTarget.scrollHeight - event.currentTarget.clientHeight;\n const scrollTop = Math.round(event.currentTarget.scrollTop);\n\n setFirstItemVisible(scrollTop <= 0);\n setLastItemVisible(scrollTop >= maxScrollTop);\n return;\n }\n\n const maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= 0);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [isVertical, canClip],\n );\n\n useEffect(() => {\n handleScroll(({ currentTarget: scrollRef.current } as unknown) as React.UIEvent<HTMLElement>);\n }, [handleScroll]);\n\n useEffect(() => {\n if (!canClip) {\n setLastItemVisible(true);\n return;\n }\n\n setLastItemVisible(\n isVertical\n ? scrollRef.current?.scrollHeight === scrollRef.current?.clientHeight\n : scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth,\n );\n }, [isVertical, canClip]);\n\n // Этот хук компенсирует появление левой/верхней стрелки при прокрутке\n useEffect(() => {\n if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n\n if (isVertical) {\n scrollRef.current.scrollTo({\n top: Math.round(scrollRef.current.scrollTop + leftArrowRef.current.clientHeight),\n });\n return;\n }\n\n scrollRef.current.scrollTo({\n left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth),\n });\n }, [firstItemVisible, isVertical]);\n\n const PreviousButton = useMemo(() => {\n const ArrowNode = isVertical ? StyledTopArrow : StyledLeftArrow;\n return (\n <ArrowNode\n type=\"button\"\n aria-label=\"Предыдущий сегмент\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n {isVertical ? (\n <IconDisclosureUpWithOffset color={`var(${tokens.arrowColor})`} size=\"s\" />\n ) : (\n <IconDisclosureLeftWithOffset color={`var(${tokens.arrowColor})`} />\n )}\n </ArrowNode>\n );\n }, [onPrev, isVertical]);\n\n const NextButton = useMemo(() => {\n const ArrowNode = isVertical ? StyledBottomArrow : StyledRightArrow;\n return (\n <ArrowNode\n type=\"button\"\n aria-label=\"Следующий сегмент\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n {isVertical ? (\n <IconDisclosureDownWithOffset color={`var(${tokens.arrowColor})`} size=\"s\" />\n ) : (\n <IconDisclosureRightWithOffset color={`var(${tokens.arrowColor})`} />\n )}\n </ArrowNode>\n );\n }, [onNext, isVertical]);\n\n useEffect(() => {\n selectionMode && setSelectionMode(selectionMode);\n setDisabledGroup(disabled);\n }, [selectionMode, disabled]);\n\n return (\n <Root\n view={view}\n size={size}\n orientation={orientation}\n id={segmentGroupId}\n ref={outerRef}\n filledBackground={filledBackgroundAttr}\n disabled={disabled}\n pilled={pilledAttr}\n className={cx(pilledClass, filledClass, stretchClass, orientationClass)}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass)}\n ref={scrollRef as RefObject<HTMLDivElement>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>{children}</StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n );\n });\n\nexport const segmentGroupConfig = {\n name: 'SegmentGroup',\n tag: 'div',\n layout: segmentGroupRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n orientation: {\n css: orientationCSS,\n },\n filledBackground: {\n css: filledBackgroundCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getChildNodes","wrapper","container","firstChild","Array","from","childNodes","segmentGroupRoot","Root","forwardRef","props","outerRef","id","selectionMode","pilled","stretch","clip","orientation","filledBackground","hasBackground","disabled","size","view","children","rest","scrollRef","useRef","trackRef","leftArrowRef","setSelectionMode","setDisabledGroup","useSegmentInner","firstItemVisible","setFirstItemVisible","useState","lastItemVisible","setLastItemVisible","uniqId","safeUseId","segmentGroupId","canClip","isVertical","stretchClass","classes","segmentStretch","undefined","orientationClass","segmentVertical","clipScrollClass","segmentGroupClipScroll","pilledAttr","filledBackgroundAttr","pilledClass","segmentPilled","filledClass","segmentGroupFilledBackground","onPrev","useCallback","current","scrollLeft","Math","round","firstOverflowingTab","slice","reverse","find","child","offsetLeft","tabStartX","scrollIntoView","block","inline","onNext","scrollRight","clientWidth","lastOverflowingChild","tabEndX","offsetWidth","onKeyDown","event","index","findIndex","document","activeElement","minIndex","maxIndex","length","nextIndex","keyCode","end","left","right","home","preventDefault","focus","behavior","handleScroll","stopPropagation","maxScrollTop","currentTarget","scrollHeight","clientHeight","scrollTop","maxScrollLeft","scrollWidth","useEffect","scrollTo","top","PreviousButton","useMemo","ArrowNode","StyledTopArrow","StyledLeftArrow","React","createElement","type","onClick","tabIndex","IconDisclosureUpWithOffset","color","tokens","arrowColor","IconDisclosureLeftWithOffset","NextButton","StyledBottomArrow","StyledRightArrow","IconDisclosureDownWithOffset","IconDisclosureRightWithOffset","_extends","ref","className","cx","StyledContentWrapper","onScroll","StyledContent","segmentGroupConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","stretchCSS","orientationCSS","filledBackgroundCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"SegmentGroup.js","sources":["../../../../../src/components/Segment/ui/SegmentGroup/SegmentGroup.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useEffect, useRef, KeyboardEvent } from 'react';\nimport type { RefObject, MutableRefObject } from 'react';\nimport { safeUseId, cx } from 'src/utils';\nimport type { RootProps } from 'src/engines/types';\n\nimport {\n IconDisclosureLeftWithOffset,\n IconDisclosureRightWithOffset,\n IconDisclosureDownWithOffset,\n IconDisclosureUpWithOffset,\n} from '../../../_Icon';\nimport { classes, tokens } from '../../tokens';\nimport { useSegmentInner } from '../../SegmentProvider/SegmentProvider';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport { base as filledBackgroundCSS } from './variations/_filledBackgound/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { base as orientationCSS } from './variations/_orientation/base';\nimport type { SegmentGroupProps } from './SegmentGroup.types';\nimport {\n StyledContent,\n StyledContentWrapper,\n base,\n StyledLeftArrow,\n StyledRightArrow,\n StyledTopArrow,\n StyledBottomArrow,\n} from './SegmentGroup.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nexport const getChildNodes = (wrapper: HTMLElement | null) => {\n const container = wrapper?.firstChild;\n return container ? (Array.from(container?.childNodes) as HTMLElement[]) : [];\n};\n\nexport const segmentGroupRoot = (Root: RootProps<HTMLDivElement, SegmentGroupProps>) =>\n forwardRef<HTMLDivElement, SegmentGroupProps>((props, outerRef) => {\n const {\n id,\n selectionMode,\n pilled,\n stretch,\n clip = true,\n orientation = 'horizontal',\n filledBackground = false,\n hasBackground = false,\n disabled = false,\n size,\n view,\n children,\n ...rest\n } = props;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const { setSelectionMode, setDisabledGroup } = useSegmentInner();\n\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(true);\n\n const uniqId = safeUseId();\n const segmentGroupId = id || uniqId;\n\n const canClip = clip && !stretch;\n\n const isVertical = orientation === 'vertical';\n const stretchClass =\n (clip ? firstItemVisible && lastItemVisible : true) && stretch ? classes.segmentStretch : undefined;\n\n const orientationClass = isVertical ? classes.segmentVertical : undefined;\n const clipScrollClass = canClip ? classes.segmentGroupClipScroll : undefined;\n\n const pilledAttr = (view !== 'clear' || hasBackground) && pilled;\n const filledBackgroundAttr = (view !== 'clear' && filledBackground) || hasBackground;\n\n const pilledClass = pilledAttr ? classes.segmentPilled : undefined;\n const filledClass = filledBackgroundAttr ? classes.segmentGroupFilledBackground : undefined;\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const childNodes = getChildNodes(scrollRef.current);\n\n const scrollLeft = Math.round(scrollRef.current.scrollLeft);\n const firstOverflowingTab = childNodes\n .slice()\n .reverse()\n .find((child: HTMLElement | null) => {\n if (!child || child.offsetLeft === undefined) {\n return;\n }\n const tabStartX = child.offsetLeft;\n\n return tabStartX < scrollLeft;\n });\n\n firstOverflowingTab?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [disabled, scrollRef]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n\n const childNodes = getChildNodes(scrollRef.current);\n\n const lastOverflowingChild = childNodes.find((child) => {\n if (!child || child.offsetLeft === undefined) {\n return;\n }\n const tabEndX = child.offsetLeft + child.offsetWidth;\n\n return tabEndX > scrollRight;\n });\n\n lastOverflowingChild?.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }, [disabled, scrollRef]);\n\n const onKeyDown = useCallback((event: KeyboardEvent<HTMLDivElement>) => {\n const childNodes = getChildNodes(scrollRef?.current);\n\n const index = childNodes.findIndex((child) => document.activeElement === child);\n\n const minIndex = 0;\n const maxIndex = childNodes.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n childNodes[nextIndex]?.focus();\n childNodes[nextIndex]?.scrollIntoView({\n block: 'center',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }, []);\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation?.();\n\n if (!canClip) {\n setFirstItemVisible(true);\n setLastItemVisible(true);\n return;\n }\n\n if (isVertical) {\n const maxScrollTop = event.currentTarget.scrollHeight - event.currentTarget.clientHeight;\n const scrollTop = Math.round(event.currentTarget.scrollTop);\n\n setFirstItemVisible(scrollTop <= 0);\n setLastItemVisible(scrollTop >= maxScrollTop);\n return;\n }\n\n const maxScrollLeft = event.currentTarget.scrollWidth - event.currentTarget.clientWidth;\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= 0);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [isVertical, canClip],\n );\n\n useEffect(() => {\n handleScroll(({ currentTarget: scrollRef.current } as unknown) as React.UIEvent<HTMLElement>);\n }, [handleScroll]);\n\n useEffect(() => {\n if (!canClip) {\n setLastItemVisible(true);\n return;\n }\n\n setLastItemVisible(\n isVertical\n ? scrollRef.current?.scrollHeight === scrollRef.current?.clientHeight\n : scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth,\n );\n }, [isVertical, canClip]);\n\n // Этот хук компенсирует появление левой/верхней стрелки при прокрутке\n useEffect(() => {\n if (firstItemVisible || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n\n if (isVertical) {\n scrollRef.current.scrollTo({\n top: Math.round(scrollRef.current.scrollTop + leftArrowRef.current.clientHeight),\n });\n return;\n }\n\n scrollRef.current.scrollTo({\n left: Math.round(scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth),\n });\n }, [firstItemVisible, isVertical]);\n\n const PreviousButton = useMemo(() => {\n const ArrowNode = isVertical ? StyledTopArrow : StyledLeftArrow;\n return (\n <ArrowNode\n type=\"button\"\n aria-label=\"Предыдущий сегмент\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n {isVertical ? (\n <IconDisclosureUpWithOffset color={`var(${tokens.arrowColor})`} size=\"s\" />\n ) : (\n <IconDisclosureLeftWithOffset color={`var(${tokens.arrowColor})`} />\n )}\n </ArrowNode>\n );\n }, [onPrev, isVertical]);\n\n const NextButton = useMemo(() => {\n const ArrowNode = isVertical ? StyledBottomArrow : StyledRightArrow;\n return (\n <ArrowNode\n type=\"button\"\n aria-label=\"Следующий сегмент\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n {isVertical ? (\n <IconDisclosureDownWithOffset color={`var(${tokens.arrowColor})`} size=\"s\" />\n ) : (\n <IconDisclosureRightWithOffset color={`var(${tokens.arrowColor})`} />\n )}\n </ArrowNode>\n );\n }, [onNext, isVertical]);\n\n useEffect(() => {\n selectionMode && setSelectionMode(selectionMode);\n setDisabledGroup(disabled);\n }, [selectionMode, disabled]);\n\n return (\n <Root\n view={view}\n size={size}\n orientation={orientation}\n id={segmentGroupId}\n ref={outerRef}\n filledBackground={filledBackgroundAttr}\n disabled={disabled}\n pilled={pilledAttr}\n className={cx(pilledClass, filledClass, stretchClass, orientationClass)}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass)}\n ref={scrollRef as RefObject<HTMLDivElement>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>{children}</StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n );\n });\n\nexport const segmentGroupConfig = {\n name: 'SegmentGroup',\n tag: 'div',\n layout: segmentGroupRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n orientation: {\n css: orientationCSS,\n },\n filledBackground: {\n css: filledBackgroundCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getChildNodes","wrapper","container","firstChild","Array","from","childNodes","segmentGroupRoot","Root","forwardRef","props","outerRef","id","selectionMode","pilled","stretch","clip","orientation","filledBackground","hasBackground","disabled","size","view","children","rest","scrollRef","useRef","trackRef","leftArrowRef","setSelectionMode","setDisabledGroup","useSegmentInner","firstItemVisible","setFirstItemVisible","useState","lastItemVisible","setLastItemVisible","uniqId","safeUseId","segmentGroupId","canClip","isVertical","stretchClass","classes","segmentStretch","undefined","orientationClass","segmentVertical","clipScrollClass","segmentGroupClipScroll","pilledAttr","filledBackgroundAttr","pilledClass","segmentPilled","filledClass","segmentGroupFilledBackground","onPrev","useCallback","current","scrollLeft","Math","round","firstOverflowingTab","slice","reverse","find","child","offsetLeft","tabStartX","scrollIntoView","block","inline","onNext","scrollRight","clientWidth","lastOverflowingChild","tabEndX","offsetWidth","onKeyDown","event","index","findIndex","document","activeElement","minIndex","maxIndex","length","nextIndex","keyCode","end","left","right","home","preventDefault","focus","behavior","handleScroll","stopPropagation","maxScrollTop","currentTarget","scrollHeight","clientHeight","scrollTop","maxScrollLeft","scrollWidth","useEffect","scrollTo","top","PreviousButton","useMemo","ArrowNode","StyledTopArrow","StyledLeftArrow","React","createElement","type","onClick","tabIndex","IconDisclosureUpWithOffset","color","tokens","arrowColor","IconDisclosureLeftWithOffset","NextButton","StyledBottomArrow","StyledRightArrow","IconDisclosureDownWithOffset","IconDisclosureRightWithOffset","_extends","ref","className","cx","StyledContentWrapper","onScroll","StyledContent","segmentGroupConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","stretchCSS","orientationCSS","filledBackgroundCSS","defaults"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useMemo } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
4
3
  import { cx } from '../../../../utils/index.js';
5
4
  import { classes } from '../../tokens.js';
6
5
  import { useSegmentInner } from '../../SegmentProvider/SegmentProvider.js';
@@ -9,6 +8,7 @@ import { base as base$2 } from './variations/_view/base.js';
9
8
  import { base as base$3 } from './variations/_disabled/base.js';
10
9
  import { base as base$4 } from './variations/_pilled/base.js';
11
10
  import { LeftContent, StyledContent, RightContent, base } from './SegmentItem.styles.js';
11
+ import { safeUseId } from '../../../../utils/react.js';
12
12
  import { extractTextFrom } from '../../../../utils/extractTextFrom.js';
13
13
 
14
14
  const segmentItemRoot = Root => /*#__PURE__*/forwardRef((props, outerRef) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentItem.js","sources":["../../../../../src/components/Segment/ui/SegmentItem/SegmentItem.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport type { MouseEvent } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../engines/types';\nimport { cx, extractTextFrom } from '../../../../utils';\nimport { classes } from '../../tokens';\nimport { useSegmentInner } from '../../SegmentProvider/SegmentProvider';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport type { SegmentItemProps } from './SegmentItem.types';\nimport { StyledContent, base, LeftContent, RightContent } from './SegmentItem.styles';\n\nexport const segmentItemRoot = (Root: RootProps<HTMLLabelElement, SegmentItemProps>) =>\n forwardRef<HTMLLabelElement, SegmentItemProps>((props, outerRef) => {\n const {\n size,\n view = 'default',\n className,\n id,\n label,\n value,\n pilled,\n contentLeft,\n contentRight,\n customHandleSelect,\n 'aria-label': ariaLabelExternal,\n ...rest\n } = props;\n const { disabledGroup, handleSelect, selectedSegmentItems } = useSegmentInner();\n\n const uniqId = safeUseId();\n const segmentId = id || `label-${uniqId}`;\n\n const ariaLabelDefault = useMemo(() => extractTextFrom(label), [label]);\n const pilledClass = pilled ? classes.segmentPilled : undefined;\n const xsSize = size === 'xs' ? classes.segmentXsSize : undefined;\n\n const isSelected = selectedSegmentItems?.includes(value || ariaLabelDefault);\n const selectedClass = isSelected ? classes.selectedSegmentItem : undefined;\n\n const handleSelectSegment = (event: MouseEvent<HTMLButtonElement>) => {\n if (disabledGroup) {\n return;\n }\n\n customHandleSelect?.(event);\n handleSelect?.(value || ariaLabelDefault);\n };\n\n return (\n <Root\n view={view}\n size={size}\n id={segmentId}\n ref={outerRef}\n aria-label={ariaLabelExternal || ariaLabelDefault}\n value={value}\n pilled={pilled}\n className={cx(selectedClass, pilledClass, xsSize, className)}\n onClick={handleSelectSegment}\n tabIndex={disabledGroup ? -1 : 0}\n disabled={disabledGroup}\n {...rest}\n >\n {contentLeft && <LeftContent>{contentLeft}</LeftContent>}\n <StyledContent>{label || value}</StyledContent>\n {contentRight && (\n <RightContent className={typeof contentRight === 'string' ? classes.segmentAdditionalText : ''}>\n {contentRight}\n </RightContent>\n )}\n </Root>\n );\n });\n\nexport const segmentItemConfig = {\n name: 'SegmentItem',\n tag: 'button',\n layout: segmentItemRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'default',\n size: 'xs',\n },\n};\n"],"names":["segmentItemRoot","Root","forwardRef","props","outerRef","size","view","className","id","label","value","pilled","contentLeft","contentRight","customHandleSelect","ariaLabelExternal","rest","disabledGroup","handleSelect","selectedSegmentItems","useSegmentInner","uniqId","safeUseId","segmentId","ariaLabelDefault","useMemo","extractTextFrom","pilledClass","classes","segmentPilled","undefined","xsSize","segmentXsSize","isSelected","includes","selectedClass","selectedSegmentItem","handleSelectSegment","event","React","createElement","_extends","ref","cx","onClick","tabIndex","disabled","LeftContent","StyledContent","RightContent","segmentAdditionalText","segmentItemConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"SegmentItem.js","sources":["../../../../../src/components/Segment/ui/SegmentItem/SegmentItem.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from 'react';\nimport type { MouseEvent } from 'react';\nimport type { RootProps } from 'src/engines/types';\nimport { cx, safeUseId, extractTextFrom } from 'src/utils';\n\nimport { classes } from '../../tokens';\nimport { useSegmentInner } from '../../SegmentProvider/SegmentProvider';\n\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as pilledCSS } from './variations/_pilled/base';\nimport type { SegmentItemProps } from './SegmentItem.types';\nimport { StyledContent, base, LeftContent, RightContent } from './SegmentItem.styles';\n\nexport const segmentItemRoot = (Root: RootProps<HTMLLabelElement, SegmentItemProps>) =>\n forwardRef<HTMLLabelElement, SegmentItemProps>((props, outerRef) => {\n const {\n size,\n view = 'default',\n className,\n id,\n label,\n value,\n pilled,\n contentLeft,\n contentRight,\n customHandleSelect,\n 'aria-label': ariaLabelExternal,\n ...rest\n } = props;\n const { disabledGroup, handleSelect, selectedSegmentItems } = useSegmentInner();\n\n const uniqId = safeUseId();\n const segmentId = id || `label-${uniqId}`;\n\n const ariaLabelDefault = useMemo(() => extractTextFrom(label), [label]);\n const pilledClass = pilled ? classes.segmentPilled : undefined;\n const xsSize = size === 'xs' ? classes.segmentXsSize : undefined;\n\n const isSelected = selectedSegmentItems?.includes(value || ariaLabelDefault);\n const selectedClass = isSelected ? classes.selectedSegmentItem : undefined;\n\n const handleSelectSegment = (event: MouseEvent<HTMLButtonElement>) => {\n if (disabledGroup) {\n return;\n }\n\n customHandleSelect?.(event);\n handleSelect?.(value || ariaLabelDefault);\n };\n\n return (\n <Root\n view={view}\n size={size}\n id={segmentId}\n ref={outerRef}\n aria-label={ariaLabelExternal || ariaLabelDefault}\n value={value}\n pilled={pilled}\n className={cx(selectedClass, pilledClass, xsSize, className)}\n onClick={handleSelectSegment}\n tabIndex={disabledGroup ? -1 : 0}\n disabled={disabledGroup}\n {...rest}\n >\n {contentLeft && <LeftContent>{contentLeft}</LeftContent>}\n <StyledContent>{label || value}</StyledContent>\n {contentRight && (\n <RightContent className={typeof contentRight === 'string' ? classes.segmentAdditionalText : ''}>\n {contentRight}\n </RightContent>\n )}\n </Root>\n );\n });\n\nexport const segmentItemConfig = {\n name: 'SegmentItem',\n tag: 'button',\n layout: segmentItemRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'default',\n size: 'xs',\n },\n};\n"],"names":["segmentItemRoot","Root","forwardRef","props","outerRef","size","view","className","id","label","value","pilled","contentLeft","contentRight","customHandleSelect","ariaLabelExternal","rest","disabledGroup","handleSelect","selectedSegmentItems","useSegmentInner","uniqId","safeUseId","segmentId","ariaLabelDefault","useMemo","extractTextFrom","pilledClass","classes","segmentPilled","undefined","xsSize","segmentXsSize","isSelected","includes","selectedClass","selectedSegmentItem","handleSelectSegment","event","React","createElement","_extends","ref","cx","onClick","tabIndex","disabled","LeftContent","StyledContent","RightContent","segmentAdditionalText","segmentItemConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","pilledCSS","defaults"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { useFloating, autoUpdate, offset, flip, shift, size, FloatingPortal } from '@floating-ui/react';
2
2
  import React, { forwardRef } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
4
3
  import { getPlacement } from './utils/getPlacement.js';
5
4
  import { getFallbackPlacements } from './utils/getFallbackPlacements.js';
5
+ import { safeUseId } from '../../utils/react.js';
6
6
 
7
7
  // TODO: #2003
8
8
  const LIST_PADDING = 2;
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Select/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n size,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { getPlacement, getFallbackPlacements } from './utils';\nimport type { FloatingPopoverProps } from './Select.types';\n\n// TODO: #2003\nconst LIST_PADDING = 2;\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, listWidth, zIndex, isInner }, ref) => {\n const { refs, floatingStyles } = useFloating({\n whileElementsMounted(referenceEl, floatingEl, update) {\n return autoUpdate(referenceEl, floatingEl, update, {\n ancestorScroll: false,\n ancestorResize: false,\n layoutShift: false,\n });\n },\n placement: getPlacement(placement),\n open: opened,\n middleware: [\n offsetMiddleware({\n mainAxis: isInner ? LIST_PADDING * 2 : 0,\n alignmentAxis: isInner ? -LIST_PADDING : 0,\n }),\n flip({ fallbackPlacements: getFallbackPlacements(placement) }),\n shift(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width:\n listWidth ||\n `${isInner ? rects.reference.width + LIST_PADDING * 2 : rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const wrappedId = safeUseId();\n\n const handleClick = () => {\n if (onToggle) {\n onToggle(!opened);\n }\n };\n\n // Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.\n // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.\n // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),\n // но выпадающий список должен позиционироваться непосредственно возле самого инпута.\n const isTargetAsFunction = typeof target === 'function';\n\n return (\n <div ref={ref} id={wrappedId} style={{ position: 'relative' }}>\n <div ref={isTargetAsFunction ? undefined : refs.setReference} onClick={handleClick}>\n {typeof target === 'function' ? target(refs.setReference as any) : target}\n </div>\n\n {opened && (\n // root - принимает ref контейнера портала.\n // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div ref={refs.setFloating} style={{ ...floatingStyles, zIndex: zIndex || 1000 }}>\n {children}\n </div>\n </FloatingPortal>\n )}\n </div>\n );\n },\n);\n\ntype FloatingPortalReturnedProps = {\n root?: React.RefObject<HTMLElement>;\n id?: string;\n};\n\n// root - принимает ref контейнера портала.\n// id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\nconst getFloatingPortalProps = (\n portal: FloatingPopoverProps['portal'],\n wrappedId: string,\n): FloatingPortalReturnedProps => {\n if (!portal) {\n return { id: wrappedId };\n }\n\n if (typeof portal === 'string') {\n return { id: portal };\n }\n\n return { root: portal };\n};\n\nexport { FloatingPopover };\n"],"names":["LIST_PADDING","FloatingPopover","forwardRef","target","children","opened","onToggle","placement","portal","listWidth","zIndex","isInner","ref","refs","floatingStyles","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","getPlacement","open","middleware","offsetMiddleware","mainAxis","alignmentAxis","flip","fallbackPlacements","getFallbackPlacements","shift","size","apply","rects","elements","Object","assign","floating","style","width","reference","wrappedId","safeUseId","handleClick","isTargetAsFunction","React","createElement","id","position","undefined","setReference","onClick","FloatingPortal","getFloatingPortalProps","setFloating","root"],"mappings":"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"}
1
+ {"version":3,"file":"FloatingPopover.js","sources":["../../../src/components/Select/FloatingPopover.tsx"],"sourcesContent":["import {\n flip,\n shift,\n size,\n useFloating,\n FloatingPortal,\n offset as offsetMiddleware,\n autoUpdate,\n} from '@floating-ui/react';\nimport React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\n\nimport { getPlacement, getFallbackPlacements } from './utils';\nimport type { FloatingPopoverProps } from './Select.types';\n\n// TODO: #2003\nconst LIST_PADDING = 2;\n\nconst FloatingPopover = forwardRef<HTMLDivElement, FloatingPopoverProps>(\n ({ target, children, opened, onToggle, placement, portal, listWidth, zIndex, isInner }, ref) => {\n const { refs, floatingStyles } = useFloating({\n whileElementsMounted(referenceEl, floatingEl, update) {\n return autoUpdate(referenceEl, floatingEl, update, {\n ancestorScroll: false,\n ancestorResize: false,\n layoutShift: false,\n });\n },\n placement: getPlacement(placement),\n open: opened,\n middleware: [\n offsetMiddleware({\n mainAxis: isInner ? LIST_PADDING * 2 : 0,\n alignmentAxis: isInner ? -LIST_PADDING : 0,\n }),\n flip({ fallbackPlacements: getFallbackPlacements(placement) }),\n shift(),\n size({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width:\n listWidth ||\n `${isInner ? rects.reference.width + LIST_PADDING * 2 : rects.reference.width}px`,\n });\n },\n }),\n ],\n });\n\n const wrappedId = safeUseId();\n\n const handleClick = () => {\n if (onToggle) {\n onToggle(!opened);\n }\n };\n\n // Проверка на target. Это может быть как ReactNode, так и функция, в которую пробрасывается ref.\n // Это нужно для более тонкой настройки reference-элемента, вокруг которого и будет позиционироваться выпадашка.\n // Пример: когда в Textfield под инпутом находится helperText (или еще что-либо),\n // но выпадающий список должен позиционироваться непосредственно возле самого инпута.\n const isTargetAsFunction = typeof target === 'function';\n\n return (\n <div ref={ref} id={wrappedId} style={{ position: 'relative' }}>\n <div ref={isTargetAsFunction ? undefined : refs.setReference} onClick={handleClick}>\n {typeof target === 'function' ? target(refs.setReference as any) : target}\n </div>\n\n {opened && (\n // root - принимает ref контейнера портала.\n // id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\n <FloatingPortal {...getFloatingPortalProps(portal, wrappedId)}>\n <div ref={refs.setFloating} style={{ ...floatingStyles, zIndex: zIndex || 1000 }}>\n {children}\n </div>\n </FloatingPortal>\n )}\n </div>\n );\n },\n);\n\ntype FloatingPortalReturnedProps = {\n root?: React.RefObject<HTMLElement>;\n id?: string;\n};\n\n// root - принимает ref контейнера портала.\n// id - если есть портал - не используется, если портала нет - подставляется 'wrappedId'.\nconst getFloatingPortalProps = (\n portal: FloatingPopoverProps['portal'],\n wrappedId: string,\n): FloatingPortalReturnedProps => {\n if (!portal) {\n return { id: wrappedId };\n }\n\n if (typeof portal === 'string') {\n return { id: portal };\n }\n\n return { root: portal };\n};\n\nexport { FloatingPopover };\n"],"names":["LIST_PADDING","FloatingPopover","forwardRef","target","children","opened","onToggle","placement","portal","listWidth","zIndex","isInner","ref","refs","floatingStyles","useFloating","whileElementsMounted","referenceEl","floatingEl","update","autoUpdate","ancestorScroll","ancestorResize","layoutShift","getPlacement","open","middleware","offsetMiddleware","mainAxis","alignmentAxis","flip","fallbackPlacements","getFallbackPlacements","shift","size","apply","rects","elements","Object","assign","floating","style","width","reference","wrappedId","safeUseId","handleClick","isTargetAsFunction","React","createElement","id","position","undefined","setReference","onClick","FloatingPortal","getFloatingPortalProps","setFloating","root"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useMemo, useState, useRef, useReducer, useLayoutEffect } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
4
3
  import { getItemByFocused, useKeyNavigation } from './hooks/useKeyboardNavigation.js';
5
4
  import { usePathMaps } from './hooks/usePathMaps.js';
6
5
  import { ListWrapper, Ul, base } from './Select.styles.js';
@@ -10,6 +9,7 @@ import { Context } from './Select.context.js';
10
9
  import { initialItemsTransform } from './utils/initialItemsTransform.js';
11
10
  import { pathReducer } from './reducers/pathReducer.js';
12
11
  import { focusedPathReducer } from './reducers/focusedPathReducer.js';
12
+ import { safeUseId } from '../../utils/react.js';
13
13
  import { useOutsideClick } from '../../hooks/useOutsideClick.js';
14
14
  import { isEmpty } from '../../utils/isEmpty.js';
15
15
  import { updateDescendants } from './utils/updateDescendants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\nimport { RootProps } from 'src/engines';\nimport { isEmpty } from 'src/utils';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base, ListWrapper } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n // eslint-disable-block @typescript-eslint/ban-ts-comment\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n readOnly = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n onScroll,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n virtual = false,\n onToggle,\n chipType,\n multiselect,\n\n // Извлекаем пропсы для required и hint, чтобы они не попадали в DOM.\n // @ts-ignore\n required,\n // @ts-ignore\n requiredPlacement,\n // @ts-ignore\n hasRequiredIndicator,\n // @ts-ignore\n optional,\n // @ts-ignore\n hintText,\n // @ts-ignore\n hintTrigger,\n // @ts-ignore\n hintView,\n // @ts-ignore\n hintSize,\n // @ts-ignore\n hintTargetPlacement,\n // @ts-ignore\n hintPlacement,\n // @ts-ignore\n hintWidth,\n // @ts-ignore\n hintHasArrow,\n // @ts-ignore\n hasHint,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, labelToItemMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required,\n requiredPlacement,\n hasRequiredIndicator,\n optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText,\n hintTrigger,\n hintView,\n hintSize,\n hintTargetPlacement,\n hintPlacement,\n hintWidth,\n hintHasArrow,\n } as HintProps);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n }, floatingPopoverRef);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n item?: MergedDropdownNodeTransformed | null,\n ) => {\n if (props.onChange) {\n // Условие для отправки если компонент используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если компонент используется с формой.\n // Убрать условие \"typeof ref === 'function'\" в PLASMA 2.0\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any, item || null);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (onScroll) {\n onScroll(e);\n }\n\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n id={id}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n readOnly={readOnly}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n labelToItemMap={labelToItemMap}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n {...(rest as any)}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\n ref={targetRef}\n virtual={virtual}\n >\n {beforeList}\n\n {props.multiselect && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll selectAllOptions={props.selectAllOptions} variant={variant} />\n )}\n\n {virtual ? (\n <VirtualList\n items={transformedItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","id","value","outerValue","onChange","outerOnChange","target","items","placement","label","labelPlacement","placeholder","helperText","disabled","readOnly","view","outerView","size","listOverflow","listHeight","listMaxHeight","listWidth","contentLeft","onScrollBottom","onScroll","chipView","variant","portal","renderValue","renderItem","status","onItemSelect","separator","closeAfterSelect","outerCloseAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","virtual","onToggle","chipType","multiselect","required","requiredPlacement","hasRequiredIndicator","optional","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","hasHint","rest","transformedItems","useMemo","initialItemsTransform","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","labelToItemMap","usePathMaps","internalValue","setInternalValue","useState","undefined","floatingPopoverRef","useRef","path","dispatchPath","useReducer","pathReducer","focusedPath","dispatchFocusedPath","focusedPathReducer","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","getView","requiredProps","hintProps","targetRef","useOutsideClick","type","newValue","item","Array","isArray","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","onKeyDown","useKeyNavigation","useLayoutEffect","_","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","Target","selectProps","inputWrapperRef","isInner","ListWrapper","Ul","role","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useState,\n useReducer,\n useMemo,\n useLayoutEffect,\n useRef,\n ChangeEvent,\n ForwardedRef,\n} from 'react';\nimport { RootProps } from 'src/engines';\nimport { isEmpty, safeUseId } from 'src/utils';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { HintProps } from '../TextField/TextField.types';\n\nimport { useKeyNavigation, getItemByFocused } from './hooks/useKeyboardNavigation';\nimport { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';\nimport { Inner, Target, VirtualList, SelectAll } from './ui';\nimport { pathReducer, focusedPathReducer } from './reducers';\nimport { usePathMaps } from './hooks/usePathMaps';\nimport { Ul, base, ListWrapper } from './Select.styles';\nimport type { MergedSelectProps, RequiredProps } from './Select.types';\nimport type { MergedDropdownNodeTransformed } from './ui/Inner/ui/Item/Item.types';\nimport { FloatingPopover } from './FloatingPopover';\nimport { SelectNative } from './ui/SelectNative/SelectNative';\nimport { Context } from './Select.context';\n\n/**\n * Выпадающий список. Поддерживает выбор одного или нескольких значений.\n */\nexport const selectRoot = (Root: RootProps<HTMLButtonElement, Omit<MergedSelectProps, 'items'>>) =>\n forwardRef<HTMLButtonElement, MergedSelectProps>((props, ref) => {\n const {\n // eslint-disable-block @typescript-eslint/ban-ts-comment\n id,\n value: outerValue,\n onChange: outerOnChange,\n target = 'textfield-like',\n items,\n placement = 'bottom',\n label,\n labelPlacement,\n placeholder,\n helperText,\n disabled = false,\n readOnly = false,\n view: outerView,\n size,\n listOverflow,\n listHeight,\n listMaxHeight,\n listWidth,\n contentLeft,\n onScrollBottom,\n onScroll,\n chipView,\n variant = 'normal',\n portal,\n renderValue,\n renderItem,\n status,\n onItemSelect,\n separator,\n closeAfterSelect: outerCloseAfterSelect,\n isTargetAmount,\n beforeList,\n afterList,\n zIndex,\n name,\n defaultValue,\n virtual = false,\n onToggle,\n chipType,\n multiselect,\n\n // Извлекаем пропсы для required и hint, чтобы они не попадали в DOM.\n // @ts-ignore\n required,\n // @ts-ignore\n requiredPlacement,\n // @ts-ignore\n hasRequiredIndicator,\n // @ts-ignore\n optional,\n // @ts-ignore\n hintText,\n // @ts-ignore\n hintTrigger,\n // @ts-ignore\n hintView,\n // @ts-ignore\n hintSize,\n // @ts-ignore\n hintTargetPlacement,\n // @ts-ignore\n hintPlacement,\n // @ts-ignore\n hintWidth,\n // @ts-ignore\n hintHasArrow,\n // @ts-ignore\n hasHint,\n ...rest\n } = props;\n const transformedItems = useMemo(() => initialItemsTransform(items || []), [items]);\n\n // Создаем структуры для быстрой работы с деревом\n const [pathMap, focusedToValueMap, valueToCheckedMap, valueToItemMap, labelToItemMap] = usePathMaps(\n transformedItems,\n );\n\n const [internalValue, setInternalValue] = useState<string | number | Array<string | number>>(\n props.multiselect ? [] : '',\n );\n\n const value = outerValue !== null && outerValue !== undefined ? outerValue : internalValue;\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n // Состояния дерева элементов\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n const [checked, setChecked] = useState(valueToCheckedMap);\n\n const isCurrentListOpen = Boolean(path[0]);\n const activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value.toString() || '';\n const closeAfterSelect = outerCloseAfterSelect ?? !props.multiselect;\n const treeId = safeUseId();\n const view = target === 'textfield-like' && (disabled || readOnly) ? 'default' : getView(status, outerView);\n\n // Собираем объект с пропсами для required и прокидываем их напрямую в компонент Textfield.\n const requiredProps =\n props.target === 'button-like'\n ? undefined\n : ({\n required,\n requiredPlacement,\n hasRequiredIndicator,\n optional,\n } as RequiredProps);\n\n // Собираем объект с пропсами для hint и прокидываем их напрямую в компонент Textfield.\n const hintProps =\n props.target === 'button-like'\n ? undefined\n : ({\n hintText,\n hintTrigger,\n hintView,\n hintSize,\n hintTargetPlacement,\n hintPlacement,\n hintWidth,\n hintHasArrow,\n } as HintProps);\n\n const targetRef = useOutsideClick<HTMLUListElement>(() => {\n if (!isCurrentListOpen) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false);\n }\n }, floatingPopoverRef);\n\n const onChange = (\n newValue?: string | number | Array<string | number> | ChangeEvent<HTMLSelectElement> | null,\n item?: MergedDropdownNodeTransformed | null,\n ) => {\n if (props.onChange) {\n // Условие для отправки если компонент используется без формы.\n if (!props.name && (typeof newValue === 'string' || Array.isArray(newValue))) {\n props.onChange(newValue as any, item || null);\n }\n\n // Условие для отправки если компонент используется с формой.\n // Убрать условие \"typeof ref === 'function'\" в PLASMA 2.0\n if (props.name && typeof newValue === 'object' && !Array.isArray(newValue)) {\n props.onChange(newValue as any, item || null);\n }\n }\n\n // Условие для изменения внутреннего значения (только если newValue строка или массив строк).\n if (typeof newValue === 'string' || Array.isArray(newValue)) {\n setInternalValue(newValue);\n }\n };\n\n const handleListToggle = (opened: boolean) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened);\n }\n };\n\n const handleCheckboxChange = (item: MergedDropdownNodeTransformed) => {\n if (!props.multiselect) {\n return;\n }\n\n const checkedCopy = new Map(checked);\n\n if (!checkedCopy.get(item.value)) {\n checkedCopy.set(item.value, true);\n updateDescendants(item, checkedCopy, true, valueToItemMap);\n } else {\n checkedCopy.set(item.value, false);\n updateDescendants(item, checkedCopy, false);\n }\n\n updateAncestors(item, checkedCopy);\n\n const newValues: Array<string | number> = [];\n\n valueToItemMap.forEach((item, key) => {\n if (checkedCopy.get(key)) {\n newValues.push(item.value);\n }\n });\n\n // Оставляем values, которых нет в items.\n if (Array.isArray(value)) {\n value.forEach((val: string) => {\n if (!valueToItemMap.has(val)) {\n newValues.push(val);\n }\n });\n }\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(newValues, item);\n }\n };\n\n const handleItemClick = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (!isEmpty(item?.items)) {\n return;\n }\n\n if (props.multiselect) {\n handleCheckboxChange(item);\n return;\n }\n\n if (e) {\n e.stopPropagation();\n }\n\n const isCurrentChecked = checked.get(item.value);\n\n if (closeAfterSelect) {\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n }\n\n if (onChange) {\n onChange(isCurrentChecked ? '' : item.value, item);\n }\n\n if (onItemSelect) {\n onItemSelect(item, e!);\n }\n };\n\n const handlePressDown = (item: MergedDropdownNodeTransformed, e?: React.MouseEvent<HTMLElement>) => {\n if (isEmpty(item.items)) {\n handleItemClick(item, e);\n } else if (props.multiselect) {\n handleCheckboxChange(item);\n }\n };\n\n const handleScroll = (e: React.UIEvent<HTMLUListElement>) => {\n if (onScroll) {\n onScroll(e);\n }\n\n if (!onScrollBottom) return;\n\n const { target } = e;\n\n if (\n (target as HTMLElement).scrollHeight - (target as HTMLElement).scrollTop ===\n (target as HTMLElement).clientHeight\n ) {\n onScrollBottom(e);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleListToggle,\n handlePressDown,\n });\n\n // В данном эффекте мы следим за изменениями value снаружи и вносим коррективы в дерево чекбоксов.\n // Пример: когда юзер очистил value извне, тогда нужно пройтись по элементам и выключить все чекбоксы.\n useLayoutEffect(() => {\n const checkedCopy = new Map(checked);\n\n checkedCopy.forEach((_, key) => {\n checkedCopy.set(key, false);\n });\n\n if (!isEmpty(value) || typeof value === 'number') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n // Только если value находится в items, т.к. value может и не существовать в items.\n if (valueToItemMap.has(val)) {\n checkedCopy.set(val, true);\n updateDescendants(valueToItemMap.get(val)!, checkedCopy, true);\n updateAncestors(valueToItemMap.get(val)!, checkedCopy);\n }\n });\n } else {\n // Только если value находится в items, т.к. value может и не существовать в items.\n // eslint-disable-next-line no-lonely-if\n if (valueToItemMap.has(value)) {\n checkedCopy.set(value, 'done');\n updateSingleAncestors(valueToItemMap.get(value)!, checkedCopy, 'dot');\n }\n }\n }\n\n setChecked(checkedCopy);\n\n // В deps мы кладем именно outerValue и internalValue, а не просто value.\n // Т.к. вначале нужно отфильтровать и провалидировать outerValue и результат положить в переменную.\n // А переменную, содержащую сложные типы данных, нельзя помещать в deps.\n }, [outerValue, internalValue, items]);\n\n useLayoutEffect(() => {\n if (defaultValue) {\n setInternalValue(defaultValue as string | string[]);\n }\n }, [defaultValue]);\n\n return (\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n id={id}\n {...(rest as any)}\n >\n {name && (\n <SelectNative\n items={valueToItemMap}\n name={name}\n value={internalValue}\n multiselect={props.multiselect}\n onChange={onChange}\n onSetValue={setInternalValue}\n ref={ref as ForwardedRef<HTMLButtonElement>}\n />\n )}\n <Context.Provider\n value={{\n focusedPath,\n checked,\n multiselect: props.multiselect,\n size,\n handleCheckboxChange,\n handleItemClick,\n variant,\n renderItem,\n treeId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n _checkboxAppearance: (rest as any)._checkboxAppearance,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleListToggle}\n placement={placement}\n portal={portal}\n listWidth={listWidth}\n target={(referenceRef) => (\n <Target\n ref={name ? null : ref}\n value={value}\n opened={isCurrentListOpen}\n valueToItemMap={valueToItemMap}\n label={label}\n placeholder={placeholder}\n onKeyDown={onKeyDown}\n labelPlacement={labelPlacement}\n size={size}\n contentLeft={contentLeft}\n disabled={disabled}\n readOnly={readOnly}\n renderValue={renderValue}\n selectProps={props}\n inputWrapperRef={referenceRef as React.MutableRefObject<HTMLDivElement>}\n multiselect={props.multiselect}\n view={view}\n helperText={helperText}\n treeId={treeId}\n activeDescendantItemValue={activeDescendantItemValue}\n isTargetAmount={isTargetAmount}\n onChange={onChange}\n labelToItemMap={labelToItemMap}\n chipView={chipView}\n separator={separator}\n requiredProps={requiredProps}\n hintProps={hintProps}\n />\n )}\n zIndex={zIndex}\n isInner={false}\n >\n <Root\n view={view}\n size={size}\n labelPlacement={labelPlacement}\n chipView={chipView}\n disabled={disabled}\n readOnly={readOnly}\n {...(rest as any)}\n >\n <ListWrapper listWidth={listWidth}>\n <Ul\n role=\"tree\"\n id={`${treeId}_tree_level_1`}\n aria-multiselectable={Boolean(props.multiselect)}\n listOverflow={listOverflow}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={virtual ? undefined : handleScroll}\n ref={targetRef}\n virtual={virtual}\n >\n {beforeList}\n\n {props.multiselect && props.selectAllOptions && (\n // TODO: #2004\n <SelectAll selectAllOptions={props.selectAllOptions} variant={variant} />\n )}\n\n {virtual ? (\n <VirtualList\n items={transformedItems}\n listMaxHeight={listMaxHeight || listHeight}\n onScroll={onScroll}\n />\n ) : (\n transformedItems.map((item, index) => (\n <Inner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listWidth={listWidth}\n />\n ))\n )}\n {afterList}\n </Ul>\n </ListWrapper>\n </Root>\n </FloatingPopover>\n </Context.Provider>\n </Root>\n );\n });\n\nexport const selectConfig = {\n name: 'Select',\n tag: 'div',\n layout: selectRoot,\n base,\n variations: {},\n defaults: {\n view: 'default',\n size: 'm',\n labelPlacement: 'outer',\n chipView: 'default',\n },\n};\n"],"names":["selectRoot","Root","forwardRef","props","ref","id","value","outerValue","onChange","outerOnChange","target","items","placement","label","labelPlacement","placeholder","helperText","disabled","readOnly","view","outerView","size","listOverflow","listHeight","listMaxHeight","listWidth","contentLeft","onScrollBottom","onScroll","chipView","variant","portal","renderValue","renderItem","status","onItemSelect","separator","closeAfterSelect","outerCloseAfterSelect","isTargetAmount","beforeList","afterList","zIndex","name","defaultValue","virtual","onToggle","chipType","multiselect","required","requiredPlacement","hasRequiredIndicator","optional","hintText","hintTrigger","hintView","hintSize","hintTargetPlacement","hintPlacement","hintWidth","hintHasArrow","hasHint","rest","transformedItems","useMemo","initialItemsTransform","pathMap","focusedToValueMap","valueToCheckedMap","valueToItemMap","labelToItemMap","usePathMaps","internalValue","setInternalValue","useState","undefined","floatingPopoverRef","useRef","path","dispatchPath","useReducer","pathReducer","focusedPath","dispatchFocusedPath","focusedPathReducer","checked","setChecked","isCurrentListOpen","Boolean","activeDescendantItemValue","getItemByFocused","toString","treeId","safeUseId","getView","requiredProps","hintProps","targetRef","useOutsideClick","type","newValue","item","Array","isArray","handleListToggle","opened","handleCheckboxChange","checkedCopy","Map","get","set","updateDescendants","updateAncestors","newValues","forEach","key","push","val","has","handleItemClick","e","isEmpty","stopPropagation","isCurrentChecked","handlePressDown","handleScroll","scrollHeight","scrollTop","clientHeight","onKeyDown","useKeyNavigation","useLayoutEffect","_","updateSingleAncestors","React","createElement","_extends","SelectNative","onSetValue","Context","Provider","_checkboxAppearance","FloatingPopover","referenceRef","Target","selectProps","inputWrapperRef","isInner","ListWrapper","Ul","role","selectAllOptions","SelectAll","VirtualList","map","index","Inner","currentLevel","selectConfig","tag","layout","base","variations","defaults"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import { safeUseId } from '@salutejs/plasma-core';
3
2
  import { ListWrapper, Ul } from '../../Select.styles.js';
4
3
  import { FloatingPopover } from '../../FloatingPopover.js';
5
4
  import { Item } from './ui/Item/Item.js';
5
+ import { safeUseId } from '../../../../utils/react.js';
6
6
  import { isEmpty } from '../../../../utils/isEmpty.js';
7
7
 
8
8
  const Inner = ({
@@ -1 +1 @@
1
- {"version":3,"file":"Inner.js","sources":["../../../../../src/components/Select/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\nimport { isEmpty } from 'src/utils';\n\nimport { Ul, ListWrapper } from '../../Select.styles';\nimport { FloatingPopover } from '../../FloatingPopover';\n\nimport type { MergedDropdownNodeTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui/Item/Item';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement={item?.placement || 'right'}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul role=\"group\" id={listId} virtual={false}>\n {item.items?.map((innerItem: MergedDropdownNodeTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","nextLevel","isEmpty","items","React","createElement","FloatingPopover","placement","onToggle","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","role","id","virtual","map","innerItem","innerIndex","key"],"mappings":"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"}
1
+ {"version":3,"file":"Inner.js","sources":["../../../../../src/components/Select/ui/Inner/Inner.tsx"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { isEmpty, safeUseId } from 'src/utils';\n\nimport { Ul, ListWrapper } from '../../Select.styles';\nimport { FloatingPopover } from '../../FloatingPopover';\n\nimport type { MergedDropdownNodeTransformed } from './ui/Item/Item.types';\nimport { Item } from './ui/Item/Item';\nimport { InnerProps } from './Inner.type';\n\nexport const Inner: FC<InnerProps> = ({ item, currentLevel, path, dispatchPath, index, listWidth }) => {\n const handleToggle = (opened: boolean): void => {\n if (opened) {\n dispatchPath({ type: 'changed_on_level', value: item.value.toString(), level: currentLevel + 1 });\n } else {\n dispatchPath({ type: 'cut_by_level', level: currentLevel + 1 });\n }\n };\n\n const isCurrentListOpen = path[currentLevel + 1] === item.value.toString();\n\n const treeId = safeUseId();\n const listId = `${treeId}_tree_level_${currentLevel + 2}`;\n const nextLevel = currentLevel + 1;\n\n if (!isEmpty(item?.items)) {\n return (\n <FloatingPopover\n placement={item?.placement || 'right'}\n opened={isCurrentListOpen}\n onToggle={handleToggle}\n target={\n <Item\n item={item}\n path={path}\n currentLevel={currentLevel}\n index={index}\n ariaControls={listId}\n ariaExpanded={isCurrentListOpen}\n ariaLevel={nextLevel}\n ariaLabel={item.label}\n />\n }\n isInner\n >\n <ListWrapper listWidth={listWidth}>\n <Ul role=\"group\" id={listId} virtual={false}>\n {item.items?.map((innerItem: MergedDropdownNodeTransformed, innerIndex: number) => (\n <Inner\n key={`${innerIndex}/${currentLevel}`}\n item={innerItem}\n currentLevel={nextLevel}\n path={path}\n dispatchPath={dispatchPath}\n index={innerIndex}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </ListWrapper>\n </FloatingPopover>\n );\n }\n\n return <Item item={item} path={path} index={index} currentLevel={currentLevel} ariaLevel={nextLevel} />;\n};\n"],"names":["Inner","item","currentLevel","path","dispatchPath","index","listWidth","handleToggle","opened","type","value","toString","level","isCurrentListOpen","treeId","safeUseId","listId","nextLevel","isEmpty","items","React","createElement","FloatingPopover","placement","onToggle","target","Item","ariaControls","ariaExpanded","ariaLevel","ariaLabel","label","isInner","ListWrapper","Ul","role","id","virtual","map","innerItem","innerIndex","key"],"mappings":";;;;;;;AAWO,MAAMA,KAAqB,GAAGA,CAAC;EAAEC,IAAI;EAAEC,YAAY;EAAEC,IAAI;EAAEC,YAAY;EAAEC,KAAK;AAAEC,EAAAA,SAAAA;AAAU,CAAC,KAAK;EACnG,MAAMC,YAAY,GAAIC,MAAe,IAAW;AAC5C,IAAA,IAAIA,MAAM,EAAE;AACRJ,MAAAA,YAAY,CAAC;AAAEK,QAAAA,IAAI,EAAE,kBAAkB;AAAEC,QAAAA,KAAK,EAAET,IAAI,CAACS,KAAK,CAACC,QAAQ,EAAE;QAAEC,KAAK,EAAEV,YAAY,GAAG,CAAA;AAAE,OAAC,CAAC,CAAA;AACrG,KAAC,MAAM;AACHE,MAAAA,YAAY,CAAC;AAAEK,QAAAA,IAAI,EAAE,cAAc;QAAEG,KAAK,EAAEV,YAAY,GAAG,CAAA;AAAE,OAAC,CAAC,CAAA;AACnE,KAAA;GACH,CAAA;AAED,EAAA,MAAMW,iBAAiB,GAAGV,IAAI,CAACD,YAAY,GAAG,CAAC,CAAC,KAAKD,IAAI,CAACS,KAAK,CAACC,QAAQ,EAAE,CAAA;AAE1E,EAAA,MAAMG,MAAM,GAAGC,SAAS,EAAE,CAAA;EAC1B,MAAMC,MAAM,GAAG,CAAGF,EAAAA,MAAM,eAAeZ,YAAY,GAAG,CAAC,CAAE,CAAA,CAAA;AACzD,EAAA,MAAMe,SAAS,GAAGf,YAAY,GAAG,CAAC,CAAA;AAElC,EAAA,IAAI,CAACgB,OAAO,CAACjB,IAAI,EAAEkB,KAAK,CAAC,EAAE;AACvB,IAAA,oBACIC,KAAA,CAAAC,aAAA,CAACC,eAAe,EAAA;AACZC,MAAAA,SAAS,EAAEtB,IAAI,EAAEsB,SAAS,IAAI,OAAQ;AACtCf,MAAAA,MAAM,EAAEK,iBAAkB;AAC1BW,MAAAA,QAAQ,EAAEjB,YAAa;AACvBkB,MAAAA,MAAM,eACFL,KAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AACDzB,QAAAA,IAAI,EAAEA,IAAK;AACXE,QAAAA,IAAI,EAAEA,IAAK;AACXD,QAAAA,YAAY,EAAEA,YAAa;AAC3BG,QAAAA,KAAK,EAAEA,KAAM;AACbsB,QAAAA,YAAY,EAAEX,MAAO;AACrBY,QAAAA,YAAY,EAAEf,iBAAkB;AAChCgB,QAAAA,SAAS,EAAEZ,SAAU;QACrBa,SAAS,EAAE7B,IAAI,CAAC8B,KAAAA;AAAM,OACzB,CACJ;MACDC,OAAO,EAAA,IAAA;AAAA,KAAA,eAEPZ,KAAA,CAAAC,aAAA,CAACY,WAAW,EAAA;AAAC3B,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,eAC9Bc,KAAA,CAAAC,aAAA,CAACa,EAAE,EAAA;AAACC,MAAAA,IAAI,EAAC,OAAO;AAACC,MAAAA,EAAE,EAAEpB,MAAO;AAACqB,MAAAA,OAAO,EAAE,KAAA;AAAM,KAAA,EACvCpC,IAAI,CAACkB,KAAK,EAAEmB,GAAG,CAAC,CAACC,SAAwC,EAAEC,UAAkB,kBAC1EpB,KAAA,CAAAC,aAAA,CAACrB,KAAK,EAAA;AACFyC,MAAAA,GAAG,EAAE,CAAA,EAAGD,UAAU,CAAA,CAAA,EAAItC,YAAY,CAAG,CAAA;AACrCD,MAAAA,IAAI,EAAEsC,SAAU;AAChBrC,MAAAA,YAAY,EAAEe,SAAU;AACxBd,MAAAA,IAAI,EAAEA,IAAK;AACXC,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,KAAK,EAAEmC,UAAW;AAClBlC,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KACxB,CACJ,CACD,CACK,CACA,CAAC,CAAA;AAE1B,GAAA;AAEA,EAAA,oBAAOc,KAAA,CAAAC,aAAA,CAACK,IAAI,EAAA;AAACzB,IAAAA,IAAI,EAAEA,IAAK;AAACE,IAAAA,IAAI,EAAEA,IAAK;AAACE,IAAAA,KAAK,EAAEA,KAAM;AAACH,IAAAA,YAAY,EAAEA,YAAa;AAAC2B,IAAAA,SAAS,EAAEZ,SAAAA;AAAU,GAAE,CAAC,CAAA;AAC3G;;;;"}
@@ -1,11 +1,11 @@
1
1
  import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
4
3
  import { base as base$2 } from './variations/_view/base.js';
5
4
  import { base as base$1 } from './variations/_size/base.js';
6
5
  import { SpinnerSvg } from './SpinnerSvg.js';
7
6
  import { SpinnerWrapper, base } from './Spinner.styles.js';
8
7
  import { useInnerProps } from './hooks/index.js';
8
+ import { safeUseId } from '../../utils/react.js';
9
9
 
10
10
  const spinnerRoot = Root => /*#__PURE__*/forwardRef((props, ref) => {
11
11
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../engines/types';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { SpinnerSvg } from './SpinnerSvg';\nimport { SpinnerWrapper, base } from './Spinner.styles';\nimport type { SpinnerProps } from './Spinner.types';\nimport { useInnerProps } from './hooks';\n\nexport const spinnerRoot = (Root: RootProps<HTMLDivElement, SpinnerProps>) =>\n forwardRef<HTMLDivElement, SpinnerProps>((props, ref) => {\n const { id, ...rest } = props;\n\n const innerProps = useInnerProps(props, {\n wrapperWidth: 'auto',\n wrapperHeight: 'auto',\n svgWidth: 'var(--plasma-spinner-size)',\n svgHeight: 'var(--plasma-spinner-size)',\n color: 'currentColor',\n });\n\n const uniqId = safeUseId;\n const innerId = id || uniqId();\n\n return (\n <Root ref={ref} id={innerId} {...rest}>\n <SpinnerWrapper width={innerProps.wrapperWidth} height={innerProps.wrapperHeight}>\n <SpinnerSvg\n id={innerId}\n width={innerProps.svgWidth}\n height={innerProps.svgHeight}\n color={innerProps.color}\n />\n </SpinnerWrapper>\n </Root>\n );\n });\n\nexport const spinnerConfig = {\n name: 'Spinner',\n tag: 'div',\n layout: spinnerRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'accent',\n },\n};\n"],"names":["spinnerRoot","Root","forwardRef","props","ref","id","rest","innerProps","useInnerProps","wrapperWidth","wrapperHeight","svgWidth","svgHeight","color","uniqId","safeUseId","innerId","React","createElement","_extends","SpinnerWrapper","width","height","SpinnerSvg","spinnerConfig","name","tag","layout","base","variations","size","css","sizeCSS","view","viewCSS","defaults"],"mappings":";;;;;;;;;AAYO,MAAMA,WAAW,GAAIC,IAA6C,iBACrEC,UAAU,CAA+B,CAACC,KAAK,EAAEC,GAAG,KAAK;EACrD,MAAM;IAAEC,EAAE;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAGH,KAAK,CAAA;AAE7B,EAAA,MAAMI,UAAU,GAAGC,aAAa,CAACL,KAAK,EAAE;AACpCM,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE,MAAM;AACrBC,IAAAA,QAAQ,EAAE,4BAA4B;AACtCC,IAAAA,SAAS,EAAE,4BAA4B;AACvCC,IAAAA,KAAK,EAAE,cAAA;AACX,GAAC,CAAC,CAAA;EAEF,MAAMC,MAAM,GAAGC,SAAS,CAAA;AACxB,EAAA,MAAMC,OAAO,GAAGX,EAAE,IAAIS,MAAM,EAAE,CAAA;AAE9B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACjB,IAAI,EAAAkB,QAAA,CAAA;AAACf,IAAAA,GAAG,EAAEA,GAAI;AAACC,IAAAA,EAAE,EAAEW,OAAAA;AAAQ,GAAA,EAAKV,IAAI,CACjCW,eAAAA,KAAA,CAAAC,aAAA,CAACE,cAAc,EAAA;IAACC,KAAK,EAAEd,UAAU,CAACE,YAAa;IAACa,MAAM,EAAEf,UAAU,CAACG,aAAAA;AAAc,GAAA,eAC7EO,KAAA,CAAAC,aAAA,CAACK,UAAU,EAAA;AACPlB,IAAAA,EAAE,EAAEW,OAAQ;IACZK,KAAK,EAAEd,UAAU,CAACI,QAAS;IAC3BW,MAAM,EAAEf,UAAU,CAACK,SAAU;IAC7BC,KAAK,EAAEN,UAAU,CAACM,KAAAA;GACrB,CACW,CACd,CAAC,CAAA;AAEf,CAAC,EAAC;AAEC,MAAMW,aAAa,GAAG;AACzBC,EAAAA,IAAI,EAAE,SAAS;AACfC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE3B,WAAW;EACnB4B,IAAI;AACJC,EAAAA,UAAU,EAAE;AACRC,IAAAA,IAAI,EAAE;AACFC,MAAAA,GAAG,EAAEC,MAAAA;KACR;AACDC,IAAAA,IAAI,EAAE;AACFF,MAAAA,GAAG,EAAEG,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNL,IAAAA,IAAI,EAAE,GAAG;AACTG,IAAAA,IAAI,EAAE,QAAA;AACV,GAAA;AACJ;;;;"}
1
+ {"version":3,"file":"Spinner.js","sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines/types';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { SpinnerSvg } from './SpinnerSvg';\nimport { SpinnerWrapper, base } from './Spinner.styles';\nimport type { SpinnerProps } from './Spinner.types';\nimport { useInnerProps } from './hooks';\n\nexport const spinnerRoot = (Root: RootProps<HTMLDivElement, SpinnerProps>) =>\n forwardRef<HTMLDivElement, SpinnerProps>((props, ref) => {\n const { id, ...rest } = props;\n\n const innerProps = useInnerProps(props, {\n wrapperWidth: 'auto',\n wrapperHeight: 'auto',\n svgWidth: 'var(--plasma-spinner-size)',\n svgHeight: 'var(--plasma-spinner-size)',\n color: 'currentColor',\n });\n\n const uniqId = safeUseId;\n const innerId = id || uniqId();\n\n return (\n <Root ref={ref} id={innerId} {...rest}>\n <SpinnerWrapper width={innerProps.wrapperWidth} height={innerProps.wrapperHeight}>\n <SpinnerSvg\n id={innerId}\n width={innerProps.svgWidth}\n height={innerProps.svgHeight}\n color={innerProps.color}\n />\n </SpinnerWrapper>\n </Root>\n );\n });\n\nexport const spinnerConfig = {\n name: 'Spinner',\n tag: 'div',\n layout: spinnerRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'accent',\n },\n};\n"],"names":["spinnerRoot","Root","forwardRef","props","ref","id","rest","innerProps","useInnerProps","wrapperWidth","wrapperHeight","svgWidth","svgHeight","color","uniqId","safeUseId","innerId","React","createElement","_extends","SpinnerWrapper","width","height","SpinnerSvg","spinnerConfig","name","tag","layout","base","variations","size","css","sizeCSS","view","viewCSS","defaults"],"mappings":";;;;;;;;;AAWO,MAAMA,WAAW,GAAIC,IAA6C,iBACrEC,UAAU,CAA+B,CAACC,KAAK,EAAEC,GAAG,KAAK;EACrD,MAAM;IAAEC,EAAE;IAAE,GAAGC,IAAAA;AAAK,GAAC,GAAGH,KAAK,CAAA;AAE7B,EAAA,MAAMI,UAAU,GAAGC,aAAa,CAACL,KAAK,EAAE;AACpCM,IAAAA,YAAY,EAAE,MAAM;AACpBC,IAAAA,aAAa,EAAE,MAAM;AACrBC,IAAAA,QAAQ,EAAE,4BAA4B;AACtCC,IAAAA,SAAS,EAAE,4BAA4B;AACvCC,IAAAA,KAAK,EAAE,cAAA;AACX,GAAC,CAAC,CAAA;EAEF,MAAMC,MAAM,GAAGC,SAAS,CAAA;AACxB,EAAA,MAAMC,OAAO,GAAGX,EAAE,IAAIS,MAAM,EAAE,CAAA;AAE9B,EAAA,oBACIG,KAAA,CAAAC,aAAA,CAACjB,IAAI,EAAAkB,QAAA,CAAA;AAACf,IAAAA,GAAG,EAAEA,GAAI;AAACC,IAAAA,EAAE,EAAEW,OAAAA;AAAQ,GAAA,EAAKV,IAAI,CACjCW,eAAAA,KAAA,CAAAC,aAAA,CAACE,cAAc,EAAA;IAACC,KAAK,EAAEd,UAAU,CAACE,YAAa;IAACa,MAAM,EAAEf,UAAU,CAACG,aAAAA;AAAc,GAAA,eAC7EO,KAAA,CAAAC,aAAA,CAACK,UAAU,EAAA;AACPlB,IAAAA,EAAE,EAAEW,OAAQ;IACZK,KAAK,EAAEd,UAAU,CAACI,QAAS;IAC3BW,MAAM,EAAEf,UAAU,CAACK,SAAU;IAC7BC,KAAK,EAAEN,UAAU,CAACM,KAAAA;GACrB,CACW,CACd,CAAC,CAAA;AAEf,CAAC,EAAC;AAEC,MAAMW,aAAa,GAAG;AACzBC,EAAAA,IAAI,EAAE,SAAS;AACfC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE3B,WAAW;EACnB4B,IAAI;AACJC,EAAAA,UAAU,EAAE;AACRC,IAAAA,IAAI,EAAE;AACFC,MAAAA,GAAG,EAAEC,MAAAA;KACR;AACDC,IAAAA,IAAI,EAAE;AACFF,MAAAA,GAAG,EAAEG,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNL,IAAAA,IAAI,EAAE,GAAG;AACTG,IAAAA,IAAI,EAAE,QAAA;AACV,GAAA;AACJ;;;;"}
@@ -1,8 +1,7 @@
1
1
  import { extends as _extends } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useState, useMemo, useRef, useCallback, useLayoutEffect } from 'react';
3
- import { safeUseId } from '@salutejs/plasma-core';
4
- import { classes } from '../../../tokens.js';
5
3
  import { cx } from '../../../../../utils/index.js';
4
+ import { classes } from '../../../tokens.js';
6
5
  import { TabItemRefs, TabsContext } from '../../../TabsContext.js';
7
6
  import { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils/index.js';
8
7
  import { base as base$1 } from './variations/_size/base.js';
@@ -11,6 +10,7 @@ import { base as base$3 } from './variations/_disabled/base.js';
11
10
  import { base as base$5 } from './variations/_pilled/base.js';
12
11
  import { base as base$4 } from './variations/_stretch/base.js';
13
12
  import { StyledArrow, StyledContentWrapper, StyledContent, base } from './HorizontalTabs.styles.js';
13
+ import { safeUseId } from '../../../../../utils/react.js';
14
14
  import { IconDisclosureLeft } from '../../../../_Icon/Icons/IconDisclosureLeft.js';
15
15
  import { IconDisclosureRight } from '../../../../_Icon/Icons/IconDisclosureRight.js';
16
16