@ryuzaki13/react-foundation-ui 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/dist/advanced-search/index.d.ts +3 -0
  2. package/dist/advanced-search/index.d.ts.map +1 -0
  3. package/dist/advanced-search/index.js +361 -0
  4. package/dist/advanced-search/index.js.map +1 -0
  5. package/dist/advanced-search/lib/index.d.ts +2 -0
  6. package/dist/advanced-search/lib/index.d.ts.map +1 -0
  7. package/dist/advanced-search/lib/searchParts.d.ts +3 -0
  8. package/dist/advanced-search/lib/searchParts.d.ts.map +1 -0
  9. package/dist/advanced-search/model/index.d.ts +5 -0
  10. package/dist/advanced-search/model/index.d.ts.map +1 -0
  11. package/dist/advanced-search/model/types.d.ts +55 -0
  12. package/dist/advanced-search/model/types.d.ts.map +1 -0
  13. package/dist/advanced-search/model/useAdvancedSearch.d.ts +11 -0
  14. package/dist/advanced-search/model/useAdvancedSearch.d.ts.map +1 -0
  15. package/dist/advanced-search/model/useAdvancedSearchInitialSelected.d.ts +6 -0
  16. package/dist/advanced-search/model/useAdvancedSearchInitialSelected.d.ts.map +1 -0
  17. package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts +13 -0
  18. package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts.map +1 -0
  19. package/dist/advanced-search/ui/AdvancedSearchModal.d.ts +13 -0
  20. package/dist/advanced-search/ui/AdvancedSearchModal.d.ts.map +1 -0
  21. package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts +8 -0
  22. package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts.map +1 -0
  23. package/dist/advanced-search/ui/AdvancedSearchSelectUI.d.ts +9 -0
  24. package/dist/advanced-search/ui/AdvancedSearchSelectUI.d.ts.map +1 -0
  25. package/dist/advanced-search/ui/index.d.ts +2 -0
  26. package/dist/advanced-search/ui/index.d.ts.map +1 -0
  27. package/dist/badge/Badge.d.ts.map +1 -1
  28. package/dist/badge/index.js +1 -1
  29. package/dist/badge/stories/Badge.stories.js +22 -22
  30. package/dist/base-table/index.js +2 -2
  31. package/dist/base-table/lib/columnPinning.d.ts.map +1 -1
  32. package/dist/base-table/model/useTableColumnOrder.d.ts +1 -1
  33. package/dist/base-table/model/useTableColumnOrder.d.ts.map +1 -1
  34. package/dist/base-table/model/useTableColumnSizing.d.ts +1 -1
  35. package/dist/base-table/model/useTableColumnSizing.d.ts.map +1 -1
  36. package/dist/base-table/ui/BaseTable.d.ts +2 -2
  37. package/dist/base-table/ui/BaseTable.d.ts.map +1 -1
  38. package/dist/base-table/ui/BaseTableHeaderCell.d.ts.map +1 -1
  39. package/dist/base-table/ui/FormattedTableCell.d.ts.map +1 -1
  40. package/dist/button/index.js +7 -7
  41. package/dist/button/stories/Button.stories.js +1 -1
  42. package/dist/check-box/CheckBox.d.ts.map +1 -1
  43. package/dist/check-box/index.js +1 -1
  44. package/dist/check-box/stories/CheckBox.stories.js +25 -25
  45. package/dist/chunks/{BadgeList-DHW_Ktr3.js → BadgeList-DYgun2rf.js} +16 -16
  46. package/dist/chunks/BadgeList-DYgun2rf.js.map +1 -0
  47. package/dist/chunks/{Button-BZ_b-Kin.js → Button-CCWuggdA.js} +16 -16
  48. package/dist/chunks/{Button-BZ_b-Kin.js.map → Button-CCWuggdA.js.map} +1 -1
  49. package/dist/chunks/{CalendarView-B75faWIU.js → CalendarView-DjeTJkTT.js} +149 -149
  50. package/dist/chunks/{CalendarView-B75faWIU.js.map → CalendarView-DjeTJkTT.js.map} +1 -1
  51. package/dist/chunks/{CheckBox-Cck5w1Ud.js → CheckBox-BowNqqd3.js} +13 -13
  52. package/dist/chunks/CheckBox-BowNqqd3.js.map +1 -0
  53. package/dist/chunks/{DateInput-CINDYueM.js → DateInput--tfofQ2x.js} +68 -68
  54. package/dist/chunks/DateInput--tfofQ2x.js.map +1 -0
  55. package/dist/chunks/{DateRangePresetSelect-CyzGMvVp.js → DateRangePresetSelect-UgsfaOeM.js} +22 -22
  56. package/dist/chunks/{DateRangePresetSelect-CyzGMvVp.js.map → DateRangePresetSelect-UgsfaOeM.js.map} +1 -1
  57. package/dist/chunks/Detail-DHDMsg8q.js +80 -0
  58. package/dist/chunks/{Detail-DKolHye4.js.map → Detail-DHDMsg8q.js.map} +1 -1
  59. package/dist/chunks/{Dialog-BPS4BeWZ.js → Dialog-CFIvGxER.js} +8 -8
  60. package/dist/chunks/Dialog-CFIvGxER.js.map +1 -0
  61. package/dist/chunks/{DisclosureGroup-0BtaXO54.js → DisclosureGroup-CfRTkl6Z.js} +11 -11
  62. package/dist/chunks/DisclosureGroup-CfRTkl6Z.js.map +1 -0
  63. package/dist/chunks/{DropZone-hf7Em__0.js → DropZone-kJfbZU5g.js} +22 -22
  64. package/dist/chunks/DropZone-kJfbZU5g.js.map +1 -0
  65. package/dist/chunks/{DropdownMenu-Ds-trH4M.js → DropdownMenu-DQeR3y7M.js} +138 -138
  66. package/dist/chunks/DropdownMenu-DQeR3y7M.js.map +1 -0
  67. package/dist/chunks/{Flex-DbBdq336.js → Flex-DUYSL5TE.js} +16 -16
  68. package/dist/chunks/{Flex-DbBdq336.js.map → Flex-DUYSL5TE.js.map} +1 -1
  69. package/dist/chunks/Grid-ByIIytjh.js.map +1 -1
  70. package/dist/chunks/{Input-Ce2HXBUc.js → Input-BmjlpA09.js} +76 -76
  71. package/dist/chunks/Input-BmjlpA09.js.map +1 -0
  72. package/dist/chunks/{InputDateTime-DPtY_4Od.js → InputDateTime-CxfAFe2L.js} +56 -56
  73. package/dist/chunks/{InputDateTime-DPtY_4Od.js.map → InputDateTime-CxfAFe2L.js.map} +1 -1
  74. package/dist/chunks/{InputFile-ga5yJmdZ.js → InputFile-CyZu__B_.js} +17 -17
  75. package/dist/chunks/InputFile-CyZu__B_.js.map +1 -0
  76. package/dist/chunks/{InputFiles-Or2Nvfgk.js → InputFiles-CrTJV27R.js} +36 -36
  77. package/dist/chunks/InputFiles-CrTJV27R.js.map +1 -0
  78. package/dist/chunks/{InputImage-BeA5WJz1.js → InputImage-Cw8rPYQu.js} +18 -18
  79. package/dist/chunks/{InputImage-BeA5WJz1.js.map → InputImage-Cw8rPYQu.js.map} +1 -1
  80. package/dist/chunks/{LabeledExpandableActionPanel-Bx-DWmYz.js → LabeledExpandableActionPanel-D3kUvmFH.js} +25 -25
  81. package/dist/chunks/LabeledExpandableActionPanel-D3kUvmFH.js.map +1 -0
  82. package/dist/chunks/Listbox-BZlp5qHz.js +81 -0
  83. package/dist/chunks/Listbox-BZlp5qHz.js.map +1 -0
  84. package/dist/chunks/{MultiSelect-CBqTylqO.js → MultiSelect-D1XYuwH1.js} +113 -113
  85. package/dist/chunks/{MultiSelect-CBqTylqO.js.map → MultiSelect-D1XYuwH1.js.map} +1 -1
  86. package/dist/chunks/{NotificationsHost-BQc-zOr2.js → NotificationsHost-_icJx4xR.js} +34 -34
  87. package/dist/chunks/NotificationsHost-_icJx4xR.js.map +1 -0
  88. package/dist/chunks/{PresetRangeDateInput-YBQm_4Fb.js → PresetRangeDateInput-CapirptQ.js} +11 -11
  89. package/dist/chunks/{PresetRangeDateInput-YBQm_4Fb.js.map → PresetRangeDateInput-CapirptQ.js.map} +1 -1
  90. package/dist/chunks/{RadioButton-DJp31HFR.js → RadioButton-D0uA0rX_.js} +13 -13
  91. package/dist/chunks/RadioButton-D0uA0rX_.js.map +1 -0
  92. package/dist/chunks/RadioGroup-B9XjkcOy.js +121 -0
  93. package/dist/chunks/{RadioGroup-BAhN1d1X.js.map → RadioGroup-B9XjkcOy.js.map} +1 -1
  94. package/dist/chunks/{Select-B7k_8_Lf.js → Select-CXeVjVKA.js} +11 -11
  95. package/dist/chunks/Select-CXeVjVKA.js.map +1 -0
  96. package/dist/chunks/{SerializableSelect-53uNCqdE.js → SerializableSelect-DkYeJtAO.js} +2 -2
  97. package/dist/chunks/{SerializableSelect-53uNCqdE.js.map → SerializableSelect-DkYeJtAO.js.map} +1 -1
  98. package/dist/chunks/{SingleDateTimeInput-CwvIbwje.js → SingleDateTimeInput-BmeuVGQT.js} +86 -86
  99. package/dist/chunks/SingleDateTimeInput-BmeuVGQT.js.map +1 -0
  100. package/dist/chunks/{Splitter-NjNFuEq4.js → Splitter-BFkVGVRb.js} +32 -32
  101. package/dist/chunks/{Splitter-NjNFuEq4.js.map → Splitter-BFkVGVRb.js.map} +1 -1
  102. package/dist/chunks/StateSelect-1jH3uLz9.js +78 -0
  103. package/dist/chunks/{StateSelect-D0wuUdT9.js.map → StateSelect-1jH3uLz9.js.map} +1 -1
  104. package/dist/chunks/{Switch-B476FBUD.js → Switch-B57Qmy1z.js} +19 -19
  105. package/dist/chunks/Switch-B57Qmy1z.js.map +1 -0
  106. package/dist/chunks/{TextEditorLexicalClient-DcixYuo4.js → TextEditorLexicalClient-DRhAswpP.js} +204 -204
  107. package/dist/chunks/{TextEditorLexicalClient-DcixYuo4.js.map → TextEditorLexicalClient-DRhAswpP.js.map} +1 -1
  108. package/dist/chunks/{Textarea-DeJJjjkI.js → Textarea-C9UdUueF.js} +2 -2
  109. package/dist/chunks/{Textarea-DeJJjjkI.js.map → Textarea-C9UdUueF.js.map} +1 -1
  110. package/dist/chunks/{TimePanel-_kF2RtHk.js → TimePanel-b4saqoUY.js} +27 -27
  111. package/dist/chunks/TimePanel-b4saqoUY.js.map +1 -0
  112. package/dist/chunks/{Toggle-C_fE-bkM.js → Toggle-DVqOQXmt.js} +18 -18
  113. package/dist/chunks/{Toggle-C_fE-bkM.js.map → Toggle-DVqOQXmt.js.map} +1 -1
  114. package/dist/chunks/{TreeMultiSelect-DRYNx7u5.js → TreeMultiSelect-CfQhlfnC.js} +6 -6
  115. package/dist/chunks/{TreeMultiSelect-DRYNx7u5.js.map → TreeMultiSelect-CfQhlfnC.js.map} +1 -1
  116. package/dist/chunks/{TreePickerBase-DYzTsSBQ.js → TreePickerBase-BBUOWsSu.js} +154 -154
  117. package/dist/chunks/TreePickerBase-BBUOWsSu.js.map +1 -0
  118. package/dist/chunks/{TreeSelect-DGLDu6qc.js → TreeSelect-2wUXs90E.js} +6 -6
  119. package/dist/chunks/{TreeSelect-DGLDu6qc.js.map → TreeSelect-2wUXs90E.js.map} +1 -1
  120. package/dist/chunks/base-table-CoQlKABk.js +514 -0
  121. package/dist/chunks/base-table-CoQlKABk.js.map +1 -0
  122. package/dist/chunks/{floating-arrow-CdRV69sg.js → floating-arrow-BE-z4QkE.js} +7 -7
  123. package/dist/chunks/{floating-arrow-CdRV69sg.js.map → floating-arrow-BE-z4QkE.js.map} +1 -1
  124. package/dist/chunks/input-search-Dw4rnJBq.js +30 -0
  125. package/dist/chunks/input-search-Dw4rnJBq.js.map +1 -0
  126. package/dist/chunks/{layout-picker-BA9vA8JI.js → layout-picker-MWaImn3L.js} +34 -34
  127. package/dist/chunks/layout-picker-MWaImn3L.js.map +1 -0
  128. package/dist/chunks/{misc-DrmMj8GO.js → misc-DoqZBMof.js} +100 -100
  129. package/dist/chunks/misc-DoqZBMof.js.map +1 -0
  130. package/dist/chunks/{modal-DqVcZws_.js → modal-B3HY3laL.js} +40 -40
  131. package/dist/chunks/modal-B3HY3laL.js.map +1 -0
  132. package/dist/chunks/multi-select-BzYIviCU.js +1305 -0
  133. package/dist/chunks/multi-select-BzYIviCU.js.map +1 -0
  134. package/dist/chunks/{picker-Cj4RnJh6.js → picker-Dg55Ss-B.js} +73 -73
  135. package/dist/chunks/picker-Dg55Ss-B.js.map +1 -0
  136. package/dist/chunks/{popover-C79P5bm2.js → popover-xJJqy1v6.js} +52 -52
  137. package/dist/chunks/popover-xJJqy1v6.js.map +1 -0
  138. package/dist/chunks/{separator-CIqnk2z9.js → separator-B72Aq-6a.js} +2 -2
  139. package/dist/chunks/{separator-CIqnk2z9.js.map → separator-B72Aq-6a.js.map} +1 -1
  140. package/dist/chunks/{slider-34wxzKkG.js → slider-CFKsfxFp.js} +83 -83
  141. package/dist/chunks/slider-CFKsfxFp.js.map +1 -0
  142. package/dist/chunks/sortable-DcTIAbjD.js +185 -0
  143. package/dist/chunks/sortable-DcTIAbjD.js.map +1 -0
  144. package/dist/chunks/{table-BYA0hCj7.js → table-Dc3AqMzP.js} +21 -21
  145. package/dist/chunks/table-Dc3AqMzP.js.map +1 -0
  146. package/dist/chunks/{table-column-interactions-DPyJDD7P.js → table-column-interactions-6RGjmiI5.js} +24 -24
  147. package/dist/chunks/{table-column-interactions-DPyJDD7P.js.map → table-column-interactions-6RGjmiI5.js.map} +1 -1
  148. package/dist/chunks/{tabs-CjU2KCgs.js → tabs-DlnVVMJl.js} +96 -96
  149. package/dist/chunks/{tabs-CjU2KCgs.js.map → tabs-DlnVVMJl.js.map} +1 -1
  150. package/dist/chunks/{toolbar-C-Ziw_Uh.js → toolbar-BCZNdRXM.js} +2 -2
  151. package/dist/chunks/{toolbar-C-Ziw_Uh.js.map → toolbar-BCZNdRXM.js.map} +1 -1
  152. package/dist/chunks/{wheel-picker-DUHGy7wE.js → wheel-picker-FS58cRsQ.js} +23 -23
  153. package/dist/chunks/{wheel-picker-DUHGy7wE.js.map → wheel-picker-FS58cRsQ.js.map} +1 -1
  154. package/dist/context-menu/components/MenuContent.d.ts.map +1 -1
  155. package/dist/context-menu/components/MenuContext.d.ts.map +1 -1
  156. package/dist/context-menu/components/MenuRoot.d.ts.map +1 -1
  157. package/dist/context-menu/components/RadialMenuContent.d.ts.map +1 -1
  158. package/dist/context-menu/index.js +1 -1
  159. package/dist/context-menu/stories/ContextMenu.stories.js +45 -45
  160. package/dist/date-input/index.js +2 -2
  161. package/dist/date-input/lib/types.d.ts.map +1 -1
  162. package/dist/date-input/stories/DateInput.stories.js +2 -2
  163. package/dist/date-input/ui/CalendarView.d.ts.map +1 -1
  164. package/dist/date-input/ui/DateInput.d.ts.map +1 -1
  165. package/dist/date-range-preset-select/index.js +1 -1
  166. package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js +8 -8
  167. package/dist/date-time-input/index.js +1 -1
  168. package/dist/date-time-input/lib/dateTimeValue.d.ts.map +1 -1
  169. package/dist/date-time-input/stories/SingleDateTimeInput.stories.js +38 -38
  170. package/dist/date-time-input/stories/TimePanel.stories.js +9 -9
  171. package/dist/date-time-input/ui/SingleDateTimeInput.d.ts.map +1 -1
  172. package/dist/detail/index.js +1 -1
  173. package/dist/detail/stories/Detail.stories.js +1 -1
  174. package/dist/dialog/Dialog.d.ts.map +1 -1
  175. package/dist/dialog/index.js +1 -1
  176. package/dist/dialog/stories/Dialog.stories.js +16 -16
  177. package/dist/disclosure/Disclosure.d.ts.map +1 -1
  178. package/dist/disclosure/index.js +1 -1
  179. package/dist/disclosure/stories/Disclosure.stories.js +1 -1
  180. package/dist/drop-zone/DropZone.d.ts.map +1 -1
  181. package/dist/drop-zone/index.js +1 -1
  182. package/dist/drop-zone/stories/DropZone.stories.d.ts.map +1 -1
  183. package/dist/drop-zone/stories/DropZone.stories.js +14 -14
  184. package/dist/drop-zone/stories/DropZone.stories.js.map +1 -1
  185. package/dist/errors/ErrorDisplay.d.ts.map +1 -1
  186. package/dist/errors/index.js +47 -47
  187. package/dist/errors/index.js.map +1 -1
  188. package/dist/expandable-action-panel/ExpandableActionPanel.d.ts.map +1 -1
  189. package/dist/expandable-action-panel/index.js +1 -1
  190. package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js +28 -28
  191. package/dist/flex/index.js +2 -2
  192. package/dist/flex/stories/Flex.stories.js +2 -2
  193. package/dist/floating-arrow/index.js +1 -1
  194. package/dist/fullscreen-portal/index.js +6 -6
  195. package/dist/grid/stories/Grid.stories.js +1 -1
  196. package/dist/image/index.js +123 -123
  197. package/dist/image/index.js.map +1 -1
  198. package/dist/image/ui/ImageSelection.d.ts.map +1 -1
  199. package/dist/input/Input.d.ts.map +1 -1
  200. package/dist/input/index.js +1 -1
  201. package/dist/input/stories/Input.stories.js +11 -11
  202. package/dist/input-date-time/index.js +1 -1
  203. package/dist/input-date-time/stories/InputDateTime.stories.js +11 -11
  204. package/dist/input-file/InputFile.d.ts.map +1 -1
  205. package/dist/input-file/index.js +1 -1
  206. package/dist/input-file/stories/InputFile.stories.d.ts.map +1 -1
  207. package/dist/input-file/stories/InputFile.stories.js +9 -9
  208. package/dist/input-file/stories/InputFile.stories.js.map +1 -1
  209. package/dist/input-files/InputFilesList.d.ts.map +1 -1
  210. package/dist/input-files/index.js +1 -1
  211. package/dist/input-files/stories/InputFiles.stories.d.ts +1 -1
  212. package/dist/input-files/stories/InputFiles.stories.d.ts.map +1 -1
  213. package/dist/input-files/stories/InputFiles.stories.js +9 -9
  214. package/dist/input-files/stories/InputFiles.stories.js.map +1 -1
  215. package/dist/input-image/index.js +1 -1
  216. package/dist/input-image/stories/InputImage.stories.d.ts.map +1 -1
  217. package/dist/input-image/stories/InputImage.stories.js +15 -15
  218. package/dist/input-image/stories/InputImage.stories.js.map +1 -1
  219. package/dist/input-search/index.js +2 -30
  220. package/dist/layout-picker/index.js +1 -1
  221. package/dist/layout-picker/stories/LayoutPicker.stories.js +52 -52
  222. package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
  223. package/dist/list/List.d.ts.map +1 -1
  224. package/dist/list/index.js +30 -30
  225. package/dist/list/index.js.map +1 -1
  226. package/dist/listbox/Listbox.d.ts.map +1 -1
  227. package/dist/listbox/index.js +1 -1
  228. package/dist/listbox/stories/Listbox.stories.js +19 -19
  229. package/dist/misc/CopyTextWrapper.d.ts.map +1 -1
  230. package/dist/misc/OneStepScroller.d.ts.map +1 -1
  231. package/dist/misc/StateIcon.d.ts.map +1 -1
  232. package/dist/misc/index.js +1 -1
  233. package/dist/modal/Modal.d.ts +5 -1
  234. package/dist/modal/Modal.d.ts.map +1 -1
  235. package/dist/modal/index.js +1 -1
  236. package/dist/modal/stories/Modal.stories.js +55 -55
  237. package/dist/multi-select/index.js +3 -35
  238. package/dist/multi-select/model/useODataMultiSelect.d.ts +23 -0
  239. package/dist/multi-select/model/useODataMultiSelect.d.ts.map +1 -0
  240. package/dist/multi-select/ui/MultiSelect.d.ts +1 -1
  241. package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
  242. package/dist/multi-select/ui/ODataDependentMultiSelect.d.ts +20 -0
  243. package/dist/multi-select/ui/ODataDependentMultiSelect.d.ts.map +1 -0
  244. package/dist/multi-select/ui/ODataDependentSegmentMultiSelect.d.ts +21 -0
  245. package/dist/multi-select/ui/ODataDependentSegmentMultiSelect.d.ts.map +1 -0
  246. package/dist/multi-select/ui/ODataMultiSelect.d.ts +7 -0
  247. package/dist/multi-select/ui/ODataMultiSelect.d.ts.map +1 -0
  248. package/dist/multi-select/ui/SerializableMultiSelect.d.ts.map +1 -1
  249. package/dist/multi-select/ui/index.d.ts +3 -0
  250. package/dist/multi-select/ui/index.d.ts.map +1 -1
  251. package/dist/multi-select/ui/stories/MultiSelect.stories.js +17 -17
  252. package/dist/multi-select/ui/stories/ODataMultiSelect.stories.d.ts +44 -0
  253. package/dist/multi-select/ui/stories/ODataMultiSelect.stories.d.ts.map +1 -0
  254. package/dist/notifications/index.js +1 -1
  255. package/dist/notifications/model/NotificationsProvider.d.ts.map +1 -1
  256. package/dist/notifications/ui/NotificationsHost.d.ts.map +1 -1
  257. package/dist/notifications/ui/stories/NotificationsHost.stories.js +59 -59
  258. package/dist/period-select/PeriodSelect.d.ts +1 -1
  259. package/dist/period-select/PeriodSelect.d.ts.map +1 -1
  260. package/dist/period-select/index.js +20 -20
  261. package/dist/period-select/index.js.map +1 -1
  262. package/dist/period-select/lib/periodSelect.d.ts.map +1 -1
  263. package/dist/period-select/stories/PeriodSelect.stories.d.ts.map +1 -1
  264. package/dist/period-select/stories/PeriodSelect.stories.js +17 -17
  265. package/dist/period-select/stories/PeriodSelect.stories.js.map +1 -1
  266. package/dist/picker/PickerPopup.d.ts.map +1 -1
  267. package/dist/picker/PickerTriggerActions.d.ts.map +1 -1
  268. package/dist/picker/index.js +1 -1
  269. package/dist/picker/model/usePickerFloatingListbox.d.ts.map +1 -1
  270. package/dist/popover/FloatingPopover.d.ts.map +1 -1
  271. package/dist/popover/components/PopoverContent.d.ts.map +1 -1
  272. package/dist/popover/components/PopoverContext.d.ts.map +1 -1
  273. package/dist/popover/index.js +1 -1
  274. package/dist/popover/stories/Popover.stories.js +16 -16
  275. package/dist/preset-range-date-input/index.js +1 -1
  276. package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js +9 -9
  277. package/dist/preset-select/index.js +1 -1
  278. package/dist/radio-button/RadioButton.d.ts.map +1 -1
  279. package/dist/radio-button/index.js +1 -1
  280. package/dist/radio-button/stories/RadioButton.stories.js +11 -11
  281. package/dist/radio-group/index.js +1 -1
  282. package/dist/radio-group/stories/RadioGroup.stories.js +21 -21
  283. package/dist/select/ODataSelect.d.ts +9 -0
  284. package/dist/select/ODataSelect.d.ts.map +1 -0
  285. package/dist/select/Select.d.ts.map +1 -1
  286. package/dist/select/index.js +2 -2
  287. package/dist/select/model/useODataSelect.d.ts +25 -0
  288. package/dist/select/model/useODataSelect.d.ts.map +1 -0
  289. package/dist/select/model/useODataSelectBase.d.ts +24 -0
  290. package/dist/select/model/useODataSelectBase.d.ts.map +1 -0
  291. package/dist/select/stories/ODataSelect.stories.d.ts +46 -0
  292. package/dist/select/stories/ODataSelect.stories.d.ts.map +1 -0
  293. package/dist/select/stories/Select.stories.js +23 -23
  294. package/dist/select/stories/SerializableSelect.stories.js +22 -22
  295. package/dist/select/stories/odataStoryFixtures.d.ts +35 -0
  296. package/dist/select/stories/odataStoryFixtures.d.ts.map +1 -0
  297. package/dist/separator/index.js +1 -1
  298. package/dist/simple-table/index.js +5 -5
  299. package/dist/simple-table/index.js.map +1 -1
  300. package/dist/slider/Slider.d.ts.map +1 -1
  301. package/dist/slider/index.js +1 -1
  302. package/dist/slider/stories/Slider.stories.js +32 -32
  303. package/dist/slider/stories/SliderInput.stories.js +39 -39
  304. package/dist/sortable/Sortable.d.ts.map +1 -1
  305. package/dist/sortable/SortableDragHandle.d.ts.map +1 -1
  306. package/dist/sortable/index.js +1 -1
  307. package/dist/sortable/stories/Sortable.stories.js +23 -23
  308. package/dist/splitter/index.js +1 -1
  309. package/dist/splitter/stories/Splitter.stories.js +1 -1
  310. package/dist/state-select/index.js +1 -1
  311. package/dist/state-select/stories/StateSelect.stories.d.ts.map +1 -1
  312. package/dist/state-select/stories/StateSelect.stories.js +23 -23
  313. package/dist/state-select/stories/StateSelect.stories.js.map +1 -1
  314. package/dist/styles.css +1 -1
  315. package/dist/switch/Switch.d.ts.map +1 -1
  316. package/dist/switch/index.js +1 -1
  317. package/dist/switch/stories/Switch.stories.js +11 -11
  318. package/dist/table/Table.d.ts +1 -1
  319. package/dist/table/Table.d.ts.map +1 -1
  320. package/dist/table/index.js +1 -1
  321. package/dist/table/stories/Table.stories.d.ts +155 -0
  322. package/dist/table/stories/Table.stories.d.ts.map +1 -0
  323. package/dist/table-column-interactions/TableHeaderInteractionCell.d.ts.map +1 -1
  324. package/dist/table-column-interactions/index.js +1 -1
  325. package/dist/table-sorting/index.js +1 -1
  326. package/dist/tabs/index.js +1 -1
  327. package/dist/tabs/stories/Tabs.stories.d.ts.map +1 -1
  328. package/dist/tabs/stories/Tabs.stories.js +39 -39
  329. package/dist/tabs/stories/Tabs.stories.js.map +1 -1
  330. package/dist/text/TextOverflow.d.ts.map +1 -1
  331. package/dist/text/index.js +20 -20
  332. package/dist/text/index.js.map +1 -1
  333. package/dist/text-editor/TextEditorLexicalClient.d.ts.map +1 -1
  334. package/dist/text-editor/index.js +3 -3
  335. package/dist/text-editor/toolbar/index.js +1 -1
  336. package/dist/textarea/index.js +1 -1
  337. package/dist/textarea/stories/Textarea.stories.js +8 -8
  338. package/dist/three-scene/index.js +7 -7
  339. package/dist/toggle/index.js +1 -1
  340. package/dist/toggle/stories/Toggle.stories.js +7 -7
  341. package/dist/toolbar/index.js +16 -16
  342. package/dist/tree/index.js +24 -24
  343. package/dist/tree-select/ODataTreeMultiSelect.d.ts +12 -0
  344. package/dist/tree-select/ODataTreeMultiSelect.d.ts.map +1 -0
  345. package/dist/tree-select/ODataTreeSelect.d.ts +13 -0
  346. package/dist/tree-select/ODataTreeSelect.d.ts.map +1 -0
  347. package/dist/tree-select/TreeNodeContent.d.ts.map +1 -1
  348. package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
  349. package/dist/tree-select/index.js +2 -2
  350. package/dist/tree-select/model/buildODataTreeNodes.d.ts +12 -0
  351. package/dist/tree-select/model/buildODataTreeNodes.d.ts.map +1 -0
  352. package/dist/tree-select/model/resolveOrderedTreeSegmentItems.d.ts +4 -0
  353. package/dist/tree-select/model/resolveOrderedTreeSegmentItems.d.ts.map +1 -0
  354. package/dist/tree-select/model/useODataTreeData.d.ts +11 -0
  355. package/dist/tree-select/model/useODataTreeData.d.ts.map +1 -0
  356. package/dist/tree-select/stories/ODataTreeMultiSelect.stories.d.ts +55 -0
  357. package/dist/tree-select/stories/ODataTreeMultiSelect.stories.d.ts.map +1 -0
  358. package/dist/tree-select/stories/ODataTreeSelect.stories.d.ts +54 -0
  359. package/dist/tree-select/stories/ODataTreeSelect.stories.d.ts.map +1 -0
  360. package/dist/tree-select/stories/TreeMultiSelect.stories.js +9 -9
  361. package/dist/tree-select/stories/TreeSelect.stories.js +9 -9
  362. package/dist/tree-table/TreeTable.d.ts +1 -1
  363. package/dist/tree-table/TreeTable.d.ts.map +1 -1
  364. package/dist/tree-table/index.js +32 -32
  365. package/dist/tree-table/index.js.map +1 -1
  366. package/dist/tree-table/stories/TreeTable.stories.d.ts +158 -0
  367. package/dist/tree-table/stories/TreeTable.stories.d.ts.map +1 -0
  368. package/dist/wheel-picker/index.js +1 -1
  369. package/package.json +15 -4
  370. package/dist/chunks/BadgeList-DHW_Ktr3.js.map +0 -1
  371. package/dist/chunks/CheckBox-Cck5w1Ud.js.map +0 -1
  372. package/dist/chunks/DateInput-CINDYueM.js.map +0 -1
  373. package/dist/chunks/Detail-DKolHye4.js +0 -80
  374. package/dist/chunks/Dialog-BPS4BeWZ.js.map +0 -1
  375. package/dist/chunks/DisclosureGroup-0BtaXO54.js.map +0 -1
  376. package/dist/chunks/DropZone-hf7Em__0.js.map +0 -1
  377. package/dist/chunks/DropdownMenu-Ds-trH4M.js.map +0 -1
  378. package/dist/chunks/Input-Ce2HXBUc.js.map +0 -1
  379. package/dist/chunks/InputFile-ga5yJmdZ.js.map +0 -1
  380. package/dist/chunks/InputFiles-Or2Nvfgk.js.map +0 -1
  381. package/dist/chunks/LabeledExpandableActionPanel-Bx-DWmYz.js.map +0 -1
  382. package/dist/chunks/Listbox-CY1wQOCP.js +0 -81
  383. package/dist/chunks/Listbox-CY1wQOCP.js.map +0 -1
  384. package/dist/chunks/NotificationsHost-BQc-zOr2.js.map +0 -1
  385. package/dist/chunks/RadioButton-DJp31HFR.js.map +0 -1
  386. package/dist/chunks/RadioGroup-BAhN1d1X.js +0 -121
  387. package/dist/chunks/Select-B7k_8_Lf.js.map +0 -1
  388. package/dist/chunks/SingleDateTimeInput-CwvIbwje.js.map +0 -1
  389. package/dist/chunks/StateSelect-D0wuUdT9.js +0 -78
  390. package/dist/chunks/Switch-B476FBUD.js.map +0 -1
  391. package/dist/chunks/TimePanel-_kF2RtHk.js.map +0 -1
  392. package/dist/chunks/TreePickerBase-DYzTsSBQ.js.map +0 -1
  393. package/dist/chunks/base-table-DVje02Zi.js +0 -514
  394. package/dist/chunks/base-table-DVje02Zi.js.map +0 -1
  395. package/dist/chunks/layout-picker-BA9vA8JI.js.map +0 -1
  396. package/dist/chunks/misc-DrmMj8GO.js.map +0 -1
  397. package/dist/chunks/modal-DqVcZws_.js.map +0 -1
  398. package/dist/chunks/picker-Cj4RnJh6.js.map +0 -1
  399. package/dist/chunks/popover-C79P5bm2.js.map +0 -1
  400. package/dist/chunks/slider-34wxzKkG.js.map +0 -1
  401. package/dist/chunks/sortable-CwDHC3CA.js +0 -185
  402. package/dist/chunks/sortable-CwDHC3CA.js.map +0 -1
  403. package/dist/chunks/table-BYA0hCj7.js.map +0 -1
  404. package/dist/input-search/index.js.map +0 -1
  405. package/dist/multi-select/index.js.map +0 -1
