@ryuzaki13/react-foundation-ui 1.8.18 → 1.8.19

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 (292) hide show
  1. package/dist/picker/model/usePickerFloatingListbox.d.ts +1 -1
  2. package/package.json +3 -3
  3. package/storybook-static/assets/{Badge-BIHyYCo7.js → Badge-CAM2jkFm.js} +6 -6
  4. package/storybook-static/assets/{Badge.stories-DLTrI-x_.js → Badge.stories-DRjjmR32.js} +1 -1
  5. package/storybook-static/assets/{BadgeList-CDdRxEFa.js → BadgeList-D4Swhp3V.js} +1 -1
  6. package/storybook-static/assets/{Button-XTBI9blK.js → Button-1UZNz2k4.js} +1 -1
  7. package/storybook-static/assets/{Button-Clgno5I9.js → Button-4YB5_DwT.js} +6 -6
  8. package/storybook-static/assets/{Button.stories-B-0_zqxk.js → Button.stories-B0sdwFqZ.js} +1 -1
  9. package/storybook-static/assets/{CalendarView-5yfJ6Sx-.js → CalendarView-sSyZ5jCR.js} +1 -1
  10. package/storybook-static/assets/{CheckBox-DZh7cCZZ.js → CheckBox-BdGaGy4_.js} +2 -2
  11. package/storybook-static/assets/{CheckBox-BNpn-ZBB.js → CheckBox-Cpt5rjSg.js} +1 -1
  12. package/storybook-static/assets/{CheckBox.stories--dSzC2Mf.js → CheckBox.stories-6d6-rkNo.js} +1 -1
  13. package/storybook-static/assets/Color-6AOWCN3U-sKBB2RBT.js +1 -0
  14. package/storybook-static/assets/{ContextMenu-CTrTO0H7.js → ContextMenu-B155_m2F.js} +1 -1
  15. package/storybook-static/assets/{ContextMenu-24LNOr91.js → ContextMenu-BLnt5p2W.js} +2 -2
  16. package/storybook-static/assets/{ContextMenu.stories-Cbq6B29u.js → ContextMenu.stories-B8sv4v3Q.js} +1 -1
  17. package/storybook-static/assets/{CustomOptionButton-BHA-6inc.js → CustomOptionButton-hKfsqWNH.js} +1 -1
  18. package/storybook-static/assets/{DateInput-Bmwgwx_r.js → DateInput-DvIl6s-f.js} +2 -2
  19. package/storybook-static/assets/{DateInput-Ceqy8_hm.js → DateInput-XvSKmvqi.js} +1 -1
  20. package/storybook-static/assets/{DateInput.stories-C0oDEW0V.js → DateInput.stories-SU41oukh.js} +1 -1
  21. package/storybook-static/assets/{DateRangePresetSelect-DrbWZdO7.js → DateRangePresetSelect-BCLZcXdv.js} +2 -2
  22. package/storybook-static/assets/{DateRangePresetSelect-EUO5ju87.js → DateRangePresetSelect-tz-3m9UI.js} +1 -1
  23. package/storybook-static/assets/DateRangePresetSelect.stories-D8zuTlHo.js +19 -0
  24. package/storybook-static/assets/{Detail-BdMA8W8a.js → Detail-Ct95dA1k.js} +2 -2
  25. package/storybook-static/assets/{Detail.stories-kYjF0OE8.js → Detail.stories-Chedt7EX.js} +1 -1
  26. package/storybook-static/assets/{Dialog-B__C03-Z.js → Dialog-BX3QZOnt.js} +1 -1
  27. package/storybook-static/assets/{Dialog-DGlxegJa.js → Dialog-C7Duw0PA.js} +2 -2
  28. package/storybook-static/assets/Dialog.stories-J0w0R0Db.js +22 -0
  29. package/storybook-static/assets/{Disclosure-BXUWkiag.js → Disclosure-BzlV54RK.js} +2 -2
  30. package/storybook-static/assets/Disclosure.stories-z7gnOr5h.js +23 -0
  31. package/storybook-static/assets/{DisclosureGroup-C57FHp13.js → DisclosureGroup-c179TOi5.js} +1 -1
  32. package/storybook-static/assets/{DocsRenderer-JROSPFPF-CiLWX8JT.js → DocsRenderer-JROSPFPF-Ba9N3QAD.js} +1 -1
  33. package/storybook-static/assets/{DropZone-DCGBDcam.js → DropZone-D5X0oV8O.js} +1 -1
  34. package/storybook-static/assets/{DropZone-BPOCc8un.js → DropZone-vxUU2p-k.js} +2 -2
  35. package/storybook-static/assets/DropZone.stories-iNXgESGM.js +26 -0
  36. package/storybook-static/assets/{DropdownMenu-DDHBuZt5.js → DropdownMenu-CJlpP3HB.js} +1 -1
  37. package/storybook-static/assets/{ExpandableActionPanel-mmlDn8ts.js → ExpandableActionPanel-CmkEByID.js} +1 -1
  38. package/storybook-static/assets/ExpandableActionPanel.stories-DmRLaVxn.js +9 -0
  39. package/storybook-static/assets/{Flex-DHMDn1uW.js → Flex-tVAYZ-nU.js} +2 -2
  40. package/storybook-static/assets/{Flex.stories-BgYOys3T.js → Flex.stories-CVYDcbvw.js} +1 -1
  41. package/storybook-static/assets/{FloatingPopover-BL_nJJrL.js → FloatingPopover-DMTLPzR3.js} +1 -1
  42. package/storybook-static/assets/{FormattedTableCell-Od6SSoxO.js → FormattedTableCell-DP6-D86D.js} +1 -1
  43. package/storybook-static/assets/{Grid-CS-mSNKX.js → Grid-Vm-amT-a.js} +2 -2
  44. package/storybook-static/assets/{Grid.stories-DWCKacQB.js → Grid.stories-B0beH9CK.js} +1 -1
  45. package/storybook-static/assets/ImageCropper.stories-Dt-IA4EB.js +131 -0
  46. package/storybook-static/assets/{ImageRenderer-jDryL3Z9.js → ImageRenderer-DudkQ-3G.js} +1 -1
  47. package/storybook-static/assets/ImageRenderer.stories-CNeSiXkj.js +34 -0
  48. package/storybook-static/assets/ImageView.stories-DMtpy--X.js +14 -0
  49. package/storybook-static/assets/{ImageViewer.stories-CKUiWvv7.js → ImageViewer.stories-BkoV0li4.js} +3 -3
  50. package/storybook-static/assets/{ImageViewerRuntime-DUjkq3km.js → ImageViewerRuntime-BLgQCsSL.js} +1 -1
  51. package/storybook-static/assets/{Input-C5eMHeOp.js → Input-MPCFEMQm.js} +2 -2
  52. package/storybook-static/assets/{Input-Q95tdikw.js → Input-WhTMStKL.js} +1 -1
  53. package/storybook-static/assets/Input.stories-B50KKSiz.js +52 -0
  54. package/storybook-static/assets/{InputDateTime-D8iFVC4N.js → InputDateTime-1zTFbNEF.js} +2 -2
  55. package/storybook-static/assets/{InputDateTime.stories-Cdz1C1X5.js → InputDateTime.stories-B7W4BkU6.js} +1 -1
  56. package/storybook-static/assets/{InputFile-CEMWMZ8W.js → InputFile-B3QB0SLD.js} +1 -1
  57. package/storybook-static/assets/{InputFile-CVgdFBc9.js → InputFile-DYHuD6B8.js} +2 -2
  58. package/storybook-static/assets/InputFile.stories-B-hrCtm_.js +27 -0
  59. package/storybook-static/assets/{InputFiles-AtxulUya.js → InputFiles-CPPAJxgC.js} +1 -1
  60. package/storybook-static/assets/{InputFiles-BWh55c4D.js → InputFiles-Dpa2BiyZ.js} +2 -2
  61. package/storybook-static/assets/InputFiles.stories-1ocz2wNw.js +26 -0
  62. package/storybook-static/assets/{InputFilesList-Dx0Dhms2.js → InputFilesList-D2Ro-1Hm.js} +1 -1
  63. package/storybook-static/assets/{InputImage-DKCC82SZ.js → InputImage-BDC2lyVo.js} +1 -1
  64. package/storybook-static/assets/{InputImage-wBNZRvrJ.js → InputImage-DPmkvGcl.js} +2 -2
  65. package/storybook-static/assets/InputImage.stories-D3hWZBtn.js +56 -0
  66. package/storybook-static/assets/{InteractiveComponents-CHTFQ4qL.js → InteractiveComponents-Djz3CtkU.js} +1 -1
  67. package/storybook-static/assets/{InteractiveComponents.stories-DJxkbHUR.js → InteractiveComponents.stories-CJ2VWPLD.js} +1 -1
  68. package/storybook-static/assets/{LayoutPicker-Dv5O_Hy0.js → LayoutPicker-BFShZhhi.js} +1 -1
  69. package/storybook-static/assets/{LayoutPicker-D887Y2XB.js → LayoutPicker-CMMEs83d.js} +3 -3
  70. package/storybook-static/assets/{LayoutPicker.stories-DbN3i5QL.js → LayoutPicker.stories-Cdb_UnBI.js} +1 -1
  71. package/storybook-static/assets/{Listbox-Cnzu7mYT.js → Listbox-B7nZijLJ.js} +2 -2
  72. package/storybook-static/assets/{Listbox-C4dx1h82.js → Listbox-DM1vuGVD.js} +1 -1
  73. package/storybook-static/assets/{Listbox.stories-BO1Df9Mq.js → Listbox.stories-DTs-ANe9.js} +1 -1
  74. package/storybook-static/assets/{Modal-CMacWyay.js → Modal-D0dkB7lh.js} +3 -3
  75. package/storybook-static/assets/{Modal.stories-DMrYaonL.js → Modal.stories-BOh10Fkn.js} +1 -1
  76. package/storybook-static/assets/{ModalManagerProvider-NbdotfpM.js → ModalManagerProvider-CEEmviJU.js} +1 -1
  77. package/storybook-static/assets/{MultiSelect-DEPuEcGb.js → MultiSelect-CbrRNOEZ.js} +2 -2
  78. package/storybook-static/assets/{MultiSelect-N4vTBX-X.js → MultiSelect-oJhMsKuC.js} +1 -1
  79. package/storybook-static/assets/MultiSelect.stories-mLWhd-au.js +55 -0
  80. package/storybook-static/assets/{NoData-BdrsNRw1.js → NoData-C7Kj62Zk.js} +1 -1
  81. package/storybook-static/assets/{NotificationsHost-BmcIZZNC.js → NotificationsHost-D_i7EsJA.js} +3 -3
  82. package/storybook-static/assets/{NotificationsHost.stories-Bf-a-dC3.js → NotificationsHost.stories-5GPO8lQl.js} +2 -2
  83. package/storybook-static/assets/{ODataMultiSelect-DVVDe1Yr.js → ODataMultiSelect-B6hKhD2q.js} +2 -2
  84. package/storybook-static/assets/{ODataMultiSelect.stories-DQDXXq_9.js → ODataMultiSelect.stories-BO7WaR9I.js} +2 -2
  85. package/storybook-static/assets/{ODataSelect-B88g3t3l.js → ODataSelect-BW8S-U91.js} +2 -2
  86. package/storybook-static/assets/{ODataSelect.stories-BPWp8xtb.js → ODataSelect.stories-rVZ8RYIu.js} +2 -2
  87. package/storybook-static/assets/{ODataTreeMultiSelect-DN0hWqto.js → ODataTreeMultiSelect-BhvUurca.js} +1 -1
  88. package/storybook-static/assets/{ODataTreeMultiSelect.stories-BDDEO9n2.js → ODataTreeMultiSelect.stories-CM8wiVsI.js} +2 -2
  89. package/storybook-static/assets/{ODataTreeSelect-BpuPkpt_.js → ODataTreeSelect-B96PJWcL.js} +1 -1
  90. package/storybook-static/assets/{ODataTreeSelect.stories-Rgosfapi.js → ODataTreeSelect.stories-HHLJZrD8.js} +2 -2
  91. package/storybook-static/assets/{OneStepScroller-B8wmmQwf.js → OneStepScroller-DzrN3WVZ.js} +1 -1
  92. package/storybook-static/assets/{Option-Bdu68XEe.js → Option-BwWLsS-Q.js} +1 -1
  93. package/storybook-static/assets/{OptionButton-D0afktaf.js → OptionButton-CdYqQAwC.js} +1 -1
  94. package/storybook-static/assets/{PeriodSelect-D_NZ5ghQ.js → PeriodSelect-CJejEx-e.js} +1 -1
  95. package/storybook-static/assets/{PeriodSelect-C7DVNvsY.js → PeriodSelect-_GvgXTKk.js} +1 -1
  96. package/storybook-static/assets/PeriodSelect.stories-CGNmEIBG.js +50 -0
  97. package/storybook-static/assets/{PickerTriggerActions-ZNVb9eeZ.js → PickerTriggerActions-apA_Ruie.js} +1 -1
  98. package/storybook-static/assets/{Popover-CCGDNoKF.js → Popover-BYGM8Bjj.js} +2 -2
  99. package/storybook-static/assets/{Popover-CewYrQZr.js → Popover-CDeopGLJ.js} +1 -1
  100. package/storybook-static/assets/{Popover.stories-COIDcy4l.js → Popover.stories-DTeZeyAB.js} +1 -1
  101. package/storybook-static/assets/{PresetRangeDateInput-DroAaDSa.js → PresetRangeDateInput-BdFjz9Ed.js} +2 -2
  102. package/storybook-static/assets/{PresetRangeDateInput-DclYoHcQ.js → PresetRangeDateInput-D3FBpZqV.js} +1 -1
  103. package/storybook-static/assets/PresetRangeDateInput.stories-B2HCz7Tw.js +3 -0
  104. package/storybook-static/assets/{PresetSelect-DCGdwz-H.js → PresetSelect-BgzVe_NB.js} +1 -1
  105. package/storybook-static/assets/{README-C6mK2jiz.js → README-1tFUbU_N.js} +1 -1
  106. package/storybook-static/assets/{README-C0tHxk9e.js → README-9flk-o3B.js} +1 -1
  107. package/storybook-static/assets/{README-DK-nosD8.js → README-B5QVQmyU.js} +1 -1
  108. package/storybook-static/assets/{README-j6FF9vf5.js → README-B8dyxeZz.js} +9 -12
  109. package/storybook-static/assets/{README-QnKC46FO.js → README-BJEbnNWP.js} +5 -9
  110. package/storybook-static/assets/{README-CMRfMvBh.js → README-BRnZl0of.js} +4 -4
  111. package/storybook-static/assets/{README-B8PHFNI6.js → README-BSrGqFaw.js} +1 -1
  112. package/storybook-static/assets/{README-DWrWXc67.js → README-BTp9nnLv.js} +3 -3
  113. package/storybook-static/assets/{README-DFDO19TR.js → README-BUkpxX-E.js} +4 -4
  114. package/storybook-static/assets/{README-j4oj7GSR.js → README-Bht25HeR.js} +1 -1
  115. package/storybook-static/assets/{README-SM_eIjlq.js → README-Br9h1slQ.js} +4 -4
  116. package/storybook-static/assets/{README-Gw_kdXei.js → README-BtPehMeb.js} +4 -8
  117. package/storybook-static/assets/{README-BqBKX_xQ.js → README-Bv9s5Hlv.js} +4 -7
  118. package/storybook-static/assets/{README-BaupBcvr.js → README-C2rr_CMA.js} +1 -1
  119. package/storybook-static/assets/{README-B4FGWSHR.js → README-C8K3rQpu.js} +4 -4
  120. package/storybook-static/assets/{README-Bq8Gw9ut.js → README-CBhnA3Kz.js} +3 -3
  121. package/storybook-static/assets/{README-BBDVhq-F.js → README-C_uOxFAl.js} +3 -3
  122. package/storybook-static/assets/{README-DQ3UG1-2.js → README-CeuRBAf6.js} +1 -1
  123. package/storybook-static/assets/{README-B5TiIjbQ.js → README-Chc7eGGc.js} +1 -1
  124. package/storybook-static/assets/{README-BLXxOqWU.js → README-Cl2jxLna.js} +5 -5
  125. package/storybook-static/assets/{README-BoojQHna.js → README-CuYqzgi0.js} +1 -1
  126. package/storybook-static/assets/{README-BDEEI-me.js → README-Cuj7DFn9.js} +5 -8
  127. package/storybook-static/assets/{README-Db-VD9A-.js → README-CvrH-776.js} +1 -1
  128. package/storybook-static/assets/{README-CDO4U2L-.js → README-CxsAd0Iq.js} +1 -1
  129. package/storybook-static/assets/{README-DXAnOakM.js → README-DGTIYOSH.js} +3 -6
  130. package/storybook-static/assets/{README-C9V17f1i.js → README-DHJwCm5f.js} +14 -14
  131. package/storybook-static/assets/{README-eKZfcYEw.js → README-DLBEUtiL.js} +1 -1
  132. package/storybook-static/assets/{README-CVydkudU.js → README-DNDYDuQ4.js} +4 -8
  133. package/storybook-static/assets/{README-UY3fsLu_.js → README-DQSMXoRa.js} +3 -5
  134. package/storybook-static/assets/{README-B0LFAdG7.js → README-DSsqg62x.js} +4 -8
  135. package/storybook-static/assets/{README-CG7cgejD.js → README-DYKVnI5h.js} +4 -8
  136. package/storybook-static/assets/{README-Bemrp1iw.js → README-DZmDqmSd.js} +12 -12
  137. package/storybook-static/assets/{README-CbQE6RqS.js → README-DcJ05Rnh.js} +1 -1
  138. package/storybook-static/assets/{README-jnMsm42G.js → README-Dju2IqV_.js} +1 -1
  139. package/storybook-static/assets/{README-MUkRRO8C.js → README-DldTDL_-.js} +1 -1
  140. package/storybook-static/assets/{README-BTM8wY-Q.js → README-Dq0P8Ach.js} +3 -7
  141. package/storybook-static/assets/{README-BnvGfIB_.js → README-GstpCBI6.js} +1 -1
  142. package/storybook-static/assets/{README-Brb_uBB0.js → README-HhDoM8Gq.js} +2 -2
  143. package/storybook-static/assets/{README-BQng9oML.js → README-I0-Ly9-N.js} +4 -8
  144. package/storybook-static/assets/{README-DXgQjmDb.js → README-NwNz8xro.js} +1 -5
  145. package/storybook-static/assets/{README-CGv6MRmX.js → README-OGP9mnSD.js} +4 -4
  146. package/storybook-static/assets/{README-B2pks9-S.js → README-Se6780nc.js} +1 -1
  147. package/storybook-static/assets/{README-DK77wEHj.js → README-VwNH_K60.js} +1 -1
  148. package/storybook-static/assets/{README-Dq6K08x4.js → README-_aVIdcMd.js} +4 -4
  149. package/storybook-static/assets/{README-HKNlRLs4.js → README-bhX-QiSo.js} +3 -3
  150. package/storybook-static/assets/{README-TpwnHOuM.js → README-eqGIA1ao.js} +4 -8
  151. package/storybook-static/assets/{README-Cv6X1gyB.js → README-fLJ5n8A8.js} +6 -9
  152. package/storybook-static/assets/{README-B6bmU7Tq.js → README-g3WhSoX3.js} +3 -3
  153. package/storybook-static/assets/{README-CRdPVRby.js → README-m0xvi4o1.js} +1 -1
  154. package/storybook-static/assets/{README-CIS29z6p.js → README-mXAkjKF0.js} +1 -1
  155. package/storybook-static/assets/{README-BZh0P4dJ.js → README-n3wmMhlD.js} +1 -4
  156. package/storybook-static/assets/{README-BqpsuZii.js → README-z2leBvSk.js} +3 -3
  157. package/storybook-static/assets/{RadioButton-CioheQT6.js → RadioButton-DqEZ3dh2.js} +2 -2
  158. package/storybook-static/assets/{RadioButton-CN-1Bmu-.js → RadioButton-JEqzXOJN.js} +1 -1
  159. package/storybook-static/assets/RadioButton.stories-CzIM9dix.js +32 -0
  160. package/storybook-static/assets/{RadioGroup-CJzzJ3Fs.js → RadioGroup-COIsrK0r.js} +2 -2
  161. package/storybook-static/assets/{RadioGroup-CTZXoIcq.js → RadioGroup-D4EHkLTb.js} +1 -1
  162. package/storybook-static/assets/{RadioGroup.stories-C7N9yLcN.js → RadioGroup.stories-BdAv58pJ.js} +1 -1
  163. package/storybook-static/assets/{Scrollable-BOTJbzkH.js → Scrollable-noVIQseX.js} +1 -1
  164. package/storybook-static/assets/{Select-D2yqrKAE.js → Select-9v7A23y8.js} +2 -2
  165. package/storybook-static/assets/{Select-CNAFGsHq.js → Select-DgPcfbEp.js} +1 -1
  166. package/storybook-static/assets/Select.stories-yIRnlqrF.js +69 -0
  167. package/storybook-static/assets/{SerializableSelect-BZBYLnHq.js → SerializableSelect-CnPwQtgN.js} +2 -2
  168. package/storybook-static/assets/{SerializableSelect.stories-PIYq8I5b.js → SerializableSelect.stories-9QxpRX-K.js} +2 -2
  169. package/storybook-static/assets/{SingleDateTimeInput-B6M2oHtl.js → SingleDateTimeInput-CxKz7tUP.js} +2 -2
  170. package/storybook-static/assets/{SingleDateTimeInput-D2cDr1L5.js → SingleDateTimeInput-DBrfgnnn.js} +1 -1
  171. package/storybook-static/assets/{SingleDateTimeInput.stories-DqswDqo4.js → SingleDateTimeInput.stories-lOLyuR7U.js} +1 -1
  172. package/storybook-static/assets/{Slider-Cu_mMfmP.js → Slider-Cn1YHOVt.js} +1 -1
  173. package/storybook-static/assets/{Slider-C0fjZ3TE.js → Slider-KC0hs5nY.js} +3 -3
  174. package/storybook-static/assets/{Slider.stories-BcYnYgUs.js → Slider.stories-C-IjisOs.js} +1 -1
  175. package/storybook-static/assets/{SliderInput-D8pa0Cwh.js → SliderInput-BVDFbjAz.js} +3 -3
  176. package/storybook-static/assets/{SliderInput-CaaSdoql.js → SliderInput-Bz4D-xc3.js} +1 -1
  177. package/storybook-static/assets/{SliderInput.stories-biJs3NtU.js → SliderInput.stories-SlhRnTWN.js} +1 -1
  178. package/storybook-static/assets/{Sortable-wyJd-LB7.js → Sortable-d-UOB6NI.js} +2 -2
  179. package/storybook-static/assets/{Sortable.stories-CNW8IhRv.js → Sortable.stories-DWywtUOf.js} +1 -1
  180. package/storybook-static/assets/{Splitter-D0L1B9tf.js → Splitter-t2bV_zrF.js} +4 -4
  181. package/storybook-static/assets/{Splitter.stories-CDQGRB14.js → Splitter.stories-CTTTfgXu.js} +1 -1
  182. package/storybook-static/assets/{StateSelect-BaThi-59.js → StateSelect-CR5WR-IW.js} +2 -2
  183. package/storybook-static/assets/{StateSelect-hO1K2z4b.js → StateSelect-CX7Xf-aX.js} +1 -1
  184. package/storybook-static/assets/StateSelect.stories-3KkvmQ80.js +59 -0
  185. package/storybook-static/assets/StringToggle.stories-D7r-Du4d.js +5 -0
  186. package/storybook-static/assets/{Switch-DCV_mYJ2.js → Switch-DB4EZ32N.js} +1 -1
  187. package/storybook-static/assets/{Switch-Ct9tsisu.js → Switch-Deae3h9G.js} +2 -2
  188. package/storybook-static/assets/Switch.stories-CZxayDtX.js +15 -0
  189. package/storybook-static/assets/{Table-DaP6Qndv.js → Table-CrxyY7zt.js} +4 -4
  190. package/storybook-static/assets/{Table.stories-DDFcryTl.js → Table.stories-Cwxd5T2K.js} +2 -2
  191. package/storybook-static/assets/{Tabs-CC5Gzc7s.js → Tabs-L4LxDqx4.js} +3 -3
  192. package/storybook-static/assets/{Tabs.stories-B_76Da9k.js → Tabs.stories-C4XMXjqd.js} +2 -2
  193. package/storybook-static/assets/{TabsBox-D52IZXj5.js → TabsBox-Bnvm4jMi.js} +1 -1
  194. package/storybook-static/assets/{TagInput-T9Lp1amS.js → TagInput-DW0JzYQ3.js} +1 -1
  195. package/storybook-static/assets/TagInput.stories-zF7cV7Cp.js +18 -0
  196. package/storybook-static/assets/{Text-CXcCu6R8.js → Text-ByhnRSgp.js} +1 -1
  197. package/storybook-static/assets/{Textarea-CNl12Mkz.js → Textarea-BySrQxab.js} +2 -2
  198. package/storybook-static/assets/{Textarea-BlE2vGsV.js → Textarea-WtjTIiyq.js} +1 -1
  199. package/storybook-static/assets/Textarea.stories-jFSqX_4h.js +17 -0
  200. package/storybook-static/assets/{TimePanel-DKD18ldm.js → TimePanel-B-rvi-xm.js} +1 -1
  201. package/storybook-static/assets/TimePanel.stories-BQJruT0g.js +14 -0
  202. package/storybook-static/assets/{Toggle-DKNuMtMW.js → Toggle-BfRh792z.js} +2 -2
  203. package/storybook-static/assets/{Toggle-fqZP5j32.js → Toggle-BkglFvBx.js} +1 -1
  204. package/storybook-static/assets/Toggle.stories-BonTJbH-.js +25 -0
  205. package/storybook-static/assets/{TreeMultiSelect-B6et22Ea.js → TreeMultiSelect-7E1j6lHT.js} +1 -1
  206. package/storybook-static/assets/{TreeMultiSelect-b4PiPTEN.js → TreeMultiSelect-CKr7kx7s.js} +1 -1
  207. package/storybook-static/assets/{TreeMultiSelect.stories-C_4ZpE9w.js → TreeMultiSelect.stories-DQ9N-EPu.js} +1 -1
  208. package/storybook-static/assets/{TreePickerBase-BBwppLrT.js → TreePickerBase-DwoQyBMk.js} +1 -1
  209. package/storybook-static/assets/{TreeSelect-D4u7C0tA.js → TreeSelect-BLc7zLho.js} +1 -1
  210. package/storybook-static/assets/{TreeSelect-BaCD5AjF.js → TreeSelect-BP_YoVCu.js} +1 -1
  211. package/storybook-static/assets/TreeSelect.stories-CyurXsU_.js +32 -0
  212. package/storybook-static/assets/{TreeTable-CbhUffZj.js → TreeTable-wfgjChnU.js} +3 -3
  213. package/storybook-static/assets/{TreeTable.stories-D-x-lZkU.js → TreeTable.stories-DUBR67SN.js} +2 -2
  214. package/storybook-static/assets/{WithTooltip-7X4HQR7L-DQ4Qthn2.js → WithTooltip-CDUNV5IS-mFMh6Qcu.js} +2 -2
  215. package/storybook-static/assets/{blocks-IjspN281.js → blocks-DNj8uFSt.js} +3 -3
  216. package/storybook-static/assets/{check-ue9rVspp.js → check-CS2caYIB.js} +1 -1
  217. package/storybook-static/assets/{chevron-down-Dnk-3hJo.js → chevron-down-DXkNPvpX.js} +1 -1
  218. package/storybook-static/assets/{chevron-left-CaAFuWY0.js → chevron-left-5q-SFjrm.js} +1 -1
  219. package/storybook-static/assets/{chevron-right-CKnELL4E.js → chevron-right-u6yLjLrs.js} +1 -1
  220. package/storybook-static/assets/{chunk-W22LQPXL-jFAFLKOH.js → chunk-W22LQPXL-CfJGLIdy.js} +1 -1
  221. package/storybook-static/assets/{circle-alert-miJVMeEa.js → circle-alert-Cs1OuREv.js} +1 -1
  222. package/storybook-static/assets/circle-check-Cvppn-HO.js +1 -0
  223. package/storybook-static/assets/components-B6cPezpK.js +241 -0
  224. package/storybook-static/assets/{contextMenu-D8NvB0La.js → contextMenu-CX8Geuik.js} +1 -1
  225. package/storybook-static/assets/{defaultRenderers-DfmnIuod.js → defaultRenderers-Dinv2uRZ.js} +1 -1
  226. package/storybook-static/assets/{download-Cq_lr01f.js → download-DY_RFHLw.js} +1 -1
  227. package/storybook-static/assets/floating-ui.react-CCV40RlP.js +1 -0
  228. package/storybook-static/assets/{formatters-D33Uh3si-CxrG0jsB.js → formatters-D33Uh3si-Df97arf9.js} +1 -1
  229. package/storybook-static/assets/{foundationApi-CLyEyFIu.js → foundationApi-naPnCFLL.js} +3 -6
  230. package/storybook-static/assets/{foundationLib-DH2mxNct.js → foundationLib-CSxKMNQk.js} +1 -1
  231. package/storybook-static/assets/{hooks-BwH7Yo1F.js → hooks-CK4me-dJ.js} +1 -1
  232. package/storybook-static/assets/{iframe-B_6aAEqw.js → iframe-YrfSEgEg.js} +203 -203
  233. package/storybook-static/assets/iframe-uYND_WUi.js +1 -0
  234. package/storybook-static/assets/{info-BgHKckDk.js → info-BEkn6tJB.js} +1 -1
  235. package/storybook-static/assets/odata-j4p1dw3i.js +1 -0
  236. package/storybook-static/assets/odata-service-CWkHASdw-CXhFi03v.js +3 -0
  237. package/storybook-static/assets/{odataStoryFixtures-BiN3x4k6.js → odataStoryFixtures-B_1MKEB-.js} +1 -1
  238. package/storybook-static/assets/{react-18-D4o7zN8K.js → react-18-EmNFJX4V.js} +1 -1
  239. package/storybook-static/assets/react-BihcRTyZ.js +9 -0
  240. package/storybook-static/assets/{refresh-cw-Cz1Mtnwr.js → refresh-cw-uKRX7BI0.js} +1 -1
  241. package/storybook-static/assets/{settings-2-BUY_jI1a.js → settings-2-DTKuqR8p.js} +1 -1
  242. package/storybook-static/assets/{sortable-DfiDnDGH.js → sortable-sVqTZjeF.js} +1 -1
  243. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-RwE_sP6g.js → syntaxhighlighter-QEQV7K2Y-GFZ4bA4u.js} +1 -1
  244. package/storybook-static/assets/theming-BgT2grXK.js +39 -0
  245. package/storybook-static/assets/{trash-2-Da9E4hDy.js → trash-2-C6QVfyTq.js} +1 -1
  246. package/storybook-static/assets/{triangle-alert-D2CpTkxC.js → triangle-alert-DKkTKSAW.js} +1 -1
  247. package/storybook-static/assets/{useODataSelectBase-BTVM_2wU.js → useODataSelectBase-BxPpoJje.js} +1 -1
  248. package/storybook-static/assets/{useODataTreeData-BwwhT42f.js → useODataTreeData-Ct-ZR8pA.js} +1 -1
  249. package/storybook-static/assets/{usePickerQuery-Cug-ZpN1.js → usePickerQuery-DJMG-4Gl.js} +1 -1
  250. package/storybook-static/assets/{usePickerTriggerController-D3h4HqB9.js → usePickerTriggerController-DeZhyi9h.js} +1 -1
  251. package/storybook-static/assets/{x-ri5iHB3T.js → x-cU42PK2s.js} +1 -1
  252. package/storybook-static/iframe.html +2 -2
  253. package/storybook-static/index.json +1 -1
  254. package/storybook-static/project.json +1 -1
  255. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +1 -1
  256. package/storybook-static/sb-manager/globals-runtime.js +5 -2
  257. package/storybook-static/sb-manager/runtime.js +1 -0
  258. package/storybook-static/assets/Color-6AOWCN3U-C363KdaS.js +0 -1
  259. package/storybook-static/assets/DateRangePresetSelect.stories-BnnOI6oQ.js +0 -19
  260. package/storybook-static/assets/Dialog.stories-DPFNV_A3.js +0 -22
  261. package/storybook-static/assets/Disclosure.stories-C3MufHWp.js +0 -23
  262. package/storybook-static/assets/DropZone.stories-mB8JLlHw.js +0 -26
  263. package/storybook-static/assets/ExpandableActionPanel.stories-eChkcTa4.js +0 -9
  264. package/storybook-static/assets/ImageCropper.stories-BuwhJESS.js +0 -131
  265. package/storybook-static/assets/ImageRenderer.stories-BzyPfNyt.js +0 -34
  266. package/storybook-static/assets/ImageView.stories-FmQ_gxc7.js +0 -14
  267. package/storybook-static/assets/Input.stories-BbT8eOCH.js +0 -52
  268. package/storybook-static/assets/InputFile.stories-B84afhOU.js +0 -27
  269. package/storybook-static/assets/InputFiles.stories-CgMk9QC9.js +0 -26
  270. package/storybook-static/assets/InputImage.stories-BD3x6S5Y.js +0 -56
  271. package/storybook-static/assets/MultiSelect.stories-CNNK5rRC.js +0 -55
  272. package/storybook-static/assets/PeriodSelect.stories-COeb_LJq.js +0 -50
  273. package/storybook-static/assets/PresetRangeDateInput.stories-BDmwSMwK.js +0 -3
  274. package/storybook-static/assets/README-oSHJDhIJ.js +0 -101
  275. package/storybook-static/assets/RadioButton.stories-GiewWDd0.js +0 -32
  276. package/storybook-static/assets/Select.stories-CYJpEv_P.js +0 -69
  277. package/storybook-static/assets/StateSelect.stories-DDviL5zf.js +0 -59
  278. package/storybook-static/assets/StringToggle.stories-CFAJvvxJ.js +0 -5
  279. package/storybook-static/assets/Switch.stories-COeP2eOi.js +0 -15
  280. package/storybook-static/assets/TagInput.stories-DfH66OZc.js +0 -18
  281. package/storybook-static/assets/Textarea.stories-DVOJ06z_.js +0 -17
  282. package/storybook-static/assets/TimePanel.stories-Vn5OZdpQ.js +0 -14
  283. package/storybook-static/assets/Toggle.stories-BLolzyKP.js +0 -25
  284. package/storybook-static/assets/TreeSelect.stories-CDkOknim.js +0 -32
  285. package/storybook-static/assets/circle-check-CNYBjmqs.js +0 -1
  286. package/storybook-static/assets/components-9iEtMVnM.js +0 -241
  287. package/storybook-static/assets/floating-ui.react-BoRzzZ17.js +0 -1
  288. package/storybook-static/assets/iframe-BxPT5t4V.js +0 -1
  289. package/storybook-static/assets/odata-D2I4jbKq.js +0 -1
  290. package/storybook-static/assets/odata-service-CWkHASdw-DlmSiioz.js +0 -3
  291. package/storybook-static/assets/react-BoM8yiX1.js +0 -9
  292. package/storybook-static/assets/theming-Cvtrnj7n.js +0 -39
