@ryuzaki13/react-foundation-ui 1.5.11 → 1.5.13
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/chunks/CheckBox.module-C5SjPwSj.js.map +1 -1
- package/dist/chunks/ui.module-DHVTOqZ0.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -1
- package/src/styles/config/_index.scss +2 -2
- package/storybook-static/assets/{Badge-BRzsgtsW.js → Badge-Cz9gcxIU.js} +1 -1
- package/storybook-static/assets/{Badge.stories-BEUzIGxR.js → Badge.stories-PV88uXCB.js} +1 -1
- package/storybook-static/assets/{BadgeList-Dvi9mgiq.js → BadgeList-BMO51PtO.js} +1 -1
- package/storybook-static/assets/{Button-D9NRl_J-.js → Button-BfLxUIid.js} +1 -1
- package/storybook-static/assets/{Button-B0yitxpz.js → Button-DQxw6N8K.js} +1 -1
- package/storybook-static/assets/{Button.stories-RTpFQ0lC.js → Button.stories-NlwBLVkf.js} +1 -1
- package/storybook-static/assets/{CalendarView-hixokiLY.js → CalendarView-C_i7clUL.js} +1 -1
- package/storybook-static/assets/{CheckBox-CkP3wY1y.js → CheckBox-3WpAVlwd.js} +1 -1
- package/storybook-static/assets/CheckBox-BnO90VKX.css +1 -0
- package/storybook-static/assets/{CheckBox-DgcHpYEB.js → CheckBox-Drc-88GM.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-B6gt-Pyy.js → CheckBox.stories-D4IsLr4P.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-CS57U4UC.js → Color-6AOWCN3U-CPY8DhM_.js} +1 -1
- package/storybook-static/assets/{ContextMenu-DfArrHyO.js → ContextMenu-BjBW8_sr.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CvaQBpuB.js → ContextMenu-D2--kuIS.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-UUZnkfjK.js → ContextMenu.stories-yGhy89Pi.js} +1 -1
- package/storybook-static/assets/{DateInput-D0Z39L0u.js → DateInput-Dex3NjVs.js} +1 -1
- package/storybook-static/assets/{DateInput-BOJzcuf8.js → DateInput-G4c2mjqq.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-B9oAtjEF.js → DateInput.stories-5ciPhgGf.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-I9kq2B9z.js → DateRangePresetSelect-C9M3c98a.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Bhzy-5vR.js → DateRangePresetSelect-DJ4HV2xU.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-CkkmtUCo.js → DateRangePresetSelect.stories-C8Ohsfia.js} +1 -1
- package/storybook-static/assets/{Detail-D038XLEh.js → Detail-CSPYsUEC.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Dy8sCrYr.js → Detail.stories-LsOTK5pf.js} +1 -1
- package/storybook-static/assets/{Dialog-BpBfxyHP.js → Dialog-BjEcdbGi.js} +1 -1
- package/storybook-static/assets/{Dialog-DvcT-HcI.js → Dialog-C8i0iW4a.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CFwZCUTc.js → Dialog.stories-BnmqXDWO.js} +1 -1
- package/storybook-static/assets/{Disclosure-bS8JZMZH.js → Disclosure-Cvsl0gPE.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-DoRb7eFP.js → Disclosure.stories-CFfYWULd.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-C8bhahk2.js → DisclosureGroup-ZnY0phsi.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-BENO-TjP.js → DocsRenderer-JROSPFPF-8jGqLFb9.js} +1 -1
- package/storybook-static/assets/{DropZone-BFesDtXX.js → DropZone-DFqqqipb.js} +1 -1
- package/storybook-static/assets/{DropZone-CT2ql-iq.js → DropZone-DvuKp6tN.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-DjyWW5NR.js → DropZone.stories-B1xdFmz3.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-DFIvsL7-.js → DropdownMenu-BrgLHYbc.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-HfuTxNHC.js → ExpandableActionPanel-CBOJ7TTT.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-hrKtH1J5.js → ExpandableActionPanel.stories-ColZw5gd.js} +1 -1
- package/storybook-static/assets/{Flex-YpXsCy6o.js → Flex-BT_QGMVX.js} +1 -1
- package/storybook-static/assets/{Flex.stories-Ck5prBoq.js → Flex.stories-CEgggepS.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-DOPDzLFT.js → FloatingPopover-ClEj7JDK.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-CpYotISk.js → FormattedTableCell-Cwt_acDE.js} +1 -1
- package/storybook-static/assets/{Grid-DUocH4TX.js → Grid-CfILre0m.js} +1 -1
- package/storybook-static/assets/{Grid.stories-jnw37ukT.js → Grid.stories-wQ7jvA5X.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-CDLsJM59.js → ImageCropper.stories-BMJDf8-2.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-CZ7DKuFY.js → ImageRenderer-COuwgno_.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-B8-aQ58B.js → ImageRenderer.stories-DsdXyXKD.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DLhqZ_GI.js → ImageView.stories-iNAQGgcZ.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-o1yD_rZq.js → ImageViewer.stories-BYAuiSK7.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-CJlrAsfL.js → ImageViewerRuntime-DVlrAVlM.js} +1 -1
- package/storybook-static/assets/{Input-B8y70gW9.js → Input-BhXx34oj.js} +1 -1
- package/storybook-static/assets/{Input-8dAj3L5M.js → Input-DCQXBGK4.js} +1 -1
- package/storybook-static/assets/{Input.stories-KAOo2cMb.js → Input.stories-cYqQabmU.js} +1 -1
- package/storybook-static/assets/{InputDateTime-C8iXQn7P.js → InputDateTime-BqmrEg_Q.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-BOUfVN41.js → InputDateTime.stories-C3xQIS7z.js} +1 -1
- package/storybook-static/assets/{InputFile-BlMNRcyL.js → InputFile-BCZ1O6Id.js} +1 -1
- package/storybook-static/assets/{InputFile-C-CwNpFJ.js → InputFile-Bth1Jhjf.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-MD9cAu-W.js → InputFile.stories-Cn9z-0xo.js} +1 -1
- package/storybook-static/assets/{InputFiles-D72fv8HQ.js → InputFiles-CURwAma0.js} +1 -1
- package/storybook-static/assets/{InputFiles-BMjWaVN9.js → InputFiles-c9zsOv2D.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-BlD8cBmt.js → InputFiles.stories-m9aTBp1E.js} +1 -1
- package/storybook-static/assets/{InputFilesList-Dol1dIX5.js → InputFilesList-CokmKz6s.js} +1 -1
- package/storybook-static/assets/{InputImage-_sOF8mmB.js → InputImage-ONEbMmSy.js} +1 -1
- package/storybook-static/assets/{InputImage-uE0JlBq5.js → InputImage-hzPQOP_G.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-R6HZFGuR.js → InputImage.stories-DtmL7qrl.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-BDmyyudJ.js → InteractiveComponents-D9I5JYap.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-RsjV4QyY.js → InteractiveComponents.stories-Rkp13MQ5.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CywNkFMn.js → LayoutPicker-BodO442K.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CqpAicOL.js → LayoutPicker-Dy9IvK0b.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BMiwqihl.js → LayoutPicker.stories-exb5TXXF.js} +1 -1
- package/storybook-static/assets/{Listbox-zQgffOs0.js → Listbox-CQ80dSOo.js} +1 -1
- package/storybook-static/assets/{Listbox-Bznk_lrX.js → Listbox-CZ1FQQ5X.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BeWjK-CY.js → Listbox.stories-Nfzs72Yd.js} +1 -1
- package/storybook-static/assets/{Modal-unWtDqq_.js → Modal--uBl58UW.js} +1 -1
- package/storybook-static/assets/{Modal.stories-DepzRvWp.js → Modal.stories-D77rBBBh.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-B1XUXs-1.js → ModalManagerProvider-Dwn7kE4K.js} +1 -1
- package/storybook-static/assets/{MultiSelect-U5XEaFTv.js → MultiSelect-B725mcqy.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DBzuR4v6.js → MultiSelect-BlTby36f.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-9xtLUsmK.js → MultiSelect.stories-BEHlAAJJ.js} +1 -1
- package/storybook-static/assets/{NoData-Did5-Vbj.js → NoData-DLuw3XVk.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-C16jWWbh.js → NotificationsHost-BB5Np8PK.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-Df9Sciyb.js → NotificationsHost.stories-DDadi6Mw.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-_5_Hrv8p.js → ODataMultiSelect-XFTdhfCe.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DWTlih_F.js → ODataMultiSelect.stories-V1UHe_oU.js} +1 -1
- package/storybook-static/assets/{ODataSelect-xX8_14hD.js → ODataSelect-C01W8jth.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-B_VSMkR5.js → ODataSelect.stories-GBg5TBT_.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-CheCWkrj.js → ODataTreeMultiSelect-sGEW_iPs.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CAWAJxdC.js → ODataTreeMultiSelect.stories-CKN_SvQU.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-ZQN9ZhPc.js → ODataTreeSelect-1hCNPZNo.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CYC_eiFv.js → ODataTreeSelect.stories-GDmyjoWv.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-KFcpHiAM.js → OneStepScroller-dsU38i0h.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BgQWqB2a.js → PeriodSelect-B5IQUCox.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DN9SFKXh.js → PeriodSelect-Dar6tgT-.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DcUE2clK.js → PeriodSelect.stories-s4UcTVBB.js} +1 -1
- package/storybook-static/assets/{PickerSelectionToolbar-CvqU44D-.js → PickerSelectionToolbar-BrUGVuF4.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-DZzNAe4M.js → PickerTriggerActions-CiB7RNtz.js} +1 -1
- package/storybook-static/assets/{Popover-iSasApKA.js → Popover-BUpM2SdA.js} +1 -1
- package/storybook-static/assets/{Popover-B1_qmzkr.js → Popover-CElnnd4d.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CGLUaRgH.js → Popover.stories-CDPYRGg5.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-CxyBq2XS.js → PresetRangeDateInput-DKbX277t.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-D_ylm7hV.js → PresetRangeDateInput-DWsBB7Xe.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-DgrBel6_.js → PresetRangeDateInput.stories-CLnxG1Su.js} +1 -1
- package/storybook-static/assets/{PresetSelect-CrdvEugF.js → PresetSelect-TONMNVox.js} +1 -1
- package/storybook-static/assets/{RadioButton-DwyUH5ms.js → RadioButton-C8cdy1c5.js} +1 -1
- package/storybook-static/assets/{RadioButton-DW4ph1Xp.js → RadioButton-CHp5HFET.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-6q7CeUZY.js → RadioButton.stories-D-wI-ysI.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BumTRrwE.js → RadioGroup-Cyzz_ISM.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DshEU96S.js → RadioGroup-RnbEh9jf.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-Bwv8Bgn8.js → RadioGroup.stories-DAocx-vl.js} +1 -1
- package/storybook-static/assets/{Scrollable-ZI0zA9wz.js → Scrollable-BZwDWzCP.js} +1 -1
- package/storybook-static/assets/{Select-CP1Ijv9g.js → Select-BMWvHZb0.js} +1 -1
- package/storybook-static/assets/{Select-CjuyI3wO.js → Select-QJmM58Sy.js} +1 -1
- package/storybook-static/assets/{Select.stories-kCFhGvWP.js → Select.stories-Tt0ajJXV.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-C2DjqaM0.js → SelectOptionContent-DZcX0XcL.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CoVoXwJS.js → SerializableSelect-Cb2eKzWt.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-UTJc7HQF.js → SerializableSelect.stories-BMGIdje_.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DobT9m-7.js → SingleDateTimeInput--8TJ-hnE.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-bIeFRT8c.js → SingleDateTimeInput-ByN30Wn3.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-CwAP5lI3.js → SingleDateTimeInput.stories-CrsfwMCv.js} +1 -1
- package/storybook-static/assets/{Slider-DB7dm4uC.js → Slider-B7Zh8pKd.js} +1 -1
- package/storybook-static/assets/{Slider-CnhBAXNm.js → Slider-eV8LAbRY.js} +1 -1
- package/storybook-static/assets/{Slider.stories-D7ADzpCF.js → Slider.stories-2Fh_zSe4.js} +1 -1
- package/storybook-static/assets/{SliderInput-CvmZ86d-.js → SliderInput-2r2n9oBs.js} +1 -1
- package/storybook-static/assets/{SliderInput-DfMdXNjq.js → SliderInput-BjWQPhW1.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-CKe5q8PZ.js → SliderInput.stories-RrseFw59.js} +1 -1
- package/storybook-static/assets/{Sortable-D-PG0esR.js → Sortable-DHi8kx5A.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BUUu5LQR.js → Sortable.stories-DJoStzvM.js} +1 -1
- package/storybook-static/assets/{Splitter-Cbiph6ck.js → Splitter-Dxol4S_V.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-z1_IuipN.js → Splitter.stories-BbVOMBqo.js} +1 -1
- package/storybook-static/assets/{StateSelect-BfhvHQrQ.js → StateSelect-3OnKvOr4.js} +1 -1
- package/storybook-static/assets/{StateSelect-C6b0aolc.js → StateSelect-pbm7Jf8f.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-yKKasuZq.js → StateSelect.stories-CgTE3-yP.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-mHQXke0Z.js → StringToggle.stories-BSJLw3CZ.js} +1 -1
- package/storybook-static/assets/{Switch--s8CABgk.js → Switch-BdBKEluZ.js} +1 -1
- package/storybook-static/assets/{Switch-DtYu0DX3.js → Switch-BxBEQCPT.js} +1 -1
- package/storybook-static/assets/{Switch.stories-DqVmpD3F.js → Switch.stories-D5DDiey7.js} +1 -1
- package/storybook-static/assets/{Table-CS-8NjMS.js → Table-tNWO7Xkx.js} +1 -1
- package/storybook-static/assets/{Table.stories-BDEFvavq.js → Table.stories-Co6W6DfX.js} +1 -1
- package/storybook-static/assets/{Tabs-DVAc2sEq.js → Tabs-MhG7k5kZ.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-Bx3SVBYV.js → Tabs.stories-6-cDteqF.js} +1 -1
- package/storybook-static/assets/{TabsBox-DIc3bAG9.js → TabsBox-CbcUNOlb.js} +1 -1
- package/storybook-static/assets/{TagInput-DvJOyiDa.js → TagInput-BvhI42-e.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-BfUUxxvB.js → TagInput.stories-Bh03CP2k.js} +1 -1
- package/storybook-static/assets/{Text-DDM_QNpo.js → Text-CvyKTMrH.js} +1 -1
- package/storybook-static/assets/{Textarea-B8jfChqH.js → Textarea-CZORYVJ_.js} +1 -1
- package/storybook-static/assets/{Textarea-CouwxZMS.js → Textarea-JurrghA5.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-B5YnG6Hg.js → Textarea.stories-BUDqqVKy.js} +1 -1
- package/storybook-static/assets/{TimePanel-Ce44lmoA.js → TimePanel-DIKKUv5f.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-dMXzRVpT.js → TimePanel.stories-B1q_i8WF.js} +1 -1
- package/storybook-static/assets/{Toggle-C8qL0JdM.js → Toggle-BGRFjquY.js} +1 -1
- package/storybook-static/assets/{Toggle-BLb3M4N1.js → Toggle-C3KWroQa.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-CR8xCkXd.js → Toggle.stories-CqaiA6sq.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-5fHQVUTd.js → TreeMultiSelect-BJt6pYdc.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-Bttryv5k.js → TreeMultiSelect-BT1UYS2s.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-B4zkiRfC.js → TreeMultiSelect.stories-B6fswq0n.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-B_XyJaYL.js → TreePickerBase-Ezb14TOv.js} +1 -1
- package/storybook-static/assets/{TreeSelect-_mFMic9T.js → TreeSelect-6ad8aM5F.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BmV5BgHm.js → TreeSelect-CdxWhNPr.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-D-lz21y2.js → TreeSelect.stories-BMjSPnlt.js} +1 -1
- package/storybook-static/assets/{TreeTable-BjnuFqoj.js → TreeTable-B10lvNT_.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-OEii5uhT.js → TreeTable.stories-BOkFmk-a.js} +1 -1
- package/storybook-static/assets/{async-BggDKhCa.js → async-Wscr5OK0.js} +1 -1
- package/storybook-static/assets/{blocks-DXv0kKnO.js → blocks-BkGgmJsC.js} +3 -3
- package/storybook-static/assets/{browserAndReact-CJg4Htw7.js → browserAndReact-BKmF0BgP.js} +6 -41
- package/storybook-static/assets/{check-BDF3qN6C.js → check-uBaZUURY.js} +1 -1
- package/storybook-static/assets/{chevron-down-DycW5rEN.js → chevron-down-DbISRZCX.js} +1 -1
- package/storybook-static/assets/{chevron-left-C5fp0Uga.js → chevron-left-Cb-kl5mh.js} +1 -1
- package/storybook-static/assets/{chevron-right-BtcaEPgU.js → chevron-right-D99XGTe7.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-DpbhHTe5.js → chunk-W22LQPXL-D3-dGAP5.js} +1 -1
- package/storybook-static/assets/{circle-alert-BHmYiVSQ.js → circle-alert-CxdnePpP.js} +1 -1
- package/storybook-static/assets/{circle-check-D-kWZdLj.js → circle-check-DxbzyOrj.js} +1 -1
- package/storybook-static/assets/{components-CiK0i2y5.js → components-NKMCS9u_.js} +3 -3
- package/storybook-static/assets/{contextMenu-BuB7GWKM.js → contextMenu-CrE8d-C8.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-DKIVh61V.js → defaultRenderers-DLjGcYhl.js} +1 -1
- package/storybook-static/assets/{download-CHMcYpj3.js → download-B34Dyboo.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-DlArA_GW.js → filesAndExcel-D0WmBd17.js} +6 -36
- package/storybook-static/assets/{floating-ui.react-2n8Uyf0J.js → floating-ui.react-CHmsuwKl.js} +1 -1
- package/storybook-static/assets/formatters-B5IRTBCO.js +202 -0
- package/storybook-static/assets/{formatters-runtime-ibdtp7C6.js → formatters-runtime-DIIzhbds.js} +11 -66
- package/storybook-static/assets/foundationLib-CVhEJ6js.js +25 -0
- package/storybook-static/assets/{hooks-D0mbXwcm.js → hooks-BDibLnHt.js} +1 -1
- package/storybook-static/assets/{iframe-BnjRbLCp.js → iframe-CD1cMwos.js} +3 -3
- package/storybook-static/assets/iframe-CTou9CRA.js +1 -0
- package/storybook-static/assets/iframe-I5gZKSOP.css +1 -0
- package/storybook-static/assets/{info-B9srbxQP.js → info-YWjqfWxe.js} +1 -1
- package/storybook-static/assets/{odata-D9w_2DW1.js → odata-D3YkIfXJ.js} +1 -1
- package/storybook-static/assets/odataAndTables-C2flJmi6.js +77 -0
- package/storybook-static/assets/{odataFetchFn-BrsJ-DlE.js → odataFetchFn-DHf6YwiM.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-CbO3dfw1.js → odataStoryFixtures-C7XqnT73.js} +1 -1
- package/storybook-static/assets/{persisted-DXbdpvSU.js → persisted-CKfZAtRr.js} +1 -1
- package/storybook-static/assets/pureUtilities-Bwoj6fXN.js +30 -0
- package/storybook-static/assets/{react-DmKWdnt1.js → react-BONe4qKn.js} +1 -1
- package/storybook-static/assets/{refresh-cw-C2Rk5OjE.js → refresh-cw-DpHq4LQP.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-Be2a2JfZ.js → runtimeAndState-DsHleu6Y.js} +4 -28
- package/storybook-static/assets/{settings-2-CuAc9ekV.js → settings-2-Dz6u0Wf2.js} +1 -1
- package/storybook-static/assets/{sortable-DF8VgD8R.js → sortable-VOkfa1Z-.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-BnGJW0L9.js → syntaxhighlighter-T5IQBZDB-C4OOYkZu.js} +1 -1
- package/storybook-static/assets/{trash-2-DRXwetzV.js → trash-2-DTPcXUiI.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D5785xcd.js → triangle-alert-DUI5nsd3.js} +1 -1
- package/storybook-static/assets/{ui-vmPSPL8p.css → ui-BMhMvV6y.css} +1 -1
- package/storybook-static/assets/{uiClasses-CyX7wB6b.js → uiClasses-DiXn3Hc-.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-DfOi4e0X.js → useODataSelectBase-BpntR4Iz.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BBSy4G6V.js → useODataTreeData-C2vzjXPp.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-BYa25rmI.js → usePickerQuery-BDYoi7Rg.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-CwgtrL5F.js → usePickerTriggerController-DAUdKKpa.js} +1 -1
- package/storybook-static/assets/{x-DvnP0o1b.js → x-B8aXMeuU.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/CheckBox-Dw4nDCv8.css +0 -1
- package/storybook-static/assets/formatters-BwCs7xCt.js +0 -306
- package/storybook-static/assets/foundationLib-DAvQ9wk8.js +0 -82
- package/storybook-static/assets/iframe-B1M7f4Qn.js +0 -1
- package/storybook-static/assets/iframe-J8XUsZxh.css +0 -1
- package/storybook-static/assets/odataAndTables-B7U8x4CV.js +0 -126
- package/storybook-static/assets/pureUtilities-BtrtdX0r.js +0 -69
- /package/storybook-static/assets/{CheckBox.module-CM_GPl_E.js → CheckBox.module-BNQm6HXI.js} +0 -0
- /package/storybook-static/assets/{ui.module-Bh9yvZgk.js → ui.module-CiLQZm_L.js} +0 -0
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BnjRbLCp.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-DXv0kKnO.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,h3:`h3`,p:`p`,pre:`pre`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Formatters`}),`
|
|
2
|
-
`,(0,c.jsx)(t.h1,{id:`форматтеры`,children:`Форматтеры`}),`
|
|
3
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/formatters`}),` — единая публичная точка входа для
|
|
4
|
-
преобразования значений в host-проекте. Она покрывает даты, числа, строки,
|
|
5
|
-
логические значения, ФИО, телефон и числовые идентификаторы. Импортировать
|
|
6
|
-
внутренние файлы пакета и корневой пакет не нужно: все показанные ниже имена
|
|
7
|
-
доступны из опубликованного subpath.`]}),`
|
|
8
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { formatDate, formatNumber, normalizeText, parseBoolean } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
9
|
-
|
|
10
|
-
import type { DateFormatPreset, NumberFormatPresetConfig } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
11
|
-
`})}),`
|
|
12
|
-
`,(0,c.jsx)(t.h2,{id:`выбор-api`,children:`Выбор API`}),`
|
|
13
|
-
`,(0,c.jsxs)(t.p,{children:[`| Задача | Используйте |
|
|
14
|
-
| ------------------------------------------------------------ | -------------------------------------------------------------- |
|
|
15
|
-
| Отобразить или разобрать дату без неявного timezone-сдвига | `,(0,c.jsx)(t.code,{children:`formatDate`}),`, `,(0,c.jsx)(t.code,{children:`parseDate`}),`, `,(0,c.jsx)(t.code,{children:`parseDateTZ`}),` |
|
|
16
|
-
| Получить календарные границы или безопасный диапазон | `,(0,c.jsx)(t.code,{children:`getCalendarPeriod`}),`, `,(0,c.jsx)(t.code,{children:`normalizeDateRange`}),`, `,(0,c.jsx)(t.code,{children:`requireDateRange`}),` |
|
|
17
|
-
| Отобразить число или разобрать SAP-подобную строку | `,(0,c.jsx)(t.code,{children:`formatNumber`}),`, `,(0,c.jsx)(t.code,{children:`toFiniteNumber`}),`, `,(0,c.jsx)(t.code,{children:`parseNumber`}),` |
|
|
18
|
-
| Привести текст к безопасной строке или нормализовать пробелы | `,(0,c.jsx)(t.code,{children:`toSafeString`}),`, `,(0,c.jsx)(t.code,{children:`normalizeText`}),`, `,(0,c.jsx)(t.code,{children:`normalizeTextSpaces`}),` |
|
|
19
|
-
| Склонить русское существительное по количеству | `,(0,c.jsx)(t.code,{children:`selectRussianPluralForm`}),`, `,(0,c.jsx)(t.code,{children:`formatRussianPlural`}),` |
|
|
20
|
-
| Преобразовать ABAP boolean | `,(0,c.jsx)(t.code,{children:`parseAbapBoolean`}),`, `,(0,c.jsx)(t.code,{children:`toAbapBoolean`}),` |
|
|
21
|
-
| Показать ФИО, российский номер или код с ведущими нулями | `,(0,c.jsx)(t.code,{children:`formatFullName`}),`, `,(0,c.jsx)(t.code,{children:`formatPhone`}),`, `,(0,c.jsx)(t.code,{children:`normalizeLeadingZerosStrict`}),` |`]}),`
|
|
22
|
-
`,(0,c.jsx)(t.h2,{id:`даты`,children:`Даты`}),`
|
|
23
|
-
`,(0,c.jsx)(t.h3,{id:`основной-форматтер`,children:`Основной форматтер`}),`
|
|
24
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { formatDate, formatDateAsDateTime, formatDateAsODataDate } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
25
|
-
|
|
26
|
-
formatDate("2026-03-05T14:30:00", "date");
|
|
27
|
-
// "05.03.2026"
|
|
28
|
-
|
|
29
|
-
formatDateAsDateTime("/Date(1772713800000+0500)/");
|
|
30
|
-
// строка даты и времени в локальной календарной семантике
|
|
31
|
-
|
|
32
|
-
formatDateAsODataDate(new Date(2026, 2, 5));
|
|
33
|
-
// "2026-03-05"
|
|
34
|
-
`})}),`
|
|
35
|
-
`,(0,c.jsx)(t.p,{children:`Сигнатура универсального вызова:`}),`
|
|
36
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`formatDate(
|
|
37
|
-
value: unknown,
|
|
38
|
-
presetOrName?: string | DateFormatPreset,
|
|
39
|
-
options?: FormatDateOptions
|
|
40
|
-
): string;
|
|
41
|
-
`})}),`
|
|
42
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`value`}),` может быть `,(0,c.jsx)(t.code,{children:`Date`}),`, Unix timestamp, OData ticks вида
|
|
43
|
-
`,(0,c.jsx)(t.code,{children:`/Date(…)/`}),`, OData literal, ABAP-дата/временная метка, ISO-строка,
|
|
44
|
-
ISO-длительность и несколько распространённых человекочитаемых форматов.
|
|
45
|
-
Неподходящее значение не выбрасывает исключение: результатом будет
|
|
46
|
-
`,(0,c.jsx)(t.code,{children:`options.fallback`}),`, либо `,(0,c.jsx)(t.code,{children:`invalidFallback`}),` выбранного пресета, либо пустая
|
|
47
|
-
строка по умолчанию.`]}),`
|
|
48
|
-
`,(0,c.jsxs)(t.p,{children:[`Исключение — неизвестное строковое имя пресета: `,(0,c.jsx)(t.code,{children:`formatDate`}),` выбросит
|
|
49
|
-
`,(0,c.jsx)(t.code,{children:`Error`}),`. Если формат получен из внешней конфигурации, сначала разрешите его
|
|
50
|
-
через `,(0,c.jsx)(t.code,{children:`resolveDateFormatPreset`}),` или проверьте через `,(0,c.jsx)(t.code,{children:`getDatePreset`}),`.`]}),`
|
|
51
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`FormatDateOptions`}),`:`]}),`
|
|
52
|
-
`,(0,c.jsxs)(t.p,{children:[`| Поле | Назначение |
|
|
53
|
-
| ---------------------------------------- | -------------------------------------------------------------------------- |
|
|
54
|
-
| `,(0,c.jsx)(t.code,{children:`fallback?: string`}),` | Результат для нераспознанного входа; имеет приоритет над fallback пресета. |
|
|
55
|
-
| `,(0,c.jsx)(t.code,{children:`precision?: "day" \\| "month" \\| "year"`}),` | Скрывает календарные части ниже выбранной точности. |`]}),`
|
|
56
|
-
`,(0,c.jsx)(t.h3,{id:`готовые-форматтеры`,children:`Готовые форматтеры`}),`
|
|
57
|
-
`,(0,c.jsxs)(t.p,{children:[`Все функции принимают `,(0,c.jsx)(t.code,{children:`value: unknown`}),` и необязательный `,(0,c.jsx)(t.code,{children:`FormatDateOptions`}),`,
|
|
58
|
-
возвращают строку и используют соответствующий встроенный пресет.`]}),`
|
|
59
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Результат / назначение |
|
|
60
|
-
| --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
|
61
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsDate`}),` | `,(0,c.jsx)(t.code,{children:`dd.MM.yyyy`}),`. |
|
|
62
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsDateTime`}),` | Дата и время до минут. |
|
|
63
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsTime`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsTimeSeconds`}),` | Время до минут или секунд. |
|
|
64
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsDateShort`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsDateMedium`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsDateLong`}),` | Числовая, сокращённая и полная русская дата. |
|
|
65
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsMonthShort`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsMonthMedium`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsMonthLong`}),` | День и месяц без года: числовой, сокращённый или полный вид. |
|
|
66
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsMonthYearMedium`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsMonthYearLong`}),` | Месяц и год в сокращённом или полном виде. |
|
|
67
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsTimeShort`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsTimeMedium`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsTimeLong`}),` | Короткое или секундное время без вывода timezone. |
|
|
68
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsDatetimeShort`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsDatetimeMedium`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsDatetimeLong`}),` | Дата и время с разной детализацией. |
|
|
69
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsAbapYear`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsAbapMonth`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsAbapDate`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsAbapDatetime`}),` | Машинные строки `,(0,c.jsx)(t.code,{children:`yyyy`}),`, `,(0,c.jsx)(t.code,{children:`yyyyMM`}),`, `,(0,c.jsx)(t.code,{children:`yyyyMMdd`}),`, `,(0,c.jsx)(t.code,{children:`yyyyMMddHHmmss`}),`. |
|
|
70
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsODataDate`}),`, `,(0,c.jsx)(t.code,{children:`formatDateAsODataDatetime`}),` | Машинные строки `,(0,c.jsx)(t.code,{children:`yyyy-MM-dd`}),`, `,(0,c.jsx)(t.code,{children:`yyyy-MM-ddTHH:mm:ss`}),`. |
|
|
71
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateAsODataTime`}),` | Время как OData duration `,(0,c.jsx)(t.code,{children:`PT00H00M00S`}),`; для ISO-длительности форматирует её как время. |
|
|
72
|
-
| `,(0,c.jsx)(t.code,{children:`formatDateRange(startValue, endValue, presetOrName?, options?)`}),` | Две валидные даты через `,(0,c.jsx)(t.code,{children:`-`}),`; если любая невалидна, возвращает fallback. |`]}),`
|
|
73
|
-
`,(0,c.jsx)(t.h3,{id:`разбор-даты-и-timezone-семантика`,children:`Разбор даты и timezone-семантика`}),`
|
|
74
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { parseDate, parseDateTZ, parseDateByPattern, parseDateValue } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
75
|
-
|
|
76
|
-
parseDate("20260305");
|
|
77
|
-
// Date | null
|
|
78
|
-
|
|
79
|
-
parseDateTZ("2026-03-05T10:00:00+05:00");
|
|
80
|
-
// Date | null, сохраняет абсолютный instant
|
|
81
|
-
|
|
82
|
-
parseDateByPattern("05/03/2026", "dd/MM/yyyy");
|
|
83
|
-
// { kind: "date-time", source: "iso-local", date: Date } | null
|
|
84
|
-
|
|
85
|
-
parseDateValue("PT01H30M");
|
|
86
|
-
// { kind: "duration", source: "iso-duration", durationMs: 5_400_000 } | null
|
|
87
|
-
`})}),`
|
|
88
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Вход и результат |
|
|
89
|
-
| ----------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
90
|
-
| `,(0,c.jsx)(t.code,{children:`parseDateValue(value)`}),` | `,(0,c.jsx)(t.code,{children:`ParsedDateValue \\| null`}),`. Обычный режим: сохраняет видимые календарные компоненты без применения timezone. |
|
|
91
|
-
| `,(0,c.jsx)(t.code,{children:`parseDateValueTZ(value)`}),` | `,(0,c.jsx)(t.code,{children:`ParsedDateValue \\| null`}),`. Для Unix timestamp и ISO/OData со смещением сохраняет абсолютный момент времени. |
|
|
92
|
-
| `,(0,c.jsx)(t.code,{children:`parseDate(value)`}),` | `,(0,c.jsx)(t.code,{children:`Date \\| null`}),`; в том числе приводит duration к `,(0,c.jsx)(t.code,{children:`Date`}),` в «плавающей» календарной семантике. |
|
|
93
|
-
| `,(0,c.jsx)(t.code,{children:`parseDateTZ(value)`}),` | `,(0,c.jsx)(t.code,{children:`Date \\| null`}),` с timezone-aware трактовкой абсолютного времени. |
|
|
94
|
-
| `,(0,c.jsx)(t.code,{children:`parseDateByPattern(value, pattern?, { precision? })`}),` | Строго разбирает токены `,(0,c.jsx)(t.code,{children:`dd`}),`, `,(0,c.jsx)(t.code,{children:`MM`}),`, `,(0,c.jsx)(t.code,{children:`yyyy`}),`, `,(0,c.jsx)(t.code,{children:`yy`}),`, `,(0,c.jsx)(t.code,{children:`HH`}),`, `,(0,c.jsx)(t.code,{children:`mm`}),`, `,(0,c.jsx)(t.code,{children:`ss`}),`; невалидные компоненты дают `,(0,c.jsx)(t.code,{children:`null`}),`. Двузначный год `,(0,c.jsx)(t.code,{children:`00–69`}),` — это `,(0,c.jsx)(t.code,{children:`2000–2069`}),`, `,(0,c.jsx)(t.code,{children:`70–99`}),` — `,(0,c.jsx)(t.code,{children:`1970–1999`}),`. |
|
|
95
|
-
| `,(0,c.jsx)(t.code,{children:`parseDateByFormat(value, dateFormat?, options?)`}),` | Разбирает зарегистрированное имя пресета, style-алиас или ручной шаблон. `,(0,c.jsx)(t.code,{children:`options`}),`: `,(0,c.jsx)(t.code,{children:`defaultFormat`}),`, `,(0,c.jsx)(t.code,{children:`locale`}),`, `,(0,c.jsx)(t.code,{children:`precision`}),`, `,(0,c.jsx)(t.code,{children:`referenceDate`}),`. |`]}),`
|
|
96
|
-
`,(0,c.jsxs)(t.p,{children:[`Публичные типы для результатов и контракта: `,(0,c.jsx)(t.code,{children:`DateInputSource`}),`,
|
|
97
|
-
`,(0,c.jsx)(t.code,{children:`ParsedDateValue`}),`, `,(0,c.jsx)(t.code,{children:`DateFormatPattern`}),`, `,(0,c.jsx)(t.code,{children:`DateFormatStyle`}),`,
|
|
98
|
-
`,(0,c.jsx)(t.code,{children:`DateFormatPrecision`}),`, `,(0,c.jsx)(t.code,{children:`DateFormatPreset`}),`, `,(0,c.jsx)(t.code,{children:`DateFormatPresetConfig`}),`,
|
|
99
|
-
`,(0,c.jsx)(t.code,{children:`FormatDateOptions`}),`, `,(0,c.jsx)(t.code,{children:`ParseDateByPatternOptions`}),`, `,(0,c.jsx)(t.code,{children:`ParseDateByFormatOptions`}),`.`]}),`
|
|
100
|
-
`,(0,c.jsxs)(t.p,{children:[`Не заменяйте `,(0,c.jsx)(t.code,{children:`parseDate`}),` на `,(0,c.jsx)(t.code,{children:`new Date("YYYY-MM-DD")`}),`, если значение является
|
|
101
|
-
календарной датой: native parsing может изменить отображаемый день из-за
|
|
102
|
-
timezone.`]}),`
|
|
103
|
-
`,(0,c.jsx)(t.h3,{id:`пресеты-дат`,children:`Пресеты дат`}),`
|
|
104
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
105
|
-
DEFAULT_DATE_PRESET_NAMES,
|
|
106
|
-
getDatePreset,
|
|
107
|
-
registerDatePreset,
|
|
108
|
-
resolveDateFormatPreset
|
|
109
|
-
} from "@ryuzaki13/react-foundation-lib/formatters";
|
|
110
|
-
|
|
111
|
-
registerDatePreset({
|
|
112
|
-
name: "report-date",
|
|
113
|
-
pattern: "dd.MM.yyyy",
|
|
114
|
-
invalidFallback: "—"
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
formatDate("2026-03-05", "report-date"); // "05.03.2026"
|
|
118
|
-
|
|
119
|
-
const safePreset = resolveDateFormatPreset("dd/MM/yyyy");
|
|
120
|
-
formatDate("05/03/2026", safePreset); // "05/03/2026"
|
|
121
|
-
`})}),`
|
|
122
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`DEFAULT_DATE_PRESET_NAMES`}),` содержит: `,(0,c.jsx)(t.code,{children:`date`}),`, `,(0,c.jsx)(t.code,{children:`date-short`}),`, `,(0,c.jsx)(t.code,{children:`date-medium`}),`,
|
|
123
|
-
`,(0,c.jsx)(t.code,{children:`date-long`}),`, `,(0,c.jsx)(t.code,{children:`month-short`}),`, `,(0,c.jsx)(t.code,{children:`month-medium`}),`, `,(0,c.jsx)(t.code,{children:`month-long`}),`,
|
|
124
|
-
`,(0,c.jsx)(t.code,{children:`month-year-medium`}),`, `,(0,c.jsx)(t.code,{children:`month-year-long`}),`, `,(0,c.jsx)(t.code,{children:`datetime`}),`, `,(0,c.jsx)(t.code,{children:`datetime-seconds`}),`,
|
|
125
|
-
`,(0,c.jsx)(t.code,{children:`datetime-short`}),`, `,(0,c.jsx)(t.code,{children:`datetime-medium`}),`, `,(0,c.jsx)(t.code,{children:`datetime-long`}),`, `,(0,c.jsx)(t.code,{children:`time`}),`,
|
|
126
|
-
`,(0,c.jsx)(t.code,{children:`time-seconds`}),`, `,(0,c.jsx)(t.code,{children:`time-short`}),`, `,(0,c.jsx)(t.code,{children:`time-medium`}),`, `,(0,c.jsx)(t.code,{children:`time-long`}),`, `,(0,c.jsx)(t.code,{children:`odata-date`}),`,
|
|
127
|
-
`,(0,c.jsx)(t.code,{children:`odata-datetime`}),`, `,(0,c.jsx)(t.code,{children:`abap-datetime`}),`, `,(0,c.jsx)(t.code,{children:`abap-date`}),`, `,(0,c.jsx)(t.code,{children:`abap-month`}),`, `,(0,c.jsx)(t.code,{children:`abap-year`}),`.`]}),`
|
|
128
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Поведение |
|
|
129
|
-
| ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
130
|
-
| `,(0,c.jsx)(t.code,{children:`DATE_FORMAT_DEFAULTS`}),` | Значения по умолчанию: `,(0,c.jsx)(t.code,{children:`ru-RU`}),`, числовая дата и пустой `,(0,c.jsx)(t.code,{children:`invalidFallback`}),`. |
|
|
131
|
-
| `,(0,c.jsx)(t.code,{children:`DATE_FORMAT_STYLE_PRESET_NAMES`}),` | Соответствие `,(0,c.jsx)(t.code,{children:`short`}),`, `,(0,c.jsx)(t.code,{children:`medium`}),`, `,(0,c.jsx)(t.code,{children:`long`}),` встроенным date-пресетам. |
|
|
132
|
-
| `,(0,c.jsx)(t.code,{children:`getDatePreset(name)`}),`, `,(0,c.jsx)(t.code,{children:`getDatePresetNames()`}),` | Возвращают пресет или `,(0,c.jsx)(t.code,{children:`undefined`}),`, список имён. |
|
|
133
|
-
| `,(0,c.jsx)(t.code,{children:`registerDatePreset(config)`}),` | Компилирует и регистрирует/перезаписывает пресет, возвращает готовый `,(0,c.jsx)(t.code,{children:`DateFormatPreset`}),`. Реестр module-scoped. |
|
|
134
|
-
| `,(0,c.jsx)(t.code,{children:`resetDatePresets()`}),` | Сбрасывает реестр к встроенным пресетам; используйте для изолированных тестов, не в обычном runtime. |
|
|
135
|
-
| `,(0,c.jsx)(t.code,{children:`isDateFormatStyle(value)`}),`, `,(0,c.jsx)(t.code,{children:`isDateFormatPrecision(value)`}),` | Type guard для style и precision. |
|
|
136
|
-
| `,(0,c.jsx)(t.code,{children:`resolveDateFormatName(value?, defaultFormat?)`}),` | Обрезает пробелы и переводит `,(0,c.jsx)(t.code,{children:`short`}),` / `,(0,c.jsx)(t.code,{children:`medium`}),` / `,(0,c.jsx)(t.code,{children:`long`}),` в имя date-пресета. |
|
|
137
|
-
| `,(0,c.jsx)(t.code,{children:`resolveDateFormatPreset(value?, options?)`}),` | Возвращает имя зарегистрированного пресета или кешируемый объектный пресет для ручного шаблона. |`]}),`
|
|
138
|
-
`,(0,c.jsxs)(t.p,{children:[`Для ручных шаблонов доступны константы `,(0,c.jsx)(t.code,{children:`DATE_PATTERN_DATE_TOKENS`}),`,
|
|
139
|
-
`,(0,c.jsx)(t.code,{children:`DATE_PATTERN_TIME_TOKENS`}),`, `,(0,c.jsx)(t.code,{children:`DATE_PATTERN_TOKENS`}),` и `,(0,c.jsx)(t.code,{children:`DATE_PATTERN_TOKEN_RE`}),`.
|
|
140
|
-
Поддерживаются только перечисленные токены; остальные фрагменты шаблона —
|
|
141
|
-
литеральный текст.`]}),`
|
|
142
|
-
`,(0,c.jsx)(t.h3,{id:`календарные-значения-и-диапазоны`,children:`Календарные значения и диапазоны`}),`
|
|
143
|
-
`,(0,c.jsxs)(t.p,{children:[`Эти функции работают с локальными компонентами `,(0,c.jsx)(t.code,{children:`Date`}),` и не добавляют UTC- или
|
|
144
|
-
timezone-семантику.`]}),`
|
|
145
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Результат / fallback |
|
|
146
|
-
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
147
|
-
| `,(0,c.jsx)(t.code,{children:`createCalendarDate(year, monthIndex, day, hour?, minute?, second?, millisecond?)`}),` | Новый локальный `,(0,c.jsx)(t.code,{children:`Date`}),`; `,(0,c.jsx)(t.code,{children:`monthIndex`}),` соответствует `,(0,c.jsx)(t.code,{children:`Date#getMonth()`}),`. |
|
|
148
|
-
| `,(0,c.jsx)(t.code,{children:`getStartOfDay`}),`, `,(0,c.jsx)(t.code,{children:`getEndOfDay`}),`, `,(0,c.jsx)(t.code,{children:`getStartOfMonth`}),`, `,(0,c.jsx)(t.code,{children:`getStartOfYear`}),`, `,(0,c.jsx)(t.code,{children:`getStartOfWeek(date, weekStartsOn?)`}),` | Новая дата с календарной границей; по умолчанию неделя начинается в понедельник. |
|
|
149
|
-
| `,(0,c.jsx)(t.code,{children:`addCalendarDays`}),`, `,(0,c.jsx)(t.code,{children:`addCalendarMonths`}),`, `,(0,c.jsx)(t.code,{children:`addCalendarYears`}),` | Новый `,(0,c.jsx)(t.code,{children:`Date`}),`, сдвинутый в календарной семантике. |
|
|
150
|
-
| `,(0,c.jsx)(t.code,{children:`isSameCalendarDay(left, right)`}),` | `,(0,c.jsx)(t.code,{children:`false`}),`, если любой аргумент не является `,(0,c.jsx)(t.code,{children:`Date`}),`; иначе сравнивает год, месяц, день. |
|
|
151
|
-
| `,(0,c.jsx)(t.code,{children:`getCalendarPeriod(value, { selectionMode?, weekEndDay? })`}),` | `,(0,c.jsx)(t.code,{children:`{ start, end } \\| null`}),`; режимы `,(0,c.jsx)(t.code,{children:`day`}),`, `,(0,c.jsx)(t.code,{children:`week`}),`, `,(0,c.jsx)(t.code,{children:`month`}),`, `,(0,c.jsx)(t.code,{children:`year`}),`, конец недели — `,(0,c.jsx)(t.code,{children:`friday`}),`, `,(0,c.jsx)(t.code,{children:`saturday`}),` или `,(0,c.jsx)(t.code,{children:`sunday`}),`. |
|
|
152
|
-
| `,(0,c.jsx)(t.code,{children:`isDateInsideCalendarPeriod`}),`, `,(0,c.jsx)(t.code,{children:`isCalendarPeriodWithinDateBounds`}),` | Проверяют включительные границы; при отсутствующих/невалидных данных возвращают `,(0,c.jsx)(t.code,{children:`false`}),`. |
|
|
153
|
-
| `,(0,c.jsx)(t.code,{children:`resolveDateRangePair(value)`}),` | Упорядоченная пара дат или `,(0,c.jsx)(t.code,{children:`null`}),`; одиночная дата становится диапазоном из неё самой. |
|
|
154
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeDateRange(value, { timeMode? })`}),` | `,(0,c.jsx)(t.code,{children:`DateRange \\| null`}),`; по умолчанию расширяет до границ суток, `,(0,c.jsx)(t.code,{children:`preserve`}),` сохраняет время и создаёт копии. |
|
|
155
|
-
| `,(0,c.jsx)(t.code,{children:`requireDateRange(value, options?)`}),` | Как `,(0,c.jsx)(t.code,{children:`normalizeDateRange`}),`, но при отсутствии диапазона выбрасывает `,(0,c.jsx)(t.code,{children:`Error`}),`. |
|
|
156
|
-
| `,(0,c.jsx)(t.code,{children:`countCalendarDaysInDateRange(value)`}),` | Количество дней включительно или `,(0,c.jsx)(t.code,{children:`null`}),`. |
|
|
157
|
-
| `,(0,c.jsx)(t.code,{children:`isValidDate`}),`, `,(0,c.jsx)(t.code,{children:`isDateRangeTuple`}),`, `,(0,c.jsx)(t.code,{children:`cloneDate`}),`, `,(0,c.jsx)(t.code,{children:`orderDates`}),` | Низкоуровневые guards и операции диапазона. |
|
|
158
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeDateRangeReferenceDate`}),`, `,(0,c.jsx)(t.code,{children:`resolveTodayRange`}),`, `,(0,c.jsx)(t.code,{children:`resolveYesterdayRange`}),`, `,(0,c.jsx)(t.code,{children:`resolveMonthAgoRange`}),`, `,(0,c.jsx)(t.code,{children:`resolveMonthStartToTodayRange`}),`, `,(0,c.jsx)(t.code,{children:`resolveMonthStartToYesterdayRange`}),` | Относительные диапазоны от `,(0,c.jsx)(t.code,{children:`{ referenceDate }`}),`; на первом дне месяца «по вчера» не создаёт инверсию. |`]}),`
|
|
159
|
-
`,(0,c.jsxs)(t.p,{children:[`Публичные типы диапазонов: `,(0,c.jsx)(t.code,{children:`CalendarPeriod`}),`, `,(0,c.jsx)(t.code,{children:`CalendarPeriodOptions`}),`,
|
|
160
|
-
`,(0,c.jsx)(t.code,{children:`CalendarPeriodDateBounds`}),`, `,(0,c.jsx)(t.code,{children:`CalendarPeriodSelectionMode`}),`,
|
|
161
|
-
`,(0,c.jsx)(t.code,{children:`CalendarWeekEndDay`}),`, `,(0,c.jsx)(t.code,{children:`DateRange`}),`, `,(0,c.jsx)(t.code,{children:`NullableDateRange`}),`, `,(0,c.jsx)(t.code,{children:`DateRangeInput`}),`,
|
|
162
|
-
`,(0,c.jsx)(t.code,{children:`DateRangeTimeMode`}),`, `,(0,c.jsx)(t.code,{children:`NormalizeDateRangeOptions`}),`, `,(0,c.jsx)(t.code,{children:`DateRangeReferenceContext`}),`.`]}),`
|
|
163
|
-
`,(0,c.jsx)(t.h3,{id:`учебный-календарь`,children:`Учебный календарь`}),`
|
|
164
|
-
`,(0,c.jsxs)(t.p,{children:[`Для образовательной модели доступны `,(0,c.jsx)(t.code,{children:`EducationDateKey`}),` (`,(0,c.jsx)(t.code,{children:`YYYY-MM-DD`}),`),
|
|
165
|
-
`,(0,c.jsx)(t.code,{children:`EducationYearRange`}),` и `,(0,c.jsx)(t.code,{children:`EducationWeekRange`}),`.`]}),`
|
|
166
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Поведение |
|
|
167
|
-
| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
168
|
-
| `,(0,c.jsx)(t.code,{children:`parseEducationDateKey`}),`, `,(0,c.jsx)(t.code,{children:`createEducationDateTime`}),` | Возвращают `,(0,c.jsx)(t.code,{children:`Date \\| null`}),` при неверном ключе или времени. |
|
|
169
|
-
| `,(0,c.jsx)(t.code,{children:`formatEducationDateKey`}),`, `,(0,c.jsx)(t.code,{children:`formatEducationTimeKey`}),` | Создают стабильные локальные ключи `,(0,c.jsx)(t.code,{children:`YYYY-MM-DD`}),` и `,(0,c.jsx)(t.code,{children:`HH:mm`}),`. |
|
|
170
|
-
| `,(0,c.jsx)(t.code,{children:`getEducationYear`}),`, `,(0,c.jsx)(t.code,{children:`getEducationYearRange`}),`, `,(0,c.jsx)(t.code,{children:`isEducationDateInCurrentYear`}),` | Учебный год: 1 сентября — 31 августа. |
|
|
171
|
-
| `,(0,c.jsx)(t.code,{children:`getEducationWeekStartDate`}),`, `,(0,c.jsx)(t.code,{children:`getEducationWeekRange`}),`, `,(0,c.jsx)(t.code,{children:`getEducationWeekDays`}),`, `,(0,c.jsx)(t.code,{children:`getCurrentEducationWeekKey`}),` | Учебная неделя: понедельник — суббота; воскресенье относится к следующей. |
|
|
172
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeEducationWeekKey`}),`, `,(0,c.jsx)(t.code,{children:`resolveEducationWeekKey`}),`, `,(0,c.jsx)(t.code,{children:`isCurrentEducationWeek`}),` | Невалидный или вне текущего учебного года ключ даёт `,(0,c.jsx)(t.code,{children:`undefined`}),`; `,(0,c.jsx)(t.code,{children:`resolve…`}),` вместо этого возвращает текущую неделю. |`]}),`
|
|
173
|
-
`,(0,c.jsx)(t.h2,{id:`числа`,children:`Числа`}),`
|
|
174
|
-
`,(0,c.jsx)(t.h3,{id:`форматирование-и-пресеты`,children:`Форматирование и пресеты`}),`
|
|
175
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import {
|
|
176
|
-
formatNumber,
|
|
177
|
-
formatNumberAsDecimal2,
|
|
178
|
-
formatNumberAsIntegerOrEmpty,
|
|
179
|
-
registerNumberPreset
|
|
180
|
-
} from "@ryuzaki13/react-foundation-lib/formatters";
|
|
181
|
-
|
|
182
|
-
formatNumberAsDecimal2(12345.6); // "12\xA0345,60" в ru-RU
|
|
183
|
-
formatNumberAsIntegerOrEmpty("0"); // ""
|
|
184
|
-
|
|
185
|
-
registerNumberPreset({
|
|
186
|
-
name: "quantity-4",
|
|
187
|
-
decimals: 4,
|
|
188
|
-
grouping: false
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
formatNumber(12.5, "quantity-4"); // "12,5000"
|
|
192
|
-
`})}),`
|
|
193
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`formatNumber(value: unknown, presetOrName: string | NumberFormatPreset): string;
|
|
194
|
-
`})}),`
|
|
195
|
-
`,(0,c.jsxs)(t.p,{children:[`Форматирование использует `,(0,c.jsx)(t.code,{children:`Intl.NumberFormat("ru-RU")`}),`. Пустая строка,
|
|
196
|
-
`,(0,c.jsx)(t.code,{children:`NaN`}),`, `,(0,c.jsx)(t.code,{children:`Infinity`}),` и значения, которые `,(0,c.jsx)(t.code,{children:`Number(value)`}),` не может привести к
|
|
197
|
-
конечному числу, возвращают строку `,(0,c.jsx)(t.code,{children:`"0"`}),`. Неизвестное строковое имя пресета
|
|
198
|
-
выбрасывает `,(0,c.jsx)(t.code,{children:`Error`}),`.`]}),`
|
|
199
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`formatNumber`}),` не является SAP-парсером: переданная строка `,(0,c.jsx)(t.code,{children:`"1 234,5"`}),` не
|
|
200
|
-
обязана быть принята `,(0,c.jsx)(t.code,{children:`Number`}),`. Для такого входа сначала используйте
|
|
201
|
-
`,(0,c.jsx)(t.code,{children:`toFiniteNumber`}),` или `,(0,c.jsx)(t.code,{children:`parseNumber`}),`.`]}),`
|
|
202
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Поведение |
|
|
203
|
-
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
204
|
-
| `,(0,c.jsx)(t.code,{children:`formatNumberAsInteger`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsCurrency`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsPrice`}),` | Встроенные пресеты с нулевой дробной частью. Валютный знак не добавляется. |
|
|
205
|
-
| `,(0,c.jsx)(t.code,{children:`formatNumberAsDecimal`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsDecimal2`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsDecimal3`}),` | Один, два или три знака после запятой. |
|
|
206
|
-
| `,(0,c.jsx)(t.code,{children:`formatNumberAsPercent`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsTonnage`}),` | Встроенные пресеты с двумя и одним знаком соответственно; знак `,(0,c.jsx)(t.code,{children:`%`}),` не добавляется. |
|
|
207
|
-
| `,(0,c.jsx)(t.code,{children:`formatNumberAsIntegerOrEmpty`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsCurrencyOrEmpty`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsDecimalOrEmpty`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsDecimal2OrEmpty`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsDecimal3OrEmpty`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsPercentOrEmpty`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsPriceOrEmpty`}),`, `,(0,c.jsx)(t.code,{children:`formatNumberAsTonnageOrEmpty`}),` | Сначала проверяют семантический ноль; для него возвращают `,(0,c.jsx)(t.code,{children:`""`}),`, иначе используют одноимённый форматтер. |
|
|
208
|
-
| `,(0,c.jsx)(t.code,{children:`truncateNumber(number, decimals)`}),` | Усечение дробной части математически, без форматирования и без проверки аргументов. |
|
|
209
|
-
| `,(0,c.jsx)(t.code,{children:`clearFormatCache()`}),` | Очищает module-scoped кеш `,(0,c.jsx)(t.code,{children:`Intl.NumberFormat`}),`; обычно нужен только для тестов или смены изолированного окружения. |`]}),`
|
|
210
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`DEFAULT_NUMBER_PRESET_NAMES`}),` содержит: `,(0,c.jsx)(t.code,{children:`integer`}),`, `,(0,c.jsx)(t.code,{children:`decimal`}),`, `,(0,c.jsx)(t.code,{children:`decimal-2`}),`,
|
|
211
|
-
`,(0,c.jsx)(t.code,{children:`decimal-3`}),`, `,(0,c.jsx)(t.code,{children:`currency`}),`, `,(0,c.jsx)(t.code,{children:`price`}),`, `,(0,c.jsx)(t.code,{children:`percent`}),`, `,(0,c.jsx)(t.code,{children:`tonnage`}),`,
|
|
212
|
-
`,(0,c.jsx)(t.code,{children:`compact-currency`}),`, `,(0,c.jsx)(t.code,{children:`compact-currency-round`}),`, `,(0,c.jsx)(t.code,{children:`compact-percent`}),`,
|
|
213
|
-
`,(0,c.jsx)(t.code,{children:`compact-percent-round`}),`, `,(0,c.jsx)(t.code,{children:`compact-tonnage`}),`, `,(0,c.jsx)(t.code,{children:`compact-tonnage-round`}),`.
|
|
214
|
-
Компактность задаётся через поле `,(0,c.jsx)(t.code,{children:`compact`}),` самого пресета: при значении от
|
|
215
|
-
1000 по умолчанию используются суффиксы `,(0,c.jsx)(t.code,{children:`тыс`}),`, `,(0,c.jsx)(t.code,{children:`млн`}),`, `,(0,c.jsx)(t.code,{children:`млрд`}),`, `,(0,c.jsx)(t.code,{children:`трлн`}),`.`]}),`
|
|
216
|
-
`,(0,c.jsxs)(t.p,{children:[`| API / тип | Назначение |
|
|
217
|
-
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
|
|
218
|
-
| `,(0,c.jsx)(t.code,{children:`NUMBER_FORMAT_DEFAULTS`}),` | Базовые значения: один знак, `,(0,c.jsx)(t.code,{children:`,`}),`, группировка ru-RU, размер группы 3. |
|
|
219
|
-
| `,(0,c.jsx)(t.code,{children:`NumberFormatPreset`}),`, `,(0,c.jsx)(t.code,{children:`NumberFormatPresetConfig`}),` | Контракт пресета и конфигурации регистрации. |
|
|
220
|
-
| `,(0,c.jsx)(t.code,{children:`NumberFormatCompactOptions`}),`, `,(0,c.jsx)(t.code,{children:`NumberFormatCompactUnit`}),`, `,(0,c.jsx)(t.code,{children:`NumberFormatCompactRoundingMode`}),` | Настройки compact-представления: минимум, дробная часть, режим `,(0,c.jsx)(t.code,{children:`round`}),` / `,(0,c.jsx)(t.code,{children:`floor`}),` / `,(0,c.jsx)(t.code,{children:`ceil`}),` / `,(0,c.jsx)(t.code,{children:`trunc`}),`, суффиксы и единицы. |
|
|
221
|
-
| `,(0,c.jsx)(t.code,{children:`getNumberPreset(name)`}),`, `,(0,c.jsx)(t.code,{children:`getNumberPresetNames()`}),` | Чтение пресета или `,(0,c.jsx)(t.code,{children:`undefined`}),`, список имён. |
|
|
222
|
-
| `,(0,c.jsx)(t.code,{children:`registerNumberPreset(config)`}),` | Регистрирует или перезаписывает пресет, дополняя отсутствующие поля `,(0,c.jsx)(t.code,{children:`NUMBER_FORMAT_DEFAULTS`}),`. |
|
|
223
|
-
| `,(0,c.jsx)(t.code,{children:`resetNumberPresets()`}),` | Возвращает только встроенные пресеты; не вызывайте в работающем приложении. |`]}),`
|
|
224
|
-
`,(0,c.jsx)(t.h3,{id:`разбор-и-проверки`,children:`Разбор и проверки`}),`
|
|
225
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { isPositiveValue, parseNumber, toFiniteNumber, toPositiveInteger } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
226
|
-
|
|
227
|
-
toFiniteNumber("1\xA0234,50"); // 1234.5
|
|
228
|
-
parseNumber("не число"); // 0
|
|
229
|
-
toPositiveInteger("12"); // 12
|
|
230
|
-
isPositiveValue("0"); // false
|
|
231
|
-
`})}),`
|
|
232
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Fallback |
|
|
233
|
-
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
234
|
-
| `,(0,c.jsx)(t.code,{children:`toFiniteNumber(value)`}),` | `,(0,c.jsx)(t.code,{children:`number \\| undefined`}),`. Поддерживает пробелы, NBSP, узкий NBSP и `,(0,c.jsx)(t.code,{children:`'`}),` как группировку; запятую как десятичный разделитель. |
|
|
235
|
-
| `,(0,c.jsx)(t.code,{children:`parseNumber(value)`}),` | Как `,(0,c.jsx)(t.code,{children:`toFiniteNumber`}),`, но возвращает `,(0,c.jsx)(t.code,{children:`0`}),` вместо `,(0,c.jsx)(t.code,{children:`undefined`}),`. |
|
|
236
|
-
| `,(0,c.jsx)(t.code,{children:`toPositiveInteger(value)`}),` | Положительное целое или `,(0,c.jsx)(t.code,{children:`undefined`}),`. |
|
|
237
|
-
| `,(0,c.jsx)(t.code,{children:`isPositiveValue(value)`}),` | `,(0,c.jsx)(t.code,{children:`true`}),` только для конечного значения строго больше нуля. |
|
|
238
|
-
| `,(0,c.jsx)(t.code,{children:`isZeroValue(value)`}),` | `,(0,c.jsx)(t.code,{children:`true`}),` для значений, семантически равных нулю; используется вариантами `,(0,c.jsx)(t.code,{children:`…OrEmpty`}),`. |`]}),`
|
|
239
|
-
`,(0,c.jsx)(t.h2,{id:`строки`,children:`Строки`}),`
|
|
240
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { formatRussianPlural } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
241
|
-
|
|
242
|
-
const elementForms = {
|
|
243
|
-
one: "элемент",
|
|
244
|
-
few: "элемента",
|
|
245
|
-
many: "элементов"
|
|
246
|
-
};
|
|
247
|
-
|
|
248
|
-
formatRussianPlural(1, elementForms); // "1 элемент"
|
|
249
|
-
formatRussianPlural(2, elementForms); // "2 элемента"
|
|
250
|
-
formatRussianPlural(7, elementForms); // "7 элементов"
|
|
251
|
-
`})}),`
|
|
252
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Вход, результат и fallback |
|
|
253
|
-
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
254
|
-
| `,(0,c.jsx)(t.code,{children:`selectRussianPluralForm(value, forms)`}),` | Выбирает полную русскую форму `,(0,c.jsx)(t.code,{children:`one`}),`, `,(0,c.jsx)(t.code,{children:`few`}),`, `,(0,c.jsx)(t.code,{children:`many`}),` или `,(0,c.jsx)(t.code,{children:`other`}),`; для дробного значения без `,(0,c.jsx)(t.code,{children:`other`}),` использует `,(0,c.jsx)(t.code,{children:`few`}),`. |
|
|
255
|
-
| `,(0,c.jsx)(t.code,{children:`formatRussianPlural(value, forms)`}),` | Возвращает исходное количество и выбранную форму через пробел; не округляет и не форматирует число отдельно. |
|
|
256
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeText(value)`}),` | Обрезанная непустая строка или `,(0,c.jsx)(t.code,{children:`undefined`}),` для нестрокового/пустого значения. |
|
|
257
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeTextWithFallback(value, fallback = "")`}),` | Нормализованный текст или указанный fallback. |
|
|
258
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeRequiredText(value)`}),` | Нормализованный текст или `,(0,c.jsx)(t.code,{children:`""`}),`. |
|
|
259
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeTextToLower(value)`}),` | Нормализованный текст в нижнем регистре или `,(0,c.jsx)(t.code,{children:`""`}),`. |
|
|
260
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeTextSpaces(value)`}),` | Убирает пробелы по краям и сворачивает пробельные символы, NBSP и узкие NBSP в один обычный пробел. |
|
|
261
|
-
| `,(0,c.jsx)(t.code,{children:`toSafeString(value)`}),` | `,(0,c.jsx)(t.code,{children:`""`}),` для `,(0,c.jsx)(t.code,{children:`null`}),`/`,(0,c.jsx)(t.code,{children:`undefined`}),`, иначе `,(0,c.jsx)(t.code,{children:`String(value)`}),`. |
|
|
262
|
-
| `,(0,c.jsx)(t.code,{children:`stripInnerSpaces(value)`}),` | Удаляет только обычные, неразрывные и узкие неразрывные пробелы внутри строки. |
|
|
263
|
-
| `,(0,c.jsx)(t.code,{children:`stripLeadingZeros(value)`}),` | Для целых цифровых строк удаляет ведущие нули, оставляя один ноль; поддерживает минус. Нечисловая строка возвращается с обрезанными краями. |
|
|
264
|
-
| `,(0,c.jsx)(t.code,{children:`startsWithIgnoringZeros(value, searchText)`}),` | Case-insensitive проверка префикса после удаления ведущих нулей у обеих строк. |
|
|
265
|
-
| `,(0,c.jsx)(t.code,{children:`truncateText(value, maxLength)`}),` | Обрезает нормализованный текст и добавляет `,(0,c.jsx)(t.code,{children:`...`}),`; пустой/невалидный текст даёт `,(0,c.jsx)(t.code,{children:`undefined`}),`. |`]}),`
|
|
266
|
-
`,(0,c.jsx)(t.h2,{id:`логические-значения-abap`,children:`Логические значения ABAP`}),`
|
|
267
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { parseAbapBoolean, parseBoolean, toAbapBoolean } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
268
|
-
|
|
269
|
-
parseAbapBoolean("X"); // true
|
|
270
|
-
parseBoolean("true"); // true
|
|
271
|
-
toAbapBoolean(false); // " "
|
|
272
|
-
`})}),`
|
|
273
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Поведение |
|
|
274
|
-
| ------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
275
|
-
| `,(0,c.jsx)(t.code,{children:`parseAbapBoolean(value)`}),` | Возвращает `,(0,c.jsx)(t.code,{children:`true`}),` только для строкового точного `,(0,c.jsx)(t.code,{children:`"X"`}),`; всё остальное — `,(0,c.jsx)(t.code,{children:`false`}),`. |
|
|
276
|
-
| `,(0,c.jsx)(t.code,{children:`parseBoolean(value)`}),` | Для строк регистронезависимо принимает `,(0,c.jsx)(t.code,{children:`"true"`}),`, `,(0,c.jsx)(t.code,{children:`"x"`}),`, `,(0,c.jsx)(t.code,{children:`"1"`}),`; для остальных значений использует JS truthiness. |
|
|
277
|
-
| `,(0,c.jsx)(t.code,{children:`toAbapBoolean(value)`}),` | Возвращает ABAP `,(0,c.jsx)(t.code,{children:`"X"`}),` или `,(0,c.jsx)(t.code,{children:`" "`}),`. Строка `,(0,c.jsx)(t.code,{children:`"0"`}),` — ложь; любая другая строка, включая `,(0,c.jsx)(t.code,{children:`""`}),`, — истина. |`]}),`
|
|
278
|
-
`,(0,c.jsx)(t.h2,{id:`фио-телефон-и-ведущие-нули`,children:`ФИО, телефон и ведущие нули`}),`
|
|
279
|
-
`,(0,c.jsx)(t.h3,{id:`фио-и-телефон`,children:`ФИО и телефон`}),`
|
|
280
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { clearPhone, formatFullName, formatPhone, formatShortName } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
281
|
-
|
|
282
|
-
formatFullName(" иванов иван иванович "); // "Иванов Иван Иванович"
|
|
283
|
-
formatShortName("иванов иван иванович"); // "Иванов И.И."
|
|
284
|
-
formatPhone("8 (912) 345-67-89"); // "+7 (912) 345-67-89"
|
|
285
|
-
`})}),`
|
|
286
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Ограничения и fallback |
|
|
287
|
-
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
288
|
-
| `,(0,c.jsx)(t.code,{children:`formatFullName(fullName)`}),` | Нормализует пробелы, нижний регистр и регистр первых трёх частей. Это presentation helper, а не валидатор ФИО; дополнительные части игнорируются. |
|
|
289
|
-
| `,(0,c.jsx)(t.code,{children:`formatShortName(fullName)`}),` | Показывает фамилию и одну/две инициалы. Пустая строка даёт `,(0,c.jsx)(t.code,{children:`""`}),`. |
|
|
290
|
-
| `,(0,c.jsx)(t.code,{children:`clearPhone(number)`}),` | Оставляет цифры, ограничивает ввод первыми 11 цифрами, приводит начальный `,(0,c.jsx)(t.code,{children:`7`}),`/`,(0,c.jsx)(t.code,{children:`8`}),` к `,(0,c.jsx)(t.code,{children:`+7`}),`. Предназначен для российских номеров. |
|
|
291
|
-
| `,(0,c.jsx)(t.code,{children:`formatPhone(number)`}),` | Форматирует только полный нормализованный номер `,(0,c.jsx)(t.code,{children:`+7`}),` и 10 цифр. Если после очистки номер неполный, возвращает исходную строку без изменений. |`]}),`
|
|
292
|
-
`,(0,c.jsx)(t.h3,{id:`числовые-идентификаторы`,children:`Числовые идентификаторы`}),`
|
|
293
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { normalizeLeadingZeros, normalizeLeadingZerosStrict } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
294
|
-
|
|
295
|
-
normalizeLeadingZeros("0012", 5); // "00012"
|
|
296
|
-
normalizeLeadingZerosStrict("0012", -1); // "12"
|
|
297
|
-
normalizeLeadingZerosStrict("12,5", 4); // "0012,5"
|
|
298
|
-
`})}),`
|
|
299
|
-
`,(0,c.jsxs)(t.p,{children:[`| API | Поведение |
|
|
300
|
-
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
301
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeLeadingZeros(value, fixed?)`}),` | Приводит конечное числовое значение через `,(0,c.jsx)(t.code,{children:`Number`}),` к строке; при `,(0,c.jsx)(t.code,{children:`fixed > 0`}),` дополняет целую часть нулями. Нечисловое/бесконечное значение возвращает как есть. Поэтому этот вариант может изменить строковое представление и тип результата. |
|
|
302
|
-
| `,(0,c.jsx)(t.code,{children:`normalizeLeadingZerosStrict(value, fixed?)`}),` | Сохраняет тип `,(0,c.jsx)(t.code,{children:`T`}),`: при `,(0,c.jsx)(t.code,{children:`fixed`}),` отсутствующем, нулевом или не конечном — no-op; при `,(0,c.jsx)(t.code,{children:`fixed < 0`}),` удаляет нули в целой части строки, при `,(0,c.jsx)(t.code,{children:`fixed > 0`}),` дополняет. Не распознанная числовая строка возвращается без изменений. Для `,(0,c.jsx)(t.code,{children:`number`}),` ведущие нули представить невозможно, поэтому результат остаётся числом. |`]}),`
|
|
303
|
-
`,(0,c.jsxs)(t.p,{children:[`Для пользовательского draft не вызывайте нормализацию во время ввода. Храните
|
|
304
|
-
буквальное значение, а `,(0,c.jsx)(t.code,{children:`normalizeLeadingZerosStrict`}),` применяйте только на
|
|
305
|
-
явной границе сохранения или восстановления, если это действительно часть
|
|
306
|
-
контракта данных.`]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BnjRbLCp.js";import{i as n,r}from"./react-qN2cStNd.js";import{l as i,m as a}from"./blocks-DXv0kKnO.js";function o(e){let t={code:`code`,h1:`h1`,h2:`h2`,p:`p`,pre:`pre`,strong:`strong`,...n(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i,{title:`Foundation Lib/Обзор`}),`
|
|
2
|
-
`,(0,c.jsx)(t.h1,{id:`ryuzaki13react-foundation-lib`,children:(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib`})}),`
|
|
3
|
-
`,(0,c.jsx)(t.p,{children:`Технический фундамент для host-приложений: чистые преобразования данных, browser/React hooks, сериализуемые runtime-контракты, OData metadata helpers и инфраструктура состояния. Пакет не знает домен приложения, UI-компоненты и transport конкретного backend.`}),`
|
|
4
|
-
`,(0,c.jsx)(t.h2,{id:`подключение`,children:`Подключение`}),`
|
|
5
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-bash`,children:`npm install @ryuzaki13/react-foundation-lib
|
|
6
|
-
`})}),`
|
|
7
|
-
`,(0,c.jsxs)(t.p,{children:[`Пакет ESM и намеренно `,(0,c.jsx)(t.strong,{children:`не имеет корневого импорта`}),`. Подключайте ровно тот опубликованный subpath, который нужен сценарию:`]}),`
|
|
8
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`import { formatDateAsDate } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
9
|
-
import { createQueryClient } from "@ryuzaki13/react-foundation-lib/query-client";
|
|
10
|
-
import type { RowRecord } from "@ryuzaki13/react-foundation-lib/types";
|
|
11
|
-
`})}),`
|
|
12
|
-
`,(0,c.jsx)(t.pre,{children:(0,c.jsx)(t.code,{className:`language-ts`,children:`// Неверно: корневой entrypoint не опубликован.
|
|
13
|
-
import { formatDateAsDate } from "@ryuzaki13/react-foundation-lib";
|
|
14
|
-
`})}),`
|
|
15
|
-
`,(0,c.jsx)(t.h2,{id:`граница-ответственности`,children:`Граница ответственности`}),`
|
|
16
|
-
`,(0,c.jsxs)(t.p,{children:[`| Задача | Использовать | Не использовать вместо этого |
|
|
17
|
-
| ---------------------------------------------------------- | ----------------------------------------- | ------------------------------------ |
|
|
18
|
-
| Чистые OData V2 metadata, path, filter и value helpers | `,(0,c.jsx)(t.code,{children:`odata-service`}),` | HTTP/OData transport |
|
|
19
|
-
| Вызовы SAP Gateway, SSO, X-CSRF и TanStack Query operation | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-api/odata`}),` | ручной `,(0,c.jsx)(t.code,{children:`fetch`}),` или этот пакет |
|
|
20
|
-
| UI primitives и дизайн-система | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-ui/<module>`}),` | hooks/utilities из lib как компонент |
|
|
21
|
-
| Доменный mapping и пользовательский сценарий | host entity/feature | foundation-lib |`]}),`
|
|
22
|
-
`,(0,c.jsxs)(t.p,{children:[(0,c.jsx)(t.code,{children:`react-foundation-lib`}),` не создаёт бизнес-правила, не хранит backend snapshot и не заменяет API- или UI-пакеты.`]}),`
|
|
23
|
-
`,(0,c.jsx)(t.h2,{id:`среда-выполнения-и-peer-dependencies`,children:`Среда выполнения и peer dependencies`}),`
|
|
24
|
-
`,(0,c.jsx)(t.p,{children:`Большинство pure helpers не требуют React. Entry point с React hook, DOM, browser storage или Service Worker должен вызываться только в браузерном runtime и по правилам React hooks. Совместимые peer dependencies должны быть разрешены host-проектом для используемого entrypoint.`}),`
|
|
25
|
-
`,(0,c.jsxs)(t.p,{children:[`| Возможность | Когда нужна в host |
|
|
26
|
-
| ----------------------------------------------- | ---------------------------------------------------------------------------- |
|
|
27
|
-
| `,(0,c.jsx)(t.code,{children:`react`}),` | `,(0,c.jsx)(t.code,{children:`hooks`}),`, `,(0,c.jsx)(t.code,{children:`dom`}),`, `,(0,c.jsx)(t.code,{children:`copy`}),`, `,(0,c.jsx)(t.code,{children:`media`}),`, `,(0,c.jsx)(t.code,{children:`pwa`}),`, `,(0,c.jsx)(t.code,{children:`three-scene`}),`, selection/table hooks |
|
|
28
|
-
| `,(0,c.jsx)(t.code,{children:`@tanstack/react-query`}),`, persistence, broadcast | `,(0,c.jsx)(t.code,{children:`query-client`}),`, часть `,(0,c.jsx)(t.code,{children:`error-report`}),` |
|
|
29
|
-
| `,(0,c.jsx)(t.code,{children:`@tanstack/react-table`}),` | `,(0,c.jsx)(t.code,{children:`table`}),` |
|
|
30
|
-
| `,(0,c.jsx)(t.code,{children:`@tanstack/react-virtual`}),` | `,(0,c.jsx)(t.code,{children:`virtualizer`}),` |
|
|
31
|
-
| `,(0,c.jsx)(t.code,{children:`@tanstack/react-router`}),` | search helpers из `,(0,c.jsx)(t.code,{children:`hooks`}),` |
|
|
32
|
-
| `,(0,c.jsx)(t.code,{children:`@floating-ui/react`}),` | `,(0,c.jsx)(t.code,{children:`useFloatingListbox`}),`, DOM reference guards |
|
|
33
|
-
| `,(0,c.jsx)(t.code,{children:`@dnd-kit/core`}),`, `,(0,c.jsx)(t.code,{children:`@dnd-kit/sortable`}),` | `,(0,c.jsx)(t.code,{children:`useDndSortableSensors`}),` |
|
|
34
|
-
| `,(0,c.jsx)(t.code,{children:`zustand`}),`, `,(0,c.jsx)(t.code,{children:`immer`}),` | `,(0,c.jsx)(t.code,{children:`notifications`}),`, OData store |
|
|
35
|
-
| `,(0,c.jsx)(t.code,{children:`zod`}),` | `,(0,c.jsx)(t.code,{children:`odata-service`}),` schemas |
|
|
36
|
-
| `,(0,c.jsx)(t.code,{children:`write-excel-file`}),` | `,(0,c.jsx)(t.code,{children:`excel`}),` |`]}),`
|
|
37
|
-
`,(0,c.jsx)(t.h2,{id:`выбор-entrypoint`,children:`Выбор entrypoint`}),`
|
|
38
|
-
`,(0,c.jsxs)(t.p,{children:[`| Сценарий | Точный import |
|
|
39
|
-
| ---------------------------------------------------- | ----------------------------------------------------- |
|
|
40
|
-
| Массивы, дедупликация, grouping, reorder | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/array`}),` |
|
|
41
|
-
| Base64 и `,(0,c.jsx)(t.code,{children:`Blob`}),` | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/binary`}),` |
|
|
42
|
-
| Ограниченный стек копий | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/bounded-copy-stack`}),` |
|
|
43
|
-
| Anchor и state контекстного меню | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/context-menu`}),` |
|
|
44
|
-
| Clipboard и feedback hooks | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/copy`}),` |
|
|
45
|
-
| Hash и UUID | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/crypto`}),` |
|
|
46
|
-
| Валютные labels по OData-параметрам | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/currency`}),` |
|
|
47
|
-
| Сегменты маски даты | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/date-segments`}),` |
|
|
48
|
-
| Portal, focus, observers, browser download | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/dom`}),` |
|
|
49
|
-
| Ошибка отсутствующего React context | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/error`}),` |
|
|
50
|
-
| Подготовка и диагностика error report | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/error-report`}),` |
|
|
51
|
-
| Excel и экспорт таблиц | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/excel`}),` |
|
|
52
|
-
| `,(0,c.jsx)(t.code,{children:`FileReader`}),`, MIME, Content-Disposition, изображения | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/file`}),` |
|
|
53
|
-
| Client fingerprint | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/fingerprint`}),` |
|
|
54
|
-
| Form errors и presets | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/form`}),` |
|
|
55
|
-
| Даты, числа, строки, pipeline и value state | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/formatters`}),` |
|
|
56
|
-
| Реестр и выполнение клиентских формул таблицы | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/formulas`}),` |
|
|
57
|
-
| Общие React hooks | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/hooks`}),` |
|
|
58
|
-
| HTTP headers и text `,(0,c.jsx)(t.code,{children:`Response`}),` | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/http`}),` |
|
|
59
|
-
| Breakpoints и media-query hooks | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/media`}),` |
|
|
60
|
-
| Imperative notifications и store | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/notifications`}),` |
|
|
61
|
-
| Математика slider/scale | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/number-scale`}),` |
|
|
62
|
-
| OData code/text collections и store | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/odata`}),` |
|
|
63
|
-
| OData V2 metadata, builder, filters, formats | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/odata-service`}),` |
|
|
64
|
-
| Нормализация сохранённых preset ids | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/presets`}),` |
|
|
65
|
-
| Service Worker update и cache policy | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/pwa`}),` |
|
|
66
|
-
| Только cache policy | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/pwa/sw-cache-policy`}),` |
|
|
67
|
-
| QueryClient, persistence, broadcast | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/query-client`}),` |
|
|
68
|
-
| Вывод открытых границ диапазона | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/range-output`}),` |
|
|
69
|
-
| SEO/head metadata contracts | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/seo`}),` |
|
|
70
|
-
| ID в `,(0,c.jsx)(t.code,{children:`sessionStorage`}),` | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/session-storage`}),` |
|
|
71
|
-
| Предсказуемое строковое сравнение | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/string-comparison`}),` |
|
|
72
|
-
| TanStack Table layout, selection и OData adapter | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/table`}),` |
|
|
73
|
-
| Проверка доступности Three.js | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/three-scene`}),` |
|
|
74
|
-
| Построение tree-table rows | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/tree-table`}),` |
|
|
75
|
-
| Общие TypeScript contracts | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/types`}),` |
|
|
76
|
-
| Clone, className, keyboard, stable stringify, tree | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/utils`}),` |
|
|
77
|
-
| Runtime guards и URL/image validation | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/validators`}),` |
|
|
78
|
-
| Infinite-query подгрузка virtualizer | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/virtualizer`}),` |
|
|
79
|
-
| XML parse/build | `,(0,c.jsx)(t.code,{children:`@ryuzaki13/react-foundation-lib/xml`}),` |`]}),`
|
|
80
|
-
`,(0,c.jsx)(t.h2,{id:`как-читать-справочник`,children:`Как читать справочник`}),`
|
|
81
|
-
`,(0,c.jsxs)(t.p,{children:[`Каждая последующая страница построена вокруг `,(0,c.jsx)(t.strong,{children:`published subpath`}),`, а не каталога исходников. В ней указаны точный import, публичные contracts, обязательная инициализация, результат, lifecycle/cleanup и ограничения. Для pure helpers достаточно вызвать функцию; registry, browser и global-store API требуют отдельного раздела «Инициализация и side effects».`]}),`
|
|
82
|
-
`,(0,c.jsxs)(t.p,{children:[`Если API не описан как публичный на соответствующей странице, не импортируйте его глубоким путём из `,(0,c.jsx)(t.code,{children:`src`}),` или `,(0,c.jsx)(t.code,{children:`dist`}),`: это не часть стабильного consumer contract.`]})]})}function s(e={}){let{wrapper:t}={...n(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(o,{...e})}):o(e)}var c;function l(){return(l=e((()=>{c=t(),r(),a()})))()}l();export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./iframe-BnjRbLCp.js";e();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{box-sizing:border-box;letter-spacing:inherit;word-spacing:inherit;line-height:inherit}:where(ul,ol):where([class]){padding-left:0}body,:where(blockquote,figure):where([class]){margin:0}:where(h1,h2,h3,h4,h5,h6,p,ul,ol,dl):where([class]){margin-block:0}:where(dd[class]){margin-left:0}:where(fieldset[class]){border:none;margin-left:0;padding:0}:where(ul[class]){list-style:none}:where(address[class]){font-style:normal}hr{border:none;border-top:var(--border);border-left:var(--border);margin:0}p{margin-block:0}p:not(:last-child),ul:where(:not([class]):not(:last-child)),ol:where(:not([class]):not(:last-child)){margin-bottom:var(--paragraph-margin)}p:not(:first-child),ul:where(:not([class]):not(:first-child)),ol:where(:not([class]):not(:first-child)){margin-top:var(--paragraph-margin)}img,video{object-fit:cover;max-width:100%;max-height:100%;display:block}input,textarea,select,button{font-family:inherit;font-size:1em}html{scroll-behavior:smooth;height:100%}.link,a:not([class]),.link:visited,a:visited:not([class]){color:var(--content-accent)}.link:hover,a:hover:not([class]){color:var(--status-info-fill)}.link:active,a:active:not([class]){color:var(--status-error-fill)}a:not([class]){text-decoration-line:underline;text-decoration-style:solid}a.unlink{color:inherit;text-decoration:none}button,label{cursor:pointer}svg *{transition-property:fill,stroke}:where(table){border-collapse:collapse;border-color:currentColor}button{color:inherit;appearance:none;background:0 0;border:none;margin:0;padding:0}:root{--font-family:"72", sans-serif;--font-family-base:var(--font-family);--font-family-mono:monospace;--font-size-xs:.75em;--font-size-sm:.875em;--font-size-md:1em;--font-size-lg:1.25em;--font-size-xl:1.5em;--letter-spacing:0em;--word-spacing:0em;--line-height:1.2;--text-height:calc(1em * var(--line-height));--line-height-offset:2px;--paragraph-margin:1em;--border-width:1px;--stroke-width:1px;--focus-width:2px;--focus-offset:-2px;--border:var(--border-width) solid var(--border-0);--outline:var(--focus-width) solid var(--border-0);--focus:var(--focus-width) solid var(--focus-ring);--radius-xs:3px;--radius-sm:5px;--radius-md:10px;--radius-lg:20px;--radius-xl:30px;--space-xs:3px;--space-sm:5px;--space-md:10px;--space-lg:20px;--space-xl:30px;--space-xxl:40px;--ui-width-xs:128px;--ui-width-sm:176px;--ui-width-md:224px;--ui-width-lg:272px;--ui-width-xl:320px;--icon-size:1.25em;--control-height-base:16px;--control-height:calc(var(--control-height-base) + var(--line-height-offset));--width-add:calc(10 * var(--letter-spacing) + 2 * var(--word-spacing));--disabled-opacity:.4;--transition-fast:.2s;--transition-slow:.6s;--animation-1s:1s;--animation-2s:2s;--z-main-menu:10;--z-fullscreen-portal:90;--z-modal-root:100;--z-modal-backdrop:110;--z-modal:120;--z-dialog:110;--z-popover:140;--z-popup-root:150;--z-dropdown:180;--z-context-menu:190;--z-tooltip:200;--z-image-viewer:300;--z-notify:400;--white:#fff;--black:#000}@supports (color:lab(0% 0 0)){:root{--white:lab(100% 0 0);--black:lab(0% 0 0)}}:root[data-font-size=small]{--control-height-base:14px;font-size:14px}:root[data-font-size=normal]{--control-height-base:16px;font-size:16px}:root[data-font-size=large]{--control-height-base:18px;font-size:18px}:root[data-font-size=very-large]{--control-height-base:20px;font-size:20px}:root[data-font-size=extra-large]{--control-height-base:22px;font-size:22px}:root[data-font-size=auto]{font-size:initial}:root[data-line-height=compact]{--line-height:1;--line-height-offset:10px}:root[data-line-height=normal]{--line-height:1.2;--line-height-offset:12px}:root[data-line-height=wide]{--line-height:1.4;--line-height-offset:14px}:root[data-line-height=extra-wide]{--line-height:1.6;--line-height-offset:16px}:root[data-letter-spacing=normal]{--letter-spacing:0px}:root[data-letter-spacing=slightly-wide]{--letter-spacing:.5px}:root[data-letter-spacing=wide]{--letter-spacing:1px}:root[data-letter-spacing=extra-wide]{--letter-spacing:1.5px}:root[data-word-spacing=normal]{--word-spacing:0px}:root[data-word-spacing=slightly-wide]{--word-spacing:.5px}:root[data-word-spacing=wide]{--word-spacing:1.5px}:root[data-word-spacing=extra-wide]{--word-spacing:2.5px}:root[data-paragraph-spacing=compact]{--paragraph-margin:.5em}:root[data-paragraph-spacing=normal]{--paragraph-margin:1em}:root[data-paragraph-spacing=wide]{--paragraph-margin:1.5em}:root[data-paragraph-spacing=extra-wide]{--paragraph-margin:2em}@media (min-resolution:2x){:root{--drp-border-width:.0625em;--drp-stroke-width:.0625em;--drp-focus-width:.125em;--drp-focus-offset:-.125em;--drp-ui-width-xs:8em;--drp-ui-width-sm:11em;--drp-ui-width-md:14em;--drp-ui-width-lg:17em;--drp-ui-width-xl:20em;--radius-xs:.1875em;--radius-sm:.3125em;--radius-md:.625em;--radius-lg:1.25em;--radius-xl:1.875em;--space-xs:.1875em;--space-sm:.3125em;--space-md:.625em;--space-lg:1.25em;--space-xl:1.875em;--space-xxl:2em}}body{font-size:1em}@media (max-width:119.999em){body{font-size:1em}}@media (max-width:71.9988em){body{font-size:1.125em}}@media (max-width:47.9988em){body{font-size:1.25em}}body{font-family:var(--font-family-base);letter-spacing:var(--letter-spacing);word-spacing:var(--word-spacing);line-height:var(--line-height);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:auto}input:-webkit-autofill{-webkit-text-fill-color:var(--content-1)!important;-webkit-box-shadow:0 0 0 1000px var(--surface-1) inset!important}input:-webkit-autofill{background:var(--surface-1)!important}input:autofill{background:var(--surface-1)!important}#modal-root:not(:empty){z-index:var(--z-modal-root);background-color:var(--overlay-glass);position:fixed;inset:0}#dialog-root:not(:empty){z-index:var(--z-dialog);position:fixed;inset:0}h1,.h1{font-size:1.5em}@media (max-width:119.999em){h1,.h1{font-size:1.5em}}@media (max-width:71.9988em){h1,.h1{font-size:1.625em}}@media (max-width:47.9988em){h1,.h1{font-size:1.75em}}h2,.h2{font-size:1.375em}@media (max-width:119.999em){h2,.h2{font-size:1.375em}}@media (max-width:71.9988em){h2,.h2{font-size:1.5em}}@media (max-width:47.9988em){h2,.h2{font-size:1.625em}}h3,.h3{font-size:1.25em}@media (max-width:119.999em){h3,.h3{font-size:1.25em}}@media (max-width:71.9988em){h3,.h3{font-size:1.375em}}@media (max-width:47.9988em){h3,.h3{font-size:1.5em}}h4,.h4{font-size:1.1875em}@media (max-width:119.999em){h4,.h4{font-size:1.1875em}}@media (max-width:71.9988em){h4,.h4{font-size:1.3125em}}@media (max-width:47.9988em){h4,.h4{font-size:1.4375em}}h5,.h5{font-size:1.0625em}@media (max-width:119.999em){h5,.h5{font-size:1.0625em}}@media (max-width:71.9988em){h5,.h5{font-size:1.1875em}}@media (max-width:47.9988em){h5,.h5{font-size:1.3125em}}h6,.h6{font-size:1em}@media (max-width:119.999em){h6,.h6{font-size:1em}}@media (max-width:71.9988em){h6,.h6{font-size:1.125em}}@media (max-width:47.9988em){h6,.h6{font-size:1.25em}}h1,h2,h3,h4{font-variation-settings:"wght" 700;font-weight:700}h5,h6{font-variation-settings:"wght" 600;font-weight:600}h1,h2,h3,h4,h5,h6{color:var(--content-1);margin:0}.h0{color:var(--content-1);font-size:inherit;font-variation-settings:"wght" 400;margin:0;font-weight:400}strong{font-variation-settings:"wght" 700;font-weight:700}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}table{border-collapse:separate;border-spacing:0;table-layout:fixed;text-align:left;min-width:100%}table:not([data-clear-table]) td,table:not([data-clear-table]) th{border-bottom:var(--border);border-right:var(--border);padding:var(--space-sm)}table:not([data-clear-table]) td:first-child,table:not([data-clear-table]) th:first-child{border-left:var(--border)}table:not([data-clear-table]) tr:first-child td,table:not([data-clear-table]) tr:first-child th{border-top:var(--border)}table:not([data-clear-table]) thead+tbody tr:first-child td,table:not([data-clear-table]) thead+tbody tr:first-child th,table:not([data-clear-table]) tbody+tfoot tr:first-child td,table:not([data-clear-table]) tbody+tfoot tr:first-child th{border-top:none}table:not([data-clear-table]) th{background-color:var(--surface-1);font-variation-settings:"wght" 400;font-weight:400}table:not([data-clear-table]) tr>td{vertical-align:top}caption{text-align:left;margin-block:var(--space-sm);color:var(--content-1);font-size:1.25em}@media (max-width:119.999em){caption{font-size:1.25em}}@media (max-width:71.9988em){caption{font-size:1.375em}}@media (max-width:47.9988em){caption{font-size:1.5em}}table.alignCenter tr>td{vertical-align:middle}:focus-visible,.focusVisible:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}.visuallyHidden{white-space:nowrap!important;clip-path:inset(100%)!important;clip:rect(0 0 0 0)!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.opacity0{opacity:0}.opacity0.opacityHover:hover{opacity:.8}.opacity20{opacity:.2}.opacity20.opacityHover:hover{opacity:.8}.opacity50{opacity:.5}.opacity50.opacityHover:hover{opacity:1}.opacity80{opacity:.8}.opacity80.opacityHover:hover{opacity:1}.opacityTransition{transition:opacity var(--transition-fast) ease}.shadowLg{box-shadow:var(--shadow-lg)}.shadowMd{box-shadow:var(--shadow-md)}.shadowSm{box-shadow:var(--shadow-sm)}.cursorPointer{cursor:pointer}.cursorDefault{cursor:default}.cursorNotAllowed{cursor:not-allowed}.noSelect,.noEvents{-webkit-user-select:none;user-select:none}.noEvent,.noEvents{pointer-events:none}.noEvents{cursor:default;opacity:var(--disabled-opacity);color:var(--content-2)}.touchNoZoom{touch-action:manipulation}.componentLoader{min-height:10rem}.skeletonLine,.skeletonTextLine{background-color:var(--surface-2);background-image:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-2) 40%, var(--surface-0) 50%, var(--surface-2) 52%, var(--surface-2) 100%)}.skeletonTextLine{height:var(--text-height)}.skeletonLineInverse{background-color:var(--surface-2);background-image:linear-gradient(135deg, var(--surface-2) 0%, var(--surface-2) 40%, var(--surface-0) 50%, var(--surface-2) 52%, var(--surface-2) 100%)}.skeletonLine,.skeletonTextLine,.skeletonLineInverse{animation:skeletonLineMove var(--animation-2s) infinite linear;background-position:-100% 0;background-size:200% 100%}@keyframes skeletonLineMove{0%{background-position:100% 0}to{background-position:-100% 0}}.routeLoadingOverlay{z-index:8000;pointer-events:none;position:fixed;inset:0}.alignItemsStart{align-items:start}.alignItemsCenter,.flexCenter,.flexCenterBetween{align-items:center}.alignItemsEnd{align-items:end}.alignItemsStretch{align-items:stretch}.alignItemsBaseline{align-items:baseline}.justifyItemsStart{justify-items:start}.justifyItemsCenter{justify-items:center}.justifyItemsEnd{justify-items:end}.justifyItemsStretch{justify-items:stretch}.alignContentStart{align-content:start}.alignContentCenter{align-content:center}.alignContentEnd{align-content:end}.alignContentStretch{align-content:stretch}.alignContentBetween{align-content:space-between}.alignContentAround{align-content:space-around}.alignContentEvenly{align-content:space-evenly}.justifyContentStart{justify-content:start}.justifyContentCenter,.flexCenter{justify-content:center}.justifyContentEnd{justify-content:end}.justifyContentStretch{justify-content:stretch}.justifyContentBetween,.flexCenterBetween{justify-content:space-between}.justifyContentAround{justify-content:space-around}.justifyContentEvenly{justify-content:space-evenly}.justifySelfCenter{justify-self:center}.justifySelfEnd{justify-self:end}.justifySelfStretch{justify-self:stretch}.flex,.flexCenterBetween,.flexCenter,.flexColumnReverse,.flexRowReverse,.flexColumn,.flexRow,.flexWrapReverse,.flexNoWrap,.flexWrap{display:flex}.flexInline{vertical-align:middle;display:inline-flex}.flexWrap{flex-wrap:wrap}.flexNoWrap{flex-wrap:nowrap}.flexWrapReverse{flex-wrap:wrap-reverse}.flexRow{flex-direction:row}.flexColumn{flex-direction:column}.flexRowReverse{flex-direction:row-reverse}.flexColumnReverse{flex-direction:column-reverse}.flexBasis0{flex-basis:0}.flexBasisAuto,.flex1,.flex0{flex-basis:auto}.flexGrow0,.flex0{flex-grow:0}.flexGrow1,.flex1{flex-grow:1}.flexShrink0,.flex0{flex-shrink:0}.flexShrink1,.flex1{flex-shrink:1}.gapNone{gap:unset}.gapRowXs,.gapXs{row-gap:var(--space-xs)}.gapRowSm,.gapSm,.gridColumnsSm{row-gap:var(--space-sm)}.gapRowMd,.gapMd,.gridColumnsMd{row-gap:var(--space-md)}.gapRowLg,.gapLg,.gridColumnsLg{row-gap:var(--space-lg)}.gapRowXl,.gapXl{row-gap:var(--space-xl)}.gapColumnXs,.gapXs{column-gap:var(--space-xs)}.gapColumnSm,.gapSm,.gridColumnsSm{column-gap:var(--space-sm)}.gapColumnMd,.gapMd,.gridColumnsMd{column-gap:var(--space-md)}.gapColumnLg,.gapLg,.gridColumnsLg{column-gap:var(--space-lg)}.gapColumnXl,.gapXl{column-gap:var(--space-xl)}.grid,.gridColumns,.gridColumnsLg,.gridColumnsMd,.gridColumnsSm,.gridAutoColumnsAutoFr,.gridAutoRowsAutoFr,.gridAutoRowsFr{display:grid}.gridAutoRowsFr{grid-auto-rows:1fr}.gridAutoRowsAutoFr{grid-template-columns:100%;grid-auto-rows:auto 1fr}.gridAutoColumnsAutoFr{grid-template-columns:auto 1fr;grid-auto-rows:auto}.gridColumns,.gridColumnsLg,.gridColumnsMd,.gridColumnsSm{--min-width:15em;grid-template-columns:repeat(auto-fill, minmax(calc(var(--min-width) + var(--width-add)), 1fr))}.marginTopXs,.marginBlockXs,.marginXs{margin-top:var(--space-xs)}.marginTopSm,.marginBlockSm,.marginSm{margin-top:var(--space-sm)}.marginTopMd,.marginBlockMd,.marginMd{margin-top:var(--space-md)}.marginTopLg,.marginBlockLg,.marginLg,.section{margin-top:var(--space-lg)}.marginTopXl,.marginBlockXl,.marginXl{margin-top:var(--space-xl)}.marginRightXs,.marginInlineXs,.marginXs{margin-right:var(--space-xs)}.marginRightSm,.marginInlineSm,.marginSm{margin-right:var(--space-sm)}.marginRightMd,.marginInlineMd,.marginMd{margin-right:var(--space-md)}.marginRightLg,.marginInlineLg,.marginLg,.section{margin-right:var(--space-lg)}.marginRightXl,.marginInlineXl,.marginXl{margin-right:var(--space-xl)}.marginBottomXs,.marginBlockXs,.marginXs{margin-bottom:var(--space-xs)}.marginBottomSm,.marginBlockSm,.marginSm{margin-bottom:var(--space-sm)}.marginBottomMd,.marginBlockMd,.marginMd{margin-bottom:var(--space-md)}.marginBottomLg,.marginBlockLg,.marginLg,.section{margin-bottom:var(--space-lg)}.marginBottomXl,.marginBlockXl,.marginXl{margin-bottom:var(--space-xl)}.marginLeftXs,.marginInlineXs,.marginXs{margin-left:var(--space-xs)}.marginLeftSm,.marginInlineSm,.marginSm{margin-left:var(--space-sm)}.marginLeftMd,.marginInlineMd,.marginMd{margin-left:var(--space-md)}.marginLeftLg,.marginInlineLg,.marginLg,.section{margin-left:var(--space-lg)}.marginLeftXl,.marginInlineXl,.marginXl{margin-left:var(--space-xl)}.marginTop0,.marginBlock0,.margin0{margin-top:0}.marginRight0,.marginInline0,.margin0{margin-right:0}.marginBottom0,.marginBlock0,.margin0{margin-bottom:0}.marginLeft0,.marginInline0,.margin0{margin-left:0}.paragraph0{--paragraph-margin:0}.paddingTopXs,.paddingBlockXs,.paddingXs{padding-top:var(--space-xs)}.paddingTopSm,.paddingBlockSm,.paddingSm{padding-top:var(--space-sm)}.paddingTopMd,.paddingBlockMd,.paddingMd{padding-top:var(--space-md)}.paddingTopLg,.paddingBlockLg,.paddingLg,.container,.section,.sectionPanel{padding-top:var(--space-lg)}.paddingTopXl,.paddingBlockXl,.paddingXl{padding-top:var(--space-xl)}.paddingRightXs,.paddingInlineXs,.paddingXs{padding-right:var(--space-xs)}.paddingRightSm,.paddingInlineSm,.paddingSm{padding-right:var(--space-sm)}.paddingRightMd,.paddingInlineMd,.paddingMd{padding-right:var(--space-md)}.paddingRightLg,.paddingInlineLg,.paddingLg,.container,.section,.sectionPanel{padding-right:var(--space-lg)}.paddingRightXl,.paddingInlineXl,.paddingXl{padding-right:var(--space-xl)}.paddingBottomXs,.paddingBlockXs,.paddingXs{padding-bottom:var(--space-xs)}.paddingBottomSm,.paddingBlockSm,.paddingSm{padding-bottom:var(--space-sm)}.paddingBottomMd,.paddingBlockMd,.paddingMd{padding-bottom:var(--space-md)}.paddingBottomLg,.paddingBlockLg,.paddingLg,.container,.section,.sectionPanel{padding-bottom:var(--space-lg)}.paddingBottomXl,.paddingBlockXl,.paddingXl{padding-bottom:var(--space-xl)}.paddingLeftXs,.paddingInlineXs,.paddingXs{padding-left:var(--space-xs)}.paddingLeftSm,.paddingInlineSm,.paddingSm{padding-left:var(--space-sm)}.paddingLeftMd,.paddingInlineMd,.paddingMd{padding-left:var(--space-md)}.paddingLeftLg,.paddingInlineLg,.paddingLg,.container,.section,.sectionPanel{padding-left:var(--space-lg)}.paddingLeftXl,.paddingInlineXl,.paddingXl{padding-left:var(--space-xl)}.paddingTop0,.paddingBlock0,.padding0{padding-top:0}.paddingRight0,.paddingInline0,.padding0{padding-right:0}.paddingBottom0,.paddingBlock0,.padding0{padding-bottom:0}.paddingLeft0,.paddingInline0,.padding0{padding-left:0}.border,.sectionPanel{border:var(--border)}.borderTop,.borderBlock{border-top:var(--border)}.borderBottom,.borderBlock{border-bottom:var(--border)}.borderLeft,.borderInline{border-left:var(--border)}.borderRight,.borderInline{border-right:var(--border)}.borderTransition{transition:border var(--transition-fast) ease}.borderTransparent{border-color:#0000}.borderHover:hover{border-color:var(--border-1)}.radiusXs{border-radius:var(--radius-xs)}.radiusSm{border-radius:var(--radius-sm)}.radiusMd,.sectionPanel{border-radius:var(--radius-md)}.radiusLg,.container{border-radius:var(--radius-lg)}.radiusXl{border-radius:var(--radius-xl)}.radiusCircle{border-radius:50%}.outlineSolid{outline:var(--border-width) solid var(--content-accent);outline-offset:var(--focus-offset)}.outlineDashed{outline:var(--border-width) dashed var(--content-accent);outline-offset:var(--focus-offset)}.separator,.separatorDashed{border-top:var(--border)}.separatorDashed{border-top-style:dashed}.separatorVertical{border-left:var(--border);height:100%;min-height:1em}.textCenter{text-align:center}.textLeft{text-align:left}.textRight{text-align:right}.textJustify{text-align:justify}.verticalTop{vertical-align:top}.verticalMiddle{vertical-align:middle}.verticalBottom{vertical-align:bottom}.fontBolded{font-variation-settings:"wght" 900;font-weight:900}.fontBold{font-variation-settings:"wght" 700;font-weight:700}.fontMedium{font-variation-settings:"wght" 500;font-weight:500}.fontRegular{font-variation-settings:"wght" 400;font-weight:400}.fontLight{font-variation-settings:"wght" 300;font-weight:300}.fontLighter{font-variation-settings:"wght" 200;font-weight:200}.fontItalic{font-style:italic}.fontNormal{font-style:normal}.fontUnderline{text-decoration:underline}.fontSizeXs{font-size:var(--font-size-xs)}.fontSizeSm{font-size:var(--font-size-sm)}.fontSizeMd{font-size:var(--font-size-md)}.fontSizeLg{font-size:var(--font-size-lg)}.fontSizeXl{font-size:var(--font-size-xl)}.textLineHeight{height:calc(1em * var(--line-height))}.controlHeight{height:var(--control-height)}.textWrap{white-space:pre-wrap;word-break:break-word}.textNoWrap,.textOverflow,.flexEllipsis{white-space:nowrap;word-break:normal}.textEllipsis,.textClampBase,.textClamp6Lines,.textClamp4Lines,.textClamp3Lines,.textClamp2Lines,.textOverflow,.flexEllipsis{text-overflow:ellipsis}.scrollable,.overflowAuto,.overflowScroll,.scrollableX,.scrollableY{scrollbar-color:var(--border-0) transparent;min-height:0;transition:scrollbar-color .1s ease-out;overflow:auto}.scrollable.stable,.stable.overflowAuto,.stable.overflowScroll,.stable.scrollableX,.stable.scrollableY{scrollbar-gutter:stable}.scrollable.overscroll,.overscroll.overflowAuto,.overscroll.overflowScroll,.overscroll.scrollableX,.overscroll.scrollableY{overscroll-behavior:contain}.scrollable.thin,.thin.overflowAuto,.thin.overflowScroll,.thin.scrollableX,.thin.scrollableY{scrollbar-width:thin}.scrollableY{overflow-x:hidden}.scrollableX{overflow-y:hidden}.overflowHidden,.textClampBase,.textClamp6Lines,.textClamp4Lines,.textClamp3Lines,.textClamp2Lines,.textOverflow,.flexEllipsis{overflow:hidden}.overflowScroll{overflow:scroll}.overflowAuto{overflow:auto}.flexEllipsis{flex:1;min-width:0}.textClampBase,.textClamp6Lines,.textClamp4Lines,.textClamp3Lines,.textClamp2Lines{-webkit-box-orient:vertical;display:-webkit-box}.textClampBase:after,.textClamp6Lines:after,.textClamp4Lines:after,.textClamp3Lines:after,.textClamp2Lines:after{background:inherit;position:absolute;bottom:0;right:0}.textClamp2Lines{-webkit-line-clamp:2}@supports not (-webkit-line-clamp:2){.textClamp2Lines{max-height:3em;position:relative}.textClamp2Lines:after{content:"..."}}.textClamp3Lines{-webkit-line-clamp:3}@supports not (-webkit-line-clamp:3){.textClamp3Lines{max-height:4.5em;position:relative}.textClamp3Lines:after{content:"..."}}.textClamp4Lines{-webkit-line-clamp:4}@supports not (-webkit-line-clamp:4){.textClamp4Lines{max-height:6em;position:relative}.textClamp4Lines:after{content:"..."}}.textClamp6Lines{-webkit-line-clamp:6}@supports not (-webkit-line-clamp:6){.textClamp6Lines{max-height:9em;position:relative}.textClamp6Lines:after{content:"..."}}.textStriked{text-decoration:line-through}.textUppercase{text-transform:uppercase}.overlayBackdrop{background-color:var(--overlay-backdrop)}.overlayGlass{background-color:var(--overlay-glass)}@supports ((-webkit-backdrop-filter:blur(0.5em)) or (backdrop-filter:blur(0.5em))){.overlayBackdrop,.overlayGlass{-webkit-backdrop-filter:blur(.5em);backdrop-filter:blur(.5em)}}.surface0{background-color:var(--surface-0)}.surface1{background-color:var(--surface-1)}.surface2{background-color:var(--surface-2)}.surfaceAccent{background-color:var(--surface-accent)}.surfaceBackdrop{background-color:var(--overlay-backdrop)}.surfaceGlass{background-color:var(--overlay-glass)}.colorTransparent{color:#0000}.content0{color:var(--content-0)}.content1{color:var(--content-1)}.content2{color:var(--content-2)}.contentAccent{color:var(--content-accent)}.statusSuccess{color:var(--status-success-text)}.statusError,.textColorDanger{color:var(--status-error-text)}.statusWarning{color:var(--status-warning-text)}.statusInfo{color:var(--status-info-text)}.statusBrand{color:var(--status-brand-text)}.statusNone{color:var(--content-1)}.colorSchemeNeutral{--ui-tone-text:var(--status-neutral-text);--ui-tone-text-hover:var(--status-neutral-text-hover);--ui-tone-text-active:var(--status-neutral-text-active);--ui-tone-fill:var(--status-neutral-fill);--ui-tone-fill-hover:var(--status-neutral-fill-hover);--ui-tone-fill-active:var(--status-neutral-fill-active);--ui-tone-on-fill:var(--status-neutral-on-fill);--ui-tone-soft:var(--status-neutral-soft);--ui-tone-border:var(--status-neutral-border);--ui-tone-border-hover:var(--status-neutral-border-hover);--ui-tone-border-active:var(--status-neutral-border-active);--ui-tone-border-focus:var(--status-neutral-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-neutral-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-neutral-fill-active) 20%, var(--surface-0));--ui-color:var(--ui-tone-on-fill);--ui-color-hover:var(--ui-tone-on-fill);--ui-color-active:var(--ui-tone-on-fill);--ui-background:var(--ui-tone-fill);--ui-background-hover:var(--ui-tone-fill-hover);--ui-background-active:var(--ui-tone-fill-active);--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent;color:var(--ui-color);background-color:var(--ui-background);border-color:var(--ui-border-color)}.colorSchemeSuccess{--ui-tone-text:var(--status-success-text);--ui-tone-text-hover:var(--status-success-text-hover);--ui-tone-text-active:var(--status-success-text-active);--ui-tone-fill:var(--status-success-fill);--ui-tone-fill-hover:var(--status-success-fill-hover);--ui-tone-fill-active:var(--status-success-fill-active);--ui-tone-on-fill:var(--status-success-on-fill);--ui-tone-soft:var(--status-success-soft);--ui-tone-border:var(--status-success-border);--ui-tone-border-hover:var(--status-success-border-hover);--ui-tone-border-active:var(--status-success-border-active);--ui-tone-border-focus:var(--status-success-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-success-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-success-fill-active) 20%, var(--surface-0));--ui-color:var(--ui-tone-on-fill);--ui-color-hover:var(--ui-tone-on-fill);--ui-color-active:var(--ui-tone-on-fill);--ui-background:var(--ui-tone-fill);--ui-background-hover:var(--ui-tone-fill-hover);--ui-background-active:var(--ui-tone-fill-active);--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent;color:var(--ui-color);background-color:var(--ui-background);border-color:var(--ui-border-color)}.colorSchemeError{--ui-tone-text:var(--status-error-text);--ui-tone-text-hover:var(--status-error-text-hover);--ui-tone-text-active:var(--status-error-text-active);--ui-tone-fill:var(--status-error-fill);--ui-tone-fill-hover:var(--status-error-fill-hover);--ui-tone-fill-active:var(--status-error-fill-active);--ui-tone-on-fill:var(--status-error-on-fill);--ui-tone-soft:var(--status-error-soft);--ui-tone-border:var(--status-error-border);--ui-tone-border-hover:var(--status-error-border-hover);--ui-tone-border-active:var(--status-error-border-active);--ui-tone-border-focus:var(--status-error-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-error-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-error-fill-active) 20%, var(--surface-0));--ui-color:var(--ui-tone-on-fill);--ui-color-hover:var(--ui-tone-on-fill);--ui-color-active:var(--ui-tone-on-fill);--ui-background:var(--ui-tone-fill);--ui-background-hover:var(--ui-tone-fill-hover);--ui-background-active:var(--ui-tone-fill-active);--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent;color:var(--ui-color);background-color:var(--ui-background);border-color:var(--ui-border-color)}.colorSchemeWarning{--ui-tone-text:var(--status-warning-text);--ui-tone-text-hover:var(--status-warning-text-hover);--ui-tone-text-active:var(--status-warning-text-active);--ui-tone-fill:var(--status-warning-fill);--ui-tone-fill-hover:var(--status-warning-fill-hover);--ui-tone-fill-active:var(--status-warning-fill-active);--ui-tone-on-fill:var(--status-warning-on-fill);--ui-tone-soft:var(--status-warning-soft);--ui-tone-border:var(--status-warning-border);--ui-tone-border-hover:var(--status-warning-border-hover);--ui-tone-border-active:var(--status-warning-border-active);--ui-tone-border-focus:var(--status-warning-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-warning-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-warning-fill-active) 20%, var(--surface-0));--ui-color:var(--ui-tone-on-fill);--ui-color-hover:var(--ui-tone-on-fill);--ui-color-active:var(--ui-tone-on-fill);--ui-background:var(--ui-tone-fill);--ui-background-hover:var(--ui-tone-fill-hover);--ui-background-active:var(--ui-tone-fill-active);--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent;color:var(--ui-color);background-color:var(--ui-background);border-color:var(--ui-border-color)}.colorSchemeInfo{--ui-tone-text:var(--status-info-text);--ui-tone-text-hover:var(--status-info-text-hover);--ui-tone-text-active:var(--status-info-text-active);--ui-tone-fill:var(--status-info-fill);--ui-tone-fill-hover:var(--status-info-fill-hover);--ui-tone-fill-active:var(--status-info-fill-active);--ui-tone-on-fill:var(--status-info-on-fill);--ui-tone-soft:var(--status-info-soft);--ui-tone-border:var(--status-info-border);--ui-tone-border-hover:var(--status-info-border-hover);--ui-tone-border-active:var(--status-info-border-active);--ui-tone-border-focus:var(--status-info-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-info-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-info-fill-active) 20%, var(--surface-0));--ui-color:var(--ui-tone-on-fill);--ui-color-hover:var(--ui-tone-on-fill);--ui-color-active:var(--ui-tone-on-fill);--ui-background:var(--ui-tone-fill);--ui-background-hover:var(--ui-tone-fill-hover);--ui-background-active:var(--ui-tone-fill-active);--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent;color:var(--ui-color);background-color:var(--ui-background);border-color:var(--ui-border-color)}.colorSchemeGhost{--ui-tone-text:var(--status-neutral-text);--ui-tone-text-hover:var(--status-neutral-text-hover);--ui-tone-text-active:var(--status-neutral-text-active);--ui-tone-fill:var(--status-neutral-fill);--ui-tone-fill-hover:var(--status-neutral-fill-hover);--ui-tone-fill-active:var(--status-neutral-fill-active);--ui-tone-on-fill:var(--status-neutral-on-fill);--ui-tone-soft:var(--status-neutral-soft);--ui-tone-border:var(--status-neutral-border);--ui-tone-border-hover:var(--status-neutral-border-hover);--ui-tone-border-active:var(--status-neutral-border-active);--ui-tone-border-focus:var(--status-neutral-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-neutral-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-neutral-fill-active) 20%, var(--surface-0));--ui-color:var(--ui-tone-text);--ui-color-hover:var(--ui-tone-text-hover);--ui-color-active:var(--ui-tone-text-active);--ui-background:transparent;--ui-background-hover:var(--ui-tone-ghost-hover);--ui-background-active:var(--ui-tone-ghost-active);--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent;color:var(--ui-color);background-color:var(--ui-background);border-color:var(--ui-border-color)}.colorSchemeLight{--ui-tone-text:var(--status-neutral-text);--ui-tone-text-hover:var(--status-neutral-text-hover);--ui-tone-text-active:var(--status-neutral-text-active);--ui-tone-fill:var(--status-neutral-fill);--ui-tone-fill-hover:var(--status-neutral-fill-hover);--ui-tone-fill-active:var(--status-neutral-fill-active);--ui-tone-on-fill:var(--status-neutral-on-fill);--ui-tone-soft:var(--status-neutral-soft);--ui-tone-border:var(--status-neutral-border);--ui-tone-border-hover:var(--status-neutral-border-hover);--ui-tone-border-active:var(--status-neutral-border-active);--ui-tone-border-focus:var(--status-neutral-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-neutral-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-neutral-fill-active) 20%, var(--surface-0));--ui-color:var(--ui-tone-text);--ui-color-hover:var(--ui-tone-text-hover);--ui-color-active:var(--ui-tone-text-active);--ui-background:var(--surface-0);--ui-background-hover:var(--surface-0);--ui-background-active:var(--surface-0);--ui-border-color:var(--ui-tone-border);--ui-border-hover:var(--ui-tone-border-hover);--ui-border-active:var(--ui-tone-border-active);--ui-border-focus:var(--ui-tone-border-focus);color:var(--ui-color);background-color:var(--ui-background);border-color:var(--ui-border-color)}.uiToneNeutral{--ui-tone-text:var(--status-neutral-text);--ui-tone-text-hover:var(--status-neutral-text-hover);--ui-tone-text-active:var(--status-neutral-text-active);--ui-tone-fill:var(--status-neutral-fill);--ui-tone-fill-hover:var(--status-neutral-fill-hover);--ui-tone-fill-active:var(--status-neutral-fill-active);--ui-tone-on-fill:var(--status-neutral-on-fill);--ui-tone-soft:var(--status-neutral-soft);--ui-tone-border:var(--status-neutral-border);--ui-tone-border-hover:var(--status-neutral-border-hover);--ui-tone-border-active:var(--status-neutral-border-active);--ui-tone-border-focus:var(--status-neutral-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-neutral-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-neutral-fill-active) 20%, var(--surface-0))}.uiToneBrand{--ui-tone-text:var(--status-brand-text);--ui-tone-text-hover:var(--status-brand-text-hover);--ui-tone-text-active:var(--status-brand-text-active);--ui-tone-fill:var(--status-brand-fill);--ui-tone-fill-hover:var(--status-brand-fill-hover);--ui-tone-fill-active:var(--status-brand-fill-active);--ui-tone-on-fill:var(--status-brand-on-fill);--ui-tone-soft:var(--status-brand-soft);--ui-tone-border:var(--status-brand-border);--ui-tone-border-hover:var(--status-brand-border-hover);--ui-tone-border-active:var(--status-brand-border-active);--ui-tone-border-focus:var(--status-brand-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-brand-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-brand-fill-active) 20%, var(--surface-0))}.uiToneError{--ui-tone-text:var(--status-error-text);--ui-tone-text-hover:var(--status-error-text-hover);--ui-tone-text-active:var(--status-error-text-active);--ui-tone-fill:var(--status-error-fill);--ui-tone-fill-hover:var(--status-error-fill-hover);--ui-tone-fill-active:var(--status-error-fill-active);--ui-tone-on-fill:var(--status-error-on-fill);--ui-tone-soft:var(--status-error-soft);--ui-tone-border:var(--status-error-border);--ui-tone-border-hover:var(--status-error-border-hover);--ui-tone-border-active:var(--status-error-border-active);--ui-tone-border-focus:var(--status-error-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-error-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-error-fill-active) 20%, var(--surface-0))}.uiToneWarning{--ui-tone-text:var(--status-warning-text);--ui-tone-text-hover:var(--status-warning-text-hover);--ui-tone-text-active:var(--status-warning-text-active);--ui-tone-fill:var(--status-warning-fill);--ui-tone-fill-hover:var(--status-warning-fill-hover);--ui-tone-fill-active:var(--status-warning-fill-active);--ui-tone-on-fill:var(--status-warning-on-fill);--ui-tone-soft:var(--status-warning-soft);--ui-tone-border:var(--status-warning-border);--ui-tone-border-hover:var(--status-warning-border-hover);--ui-tone-border-active:var(--status-warning-border-active);--ui-tone-border-focus:var(--status-warning-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-warning-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-warning-fill-active) 20%, var(--surface-0))}.uiToneSuccess{--ui-tone-text:var(--status-success-text);--ui-tone-text-hover:var(--status-success-text-hover);--ui-tone-text-active:var(--status-success-text-active);--ui-tone-fill:var(--status-success-fill);--ui-tone-fill-hover:var(--status-success-fill-hover);--ui-tone-fill-active:var(--status-success-fill-active);--ui-tone-on-fill:var(--status-success-on-fill);--ui-tone-soft:var(--status-success-soft);--ui-tone-border:var(--status-success-border);--ui-tone-border-hover:var(--status-success-border-hover);--ui-tone-border-active:var(--status-success-border-active);--ui-tone-border-focus:var(--status-success-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-success-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-success-fill-active) 20%, var(--surface-0))}.uiToneInfo{--ui-tone-text:var(--status-info-text);--ui-tone-text-hover:var(--status-info-text-hover);--ui-tone-text-active:var(--status-info-text-active);--ui-tone-fill:var(--status-info-fill);--ui-tone-fill-hover:var(--status-info-fill-hover);--ui-tone-fill-active:var(--status-info-fill-active);--ui-tone-on-fill:var(--status-info-on-fill);--ui-tone-soft:var(--status-info-soft);--ui-tone-border:var(--status-info-border);--ui-tone-border-hover:var(--status-info-border-hover);--ui-tone-border-active:var(--status-info-border-active);--ui-tone-border-focus:var(--status-info-border-focus);--ui-tone-ghost-hover:color-mix(in srgb, var(--status-info-fill-hover) 10%, var(--surface-0));--ui-tone-ghost-active:color-mix(in srgb, var(--status-info-fill-active) 20%, var(--surface-0))}.uiAppearanceSolid{--ui-color:var(--ui-tone-on-fill);--ui-color-hover:var(--ui-tone-on-fill);--ui-color-active:var(--ui-tone-on-fill);--ui-background:var(--ui-tone-fill);--ui-background-hover:var(--ui-tone-fill-hover);--ui-background-active:var(--ui-tone-fill-active);--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent}.uiAppearanceOutline{--ui-color:var(--ui-tone-text);--ui-color-hover:var(--ui-tone-text-hover);--ui-color-active:var(--ui-tone-text-active);--ui-background:var(--surface-0);--ui-background-hover:var(--surface-0);--ui-background-active:var(--surface-0);--ui-border-color:var(--ui-tone-border);--ui-border-hover:var(--ui-tone-border-hover);--ui-border-active:var(--ui-tone-border-active);--ui-border-focus:var(--ui-tone-border-focus)}.uiAppearanceGhost{--ui-color:var(--ui-tone-text);--ui-color-hover:var(--ui-tone-text-hover);--ui-color-active:var(--ui-tone-text-active);--ui-background:transparent;--ui-background-hover:var(--ui-tone-ghost-hover);--ui-background-active:var(--ui-tone-ghost-active);--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent}.uiAppearanceTransparent{--ui-color:var(--ui-tone-text);--ui-color-hover:var(--ui-tone-text-hover);--ui-color-active:var(--ui-tone-text-active);--ui-background:transparent;--ui-background-hover:transparent;--ui-background-active:transparent;--ui-border-color:transparent;--ui-border-hover:transparent;--ui-border-active:transparent;--ui-border-focus:transparent}.uiInteractiveControl{color:var(--ui-color);background-color:var(--ui-background);border:var(--border-width) solid var(--ui-border-color);border-radius:var(--ui-radius,var(--radius-sm));transition-property:border-color,color,background-color,box-shadow,padding,opacity,transform;transition-duration:var(--transition-fast);outline:none;transition-timing-function:ease}.uiInteractiveControl:hover{color:var(--ui-color-hover);background-color:var(--ui-background-hover);border-color:var(--ui-border-hover)}.uiInteractiveControl:active{color:var(--ui-color-active);border-color:var(--ui-border-active);background-color:var(--ui-background-active)}.uiInteractiveControl:focus,.uiInteractiveControl:focus-within{background-color:var(--ui-background-active);border-color:var(--ui-border-focus)}.uiInteractiveControl:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:var(--focus-offset)}.uiInteractiveControl:disabled,.uiInteractiveControl[data-disabled]{cursor:default;pointer-events:none;color:var(--content-2);background-color:var(--surface-2);border-color:var(--overlay-backdrop)}.w100{width:100%}.h100{height:100%}.block{display:block}.inline{display:inline}.inlineBlock{display:inline-block}.hidden{display:none}@media (max-width:47.9988em){.hiddenMobile{display:none}}@media (max-width:71.9988em){.hiddenTablet{display:none}}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky,.stickyTop{position:sticky}.stickyTop{top:0}.z1{z-index:1}.z10{z-index:10}.transformCenter{top:50%;left:50%;transform:translate(-50%,-50%)}.inset0{inset:0}.bottomLeft,.transformBottomLeft25{bottom:0;left:0}.bottomRight,.transformBottomRight25{bottom:0;right:0}.topLeft,.transformTopLeft25{top:0;left:0}.topRight,.transformTopRight25{top:0;right:0}.transformTopRight25{transform:translate(25%,-25%)}.transformTopLeft25{transform:translate(-25%,-25%)}.transformBottomRight25{transform:translate(25%,25%)}.transformBottomLeft25{transform:translate(-25%,25%)}.insetXs{inset:var(--space-xs)}.insetSm{inset:var(--space-sm)}.insetMd{inset:var(--space-md)}.insetLg{inset:var(--space-lg)}.topXs,.topRightXs,.topLeftXs{top:var(--space-xs)}.topSm,.topRightSm,.topLeftSm{top:var(--space-sm)}.topMd,.topRightMd,.topLeftMd{top:var(--space-md)}.topLg{top:var(--space-lg)}.rightXs,.bottomRightXs,.topRightXs{right:var(--space-xs)}.rightSm,.bottomRightSm,.topRightSm{right:var(--space-sm)}.rightMd,.bottomRightMd,.topRightMd{right:var(--space-md)}.rightLg{right:var(--space-lg)}.bottomXs,.bottomRightXs,.bottomLeftXs{bottom:var(--space-xs)}.bottomSm,.bottomRightSm,.bottomLeftSm{bottom:var(--space-sm)}.bottomMd,.bottomRightMd,.bottomLeftMd{bottom:var(--space-md)}.bottomLg{bottom:var(--space-lg)}.leftXs,.bottomLeftXs,.topLeftXs{left:var(--space-xs)}.leftSm,.bottomLeftSm,.topLeftSm{left:var(--space-sm)}.leftMd,.bottomLeftMd,.topLeftMd{left:var(--space-md)}.leftLg{left:var(--space-lg)}.listItem{background-color:var(--surface-0)}.listItem:hover:not(.selected){background-color:var(--surface-accent)}.listItem.selected{cursor:default;background-color:var(--surface-1)}:root[data-theme=light\:default]{--surface-0:#fff;--surface-1:#f8f8f9;--surface-2:#f1f1f3;--content-0:#202529;--content-1:#646975;--content-2:#8e9298;--focus-ring:#3435ff;--overlay-backdrop:#0000001a;--overlay-glass:#fffc;--shadow-xs:0 0 .25em #00000026;--shadow-sm:0 0 .25em #00000040;--shadow-md:0 0 .5em #00000040;--shadow-lg:0 0 1em #00000040;--content-accent:#0076ca;--surface-accent:#e2f1fa;--border-accent:#006eaf;--status-brand-text:#0039aa;--status-brand-text-hover:#002e8f;--status-brand-text-active:#002276;--status-brand-fill:#1842d2;--status-brand-fill-hover:#1137c8;--status-brand-fill-active:#2535e0;--status-brand-on-fill:#fff;--status-brand-soft:#dfecff;--status-brand-border:#1957d2;--status-brand-border-hover:#2340c7;--status-brand-border-active:#00429a;--status-brand-border-focus:#0057df;--status-neutral-text:#202529;--status-neutral-text-hover:#181818;--status-neutral-text-active:#0d0d0d;--status-neutral-fill:#2e3338;--status-neutral-fill-hover:#272c31;--status-neutral-fill-active:#2e3339;--status-neutral-on-fill:#fff;--status-neutral-soft:#e9ebed;--border-0:#c9d2db;--border-1:#a5b3c1;--border-2:#8495a1;--border-focus:#6d767d;--status-neutral-border:var(--border-0);--status-neutral-border-hover:var(--border-1);--status-neutral-border-active:var(--border-2);--status-neutral-border-focus:var(--border-focus);--status-error-text:#bd1f44;--status-error-text-hover:#a80f39;--status-error-text-active:#900d30;--status-error-fill:#dc2447;--status-error-fill-hover:#d1113f;--status-error-fill-active:#e40037;--status-error-on-fill:#fff;--status-error-soft:#ffe3e4;--status-error-border:#bd1f44;--status-error-border-hover:#ad0029;--status-error-border-active:#930037;--status-error-border-focus:#c5004c;--status-warning-text:#966800;--status-warning-text-hover:#845a00;--status-warning-text-active:#714e00;--status-warning-fill:#aa7a00;--status-warning-fill-hover:#a17100;--status-warning-fill-active:#a47c00;--status-warning-on-fill:#fff;--status-warning-soft:#ffe8c2;--status-warning-border:#966800;--status-warning-border-hover:#7f5d00;--status-warning-border-active:#774b00;--status-warning-border-focus:#9d6400;--status-success-text:#00765a;--status-success-text-hover:#00664d;--status-success-text-active:#005641;--status-success-fill:#008a6e;--status-success-fill-hover:#008165;--status-success-fill-active:#008972;--status-success-on-fill:#fff;--status-success-soft:#ccf6e6;--status-success-border:#00765a;--status-success-border-hover:#006652;--status-success-border-active:#00573b;--status-success-border-focus:#007852;--status-info-text:#006eaf;--status-info-text-hover:#005f9a;--status-info-text-active:#005186;--status-info-fill:#007ed2;--status-info-fill-hover:#0075c8;--status-info-fill-active:#007cdd;--status-info-on-fill:#fff;--status-info-soft:#d6efff;--status-info-border:#006eaf;--status-info-border-hover:#005ca5;--status-info-border-active:#005387;--status-info-border-focus:#0070a9}@supports (color:lab(0% 0 0)){:root[data-theme=light\:default]{--content-0:lab(14.1621% -1.34403 -3.38001);--content-1:lab(44.2095% .0689328 -7.48489);--content-2:lab(60.5318% -.620842 -3.70332);--focus-ring:lab(35.9616% 61.9236 -107.063);--content-accent:lab(46.445% -.908375 -70.5024);--surface-accent:lab(94.2761% -4.20651 -5.82348);--border-accent:lab(43.8006% -7.49639 -45.3089);--status-brand-text:lab(27.4869% 26.7399 -70.1477);--status-brand-text-hover:lab(21.5858% 28.5431 -66.755);--status-brand-text-active:lab(15.9744% 27.1054 -59.8064);--status-brand-fill:lab(33.9536% 32.4092 -79.4082);--status-brand-fill-hover:lab(30.2399% 35.3022 -79.5073);--status-brand-fill-active:lab(32.9444% 44.4088 -88.7715);--status-brand-on-fill:lab(100% 0 0);--status-brand-soft:lab(92.7047% -1.42255 -25.653);--status-brand-border:lab(39.6376% 19.096 -70.0996);--status-brand-border-hover:lab(33.0448% 30.4376 -74.2795);--status-brand-border-active:lab(27.5424% 24.6744 -72.4492);--status-brand-border-focus:lab(37.2383% 44.1604 -103.891);--status-neutral-text:lab(14.1621% -1.34403 -3.38001);--status-neutral-text-hover:lab(8.36% -.00000745058 0);--status-neutral-text-active:lab(3.6999% 0 0);--status-neutral-fill:lab(21.1146% -1.33625 -3.8965);--status-neutral-fill-hover:lab(17.634% -1.32439 -3.89106);--status-neutral-fill-active:lab(21.104% -1.25968 -4.41016);--status-neutral-on-fill:lab(100% 0 0);--status-neutral-soft:lab(93.0424% -.503719 -1.20012);--border-0:lab(83.764% -2.15167 -5.49523);--border-1:lab(72.1287% -2.65771 -9.19037);--border-2:lab(60.5908% -4.04945 -8.47371);--border-focus:lab(48.9617% -2.10726 -5.47285);--status-error-text:lab(42.1977% 61.4603 21.8827);--status-error-text-hover:lab(36.5059% 58.2062 20.9212);--status-error-text-active:lab(30.93% 51.7408 18.5767);--status-error-fill:lab(48.9532% 68.873 29.8639);--status-error-fill-hover:lab(45.4665% 68.8796 30.2657);--status-error-fill-active:lab(48.7443% 76.185 40.7332);--status-error-on-fill:lab(100% 0 0);--status-error-soft:lab(92.3191% 21.6419 6.87863);--status-error-border:lab(42.1977% 61.4603 21.8827);--status-error-border-hover:lab(36.3606% 64.2884 32.8868);--status-error-border-active:lab(30.3787% 64.5066 16.0424);--status-error-border-focus:lab(40.9119% 93.182 24.209);--status-warning-text:lab(47.6194% 20.1868 104.51);--status-warning-text-hover:lab(41.8141% 19.1864 92.7124);--status-warning-text-active:lab(36.0565% 16.351 73.8121);--status-warning-fill:lab(54.6613% 19.7991 128.879);--status-warning-fill-hover:lab(51.1478% 20.3282 127.562);--status-warning-fill-active:lab(54.6992% 19.7531 152.315);--status-warning-on-fill:lab(100% 0 0);--status-warning-soft:lab(93.1564% 4.03363 21.7567);--status-warning-border:lab(47.6194% 20.1868 104.51);--status-warning-border-hover:lab(41.8874% 18.1695 108.416);--status-warning-border-active:lab(35.6664% 28.5612 95.1754);--status-warning-border-focus:lab(46.7322% 47.2036 171.099);--status-success-text:lab(43.8361% -50.2979 8.98955);--status-success-text-hover:lab(37.9042% -46.8468 8.35372);--status-success-text-active:lab(31.843% -39.4535 7.06026);--status-success-fill:lab(51.0092% -56.9609 6.93712);--status-success-fill-hover:lab(47.5284% -57.2693 6.94567);--status-success-fill-active:lab(51.2076% -64.0463 4.22862);--status-success-on-fill:lab(100% 0 0);--status-success-soft:lab(93.6895% -16.5473 3.09175);--status-success-border:lab(43.8361% -50.2979 8.98955);--status-success-border-hover:lab(38.1347% -55.317 4.62868);--status-success-border-active:lab(32.3577% -54.6435 14.937);--status-success-border-focus:lab(45.1053% -91.8722 24.3161);--status-info-text:lab(43.7123% -6.97565 -48.4447);--status-info-text-hover:lab(37.9291% -6.02353 -45.1731);--status-info-text-active:lab(32.2397% -5.70193 -38.7666);--status-info-fill:lab(50.4268% -4.55844 -55.7178);--status-info-fill-hover:lab(46.8954% -3.55104 -55.6371);--status-info-fill-active:lab(50.0328% .663877 -62.9438);--status-info-on-fill:lab(100% 0 0);--status-info-soft:lab(93.0249% -6.50513 -17.7766);--status-info-border:lab(43.7123% -6.97565 -48.4447);--status-info-border-hover:lab(37.4507% .650615 -53.3212);--status-info-border-active:lab(32.0859% -7.0693 -49.0534);--status-info-border-focus:lab(42.8757% -1.51181 -76.3655)}}:root[data-theme=dark\:default]{--surface-0:#222a35;--surface-1:#27313f;--surface-2:#2d3646;--content-0:#dadee5;--content-1:#b6bfcb;--content-2:#969fab;--focus-ring:#ffd300;--overlay-backdrop:#1e252f2e;--overlay-glass:#1e252fcc;--shadow-xs:0 0 .25em #00000026;--shadow-sm:0 0 .25em #00000040;--shadow-md:0 0 .5em #00000040;--shadow-lg:0 0 1em #00000040;--content-accent:#06a6ff;--surface-accent:#103243;--border-accent:#4e8cbe;--status-brand-text:#8da6ff;--status-brand-text-hover:#a9bdff;--status-brand-text-active:#7f98ff;--status-brand-fill:#a9bdff;--status-brand-fill-hover:#b8cbff;--status-brand-fill-active:#bbcbff;--status-brand-on-fill:#192045;--status-brand-soft:#1f285a;--status-brand-border:#7099ff;--status-brand-border-hover:#86adff;--status-brand-border-active:#5e8aff;--status-brand-border-focus:#76a0ff;--status-neutral-text:#a6afbb;--status-neutral-text-hover:#b5c2d5;--status-neutral-text-active:#9aa2ae;--status-neutral-fill:#b9c2cd;--status-neutral-fill-hover:#c6cfda;--status-neutral-fill-active:#c7ced8;--status-neutral-on-fill:#222427;--status-neutral-soft:#2b2e32;--border-0:#4e5661;--border-1:#667383;--border-2:#8390a2;--border-focus:#8091a8;--status-neutral-border:var(--border-0);--status-neutral-border-hover:var(--border-1);--status-neutral-border-active:var(--border-2);--status-neutral-border-focus:var(--border-focus);--status-error-text:#ff8180;--status-error-text-hover:#ffa19e;--status-error-text-active:#fe6b6d;--status-error-fill:#ff9e9b;--status-error-fill-hover:#ffb8b5;--status-error-fill-active:#ffb7b3;--status-error-on-fill:#3d1516;--status-error-soft:#4f191b;--status-error-border:#ff8180;--status-error-border-hover:#ffa19e;--status-error-border-active:#fe6b6d;--status-error-border-focus:#ff8e8b;--status-warning-text:#e8a63d;--status-warning-text-hover:#ffb847;--status-warning-text-active:#da992c;--status-warning-fill:#faba5b;--status-warning-fill-hover:#ffc97a;--status-warning-fill-active:#ffca7e;--status-warning-on-fill:#322004;--status-warning-soft:#402800;--status-warning-border:#e8a63d;--status-warning-border-hover:#ffb847;--status-warning-border-active:#da992c;--status-warning-border-focus:#fca600;--status-success-text:#3cc998;--status-success-text-hover:#45dfa9;--status-success-text-active:#28bc8b;--status-success-fill:#5edcab;--status-success-fill-hover:#6ce9b8;--status-success-fill-active:#82e5bc;--status-success-on-fill:#062b1e;--status-success-soft:#003726;--status-success-border:#3cc998;--status-success-border-hover:#45dfa9;--status-success-border-active:#28bc8b;--status-success-border-focus:#00d797;--status-info-text:#74afff;--status-info-text-hover:#96c3ff;--status-info-text-active:#61a1ff;--status-info-fill:#93c3ff;--status-info-fill-hover:#afd0ff;--status-info-fill-active:#a7d0ff;--status-info-on-fill:#12243f;--status-info-soft:#152d51;--status-info-border:#74afff;--status-info-border-hover:#96c3ff;--status-info-border-active:#61a1ff;--status-info-border-focus:#7fb6ff}@supports (color:lab(0% 0 0)){:root[data-theme=dark\:default]{--content-0:lab(88.3772% -.748515 -3.68143);--content-1:lab(76.7499% -1.41364 -7.31876);--content-2:lab(65.1487% -1.39198 -7.30799);--focus-ring:lab(86.6241% 5.83491 103.156);--content-accent:lab(64.3995% -9.50325 -64.6111);--surface-accent:lab(18.843% -7.39329 -14.9089);--border-accent:lab(55.7301% -9.10968 -32.9134);--status-brand-text:lab(68.796% 19.6968 -71.2983);--status-brand-text-hover:lab(75.6814% 20.1664 -74.9171);--status-brand-text-active:lab(64.0865% 20.6957 -71.2032);--status-brand-fill:lab(76.0036% 16.701 -67.9657);--status-brand-fill-hover:lab(80.6896% 16.0151 -68.0588);--status-brand-fill-active:lab(81.1121% 11.6576 -57.606);--status-brand-on-fill:lab(13.3845% 6.95342 -24.9484);--status-brand-soft:lab(17.738% 9.86385 -31.9963);--status-brand-border:lab(63.5029% 11.5519 -64.0977);--status-brand-border-hover:lab(70.3989% 11.7162 -67.7106);--status-brand-border-active:lab(58.7996% 12.5432 -63.9993);--status-brand-border-focus:lab(63.9876% 31.2536 -98.9215);--status-neutral-text:lab(70.9493% -1.40354 -7.3137);--status-neutral-text-hover:lab(77.8789% -2.01026 -10.9251);--status-neutral-text-active:lab(66.3088% -1.39442 -7.30919);--status-neutral-fill:lab(77.9129% -1.35189 -6.95728);--status-neutral-fill-hover:lab(82.5532% -1.35821 -6.96051);--status-neutral-fill-active:lab(82.5615% -1.16074 -5.87033);--status-neutral-on-fill:lab(14.1422% -.490695 -2.55953);--status-neutral-soft:lab(18.7767% -.622496 -3.28668);--border-0:lab(36.1434% -1.29449 -7.26286);--border-1:lab(47.7101% -1.84721 -10.8544);--border-2:lab(59.3143% -1.9258 -10.8874);--border-focus:lab(59.2754% -2.37507 -14.4374);--status-error-text:lab(69.1622% 57.197 28.7051);--status-error-text-hover:lab(76.0224% 60.3572 30.2131);--status-error-text-active:lab(64.5167% 57.2375 28.9172);--status-error-fill:lab(76.2252% 54.2512 26.8731);--status-error-fill-hover:lab(80.869% 54.2203 26.7462);--status-error-fill-active:lab(81.1527% 45.5721 22.2059);--status-error-on-fill:lab(13.5164% 20.0214 10.0519);--status-error-soft:lab(17.9675% 25.7783 13.1364);--status-error-border:lab(69.1622% 57.197 28.7051);--status-error-border-hover:lab(76.0224% 60.3572 30.2131);--status-error-border-active:lab(64.5167% 57.2375 28.9172);--status-error-border-focus:lab(70.3843% 89.4847 48.5526);--status-warning-text:lab(73.2106% 18.3211 61.4266);--status-warning-text-hover:lab(80.165% 19.5929 65.6737);--status-warning-text-active:lab(68.5521% 18.6311 62.7245);--status-warning-fill:lab(80.2146% 16.7503 56.2103);--status-warning-fill-hover:lab(84.868% 16.5215 55.6005);--status-warning-fill-active:lab(84.9137% 13.2654 45.4007);--status-warning-on-fill:lab(14.1174% 6.48497 19.0143);--status-warning-soft:lab(18.7275% 8.63324 26.8802);--status-warning-border:lab(73.2106% 18.3211 61.4266);--status-warning-border-hover:lab(80.165% 19.5929 65.6737);--status-warning-border-active:lab(68.5521% 18.6311 62.7245);--status-warning-border-focus:lab(75.0864% 37.3259 210.761);--status-success-text:lab(72.8575% -47.9172 13.5998);--status-success-text-hover:lab(79.9504% -51.3194 14.5688);--status-success-text-active:lab(68.2157% -48.0549 13.6163);--status-success-fill:lab(79.7282% -45.2518 12.8873);--status-success-fill-hover:lab(84.3695% -45.1621 12.8764);--status-success-fill-active:lab(84.0935% -37.7977 10.8146);--status-success-on-fill:lab(14.81% -16.7792 4.76092);--status-success-soft:lab(19.6341% -21.7022 6.13652);--status-success-border:lab(72.8575% -47.9172 13.5998);--status-success-border-hover:lab(79.9504% -51.3194 14.5688);--status-success-border-active:lab(68.2157% -48.0549 13.6163);--status-success-border-focus:lab(76.4693% -85.3626 23.682);--status-info-text:lab(69.9695% .607193 -56.1897);--status-info-text-hover:lab(76.877% .434041 -59.7321);--status-info-text-active:lab(65.2905% 1.30138 -56.0947);--status-info-fill:lab(77.0588% -.815243 -53.5972);--status-info-fill-hover:lab(81.725% -1.28844 -53.6798);--status-info-fill-active:lab(81.9326% -2.34154 -45.4524);--status-info-on-fill:lab(13.797% .253856 -19.6606);--status-info-soft:lab(18.297% .969395 -25.1948);--status-info-border:lab(69.9695% .607193 -56.1897);--status-info-border-hover:lab(76.877% .434041 -59.7321);--status-info-border-active:lab(65.2905% 1.30138 -56.0947);--status-info-border-focus:lab(70.9482% 12.9978 -90.1998)}}
|