@@ -1,18 +1,18 @@
1
- import { n as e } from "./popover-C79P5bm2.js";
1
+ import { n as e } from "./popover-xJJqy1v6.js";
2
2
  import { Text as t } from "../text/index.js";
3
3
  import { FlexCenter as n } from "../flex/index.js";
4
4
  import { PolymorphicComponent as r } from "../polymorphic/index.js";
5
- import { CheckCheckIcon as i, ChevronLeftIcon as a, ChevronRightIcon as o, CircleAlertIcon as s, CircleCheckIcon as c, CircleXIcon as l, CopyIcon as u, InfoIcon as d } from "lucide-react";
6
- import { cn as f } from "@ryuzaki13/react-foundation-lib/utils";
7
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
8
- import { Suspense as h, forwardRef as g, useCallback as _, useEffect as v, useRef as y, useState as b, useSyncExternalStore as x } from "react";
9
- import { useLazyComponent as S } from "@ryuzaki13/react-foundation-lib/hooks";
10
- import { useCopyElementTextWithFeedback as C } from "@ryuzaki13/react-foundation-lib/copy";
5
+ import { Suspense as i, forwardRef as a, useCallback as o, useEffect as s, useRef as c, useState as l, useSyncExternalStore as u } from "react";
6
+ import { cn as d } from "@ryuzaki13/react-foundation-lib/utils";
7
+ import { CheckCheckIcon as f, ChevronLeftIcon as p, ChevronRightIcon as m, CircleAlertIcon as h, CircleCheckIcon as g, CircleXIcon as _, CopyIcon as v, InfoIcon as y } from "lucide-react";
8
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
9
+ import { useCopyElementTextWithFeedback as S } from "@ryuzaki13/react-foundation-lib/copy";
10
+ import { useLazyComponent as C } from "@ryuzaki13/react-foundation-lib/hooks";
11
11
  //#region src/misc/AnimatedLogo.tsx