@@ -1,5 +1,5 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Crypto`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`идентификаторы-и-строковые-hash-через-ryuzaki13react-foundation-libcrypto`,children:[`Идентификаторы и строковые hash через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/crypto`})]}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Crypto`}),`
2
+ `,(0,c.jsx)(t.h1,{id:`идентификаторы-и-строковые-hash`,children:`Идентификаторы и строковые hash`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`crypto`}),` предоставляет небольшие функции для двух разных задач:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
5
5
  `,(0,c.jsx)(t.li,{children:`получить детерминированный компактный hash из строки;`}),`
@@ -7,11 +7,10 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
7
7
  `]}),`
8
8
  `,(0,c.jsx)(t.p,{children:`Детерминированный результат всегда повторяется для той же строки. Случайный UUID, наоборот, создаётся заново при каждом вызове. Это принципиально разные виды идентификаторов, и выбирать между ними нужно по смыслу задачи.`}),`
9
9
  `,(0,c.jsx)(t.p,{children:`Несмотря на имя entrypoint, строковые hash этого модуля не являются криптографическими. Они не подходят для паролей, подписей, access token, проверки безопасности или сокрытия персональных данных.`}),`
10
- `,(0,c.jsx)(t.p,{children:`README рассчитан на разработчика, который использует опубликованный пакет без доступа к исходному коду. Здесь объясняются базовые понятия, точные форматы результатов, browser runtime, Unicode, коллизии, React/SSR, тестирование и безопасные границы применения.`}),`
11
10
  `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
