@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.
- package/dist/picker/model/usePickerFloatingListbox.d.ts +1 -1
- package/package.json +3 -3
- package/storybook-static/assets/{Badge-BIHyYCo7.js → Badge-CAM2jkFm.js} +6 -6
- package/storybook-static/assets/{Badge.stories-DLTrI-x_.js → Badge.stories-DRjjmR32.js} +1 -1
- package/storybook-static/assets/{BadgeList-CDdRxEFa.js → BadgeList-D4Swhp3V.js} +1 -1
- package/storybook-static/assets/{Button-XTBI9blK.js → Button-1UZNz2k4.js} +1 -1
- package/storybook-static/assets/{Button-Clgno5I9.js → Button-4YB5_DwT.js} +6 -6
- package/storybook-static/assets/{Button.stories-B-0_zqxk.js → Button.stories-B0sdwFqZ.js} +1 -1
- package/storybook-static/assets/{CalendarView-5yfJ6Sx-.js → CalendarView-sSyZ5jCR.js} +1 -1
- package/storybook-static/assets/{CheckBox-DZh7cCZZ.js → CheckBox-BdGaGy4_.js} +2 -2
- package/storybook-static/assets/{CheckBox-BNpn-ZBB.js → CheckBox-Cpt5rjSg.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories--dSzC2Mf.js → CheckBox.stories-6d6-rkNo.js} +1 -1
- package/storybook-static/assets/Color-6AOWCN3U-sKBB2RBT.js +1 -0
- package/storybook-static/assets/{ContextMenu-CTrTO0H7.js → ContextMenu-B155_m2F.js} +1 -1
- package/storybook-static/assets/{ContextMenu-24LNOr91.js → ContextMenu-BLnt5p2W.js} +2 -2
- package/storybook-static/assets/{ContextMenu.stories-Cbq6B29u.js → ContextMenu.stories-B8sv4v3Q.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-BHA-6inc.js → CustomOptionButton-hKfsqWNH.js} +1 -1
- package/storybook-static/assets/{DateInput-Bmwgwx_r.js → DateInput-DvIl6s-f.js} +2 -2
- package/storybook-static/assets/{DateInput-Ceqy8_hm.js → DateInput-XvSKmvqi.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-C0oDEW0V.js → DateInput.stories-SU41oukh.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DrbWZdO7.js → DateRangePresetSelect-BCLZcXdv.js} +2 -2
- package/storybook-static/assets/{DateRangePresetSelect-EUO5ju87.js → DateRangePresetSelect-tz-3m9UI.js} +1 -1
- package/storybook-static/assets/DateRangePresetSelect.stories-D8zuTlHo.js +19 -0
- package/storybook-static/assets/{Detail-BdMA8W8a.js → Detail-Ct95dA1k.js} +2 -2
- package/storybook-static/assets/{Detail.stories-kYjF0OE8.js → Detail.stories-Chedt7EX.js} +1 -1
- package/storybook-static/assets/{Dialog-B__C03-Z.js → Dialog-BX3QZOnt.js} +1 -1
- package/storybook-static/assets/{Dialog-DGlxegJa.js → Dialog-C7Duw0PA.js} +2 -2
- package/storybook-static/assets/Dialog.stories-J0w0R0Db.js +22 -0
- package/storybook-static/assets/{Disclosure-BXUWkiag.js → Disclosure-BzlV54RK.js} +2 -2
- package/storybook-static/assets/Disclosure.stories-z7gnOr5h.js +23 -0
- package/storybook-static/assets/{DisclosureGroup-C57FHp13.js → DisclosureGroup-c179TOi5.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-CiLWX8JT.js → DocsRenderer-JROSPFPF-Ba9N3QAD.js} +1 -1
- package/storybook-static/assets/{DropZone-DCGBDcam.js → DropZone-D5X0oV8O.js} +1 -1
- package/storybook-static/assets/{DropZone-BPOCc8un.js → DropZone-vxUU2p-k.js} +2 -2
- package/storybook-static/assets/DropZone.stories-iNXgESGM.js +26 -0
- package/storybook-static/assets/{DropdownMenu-DDHBuZt5.js → DropdownMenu-CJlpP3HB.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-mmlDn8ts.js → ExpandableActionPanel-CmkEByID.js} +1 -1
- package/storybook-static/assets/ExpandableActionPanel.stories-DmRLaVxn.js +9 -0
- package/storybook-static/assets/{Flex-DHMDn1uW.js → Flex-tVAYZ-nU.js} +2 -2
- package/storybook-static/assets/{Flex.stories-BgYOys3T.js → Flex.stories-CVYDcbvw.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-BL_nJJrL.js → FloatingPopover-DMTLPzR3.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-Od6SSoxO.js → FormattedTableCell-DP6-D86D.js} +1 -1
- package/storybook-static/assets/{Grid-CS-mSNKX.js → Grid-Vm-amT-a.js} +2 -2
- package/storybook-static/assets/{Grid.stories-DWCKacQB.js → Grid.stories-B0beH9CK.js} +1 -1
- package/storybook-static/assets/ImageCropper.stories-Dt-IA4EB.js +131 -0
- package/storybook-static/assets/{ImageRenderer-jDryL3Z9.js → ImageRenderer-DudkQ-3G.js} +1 -1
- package/storybook-static/assets/ImageRenderer.stories-CNeSiXkj.js +34 -0
- package/storybook-static/assets/ImageView.stories-DMtpy--X.js +14 -0
- package/storybook-static/assets/{ImageViewer.stories-CKUiWvv7.js → ImageViewer.stories-BkoV0li4.js} +3 -3
- package/storybook-static/assets/{ImageViewerRuntime-DUjkq3km.js → ImageViewerRuntime-BLgQCsSL.js} +1 -1
- package/storybook-static/assets/{Input-C5eMHeOp.js → Input-MPCFEMQm.js} +2 -2
- package/storybook-static/assets/{Input-Q95tdikw.js → Input-WhTMStKL.js} +1 -1
- package/storybook-static/assets/Input.stories-B50KKSiz.js +52 -0
- package/storybook-static/assets/{InputDateTime-D8iFVC4N.js → InputDateTime-1zTFbNEF.js} +2 -2
- package/storybook-static/assets/{InputDateTime.stories-Cdz1C1X5.js → InputDateTime.stories-B7W4BkU6.js} +1 -1
- package/storybook-static/assets/{InputFile-CEMWMZ8W.js → InputFile-B3QB0SLD.js} +1 -1
- package/storybook-static/assets/{InputFile-CVgdFBc9.js → InputFile-DYHuD6B8.js} +2 -2
- package/storybook-static/assets/InputFile.stories-B-hrCtm_.js +27 -0
- package/storybook-static/assets/{InputFiles-AtxulUya.js → InputFiles-CPPAJxgC.js} +1 -1
- package/storybook-static/assets/{InputFiles-BWh55c4D.js → InputFiles-Dpa2BiyZ.js} +2 -2
- package/storybook-static/assets/InputFiles.stories-1ocz2wNw.js +26 -0
- package/storybook-static/assets/{InputFilesList-Dx0Dhms2.js → InputFilesList-D2Ro-1Hm.js} +1 -1
- package/storybook-static/assets/{InputImage-DKCC82SZ.js → InputImage-BDC2lyVo.js} +1 -1
- package/storybook-static/assets/{InputImage-wBNZRvrJ.js → InputImage-DPmkvGcl.js} +2 -2
- package/storybook-static/assets/InputImage.stories-D3hWZBtn.js +56 -0
- package/storybook-static/assets/{InteractiveComponents-CHTFQ4qL.js → InteractiveComponents-Djz3CtkU.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-DJxkbHUR.js → InteractiveComponents.stories-CJ2VWPLD.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-Dv5O_Hy0.js → LayoutPicker-BFShZhhi.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-D887Y2XB.js → LayoutPicker-CMMEs83d.js} +3 -3
- package/storybook-static/assets/{LayoutPicker.stories-DbN3i5QL.js → LayoutPicker.stories-Cdb_UnBI.js} +1 -1
- package/storybook-static/assets/{Listbox-Cnzu7mYT.js → Listbox-B7nZijLJ.js} +2 -2
- package/storybook-static/assets/{Listbox-C4dx1h82.js → Listbox-DM1vuGVD.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BO1Df9Mq.js → Listbox.stories-DTs-ANe9.js} +1 -1
- package/storybook-static/assets/{Modal-CMacWyay.js → Modal-D0dkB7lh.js} +3 -3
- package/storybook-static/assets/{Modal.stories-DMrYaonL.js → Modal.stories-BOh10Fkn.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-NbdotfpM.js → ModalManagerProvider-CEEmviJU.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DEPuEcGb.js → MultiSelect-CbrRNOEZ.js} +2 -2
- package/storybook-static/assets/{MultiSelect-N4vTBX-X.js → MultiSelect-oJhMsKuC.js} +1 -1
- package/storybook-static/assets/MultiSelect.stories-mLWhd-au.js +55 -0
- package/storybook-static/assets/{NoData-BdrsNRw1.js → NoData-C7Kj62Zk.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-BmcIZZNC.js → NotificationsHost-D_i7EsJA.js} +3 -3
- package/storybook-static/assets/{NotificationsHost.stories-Bf-a-dC3.js → NotificationsHost.stories-5GPO8lQl.js} +2 -2
- package/storybook-static/assets/{ODataMultiSelect-DVVDe1Yr.js → ODataMultiSelect-B6hKhD2q.js} +2 -2
- package/storybook-static/assets/{ODataMultiSelect.stories-DQDXXq_9.js → ODataMultiSelect.stories-BO7WaR9I.js} +2 -2
- package/storybook-static/assets/{ODataSelect-B88g3t3l.js → ODataSelect-BW8S-U91.js} +2 -2
- package/storybook-static/assets/{ODataSelect.stories-BPWp8xtb.js → ODataSelect.stories-rVZ8RYIu.js} +2 -2
- package/storybook-static/assets/{ODataTreeMultiSelect-DN0hWqto.js → ODataTreeMultiSelect-BhvUurca.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-BDDEO9n2.js → ODataTreeMultiSelect.stories-CM8wiVsI.js} +2 -2
- package/storybook-static/assets/{ODataTreeSelect-BpuPkpt_.js → ODataTreeSelect-B96PJWcL.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-Rgosfapi.js → ODataTreeSelect.stories-HHLJZrD8.js} +2 -2
- package/storybook-static/assets/{OneStepScroller-B8wmmQwf.js → OneStepScroller-DzrN3WVZ.js} +1 -1
- package/storybook-static/assets/{Option-Bdu68XEe.js → Option-BwWLsS-Q.js} +1 -1
- package/storybook-static/assets/{OptionButton-D0afktaf.js → OptionButton-CdYqQAwC.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-D_NZ5ghQ.js → PeriodSelect-CJejEx-e.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-C7DVNvsY.js → PeriodSelect-_GvgXTKk.js} +1 -1
- package/storybook-static/assets/PeriodSelect.stories-CGNmEIBG.js +50 -0
- package/storybook-static/assets/{PickerTriggerActions-ZNVb9eeZ.js → PickerTriggerActions-apA_Ruie.js} +1 -1
- package/storybook-static/assets/{Popover-CCGDNoKF.js → Popover-BYGM8Bjj.js} +2 -2
- package/storybook-static/assets/{Popover-CewYrQZr.js → Popover-CDeopGLJ.js} +1 -1
- package/storybook-static/assets/{Popover.stories-COIDcy4l.js → Popover.stories-DTeZeyAB.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DroAaDSa.js → PresetRangeDateInput-BdFjz9Ed.js} +2 -2
- package/storybook-static/assets/{PresetRangeDateInput-DclYoHcQ.js → PresetRangeDateInput-D3FBpZqV.js} +1 -1
- package/storybook-static/assets/PresetRangeDateInput.stories-B2HCz7Tw.js +3 -0
- package/storybook-static/assets/{PresetSelect-DCGdwz-H.js → PresetSelect-BgzVe_NB.js} +1 -1
- package/storybook-static/assets/{README-C6mK2jiz.js → README-1tFUbU_N.js} +1 -1
- package/storybook-static/assets/{README-C0tHxk9e.js → README-9flk-o3B.js} +1 -1
- package/storybook-static/assets/{README-DK-nosD8.js → README-B5QVQmyU.js} +1 -1
- package/storybook-static/assets/{README-j6FF9vf5.js → README-B8dyxeZz.js} +9 -12
- package/storybook-static/assets/{README-QnKC46FO.js → README-BJEbnNWP.js} +5 -9
- package/storybook-static/assets/{README-CMRfMvBh.js → README-BRnZl0of.js} +4 -4
- package/storybook-static/assets/{README-B8PHFNI6.js → README-BSrGqFaw.js} +1 -1
- package/storybook-static/assets/{README-DWrWXc67.js → README-BTp9nnLv.js} +3 -3
- package/storybook-static/assets/{README-DFDO19TR.js → README-BUkpxX-E.js} +4 -4
- package/storybook-static/assets/{README-j4oj7GSR.js → README-Bht25HeR.js} +1 -1
- package/storybook-static/assets/{README-SM_eIjlq.js → README-Br9h1slQ.js} +4 -4
- package/storybook-static/assets/{README-Gw_kdXei.js → README-BtPehMeb.js} +4 -8
- package/storybook-static/assets/{README-BqBKX_xQ.js → README-Bv9s5Hlv.js} +4 -7
- package/storybook-static/assets/{README-BaupBcvr.js → README-C2rr_CMA.js} +1 -1
- package/storybook-static/assets/{README-B4FGWSHR.js → README-C8K3rQpu.js} +4 -4
- package/storybook-static/assets/{README-Bq8Gw9ut.js → README-CBhnA3Kz.js} +3 -3
- package/storybook-static/assets/{README-BBDVhq-F.js → README-C_uOxFAl.js} +3 -3
- package/storybook-static/assets/{README-DQ3UG1-2.js → README-CeuRBAf6.js} +1 -1
- package/storybook-static/assets/{README-B5TiIjbQ.js → README-Chc7eGGc.js} +1 -1
- package/storybook-static/assets/{README-BLXxOqWU.js → README-Cl2jxLna.js} +5 -5
- package/storybook-static/assets/{README-BoojQHna.js → README-CuYqzgi0.js} +1 -1
- package/storybook-static/assets/{README-BDEEI-me.js → README-Cuj7DFn9.js} +5 -8
- package/storybook-static/assets/{README-Db-VD9A-.js → README-CvrH-776.js} +1 -1
- package/storybook-static/assets/{README-CDO4U2L-.js → README-CxsAd0Iq.js} +1 -1
- package/storybook-static/assets/{README-DXAnOakM.js → README-DGTIYOSH.js} +3 -6
- package/storybook-static/assets/{README-C9V17f1i.js → README-DHJwCm5f.js} +14 -14
- package/storybook-static/assets/{README-eKZfcYEw.js → README-DLBEUtiL.js} +1 -1
- package/storybook-static/assets/{README-CVydkudU.js → README-DNDYDuQ4.js} +4 -8
- package/storybook-static/assets/{README-UY3fsLu_.js → README-DQSMXoRa.js} +3 -5
- package/storybook-static/assets/{README-B0LFAdG7.js → README-DSsqg62x.js} +4 -8
- package/storybook-static/assets/{README-CG7cgejD.js → README-DYKVnI5h.js} +4 -8
- package/storybook-static/assets/{README-Bemrp1iw.js → README-DZmDqmSd.js} +12 -12
- package/storybook-static/assets/{README-CbQE6RqS.js → README-DcJ05Rnh.js} +1 -1
- package/storybook-static/assets/{README-jnMsm42G.js → README-Dju2IqV_.js} +1 -1
- package/storybook-static/assets/{README-MUkRRO8C.js → README-DldTDL_-.js} +1 -1
- package/storybook-static/assets/{README-BTM8wY-Q.js → README-Dq0P8Ach.js} +3 -7
- package/storybook-static/assets/{README-BnvGfIB_.js → README-GstpCBI6.js} +1 -1
- package/storybook-static/assets/{README-Brb_uBB0.js → README-HhDoM8Gq.js} +2 -2
- package/storybook-static/assets/{README-BQng9oML.js → README-I0-Ly9-N.js} +4 -8
- package/storybook-static/assets/{README-DXgQjmDb.js → README-NwNz8xro.js} +1 -5
- package/storybook-static/assets/{README-CGv6MRmX.js → README-OGP9mnSD.js} +4 -4
- package/storybook-static/assets/{README-B2pks9-S.js → README-Se6780nc.js} +1 -1
- package/storybook-static/assets/{README-DK77wEHj.js → README-VwNH_K60.js} +1 -1
- package/storybook-static/assets/{README-Dq6K08x4.js → README-_aVIdcMd.js} +4 -4
- package/storybook-static/assets/{README-HKNlRLs4.js → README-bhX-QiSo.js} +3 -3
- package/storybook-static/assets/{README-TpwnHOuM.js → README-eqGIA1ao.js} +4 -8
- package/storybook-static/assets/{README-Cv6X1gyB.js → README-fLJ5n8A8.js} +6 -9
- package/storybook-static/assets/{README-B6bmU7Tq.js → README-g3WhSoX3.js} +3 -3
- package/storybook-static/assets/{README-CRdPVRby.js → README-m0xvi4o1.js} +1 -1
- package/storybook-static/assets/{README-CIS29z6p.js → README-mXAkjKF0.js} +1 -1
- package/storybook-static/assets/{README-BZh0P4dJ.js → README-n3wmMhlD.js} +1 -4
- package/storybook-static/assets/{README-BqpsuZii.js → README-z2leBvSk.js} +3 -3
- package/storybook-static/assets/{RadioButton-CioheQT6.js → RadioButton-DqEZ3dh2.js} +2 -2
- package/storybook-static/assets/{RadioButton-CN-1Bmu-.js → RadioButton-JEqzXOJN.js} +1 -1
- package/storybook-static/assets/RadioButton.stories-CzIM9dix.js +32 -0
- package/storybook-static/assets/{RadioGroup-CJzzJ3Fs.js → RadioGroup-COIsrK0r.js} +2 -2
- package/storybook-static/assets/{RadioGroup-CTZXoIcq.js → RadioGroup-D4EHkLTb.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-C7N9yLcN.js → RadioGroup.stories-BdAv58pJ.js} +1 -1
- package/storybook-static/assets/{Scrollable-BOTJbzkH.js → Scrollable-noVIQseX.js} +1 -1
- package/storybook-static/assets/{Select-D2yqrKAE.js → Select-9v7A23y8.js} +2 -2
- package/storybook-static/assets/{Select-CNAFGsHq.js → Select-DgPcfbEp.js} +1 -1
- package/storybook-static/assets/Select.stories-yIRnlqrF.js +69 -0
- package/storybook-static/assets/{SerializableSelect-BZBYLnHq.js → SerializableSelect-CnPwQtgN.js} +2 -2
- package/storybook-static/assets/{SerializableSelect.stories-PIYq8I5b.js → SerializableSelect.stories-9QxpRX-K.js} +2 -2
- package/storybook-static/assets/{SingleDateTimeInput-B6M2oHtl.js → SingleDateTimeInput-CxKz7tUP.js} +2 -2
- package/storybook-static/assets/{SingleDateTimeInput-D2cDr1L5.js → SingleDateTimeInput-DBrfgnnn.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-DqswDqo4.js → SingleDateTimeInput.stories-lOLyuR7U.js} +1 -1
- package/storybook-static/assets/{Slider-Cu_mMfmP.js → Slider-Cn1YHOVt.js} +1 -1
- package/storybook-static/assets/{Slider-C0fjZ3TE.js → Slider-KC0hs5nY.js} +3 -3
- package/storybook-static/assets/{Slider.stories-BcYnYgUs.js → Slider.stories-C-IjisOs.js} +1 -1
- package/storybook-static/assets/{SliderInput-D8pa0Cwh.js → SliderInput-BVDFbjAz.js} +3 -3
- package/storybook-static/assets/{SliderInput-CaaSdoql.js → SliderInput-Bz4D-xc3.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-biJs3NtU.js → SliderInput.stories-SlhRnTWN.js} +1 -1
- package/storybook-static/assets/{Sortable-wyJd-LB7.js → Sortable-d-UOB6NI.js} +2 -2
- package/storybook-static/assets/{Sortable.stories-CNW8IhRv.js → Sortable.stories-DWywtUOf.js} +1 -1
- package/storybook-static/assets/{Splitter-D0L1B9tf.js → Splitter-t2bV_zrF.js} +4 -4
- package/storybook-static/assets/{Splitter.stories-CDQGRB14.js → Splitter.stories-CTTTfgXu.js} +1 -1
- package/storybook-static/assets/{StateSelect-BaThi-59.js → StateSelect-CR5WR-IW.js} +2 -2
- package/storybook-static/assets/{StateSelect-hO1K2z4b.js → StateSelect-CX7Xf-aX.js} +1 -1
- package/storybook-static/assets/StateSelect.stories-3KkvmQ80.js +59 -0
- package/storybook-static/assets/StringToggle.stories-D7r-Du4d.js +5 -0
- package/storybook-static/assets/{Switch-DCV_mYJ2.js → Switch-DB4EZ32N.js} +1 -1
- package/storybook-static/assets/{Switch-Ct9tsisu.js → Switch-Deae3h9G.js} +2 -2
- package/storybook-static/assets/Switch.stories-CZxayDtX.js +15 -0
- package/storybook-static/assets/{Table-DaP6Qndv.js → Table-CrxyY7zt.js} +4 -4
- package/storybook-static/assets/{Table.stories-DDFcryTl.js → Table.stories-Cwxd5T2K.js} +2 -2
- package/storybook-static/assets/{Tabs-CC5Gzc7s.js → Tabs-L4LxDqx4.js} +3 -3
- package/storybook-static/assets/{Tabs.stories-B_76Da9k.js → Tabs.stories-C4XMXjqd.js} +2 -2
- package/storybook-static/assets/{TabsBox-D52IZXj5.js → TabsBox-Bnvm4jMi.js} +1 -1
- package/storybook-static/assets/{TagInput-T9Lp1amS.js → TagInput-DW0JzYQ3.js} +1 -1
- package/storybook-static/assets/TagInput.stories-zF7cV7Cp.js +18 -0
- package/storybook-static/assets/{Text-CXcCu6R8.js → Text-ByhnRSgp.js} +1 -1
- package/storybook-static/assets/{Textarea-CNl12Mkz.js → Textarea-BySrQxab.js} +2 -2
- package/storybook-static/assets/{Textarea-BlE2vGsV.js → Textarea-WtjTIiyq.js} +1 -1
- package/storybook-static/assets/Textarea.stories-jFSqX_4h.js +17 -0
- package/storybook-static/assets/{TimePanel-DKD18ldm.js → TimePanel-B-rvi-xm.js} +1 -1
- package/storybook-static/assets/TimePanel.stories-BQJruT0g.js +14 -0
- package/storybook-static/assets/{Toggle-DKNuMtMW.js → Toggle-BfRh792z.js} +2 -2
- package/storybook-static/assets/{Toggle-fqZP5j32.js → Toggle-BkglFvBx.js} +1 -1
- package/storybook-static/assets/Toggle.stories-BonTJbH-.js +25 -0
- package/storybook-static/assets/{TreeMultiSelect-B6et22Ea.js → TreeMultiSelect-7E1j6lHT.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-b4PiPTEN.js → TreeMultiSelect-CKr7kx7s.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-C_4ZpE9w.js → TreeMultiSelect.stories-DQ9N-EPu.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BBwppLrT.js → TreePickerBase-DwoQyBMk.js} +1 -1
- package/storybook-static/assets/{TreeSelect-D4u7C0tA.js → TreeSelect-BLc7zLho.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BaCD5AjF.js → TreeSelect-BP_YoVCu.js} +1 -1
- package/storybook-static/assets/TreeSelect.stories-CyurXsU_.js +32 -0
- package/storybook-static/assets/{TreeTable-CbhUffZj.js → TreeTable-wfgjChnU.js} +3 -3
- package/storybook-static/assets/{TreeTable.stories-D-x-lZkU.js → TreeTable.stories-DUBR67SN.js} +2 -2
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-DQ4Qthn2.js → WithTooltip-CDUNV5IS-mFMh6Qcu.js} +2 -2
- package/storybook-static/assets/{blocks-IjspN281.js → blocks-DNj8uFSt.js} +3 -3
- package/storybook-static/assets/{check-ue9rVspp.js → check-CS2caYIB.js} +1 -1
- package/storybook-static/assets/{chevron-down-Dnk-3hJo.js → chevron-down-DXkNPvpX.js} +1 -1
- package/storybook-static/assets/{chevron-left-CaAFuWY0.js → chevron-left-5q-SFjrm.js} +1 -1
- package/storybook-static/assets/{chevron-right-CKnELL4E.js → chevron-right-u6yLjLrs.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-jFAFLKOH.js → chunk-W22LQPXL-CfJGLIdy.js} +1 -1
- package/storybook-static/assets/{circle-alert-miJVMeEa.js → circle-alert-Cs1OuREv.js} +1 -1
- package/storybook-static/assets/circle-check-Cvppn-HO.js +1 -0
- package/storybook-static/assets/components-B6cPezpK.js +241 -0
- package/storybook-static/assets/{contextMenu-D8NvB0La.js → contextMenu-CX8Geuik.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-DfmnIuod.js → defaultRenderers-Dinv2uRZ.js} +1 -1
- package/storybook-static/assets/{download-Cq_lr01f.js → download-DY_RFHLw.js} +1 -1
- package/storybook-static/assets/floating-ui.react-CCV40RlP.js +1 -0
- package/storybook-static/assets/{formatters-D33Uh3si-CxrG0jsB.js → formatters-D33Uh3si-Df97arf9.js} +1 -1
- package/storybook-static/assets/{foundationApi-CLyEyFIu.js → foundationApi-naPnCFLL.js} +3 -6
- package/storybook-static/assets/{foundationLib-DH2mxNct.js → foundationLib-CSxKMNQk.js} +1 -1
- package/storybook-static/assets/{hooks-BwH7Yo1F.js → hooks-CK4me-dJ.js} +1 -1
- package/storybook-static/assets/{iframe-B_6aAEqw.js → iframe-YrfSEgEg.js} +203 -203
- package/storybook-static/assets/iframe-uYND_WUi.js +1 -0
- package/storybook-static/assets/{info-BgHKckDk.js → info-BEkn6tJB.js} +1 -1
- package/storybook-static/assets/odata-j4p1dw3i.js +1 -0
- package/storybook-static/assets/odata-service-CWkHASdw-CXhFi03v.js +3 -0
- package/storybook-static/assets/{odataStoryFixtures-BiN3x4k6.js → odataStoryFixtures-B_1MKEB-.js} +1 -1
- package/storybook-static/assets/{react-18-D4o7zN8K.js → react-18-EmNFJX4V.js} +1 -1
- package/storybook-static/assets/react-BihcRTyZ.js +9 -0
- package/storybook-static/assets/{refresh-cw-Cz1Mtnwr.js → refresh-cw-uKRX7BI0.js} +1 -1
- package/storybook-static/assets/{settings-2-BUY_jI1a.js → settings-2-DTKuqR8p.js} +1 -1
- package/storybook-static/assets/{sortable-DfiDnDGH.js → sortable-sVqTZjeF.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-RwE_sP6g.js → syntaxhighlighter-QEQV7K2Y-GFZ4bA4u.js} +1 -1
- package/storybook-static/assets/theming-BgT2grXK.js +39 -0
- package/storybook-static/assets/{trash-2-Da9E4hDy.js → trash-2-C6QVfyTq.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D2CpTkxC.js → triangle-alert-DKkTKSAW.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-BTVM_2wU.js → useODataSelectBase-BxPpoJje.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BwwhT42f.js → useODataTreeData-Ct-ZR8pA.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-Cug-ZpN1.js → usePickerQuery-DJMG-4Gl.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-D3h4HqB9.js → usePickerTriggerController-DeZhyi9h.js} +1 -1
- package/storybook-static/assets/{x-ri5iHB3T.js → x-cU42PK2s.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +1 -1
- package/storybook-static/sb-manager/globals-runtime.js +5 -2
- package/storybook-static/sb-manager/runtime.js +1 -0
- package/storybook-static/assets/Color-6AOWCN3U-C363KdaS.js +0 -1
- package/storybook-static/assets/DateRangePresetSelect.stories-BnnOI6oQ.js +0 -19
- package/storybook-static/assets/Dialog.stories-DPFNV_A3.js +0 -22
- package/storybook-static/assets/Disclosure.stories-C3MufHWp.js +0 -23
- package/storybook-static/assets/DropZone.stories-mB8JLlHw.js +0 -26
- package/storybook-static/assets/ExpandableActionPanel.stories-eChkcTa4.js +0 -9
- package/storybook-static/assets/ImageCropper.stories-BuwhJESS.js +0 -131
- package/storybook-static/assets/ImageRenderer.stories-BzyPfNyt.js +0 -34
- package/storybook-static/assets/ImageView.stories-FmQ_gxc7.js +0 -14
- package/storybook-static/assets/Input.stories-BbT8eOCH.js +0 -52
- package/storybook-static/assets/InputFile.stories-B84afhOU.js +0 -27
- package/storybook-static/assets/InputFiles.stories-CgMk9QC9.js +0 -26
- package/storybook-static/assets/InputImage.stories-BD3x6S5Y.js +0 -56
- package/storybook-static/assets/MultiSelect.stories-CNNK5rRC.js +0 -55
- package/storybook-static/assets/PeriodSelect.stories-COeb_LJq.js +0 -50
- package/storybook-static/assets/PresetRangeDateInput.stories-BDmwSMwK.js +0 -3
- package/storybook-static/assets/README-oSHJDhIJ.js +0 -101
- package/storybook-static/assets/RadioButton.stories-GiewWDd0.js +0 -32
- package/storybook-static/assets/Select.stories-CYJpEv_P.js +0 -69
- package/storybook-static/assets/StateSelect.stories-DDviL5zf.js +0 -59
- package/storybook-static/assets/StringToggle.stories-CFAJvvxJ.js +0 -5
- package/storybook-static/assets/Switch.stories-COeP2eOi.js +0 -15
- package/storybook-static/assets/TagInput.stories-DfH66OZc.js +0 -18
- package/storybook-static/assets/Textarea.stories-DVOJ06z_.js +0 -17
- package/storybook-static/assets/TimePanel.stories-Vn5OZdpQ.js +0 -14
- package/storybook-static/assets/Toggle.stories-BLolzyKP.js +0 -25
- package/storybook-static/assets/TreeSelect.stories-CDkOknim.js +0 -32
- package/storybook-static/assets/circle-check-CNYBjmqs.js +0 -1
- package/storybook-static/assets/components-9iEtMVnM.js +0 -241
- package/storybook-static/assets/floating-ui.react-BoRzzZ17.js +0 -1
- package/storybook-static/assets/iframe-BxPT5t4V.js +0 -1
- package/storybook-static/assets/odata-D2I4jbKq.js +0 -1
- package/storybook-static/assets/odata-service-CWkHASdw-DlmSiioz.js +0 -3
- package/storybook-static/assets/react-BoM8yiX1.js +0 -9
- 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-
|
|
2
|
-
`,(0,c.
|
|
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:`#%
|
|
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
|
|
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-
|
|
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-
|
|
2
|
-
`,(0,c.
|
|
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:`#%
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
2
|
-
`,(0,c.
|
|
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:`#%
|
|
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
|
|
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-
|
|
2
|
-
`,(0,c.
|
|
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
|
|
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-
|
|
2
|
-
`,(0,c.
|
|
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:`#%
|
|
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
|
|
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-
|
|
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
|
|
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:`#%
|
|
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
|
|
70
|
-
`,(0,c.jsx)(t.p,{children:`Установите
|
|
71
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @
|
|
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-
|
|
2
|
-
`,(0,c.
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
2
|
-
`,(0,c.
|
|
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
|
|
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-
|
|
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 "
|
|
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-
|
|
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-
|
|
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 "
|
|
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-
|
|
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};
|
package/storybook-static/assets/{RadioGroup.stories-C7N9yLcN.js → RadioGroup.stories-BdAv58pJ.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./RadioGroup-
|
|
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-
|
|
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-
|
|
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 "
|
|
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-
|
|
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:`{
|