12
12
  function w() {
13
- return /* @__PURE__ */ p("div", {
13
+ return /* @__PURE__ */ b("div", {
14
14
  className: "logoAnimated",
15
- children: /* @__PURE__ */ m("svg", {
15
+ children: /* @__PURE__ */ x("svg", {
16
16
  xmlns: "http://www.w3.org/2000/svg",
17
17
  width: "588",
18
18
  height: "696",
@@ -20,19 +20,19 @@ function w() {
20
20
  role: "img",
21
21
  "aria-label": "Загрузка",
22
22
  children: [
23
- /* @__PURE__ */ p("path", {
23
+ /* @__PURE__ */ b("path", {
24
24
  className: "logoSegment logoOutline logoS1",
25
25
  d: "M15,15v225.37l136.14-.23c44.13-.07,79.86-35.87,79.86-80V15H15Z"
26
26
  }),
27
- /* @__PURE__ */ p("path", {
27
+ /* @__PURE__ */ b("path", {
28
28
  className: "logoSegment logoOutline logoS2",
29
29
  d: "M15,285v396s216,0,216,0v-316c0-44.18-35.82-80-80-80H15Z"
30
30
  }),
31
- /* @__PURE__ */ p("path", {
31
+ /* @__PURE__ */ b("path", {
32
32
  className: "logoSegment logoOutline logoS3",
33
33
  d: "M276,15h297s0,225,0,225h-217c-44.18,0-80-35.82-80-80V15Z"
34
34
  }),
35
- /* @__PURE__ */ p("path", {
35
+ /* @__PURE__ */ b("path", {
36
36
  className: "logoSegment logoFill logoS4",
37
37
  d: "M573,285v108h-169c-11.05,0-20,8.95-20,20v268h-108v-316c0-44.18,35.82-80,80-80h217Z"
38
38
  })
@@ -42,19 +42,19 @@ function w() {
42
42
  }
43
43
  //#endregion
44
44
  //#region src/misc/CopyTextWrapper.tsx
45
- var T = ({ children: t, position: n = "top", showOnHover: r = !0, className: a }) => {
46
- let { containerRef: o, copyElementText: s, isCopied: c } = C();
47
- return /* @__PURE__ */ m("span", {
48
- ref: o,
49
- className: a,
50
- children: [t, /* @__PURE__ */ p(e, {
45
+ var T = ({ children: t, position: n = "top", showOnHover: r = !0, className: i }) => {
46
+ let { containerRef: a, copyElementText: o, isCopied: s } = S();
47
+ return /* @__PURE__ */ x("span", {
48
+ ref: a,
49
+ className: i,
50
+ children: [t, /* @__PURE__ */ b(e, {
51
51
  openOnHover: r,
52
52
  placement: n,
53
- content: c ? "Скопировано!" : "Копировать текст",
54
- children: /* @__PURE__ */ p("button", {
55
- onClick: s,
56
- "aria-label": c ? "Скопировано!" : "Копировать текст",
57
- children: c ? /* @__PURE__ */ p(i, { className: "block statusSuccess" }) : /* @__PURE__ */ p(u, { className: "block statusInfo" })
53
+ content: s ? "Скопировано!" : "Копировать текст",
54
+ children: /* @__PURE__ */ b("button", {
55
+ onClick: o,
56
+ "aria-label": s ? "Скопировано!" : "Копировать текст",
57
+ children: s ? /* @__PURE__ */ b(f, { className: "block statusSuccess" }) : /* @__PURE__ */ b(v, { className: "block statusInfo" })
58
58
  })
59
59
  })]
60
60
  });
@@ -62,15 +62,15 @@ var T = ({ children: t, position: n = "top", showOnHover: r = !0, className: a }
62
62
  //#endregion
63
63
  //#region src/misc/IconWrapper.tsx
64
64
  function D({ className: e, children: t }) {
65
- return /* @__PURE__ */ p("div", {
66
- className: f(E.wrapper, e),
65
+ return /* @__PURE__ */ b("div", {
66
+ className: d(E.wrapper, e),
67
67
  children: t
68
68
  });
69
69
  }
70
- var O = { componentLoader: "qgIKVo" }, k = ({ className: e, children: r, color: i = "muted", minHeight: a, uppercase: o = !0 }) => /* @__PURE__ */ p(n, {
71
- className: f("paddingMd textCenter", e),
70
+ var O = { componentLoader: "qgIKVo" }, k = ({ className: e, children: r, color: i = "muted", minHeight: a, uppercase: o = !0 }) => /* @__PURE__ */ b(n, {
71
+ className: d("paddingMd textCenter", e),
72
72
  minHeight: a,
73
- children: /* @__PURE__ */ p(t, {
73
+ children: /* @__PURE__ */ b(t, {
74
74
  as: "div",
75
75
  weight: "bold",
76
76
  color: i,
@@ -81,41 +81,41 @@ var O = { componentLoader: "qgIKVo" }, k = ({ className: e, children: r, color:
81
81
  //#endregion
82
82
  //#region src/misc/LoadingMessage.tsx
83
83
  function A({ className: e, text: t, withLogo: n }) {
84
- return /* @__PURE__ */ m(k, {
85
- className: f(O.componentLoader, n ? "" : "skeletonLine", e),
86
- children: [n && /* @__PURE__ */ p(w, {}), t || "Загрузка..."]
84
+ return /* @__PURE__ */ x(k, {
85
+ className: d(O.componentLoader, n ? "" : "skeletonLine", e),
86
+ children: [n && /* @__PURE__ */ b(w, {}), t || "Загрузка..."]
87
87
  });
88
88
  }
89
89
  //#endregion
90
90
  //#region src/misc/LazyDynamicComponent.tsx
91
91
  var j = (e) => (e(), () => void 0), M = () => !0, N = () => !1;
92
- function P({ fallback: e, importFunc: t, componentName: n, clientOnly: r = !1, cacheKey: i, props: a }) {
93
- let o = S(t, n, i), s = x(j, M, N), c = e ?? /* @__PURE__ */ p(A, { text: "Ожидание компонента..." });
94
- return r && !s ? c : /* @__PURE__ */ p(h, {
95
- fallback: c,
96
- children: /* @__PURE__ */ p(o, { ...a ?? {} })
92
+ function P({ fallback: e, importFunc: t, componentName: n, clientOnly: r = !1, cacheKey: a, props: o }) {
93
+ let s = C(t, n, a), c = u(j, M, N), l = e ?? /* @__PURE__ */ b(A, { text: "Ожидание компонента..." });
94
+ return r && !c ? l : /* @__PURE__ */ b(i, {
95
+ fallback: l,
96
+ children: /* @__PURE__ */ b(s, { ...o ?? {} })
97
97
  });
98
98
  }
99
99
  //#endregion
100
100
  //#region src/misc/SkeletonLine.tsx
101
- var F = ({ as: e, className: t, ...n }) => /* @__PURE__ */ p(r, {
101
+ var F = ({ as: e, className: t, ...n }) => /* @__PURE__ */ b(r, {
102
102
  as: e || "div",
103
- className: f("skeletonLine colorTransparent radiusSm", t),
103
+ className: d("skeletonLine colorTransparent radiusSm", t),
104
104
  ...n
105
105
  });
106
106
  //#endregion
107
107
  //#region src/misc/LazyValue.tsx
108
108
  function I({ value: e, isLoading: t }) {
109
- return t ? /* @__PURE__ */ p(F, { children: "Загрузка..." }) : e ?? "-";
109
+ return t ? /* @__PURE__ */ b(F, { children: "Загрузка..." }) : e ?? "-";
110
110
  }
111
111
  //#endregion
112
112
  //#region src/misc/NoData.tsx
113
- var L = ({ className: e, text: t, minHeight: n = "5em" }) => /* @__PURE__ */ p(k, {
113
+ var L = ({ className: e, text: t, minHeight: n = "5em" }) => /* @__PURE__ */ b(k, {
114
114
  className: e,
115
115
  color: "muted",
116
116
  minHeight: n,
117
117
  children: t || "Нет данных"
118
- }), R = ({ className: e, isError: t, children: n }) => /* @__PURE__ */ p(k, {
118
+ }), R = ({ className: e, isError: t, children: n }) => /* @__PURE__ */ b(k, {
119
119
  className: e,
120
120
  color: t ? "error" : "secondary",
121
121
  children: n
@@ -129,11 +129,11 @@ function V(e) {
129
129
  return Math.max(0, e.scrollWidth - e.clientWidth);
130
130
  }
131
131
  var H = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smooth: i = !0 }) => {
132
- let s = y(null), c = y(null), [l, u] = b(!1), [d, h] = b(!1), g = _(() => {
133
- let e = s.current;
132
+ let a = c(null), u = c(null), [f, h] = l(!1), [g, _] = l(!1), v = o(() => {
133
+ let e = a.current;
134
134
  return e ? n ? Array.from(e.querySelectorAll(n)) : Array.from(e.children).filter((e) => e instanceof HTMLElement) : [];
135
- }, [n]), x = _((e) => {
136
- let t = s.current;
135
+ }, [n]), y = o((e) => {
136
+ let t = a.current;
137
137
  if (!t) return null;
138
138
  if (n) {
139
139
  let r = e.closest(n);
@@ -142,53 +142,53 @@ var H = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
142
142
  let r = e;
143
143
  for (; r && r.parentElement && r.parentElement !== t;) r = r.parentElement;
144
144
  return r && r.parentElement === t ? r : null;
145
- }, [n]), S = _(() => {
146
- let e = s.current;
145
+ }, [n]), S = o(() => {
146
+ let e = a.current;
147
147
  if (!e) {
148
- u(!1), h(!1);
148
+ h(!1), _(!1);
149
149
  return;
150
150
  }
151
151
  let t = Math.max(0, e.scrollWidth - e.clientWidth), n = Math.max(0, Math.min(e.scrollLeft, t)), r = n > B, i = n < t - B;
152
- u((e) => e === r ? e : r), h((e) => e === i ? e : i);
153
- }, []), C = _(() => {
154
- c.current === null && (c.current = requestAnimationFrame(() => {
155
- c.current = null, S();
152
+ h((e) => e === r ? e : r), _((e) => e === i ? e : i);
153
+ }, []), C = o(() => {
154
+ u.current === null && (u.current = requestAnimationFrame(() => {
155
+ u.current = null, S();
156
156
  }));
157
- }, [S]), w = _((e) => {
158
- let t = s.current;
157
+ }, [S]), w = o((e) => {
158
+ let t = a.current;
159
159
  if (!t) return;
160
- let n = g()[0];
160
+ let n = v()[0];
161
161
  if (!n) return;
162
162
  let r = n.getBoundingClientRect().width;
163
163
  if (!r) return;
164
- let a = Math.round(e * r), o = Math.max(0, t.scrollWidth - t.clientWidth), c = Math.max(0, Math.min(t.scrollLeft + a, o));
164
+ let o = Math.round(e * r), s = Math.max(0, t.scrollWidth - t.clientWidth), c = Math.max(0, Math.min(t.scrollLeft + o, s));
165
165
  t.scrollTo({
166
166
  left: c,
167
167
  behavior: i ? "smooth" : "auto"
168
168
  });
169
- }, [g, i]), T = _((e) => {
170
- let t = s.current;
169
+ }, [v, i]), T = o((e) => {
170
+ let t = a.current;
171
171
  if (!t) return;
172
- let n = t.getBoundingClientRect(), a = e.getBoundingClientRect(), o = a.left - n.left + t.scrollLeft, c = o + a.width, l = t.scrollLeft, u = t.scrollLeft + t.clientWidth;
173
- if (o >= l + B && c <= u - B) return;
172
+ let n = t.getBoundingClientRect(), o = e.getBoundingClientRect(), s = o.left - n.left + t.scrollLeft, c = s + o.width, l = t.scrollLeft, u = t.scrollLeft + t.clientWidth;
173
+ if (s >= l + B && c <= u - B) return;
174
174
  let d = t.scrollLeft;
175
- o < l ? d = Math.max(0, o - r) : c > u && (d = Math.min(V(t), c - t.clientWidth + r)), t.scrollTo({
175
+ s < l ? d = Math.max(0, s - r) : c > u && (d = Math.min(V(t), c - t.clientWidth + r)), t.scrollTo({
176
176
  left: Math.round(d),
177
177
  behavior: i ? "smooth" : "auto"
178
178
  });
179
179
  }, [r, i]);
180
- v(() => {
181
- let e = s.current;
180
+ s(() => {
181
+ let e = a.current;
182
182
  if (!e) return;
183
183
  let t = (e) => {
184
184
  let t = e.target;
185
185
  if (!(t instanceof HTMLElement)) return;
186
- let n = x(t);
186
+ let n = y(t);
187
187
  n && T(n);
188
188
  };
189
189
  return e.addEventListener("focusin", t), () => e.removeEventListener("focusin", t);
190
- }, [T, x]), v(() => {
191
- let e = s.current;
190
+ }, [T, y]), s(() => {
191
+ let e = a.current;
192
192
  if (!e) return;
193
193
  let t = () => C();
194
194
  e.addEventListener("scroll", t, { passive: !0 });
@@ -199,57 +199,57 @@ var H = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
199
199
  childList: !0,
200
200
  subtree: !1
201
201
  })), C(), () => {
202
- e.removeEventListener("scroll", t), n?.disconnect(), r?.disconnect(), c.current !== null && (cancelAnimationFrame(c.current), c.current = null);
202
+ e.removeEventListener("scroll", t), n?.disconnect(), r?.disconnect(), u.current !== null && (cancelAnimationFrame(u.current), u.current = null);
203
203
  };
204
- }, [C]), v(() => {
204
+ }, [C]), s(() => {
205
205
  C();
206
206
  }, [e, C]);
207
207
  let E = () => w(-1), D = () => w(1), O = (e) => {
208
208
  e.key === "ArrowLeft" ? (e.preventDefault(), E()) : e.key === "ArrowRight" && (e.preventDefault(), D());
209
- }, k = l || d;
210
- return /* @__PURE__ */ m("div", {
211
- className: f(z.oneStepScroller, t),
209
+ }, k = f || g;
210
+ return /* @__PURE__ */ x("div", {
211
+ className: d(z.oneStepScroller, t),
212
212
  style: { position: "relative" },
213
213
  children: [
214
- k && /* @__PURE__ */ p("button", {
214
+ k && /* @__PURE__ */ b("button", {
215
215
  type: "button",
216
216
  "aria-label": "Прокрутить шаг влево",
217
217
  className: z.ossButton,
218
218
  onClick: E,
219
- disabled: !l,
220
- children: /* @__PURE__ */ p(a, {})
219
+ disabled: !f,
220
+ children: /* @__PURE__ */ b(p, {})
221
221
  }),
222
- /* @__PURE__ */ p("div", {
222
+ /* @__PURE__ */ b("div", {
223
223
  className: z.ossViewport,
224
224
  onKeyDown: O,
225
225
  role: "group",
226
226
  "aria-label": "Элементы прокрутки",
227
- children: /* @__PURE__ */ p("div", {
227
+ children: /* @__PURE__ */ b("div", {
228
228
  className: z.ossScroller,
229
- ref: s,
229
+ ref: a,
230
230
  "aria-live": "polite",
231
231
  children: e
232
232
  })
233
233
  }),
234
- k && /* @__PURE__ */ p("button", {
234
+ k && /* @__PURE__ */ b("button", {
235
235
  type: "button",
236
236
  "aria-label": "Прокрутить шаг вправо",
237
237
  className: z.ossButton,
238
238
  onClick: D,
239
- disabled: !d,
240
- children: /* @__PURE__ */ p(o, {})
239
+ disabled: !g,
240
+ children: /* @__PURE__ */ b(m, {})
241
241
  })
242
242
  ]
243
243
  });
244
- }, U = g(({ children: e, height: t, stable: n, overscroll: r, className: i }, a) => /* @__PURE__ */ p("div", {
244
+ }, U = a(({ children: e, height: t, stable: n, overscroll: r, className: i }, a) => /* @__PURE__ */ b("div", {
245
245
  ref: a,
246
- className: f("scrollable", n && "stable", r && "overscroll", i),
246
+ className: d("scrollable", n && "stable", r && "overscroll", i),
247
247
  style: { height: t },
248
248
  children: e
249
249
  }));
250
- g(({ blockClassName: e, ...t }, n) => /* @__PURE__ */ p("div", {
251
- className: f(e, "overflowHidden w100 h100"),
252
- children: /* @__PURE__ */ p(U, {
250
+ a(({ blockClassName: e, ...t }, n) => /* @__PURE__ */ b("div", {
251
+ className: d(e, "overflowHidden w100 h100"),
252
+ children: /* @__PURE__ */ b(U, {
253
253
  ref: n,
254
254
  ...t
255
255
  })
@@ -262,37 +262,37 @@ var W = {
262
262
  warning: "_03z-1l",
263
263
  error: "_0RqsqJ",
264
264
  state: "mXkUoM"
265
- }, G = ({ state: e = "none", text: t, className: n }) => /* @__PURE__ */ m("div", {
266
- className: f("flexCenter gapSm", n),
265
+ }, G = ({ state: e = "none", text: t, className: n }) => /* @__PURE__ */ x("div", {
266
+ className: d("flexCenter gapSm", n),
267
267
  children: [(() => {
268
268
  switch (e) {
269
- case "error": return /* @__PURE__ */ p(q, {});
270
- case "warning": return /* @__PURE__ */ p(J, {});
271
- case "success": return /* @__PURE__ */ p(Y, {});
272
- case "information": return /* @__PURE__ */ p(X, {});
269
+ case "error": return /* @__PURE__ */ b(q, {});
270
+ case "warning": return /* @__PURE__ */ b(J, {});
271
+ case "success": return /* @__PURE__ */ b(Y, {});
272
+ case "information": return /* @__PURE__ */ b(X, {});
273
273
  default: return null;
274
274
  }
275
275
  })(), t]
276
276
  }), K = ({ state: e }) => {
277
277
  switch (e) {
278
- case "error": return /* @__PURE__ */ p(q, {});
279
- case "warning": return /* @__PURE__ */ p(J, {});
280
- case "success": return /* @__PURE__ */ p(Y, {});
281
- case "information": return /* @__PURE__ */ p(X, {});
278
+ case "error": return /* @__PURE__ */ b(q, {});
279
+ case "warning": return /* @__PURE__ */ b(J, {});
280
+ case "success": return /* @__PURE__ */ b(Y, {});
281
+ case "information": return /* @__PURE__ */ b(X, {});
282
282
  default: return null;
283
283
  }
284
- }, q = () => /* @__PURE__ */ p(l, { className: f(W.state, W.error) }), J = () => /* @__PURE__ */ p(s, { className: f(W.state, W.warning) }), Y = () => /* @__PURE__ */ p(c, { className: f(W.state, W.success) }), X = () => /* @__PURE__ */ p(d, { className: f(W.state, W.information) });
284
+ }, q = () => /* @__PURE__ */ b(_, { className: d(W.state, W.error) }), J = () => /* @__PURE__ */ b(h, { className: d(W.state, W.warning) }), Y = () => /* @__PURE__ */ b(g, { className: d(W.state, W.success) }), X = () => /* @__PURE__ */ b(y, { className: d(W.state, W.information) });
285
285
  //#endregion
286
286
  //#region src/misc/StateWrapper.tsx
287
287
  function Z({ as: e, state: t, className: n, ...i }) {
288
288
  let a = t?.toLowerCase() ?? "none", o = W[a], s = a && a !== "none";
289
- return /* @__PURE__ */ p(r, {
289
+ return /* @__PURE__ */ b(r, {
290
290
  as: e || "div",
291
- className: f(W.stateWrapper, s && W.status, o, n),
291
+ className: d(W.stateWrapper, s && W.status, o, n),
292
292
  ...i
293
293
  });
294
294
  }
295
295
  //#endregion
296
296
  export { D as _, G as a, U as c, L as d, I as f, k as g, A as h, K as i, H as l, P as m, q as n, Y as o, F as p, X as r, J as s, Z as t, R as u, T as v, w as y };
297
297
 
298
- //# sourceMappingURL=misc-DrmMj8GO.js.map
298
+ //# sourceMappingURL=misc-DoqZBMof.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc-DoqZBMof.js","names":[],"sources":["../../src/misc/AnimatedLogo.tsx","../../src/misc/CopyTextWrapper.tsx","../../src/misc/IconWrapper.module.scss","../../src/misc/IconWrapper.tsx","../../src/misc/LoadingMessage.module.scss","../../src/misc/Message.tsx","../../src/misc/LoadingMessage.tsx","../../src/misc/LazyDynamicComponent.tsx","../../src/misc/SkeletonLine.tsx","../../src/misc/LazyValue.tsx","../../src/misc/NoData.tsx","../../src/misc/Notice.tsx","../../src/misc/OneStepScroller.module.scss","../../src/misc/OneStepScroller.tsx","../../src/misc/Scrollable.tsx","../../src/misc/State.module.scss","../../src/misc/StateIcon.tsx","../../src/misc/StateWrapper.tsx"],"sourcesContent":["export function AnimatedLogo() {\n\treturn (\n\t\t<div className=\"logoAnimated\">\n\t\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"588\" height=\"696\" viewBox=\"0 0 588 696\" role=\"img\" aria-label=\"Загрузка\">\n\t\t\t\t<path className=\"logoSegment logoOutline logoS1\" d=\"M15,15v225.37l136.14-.23c44.13-.07,79.86-35.87,79.86-80V15H15Z\" />\n\t\t\t\t<path className=\"logoSegment logoOutline logoS2\" d=\"M15,285v396s216,0,216,0v-316c0-44.18-35.82-80-80-80H15Z\" />\n\t\t\t\t<path className=\"logoSegment logoOutline logoS3\" d=\"M276,15h297s0,225,0,225h-217c-44.18,0-80-35.82-80-80V15Z\" />\n\t\t\t\t<path\n\t\t\t\t\tclassName=\"logoSegment logoFill logoS4\"\n\t\t\t\t\td=\"M573,285v108h-169c-11.05,0-20,8.95-20,20v268h-108v-316c0-44.18,35.82-80,80-80h217Z\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t</div>\n\t);\n}\n","import { Placement } from \"@floating-ui/react\";\nimport { useCopyElementTextWithFeedback } from \"@ryuzaki13/react-foundation-lib/copy\";\nimport { CheckCheckIcon, CopyIcon } from \"lucide-react\";\n\nimport { FloatingPopover } from \"../popover\";\n\ninterface CopyTextWrapperProps {\n\tchildren: React.ReactNode;\n\tposition?: Placement;\n\tshowOnHover?: boolean;\n\tclassName?: string;\n}\n\nexport const CopyTextWrapper: React.FC<CopyTextWrapperProps> = ({ children, position = \"top\", showOnHover = true, className }) => {\n\tconst { containerRef, copyElementText, isCopied } = useCopyElementTextWithFeedback<HTMLSpanElement>();\n\n\treturn (\n\t\t<span ref={containerRef} className={className}>\n\t\t\t{children}\n\t\t\t<FloatingPopover openOnHover={showOnHover} placement={position} content={isCopied ? \"Скопировано!\" : \"Копировать текст\"}>\n\t\t\t\t<button onClick={copyElementText} aria-label={isCopied ? \"Скопировано!\" : \"Копировать текст\"}>\n\t\t\t\t\t{isCopied ? <CheckCheckIcon className=\"block statusSuccess\" /> : <CopyIcon className=\"block statusInfo\" />}\n\t\t\t\t</button>\n\t\t\t</FloatingPopover>\n\t\t</span>\n\t);\n};\n",".wrapper {\n\twidth: var(--control-height);\n\theight: var(--control-height);\n\tmargin: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n","import { ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./IconWrapper.module.scss\";\n\ninterface IconWrapperProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n}\n\nexport function IconWrapper({ className, children }: IconWrapperProps) {\n\treturn <div className={cn(styles.wrapper, className)}>{children}</div>;\n}\n",".componentLoader {\n\tmin-height: 10em;\n}\n","import { PropsWithChildren } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { FlexCenter } from \"../flex\";\nimport { Text, TextColor } from \"../text\";\n\ninterface MessageProps extends PropsWithChildren {\n\tclassName?: string;\n\tcolor?: TextColor;\n\tminHeight?: string | number;\n\tuppercase?: boolean;\n}\n\nexport const Message: React.FC<MessageProps> = ({ className, children, color = \"muted\", minHeight, uppercase = true }) => (\n\t<FlexCenter className={cn(\"paddingMd textCenter\", className)} minHeight={minHeight}>\n\t\t<Text as=\"div\" weight=\"bold\" color={color} uppercase={uppercase}>\n\t\t\t{children}\n\t\t</Text>\n\t</FlexCenter>\n);\n","import { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { AnimatedLogo } from \"./AnimatedLogo\";\nimport styles from \"./LoadingMessage.module.scss\";\nimport { Message } from \"./Message\";\n\ninterface LoadingMessageProps {\n\tclassName?: string;\n\ttext?: string;\n\twithLogo?: boolean;\n}\n\nexport function LoadingMessage({ className, text, withLogo }: LoadingMessageProps) {\n\treturn (\n\t\t<Message className={cn(styles.componentLoader, withLogo ? \"\" : \"skeletonLine\", className)}>\n\t\t\t{withLogo && <AnimatedLogo />}\n\n\t\t\t{text || \"Загрузка...\"}\n\t\t</Message>\n\t);\n}\n","import { Suspense, useSyncExternalStore, type ComponentType, type ReactNode } from \"react\";\n\nimport { useLazyComponent } from \"@ryuzaki13/react-foundation-lib/hooks\";\n\nimport { LoadingMessage } from \"./LoadingMessage\";\n\ntype LazyDynamicComponentProps<T extends object> = {\n\timportFunc: () => Promise<Record<string, ComponentType<T>> | null>;\n\tcomponentName: string;\n\tcacheKey?: string;\n\tclientOnly?: boolean;\n\tfallback?: ReactNode;\n\tprops?: T;\n};\n\nconst subscribeClientOnlyMount = (onStoreChange: () => void) => {\n\tonStoreChange();\n\n\treturn () => undefined;\n};\n\nconst getClientSnapshot = () => true;\nconst getServerSnapshot = () => false;\n\n/**\n * Компонент ленивой загрузки динамически импортируемого React-компонента. Позволяет отложить загрузку тяжелых частей интерфейса до момента использования.\n */\nexport function LazyDynamicComponent<T extends object>({\n\tfallback,\n\timportFunc,\n\tcomponentName,\n\tclientOnly = false,\n\tcacheKey,\n\tprops\n}: LazyDynamicComponentProps<T>) {\n\tconst Component = useLazyComponent(importFunc, componentName, cacheKey);\n\tconst isClient = useSyncExternalStore(subscribeClientOnlyMount, getClientSnapshot, getServerSnapshot);\n\n\tconst fallbackNode = fallback ?? <LoadingMessage text=\"Ожидание компонента...\" />;\n\n\t// Client-only режим нужен для браузерных модулей, которые нельзя даже пытаться импортировать во время SSR.\n\tif (clientOnly && !isClient) return fallbackNode;\n\n\treturn (\n\t\t<Suspense fallback={fallbackNode}>\n\t\t\t{/* eslint-disable-next-line react-hooks/static-components */}\n\t\t\t<Component {...(props ?? ({} as T))} />\n\t\t</Suspense>\n\t);\n}\n","import React from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { PolymorphicComponent, PolymorphicComponentBaseProps } from \"../polymorphic\";\n\ntype SkeletonLineOwnProps<E extends React.ElementType = React.ElementType> = PolymorphicComponentBaseProps<E> & {\n\tclassName?: string;\n};\n\ntype SkeletonLineProps<E extends React.ElementType> = SkeletonLineOwnProps<E> &\n\tOmit<React.ComponentPropsWithRef<E>, keyof SkeletonLineOwnProps>;\n\nexport const SkeletonLine = <E extends React.ElementType>({ as, className, ...props }: SkeletonLineProps<E>) => {\n\tconst Component = as || \"div\";\n\n\treturn (\n\t\t<PolymorphicComponent\n\t\t\tas={Component as React.ElementType}\n\t\t\tclassName={cn(\"skeletonLine colorTransparent radiusSm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n","import React from \"react\";\n\nimport { SkeletonLine } from \"./SkeletonLine\";\n\ninterface LazyValueProps {\n\tvalue: React.ReactNode;\n\tisLoading?: boolean;\n}\n\nexport function LazyValue({ value, isLoading }: LazyValueProps) {\n\treturn isLoading ? <SkeletonLine>Загрузка...</SkeletonLine> : (value ?? \"-\");\n}\n","import { Message } from \"./Message\";\n\ninterface NoDataProps {\n\tclassName?: string;\n\ttext?: string;\n\tminHeight?: string | number;\n}\n\nexport const NoData = ({ className, text, minHeight = \"5em\" }: NoDataProps) => {\n\treturn (\n\t\t<Message className={className} color=\"muted\" minHeight={minHeight}>\n\t\t\t{text || \"Нет данных\"}\n\t\t</Message>\n\t);\n};\n","import { PropsWithChildren } from \"react\";\n\nimport { Message } from \"./Message\";\n\ninterface NoticeProps extends PropsWithChildren {\n\tisError?: boolean;\n\tclassName?: string;\n}\n\nexport const Notice: React.FC<NoticeProps> = ({ className, isError, children }) => (\n\t<Message className={className} color={isError ? \"error\" : \"secondary\"}>\n\t\t{children}\n\t</Message>\n);\n",".oneStepScroller {\n\toverflow: hidden;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tmin-width: 0;\n}\n\n.ossViewport {\n\toverflow: hidden;\n\toutline: none;\n\tmin-width: 0;\n\tflex: 1 1 auto;\n}\n\n.ossScroller {\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n\tgap: var(--space-sm);\n\talign-items: end;\n\toverflow-x: auto;\n\toverflow-y: hidden;\n\tscroll-behavior: smooth;\n\t-webkit-overflow-scrolling: touch;\n\tscrollbar-width: none; /* firefox */\n\n\t::-webkit-scrollbar {\n\t\theight: 0;\n\t}\n}\n\n.ossButton {\n\t// position: absolute;\n\ttop: 0;\n\tz-index: 10;\n\twidth: var(--control-height);\n\theight: 100%;\n\tflex: 0 0 var(--control-height);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\t// border: var(--border);\n\tborder-radius: var(--radius-sm);\n\tcolor: var(--content-2);\n\t// background-color: var(--surface-0);\n\t// opacity: 0.75;\n\n\ttransition-property: opacity, color;\n\ttransition-duration: var(--transition-fast);\n\n\t&:hover {\n\t\topacity: 1;\n\t\tcolor: var(--content-0);\n\t}\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n\n\t// &.prev {\n\t// \tleft: 0;\n\t// }\n\n\t// &.next {\n\t// \tright: 0;\n\t// }\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport styles from \"./OneStepScroller.module.scss\";\n\ninterface OneStepScrollerProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n\t/**\n\t * CSS-селектор элементов, которые считаются \"шагами\" скролла.\n\t * По умолчанию используются прямые потомки скроллера.\n\t */\n\titemSelector?: string;\n\t/**\n\t * Дополнительный внутренний отступ (px) при прокрутке к фокусируемому элементу.\n\t */\n\tscrollPadding?: number;\n\t/**\n\t * Плавная прокрутка для кнопок и авто-доводки до видимости.\n\t */\n\tsmooth?: boolean;\n}\n\nconst EDGE_EPSILON_PX = 1;\n\nfunction maxScrollLeft(scroller: HTMLElement) {\n\treturn Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n}\n\n/**\n * Горизонтальный скроллер \"по одному элементу\".\n *\n * Ожидает элементы фиксированной ширины (или близкой к фиксированной),\n * чтобы шаг скролла соответствовал ширине одного элемента.\n */\nexport const OneStepScroller: React.FC<OneStepScrollerProps> = ({\n\tchildren,\n\tclassName,\n\titemSelector,\n\tscrollPadding = 6,\n\tsmooth = true\n}) => {\n\tconst scrollerRef = useRef<HTMLDivElement | null>(null);\n\tconst rafIdRef = useRef<number | null>(null);\n\n\tconst [canScrollPrev, setCanScrollPrev] = useState(false);\n\tconst [canScrollNext, setCanScrollNext] = useState(false);\n\n\t/**\n\t * Получить список элементов-\"шагов\".\n\t *\n\t * Оптимизация: для дефолтного поведения используем `children` DOM-узла,\n\t * чтобы не выполнять `querySelectorAll` на каждый вызов.\n\t */\n\tconst getItems = useCallback((): HTMLElement[] => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return [];\n\n\t\tif (!itemSelector) {\n\t\t\treturn Array.from(scroller.children).filter((node): node is HTMLElement => node instanceof HTMLElement);\n\t\t}\n\n\t\treturn Array.from(scroller.querySelectorAll<HTMLElement>(itemSelector));\n\t}, [itemSelector]);\n\n\t/**\n\t * Найти \"элемент шага\" для произвольного target внутри скроллера.\n\t */\n\tconst findItemForTarget = useCallback(\n\t\t(target: HTMLElement): HTMLElement | null => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return null;\n\n\t\t\tif (itemSelector) {\n\t\t\t\tconst item = target.closest<HTMLElement>(itemSelector);\n\t\t\t\tif (item && scroller.contains(item)) return item;\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet node: HTMLElement | null = target;\n\t\t\twhile (node && node.parentElement && node.parentElement !== scroller) {\n\t\t\t\tnode = node.parentElement;\n\t\t\t}\n\n\t\t\tif (node && node.parentElement === scroller) return node;\n\t\t\treturn null;\n\t\t},\n\t\t[itemSelector]\n\t);\n\n\t/**\n\t * Обновить состояние кнопок \"назад/вперед\".\n\t * Состояние меняется только при реальном отличии, чтобы не триггерить\n\t * лишние перерисовки на каждом событии scroll.\n\t */\n\tconst updateScrollButtons = useCallback(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) {\n\t\t\tsetCanScrollPrev(false);\n\t\t\tsetCanScrollNext(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst maxScrollLeft = Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n\t\tconst current = Math.max(0, Math.min(scroller.scrollLeft, maxScrollLeft));\n\n\t\tconst nextCanScrollPrev = current > EDGE_EPSILON_PX;\n\t\tconst nextCanScrollNext = current < maxScrollLeft - EDGE_EPSILON_PX;\n\n\t\tsetCanScrollPrev((prev) => (prev === nextCanScrollPrev ? prev : nextCanScrollPrev));\n\t\tsetCanScrollNext((prev) => (prev === nextCanScrollNext ? prev : nextCanScrollNext));\n\t}, []);\n\n\t/**\n\t * Запланировать обновление кнопок в следующий animation frame.\n\t * Это снижает частоту вычислений при интенсивном scroll/resize.\n\t */\n\tconst scheduleUpdateScrollButtons = useCallback(() => {\n\t\tif (rafIdRef.current !== null) return;\n\n\t\trafIdRef.current = requestAnimationFrame(() => {\n\t\t\trafIdRef.current = null;\n\t\t\tupdateScrollButtons();\n\t\t});\n\t}, [updateScrollButtons]);\n\n\t/**\n\t * Прокрутка на N элементов (N может быть отрицательным).\n\t */\n\tconst scrollByItems = useCallback(\n\t\t(count: number) => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return;\n\n\t\t\tconst firstItem = getItems()[0];\n\t\t\tif (!firstItem) return;\n\n\t\t\tconst step = firstItem.getBoundingClientRect().width;\n\t\t\tif (!step) return;\n\n\t\t\tconst delta = Math.round(count * step);\n\t\t\tconst maxScrollLeft = Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n\t\t\tconst target = Math.max(0, Math.min(scroller.scrollLeft + delta, maxScrollLeft));\n\n\t\t\tscroller.scrollTo({\n\t\t\t\tleft: target,\n\t\t\t\tbehavior: smooth ? \"smooth\" : \"auto\"\n\t\t\t});\n\t\t},\n\t\t[getItems, smooth]\n\t);\n\n\t/**\n\t * Гарантировать полную видимость элемента в пределах viewport скроллера.\n\t */\n\tconst ensureFullyVisible = useCallback(\n\t\t(el: HTMLElement) => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return;\n\n\t\t\tconst scrollerRect = scroller.getBoundingClientRect();\n\t\t\tconst elementRect = el.getBoundingClientRect();\n\n\t\t\tconst elementLeft = elementRect.left - scrollerRect.left + scroller.scrollLeft;\n\t\t\tconst elementRight = elementLeft + elementRect.width;\n\n\t\t\tconst visibleLeft = scroller.scrollLeft;\n\t\t\tconst visibleRight = scroller.scrollLeft + scroller.clientWidth;\n\n\t\t\tif (elementLeft >= visibleLeft + EDGE_EPSILON_PX && elementRight <= visibleRight - EDGE_EPSILON_PX) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet targetScrollLeft = scroller.scrollLeft;\n\t\t\tif (elementLeft < visibleLeft) {\n\t\t\t\ttargetScrollLeft = Math.max(0, elementLeft - scrollPadding);\n\t\t\t} else if (elementRight > visibleRight) {\n\t\t\t\ttargetScrollLeft = Math.min(maxScrollLeft(scroller), elementRight - scroller.clientWidth + scrollPadding);\n\t\t\t}\n\n\t\t\tscroller.scrollTo({\n\t\t\t\tleft: Math.round(targetScrollLeft),\n\t\t\t\tbehavior: smooth ? \"smooth\" : \"auto\"\n\t\t\t});\n\t\t},\n\t\t[scrollPadding, smooth]\n\t);\n\n\tuseEffect(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return;\n\n\t\tconst handleFocusIn = (event: FocusEvent) => {\n\t\t\tconst target = event.target;\n\t\t\tif (!(target instanceof HTMLElement)) return;\n\n\t\t\tconst item = findItemForTarget(target);\n\t\t\tif (item) ensureFullyVisible(item);\n\t\t};\n\n\t\tscroller.addEventListener(\"focusin\", handleFocusIn);\n\t\treturn () => scroller.removeEventListener(\"focusin\", handleFocusIn);\n\t}, [ensureFullyVisible, findItemForTarget]);\n\n\t/**\n\t * Наблюдаем только за размером скроллера и изменением его DOM-структуры.\n\t * Это дешевле, чем подписка ResizeObserver на каждый элемент + IntersectionObserver.\n\t */\n\tuseEffect(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return;\n\n\t\tconst onScroll = () => scheduleUpdateScrollButtons();\n\t\tscroller.addEventListener(\"scroll\", onScroll, { passive: true });\n\n\t\tlet resizeObserver: ResizeObserver | null = null;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tresizeObserver = new ResizeObserver(scheduleUpdateScrollButtons);\n\t\t\tresizeObserver.observe(scroller);\n\t\t}\n\n\t\tlet mutationObserver: MutationObserver | null = null;\n\t\tif (typeof MutationObserver !== \"undefined\") {\n\t\t\tmutationObserver = new MutationObserver(scheduleUpdateScrollButtons);\n\t\t\tmutationObserver.observe(scroller, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: false\n\t\t\t});\n\t\t}\n\n\t\tscheduleUpdateScrollButtons();\n\n\t\treturn () => {\n\t\t\tscroller.removeEventListener(\"scroll\", onScroll);\n\t\t\tresizeObserver?.disconnect();\n\t\t\tmutationObserver?.disconnect();\n\n\t\t\tif (rafIdRef.current !== null) {\n\t\t\t\tcancelAnimationFrame(rafIdRef.current);\n\t\t\t\trafIdRef.current = null;\n\t\t\t}\n\t\t};\n\t}, [scheduleUpdateScrollButtons]);\n\n\t/**\n\t * При изменении children просим пересчитать видимость кнопок.\n\t */\n\tuseEffect(() => {\n\t\tscheduleUpdateScrollButtons();\n\t}, [children, scheduleUpdateScrollButtons]);\n\n\tconst handlePrev = () => scrollByItems(-1);\n\tconst handleNext = () => scrollByItems(1);\n\n\t/**\n\t * Клавиатурная доступность: стрелки влево/вправо двигают на один шаг.\n\t */\n\tconst onWrapperKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (e.key === \"ArrowLeft\") {\n\t\t\te.preventDefault();\n\t\t\thandlePrev();\n\t\t} else if (e.key === \"ArrowRight\") {\n\t\t\te.preventDefault();\n\t\t\thandleNext();\n\t\t}\n\t};\n\n\tconst hasScroll = canScrollPrev || canScrollNext;\n\n\treturn (\n\t\t<div className={cn(styles.oneStepScroller, className)} style={{ position: \"relative\" }}>\n\t\t\t{hasScroll && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-label=\"Прокрутить шаг влево\"\n\t\t\t\t\tclassName={styles.ossButton}\n\t\t\t\t\tonClick={handlePrev}\n\t\t\t\t\tdisabled={!canScrollPrev}>\n\t\t\t\t\t<ChevronLeftIcon />\n\t\t\t\t</button>\n\t\t\t)}\n\n\t\t\t<div className={styles.ossViewport} onKeyDown={onWrapperKeyDown} role=\"group\" aria-label=\"Элементы прокрутки\">\n\t\t\t\t<div className={styles.ossScroller} ref={scrollerRef} aria-live=\"polite\">\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{hasScroll && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-label=\"Прокрутить шаг вправо\"\n\t\t\t\t\tclassName={styles.ossButton}\n\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\tdisabled={!canScrollNext}>\n\t\t\t\t\t<ChevronRightIcon />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { forwardRef, PropsWithChildren } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\ninterface ScrollableProps extends PropsWithChildren {\n\tclassName?: string;\n\theight?: string | number;\n\tstable?: boolean;\n\toverscroll?: boolean;\n}\n\nexport const Scrollable = forwardRef<HTMLDivElement, ScrollableProps>(({ children, height, stable, overscroll, className }, ref) => {\n\treturn (\n\t\t<div ref={ref} className={cn(\"scrollable\", stable && \"stable\", overscroll && \"overscroll\", className)} style={{ height }}>\n\t\t\t{children}\n\t\t</div>\n\t);\n});\n\ninterface ScrollableBlockProps extends ScrollableProps {\n\tblockClassName?: string;\n}\n\nexport const ScrollableBlock = forwardRef<HTMLDivElement, ScrollableBlockProps>(({ blockClassName, ...props }, ref) => {\n\treturn (\n\t\t<div className={cn(blockClassName, \"overflowHidden w100 h100\")}>\n\t\t\t<Scrollable ref={ref} {...props} />\n\t\t</div>\n\t);\n});\n",".stateWrapper {\n\ttext-decoration: none;\n\tcolor: inherit;\n\tdisplay: block;\n\n\t// border: var(--border-width) solid var(--state-border-color, transparent);\n\tborder-left-style: solid;\n\tborder-left-color: var(--state-border-color, transparent);\n\tborder-left-width: 0.0625em; // 1px\n\tpadding-left: 0.25em; // 4px + 1px border\n\n\t&.status {\n\t\tborder-left-width: 0.3125em; // 5px\n\t\tpadding-left: 0;\n\n\t\t&.information {\n\t\t\tborder-left-color: var(--status-info-fill);\n\t\t}\n\n\t\t&.success {\n\t\t\tborder-left-color: var(--status-success-fill);\n\t\t}\n\n\t\t&.warning {\n\t\t\tborder-left-color: var(--status-warning-fill);\n\t\t}\n\n\t\t&.error {\n\t\t\tborder-left-color: var(--status-error-fill);\n\t\t}\n\t}\n}\n\n.state {\n\t&.information {\n\t\tcolor: var(--status-info-text);\n\n\t\tfill: var(--status-info-fill);\n\t\tstroke: var(--status-info-on-fill);\n\t}\n\n\t&.success {\n\t\tcolor: var(--status-success-text);\n\n\t\tfill: var(--status-success-fill);\n\t\tstroke: var(--status-success-on-fill);\n\t}\n\n\t&.warning {\n\t\tcolor: var(--status-warning-text);\n\n\t\tfill: var(--status-warning-fill);\n\t\tstroke: var(--status-warning-on-fill);\n\t\tstroke-width: 2px;\n\t}\n\n\t&.error {\n\t\tcolor: var(--status-error-text);\n\n\t\tfill: var(--status-error-fill);\n\t\tstroke: var(--status-error-on-fill);\n\t}\n}\n","import React from \"react\";\n\nimport { State } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CircleAlertIcon, CircleCheckIcon, CircleXIcon, InfoIcon } from \"lucide-react\";\n\nimport styles from \"./State.module.scss\";\n\ninterface StateIconProps {\n\tstate: State;\n\ttext: string;\n\tclassName?: string;\n}\n\nexport const StateIcon: React.FC<StateIconProps> = ({ state = \"none\", text, className }) => {\n\tconst renderIcon = () => {\n\t\tswitch (state) {\n\t\t\tcase \"error\":\n\t\t\t\treturn <ErrorIcon />;\n\t\t\tcase \"warning\":\n\t\t\t\treturn <WarningIcon />;\n\t\t\tcase \"success\":\n\t\t\t\treturn <SuccessIcon />;\n\t\t\tcase \"information\":\n\t\t\t\treturn <InformationIcon />;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={cn(\"flexCenter gapSm\", className)}>\n\t\t\t{renderIcon()}\n\t\t\t{text}\n\t\t</div>\n\t);\n};\n\ninterface RenderStateIconProps {\n\tstate?: State;\n}\n\nexport const RenderStateIcon: React.FC<RenderStateIconProps> = ({ state }) => {\n\tswitch (state) {\n\t\tcase \"error\":\n\t\t\treturn <ErrorIcon />;\n\t\tcase \"warning\":\n\t\t\treturn <WarningIcon />;\n\t\tcase \"success\":\n\t\t\treturn <SuccessIcon />;\n\t\tcase \"information\":\n\t\t\treturn <InformationIcon />;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n\nexport const ErrorIcon = () => {\n\treturn <CircleXIcon className={cn(styles.state, styles.error)} />;\n};\nexport const WarningIcon = () => {\n\treturn <CircleAlertIcon className={cn(styles.state, styles.warning)} />;\n};\nexport const SuccessIcon = () => {\n\treturn <CircleCheckIcon className={cn(styles.state, styles.success)} />;\n};\nexport const InformationIcon = () => {\n\treturn <InfoIcon className={cn(styles.state, styles.information)} />;\n};\n","import React from \"react\";\n\nimport { State } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { PolymorphicComponent, PolymorphicComponentBaseProps } from \"../polymorphic\";\n\nimport styles from \"./State.module.scss\";\n\ntype StateWrapperOwnProps<E extends React.ElementType = React.ElementType> = PolymorphicComponentBaseProps<E> & {\n\tstate?: State;\n\tclassName?: string;\n};\n\ntype StateWrapperProps<E extends React.ElementType> = StateWrapperOwnProps<E> &\n\tOmit<React.ComponentPropsWithRef<E>, keyof StateWrapperOwnProps>;\n\nexport function StateWrapper<E extends React.ElementType>({ as, state, className, ...props }: StateWrapperProps<E>) {\n\tconst status = state?.toLowerCase() ?? \"none\";\n\tconst statusClass = styles[status as keyof typeof styles];\n\tconst isStatused = status && status !== \"none\";\n\n\tconst Component = as || \"div\";\n\n\treturn (\n\t\t<PolymorphicComponent\n\t\t\tas={Component as React.ElementType}\n\t\t\tclassName={cn(styles.stateWrapper, isStatused && styles.status, statusClass, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { i as e } from "./Flex-DbBdq336.js";
2
- import { r as t } from "./Grid-ByIIytjh.js";
3
- import { c as n } from "./misc-DrmMj8GO.js";
4
- import { t as r } from "./Button-BZ_b-Kin.js";
5
- import { X as i } from "lucide-react";
6
- import { cn as a } from "@ryuzaki13/react-foundation-lib/utils";
7
- import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
8
- import { Children as l, createContext as u, useCallback as d, useContext as f, useEffect as p, useEffectEvent as m, useId as h, useRef as g, useState as _ } from "react";
1
+ import { i as e } from "./Flex-DUYSL5TE.js";
2
+ import { t } from "./Button-CCWuggdA.js";
3
+ import { r as n } from "./Grid-ByIIytjh.js";
4
+ import { c as r } from "./misc-DoqZBMof.js";
5
+ import { Children as i, createContext as a, useCallback as o, useContext as s, useEffect as c, useEffectEvent as l, useId as u, useRef as d, useState as f } from "react";
6
+ import { cn as p } from "@ryuzaki13/react-foundation-lib/utils";
7
+ import { X as m } from "lucide-react";
8
+ import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
9
9
  import { getOrCreatePortalRoot as v, useEscapeDismiss as y, useFocusTrap as b } from "@ryuzaki13/react-foundation-lib/dom";
10
10
  import { createPortal as x } from "react-dom";
11
11
  var S = {
@@ -20,27 +20,27 @@ var S = {
20
20
  body: "NDgdMi",
21
21
  headerText: "JDlse5",
22
22
  headerButton: "FaDKSt"
23
- }, C = u({
23
+ }, C = a({
24
24
  modals: [],
25
25
  openModal: () => {},
26
26
  closeModal: () => {},
27
27
  isTopModal: () => !1
28
- }), w = () => f(C), T = ({ children: e, className: t }) => /* @__PURE__ */ s("div", {
29
- className: a("surface2 paddingMd borderBottom", t),
28
+ }), w = () => s(C), T = ({ children: e, className: t }) => /* @__PURE__ */ g("div", {
29
+ className: p("surface2 paddingMd borderBottom", t),
30
30
  children: e
31
31
  });
32
32
  T.displayName = "Modal.Toolbar";
33
- var E = ({ children: e, className: t, scrollable: r }) => /* @__PURE__ */ s("div", {
34
- className: a("paddingMd h100 overflowHidden", t),
35
- children: r ? /* @__PURE__ */ s(n, {
33
+ var E = ({ children: e, className: t, scrollable: n }) => /* @__PURE__ */ g("div", {
34
+ className: p("paddingMd h100 overflowHidden", t),
35
+ children: n ? /* @__PURE__ */ g(r, {
36
36
  className: "h100",
37
37
  children: e
38
38
  }) : e
39
39
  });
40
40
  E.displayName = "Modal.Content";
41
- var D = ({ children: t, className: n }) => /* @__PURE__ */ s("div", {
42
- className: a("surface2 borderTop paddingMd", n),
43
- children: /* @__PURE__ */ s(e, {
41
+ var D = ({ children: t, className: n }) => /* @__PURE__ */ g("div", {
42
+ className: p("surface2 borderTop paddingMd", n),
43
+ children: /* @__PURE__ */ g(e, {
44
44
  gap: "sm",
45
45
  align: "center",
46
46
  justify: "end",
@@ -48,13 +48,13 @@ var D = ({ children: t, className: n }) => /* @__PURE__ */ s("div", {
48
48
  })
49
49
  });
50
50
  D.displayName = "Modal.Footer";
51
- var O = ({ isOpen: e, title: n, size: u = "sm", height: d, onClose: f, children: g }) => {
52
- let C = h(), O = h(), { modals: k, openModal: A, closeModal: j, isTopModal: M } = w(), [N, P] = _(!1), F = m(() => P(!0)), I = m(() => P(!1)), L = e && (k.length === 0 || M(C)), R = b(e || !1);
51
+ var O = ({ isOpen: e, title: r, size: a = "sm", height: o, onClose: s, children: d }) => {
52
+ let C = u(), O = u(), { modals: k, openModal: A, closeModal: j, isTopModal: M } = w(), [N, P] = f(!1), F = l(() => P(!0)), I = l(() => P(!1)), L = e && (k.length === 0 || M(C)), R = b(e || !1);
53
53
  if (y({
54
54
  active: L || !1,
55
- onDismiss: f,
55
+ onDismiss: s,
56
56
  containerRef: R
57
- }), p(() => (e && (A(C), F()), () => {
57
+ }), c(() => (e && (A(C), F()), () => {
58
58
  j(C), I();
59
59
  }), [
60
60
  j,
@@ -64,7 +64,7 @@ var O = ({ isOpen: e, title: n, size: u = "sm", height: d, onClose: f, children:
64
64
  ]), !N) return null;
65
65
  let z = v("modal-root");
66
66
  if (!z) return null;
67
- let B = null, V = null, H = null, U = l.toArray(g);
67
+ let B = null, V = null, H = null, U = i.toArray(d);
68
68
  for (let e of U) switch (e.type.displayName) {
69
69
  case T.displayName:
70
70
  if (B) throw Error("Modal: duplicate <Toolbar> found");
@@ -79,29 +79,29 @@ var O = ({ isOpen: e, title: n, size: u = "sm", height: d, onClose: f, children:
79
79
  V = e;
80
80
  break;
81
81
  }
82
- return x(/* @__PURE__ */ s(o, { children: /* @__PURE__ */ c("div", {
82
+ return x(/* @__PURE__ */ g(h, { children: /* @__PURE__ */ _("div", {
83
83
  ref: R,
84
- className: a(S.modal, S[u]),
85
- style: { height: d },
84
+ className: p(S.modal, S[a]),
85
+ style: { height: o },
86
86
  role: "dialog",
87
87
  "aria-modal": "true",
88
88
  "aria-labelledby": O,
89
89
  "aria-describedby": `${O}-content`,
90
- children: [/* @__PURE__ */ c("div", {
91
- className: a(S.header, B ? "" : "borderBottom"),
92
- children: [/* @__PURE__ */ s("h3", {
90
+ children: [/* @__PURE__ */ _("div", {
91
+ className: p(S.header, B ? "" : "borderBottom"),
92
+ children: [/* @__PURE__ */ g("h3", {
93
93
  className: S.headerText,
94
94
  id: O,
95
- children: n
96
- }), /* @__PURE__ */ s(r, {
97
- icon: /* @__PURE__ */ s(i, {}),
95
+ children: r
96
+ }), /* @__PURE__ */ g(t, {
97
+ icon: /* @__PURE__ */ g(m, {}),
98
98
  className: S.headerButton,
99
99
  variant: "ghost",
100
100
  autoFocus: !0,
101
101
  "aria-label": "Закрыть модальное окно",
102
- onClick: f
102
+ onClick: s
103
103
  })]
104
- }), /* @__PURE__ */ c(t, {
104
+ }), /* @__PURE__ */ _(n, {
105
105
  id: `${O}-content`,
106
106
  templateRows: `${B ? "auto" : ""} 1fr ${H ? "auto" : ""}`.trim(),
107
107
  className: S.body,
@@ -116,12 +116,12 @@ var O = ({ isOpen: e, title: n, size: u = "sm", height: d, onClose: f, children:
116
116
  //#endregion
117
117
  //#region src/modal/ModalManagerProvider.tsx
118
118
  function k({ children: e }) {
119
- let [t, n] = _([]), r = g(0), i = d((e) => {
119
+ let [t, n] = f([]), r = d(0), i = o((e) => {
120
120
  n((t) => [...t, e]);
121
- }, []), a = d((e) => {
121
+ }, []), a = o((e) => {
122
122
  n((t) => t.filter((t) => t !== e));
123
- }, []), o = d((e) => t[t.length - 1] === e, [t]);
124
- return p(() => {
123
+ }, []), s = o((e) => t[t.length - 1] === e, [t]);
124
+ return c(() => {
125
125
  let e = r.current === 0, n = t.length === 0;
126
126
  if (e && t.length > 0) {
127
127
  let e = window.scrollY, n = document.querySelector("#app-root");
@@ -137,12 +137,12 @@ function k({ children: e }) {
137
137
  });
138
138
  }
139
139
  r.current = t.length;
140
- }, [t.length]), /* @__PURE__ */ s(C.Provider, {
140
+ }, [t.length]), /* @__PURE__ */ g(C.Provider, {
141
141
  value: {
142
142
  modals: t,
143
143
  openModal: i,
144
144
  closeModal: a,
145
- isTopModal: o
145
+ isTopModal: s
146
146
  },
147
147
  children: e
148
148
  });
@@ -150,4 +150,4 @@ function k({ children: e }) {
150
150
  //#endregion
151
151
  export { T as a, D as i, O as n, C as o, E as r, w as s, k as t };
152
152
 
153
- //# sourceMappingURL=modal-DqVcZws_.js.map
153
+ //# sourceMappingURL=modal-B3HY3laL.js.map