12
11
  `,(0,c.jsxs)(t.ul,{children:[`
13
12
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F`,children:`Назначение и границы модуля`})}),`
14
- `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Установка и импорт`})}),`
13
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Импорт`})}),`
15
14
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F`,children:`Минимальные понятия`})}),`
16
15
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BA%D0%B0%D0%BA-%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C-api`,children:`Как выбрать API`})}),`
17
16
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82`,children:`Быстрый старт`})}),`
@@ -58,10 +57,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
58
57
  `]}),`
59
58
  `,(0,c.jsx)(t.h3,{id:`две-группы-api`,children:`Две группы API`}),`
60
59
  `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Группа`}),(0,c.jsx)(t.th,{children:`Функции`}),(0,c.jsx)(t.th,{children:`Свойство`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Детерминированные hash`}),(0,c.jsxs)(t.td,{children:[(0,c.jsx)(t.code,{children:`hashString`}),`, `,(0,c.jsx)(t.code,{children:`hashString128`}),`, `,(0,c.jsx)(t.code,{children:`hashString128Base64Url`}),`, `,(0,c.jsx)(t.code,{children:`stringToElementId`})]}),(0,c.jsx)(t.td,{children:`Та же точная строка даёт тот же результат.`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Случайный идентификатор`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`uuidv4`})}),(0,c.jsx)(t.td,{children:`Каждый вызов должен создавать новое случайное значение.`})]})]})]}),`
61
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
62
- `,(0,c.jsx)(t.p,{children:`Установите пакет:`}),`
63
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-lib
64
- `})}),`
60
+ `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
65
61
  `,(0,c.jsxs)(t.p,{children:[`Импортируйте функции только из опубликованного subpath `,(0,c.jsx)(t.code,{children:`/crypto`}),`:`]}),`
66
62
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { hashString, hashString128, hashString128Base64Url, stringToElementId, uuidv4 } from "@ryuzaki13/react-foundation-lib/crypto";
67
63
  `})}),`
@@ -1,12 +1,8 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Infrastructure/PWA`}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Infrastructure/PWA`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`pwa`,children:`PWA`}),`
3
3
  `,(0,c.jsx)(t.p,{children:`Модуль PWA состоит из двух публичных входов с разной ответственностью:`}),`
4
4
  `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Import path`}),(0,c.jsx)(t.th,{children:`Что содержит`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/pwa`})}),(0,c.jsx)(t.td,{children:`React-hook обновления Service Worker и все функции cache policy`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/pwa/sw-cache-policy`})}),(0,c.jsxs)(t.td,{children:[`Только чистый parser/builder политики `,(0,c.jsx)(t.code,{children:`x-sw-cache`}),`, без React update-flow`]})]})]})]}),`
5
5
  `,(0,c.jsxs)(t.p,{children:[`Используйте точный subpath. Внутренний файл `,(0,c.jsx)(t.code,{children:`serviceWorker`}),` не является самостоятельным публичным export, даже если отдельные функции используются самим hook.`]}),`
6
- `,(0,c.jsx)(t.h2,{id:`установка`,children:`Установка`}),`
7
- `,(0,c.jsxs)(t.p,{children:[`Для `,(0,c.jsx)(t.code,{children:`useServiceWorkerUpdate`}),` нужен React. Cache policy не имеет React-зависимости.`]}),`
8
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-lib react
9
- `})}),`
10
6
  `,(0,c.jsx)(t.h2,{id:`часть-1-обновление-service-worker`,children:`Часть 1. Обновление Service Worker`}),`
11
7
  `,(0,c.jsx)(t.h3,{id:`задача-hook`,children:`Задача hook`}),`
12
8
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { useServiceWorkerUpdate } from "@ryuzaki13/react-foundation-lib/pwa";
@@ -1,10 +1,10 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/HTTP/Headers and Text Response`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`http-headers-и-текстовые-ответы-через-ryuzaki13react-foundation-libhttp`,children:[`HTTP headers и текстовые ответы через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/http`})]}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/HTTP/Headers and Text Response`}),`
2
+ `,(0,c.jsx)(t.h1,{id:`http-headers-и-текстовые-ответы`,children:`HTTP headers и текстовые ответы`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль создаёт стандартный набор HTTP-заголовков запрета кеширования и обычный `,(0,c.jsx)(t.code,{children:`Response`}),` с UTF-8 plain text.`]}),`
4
4
  `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
5
5
  `,(0,c.jsxs)(t.ul,{children:[`
6
6
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B`,children:`Назначение и границы`})}),`
7
- `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Установка и импорт`})}),`
7
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Импорт`})}),`
8
8
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#createnostoreheaders`,children:(0,c.jsx)(t.code,{children:`createNoStoreHeaders`})})}),`
9
9
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#createtexthttpresponse`,children:(0,c.jsx)(t.code,{children:`createTextHttpResponse`})})}),`
10
10
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#runtime-%D0%B8-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C`,children:`Runtime и безопасность`})}),`
@@ -17,7 +17,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
17
17
  Headers с no-store + Response(text/plain; charset=UTF-8)
18
18
  `})}),`
19
19
  `,(0,c.jsxs)(t.p,{children:[`Модуль не выполняет `,(0,c.jsx)(t.code,{children:`fetch`}),`, не сериализует JSON, не задаёт CORS, CSP, cookies или authorization и не превращает ошибки transport в response автоматически.`]}),`
20
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
20
+ `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
21
21
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { createNoStoreHeaders, createTextHttpResponse } from "@ryuzaki13/react-foundation-lib/http";
22
22
 
23
23
  import type { NoStoreHeadersInit, TextHttpResponseOptions } from "@ryuzaki13/react-foundation-lib/http";
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Hooks`}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Hooks`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`react-и-browser-hooks`,children:`React и browser hooks`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/hooks`}),` содержит общие React hooks для задач, которые повторяются в разных приложениях:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Pipeline`}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Pipeline`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`formatter-pipeline`,children:`Formatter pipeline`}),`
3
3
  `,(0,c.jsx)(t.p,{children:`Formatter pipeline — конфигурируемая последовательность преобразований значения ячейки. Она умеет:`}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -1,10 +1,10 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Range Output`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`подстановка-открытых-границ-через-ryuzaki13react-foundation-librange-output`,children:[`Подстановка открытых границ через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/range-output`})]}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Range Output`}),`
2
+ `,(0,c.jsx)(t.h1,{id:`подстановка-открытых-границ`,children:`Подстановка открытых границ`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль хранит в UI открытые границы диапазона как `,(0,c.jsx)(t.code,{children:`null`}),`, но позволяет подставить конкретные значения при внешнем выводе или сохранении.`]}),`
4
4
  `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
5
5
  `,(0,c.jsxs)(t.ul,{children:[`
6
6
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5`,children:`Назначение`})}),`
7
- `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Установка и импорт`})}),`
7
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Импорт`})}),`
8
8
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D0%BA%D1%82%D1%8B`,children:`Контракты`})}),`
9
9
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#readrangeoutputvaluefallback`,children:(0,c.jsx)(t.code,{children:`readRangeOutputValueFallback`})})}),`
10
10
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#resolverangeoutputvalue`,children:(0,c.jsx)(t.code,{children:`resolveRangeOutputValue`})})}),`
@@ -19,7 +19,7 @@ fallback { start: 0, end: 12 }
19
19
  external output [0, 6]
20
20
  `})}),`
21
21
  `,(0,c.jsxs)(t.p,{children:[`Исходное UI-значение не изменяется. `,(0,c.jsx)(t.code,{children:`null`}),` заменяется только при построении отдельного output tuple.`]}),`
22
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
22
+ `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
23
23
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { readRangeOutputValueFallback, resolveRangeOutputValue } from "@ryuzaki13/react-foundation-lib/range-output";
24
24
 
25
25
  import type { RangeOutputFallbackEndpointParser, RangeOutputValueFallback } from "@ryuzaki13/react-foundation-lib/range-output";
@@ -1,7 +1,7 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/String Comparison`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`сравнение-строк-через-ryuzaki13react-foundation-libstring-comparison`,children:[`Сравнение строк через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/string-comparison`})]}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/String Comparison`}),`
2
+ `,(0,c.jsx)(t.h1,{id:`сравнение-строк`,children:`Сравнение строк`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`compareStrings`}),` задаёт единый порядок строк для русскоязычных UI-списков, смешанной кириллицы/латиницы и числовых суффиксов.`]}),`
4
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
4
+ `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
5
5
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { compareStrings } from "@ryuzaki13/react-foundation-lib/string-comparison";
6
6
  `})}),`
7
7
  `,(0,c.jsxs)(t.p,{children:[`Модуль использует стандартный `,(0,c.jsx)(t.code,{children:`Intl.Collator`}),` и не зависит от React.`]}),`
@@ -1,5 +1,5 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/DOM`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`browser-dom-и-focus-helpers-через-ryuzaki13react-foundation-libdom`,children:[`Browser DOM и focus helpers через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/dom`})]}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/DOM`}),`
2
+ `,(0,c.jsx)(t.h1,{id:`browser-dom-и-focus-helpers`,children:`Browser DOM и focus helpers`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`dom`}),` содержит небольшие browser helpers и React hooks для типовых инфраструктурных задач:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
5
5
  `,(0,c.jsxs)(t.li,{children:[`скачать `,(0,c.jsx)(t.code,{children:`Blob`}),`, JSON или уже созданный object URL;`]}),`
@@ -12,11 +12,10 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
12
12
  `,(0,c.jsx)(t.li,{children:`определить наличие touch/coarse-pointer возможностей.`}),`
13
13
  `]}),`
14
14
  `,(0,c.jsx)(t.p,{children:`Модуль является низкоуровневым browser foundation-слоем. Он не создаёт готовые кнопки, dialog, modal, popover, tooltip или download UI. Визуальный компонент по-прежнему отвечает за семантический HTML, ARIA, стили, анимацию, стек overlay, сообщения об ошибках и пользовательский сценарий.`}),`
15
- `,(0,c.jsx)(t.p,{children:`README рассчитан на разработчика, который использует опубликованный пакет без прямого доступа к исходному коду. Здесь объясняются базовые понятия DOM и React, все публичные функции, точный lifecycle, defaults, cleanup, ограничения доступности, тестирование и частые ошибки.`}),`
16
15
  `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
17
16
  `,(0,c.jsxs)(t.ul,{children:[`
18
17
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F`,children:`Назначение и границы модуля`})}),`
19
- `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Установка и импорт`})}),`
18
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Импорт`})}),`
20
19
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#runtime-%D0%B8-browser-boundary`,children:`Runtime и browser boundary`})}),`
21
20
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F`,children:`Минимальные понятия`})}),`
22
21
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BA%D0%B0%D0%BA-%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C-api`,children:`Как выбрать API`})}),`
@@ -73,10 +72,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
73
72
  `,(0,c.jsx)(t.h3,{id:`соседние-модули`,children:`Соседние модули`}),`
74
73
  `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Задача`}),(0,c.jsx)(t.th,{children:`Предпочтительный владелец`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[`Base64/data URL → `,(0,c.jsx)(t.code,{children:`Blob`})]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/binary`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Чтение выбранного пользователем файла`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/file`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsxs)(t.td,{children:[`Скачивание готового `,(0,c.jsx)(t.code,{children:`Blob`})]}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/dom`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Готовый dialog/modal/popover`}),(0,c.jsx)(t.td,{children:`UI-пакет или UI-слой приложения`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Низкоуровневый focus/outside/Escape contract`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/dom`})})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Responsive styling`}),(0,c.jsxs)(t.td,{children:[`CSS и `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/media`})]})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Копирование plain text в clipboard`}),(0,c.jsx)(t.td,{children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/copy`})})]})]})]}),`
75
74
  `,(0,c.jsxs)(t.p,{children:[`Если приложению нужен готовый UI primitive, сначала ищите его в `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-ui`}),`. Модуль `,(0,c.jsx)(t.code,{children:`dom`}),` нужен авторам primitives и для специальных browser-сценариев, а не для повторной сборки локальных modal/dialog в каждом feature.`]}),`
76
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
77
- `,(0,c.jsx)(t.p,{children:`Установите пакет:`}),`
78
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-lib
79
- `})}),`
75
+ `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
80
76
  `,(0,c.jsx)(t.p,{children:`Entrypoint экспортирует React hooks, поэтому host-приложение должно предоставить совместимые peer-зависимости:`}),`
81
77
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install react react-dom
82
78
  `})}),`
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Infrastructure/Query Client`}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,blockquote:`blockquote`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Infrastructure/Query Client`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`query-client`,children:`Query Client`}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[`Модуль `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/query-client`}),` предоставляет общую инфраструктуру TanStack Query для browser-приложения:`]}),`
4
4
  `,(0,c.jsxs)(t.ul,{children:[`
@@ -10,14 +10,14 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
10
10
  `,(0,c.jsx)(t.li,{children:`синхронизирует cache data и invalidation между вкладками;`}),`
11
11
  `,(0,c.jsx)(t.li,{children:`предоставляет низкоуровневые helpers для optimistic update и rollback.`}),`
12
12
  `]}),`
13
- `,(0,c.jsx)(t.p,{children:`README рассчитан на разработчика без доступа к исходному коду и с минимальным знанием JavaScript, TypeScript и TanStack Query. Здесь описаны установка, инициализация, жизненный цикл данных, точное поведение функций, ограничения browser API и полный публичный API.`}),`
13
+ `,(0,c.jsx)(t.p,{children:`Здесь описаны жизненный цикл данных, точное поведение функций, ограничения browser API и полный публичный API.`}),`
14
14
  `,(0,c.jsxs)(t.blockquote,{children:[`
15
15
  `,(0,c.jsx)(t.p,{children:`Ранее optimistic update был описан отдельным документом. Теперь весь смысл, примеры, ограничения и API находятся только на этой странице.`}),`
16
16
  `]}),`
17
17
  `,(0,c.jsx)(t.h2,{id:`содержание`,children:`Содержание`}),`
18
18
  `,(0,c.jsxs)(t.ul,{children:[`
19
19
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BD%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B`,children:`Назначение и границы`})}),`
20
- `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D0%B8-%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Установка и импорт`})}),`
20
+ `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82`,children:`Импорт`})}),`
21
21
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BE%D0%B1%D1%8F%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-build-time-constants`,children:`Обязательные build-time constants`})}),`
22
22
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5-%D0%BF%D0%BE%D0%BD%D1%8F%D1%82%D0%B8%D1%8F-tanstack-query`,children:`Основные понятия TanStack Query`})}),`
23
23
  `,(0,c.jsx)(t.li,{children:(0,c.jsx)(t.a,{href:`#%D0%BA%D0%B0%D0%BA-%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C-cache-strategy`,children:`Как выбрать cache strategy`})}),`
@@ -66,12 +66,9 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
66
66
  `,(0,c.jsx)(t.p,{children:`Не смешивайте:`}),`
67
67
  `,(0,c.jsxs)(t.table,{children:[(0,c.jsx)(t.thead,{children:(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.th,{children:`Механизм`}),(0,c.jsx)(t.th,{children:`Что хранит`}),(0,c.jsx)(t.th,{children:`Где живёт`})]})}),(0,c.jsxs)(t.tbody,{children:[(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Query cache`}),(0,c.jsx)(t.td,{children:`Backend snapshot и состояние query`}),(0,c.jsx)(t.td,{children:`В памяти текущей вкладки`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Query persistence`}),(0,c.jsx)(t.td,{children:`Выбранные уже полученные query data`}),(0,c.jsx)(t.td,{children:`IndexedDB`})]}),(0,c.jsxs)(t.tr,{children:[(0,c.jsx)(t.td,{children:`Service Worker cache`}),(0,c.jsx)(t.td,{children:`HTTP response/request на transport-уровне`}),(0,c.jsx)(t.td,{children:`Cache Storage в Service Worker`})]})]})]}),`
68
68
  `,(0,c.jsx)(t.p,{children:`Broadcast не является четвёртым хранилищем. Он только передаёт изменения между уже работающими вкладками.`}),`
69
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
70
- `,(0,c.jsx)(t.p,{children:`Установите foundation-пакет и совместимые peer dependencies:`}),`
71
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-lib
72
- npm install react @tanstack/react-query \\
73
- @tanstack/query-persist-client-core \\
74
- @tanstack/query-broadcast-client-experimental
69
+ `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
70
+ `,(0,c.jsx)(t.p,{children:`Установите совместимые peer dependencies:`}),`
71
+ `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install react @tanstack/react-query @tanstack/query-persist-client-core @tanstack/query-broadcast-client-experimental
75
72
  `})}),`
76
73
  `,(0,c.jsx)(t.p,{children:`Публичный импорт:`}),`
77
74
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { createQueryClient, persistedQueryMeta, sessionScopedQueryMeta } from "@ryuzaki13/react-foundation-lib/query-client";
@@ -1,7 +1,7 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Errors/Missing Context`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`ошибка-отсутствующего-react-context-через-ryuzaki13react-foundation-liberror`,children:[`Ошибка отсутствующего React context через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/error`})]}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Errors/Missing Context`}),`
2
+ `,(0,c.jsx)(t.h1,{id:`ошибка-отсутствующего-react-context`,children:`Ошибка отсутствующего React context`}),`
3
3
  `,(0,c.jsx)(t.p,{children:`Модуль создаёт единообразное диагностическое сообщение, когда custom hook вызван вне нужного Provider.`}),`
4
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
4
+ `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
5
5
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { createMissingContextError, createMissingContextErrorMessage } from "@ryuzaki13/react-foundation-lib/error";
6
6
  `})}),`
7
7
  `,(0,c.jsx)(t.p,{children:`Модуль не импортирует React и может использоваться в любом TypeScript runtime. Типы объектов options выводятся из аргумента и отдельно не экспортируются.`}),`
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation API/Query/Generic Resource`}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,strong:`strong`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation API/Query/Generic Resource`}),`
2
2
  `,(0,c.jsxs)(t.h1,{id:`generic-resources-через-ryuzaki13react-foundation-apiresource`,children:[`Generic resources через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/resource`})]}),`
3
3
  `,(0,c.jsx)(t.p,{children:`Модуль описывает transport-agnostic ресурс поверх TanStack Query: стабильные query keys, проверку scope, произвольные read/write operations и cache strategies после mutation.`}),`
4
4
  `,(0,c.jsx)(t.h2,{id:`для-кого-этот-документ`,children:`Для кого этот документ`}),`
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Strings`}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Strings`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`строковые-форматтеры`,children:`Строковые форматтеры`}),`
3
3
  `,(0,c.jsx)(t.p,{children:`Модуль содержит небольшие предсказуемые функции для подготовки пользовательского текста: обрезки пробелов, безопасного преобразования в строку, удаления ведущих нулей, сокращения длинного текста и выбора русской формы слова.`}),`
4
4
  `,(0,c.jsx)(t.p,{children:`Все функции экспортируются через один публичный entrypoint:`}),`
@@ -1,10 +1,7 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Обзор`}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={a:`a`,code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/API/Formatters/Обзор`}),`
2
2
  `,(0,c.jsx)(t.h1,{id:`ryuzaki13react-foundation-libformatters`,children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/formatters`})}),`
3
3
  `,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`formatters`}),` — большой модуль подготовки значений для интерфейса и transport-контрактов. Он работает с датами, числами, строками, boolean/ABAP-флагами, ФИО, российскими телефонами, ведущими нулями и семантическими состояниями. Для таблиц модуль также предоставляет конфигурируемый formatter pipeline и row-based формулы.`]}),`
4
4
  `,(0,c.jsx)(t.p,{children:`Документация разделена по предметным областям, чтобы разработчику не приходилось читать один огромный файл. Этот README объясняет общие правила, помогает выбрать API и подробно описывает небольшие helpers верхнего уровня.`}),`
5
- `,(0,c.jsx)(t.h2,{id:`установка`,children:`Установка`}),`
6
- `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-lib
7
- `})}),`
8
5
  `,(0,c.jsx)(t.p,{children:`Пакет является ESM. Корневого импорта пакета нет. Все formatter functions и их типы импортируются из точечного entrypoint:`}),`
9
6
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { formatDateAsDate, formatNumberAsDecimal2, normalizeText } from "@ryuzaki13/react-foundation-lib/formatters";
10
7
  `})}),`
@@ -1,7 +1,7 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-IjspN281.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Presets`}),`
2
- `,(0,c.jsxs)(t.h1,{id:`общие-preset-helpers-через-ryuzaki13react-foundation-libpresets`,children:[`Общие preset helpers через `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/presets`})]}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{l as i,m as a}from"./blocks-DNj8uFSt.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,table:`table`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Data/Presets`}),`
2
+ `,(0,c.jsx)(t.h1,{id:`общие-preset-helpers`,children:`Общие preset helpers`}),`
3
3
  `,(0,c.jsx)(t.p,{children:`Модуль проверяет восстановленные preset ids, сопоставляет их с option objects и ищет одну option по id.`}),`
4
- `,(0,c.jsx)(t.h2,{id:`установка-и-импорт`,children:`Установка и импорт`}),`
4
+ `,(0,c.jsx)(t.h2,{id:`импорт`,children:`Импорт`}),`
5
5
  `,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { getPresetOption, normalizePresetIds, resolvePresetOptionsByIds } from "@ryuzaki13/react-foundation-lib/presets";
6
6
 
7
7
  import type { PresetOption } from "@ryuzaki13/react-foundation-lib/presets";
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-IjspN281.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioButton.stories-GiewWDd0.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DNj8uFSt.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioButton.stories-CzIM9dix.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`RadioButton`}),`
3
3
  `,(0,b.jsx)(o,{children:`Одиночная radio-кнопка для ручной сборки наборов выбора и специальных компоновок`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`RadioButton уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -8,7 +8,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
8
8
  `,(0,b.jsx)(i,{of:_}),`
9
9
  `,(0,b.jsx)(t.pre,{children:(0,b.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
10
10
 
11
- import { RadioButton } from "@/shared/ui";
11
+ import { RadioButton } from "@ryuzaki13/react-foundation-ui";
12
12
 
13
13
  export function Example() {
14
14
  const [checked, setChecked] = useState(true);
@@ -1 +1 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a}from"./iframe-B_6aAEqw.js";import{a as o,i as s}from"./utils-tg3ibbzi.js";import{n as c,t as l}from"./ui.module-BDnTp43_.js";import{i as u,r as d}from"./uiClasses-Cmg8Dx0X.js";import{n as f,t as p}from"./CheckBox.module-BOAVN-Ny.js";var m,h;function g(){return(g=t((()=>{r(),m=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],h=a(`circle`,m)})))()}var _,v;function y(){return(y=t((()=>{_=`gu8UMB`,v={radioInput:_}})))()}var b,x,S;function C(){return(C=t((()=>{b=e(n(),1),s(),g(),f(),l(),u(),y(),x=i(),S=({label:e,description:t,placeholder:n,disabled:r,size:i,className:a,onChange:s,value:l,id:u,tone:f=`neutral`,...m})=>{let g=(0,b.useId)(),_=u??g,y=t?`${_}-description`:void 0,S=e??n,C=l??!1;return(0,x.jsxs)(`div`,{className:o(c.uiElement,i&&c.uiSizable,i&&c[i],r&&c.disabled,a),children:[(0,x.jsxs)(`div`,{className:p.row,children:[(0,x.jsxs)(`div`,{className:o(p.wrapper,d(f)),children:[(0,x.jsx)(`input`,{...m,id:_,type:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-describedby":y,className:o(c.uiSelectionControl,p.input,v.radioInput),onChange:e=>s?.(e.currentTarget.checked)}),(0,x.jsx)(`div`,{className:o(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,x.jsx)(h,{fill:`currentColor`})})]}),S&&(0,x.jsx)(`label`,{htmlFor:_,className:c.uiLabel,children:S})]}),t&&(0,x.jsx)(`p`,{id:y,className:c.uiDescription,children:t})]})},S.__docgenInfo={description:'Компонент радиокнопки для выбора одного варианта.\nНативный `input[type="radio"]` обеспечивает взаимоисключение элементов с\nобщим `name`, а controlled API продолжает публиковать булево состояние.\nПоддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.',methods:[],displayName:`RadioButton`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})))()}export{C as n,S as t};
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a}from"./iframe-YrfSEgEg.js";import{a as o,i as s}from"./utils-tg3ibbzi.js";import{n as c,t as l}from"./ui.module-BDnTp43_.js";import{i as u,r as d}from"./uiClasses-Cmg8Dx0X.js";import{n as f,t as p}from"./CheckBox.module-BOAVN-Ny.js";var m,h;function g(){return(g=t((()=>{r(),m=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],h=a(`circle`,m)})))()}var _,v;function y(){return(y=t((()=>{_=`gu8UMB`,v={radioInput:_}})))()}var b,x,S;function C(){return(C=t((()=>{b=e(n(),1),s(),g(),f(),l(),u(),y(),x=i(),S=({label:e,description:t,placeholder:n,disabled:r,size:i,className:a,onChange:s,value:l,id:u,tone:f=`neutral`,...m})=>{let g=(0,b.useId)(),_=u??g,y=t?`${_}-description`:void 0,S=e??n,C=l??!1;return(0,x.jsxs)(`div`,{className:o(c.uiElement,i&&c.uiSizable,i&&c[i],r&&c.disabled,a),children:[(0,x.jsxs)(`div`,{className:p.row,children:[(0,x.jsxs)(`div`,{className:o(p.wrapper,d(f)),children:[(0,x.jsx)(`input`,{...m,id:_,type:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-describedby":y,className:o(c.uiSelectionControl,p.input,v.radioInput),onChange:e=>s?.(e.currentTarget.checked)}),(0,x.jsx)(`div`,{className:o(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,x.jsx)(h,{fill:`currentColor`})})]}),S&&(0,x.jsx)(`label`,{htmlFor:_,className:c.uiLabel,children:S})]}),t&&(0,x.jsx)(`p`,{id:y,className:c.uiDescription,children:t})]})},S.__docgenInfo={description:'Компонент радиокнопки для выбора одного варианта.\nНативный `input[type="radio"]` обеспечивает взаимоисключение элементов с\nобщим `name`, а controlled API продолжает публиковать булево состояние.\nПоддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.',methods:[],displayName:`RadioButton`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})))()}export{C as n,S as t};
@@ -0,0 +1,32 @@
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./RadioButton-JEqzXOJN.js";import{n as a}from"./iframe-YrfSEgEg.js";import{n as o,t as s}from"./createControlledStoryRender-BouhvX-R.js";var c=t({Controlled:()=>p,Disabled:()=>h,Group:()=>m,__namedExportsOrder:()=>g,default:()=>f}),l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{l=n(),o(),r(),u=a(),d=s((e,t)=>(0,u.jsx)(i,{...e,value:e.value??!1,onChange:n=>{e.onChange?.(n),t({value:n})}})),f={title:`UI/RadioButton`,component:i,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи радиокнопки.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Признак выбранного состояния.`,control:`boolean`},onChange:{description:`Вызывается при изменении выбранности.`,control:!1},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер визуального контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон радиокнопки.`,control:`inline-radio`,options:[`neutral`,`brand`,`error`,`warning`,`success`,`info`]}}},p={render:d,args:{label:`Выбрать опцию`,description:`Одиночная радиокнопка в controlled-режиме.`,value:!1,tone:`neutral`}},m={render:()=>{let[e,t]=(0,l.useState)(`email`);return(0,u.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Канал уведомлений`,style:{display:`grid`,gap:12},children:[(0,u.jsx)(i,{name:`notification-channel`,label:`Email`,value:e===`email`,onChange:e=>e&&t(`email`),tone:`info`}),(0,u.jsx)(i,{name:`notification-channel`,label:`SMS`,value:e===`sms`,onChange:e=>e&&t(`sms`),tone:`info`})]})},args:{value:void 0}},h={render:d,args:{label:`Недоступная опция`,description:`Заблокировано политикой конфигурации.`,value:!0,disabled:!0,tone:`neutral`}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
2
+ render: renderRadioButtonStory,
3
+ args: {
4
+ label: "Выбрать опцию",
5
+ description: "Одиночная радиокнопка в controlled-режиме.",
6
+ value: false,
7
+ tone: "neutral"
8
+ }
9
+ }`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
10
+ render: () => {
11
+ const [selected, setSelected] = useState<"email" | "sms">("email");
12
+ return <div role="radiogroup" aria-label="Канал уведомлений" style={{
13
+ display: "grid",
14
+ gap: 12
15
+ }}>
16
+ <RadioButton name="notification-channel" label="Email" value={selected === "email"} onChange={checked => checked && setSelected("email")} tone="info" />
17
+ <RadioButton name="notification-channel" label="SMS" value={selected === "sms"} onChange={checked => checked && setSelected("sms")} tone="info" />
18
+ </div>;
19
+ },
20
+ args: {
21
+ value: undefined
22
+ }
23
+ }`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
24
+ render: renderRadioButtonStory,
25
+ args: {
26
+ label: "Недоступная опция",
27
+ description: "Заблокировано политикой конфигурации.",
28
+ value: true,
29
+ disabled: true,
30
+ tone: "neutral"
31
+ }
32
+ }`,...h.parameters?.docs?.source}}},g=[`Controlled`,`Group`,`Disabled`]})))()}export{_ as a,c as i,h as n,m as r,p as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-IjspN281.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioGroup.stories-C7N9yLcN.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DNj8uFSt.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioGroup.stories-BdAv58pJ.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,b.jsx)(u,{children:`RadioGroup`}),`
3
3
  `,(0,b.jsx)(o,{children:`Группа взаимоисключающих опций с поддержкой горизонтальной и вертикальной раскладки`}),`
4
4
  `,(0,b.jsx)(t.p,{children:`RadioGroup уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -8,7 +8,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
8
8
  `,(0,b.jsx)(i,{of:_}),`
9
9
  `,(0,b.jsx)(t.pre,{children:(0,b.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
10
10
 
11
- import { RadioGroup } from "@/shared/ui";
11
+ import { RadioGroup } from "@ryuzaki13/react-foundation-ui";
12
12
 
13
13
  export function Example() {
14
14
  const [value, setValue] = useState("email");
@@ -1 +1 @@
1
- import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a}from"./iframe-B_6aAEqw.js";import{a as o,i as s,n as c,o as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./ui.module-BDnTp43_.js";var f,p;function m(){return(m=t((()=>{r(),f=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]],p=a(`circle-check-big`,f)})))()}var h,g,_,v,y,b,x,S,C;function w(){return(w=t((()=>{h=`nINbA6`,g=`GL-UWx`,_=`_6PeF-i`,v=`_5wP4aR`,y=`S3MnZI`,b=`KHJ0ja`,x=`oGmcQH`,S=`k2z8AN`,C={radioGroup:h,noWrap:g,horizontal:_,vertical:v,radioItem:y,checked:b,radioItemContent:x,radioItemIcon:S}})))()}function T({value:e,onChange:t,label:n,description:r,disabled:i,className:a,noWrap:s,orientation:c=`horizontal`,"aria-label":l,children:d}){let f=(0,D.useId)(),p=n?`${f}-label`:void 0,m=r?`${f}-description`:void 0,[h,g]=(0,D.useState)([]),_=(0,D.useCallback)(e=>t?.(e),[t]),v=(0,D.useCallback)(e=>(g(t=>t.includes(e)?t:[...t,e]),()=>{g(t=>t.filter(t=>t!==e))}),[]),y=(0,D.useMemo)(()=>({value:e,onChange:_,disabled:i,orientation:c,groupId:f,labelId:p,descriptionId:m,firstOptionId:h[0],registerOption:v}),[m,i,f,_,p,c,v,h,e]);return(0,O.jsxs)(`div`,{className:o(u.uiElement,i&&u.disabled,a),children:[n&&(0,O.jsx)(`div`,{id:p,className:u.uiLabel,children:n}),r&&(0,O.jsx)(`div`,{id:m,className:u.uiDescription,children:r}),(0,O.jsx)(k.Provider,{value:y,children:(0,O.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":p,"aria-label":p?void 0:l,"aria-describedby":m,"aria-disabled":i||void 0,"data-disabled":i||void 0,className:o(u.uiInputControl,C.radioGroup,s&&C.noWrap,C[c]),children:d})})]})}function E({value:e,label:t,description:n,className:r}){let i=(0,D.useContext)(k),a=(0,D.useId)(),s=i?.registerOption;if((0,D.useLayoutEffect)(()=>{if(s)return s(a)},[s,a]),!i)return(0,O.jsxs)(`div`,{className:o(C.radioItem,r),children:[(0,O.jsx)(`p`,{className:`textNoWrap`,children:t}),n&&(0,O.jsx)(`div`,{className:`fontSizeSm content2`,children:n})]});let u=Object.is(i.value,e),d=i.disabled===!0,f=i.value===void 0&&i.firstOptionId===a,m=()=>{d||u||i.onChange?.(e)};return(0,O.jsxs)(`button`,{id:`${i.groupId}-option-${a}`,type:`button`,role:`radio`,"aria-checked":u,disabled:d,tabIndex:u||f?0:-1,className:o(C.radioItem,u&&C.checked,r),"data-ui":`radio-option`,"data-action":`select-radio-option`,onClick:m,onKeyDown:e=>{if(d||c(e,m))return;let t=e.currentTarget,n=t.closest(`[role="radiogroup"]`),r=Array.from(n?.querySelectorAll(`[role="radio"]:not([disabled])`)??[]);if(!r.length)return;let a=r.indexOf(t);if(a===-1)return;let o=l({currentIndex:a,itemCount:r.length,key:e.key,orientation:i.orientation});o!==null&&(e.preventDefault(),r[o]?.focus(),r[o]?.click())},children:[(0,O.jsxs)(`span`,{className:C.radioItemContent,children:[(0,O.jsx)(`span`,{className:`textNoWrap`,children:t}),n&&(0,O.jsx)(`span`,{className:`fontSizeSm`,children:n})]}),(0,O.jsx)(`span`,{className:C.radioItemIcon,children:(0,O.jsx)(p,{style:{display:`block`,visibility:u?`visible`:`hidden`}})})]})}var D,O,k;function A(){return(A=t((()=>{D=e(n(),1),s(),m(),d(),w(),O=i(),k=(0,D.createContext)(null),T.Option=E,T.__docgenInfo={description:`Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.`,methods:[{name:`Option`,docblock:null,modifiers:[`static`],params:[{name:`{ value, label, description, className }: OptionProps<T>`,optional:!1,type:{name:`OptionProps`,elements:[{name:`T`}],raw:`OptionProps<T>`,alias:`OptionProps`}}],returns:null}],displayName:`RadioGroup`,props:{value:{required:!1,tsType:{name:`T`},description:``},onChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},label:{required:!1,tsType:{name:`string`},description:``},description:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},noWrap:{required:!1,tsType:{name:`literal`,value:`true`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"vertical" | "horizontal"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},"aria-label":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}},E.__docgenInfo={description:"Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.",methods:[],displayName:`Option`,props:{value:{required:!0,tsType:{name:`T`},description:``},label:{required:!0,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{A as n,T as t};
1
+ import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a}from"./iframe-YrfSEgEg.js";import{a as o,i as s,n as c,o as l}from"./utils-tg3ibbzi.js";import{n as u,t as d}from"./ui.module-BDnTp43_.js";var f,p;function m(){return(m=t((()=>{r(),f=[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]],p=a(`circle-check-big`,f)})))()}var h,g,_,v,y,b,x,S,C;function w(){return(w=t((()=>{h=`nINbA6`,g=`GL-UWx`,_=`_6PeF-i`,v=`_5wP4aR`,y=`S3MnZI`,b=`KHJ0ja`,x=`oGmcQH`,S=`k2z8AN`,C={radioGroup:h,noWrap:g,horizontal:_,vertical:v,radioItem:y,checked:b,radioItemContent:x,radioItemIcon:S}})))()}function T({value:e,onChange:t,label:n,description:r,disabled:i,className:a,noWrap:s,orientation:c=`horizontal`,"aria-label":l,children:d}){let f=(0,D.useId)(),p=n?`${f}-label`:void 0,m=r?`${f}-description`:void 0,[h,g]=(0,D.useState)([]),_=(0,D.useCallback)(e=>t?.(e),[t]),v=(0,D.useCallback)(e=>(g(t=>t.includes(e)?t:[...t,e]),()=>{g(t=>t.filter(t=>t!==e))}),[]),y=(0,D.useMemo)(()=>({value:e,onChange:_,disabled:i,orientation:c,groupId:f,labelId:p,descriptionId:m,firstOptionId:h[0],registerOption:v}),[m,i,f,_,p,c,v,h,e]);return(0,O.jsxs)(`div`,{className:o(u.uiElement,i&&u.disabled,a),children:[n&&(0,O.jsx)(`div`,{id:p,className:u.uiLabel,children:n}),r&&(0,O.jsx)(`div`,{id:m,className:u.uiDescription,children:r}),(0,O.jsx)(k.Provider,{value:y,children:(0,O.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":p,"aria-label":p?void 0:l,"aria-describedby":m,"aria-disabled":i||void 0,"data-disabled":i||void 0,className:o(u.uiInputControl,C.radioGroup,s&&C.noWrap,C[c]),children:d})})]})}function E({value:e,label:t,description:n,className:r}){let i=(0,D.useContext)(k),a=(0,D.useId)(),s=i?.registerOption;if((0,D.useLayoutEffect)(()=>{if(s)return s(a)},[s,a]),!i)return(0,O.jsxs)(`div`,{className:o(C.radioItem,r),children:[(0,O.jsx)(`p`,{className:`textNoWrap`,children:t}),n&&(0,O.jsx)(`div`,{className:`fontSizeSm content2`,children:n})]});let u=Object.is(i.value,e),d=i.disabled===!0,f=i.value===void 0&&i.firstOptionId===a,m=()=>{d||u||i.onChange?.(e)};return(0,O.jsxs)(`button`,{id:`${i.groupId}-option-${a}`,type:`button`,role:`radio`,"aria-checked":u,disabled:d,tabIndex:u||f?0:-1,className:o(C.radioItem,u&&C.checked,r),"data-ui":`radio-option`,"data-action":`select-radio-option`,onClick:m,onKeyDown:e=>{if(d||c(e,m))return;let t=e.currentTarget,n=t.closest(`[role="radiogroup"]`),r=Array.from(n?.querySelectorAll(`[role="radio"]:not([disabled])`)??[]);if(!r.length)return;let a=r.indexOf(t);if(a===-1)return;let o=l({currentIndex:a,itemCount:r.length,key:e.key,orientation:i.orientation});o!==null&&(e.preventDefault(),r[o]?.focus(),r[o]?.click())},children:[(0,O.jsxs)(`span`,{className:C.radioItemContent,children:[(0,O.jsx)(`span`,{className:`textNoWrap`,children:t}),n&&(0,O.jsx)(`span`,{className:`fontSizeSm`,children:n})]}),(0,O.jsx)(`span`,{className:C.radioItemIcon,children:(0,O.jsx)(p,{style:{display:`block`,visibility:u?`visible`:`hidden`}})})]})}var D,O,k;function A(){return(A=t((()=>{D=e(n(),1),s(),m(),d(),w(),O=i(),k=(0,D.createContext)(null),T.Option=E,T.__docgenInfo={description:`Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.`,methods:[{name:`Option`,docblock:null,modifiers:[`static`],params:[{name:`{ value, label, description, className }: OptionProps<T>`,optional:!1,type:{name:`OptionProps`,elements:[{name:`T`}],raw:`OptionProps<T>`,alias:`OptionProps`}}],returns:null}],displayName:`RadioGroup`,props:{value:{required:!1,tsType:{name:`T`},description:``},onChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},label:{required:!1,tsType:{name:`string`},description:``},description:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},noWrap:{required:!1,tsType:{name:`literal`,value:`true`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"vertical" | "horizontal"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},"aria-label":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}},E.__docgenInfo={description:"Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.",methods:[],displayName:`Option`,props:{value:{required:!0,tsType:{name:`T`},description:``},label:{required:!0,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{A as n,T as t};
@@ -1,4 +1,4 @@
1
- import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./RadioGroup-CTZXoIcq.js";import{n as i}from"./iframe-B_6aAEqw.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.js";var s=t({Controlled:()=>g,Disabled:()=>v,Vertical:()=>_,__namedExportsOrder:()=>y,default:()=>h});function c(e){return(0,d.jsx)(r,{...e})}function l({args:e,updateArgs:t,options:n,showValue:i=!1}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange?.(n),t({value:n})},children:n.map(e=>(0,d.jsx)(r.Option,{value:e.value,label:e.label,description:e.description},e.value))}),i&&(0,d.jsxs)(`div`,{children:[`Выбрано: `,e.value??`не выбрано`]})]})}function u(e,t=!1){return o((n,r)=>(0,d.jsx)(l,{args:n,updateArgs:r,options:e,showValue:t}))}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{a(),n(),d=i(),f=[{value:`email`,label:`Email`,description:`Письма на корпоративную почту`},{value:`sms`,label:`SMS`,description:`Сообщения на телефон`},{value:`push`,label:`Push`,description:`Уведомления в приложении`}],p=[{value:`draft`,label:`Черновик`},{value:`review`,label:`На согласовании`},{value:`approved`,label:`Утвержден`}],m=[{value:`yes`,label:`Да`},{value:`no`,label:`Нет`}],h={title:`Shared/UI/RadioGroup`,component:c,args:{value:`email`,onChange:()=>{},orientation:`horizontal`,label:`Канал уведомлений`,description:`Выберите основной канал доставки`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{description:`Текущее выбранное значение.`,control:`text`},onChange:{description:`Вызывается при смене выбранной опции.`,control:!1},label:{description:`Заголовок группы опций.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},disabled:{description:`Блокирует выбор опций.`,control:`boolean`},noWrap:{description:`Запрещает перенос опций на новую строку.`,control:`boolean`},orientation:{description:`Ориентация расположения опций.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},children:{description:"Элементы `RadioGroup.Option` внутри группы.",control:!1}}},g={render:u(f,!0),args:{}},_={render:u(p),args:{orientation:`vertical`,label:`Статус документа`,value:`draft`}},v={render:u(m),args:{disabled:!0,value:`yes`}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
1
+ import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./RadioGroup-D4EHkLTb.js";import{n as i}from"./iframe-YrfSEgEg.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.js";var s=t({Controlled:()=>g,Disabled:()=>v,Vertical:()=>_,__namedExportsOrder:()=>y,default:()=>h});function c(e){return(0,d.jsx)(r,{...e})}function l({args:e,updateArgs:t,options:n,showValue:i=!1}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange?.(n),t({value:n})},children:n.map(e=>(0,d.jsx)(r.Option,{value:e.value,label:e.label,description:e.description},e.value))}),i&&(0,d.jsxs)(`div`,{children:[`Выбрано: `,e.value??`не выбрано`]})]})}function u(e,t=!1){return o((n,r)=>(0,d.jsx)(l,{args:n,updateArgs:r,options:e,showValue:t}))}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{a(),n(),d=i(),f=[{value:`email`,label:`Email`,description:`Письма на корпоративную почту`},{value:`sms`,label:`SMS`,description:`Сообщения на телефон`},{value:`push`,label:`Push`,description:`Уведомления в приложении`}],p=[{value:`draft`,label:`Черновик`},{value:`review`,label:`На согласовании`},{value:`approved`,label:`Утвержден`}],m=[{value:`yes`,label:`Да`},{value:`no`,label:`Нет`}],h={title:`UI/RadioGroup`,component:c,args:{value:`email`,onChange:()=>{},orientation:`horizontal`,label:`Канал уведомлений`,description:`Выберите основной канал доставки`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{description:`Текущее выбранное значение.`,control:`text`},onChange:{description:`Вызывается при смене выбранной опции.`,control:!1},label:{description:`Заголовок группы опций.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},disabled:{description:`Блокирует выбор опций.`,control:`boolean`},noWrap:{description:`Запрещает перенос опций на новую строку.`,control:`boolean`},orientation:{description:`Ориентация расположения опций.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},children:{description:"Элементы `RadioGroup.Option` внутри группы.",control:!1}}},g={render:u(f,!0),args:{}},_={render:u(p),args:{orientation:`vertical`,label:`Статус документа`,value:`draft`}},v={render:u(m),args:{disabled:!0,value:`yes`}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
2
2
  render: createRadioGroupStoryRender(notificationOptions, true),
3
3
  args: {}
4
4
  }`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
@@ -1 +1 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-B_6aAEqw.js";import{a as r,i}from"./utils-tg3ibbzi.js";var a,o,s,c;function l(){return(l=e((()=>{a=t(),i(),o=n(),s=(0,a.forwardRef)(({children:e,height:t,stable:n,overscroll:i,className:a},s)=>(0,o.jsx)(`div`,{ref:s,className:r(`scrollable`,n&&`stable`,i&&`overscroll`,a),style:{height:t},children:e})),c=(0,a.forwardRef)(({blockClassName:e,...t},n)=>(0,o.jsx)(`div`,{className:r(e,`overflowHidden w100 h100`),children:(0,o.jsx)(s,{ref:n,...t})})),s.__docgenInfo={description:``,methods:[],displayName:`Scrollable`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`PropsWithChildren`]},c.__docgenInfo={description:``,methods:[],displayName:`ScrollableBlock`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``},blockClassName:{required:!1,tsType:{name:`string`},description:``}},composes:[`PropsWithChildren`]}})))()}export{l as n,s as t};
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-YrfSEgEg.js";import{a as r,i}from"./utils-tg3ibbzi.js";var a,o,s,c;function l(){return(l=e((()=>{a=t(),i(),o=n(),s=(0,a.forwardRef)(({children:e,height:t,stable:n,overscroll:i,className:a},s)=>(0,o.jsx)(`div`,{ref:s,className:r(`scrollable`,n&&`stable`,i&&`overscroll`,a),style:{height:t},children:e})),c=(0,a.forwardRef)(({blockClassName:e,...t},n)=>(0,o.jsx)(`div`,{className:r(e,`overflowHidden w100 h100`),children:(0,o.jsx)(s,{ref:n,...t})})),s.__docgenInfo={description:``,methods:[],displayName:`Scrollable`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`PropsWithChildren`]},c.__docgenInfo={description:``,methods:[],displayName:`ScrollableBlock`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``},blockClassName:{required:!1,tsType:{name:`string`},description:``}},composes:[`PropsWithChildren`]}})))()}export{l as n,s as t};
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B_6aAEqw.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-IjspN281.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Select.stories-CYJpEv_P.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DNj8uFSt.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Select.stories-yIRnlqrF.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
2
2
  `,(0,C.jsx)(u,{children:`Select`}),`
3
3
  `,(0,C.jsx)(o,{children:`Getter-based select для примитивов и сложных объектных option`}),`
4
4
  `,(0,C.jsx)(t.p,{children:`Select уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
@@ -8,7 +8,7 @@ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-B
8
8
  `,(0,C.jsx)(i,{of:b}),`
9
9
  `,(0,C.jsx)(t.pre,{children:(0,C.jsx)(t.code,{className:`language-tsx`,children:`import { useState } from "react";
10
10
 
11
- import { Select } from "@/shared/ui";
11
+ import { Select } from "@ryuzaki13/react-foundation-ui";
12
12
 
13
13
  const options = [
14
14
  { id: 1, name: "Отдел продаж", code: "SLS" },
@@ -1,4 +1,4 @@
1
- import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./check-ue9rVspp.js";import{n as i}from"./iframe-B_6aAEqw.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{n as s,t as ee}from"./OptionButton-D0afktaf.js";import{n as c,t as l}from"./ui.module-BDnTp43_.js";import{c as u,d,f,i as p,l as te,m,n as ne,p as re,r as h,s as ie,t as g,u as _}from"./usePickerTriggerController-D3h4HqB9.js";import{n as v,t as ae}from"./Option-Bdu68XEe.js";import{i as y,n as oe,r as se,t as b}from"./usePickerQuery-Cug-ZpN1.js";import{n as x,t as S}from"./usePickerDefaultFilter-5Q1pAV4d.js";import{n as C,t as ce}from"./CustomOptionButton-BHA-6inc.js";function le({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[d(t(e)),d(n?.(e)),d(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}function w(){return(w=e((()=>{f()})))()}function ue(e,t){let n=[];return e.forEach((e,r)=>{let i=t(e),a=n.at(-1),o=a?.group?.key===i?.key;if(a&&o){a.items.push({option:e,index:r});return}n.push({group:i,items:[{option:e,index:r}]})}),n}function T(e){let{label:t,description:n,disabled:i,placeholder:o,size:s,options:l,value:u,onChange:f,getOptionKey:m,getOptionLabel:h,getOptionCode:g,getOptionSearchText:_,getOptionDisabled:v,getOptionAriaLabel:y,getOptionGroup:b,getOptionClassName:S,renderOption:C,renderValue:w,className:T,buttonClassName:O,optionsClassName:de,optionsMaxWidth:fe,optionsContentClassName:pe,searchable:k=!1,defaultFilter:me=!0,query:he,defaultQuery:ge,onQuery:_e,renderPopupHeader:ve,emptyState:ye,isLoading:A,errorState:j,placement:M=`bottom-start`,clearable:N=!1}=e,P=f,F=(0,E.useRef)(null),[I,be]=(0,E.useState)(!1),L=k?`search-single`:`display`,R=u===void 0?void 0:m(u),z=R===void 0?void 0:l.find(e=>m(e)===R)??u,{query:B,setQuery:V,resetQueryOnClose:xe}=oe({query:he,defaultQuery:ge,onQuery:_e,triggerMode:L}),Se=e=>{I&&!e&&xe&&V(``),be(e)},Ce=(0,E.useCallback)(e=>_?.(e)??le({option:e,getOptionLabel:h,getOptionCode:g,getOptionGroup:b}),[_,g,b,h]),H=x({options:l,query:B,enabled:k&&me,getSearchText:Ce}),U=(0,E.useMemo)(()=>b?ue(H,b):void 0,[b,H]),we=R===void 0?-1:H.findIndex(e=>m(e)===R),{activeIndex:Te,context:Ee,floatingStyles:De,getFloatingProps:Oe,setReference:ke,setFloating:Ae,setOptionRef:je,close:W,openList:Me,toggleOpen:Ne,selectOption:G,selectActiveOption:Pe,handleReferenceKeyDown:Fe,handleFloatingKeyDown:Ie,getOptionId:Le,getActiveOptionId:K}=p({options:H,selectedIndex:we,open:I,onOpenChange:Se,getOptionDisabled:v,onSelect:P,disabled:i,placement:M,triggerMode:L}),q=H.length>0,J=z===void 0?void 0:h(z),Y=z===void 0?void 0:w?w(z):J,Re=d(J),ze=z===void 0?void 0:d(g?.(z)),X=d(Y)??Re??ze??(R===void 0?``:String(R)),Z=k&&(I||B.length>0)?B:z===void 0?``:X,Q=ne({mode:L,open:I,currentQuery:B,hasDisplayValue:z!==void 0,inputRef:F,setQuery:V,openList:Me,close:W,toggleOpen:Ne}),Be=e=>{F.current=e},Ve=()=>{N&&P(void 0),V(``),W()},$=(e,t,n)=>{let i=m(t),a=R!==void 0&&i===R,o=n===Te,s=v?.(t)??!1,c={active:o,selected:a,disabled:s};return(0,D.jsx)(ae,{id:Le(e,n),ref:e=>je(n,e),role:`option`,"aria-selected":a,"aria-disabled":s||void 0,"aria-label":y?.(t),active:o,selected:a,disabled:s,className:S?.(t,c),children:C?(0,D.jsx)(ce,{tabIndex:-1,disabled:s,onMouseDown:e=>e.preventDefault(),onClick:()=>G(t),children:C(t,c)}):(0,D.jsx)(ee,{tabIndex:-1,disabled:s,icon:a?(0,D.jsx)(r,{}):(0,D.jsx)(`span`,{}),text:h(t),code:g?.(t),onMouseDown:e=>e.preventDefault(),onClick:()=>G(t)})},i)};return(0,D.jsx)(re,{label:t,description:n,disabled:i,size:s,className:T,children:({controlId:e,labelId:n,describedBy:r})=>{let s=`${e}-listbox`;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ie,{ref:Be,rootRef:ke,id:e,type:`text`,disabled:i,readOnly:!k,autoComplete:`off`,role:`combobox`,isLoading:A,open:I,optionCount:l.length,label:t,placeholder:o,value:Z,selectedValue:Y??X,hasSelection:z!==void 0,showSelectedValue:!1,clearable:!!N,onClear:Ve,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,"aria-labelledby":n,"aria-describedby":r,"aria-haspopup":`listbox`,"aria-expanded":I,"aria-controls":I?s:void 0,"aria-autocomplete":k?`list`:`none`,"aria-activedescendant":I?K(s):void 0,inputClassName:a(O,`textOverflow`),onChange:e=>{k&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Fe(e),!e.defaultPrevented&&Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:Pe,enableSpaceActivation:!k})}}),(0,D.jsx)(te,{open:I,context:Ee,floatingStyles:De,listId:s,labelId:n,descriptionId:r,activeOptionId:q?K(s):void 0,setFloating:Ae,getFloatingProps:Oe,onKeyDown:Ie,className:de,maxWidth:fe,toolbar:ve,children:(0,D.jsx)(`div`,{className:a(pe,`h100 scrollable`),children:q?U?U.map((e,t)=>{let n=e.group?`${s}-group-${t}`:void 0,r=e.items.map(({option:e,index:t})=>$(s,e,t));return e.group?(0,D.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,D.jsx)(`div`,{id:n,className:c.uiPopupGroupLabel,children:e.group.label}),r]},`group-${String(e.group.key)}-${t}`):(0,D.jsx)(E.Fragment,{children:r},`options-${t}`)}):H.map((e,t)=>$(s,e,t)):(0,D.jsx)(se,{emptyState:ye,errorState:j})})})]})}})}var E,D;function O(){return(O=e((()=>{E=t(),o(),n(),C(),v(),s(),f(),m(),_(),y(),u(),S(),h(),b(),g(),l(),w(),D=i(),T.__docgenInfo={description:`Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.`,methods:[],displayName:`Select`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},getOptionKey:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionKey`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionLabel:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionSearchText:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string | readonly string[]`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`string | readonly string[]`,elements:[{name:`string`},{name:`unknown`}]}}},description:`Явный поисковый текст для опции с произвольным ReactNode-render.`},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionGroup:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionGroup | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`SelectOptionGroup | undefined`,elements:[{name:`signature`,type:`object`,raw:`{
1
+ import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./check-CS2caYIB.js";import{n as i}from"./iframe-YrfSEgEg.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{n as s,t as ee}from"./OptionButton-CdYqQAwC.js";import{n as c,t as l}from"./ui.module-BDnTp43_.js";import{c as u,d,f,i as p,l as te,m,n as ne,p as re,r as h,s as ie,t as g,u as _}from"./usePickerTriggerController-DeZhyi9h.js";import{n as v,t as ae}from"./Option-BwWLsS-Q.js";import{i as y,n as oe,r as se,t as b}from"./usePickerQuery-DJMG-4Gl.js";import{n as x,t as S}from"./usePickerDefaultFilter-5Q1pAV4d.js";import{n as C,t as ce}from"./CustomOptionButton-hKfsqWNH.js";function le({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[d(t(e)),d(n?.(e)),d(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}function w(){return(w=e((()=>{f()})))()}function ue(e,t){let n=[];return e.forEach((e,r)=>{let i=t(e),a=n.at(-1),o=a?.group?.key===i?.key;if(a&&o){a.items.push({option:e,index:r});return}n.push({group:i,items:[{option:e,index:r}]})}),n}function T(e){let{label:t,description:n,disabled:i,placeholder:o,size:s,options:l,value:u,onChange:f,getOptionKey:m,getOptionLabel:h,getOptionCode:g,getOptionSearchText:_,getOptionDisabled:v,getOptionAriaLabel:y,getOptionGroup:b,getOptionClassName:S,renderOption:C,renderValue:w,className:T,buttonClassName:O,optionsClassName:de,optionsMaxWidth:fe,optionsContentClassName:pe,searchable:k=!1,defaultFilter:me=!0,query:he,defaultQuery:ge,onQuery:_e,renderPopupHeader:ve,emptyState:ye,isLoading:A,errorState:j,placement:M=`bottom-start`,clearable:N=!1}=e,P=f,F=(0,E.useRef)(null),[I,be]=(0,E.useState)(!1),L=k?`search-single`:`display`,R=u===void 0?void 0:m(u),z=R===void 0?void 0:l.find(e=>m(e)===R)??u,{query:B,setQuery:V,resetQueryOnClose:xe}=oe({query:he,defaultQuery:ge,onQuery:_e,triggerMode:L}),Se=e=>{I&&!e&&xe&&V(``),be(e)},Ce=(0,E.useCallback)(e=>_?.(e)??le({option:e,getOptionLabel:h,getOptionCode:g,getOptionGroup:b}),[_,g,b,h]),H=x({options:l,query:B,enabled:k&&me,getSearchText:Ce}),U=(0,E.useMemo)(()=>b?ue(H,b):void 0,[b,H]),we=R===void 0?-1:H.findIndex(e=>m(e)===R),{activeIndex:Te,context:Ee,floatingStyles:De,getFloatingProps:Oe,setReference:ke,setFloating:Ae,setOptionRef:je,close:W,openList:Me,toggleOpen:Ne,selectOption:G,selectActiveOption:Pe,handleReferenceKeyDown:Fe,handleFloatingKeyDown:Ie,getOptionId:Le,getActiveOptionId:K}=p({options:H,selectedIndex:we,open:I,onOpenChange:Se,getOptionDisabled:v,onSelect:P,disabled:i,placement:M,triggerMode:L}),q=H.length>0,J=z===void 0?void 0:h(z),Y=z===void 0?void 0:w?w(z):J,Re=d(J),ze=z===void 0?void 0:d(g?.(z)),X=d(Y)??Re??ze??(R===void 0?``:String(R)),Z=k&&(I||B.length>0)?B:z===void 0?``:X,Q=ne({mode:L,open:I,currentQuery:B,hasDisplayValue:z!==void 0,inputRef:F,setQuery:V,openList:Me,close:W,toggleOpen:Ne}),Be=e=>{F.current=e},Ve=()=>{N&&P(void 0),V(``),W()},$=(e,t,n)=>{let i=m(t),a=R!==void 0&&i===R,o=n===Te,s=v?.(t)??!1,c={active:o,selected:a,disabled:s};return(0,D.jsx)(ae,{id:Le(e,n),ref:e=>je(n,e),role:`option`,"aria-selected":a,"aria-disabled":s||void 0,"aria-label":y?.(t),active:o,selected:a,disabled:s,className:S?.(t,c),children:C?(0,D.jsx)(ce,{tabIndex:-1,disabled:s,onMouseDown:e=>e.preventDefault(),onClick:()=>G(t),children:C(t,c)}):(0,D.jsx)(ee,{tabIndex:-1,disabled:s,icon:a?(0,D.jsx)(r,{}):(0,D.jsx)(`span`,{}),text:h(t),code:g?.(t),onMouseDown:e=>e.preventDefault(),onClick:()=>G(t)})},i)};return(0,D.jsx)(re,{label:t,description:n,disabled:i,size:s,className:T,children:({controlId:e,labelId:n,describedBy:r})=>{let s=`${e}-listbox`;return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(ie,{ref:Be,rootRef:ke,id:e,type:`text`,disabled:i,readOnly:!k,autoComplete:`off`,role:`combobox`,isLoading:A,open:I,optionCount:l.length,label:t,placeholder:o,value:Z,selectedValue:Y??X,hasSelection:z!==void 0,showSelectedValue:!1,clearable:!!N,onClear:Ve,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,"aria-labelledby":n,"aria-describedby":r,"aria-haspopup":`listbox`,"aria-expanded":I,"aria-controls":I?s:void 0,"aria-autocomplete":k?`list`:`none`,"aria-activedescendant":I?K(s):void 0,inputClassName:a(O,`textOverflow`),onChange:e=>{k&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Fe(e),!e.defaultPrevented&&Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:Pe,enableSpaceActivation:!k})}}),(0,D.jsx)(te,{open:I,context:Ee,floatingStyles:De,listId:s,labelId:n,descriptionId:r,activeOptionId:q?K(s):void 0,setFloating:Ae,getFloatingProps:Oe,onKeyDown:Ie,className:de,maxWidth:fe,toolbar:ve,children:(0,D.jsx)(`div`,{className:a(pe,`h100 scrollable`),children:q?U?U.map((e,t)=>{let n=e.group?`${s}-group-${t}`:void 0,r=e.items.map(({option:e,index:t})=>$(s,e,t));return e.group?(0,D.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,D.jsx)(`div`,{id:n,className:c.uiPopupGroupLabel,children:e.group.label}),r]},`group-${String(e.group.key)}-${t}`):(0,D.jsx)(E.Fragment,{children:r},`options-${t}`)}):H.map((e,t)=>$(s,e,t)):(0,D.jsx)(se,{emptyState:ye,errorState:j})})})]})}})}var E,D;function O(){return(O=e((()=>{E=t(),o(),n(),C(),v(),s(),f(),m(),_(),y(),u(),S(),h(),b(),g(),l(),w(),D=i(),T.__docgenInfo={description:`Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.`,methods:[],displayName:`Select`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},getOptionKey:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionKey`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionLabel:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionSearchText:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string | readonly string[]`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`string | readonly string[]`,elements:[{name:`string`},{name:`unknown`}]}}},description:`Явный поисковый текст для опции с произвольным ReactNode-render.`},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionGroup:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionGroup | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`SelectOptionGroup | undefined`,elements:[{name:`signature`,type:`object`,raw:`{
2
2
  readonly key: SelectOptionKey;
3
3
  readonly label: ReactNode;
4
4
  }`,signature:{properties:[{key:`key`,value:{name:`string`,required:!0}},{key:`label`,value:{name:`ReactNode`,required:!0}}]}},{name:`undefined`}]}}},description:``},getOptionClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => string | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{