@ryuzaki13/react-foundation-ui 1.4.2 → 1.4.4
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/advanced-search/index.js +12 -11
- package/dist/advanced-search/index.js.map +1 -1
- package/dist/badge/index.js +1 -1
- package/dist/base-table/index.js +2 -2
- package/dist/button/index.js +1 -1
- package/dist/chunks/{CalendarView-KCkhCtK-.js → CalendarView-Z_XWk7aI.js} +8 -8
- package/dist/chunks/{CalendarView-KCkhCtK-.js.map → CalendarView-Z_XWk7aI.js.map} +1 -1
- package/dist/chunks/{ImageViewerRuntime-RN49by8Y.js → ImageViewerRuntime-BMs3BBkV.js} +4 -4
- package/dist/chunks/{ImageViewerRuntime-RN49by8Y.js.map → ImageViewerRuntime-BMs3BBkV.js.map} +1 -1
- package/dist/chunks/{TextEditorLexicalClient-CVTrglWP.js → TextEditorLexicalClient-CK8j3RA4.js} +16 -18
- package/dist/chunks/{TextEditorLexicalClient-CVTrglWP.js.map → TextEditorLexicalClient-CK8j3RA4.js.map} +1 -1
- package/dist/chunks/{badge-Cri0-kVK.js → badge-DwIUjH0a.js} +2 -2
- package/dist/chunks/{badge-Cri0-kVK.js.map → badge-DwIUjH0a.js.map} +1 -1
- package/dist/chunks/{base-table-D5IqsjQD.js → base-table-BFsVwXg3.js} +13 -12
- package/dist/chunks/{base-table-D5IqsjQD.js.map → base-table-BFsVwXg3.js.map} +1 -1
- package/dist/chunks/{button-CC0Jdx1j.js → button-BU2kRzwu.js} +2 -2
- package/dist/chunks/{button-CC0Jdx1j.js.map → button-BU2kRzwu.js.map} +1 -1
- package/dist/chunks/check-box-Dd3YFuxd.js.map +1 -1
- package/dist/chunks/{context-menu-DQeR3y7M.js → context-menu-C6RO7soI.js} +7 -2
- package/dist/chunks/{context-menu-DQeR3y7M.js.map → context-menu-C6RO7soI.js.map} +1 -1
- package/dist/chunks/{date-input-DBJisPRz.js → date-input-BzExUQnc.js} +5 -5
- package/dist/chunks/{date-input-DBJisPRz.js.map → date-input-BzExUQnc.js.map} +1 -1
- package/dist/chunks/{flex-DYZ0IbU6.js → flex-C7njxZ74.js} +10 -7
- package/dist/chunks/{flex-DYZ0IbU6.js.map → flex-C7njxZ74.js.map} +1 -1
- package/dist/chunks/floating-arrow-BE-z4QkE.js.map +1 -1
- package/dist/chunks/{input-BCJfUdK_.js → input-Bp6_Ucgr.js} +15 -15
- package/dist/chunks/{input-BCJfUdK_.js.map → input-Bp6_Ucgr.js.map} +1 -1
- package/dist/chunks/{input-files-Dcc5K-_1.js → input-files-D1JzSw_Y.js} +2 -2
- package/dist/chunks/{input-files-Dcc5K-_1.js.map → input-files-D1JzSw_Y.js.map} +1 -1
- package/dist/chunks/{input-search-B7HmrAM7.js → input-search-Bkhcinru.js} +2 -2
- package/dist/chunks/{input-search-B7HmrAM7.js.map → input-search-Bkhcinru.js.map} +1 -1
- package/dist/chunks/{misc-DIF5h9ba.js → misc-BYxxlJz6.js} +3 -3
- package/dist/chunks/{misc-DIF5h9ba.js.map → misc-BYxxlJz6.js.map} +1 -1
- package/dist/chunks/{modal-DXHX_sA-.js → modal-paexEF0j.js} +4 -5
- package/dist/chunks/{modal-DXHX_sA-.js.map → modal-paexEF0j.js.map} +1 -1
- package/dist/chunks/{multi-select-CWx12rgb.js → multi-select-COEkc8Qc.js} +4 -5
- package/dist/chunks/multi-select-COEkc8Qc.js.map +1 -0
- package/dist/chunks/{picker-BAQ9NeHe.js → picker-e6IsrMUG.js} +3 -3
- package/dist/chunks/{picker-BAQ9NeHe.js.map → picker-e6IsrMUG.js.map} +1 -1
- package/dist/chunks/{popover-xJJqy1v6.js → popover-CGU3MlsH.js} +14 -14
- package/dist/chunks/{popover-xJJqy1v6.js.map → popover-CGU3MlsH.js.map} +1 -1
- package/dist/chunks/radio-group-CM9Lg_nc.js.map +1 -1
- package/dist/chunks/{select-BPb-eL3O.js → select-BON0S9Dr.js} +115 -115
- package/dist/chunks/select-BON0S9Dr.js.map +1 -0
- package/dist/chunks/sortable-DcTIAbjD.js.map +1 -1
- package/dist/chunks/{table-xMAjqtcY.js → table-Dd5BcC0k.js} +3 -3
- package/dist/chunks/{table-xMAjqtcY.js.map → table-Dd5BcC0k.js.map} +1 -1
- package/dist/chunks/{table-column-interactions-BGd5Lwy9.js → table-column-interactions-DzEvVuXe.js} +8 -5
- package/dist/chunks/{table-column-interactions-BGd5Lwy9.js.map → table-column-interactions-DzEvVuXe.js.map} +1 -1
- package/dist/chunks/useODataSelectBase-CKe1AVMI.js.map +1 -1
- package/dist/chunks/wheel-picker-FS58cRsQ.js.map +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-time-input/index.js +4 -4
- package/dist/date-time-input/index.js.map +1 -1
- package/dist/detail/index.js.map +1 -1
- package/dist/dialog/index.js.map +1 -1
- package/dist/disclosure/index.js +1 -1
- package/dist/disclosure/index.js.map +1 -1
- package/dist/drop-zone/index.js +1 -1
- package/dist/drop-zone/index.js.map +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/expandable-action-panel/index.js +2 -2
- package/dist/expandable-action-panel/index.js.map +1 -1
- package/dist/flex/index.js +1 -1
- package/dist/fullscreen-portal/index.js +3 -3
- package/dist/fullscreen-portal/index.js.map +1 -1
- package/dist/image/index.js +5 -5
- package/dist/image/index.js.map +1 -1
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +1 -1
- package/dist/input-date-time/index.js.map +1 -1
- package/dist/input-file/index.js +1 -1
- package/dist/input-file/index.js.map +1 -1
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +1 -1
- package/dist/input-image/index.js.map +1 -1
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +3 -4
- package/dist/layout-picker/index.js.map +1 -1
- package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
- package/dist/list/index.js +7 -7
- package/dist/list/index.js.map +1 -1
- package/dist/listbox/index.js.map +1 -1
- package/dist/misc/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
- package/dist/notifications/index.js +13 -11
- package/dist/notifications/index.js.map +1 -1
- package/dist/pages/index.js.map +1 -1
- package/dist/panel/index.js.map +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/picker/types.d.ts +1 -1
- package/dist/picker/types.d.ts.map +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/preset-range-date-input/index.js +2 -2
- package/dist/preset-range-date-input/index.js.map +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/radio-button/index.js.map +1 -1
- package/dist/select/Select.d.ts.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +27 -24
- package/dist/slider/index.js.map +1 -1
- package/dist/splitter/index.js.map +1 -1
- package/dist/state-select/index.js +12 -10
- package/dist/state-select/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/switch/index.js.map +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-column-interactions/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/table-sorting/index.js.map +1 -1
- package/dist/tabs/index.js +6 -6
- package/dist/tabs/index.js.map +1 -1
- package/dist/tag-input/index.js +1 -1
- package/dist/tag-input/index.js.map +1 -1
- package/dist/text/index.js +10 -8
- package/dist/text/index.js.map +1 -1
- package/dist/text-editor/index.js +2 -2
- package/dist/textarea/index.js +1 -1
- package/dist/textarea/index.js.map +1 -1
- package/dist/toggle/index.js.map +1 -1
- package/dist/toolbar/index.js +1 -2
- package/dist/toolbar/index.js.map +1 -1
- package/dist/tree/index.js.map +1 -1
- package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
- package/dist/tree-select/index.js +134 -132
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +2 -2
- package/dist/tree-table/index.js.map +1 -1
- package/package.json +52 -59
- package/storybook-static/assets/{Badge-SZ48u9qp.js → Badge-Bh73-APE.js} +11 -11
- package/storybook-static/assets/Badge.stories-gNFtCWnR.js +54 -0
- package/storybook-static/assets/{Button-CFCpYiPy.js → Button-O9QPAftp.js} +10 -10
- package/storybook-static/assets/Button-mjF9HSg0.js +12 -0
- package/storybook-static/assets/Button.stories-wkiE0c_a.js +75 -0
- package/storybook-static/assets/CalendarView-CqKlnF8k.js +1 -0
- package/storybook-static/assets/{DateInput-BfFTwd_P.css → CalendarView-DKvrkS40.css} +1 -1
- package/storybook-static/assets/{CheckBox-FoMSruZC.js → CheckBox-CB8fTQF0.js} +11 -11
- package/storybook-static/assets/CheckBox-Clpeg9q7.js +2 -0
- package/storybook-static/assets/CheckBox.module-BBzuj5He.js +1 -0
- package/storybook-static/assets/CheckBox.stories-pfWBxvOy.js +60 -0
- package/storybook-static/assets/Color-6AOWCN3U-CVvkiihj.js +1 -0
- package/storybook-static/assets/ContextMenu-Sv4wfyS3.js +1 -0
- package/storybook-static/assets/{ContextMenu-CU_1kOzV.js → ContextMenu-eGnlhRRu.js} +9 -9
- package/storybook-static/assets/ContextMenu.stories-CVw3hOvY.js +90 -0
- package/storybook-static/assets/DateInput-D8_Oleoy.js +1 -0
- package/storybook-static/assets/{DateInput-BeZ5esVE.js → DateInput-DQDplLib.js} +11 -11
- package/storybook-static/assets/DateInput-pmGiwdvw.css +1 -0
- package/storybook-static/assets/{DateInput.stories-Bkw2r8CD.js → DateInput.stories-BNpS4CND.js} +2 -2
- package/storybook-static/assets/DateRangePresetSelect-Bfx-d5qg.js +3 -0
- package/storybook-static/assets/{DateRangePresetSelect-C_mLvEoK.js → DateRangePresetSelect-DCBEf98i.js} +8 -8
- package/storybook-static/assets/DateRangePresetSelect.stories-PAV2jgQb.js +11 -0
- package/storybook-static/assets/{Detail-WzciiK9S.js → Detail-DvmdQCue.js} +11 -11
- package/storybook-static/assets/Detail.stories-CEm00aSN.js +44 -0
- package/storybook-static/assets/{Dialog-CwLsVxJY.js → Dialog-3I2Y7jD7.js} +9 -9
- package/storybook-static/assets/Dialog.stories-lcadmonM.js +31 -0
- package/storybook-static/assets/{Disclosure-BlRuGrk2.js → Disclosure-DUIQ37oh.js} +10 -10
- package/storybook-static/assets/Disclosure.stories-BeizaZWP.js +41 -0
- package/storybook-static/assets/DocsRenderer-JROSPFPF-DwPk6ai7.js +2 -0
- package/storybook-static/assets/{DropZone-Cr3nfCWA.js → DropZone-BGuCU5dq.js} +10 -10
- package/storybook-static/assets/DropZone.stories-B4J6OZ3T.js +44 -0
- package/storybook-static/assets/ExpandableActionPanel.stories-gCrqbhG6.js +20 -0
- package/storybook-static/assets/{Flex-C10912WS.js → Flex-CBwbh1yu.js} +18 -18
- package/storybook-static/assets/Flex.stories-cdk6vRZq.js +300 -0
- package/storybook-static/assets/FlexContainer-LmZIdhq2.js +1 -0
- package/storybook-static/assets/FlexItem-vkDYa5tA.js +3 -0
- package/storybook-static/assets/FloatingPopover-D4h-c24R.js +1 -0
- package/storybook-static/assets/FloatingPopover-DC84VrV3.css +1 -0
- package/storybook-static/assets/FormattedTableCell-CY3E21k8.css +1 -0
- package/storybook-static/assets/FormattedTableCell-Dh-kHTOC.js +18 -0
- package/storybook-static/assets/Grid-BCzygAqy.js +52 -0
- package/storybook-static/assets/{Grid-G88y3oB_.js → Grid-BkKqSMfk.js} +18 -18
- package/storybook-static/assets/{Grid.stories-BV7zL-6n.js → Grid.stories-828arrPi.js} +2 -2
- package/storybook-static/assets/{Grid-Bb0gH6CX.js → GridContainer-qDguE1HS.js} +2 -53
- package/storybook-static/assets/ImageCropper.stories-CrIWrKKR.js +115 -0
- package/storybook-static/assets/ImageRenderer-F3AaZx-K.js +2 -0
- package/storybook-static/assets/ImageRenderer.stories-l3PnRYxy.js +22 -0
- package/storybook-static/assets/ImageView.stories-C6uhkvCN.js +9 -0
- package/storybook-static/assets/{ImageViewer.stories-PlFXSB5n.js → ImageViewer.stories-BSPiv5lU.js} +5 -5
- package/storybook-static/assets/ImageViewerRuntime-BOpMGgz6.js +51 -0
- package/storybook-static/assets/Input-Co--DMHY.js +3 -0
- package/storybook-static/assets/{Input-pyUNDVtk.js → Input-D-ZrbHVw.js} +11 -11
- package/storybook-static/assets/Input.stories-vqPv6pLx.js +38 -0
- package/storybook-static/assets/{InputDateTime-CWk5KBwD.js → InputDateTime-DHBVbRii.js} +11 -11
- package/storybook-static/assets/InputDateTime.stories-BAvLMBuk.js +35 -0
- package/storybook-static/assets/{InputFile-BLQq7mY9.js → InputFile-B9TVOEZV.js} +10 -10
- package/storybook-static/assets/InputFile.stories-CypBLWFh.js +36 -0
- package/storybook-static/assets/{InputFiles-B6J4XBdP.js → InputFiles-CxZkOZFK.js} +10 -10
- package/storybook-static/assets/InputFiles.stories-BGwCp7OC.js +33 -0
- package/storybook-static/assets/InputFilesList-OEX4zGI3.js +1 -0
- package/storybook-static/assets/{InputImage--2PSB_E_.js → InputImage-31A6fxSf.js} +10 -10
- package/storybook-static/assets/InputImage.stories-CdpOudXI.js +51 -0
- package/storybook-static/assets/{LayoutPicker-RZDisgZ_.js → LayoutPicker-Dc55ovYM.js} +13 -13
- package/storybook-static/assets/LayoutPicker.stories-DXcn-WXQ.js +449 -0
- package/storybook-static/assets/{Listbox-xwfNjBpV.js → Listbox-DF8E6oMR.js} +10 -10
- package/storybook-static/assets/Listbox.stories-C98_9wX3.js +47 -0
- package/storybook-static/assets/{Modal-HJt_Y-a6.js → Modal-CXvDgktT.js} +12 -12
- package/storybook-static/assets/Modal.stories-DAC_QwN7.js +180 -0
- package/storybook-static/assets/MultiSelect-B-wX6JPo.js +2 -0
- package/storybook-static/assets/{MultiSelect-CvNsFdE4.js → MultiSelect-DN4foQlG.js} +11 -11
- package/storybook-static/assets/MultiSelect.stories-CgKNQmma.js +29 -0
- package/storybook-static/assets/MultiSelectToken-DDu5n78h.css +1 -0
- package/storybook-static/assets/MultiSelectToken-fjW8p4YG.js +1 -0
- package/storybook-static/assets/NoData-C7KqaHUh.css +1 -0
- package/storybook-static/assets/NoData-W7wK8oTW.js +1 -0
- package/storybook-static/assets/{NotificationsHost-DXCf3CQX.js → NotificationsHost-D1UoWmF8.js} +9 -9
- package/storybook-static/assets/NotificationsHost.stories-BWUuMmPl.js +25 -0
- package/storybook-static/assets/{ODataMultiSelect-CIJNiwGb.js → ODataMultiSelect-DE1V4el8.js} +15 -15
- package/storybook-static/assets/ODataMultiSelect.stories-Q1DUIL2W.js +73 -0
- package/storybook-static/assets/{ODataSelect-BDga9TUb.js → ODataSelect-CtoT2Wxx.js} +15 -15
- package/storybook-static/assets/ODataSelect.stories-DLi7Rwzk.js +73 -0
- package/storybook-static/assets/ODataTreeMultiSelect-DEZfgyPK.js +19 -0
- package/storybook-static/assets/ODataTreeMultiSelect.stories-H42q78xI.js +30 -0
- package/storybook-static/assets/ODataTreeSelect-BeylEiPN.js +17 -0
- package/storybook-static/assets/ODataTreeSelect.stories-MOILmtfY.js +24 -0
- package/storybook-static/assets/OneStepScroller-BSvYN6QP.js +5 -0
- package/storybook-static/assets/OneStepScroller-NRYd-egY.css +1 -0
- package/storybook-static/assets/{PeriodSelect-BJbjl62O.js → PeriodSelect-KQFGCxq6.js} +13 -13
- package/storybook-static/assets/PeriodSelect.stories-BIYx4_Yy.js +64 -0
- package/storybook-static/assets/PickerSelectionToolbar-Cvv8vTZm.js +2 -0
- package/storybook-static/assets/PickerTriggerActions-BBZmXagt.js +1 -0
- package/storybook-static/assets/{Popover-Dg2T0DoN.js → Popover-7YZIq8Fi.js} +11 -11
- package/storybook-static/assets/Popover-D6gSyjaW.js +2 -0
- package/storybook-static/assets/Popover-DGX7JNNK.css +1 -0
- package/storybook-static/assets/Popover.stories-DM69Ztws.js +69 -0
- package/storybook-static/assets/{PresetRangeDateInput-CNmTMNHF.js → PresetRangeDateInput-Ch6GapcJ.js} +8 -8
- package/storybook-static/assets/PresetRangeDateInput.stories-Cqd4eb0N.js +15 -0
- package/storybook-static/assets/PresetSelect-C8uIYhPJ.js +5 -0
- package/storybook-static/assets/{RadioButton-2rfUPkwC.js → RadioButton-BQjiyASl.js} +10 -10
- package/storybook-static/assets/RadioButton.stories-Cbho4i83.js +36 -0
- package/storybook-static/assets/RadioGroup-DNqu6WaC.js +1 -0
- package/storybook-static/assets/{RadioGroup-BduGGVKj.js → RadioGroup-vw4ObVj-.js} +10 -10
- package/storybook-static/assets/RadioGroup.stories-B-WQzZW_.js +42 -0
- package/storybook-static/assets/Scrollable-DrxMuH2M.js +1 -0
- package/storybook-static/assets/{Select-DnZ83aZs.js → Select-BxigZNtu.js} +13 -13
- package/storybook-static/assets/Select-X_O4M8Hi.js +12 -0
- package/storybook-static/assets/Select.stories-BpTrYJSr.js +46 -0
- package/storybook-static/assets/SelectOptionContent-RAmgWCOm.js +1 -0
- package/storybook-static/assets/{SerializableSelect-BiFhAxAJ.js → SerializableSelect-CA9wjk2m.js} +12 -12
- package/storybook-static/assets/SerializableSelect.stories-DXd4E-3U.js +46 -0
- package/storybook-static/assets/{SingleDateTimeInput-Bc-ifbML.js → SingleDateTimeInput-BeFLYUBF.js} +12 -12
- package/storybook-static/assets/SingleDateTimeInput.stories-B1aZ754N.js +78 -0
- package/storybook-static/assets/Slider-BYrHesOR.js +1 -0
- package/storybook-static/assets/{Slider-DfjBSsR3.js → Slider-BdWBkKp4.js} +15 -15
- package/storybook-static/assets/Slider.stories-CgmOhVBs.js +77 -0
- package/storybook-static/assets/{SliderInput-o9uCcVMP.js → SliderInput-QmF2VQWA.js} +16 -16
- package/storybook-static/assets/SliderInput.stories-MjSmhiOM.js +68 -0
- package/storybook-static/assets/{Sortable-B6Y9Q9Yn.js → Sortable-D5OTpesH.js} +13 -13
- package/storybook-static/assets/Sortable.stories-yz3c5EhY.js +141 -0
- package/storybook-static/assets/{Splitter-CfUVnAs7.js → Splitter-DVq6XBul.js} +11 -11
- package/storybook-static/assets/Splitter.stories-CopPw1_p.js +22 -0
- package/storybook-static/assets/{StateSelect-h0i4M4vO.js → StateSelect-ojwXeKmx.js} +10 -10
- package/storybook-static/assets/StateSelect.stories-D46m5HNn.js +47 -0
- package/storybook-static/assets/StringToggle.stories-ByYMmlXl.js +6 -0
- package/storybook-static/assets/{Switch-CPKaENqL.js → Switch-Dy4Pahkn.js} +10 -10
- package/storybook-static/assets/Switch.stories-EiAb5Z-D.js +26 -0
- package/storybook-static/assets/{Table-xV66crR1.js → Table-BO6Oa4JV.js} +22 -22
- package/storybook-static/assets/Table.stories--TpBKwmP.js +122 -0
- package/storybook-static/assets/{Tabs-v9YZeJoc.js → Tabs-7c93qVyH.js} +15 -15
- package/storybook-static/assets/Tabs.stories-DXZ0r2ix.js +58 -0
- package/storybook-static/assets/TagInput.stories-CoM8rXwa.js +18 -0
- package/storybook-static/assets/Text-BPlJUr3R.js +1 -0
- package/storybook-static/assets/{Textarea-CRThqX0z.js → Textarea-D3S4MkiX.js} +10 -10
- package/storybook-static/assets/Textarea.stories-47k8uHdB.js +27 -0
- package/storybook-static/assets/TimePanel-C2iZ9Qr6.js +1 -0
- package/storybook-static/assets/TimePanel.stories-JTjIv6z1.js +25 -0
- package/storybook-static/assets/{Toggle-CzopviU2.js → Toggle-CHmajZE5.js} +10 -10
- package/storybook-static/assets/Toggle-OlKw8qaK.js +1 -0
- package/storybook-static/assets/Toggle.stories-k4Z8qQVs.js +30 -0
- package/storybook-static/assets/TreeMultiSelect-BC_n1Wb-.js +1 -0
- package/storybook-static/assets/TreeMultiSelect-dOg0l7rk.js +19 -0
- package/storybook-static/assets/TreeMultiSelect.stories-CAzZRxn5.js +35 -0
- package/storybook-static/assets/TreePickerBase-ycYQYQgi.js +22 -0
- package/storybook-static/assets/TreeSelect-BrNyI_Qx.js +16 -0
- package/storybook-static/assets/TreeSelect-CDecTnag.js +1 -0
- package/storybook-static/assets/TreeSelect.stories-BUOw2Rwn.js +18 -0
- package/storybook-static/assets/{TreeTable-DbzoCcR5.js → TreeTable-BXw7lFBk.js} +22 -22
- package/storybook-static/assets/TreeTable.stories-z40pruPV.js +83 -0
- package/storybook-static/assets/WithTooltip-7X4HQR7L-Cakt_JaX.js +9 -0
- package/storybook-static/assets/array-BBSjoTRy-CIRmlF93.js +1 -0
- package/storybook-static/assets/{async-D27PcxoG.js → async-BLDV04P4.js} +3 -3
- package/storybook-static/assets/axe-Bq-2xuso.js +20 -0
- package/storybook-static/assets/blocks-BiaKjftm.js +48 -0
- package/storybook-static/assets/browserAndReact-DX4H5rjQ.js +105 -0
- package/storybook-static/assets/check-fB4gCKB_.js +1 -0
- package/storybook-static/assets/chevron-down-B9GH0QvB.js +1 -0
- package/storybook-static/assets/chevron-left-DjbyJeHO.js +1 -0
- package/storybook-static/assets/chevron-right-D29uf09I.js +1 -0
- package/storybook-static/assets/chunk-242VQQM5-BMWWiybC.js +1 -0
- package/storybook-static/assets/chunk-DRQKCCAG-CqE-Zrl9.js +1 -0
- package/storybook-static/assets/chunk-IMSF75WX-yvVUwIQZ.js +6 -0
- package/storybook-static/assets/chunk-KJHJLCBK-D-yQfkOi.js +1 -0
- package/storybook-static/assets/chunk-QQBDHPVZ-B98qboss.js +1 -0
- package/storybook-static/assets/chunk-W22LQPXL-CGkHFiZ0.js +18 -0
- package/storybook-static/assets/circle-alert-Dmd7-WNp.js +1 -0
- package/storybook-static/assets/circle-check-VtVMsaJJ.js +1 -0
- package/storybook-static/assets/components-CsfQDbHv.js +241 -0
- package/storybook-static/assets/contextMenu-CzdfaUsd.js +2 -0
- package/storybook-static/assets/date-segments-D3HouZ37.js +1 -0
- package/storybook-static/assets/dom-B3G_GtJw.js +1 -0
- package/storybook-static/assets/download-CyVhTbv6.js +1 -0
- package/storybook-static/assets/error-BZrNlEUO.js +1 -0
- package/storybook-static/assets/file-vPGnhPr-.js +1 -0
- package/storybook-static/assets/filesAndExcel-DlUnL-Uu.js +122 -0
- package/storybook-static/assets/floating-ui.react-DZ8IyUV4.js +1 -0
- package/storybook-static/assets/formatter-L2YTDE3Q-x0raBH34.js +1 -0
- package/storybook-static/assets/formatters--mhLir82-v41eaI4a.js +1 -0
- package/storybook-static/assets/formatters-BTz64vfu.js +291 -0
- package/storybook-static/assets/formatters-runtime-DVi3RdYb.js +384 -0
- package/storybook-static/assets/foundationLib-CFj4J-Pc.js +82 -0
- package/storybook-static/assets/hooks-Ch5aYb7R.js +5 -0
- package/storybook-static/assets/iframe-Cr7AcW_R.js +1 -0
- package/storybook-static/assets/iframe-DaN-XFub.js +1151 -0
- package/storybook-static/assets/info-Cirk1RKZ.js +1 -0
- package/storybook-static/assets/{matchers-JIUQ3HVY-BPS-eazD.js → matchers-JIUQ3HVY-DvR2XErZ.js} +3 -3
- package/storybook-static/assets/media-BycWpjAl.js +1 -0
- package/storybook-static/assets/odata-BtfB5Aje.js +1 -0
- package/storybook-static/assets/odata-service-DnPlNGpU-Bpd4Zh9L.js +3 -0
- package/storybook-static/assets/odataAndTables-TEZyQ-TZ.js +126 -0
- package/storybook-static/assets/{odataFetchFn-BVgXXKgx.js → odataFetchFn-DEKVPDzV.js} +3 -3
- package/storybook-static/assets/odataStoryFixtures-CDDaJZKW.js +25 -0
- package/storybook-static/assets/{persisted-D8qUQbts.js → persisted-BzLLmgUK.js} +3 -3
- package/storybook-static/assets/preload-helper-BHmFeTtP.js +1 -0
- package/storybook-static/assets/pureUtilities-Dw249t3R.js +69 -0
- package/storybook-static/assets/react-18-CgkwBzTo.js +9 -0
- package/storybook-static/assets/react-C21x__mS.js +1 -0
- package/storybook-static/assets/react-CvkUhHUq.js +1 -0
- package/storybook-static/assets/react-KzpmXJc9.js +9 -0
- package/storybook-static/assets/react-dom-2o2phaJG.js +1 -0
- package/storybook-static/assets/react-qN2cStNd.js +1 -0
- package/storybook-static/assets/refresh-cw-BN3JCsXv.js +1 -0
- package/storybook-static/assets/rolldown-runtime-C0FnF6B9.js +1 -0
- package/storybook-static/assets/runtimeAndState-CCVgv3ck.js +117 -0
- package/storybook-static/assets/settings-2-jtcbbWm5.js +1 -0
- package/storybook-static/assets/sortable-dNWaObUX.js +1 -0
- package/storybook-static/assets/syntaxhighlighter-T5IQBZDB-hYwVxXYm.js +6 -0
- package/storybook-static/assets/theming-mTWhffkp.js +39 -0
- package/storybook-static/assets/trash-2-DrVfT0z5.js +1 -0
- package/storybook-static/assets/treeStoryFixtures-Ci7STpiz.js +1 -0
- package/storybook-static/assets/triangle-alert-B1Q28Bq9.js +1 -0
- package/storybook-static/assets/ui.module-DoMIk8Oc.js +1 -0
- package/storybook-static/assets/uiClasses-CO3Cdv1E.js +1 -0
- package/storybook-static/assets/useFlexClasses-Gn9spXEB.js +1 -0
- package/storybook-static/assets/useODataSelectBase-DlbeGYUP.js +1 -0
- package/storybook-static/assets/useODataTreeData-CvsoLfiG.js +1 -0
- package/storybook-static/assets/usePickerDefaultFilter-DdxyE_i8.js +1 -0
- package/storybook-static/assets/usePickerQuery-6rDaPaB0.js +1 -0
- package/storybook-static/assets/usePickerTriggerController-BHBjSLtn.js +1 -0
- package/storybook-static/assets/utils-DUM89eIj.js +1 -0
- package/storybook-static/assets/x-Dh43gJN9.js +1 -0
- package/storybook-static/iframe.html +8 -3
- package/storybook-static/index.html +6 -0
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/sb-addons/a11y-3/manager-bundle.js +3 -3
- package/storybook-static/sb-addons/chromatic-com-storybook-1/manager-bundle.js +17 -17
- package/storybook-static/sb-addons/docs-2/manager-bundle.js +16 -1
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +85 -83
- package/storybook-static/sb-addons/vitest-4/manager-bundle.js +1 -1
- package/storybook-static/sb-manager/globals-runtime.js +9939 -7695
- package/storybook-static/sb-manager/runtime.js +16128 -15326
- package/storybook-static/vite-inject-mocker-entry.js +2 -2
- package/dist/chunks/multi-select-CWx12rgb.js.map +0 -1
- package/dist/chunks/select-BPb-eL3O.js.map +0 -1
- package/storybook-static/assets/Badge.stories-CzsgAfG9.js +0 -51
- package/storybook-static/assets/Button-MoWVKehO.js +0 -12
- package/storybook-static/assets/Button.stories-wwep4c2p.js +0 -75
- package/storybook-static/assets/CheckBox-DHvne_6w.js +0 -2
- package/storybook-static/assets/CheckBox.module-ezWPE2pa.js +0 -1
- package/storybook-static/assets/CheckBox.stories-C14Axs5p.js +0 -60
- package/storybook-static/assets/Color-KMSTOMOX-CmMBFN4-.js +0 -1
- package/storybook-static/assets/ContextMenu.stories-Dr-tkpqd.js +0 -90
- package/storybook-static/assets/DateInput-erobPRG_.js +0 -1
- package/storybook-static/assets/DateRangePresetSelect-Cg90Kc_w.js +0 -3
- package/storybook-static/assets/DateRangePresetSelect.stories-BVap0joC.js +0 -11
- package/storybook-static/assets/Detail.stories-CLdtvJ7q.js +0 -44
- package/storybook-static/assets/Dialog.stories-Dx0jZO19.js +0 -31
- package/storybook-static/assets/Disclosure.stories-DhUdeDK6.js +0 -41
- package/storybook-static/assets/DocsRenderer-JROSPFPF-Dd1n83Uq.js +0 -2
- package/storybook-static/assets/DropZone.stories-6yYrwQOe.js +0 -44
- package/storybook-static/assets/DropdownMenu-D_2LfViU.js +0 -1
- package/storybook-static/assets/ExpandableActionPanel.stories-DVOFSOlm.js +0 -20
- package/storybook-static/assets/Flex-V-qg6Ejw.js +0 -3
- package/storybook-static/assets/Flex.stories-BZv94LD8.js +0 -300
- package/storybook-static/assets/ImageCropper.stories-MLFZyJxZ.js +0 -115
- package/storybook-static/assets/ImageRenderer-DHhD7mUz.js +0 -2
- package/storybook-static/assets/ImageRenderer.stories-ChcPymk2.js +0 -22
- package/storybook-static/assets/ImageView.stories-DszVNgC8.js +0 -9
- package/storybook-static/assets/ImageViewerRuntime-D8wFAKx5.js +0 -51
- package/storybook-static/assets/Input-BGdz8TmT.js +0 -3
- package/storybook-static/assets/Input.stories-Ban0Gnck.js +0 -38
- package/storybook-static/assets/InputDateTime.stories-DgKVmf54.js +0 -35
- package/storybook-static/assets/InputFile.stories-VnRv_q2r.js +0 -36
- package/storybook-static/assets/InputFiles-Dn9afnyd.js +0 -1
- package/storybook-static/assets/InputFiles.stories-CLVn5Xfq.js +0 -33
- package/storybook-static/assets/InputImage.stories-D__QcSho.js +0 -51
- package/storybook-static/assets/LayoutPicker.stories-BCnR-zBu.js +0 -449
- package/storybook-static/assets/Listbox.stories-B0HctqVp.js +0 -47
- package/storybook-static/assets/Modal.stories-BE-VpK-a.js +0 -180
- package/storybook-static/assets/MultiSelect-BoIwmje6.css +0 -1
- package/storybook-static/assets/MultiSelect-CaCNRNIe.js +0 -2
- package/storybook-static/assets/MultiSelect.stories-CNkbVGsb.js +0 -29
- package/storybook-static/assets/NotificationsHost.stories-BgqvZzT3.js +0 -25
- package/storybook-static/assets/ODataMultiSelect-CMyI4yYs.js +0 -1
- package/storybook-static/assets/ODataMultiSelect.stories-DTGCC6np.js +0 -73
- package/storybook-static/assets/ODataSelect-CGplYBh_.js +0 -1
- package/storybook-static/assets/ODataSelect.stories-CsxqRAvn.js +0 -73
- package/storybook-static/assets/ODataTreeMultiSelect-4ZiAtFZk.js +0 -19
- package/storybook-static/assets/ODataTreeMultiSelect.stories-B29Od8BL.js +0 -30
- package/storybook-static/assets/ODataTreeSelect-yZy7MBsZ.js +0 -17
- package/storybook-static/assets/ODataTreeSelect.stories-H7eaj1Sz.js +0 -24
- package/storybook-static/assets/PeriodSelect.stories-6CEzS2_H.js +0 -64
- package/storybook-static/assets/Popover.stories-BNgWOHlJ.js +0 -69
- package/storybook-static/assets/PresetRangeDateInput.stories-6UPVDF62.js +0 -15
- package/storybook-static/assets/RadioButton.stories-DbdFfJqO.js +0 -36
- package/storybook-static/assets/RadioGroup-BA21indC.js +0 -1
- package/storybook-static/assets/RadioGroup.stories-Ce6x0WUN.js +0 -42
- package/storybook-static/assets/Select-DyO25wSA.js +0 -12
- package/storybook-static/assets/Select.stories-CQ8f9fY9.js +0 -46
- package/storybook-static/assets/SelectOptionContent-fC4HFG5Q.js +0 -1
- package/storybook-static/assets/SerializableSelect-ki4BThj7.js +0 -4
- package/storybook-static/assets/SerializableSelect.stories-BzXBkWPI.js +0 -43
- package/storybook-static/assets/SingleDateTimeInput.stories-CI2yrD-f.js +0 -78
- package/storybook-static/assets/Slider.stories-D3O3_tqE.js +0 -77
- package/storybook-static/assets/SliderInput.stories-D1puleZB.js +0 -67
- package/storybook-static/assets/Sortable.stories-BoaL4W6r.js +0 -141
- package/storybook-static/assets/Splitter.stories-DJpFzZVJ.js +0 -22
- package/storybook-static/assets/StateSelect.stories-Ch2Gzzmd.js +0 -47
- package/storybook-static/assets/StringToggle.stories-B8qIG0M3.js +0 -6
- package/storybook-static/assets/Switch.stories-BysIhUHa.js +0 -26
- package/storybook-static/assets/Table.stories-CBpgmq7b.js +0 -122
- package/storybook-static/assets/Tabs.stories-BPYZuvzR.js +0 -58
- package/storybook-static/assets/TagInput.stories-BwOEnVpz.js +0 -18
- package/storybook-static/assets/Textarea.stories-BSJGz7JF.js +0 -27
- package/storybook-static/assets/TimePanel-ClMfq_py.js +0 -1
- package/storybook-static/assets/TimePanel.stories-_FqWdmta.js +0 -25
- package/storybook-static/assets/Toggle-BFhzeK2e.js +0 -1
- package/storybook-static/assets/Toggle.stories-Dw5UkD_b.js +0 -30
- package/storybook-static/assets/TreeMultiSelect-CerqHY2K.js +0 -19
- package/storybook-static/assets/TreeMultiSelect-Dw7FI3ic.js +0 -1
- package/storybook-static/assets/TreeMultiSelect.stories-BTQKFbeP.js +0 -35
- package/storybook-static/assets/TreePickerBase-rJISGJBT.js +0 -22
- package/storybook-static/assets/TreeSelect-CQ1vj_c9.js +0 -16
- package/storybook-static/assets/TreeSelect-Cp_lX0-B.js +0 -1
- package/storybook-static/assets/TreeSelect.stories-D6Q02Phx.js +0 -18
- package/storybook-static/assets/TreeTable.stories-YfyhkqH9.js +0 -83
- package/storybook-static/assets/WithTooltip-7X4HQR7L-BSQyvCOM.js +0 -9
- package/storybook-static/assets/axe-GLfyhAYL.js +0 -20
- package/storybook-static/assets/base-table-BNO0lnTL.css +0 -1
- package/storybook-static/assets/base-table-Dy3fEhQe.js +0 -18
- package/storybook-static/assets/blocks-ixiC6_NZ.js +0 -285
- package/storybook-static/assets/button-DZpTIXz2.js +0 -1
- package/storybook-static/assets/check-box-DByHwJGx.js +0 -1
- package/storybook-static/assets/chunk-242VQQM5-Dtm7LRbQ.js +0 -1
- package/storybook-static/assets/chunk-3LY4VQVK-BohfESrT.js +0 -6
- package/storybook-static/assets/chunk-LITCR56V-XaMGADKk.js +0 -18
- package/storybook-static/assets/contextMenu-BbMrBF3b.js +0 -2
- package/storybook-static/assets/date-7kR6zFX5.js +0 -461
- package/storybook-static/assets/date-segments-CzU9k5bl.js +0 -1
- package/storybook-static/assets/error-BRUjWXbJ.js +0 -1
- package/storybook-static/assets/file-CI_sonB1.js +0 -291
- package/storybook-static/assets/file-hArYcyES.js +0 -1
- package/storybook-static/assets/flex-C--89Z3g.js +0 -1
- package/storybook-static/assets/floating-ui.react-DLXcGGFR.js +0 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-DgyzUf7M.js +0 -1
- package/storybook-static/assets/formatters-BtIOYENB.js +0 -3
- package/storybook-static/assets/formulas-DRh9I2eS.js +0 -2
- package/storybook-static/assets/grid-DLxeTZJe.js +0 -1
- package/storybook-static/assets/hooks-DWeJq8G1.js +0 -5
- package/storybook-static/assets/iframe-BJGIOdSH.js +0 -1119
- package/storybook-static/assets/input-DXi75xv1.js +0 -1
- package/storybook-static/assets/mdx-react-shim-CmoAsjhK.js +0 -1
- package/storybook-static/assets/media-DWFaNgLM.js +0 -1
- package/storybook-static/assets/misc-BElIqBdV.css +0 -1
- package/storybook-static/assets/misc-DNZTbWc6.js +0 -5
- package/storybook-static/assets/notifications-DjtgzFqT.js +0 -1
- package/storybook-static/assets/number-Xkw1yPJo.js +0 -2
- package/storybook-static/assets/odata-C4Liwkjx.js +0 -1
- package/storybook-static/assets/odata-service-C2oJ-ZmZ.js +0 -1
- package/storybook-static/assets/odataStoryFixtures-eEGvvtmw.js +0 -25
- package/storybook-static/assets/picker-DsP4xCcJ.js +0 -2
- package/storybook-static/assets/popover-BiQHI7Wi.css +0 -1
- package/storybook-static/assets/popover-CuFTypCp.js +0 -2
- package/storybook-static/assets/preload-helper-B45gAKPr.js +0 -1
- package/storybook-static/assets/preset-select-SPNHA-mp.js +0 -5
- package/storybook-static/assets/pwa-B7uYfAPd.js +0 -640
- package/storybook-static/assets/queryClient-CA0puYc0.js +0 -567
- package/storybook-static/assets/react-18-CaNSmcD-.js +0 -9
- package/storybook-static/assets/react-3qMIUlAf.js +0 -9
- package/storybook-static/assets/react-dom-BC7xZNHy.js +0 -1
- package/storybook-static/assets/select-sUla5-3b.js +0 -1
- package/storybook-static/assets/slider--Yp_sa_W.js +0 -2
- package/storybook-static/assets/sortable-jALaQqYE.js +0 -1
- package/storybook-static/assets/syntaxhighlighter-RTCFPKCB-u_WDwfDn.js +0 -6
- package/storybook-static/assets/text-D5xgciF8.js +0 -4
- package/storybook-static/assets/theming-oB64gsjY.js +0 -39
- package/storybook-static/assets/treeStoryFixtures-Y_nnjz0_.js +0 -1
- package/storybook-static/assets/ui-DWDaBPQx.js +0 -1
- package/storybook-static/assets/ui.module-wFHXkJzp.js +0 -1
- package/storybook-static/assets/uiClasses-CaHp0EWd.js +0 -1
- package/storybook-static/assets/useODataSelectBase-DjlPxmxr.js +0 -1
- package/storybook-static/assets/useODataTreeData-1W6cbuec.js +0 -1
- package/storybook-static/assets/utils-DzbSigQl.js +0 -1
- package/storybook-static/assets/valueState-GnkKWBTr.js +0 -277
- /package/storybook-static/assets/{DropdownMenu-BgzIzwzM.css → ContextMenu-BgzIzwzM.css} +0 -0
- /package/storybook-static/assets/{Grid-K9R_IHaw.css → GridContainer-K9R_IHaw.css} +0 -0
- /package/storybook-static/assets/{InputFiles-ByK52qUe.css → InputFilesList-ByK52qUe.css} +0 -0
- /package/storybook-static/assets/{slider-DMDFRH6B.css → Slider-DMDFRH6B.css} +0 -0
- /package/storybook-static/assets/{Flex-IXK2se1Y.css → useFlexClasses-IXK2se1Y.css} +0 -0
- /package/storybook-static/assets/{picker-DzBkX15M.css → usePickerTriggerController-DzBkX15M.css} +0 -0
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-BJGIOdSH.js";import{a,c as o,i as s,l as c,n as l,o as u,s as d}from"./odataStoryFixtures-eEGvvtmw.js";import{n as f,t as p}from"./useODataTreeData-1W6cbuec.js";import{n as m,t as h}from"./TreeSelect-Cp_lX0-B.js";function g({label:e,description:t,disabled:n,size:r,placeholder:i,query:a,defaultQuery:o,onQuery:s,value:c,onChange:l,odata:u,segments:d,model:p,clearable:m,defaultExpandedCodeKeys:g}){let v=f({odata:u,segments:d,model:p});return(0,_.jsx)(h,{label:e,description:t,disabled:n||v.isLoading,size:r,placeholder:i??v.placeholder,nodes:v.nodes,value:c,onChange:l,query:a,defaultQuery:o,onQuery:s,defaultExpandedCodeKeys:g,isLoading:v.isLoading,error:v.isError?`Ошибка загрузки`:void 0,clearable:m})}var _,v=n((()=>{p(),m(),_=i(),g.__docgenInfo={description:``,methods:[],displayName:`ODataTreeSelect`,props:{model:{required:!1,tsType:{name:`ODataDependentBaseProps["model"]`,raw:`ODataDependentBaseProps["model"]`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:`Ключи OData-уровней, раскрываемых после появления загруженных узлов.
|
|
2
|
-
Настройка влияет только на представление и не изменяет OData-запросы.`}},composes:[`Omit`]}})),y=e({Basic:()=>w,ErrorState:()=>O,LoadingState:()=>D,OnlySecondLevelExpanded:()=>E,SelectParent:()=>T,__namedExportsOrder:()=>k,default:()=>C});function b({initialValue:e,odata:t=l,segments:n=o,label:r=`ODataTreeSelect`,description:i,defaultExpandedCodeKeys:a}){let[s,c]=(0,x.useState)(e);return(0,S.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,S.jsx)(g,{label:r,description:i,odata:t,segments:n,value:s,onChange:c,defaultExpandedCodeKeys:a}),(0,S.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,s?`${s.codeKey}=${s.value}`:`пусто`]})]})}var x,S,C,w,T,E,D,O,k,A=n((()=>{x=t(r(),1),s(),v(),S=i(),C={title:`Shared/UI/ODataTreeSelect`,component:g,decorators:[c],beforeEach:a,parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`OData дерево`,description:`Single-select поверх одной OData-цепочки.`,odata:l,segments:o,value:void 0,onChange:()=>{}},argTypes:{segments:{control:!1},value:{control:!1},onChange:{control:!1}}},w={render:()=>(0,S.jsx)(b,{initialValue:{codeKey:`OWNER`,value:d.owner}})},T={render:()=>(0,S.jsx)(b,{label:`Выбор родителя`,description:`Проверка выбора узла верхнего уровня из OData-дерева.`,initialValue:{codeKey:`REGION`,value:d.region}})},E={render:()=>(0,S.jsx)(b,{label:`Раскрывается только второй уровень`,description:`REGION остаётся закрытым. После его ручного открытия узлы BRANCH уже раскрыты по умолчанию.`,defaultExpandedCodeKeys:[`BRANCH`]})},D={parameters:{odataMockMode:`loading`},render:()=>(0,S.jsx)(b,{odata:u.loading,description:`Сценарий загрузки дерева.`})},O={parameters:{odataMockMode:`metadataError`},render:()=>(0,S.jsx)(b,{odata:u.metadataError,description:`Сценарий ошибки metadata дерева.`})},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
3
|
-
render: () => <StatefulODataTreeSelect initialValue={{
|
|
4
|
-
codeKey: "OWNER",
|
|
5
|
-
value: storyValues.owner
|
|
6
|
-
}} />
|
|
7
|
-
}`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
|
|
8
|
-
render: () => <StatefulODataTreeSelect label="Выбор родителя" description="Проверка выбора узла верхнего уровня из OData-дерева." initialValue={{
|
|
9
|
-
codeKey: "REGION",
|
|
10
|
-
value: storyValues.region
|
|
11
|
-
}} />
|
|
12
|
-
}`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
|
|
13
|
-
render: () => <StatefulODataTreeSelect label="Раскрывается только второй уровень" description="REGION остаётся закрытым. После его ручного открытия узлы BRANCH уже раскрыты по умолчанию." defaultExpandedCodeKeys={["BRANCH"]} />
|
|
14
|
-
}`,...E.parameters?.docs?.source}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
|
|
15
|
-
parameters: {
|
|
16
|
-
odataMockMode: "loading"
|
|
17
|
-
},
|
|
18
|
-
render: () => <StatefulODataTreeSelect odata={odataStoryOData.loading} description="Сценарий загрузки дерева." />
|
|
19
|
-
}`,...D.parameters?.docs?.source}}},O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
|
|
20
|
-
parameters: {
|
|
21
|
-
odataMockMode: "metadataError"
|
|
22
|
-
},
|
|
23
|
-
render: () => <StatefulODataTreeSelect odata={odataStoryOData.metadataError} description="Сценарий ошибки metadata дерева." />
|
|
24
|
-
}`,...O.parameters?.docs?.source}}},k=[`Basic`,`SelectParent`,`OnlySecondLevelExpanded`,`LoadingState`,`ErrorState`]}));A();export{w as Basic,O as ErrorState,D as LoadingState,E as OnlySecondLevelExpanded,T as SelectParent,k as __namedExportsOrder,C as default,A as n,y as t};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-BJGIOdSH.js";import{i as a,t as o}from"./text-D5xgciF8.js";import{P as s,_ as c,o as l,t as u}from"./formatters-BtIOYENB.js";import{t as d}from"./DateInput-erobPRG_.js";import{a as f,c as p,i as m,n as h,s as g,t as _}from"./preset-select-SPNHA-mp.js";import{i as v}from"./Grid-Bb0gH6CX.js";import{t as y}from"./grid-DLxeTZJe.js";var b=n((()=>{}));function x(e){return typeof e==`string`&&k.has(e)}function S(e,t=O){let n=m(e,x,t),r=n.length>0?n:O,i=new Set(r);return O.filter(e=>i.has(e))}function C(e,t=D){return g(e,t)}function w({maxDayRangeDays:e,maxWeekRangeWeeks:t,labels:n}={}){let r=s(e),i=s(t);return D.map(e=>{let t={...e,label:n?.[e.id]??e.label};return e.id===`day`&&r!==void 0?{...t,maxRangeDays:r}:e.id===`week`&&i!==void 0?{...t,maxRangeDays:i*7}:t})}function T(e,t){let n=s(e.maxRangeDays);if(n===void 0||t===void 0)return!1;let r=c(t);return r!==null&&r>n}function E(e,t,n){if(t.length===0)return;let r=e===void 0?-1:t.findIndex(t=>t.id===e),i=r>=0?t[r]:void 0;return i&&!T(i,n)?i.id:(r>=0?t.slice(r+1):t).find(e=>!T(e,n))?.id??t.find(e=>!T(e,n))?.id}var D,O,k,A=n((()=>{u(),f(),D=Object.freeze([{id:`day`,label:`по дням`},{id:`week`,label:`по неделям`},{id:`month`,label:`по месяцам`},{id:`year`,label:`по годам`}]),O=Object.freeze([`day`,`week`,`month`,`year`]),k=new Set(D.map(e=>e.id))})),j=n((()=>{b(),A()}));function M({value:e,onChange:t,options:n,labels:r,presetIds:i,dateRange:a,maxDayRangeDays:o,maxWeekRangeWeeks:s,...c}){let l=(0,N.useMemo)(()=>n??C(S(i),w({maxDayRangeDays:o,maxWeekRangeWeeks:s,labels:r})),[r,o,s,n,i]),u=(0,N.useMemo)(()=>E(e,l,a),[a,l,e]),d=(0,N.useRef)(null),f=(0,N.useEffectEvent)(()=>{if(u===void 0||u===e){d.current=null;return}let n=d.current;n&&n.value===e&&n.availableValue===u||(d.current={value:e,availableValue:u},t(u))});return(0,N.useEffect)(()=>{f()},[u,e]),(0,P.jsx)(h,{...c,options:l,value:u,onChange:t,getOptionDisabled:e=>T(e,a)})}var N,P,F=n((()=>{N=t(r(),1),_(),j(),P=i(),M.__docgenInfo={description:`Select периода детализации, который может ограничивать доступные варианты по диапазону дат.`,methods:[],displayName:`PeriodSelect`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},options:{required:!1,tsType:{name:`unknown`},description:"Полный список custom options с высшим приоритетом. При его передаче\nвстроенные `presetIds`, `labels` и пороги диапазона не применяются."},labels:{required:!1,tsType:{name:`Partial`,elements:[{name:`Readonly`,elements:[{name:`Record`,elements:[{name:`union`,raw:`"day" | "week" | "month" | "year"`,elements:[{name:`literal`,value:`"day"`},{name:`literal`,value:`"week"`},{name:`literal`,value:`"month"`},{name:`literal`,value:`"year"`}]},{name:`string`}],raw:`Record<PeriodSelectPresetId, string>`}],raw:`Readonly<Record<PeriodSelectPresetId, string>>`}],raw:`Partial<PeriodSelectLabels>`},description:`Частично заменяет подписи встроенных вариантов, не изменяя их id,
|
|
2
|
-
канонический порядок и правила доступности.
|
|
3
|
-
Не применяется, когда передан собственный \`options\`.`},presetIds:{required:!1,tsType:{name:`unknown`},description:`Разрешенные встроенные варианты периода. Значение нормализуется в канонический
|
|
4
|
-
порядок, а пустой либо невалидный список безопасно заменяется полным набором.
|
|
5
|
-
Не применяется, когда передан собственный \`options\`.`},dateRange:{required:!1,tsType:{name:`DateRangeInput`},description:``},maxDayRangeDays:{required:!1,tsType:{name:`number`},description:``},maxWeekRangeWeeks:{required:!1,tsType:{name:`number`},description:``}}}})),I=n((()=>{j(),F()})),L=e({AllAllowedOptionsDisabled:()=>X,AlternativeLabels:()=>Y,AutoSwitchByRange:()=>q,Controlled:()=>K,Disabled:()=>Z,MonthAndYear:()=>J,__namedExportsOrder:()=>Q,default:()=>G});function R(e){return e!==void 0&&l(e)?e:null}function z(e){let[,t]=V(),n=R(e.dateRange),r=c(e.dateRange??null);return(0,B.jsxs)(v,{gap:`md`,children:[(0,B.jsx)(M,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,B.jsx)(d,{label:`Связанный диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:n,onChange:e=>t({dateRange:e??void 0})}),(0,B.jsxs)(a,{as:`p`,color:`secondary`,"aria-live":`polite`,children:[`Выбрано: `,(0,B.jsx)(a,{as:`code`,children:e.value??`не выбрано`}),`. Дней в диапазоне:`,` `,(0,B.jsx)(a,{as:`code`,children:r??`не задано`}),`.`]})]})}var B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$=n((()=>{u(),p(),y(),o(),I(),B=i(),{useArgs:V}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:H}=__STORYBOOK_MODULE_TEST__,U=[new Date(2026,2,1,0,0,0),new Date(2026,2,14,23,59,59)],W=[new Date(2026,0,1,0,0,0),new Date(2026,4,20,23,59,59)],G={title:`Shared/UI/PeriodSelect`,component:M,args:{label:`Период детализации`,description:`Выберите уровень группировки дат.`,placeholder:`Выберите период`,value:`day`,onChange:H(),presetIds:O,dateRange:U,maxDayRangeDays:31,maxWeekRangeWeeks:26,disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Select периода детализации дат. Компонент работает с id периода и может блокировать слишком детальные варианты по переданному диапазону дат.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда период не выбран.`,control:`text`},value:{description:`Текущий id периода.`,control:`select`,options:O},onChange:{description:`Вызывается с id выбранного периода.`,control:!1},options:{description:"Кастомный список периодов по контракту `PeriodSelectOption`; имеет приоритет над `presetIds`, `labels` и порогами диапазона.",control:!1},labels:{description:`Частичные подписи встроенных периодов поверх канонического каталога.`,control:`object`},presetIds:{description:"Разрешенные встроенные периоды. Порядок отображения остается `day → week → month → year`.",control:`check`,options:O},dateRange:{description:`Диапазон дат, по которому вычисляются заблокированные периоды.`,control:!1},maxDayRangeDays:{description:"Максимальное количество дней, при котором доступен период `day`.",control:{type:`number`,min:1,step:1}},maxWeekRangeWeeks:{description:"Максимальное количество недель, при котором доступен период `week`.",control:{type:`number`,min:1,step:1}},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},K={name:`Контролируемый выбор`,render:function(e){return(0,B.jsx)(z,{...e})}},q={name:`Автопереключение по диапазону`,args:{value:`day`,dateRange:W,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:function(e){return(0,B.jsx)(z,{...e})}},J={name:`Только месяцы и годы`,args:{value:`month`,presetIds:[`month`,`year`]},render:function(e){return(0,B.jsx)(z,{...e})}},Y={name:`Альтернативные подписи`,args:{value:`month`,labels:{day:`за день`,week:`за неделю`,month:`за месяц`,year:`за год`}},render:function(e){return(0,B.jsx)(z,{...e})}},X={name:`Все разрешенные варианты недоступны`,args:{value:`day`,presetIds:[`day`,`week`],dateRange:W,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:function(e){return(0,B.jsx)(z,{...e})}},Z={name:`Заблокированный контрол`,args:{disabled:!0,value:`week`}},K.parameters={...K.parameters,docs:{...K.parameters?.docs,source:{originalSource:`{
|
|
6
|
-
name: "Контролируемый выбор",
|
|
7
|
-
render: function Render(args) {
|
|
8
|
-
return <PeriodSelectStoryCanvas {...args} />;
|
|
9
|
-
}
|
|
10
|
-
}`,...K.parameters?.docs?.source},description:{story:"Контролируемый сценарий синхронизирует `value` и `dateRange` через Storybook args.",...K.parameters?.docs?.description}}},q.parameters={...q.parameters,docs:{...q.parameters?.docs,source:{originalSource:`{
|
|
11
|
-
name: "Автопереключение по диапазону",
|
|
12
|
-
args: {
|
|
13
|
-
value: "day",
|
|
14
|
-
dateRange: longDateRange,
|
|
15
|
-
maxDayRangeDays: 31,
|
|
16
|
-
maxWeekRangeWeeks: 8
|
|
17
|
-
},
|
|
18
|
-
render: function Render(args) {
|
|
19
|
-
return <PeriodSelectStoryCanvas {...args} />;
|
|
20
|
-
}
|
|
21
|
-
}`,...q.parameters?.docs?.source},description:{story:"Длинный диапазон блокирует `day` и `week`, поэтому контрол переключает значение на ближайший доступный период.",...q.parameters?.docs?.description}}},J.parameters={...J.parameters,docs:{...J.parameters?.docs,source:{originalSource:`{
|
|
22
|
-
name: "Только месяцы и годы",
|
|
23
|
-
args: {
|
|
24
|
-
value: "month",
|
|
25
|
-
presetIds: ["month", "year"]
|
|
26
|
-
},
|
|
27
|
-
render: function Render(args) {
|
|
28
|
-
return <PeriodSelectStoryCanvas {...args} />;
|
|
29
|
-
}
|
|
30
|
-
}`,...J.parameters?.docs?.source},description:{story:`Allow-list ограничивает встроенный каталог двумя крупными уровнями детализации.`,...J.parameters?.docs?.description}}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
|
|
31
|
-
name: "Альтернативные подписи",
|
|
32
|
-
args: {
|
|
33
|
-
value: "month",
|
|
34
|
-
labels: {
|
|
35
|
-
day: "за день",
|
|
36
|
-
week: "за неделю",
|
|
37
|
-
month: "за месяц",
|
|
38
|
-
year: "за год"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
render: function Render(args) {
|
|
42
|
-
return <PeriodSelectStoryCanvas {...args} />;
|
|
43
|
-
}
|
|
44
|
-
}`,...Y.parameters?.docs?.source},description:{story:`Частичный labels override меняет формулировки встроенных вариантов,
|
|
45
|
-
сохраняя их id, порядок и ограничения доступности.`,...Y.parameters?.docs?.description}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
|
|
46
|
-
name: "Все разрешенные варианты недоступны",
|
|
47
|
-
args: {
|
|
48
|
-
value: "day",
|
|
49
|
-
presetIds: ["day", "week"],
|
|
50
|
-
dateRange: longDateRange,
|
|
51
|
-
maxDayRangeDays: 31,
|
|
52
|
-
maxWeekRangeWeeks: 8
|
|
53
|
-
},
|
|
54
|
-
render: function Render(args) {
|
|
55
|
-
return <PeriodSelectStoryCanvas {...args} />;
|
|
56
|
-
}
|
|
57
|
-
}`,...X.parameters?.docs?.source},description:{story:`При длинном диапазоне все разрешенные варианты временно недоступны; внешний
|
|
58
|
-
controlled-id сохраняется, и после сокращения диапазона отображение восстанавливается.`,...X.parameters?.docs?.description}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
|
|
59
|
-
name: "Заблокированный контрол",
|
|
60
|
-
args: {
|
|
61
|
-
disabled: true,
|
|
62
|
-
value: "week"
|
|
63
|
-
}
|
|
64
|
-
}`,...Z.parameters?.docs?.source}}},Q=[`Controlled`,`AutoSwitchByRange`,`MonthAndYear`,`AlternativeLabels`,`AllAllowedOptionsDisabled`,`Disabled`]}));$();export{X as AllAllowedOptionsDisabled,Y as AlternativeLabels,q as AutoSwitchByRange,K as Controlled,Z as Disabled,J as MonthAndYear,Q as __namedExportsOrder,G as default,$ as n,L as t};
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-BJGIOdSH.js";import{a,i as o}from"./popover-CuFTypCp.js";import{n as s,t as c}from"./Button-MoWVKehO.js";import{c as l,t as u}from"./Input-BGdz8TmT.js";var d=e({AnchorPlacement:()=>_,Controlled:()=>g,Default:()=>h,WithInteractiveContent:()=>v,__namedExportsOrder:()=>y,default:()=>m}),f,p,m,h,g,_,v,y,b=n((()=>{f=t(r(),1),s(),l(),a(),p=i(),m={title:`Shared/UI/Popover`,component:o,parameters:{atomicCanvas:!0,layout:`centered`}},h={render:()=>(0,p.jsxs)(o,{children:[(0,p.jsx)(o.Trigger,{children:(0,p.jsx)(`button`,{children:`Открыть`})}),(0,p.jsx)(o.Content,{children:e=>(0,p.jsxs)(`div`,{style:{padding:12,maxWidth:160},children:[(0,p.jsx)(`p`,{children:`Пример простого поповера`}),(0,p.jsx)(`button`,{onClick:e.setClose,children:`Закрыть`})]})})]})},g={render:()=>{let[e,t]=(0,f.useState)(!1);return(0,p.jsxs)(o,{open:e,onOpenChange:t,children:[(0,p.jsx)(o.Trigger,{children:(0,p.jsx)(`button`,{children:e?`Закрыть`:`Открыть`})}),(0,p.jsx)(o.Content,{children:(0,p.jsx)(`div`,{style:{padding:12},children:`Контролируемый режим`})})]})}},_={render:()=>(0,p.jsx)(`div`,{style:{display:`flex`,gap:32,flexWrap:`wrap`,justifyContent:`center`},children:[`top`,`bottom`,`left`,`right`,`top-start`,`bottom-end`].map(e=>(0,p.jsxs)(o,{placement:e,children:[(0,p.jsx)(o.Trigger,{children:(0,p.jsx)(`button`,{children:e})}),(0,p.jsx)(o.Content,{children:(0,p.jsx)(`div`,{style:{padding:8},children:e})})]},e))})},v={render:()=>(0,p.jsxs)(o,{children:[(0,p.jsx)(o.Trigger,{children:(0,p.jsx)(`button`,{children:`Форма`})}),(0,p.jsx)(o.Content,{children:e=>(0,p.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),e.setClose()},style:{display:`flex`,flexDirection:`column`,gap:8,padding:12,width:180},children:[(0,p.jsx)(u,{label:`Имя`,placeholder:`Введите имя`,value:``,onChange:()=>{}}),(0,p.jsx)(c,{children:`Отправить`})]})})]})},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
render: () => <Popover>
|
|
3
|
-
<Popover.Trigger>
|
|
4
|
-
<button>Открыть</button>
|
|
5
|
-
</Popover.Trigger>
|
|
6
|
-
<Popover.Content>
|
|
7
|
-
{ctx => <div style={{
|
|
8
|
-
padding: 12,
|
|
9
|
-
maxWidth: 160
|
|
10
|
-
}}>
|
|
11
|
-
<p>Пример простого поповера</p>
|
|
12
|
-
<button onClick={ctx.setClose}>Закрыть</button>
|
|
13
|
-
</div>}
|
|
14
|
-
</Popover.Content>
|
|
15
|
-
</Popover>
|
|
16
|
-
}`,...h.parameters?.docs?.source}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
|
|
17
|
-
render: () => {
|
|
18
|
-
const [open, setOpen] = useState(false);
|
|
19
|
-
return <Popover open={open} onOpenChange={setOpen}>
|
|
20
|
-
<Popover.Trigger>
|
|
21
|
-
<button>{open ? "Закрыть" : "Открыть"}</button>
|
|
22
|
-
</Popover.Trigger>
|
|
23
|
-
<Popover.Content>
|
|
24
|
-
<div style={{
|
|
25
|
-
padding: 12
|
|
26
|
-
}}>Контролируемый режим</div>
|
|
27
|
-
</Popover.Content>
|
|
28
|
-
</Popover>;
|
|
29
|
-
}
|
|
30
|
-
}`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
|
|
31
|
-
render: () => <div style={{
|
|
32
|
-
display: "flex",
|
|
33
|
-
gap: 32,
|
|
34
|
-
flexWrap: "wrap",
|
|
35
|
-
justifyContent: "center"
|
|
36
|
-
}}>
|
|
37
|
-
{["top", "bottom", "left", "right", "top-start", "bottom-end"].map(pos => <Popover key={pos} placement={pos as Placement}>
|
|
38
|
-
<Popover.Trigger>
|
|
39
|
-
<button>{pos}</button>
|
|
40
|
-
</Popover.Trigger>
|
|
41
|
-
<Popover.Content>
|
|
42
|
-
<div style={{
|
|
43
|
-
padding: 8
|
|
44
|
-
}}>{pos}</div>
|
|
45
|
-
</Popover.Content>
|
|
46
|
-
</Popover>)}
|
|
47
|
-
</div>
|
|
48
|
-
}`,..._.parameters?.docs?.source}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
|
|
49
|
-
render: () => <Popover>
|
|
50
|
-
<Popover.Trigger>
|
|
51
|
-
<button>Форма</button>
|
|
52
|
-
</Popover.Trigger>
|
|
53
|
-
<Popover.Content>
|
|
54
|
-
{ctx => <form onSubmit={e => {
|
|
55
|
-
e.preventDefault();
|
|
56
|
-
ctx.setClose();
|
|
57
|
-
}} style={{
|
|
58
|
-
display: "flex",
|
|
59
|
-
flexDirection: "column",
|
|
60
|
-
gap: 8,
|
|
61
|
-
padding: 12,
|
|
62
|
-
width: 180
|
|
63
|
-
}}>
|
|
64
|
-
<Input label="Имя" placeholder="Введите имя" value={""} onChange={() => {}} />
|
|
65
|
-
<Button>Отправить</Button>
|
|
66
|
-
</form>}
|
|
67
|
-
</Popover.Content>
|
|
68
|
-
</Popover>
|
|
69
|
-
}`,...v.parameters?.docs?.source}}},y=[`Default`,`Controlled`,`AnchorPlacement`,`WithInteractiveContent`]}));b();export{_ as AnchorPlacement,g as Controlled,h as Default,v as WithInteractiveContent,y as __namedExportsOrder,m as default,b as n,d as t};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-BJGIOdSH.js";import{i as a,t as o}from"./text-D5xgciF8.js";import{o as s}from"./Flex-V-qg6Ejw.js";import{t as c}from"./flex-C--89Z3g.js";import{t as l}from"./DateInput-erobPRG_.js";import{c as u}from"./preset-select-SPNHA-mp.js";import{a as d,c as f,i as p,n as m,o as h,r as g,s as _,t as v}from"./DateRangePresetSelect-Cg90Kc_w.js";var y=n((()=>{m(),p()}));function b(e){return e??`__empty__`}function x({value:e,onChange:t,presetId:n,onPresetIdChange:r,referenceDate:i,presetIds:a,presetOptions:o,presetLabel:c,presetDescription:u,presetPlaceholder:p=`Выберите пресет диапазона`,presetDisabled:m,...y}){let[x]=(0,S.useState)(()=>new Date),w=i??x,T=(0,S.useMemo)(()=>o??_(d(a,g)),[a,o]),E=e??null,D=(0,S.useMemo)(()=>h(E,w,T),[E,T,w]),O=n??D??void 0,k=(0,S.useRef)(``),A=(0,S.useCallback)(e=>{if(!r)return;let t=b(e);t!==k.current&&(k.current=t,r(e))},[r]),j=e=>{let n=f(e,w,T);if(!n){A(null);return}A(n.id),t(n.range)},M=e=>{t(e),A(h(e,w,T))};return(0,C.jsxs)(s,{gap:`sm`,align:`end`,children:[(0,C.jsx)(v,{size:`md`,label:c,description:u,placeholder:p,disabled:m??y.disabled,value:O,onChange:j,options:T,referenceDate:w}),(0,C.jsx)(l,{...y,size:`md`,value:E,onChange:M})]})}var S,C,w=n((()=>{S=t(r(),1),u(),y(),c(),C=i(),x.__docgenInfo={description:`Составной компонент выбора диапазона дат через пресет или ручной ввод.`,methods:[],displayName:`PresetRangeDateInput`,props:{presetId:{required:!1,tsType:{name:`union`,raw:`DateRangePresetOption["id"] | null`,elements:[{name:`DateRangePresetOption["id"]`,raw:`DateRangePresetOption["id"]`},{name:`null`}]},description:``},onPresetIdChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(presetId: DateRangePresetOption["id"] | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`DateRangePresetOption["id"] | null`,elements:[{name:`DateRangePresetOption["id"]`,raw:`DateRangePresetOption["id"]`},{name:`null`}]},name:`presetId`}],return:{name:`void`}}},description:``},referenceDate:{required:!1,tsType:{name:`Date`},description:``},presetIds:{required:!1,tsType:{name:`unknown`},description:``},presetOptions:{required:!1,tsType:{name:`unknown`},description:``},presetLabel:{required:!1,tsType:{name:`ReactNode`},description:``},presetDescription:{required:!1,tsType:{name:`string`},description:``},presetPlaceholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите пресет диапазона"`,computed:!1}},presetDisabled:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})),T=e({Default:()=>k,__namedExportsOrder:()=>A,default:()=>O}),E,D,O,k,A,j=n((()=>{E=t(r(),1),c(),o(),w(),D=i(),O={title:`Shared/UI/PresetRangeDateInput`,component:x,args:{value:null,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`}},k={render:()=>{let[e,t]=(0,E.useState)([new Date(2026,2,10,0,0,0),new Date(2026,2,10,23,59,59)]),[n,r]=(0,E.useState)(`today`);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(s,{gap:`sm`,align:`end`,children:(0,D.jsx)(x,{value:e,onChange:t,presetId:n,onPresetIdChange:r,referenceDate:new Date(2026,2,10,12,0,0),presetLabel:`Быстрый диапазон`,size:`md`})}),(0,D.jsxs)(a,{as:`p`,className:`marginBlockSm`,children:[`Активный presetId: `,(0,D.jsx)(a,{as:`code`,children:n??`null`})]})]})}},k.parameters={...k.parameters,docs:{...k.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
render: () => {
|
|
3
|
-
const [value, setValue] = useState<NullableDateRange | null>([new Date(2026, 2, 10, 0, 0, 0), new Date(2026, 2, 10, 23, 59, 59)]);
|
|
4
|
-
const [presetId, setPresetId] = useState<string | null>("today");
|
|
5
|
-
return <>
|
|
6
|
-
<FlexContainer gap="sm" align="end">
|
|
7
|
-
<PresetRangeDateInput value={value} onChange={setValue} presetId={presetId} onPresetIdChange={setPresetId} referenceDate={new Date(2026, 2, 10, 12, 0, 0)} presetLabel="Быстрый диапазон" size="md" />
|
|
8
|
-
</FlexContainer>
|
|
9
|
-
|
|
10
|
-
<Text as="p" className="marginBlockSm">
|
|
11
|
-
Активный presetId: <Text as="code">{presetId ?? "null"}</Text>
|
|
12
|
-
</Text>
|
|
13
|
-
</>;
|
|
14
|
-
}
|
|
15
|
-
}`,...k.parameters?.docs?.source},description:{story:`Демонстрирует совместную работу пресета и ручного диапазона.`,...k.parameters?.docs?.description}}},A=[`Default`]}));j();export{k as Default,A as __namedExportsOrder,O as default,j as n,T as t};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{n as r,pn as i,rt as a,t as o}from"./iframe-BJGIOdSH.js";import{a as s,i as c}from"./utils-DzbSigQl.js";import{n as l,t as u}from"./ui.module-wFHXkJzp.js";import{n as d,r as f}from"./uiClasses-CaHp0EWd.js";import{n as p,t as m}from"./CheckBox.module-ezWPE2pa.js";var h,g,_=n((()=>{h=`gu8UMB`,g={radioInput:h}})),v,y,b,x=n((()=>{v=t(i(),1),c(),r(),p(),u(),f(),_(),y=o(),b=({label:e,description:t,placeholder:n,disabled:r,size:i,className:o,onChange:c,value:u,id:f,tone:p=`neutral`,...h})=>{let _=(0,v.useId)(),b=f??_,x=t?`${b}-description`:void 0,S=e??n,C=u??!1;return(0,y.jsxs)(`div`,{className:s(l.uiElement,i&&l.uiSizable,i&&l[i],r&&l.disabled,o),children:[(0,y.jsxs)(`div`,{className:m.row,children:[(0,y.jsxs)(`div`,{className:s(m.wrapper,d(p)),children:[(0,y.jsx)(`input`,{...h,id:b,type:`checkbox`,role:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-checked":C,"aria-describedby":x,className:s(l.uiSelectionControl,m.input,g.radioInput),onChange:()=>c?.(!C)}),(0,y.jsx)(`div`,{className:s(l.uiSelectionIcon,m.icon),"aria-hidden":`true`,children:(0,y.jsx)(a,{})})]}),S&&(0,y.jsx)(`label`,{htmlFor:b,className:l.uiLabel,children:S})]}),t&&(0,y.jsx)(`p`,{id:x,className:l.uiDescription,children:t})]})},b.__docgenInfo={description:`Компонент радиокнопки для выбора одного варианта.
|
|
2
|
-
Поддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.`,methods:[],displayName:`RadioButton`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})),S=e({Controlled:()=>E,Disabled:()=>O,Group:()=>D,__namedExportsOrder:()=>k,default:()=>T}),C,w,T,E,D,O,k,A=n((()=>{C=t(i(),1),x(),w=o(),T={title:`Shared/UI/RadioButton`,component:b,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи радиокнопки.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Признак выбранного состояния.`,control:`boolean`},onChange:{description:`Вызывается при изменении выбранности.`,control:!1},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер визуального контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Семантический тон радиокнопки.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]},name:{description:"HTML `name` для группировки кнопок.",control:`text`}}},E={render:e=>{let[t,n]=(0,C.useState)(e.value??!1);return(0,w.jsx)(b,{...e,value:t,onChange:n})},args:{label:`Выбрать опцию`,description:`Одиночная радиокнопка в controlled-режиме.`,value:!1,name:`single-radio`,tone:`neutral`}},D={render:()=>{let[e,t]=(0,C.useState)(`email`);return(0,w.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Канал уведомлений`,style:{display:`grid`,gap:12},children:[(0,w.jsx)(b,{name:`notify-channel`,label:`Email`,value:e===`email`,onChange:e=>e&&t(`email`),tone:`info`}),(0,w.jsx)(b,{name:`notify-channel`,label:`SMS`,value:e===`sms`,onChange:e=>e&&t(`sms`),tone:`info`})]})},args:{value:void 0}},O={args:{label:`Недоступная опция`,description:`Заблокировано политикой конфигурации.`,value:!0,disabled:!0,tone:`neutral`}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
|
|
3
|
-
render: args => {
|
|
4
|
-
const [value, setValue] = useState(args.value ?? false);
|
|
5
|
-
return <RadioButton {...args} value={value} onChange={setValue} />;
|
|
6
|
-
},
|
|
7
|
-
args: {
|
|
8
|
-
label: "Выбрать опцию",
|
|
9
|
-
description: "Одиночная радиокнопка в controlled-режиме.",
|
|
10
|
-
value: false,
|
|
11
|
-
name: "single-radio",
|
|
12
|
-
tone: "neutral"
|
|
13
|
-
}
|
|
14
|
-
}`,...E.parameters?.docs?.source}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
|
|
15
|
-
render: () => {
|
|
16
|
-
const [selected, setSelected] = useState<"email" | "sms">("email");
|
|
17
|
-
return <div role="radiogroup" aria-label="Канал уведомлений" style={{
|
|
18
|
-
display: "grid",
|
|
19
|
-
gap: 12
|
|
20
|
-
}}>
|
|
21
|
-
<RadioButton name="notify-channel" label="Email" value={selected === "email"} onChange={checked => checked && setSelected("email")} tone="info" />
|
|
22
|
-
<RadioButton name="notify-channel" label="SMS" value={selected === "sms"} onChange={checked => checked && setSelected("sms")} tone="info" />
|
|
23
|
-
</div>;
|
|
24
|
-
},
|
|
25
|
-
args: {
|
|
26
|
-
value: undefined
|
|
27
|
-
}
|
|
28
|
-
}`,...D.parameters?.docs?.source}}},O.parameters={...O.parameters,docs:{...O.parameters?.docs,source:{originalSource:`{
|
|
29
|
-
args: {
|
|
30
|
-
label: "Недоступная опция",
|
|
31
|
-
description: "Заблокировано политикой конфигурации.",
|
|
32
|
-
value: true,
|
|
33
|
-
disabled: true,
|
|
34
|
-
tone: "neutral"
|
|
35
|
-
}
|
|
36
|
-
}`,...O.parameters?.docs?.source}}},k=[`Controlled`,`Group`,`Disabled`]}));A();export{E as Controlled,O as Disabled,D as Group,k as __namedExportsOrder,T as default,A as n,S as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{pn as n,t as r}from"./iframe-BJGIOdSH.js";import{a as i,i as a,n as o,o as s}from"./utils-DzbSigQl.js";import{n as c,t as l}from"./ui.module-wFHXkJzp.js";var u,d,f,p,m,h,g,_=t((()=>{u=`nINbA6`,d=`GL-UWx`,f=`_6PeF-i`,p=`_5wP4aR`,m=`S3MnZI`,h=`KHJ0ja`,g={radioGroup:u,noWrap:d,horizontal:f,vertical:p,radioItem:m,checked:h}}));function v({value:e,onChange:t,label:n,description:r,disabled:a,className:o,noWrap:s,orientation:l=`horizontal`,"aria-label":u,children:d}){let f=(0,b.useId)(),p=n?`${f}-label`:void 0,m=r?`${f}-description`:void 0,[h,_]=(0,b.useState)([]),v=(0,b.useCallback)(e=>t?.(e),[t]),y=(0,b.useCallback)(e=>(_(t=>t.includes(e)?t:[...t,e]),()=>{_(t=>t.filter(t=>t!==e))}),[]),C=(0,b.useMemo)(()=>({value:e,onChange:v,disabled:a,orientation:l,groupId:f,labelId:p,descriptionId:m,firstOptionId:h[0],registerOption:y}),[m,a,f,v,p,l,y,h,e]);return(0,x.jsxs)(`div`,{className:i(c.uiElement,a&&c.disabled,o),children:[n&&(0,x.jsx)(`div`,{id:p,className:c.uiLabel,children:n}),r&&(0,x.jsx)(`div`,{id:m,className:c.uiDescription,children:r}),(0,x.jsx)(S.Provider,{value:C,children:(0,x.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":p,"aria-label":p?void 0:u,"aria-describedby":m,"aria-disabled":a||void 0,"data-disabled":a||void 0,className:i(c.uiInputControl,g.radioGroup,s&&g.noWrap,g[l]),children:d})})]})}function y({value:e,label:t,description:n,className:r}){let a=(0,b.useContext)(S),c=(0,b.useId)(),l=a?.registerOption;if((0,b.useLayoutEffect)(()=>{if(l)return l(c)},[l,c]),!a)return(0,x.jsxs)(`div`,{className:i(g.radioItem,r),children:[(0,x.jsx)(`p`,{className:`textNoWrap`,children:t}),n&&(0,x.jsx)(`div`,{className:`fontSizeSm content2`,children:n})]});let u=Object.is(a.value,e),d=a.disabled===!0,f=a.value===void 0&&a.firstOptionId===c,p=()=>{d||u||a.onChange?.(e)};return(0,x.jsxs)(`button`,{id:`${a.groupId}-option-${c}`,type:`button`,role:`radio`,"aria-checked":u,disabled:d,tabIndex:u||f?0:-1,className:i(g.radioItem,u&&g.checked,r),"data-ui":`radio-option`,"data-action":`select-radio-option`,onClick:p,onKeyDown:e=>{if(d||o(e,p))return;let t=e.currentTarget,n=t.closest(`[role="radiogroup"]`),r=Array.from(n?.querySelectorAll(`[role="radio"]:not([disabled])`)??[]);if(!r.length)return;let i=r.indexOf(t);if(i===-1)return;let c=s({currentIndex:i,itemCount:r.length,key:e.key,orientation:a.orientation});c!==null&&(e.preventDefault(),r[c]?.focus(),r[c]?.click())},children:[(0,x.jsx)(`span`,{className:`textNoWrap`,children:t}),n&&(0,x.jsx)(`span`,{className:`fontSizeSm`,children:n})]})}var b,x,S,C=t((()=>{b=e(n(),1),a(),l(),_(),x=r(),S=(0,b.createContext)(null),v.Option=y,v.__docgenInfo={description:`Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.`,methods:[{name:`Option`,docblock:null,modifiers:[`static`],params:[{name:`{ value, label, description, className }: OptionProps<T>`,optional:!1,type:{name:`OptionProps`,elements:[{name:`T`}],raw:`OptionProps<T>`,alias:`OptionProps`}}],returns:null}],displayName:`RadioGroup`,props:{value:{required:!1,tsType:{name:`T`},description:``},onChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},label:{required:!1,tsType:{name:`string`},description:``},description:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},noWrap:{required:!1,tsType:{name:`literal`,value:`true`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"vertical" | "horizontal"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},"aria-label":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}},y.__docgenInfo={description:"Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.",methods:[],displayName:`Option`,props:{value:{required:!0,tsType:{name:`T`},description:``},label:{required:!0,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}}));export{C as n,v as t};
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-BJGIOdSH.js";import{n as a,t as o}from"./RadioGroup-BA21indC.js";var s=e({Controlled:()=>f,Disabled:()=>m,Vertical:()=>p,__namedExportsOrder:()=>h,default:()=>d});function c(e){return(0,u.jsx)(o,{...e})}var l,u,d,f,p,m,h,g=n((()=>{l=t(r(),1),a(),u=i(),d={title:`Shared/UI/RadioGroup`,component:c,args:{value:`email`,onChange:()=>{},orientation:`horizontal`,label:`Канал уведомлений`,description:`Выберите основной канал доставки`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{description:`Текущее выбранное значение.`,control:`text`},onChange:{description:`Вызывается при смене выбранной опции.`,control:!1},label:{description:`Заголовок группы опций.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},disabled:{description:`Блокирует выбор опций.`,control:`boolean`},noWrap:{description:`Запрещает перенос опций на новую строку.`,control:`boolean`},orientation:{description:`Ориентация расположения опций.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},className:{description:`Дополнительный CSS-класс контейнера.`,control:`text`},children:{description:"Элементы `RadioGroup.Option` внутри группы.",control:!1}}},f={render:e=>{let[t,n]=(0,l.useState)(`email`);return(0,u.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,u.jsxs)(c,{...e,value:t,onChange:n,children:[(0,u.jsx)(o.Option,{value:`email`,label:`Email`,description:`Письма на корпоративную почту`}),(0,u.jsx)(o.Option,{value:`sms`,label:`SMS`,description:`Сообщения на телефон`}),(0,u.jsx)(o.Option,{value:`push`,label:`Push`,description:`Уведомления в приложении`})]}),(0,u.jsxs)(`div`,{children:[`Выбрано: `,t]})]})},args:{children:void 0}},p={render:e=>{let[t,n]=(0,l.useState)(`draft`);return(0,u.jsxs)(c,{...e,value:t,onChange:n,orientation:`vertical`,label:`Статус документа`,children:[(0,u.jsx)(o.Option,{value:`draft`,label:`Черновик`}),(0,u.jsx)(o.Option,{value:`review`,label:`На согласовании`}),(0,u.jsx)(o.Option,{value:`approved`,label:`Утвержден`})]})},args:{orientation:`vertical`,children:void 0}},m={render:e=>(0,u.jsxs)(c,{...e,disabled:!0,children:[(0,u.jsx)(o.Option,{value:`yes`,label:`Да`}),(0,u.jsx)(o.Option,{value:`no`,label:`Нет`})]}),args:{disabled:!0,value:`yes`,children:void 0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
render: args => {
|
|
3
|
-
const [value, setValue] = useState("email");
|
|
4
|
-
return <div style={{
|
|
5
|
-
display: "grid",
|
|
6
|
-
gap: 10
|
|
7
|
-
}}>
|
|
8
|
-
<StringRadioGroup {...args} value={value} onChange={setValue}>
|
|
9
|
-
<RadioGroup.Option value="email" label="Email" description="Письма на корпоративную почту" />
|
|
10
|
-
<RadioGroup.Option value="sms" label="SMS" description="Сообщения на телефон" />
|
|
11
|
-
<RadioGroup.Option value="push" label="Push" description="Уведомления в приложении" />
|
|
12
|
-
</StringRadioGroup>
|
|
13
|
-
<div>Выбрано: {value}</div>
|
|
14
|
-
</div>;
|
|
15
|
-
},
|
|
16
|
-
args: {
|
|
17
|
-
children: undefined
|
|
18
|
-
}
|
|
19
|
-
}`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
|
|
20
|
-
render: args => {
|
|
21
|
-
const [value, setValue] = useState("draft");
|
|
22
|
-
return <StringRadioGroup {...args} value={value} onChange={setValue} orientation="vertical" label="Статус документа">
|
|
23
|
-
<RadioGroup.Option value="draft" label="Черновик" />
|
|
24
|
-
<RadioGroup.Option value="review" label="На согласовании" />
|
|
25
|
-
<RadioGroup.Option value="approved" label="Утвержден" />
|
|
26
|
-
</StringRadioGroup>;
|
|
27
|
-
},
|
|
28
|
-
args: {
|
|
29
|
-
orientation: "vertical",
|
|
30
|
-
children: undefined
|
|
31
|
-
}
|
|
32
|
-
}`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
33
|
-
render: args => <StringRadioGroup {...args} disabled>
|
|
34
|
-
<RadioGroup.Option value="yes" label="Да" />
|
|
35
|
-
<RadioGroup.Option value="no" label="Нет" />
|
|
36
|
-
</StringRadioGroup>,
|
|
37
|
-
args: {
|
|
38
|
-
disabled: true,
|
|
39
|
-
value: "yes",
|
|
40
|
-
children: undefined
|
|
41
|
-
}
|
|
42
|
-
}`,...m.parameters?.docs?.source}}},h=[`Controlled`,`Vertical`,`Disabled`]}));g();export{f as Controlled,m as Disabled,p as Vertical,h as __namedExportsOrder,d as default,g as n,s as t};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{Tt as n,n as r,pn as i,s as a,t as o}from"./iframe-BJGIOdSH.js";import{a as s,i as c}from"./utils-DzbSigQl.js";import{n as l,t as u}from"./ui.module-wFHXkJzp.js";import{D as ee,S as te,d as ne,f as d,g as re,l as f,m as p,r as m,s as ie,t as h,v as ae}from"./picker-DsP4xCcJ.js";function oe({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[d(t(e)),d(n?.(e)),d(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}var g=t((()=>{h()})),_=t((()=>{g()}));function se(e,t){let n=[];return e.forEach((e,r)=>{let i=t(e),a=n.at(-1),o=a?.group?.key===i?.key;if(a&&o){a.items.push({option:e,index:r});return}n.push({group:i,items:[{option:e,index:r}]})}),n}var v=t((()=>{})),y,b,x,S=t((()=>{y=`aEEqH1`,b=`_4HQKa7`,x={inputWithOverlay:y,valueOverlay:b}}));function C(e){let{label:t,description:r,disabled:i,placeholder:o,size:c,options:u,value:h,onChange:g,getOptionKey:_,getOptionLabel:v,getOptionCode:y,getOptionDisabled:b,getOptionAriaLabel:S,getOptionGroup:C,getOptionClassName:E,renderOption:D,renderValue:O,className:ce,buttonClassName:le,optionsClassName:ue,optionsMaxWidth:de,optionsContentClassName:fe,searchable:k=!1,defaultFilter:pe=!0,query:me,defaultQuery:he,onQuery:ge,renderPopupHeader:_e,emptyState:ve,loadingState:A,errorState:j,placement:M=`bottom-start`,clearable:N=!1}=e,P=g,F=(0,w.useRef)(null),[I,ye]=(0,w.useState)(!1),L=k?`search-single`:`display`,R=h===void 0?void 0:_(h),z=R===void 0?void 0:u.find(e=>_(e)===R)??h,{query:B,setQuery:V}=ie({open:I,query:me,defaultQuery:he,onQuery:ge,triggerMode:L}),be=(0,w.useCallback)(e=>oe({option:e,getOptionLabel:v,getOptionCode:y,getOptionGroup:C}),[y,C,v]),H=ne({options:u,query:B,enabled:k&&pe,getSearchText:be}),U=(0,w.useMemo)(()=>C?se(H,C):void 0,[C,H]),{activeIndex:xe,context:Se,floatingStyles:Ce,getFloatingProps:we,setReference:Te,setFloating:Ee,setOptionRef:De,close:W,openList:Oe,toggleOpen:ke,selectOption:Ae,selectActiveOption:je,handleReferenceKeyDown:Me,handleFloatingKeyDown:Ne,getOptionId:Pe,getActiveOptionId:G}=f({options:H,selectedIndex:R===void 0?-1:H.findIndex(e=>_(e)===R),open:I,onOpenChange:ye,getOptionDisabled:b,onSelect:P,disabled:i,placement:M,triggerMode:L}),K=H.length>0,q=z===void 0?void 0:v(z),J=z===void 0?void 0:O?O(z):q,Y=d(q),Fe=z===void 0?void 0:d(y?.(z)),Ie=d(J)??Y??Fe??(R===void 0?``:String(R)),X=k&&(I||B.length>0),Le=X?B:z===void 0?``:Ie,Z=z!==void 0&&J!==void 0&&d(J)===void 0&&!X,Q=m({mode:L,open:I,currentQuery:B,hasDisplayValue:z!==void 0,inputRef:F,setQuery:V,openList:Oe,close:W,toggleOpen:ke}),Re=e=>{F.current=e},ze=()=>{N&&P(void 0),V(``),W()},$=(e,t,r)=>{let i=_(t),a=R!==void 0&&i===R,o=r===xe,c=b?.(t)??!1,u={active:o,selected:a,disabled:c};return(0,T.jsx)(`div`,{id:Pe(e,r),ref:e=>De(r,e),role:`option`,"aria-selected":a,"aria-disabled":c||void 0,"aria-label":S?.(t),className:s(l.uiPopupOption,c&&l.disabled,o&&l.uiPopupOptionActive,a&&l.selected,E?.(t,u)),onClick:()=>Ae(t),children:D?D(t,u):(0,T.jsxs)(T.Fragment,{children:[a?(0,T.jsx)(n,{className:l.uiPopupOptionIcon}):(0,T.jsx)(`span`,{className:l.uiPopupOptionIcon}),(0,T.jsx)(`div`,{className:l.uiOptionText,children:v(t)}),y&&(0,T.jsx)(`div`,{className:l.uiOptionCode,children:y(t)})]})},i)};return(0,T.jsx)(ee,{label:t,description:r,disabled:i,placeholder:o,size:c,className:ce,children:({controlId:e,labelId:t,describedBy:n})=>{let r=`${e}-listbox`;return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(p,{ref:Re,rootRef:Te,id:e,type:`text`,disabled:i,readOnly:!k,autoComplete:`off`,role:`combobox`,value:Le,placeholder:z===void 0||X?o:void 0,"aria-labelledby":t,"aria-describedby":n,"aria-haspopup":`listbox`,"aria-expanded":I,"aria-controls":I?r:void 0,"aria-autocomplete":k?`list`:`none`,"aria-activedescendant":I?G(r):void 0,inputClassName:s(Z&&x.inputWithOverlay,le,`textOverflow`),overlay:Z?(0,T.jsx)(`div`,{className:x.valueOverlay,children:J}):void 0,endAdornment:(0,T.jsx)(re,{open:I,disabled:i,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,children:N&&z!==void 0&&!i?(0,T.jsx)(`button`,{type:`button`,className:l.uiClearButton,"data-ui":`select-clear-button`,"data-action":`clear-select`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),ze()},"aria-label":`Очистить выбор`,children:(0,T.jsx)(a,{})}):null}),onChange:e=>{k&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Me(e),!e.defaultPrevented&&Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:je,enableSpaceActivation:!k})}}),(0,T.jsx)(te,{open:I,context:Se,floatingStyles:Ce,listId:r,labelId:t,descriptionId:n,activeOptionId:K?G(r):void 0,setFloating:Ee,getFloatingProps:we,onKeyDown:Ne,className:s(l.uiPopupOptions,ue),maxWidth:de,header:_e,children:(0,T.jsx)(`div`,{className:s(fe,`h100 scrollable`),children:K?U?U.map((e,t)=>{let n=e.group?`${r}-group-${t}`:void 0,i=e.items.map(({option:e,index:t})=>$(r,e,t));return e.group?(0,T.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,T.jsx)(`div`,{id:n,className:l.uiPopupGroupLabel,children:e.group.label}),i]},`group-${String(e.group.key)}-${t}`):(0,T.jsx)(w.Fragment,{children:i},`options-${t}`)}):H.map((e,t)=>$(r,e,t)):(0,T.jsx)(ae,{emptyState:ve,loadingState:A,errorState:j})})})]})}})}var w,T,E=t((()=>{w=e(i(),1),c(),r(),h(),u(),_(),v(),S(),T=o(),C.__docgenInfo={description:`Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.`,methods:[],displayName:`Select`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},getOptionKey:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionKey`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]}}},description:``},getOptionLabel:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionGroup:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionGroup | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`SelectOptionGroup | undefined`,elements:[{name:`signature`,type:`object`,raw:`{
|
|
2
|
-
readonly key: SelectOptionKey;
|
|
3
|
-
readonly label: ReactNode;
|
|
4
|
-
}`,signature:{properties:[{key:`key`,value:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}],required:!0}},{key:`label`,value:{name:`ReactNode`,required:!0}}]}},{name:`undefined`}]}}},description:``},getOptionClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => string | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
|
|
5
|
-
active: boolean;
|
|
6
|
-
selected: boolean;
|
|
7
|
-
disabled: boolean;
|
|
8
|
-
}`,signature:{properties:[{key:`active`,value:{name:`boolean`,required:!0}},{key:`selected`,value:{name:`boolean`,required:!0}},{key:`disabled`,value:{name:`boolean`,required:!0}}]}},name:`state`}],return:{name:`union`,raw:`string | undefined`,elements:[{name:`string`},{name:`undefined`}]}}},description:``},renderOption:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
|
|
9
|
-
active: boolean;
|
|
10
|
-
selected: boolean;
|
|
11
|
-
disabled: boolean;
|
|
12
|
-
}`,signature:{properties:[{key:`active`,value:{name:`boolean`,required:!0}},{key:`selected`,value:{name:`boolean`,required:!0}},{key:`disabled`,value:{name:`boolean`,required:!0}}]}},name:`state`}],return:{name:`ReactNode`}}},description:``},renderValue:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},className:{required:!1,tsType:{name:`string`},description:``},buttonClassName:{required:!1,tsType:{name:`string`},description:``},optionsClassName:{required:!1,tsType:{name:`string`},description:``},optionsMaxWidth:{required:!1,tsType:{name:`CSSProperties["maxWidth"]`,raw:`CSSProperties["maxWidth"]`},description:``},optionsContentClassName:{required:!1,tsType:{name:`string`},description:``},searchable:{required:!1,tsType:{name:`boolean`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},defaultFilter:{required:!1,tsType:{name:`boolean`},description:``},renderPopupHeader:{required:!1,tsType:{name:`ReactNode`},description:``},emptyState:{required:!1,tsType:{name:`ReactNode`},description:``},loadingState:{required:!1,tsType:{name:`ReactNode`},description:``},errorState:{required:!1,tsType:{name:`ReactNode`},description:``},placement:{required:!1,tsType:{name:`Placement`},description:``},clearable:{required:!1,tsType:{name:`TClearable`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`unknown`},name:`value`}],return:{name:`void`}}},description:``}}}}));export{E as n,C as t};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-BJGIOdSH.js";import{n as a,t as o}from"./Select-DyO25wSA.js";var s=e({ControlledObjects:()=>p,CustomOptionLayout:()=>_,Disabled:()=>v,GroupedOptions:()=>g,Placeholder:()=>h,PrimitiveOptions:()=>m,__namedExportsOrder:()=>y,default:()=>f}),c,l,u,d,f,p,m,h,g,_,v,y,b=n((()=>{c=t(r(),1),a(),l=i(),u=[{id:1,name:`Отдел продаж`,code:`SLS`,manager:`Елена Миронова`,direction:`Коммерческий блок`},{id:2,name:`Закупки`,code:`PRC`,manager:`Антон Мелихов`,direction:`Коммерческий блок`},{id:3,name:`Логистика`,code:`LGS`,manager:`Мария Климова`,direction:`Операционный блок`,disabled:!0},{id:4,name:`Поддержка клиентов`,code:`SUP`,manager:`Ирина Белова`,direction:`Операционный блок`}],d=[`Новый`,`В работе`,`Завершён`,`Архив`],f={title:`Shared/UI/Select`,component:o,args:{label:`Подразделение`,description:`Выберите подразделение из списка.`,placeholder:`Не выбрано`,value:void 0,options:u,onChange:()=>{},getOptionKey:e=>e.id,getOptionLabel:e=>e.name,getOptionCode:e=>e.code,getOptionDisabled:e=>e.disabled??!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Низкоуровневый getter-based select. Подходит для произвольных структур данных, примитивов и сложного кастомного рендера. Компонент возвращает наружу саму выбранную option. Для сериализуемых конфигов и сценариев с optionKey/optionLabel используйте SerializableSelect.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение ещё не выбрано.`,control:`text`},value:{description:`Текущая выбранная option целиком.`,control:!1},options:{description:`Массив опций любого поддерживаемого формата.`,control:!1},onChange:{description:`Вызывается с выбранной option.`,control:!1},getOptionKey:{description:`Функция получения уникального ключа option.`,control:!1},getOptionLabel:{description:`Функция получения основного текста option.`,control:!1},getOptionCode:{description:`Опциональный рендер дополнительного кода справа.`,control:!1},getOptionDisabled:{description:`Опциональная функция блокировки отдельных option.`,control:!1},getOptionAriaLabel:{description:`Опциональная функция для aria-label option.`,control:!1},getOptionGroup:{description:`Опциональная функция, которая объединяет соседние option под доступным заголовком группы.`,control:!1},getOptionClassName:{description:`Опциональная функция CSS-класса option по её состоянию.`,control:!1},renderOption:{description:`Полностью кастомный рендер option в списке.`,control:!1},renderValue:{description:`Кастомный рендер выбранного значения в кнопке.`,control:!1},className:{description:`Дополнительный CSS-класс корневого контейнера.`,control:`text`},buttonClassName:{description:`Дополнительный CSS-класс кнопки выбора.`,control:`text`},optionsClassName:{description:`Дополнительный CSS-класс контейнера списка.`,control:`text`},optionsMaxWidth:{description:`Максимальная ширина выпадающего списка в любом допустимом CSS-формате.`,control:`text`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},placement:{description:`Позиционирование выпадающего списка.`,control:`select`,options:[`bottom-start`,`bottom-end`,`top-start`,`top-end`]},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`}}},p={name:`Объекты`,render:e=>{let[t,n]=(0,c.useState)(u[1]);return(0,l.jsx)(o,{...e,value:t,onChange:n})}},m={name:`Примитивы`,render:()=>{let[e,t]=(0,c.useState)(d[1]);return(0,l.jsx)(o,{label:`Статус`,description:`Пример использования низкоуровневого Select со строковыми значениями.`,placeholder:`Выберите статус`,options:d,value:e,onChange:t,getOptionKey:e=>e,getOptionLabel:e=>e,size:`md`})}},h={render:e=>{let[t,n]=(0,c.useState)(void 0);return(0,l.jsx)(o,{...e,value:t,onChange:n})}},g={name:`Группированные опции`,render:e=>{let[t,n]=(0,c.useState)();return(0,l.jsx)(o,{...e,value:t,onChange:n,getOptionGroup:e=>({key:e.direction,label:e.direction}),optionsMaxWidth:`40rem`})}},_={name:`Кастомный рендер`,render:e=>{let[t,n]=(0,c.useState)(u[0]);return(0,l.jsx)(o,{...e,value:t,onChange:n,renderValue:e=>`${e.code} · ${e.name}`,renderOption:(e,t)=>(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(`div`,{className:`flexEllipsis`,children:[(0,l.jsx)(`div`,{children:e.name}),(0,l.jsx)(`div`,{className:`fontSizeSm content2`,children:e.manager})]}),(0,l.jsx)(`div`,{style:{opacity:t.selected?1:.5},children:e.code})]})})}},v={args:{disabled:!0,value:u[0]}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
name: "Объекты",
|
|
3
|
-
render: args => {
|
|
4
|
-
const [value, setValue] = useState<DepartmentOption | undefined>(departmentOptions[1]);
|
|
5
|
-
return <Select {...args} value={value} onChange={setValue} />;
|
|
6
|
-
}
|
|
7
|
-
}`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
8
|
-
name: "Примитивы",
|
|
9
|
-
render: () => {
|
|
10
|
-
const [value, setValue] = useState<(typeof primitiveOptions)[number] | undefined>(primitiveOptions[1]);
|
|
11
|
-
return <Select label="Статус" description="Пример использования низкоуровневого Select со строковыми значениями." placeholder="Выберите статус" options={primitiveOptions} value={value} onChange={setValue} getOptionKey={option => option} getOptionLabel={option => option} size="md" />;
|
|
12
|
-
}
|
|
13
|
-
}`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
|
|
14
|
-
render: args => {
|
|
15
|
-
const [value, setValue] = useState<DepartmentOption | undefined>(undefined);
|
|
16
|
-
return <Select {...args} value={value} onChange={setValue} />;
|
|
17
|
-
}
|
|
18
|
-
}`,...h.parameters?.docs?.source}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
|
|
19
|
-
name: "Группированные опции",
|
|
20
|
-
render: args => {
|
|
21
|
-
const [value, setValue] = useState<DepartmentOption | undefined>();
|
|
22
|
-
return <Select {...args} value={value} onChange={setValue} getOptionGroup={option => ({
|
|
23
|
-
key: option.direction,
|
|
24
|
-
label: option.direction
|
|
25
|
-
})} optionsMaxWidth="40rem" />;
|
|
26
|
-
}
|
|
27
|
-
}`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
|
|
28
|
-
name: "Кастомный рендер",
|
|
29
|
-
render: args => {
|
|
30
|
-
const [value, setValue] = useState<DepartmentOption | undefined>(departmentOptions[0]);
|
|
31
|
-
return <Select {...args} value={value} onChange={setValue} renderValue={option => \`\${option.code} · \${option.name}\`} renderOption={(option, state) => <>
|
|
32
|
-
<div className="flexEllipsis">
|
|
33
|
-
<div>{option.name}</div>
|
|
34
|
-
<div className="fontSizeSm content2">{option.manager}</div>
|
|
35
|
-
</div>
|
|
36
|
-
<div style={{
|
|
37
|
-
opacity: state.selected ? 1 : 0.5
|
|
38
|
-
}}>{option.code}</div>
|
|
39
|
-
</>} />;
|
|
40
|
-
}
|
|
41
|
-
}`,..._.parameters?.docs?.source}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
|
|
42
|
-
args: {
|
|
43
|
-
disabled: true,
|
|
44
|
-
value: departmentOptions[0]
|
|
45
|
-
}
|
|
46
|
-
}`,...v.parameters?.docs?.source}}},y=[`ControlledObjects`,`PrimitiveOptions`,`Placeholder`,`GroupedOptions`,`CustomOptionLayout`,`Disabled`]}));b();export{p as ControlledObjects,_ as CustomOptionLayout,v as Disabled,g as GroupedOptions,h as Placeholder,m as PrimitiveOptions,y as __namedExportsOrder,f as default,b as n,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-BJGIOdSH.js";import{a as n,i as r}from"./utils-DzbSigQl.js";import{o as i,t as a}from"./text-D5xgciF8.js";import{n as o,t as s}from"./ui.module-wFHXkJzp.js";function c({label:e,code:t,highlight:r,labelClassName:a,codeClassName:s}){return(0,l.jsxs)(`div`,{className:o.uiOptionBase,children:[(0,l.jsx)(`div`,{className:n(o.uiOptionText,`flexEllipsis`,a),children:(0,l.jsx)(i,{text:e,highlight:r})}),t&&(0,l.jsx)(`div`,{className:n(o.uiOptionCode,s),children:(0,l.jsx)(i,{text:t,highlight:r})})]})}var l,u=e((()=>{r(),a(),s(),l=t(),c.__docgenInfo={description:`Универсальный рендерер опции. Используется и в single-select, и в multi-select.`,methods:[],displayName:`SelectOptionContent`,props:{label:{required:!0,tsType:{name:`string`},description:``},code:{required:!1,tsType:{name:`string`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},labelClassName:{required:!1,tsType:{name:`string`},description:`Приватный визуальный modifier label для специализированного владельца option.`},codeClassName:{required:!1,tsType:{name:`string`},description:`Отдельный modifier code, потому что code задаёт собственный variable-font weight.`}}}}));export{u as n,c as t};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./iframe-BJGIOdSH.js";import{n,t as r}from"./Select-DyO25wSA.js";function i(e,t){return e[t]}function a(e,t,n){let r=e[t];if(typeof r==`string`||typeof r==`number`)return r;let a=i(e,n);return typeof a==`string`||typeof a==`number`?a:String(a)}function o({label:e,description:t,disabled:n,placeholder:o,size:c,options:l,value:u,onChange:d,optionKey:f,optionLabel:p,renderCode:m,className:h,clearable:g}){return(0,s.jsx)(r,{label:e,description:t,disabled:n,placeholder:o,size:c,options:l,value:u===void 0?void 0:l.find(e=>i(e,f)===u),onChange:e=>d(e?i(e,f):void 0),getOptionKey:e=>i(e,f),getOptionLabel:e=>a(e,p,f),getOptionCode:m?e=>i(e,f):void 0,className:h,clearable:g})}var s,c=e((()=>{n(),s=t(),o.__docgenInfo={description:``,methods:[],displayName:`SerializableSelect`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: SerializableOptionValue<TOption, TOptionKey> | undefined) => void`,signature:{arguments:[{type:{name:`union`,raw:`SerializableOptionValue<TOption, TOptionKey> | undefined`,elements:[{name:`Extract`,elements:[{name:`TOption[TOptionKey]`,raw:`TOption[TOptionKey]`},{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]}],raw:`Extract<
|
|
2
|
-
TOption[TOptionKey],
|
|
3
|
-
SelectOptionKey
|
|
4
|
-
>`},{name:`undefined`}]},name:`value`}],return:{name:`void`}}},description:``},optionKey:{required:!0,tsType:{name:`TOptionKey`},description:``},optionLabel:{required:!0,tsType:{name:`TOptionLabel`},description:``},renderCode:{required:!1,tsType:{name:`literal`,value:`true`},description:``},className:{required:!1,tsType:{name:`string`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}}));export{c as n,o as t};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{pn as r,t as i}from"./iframe-BJGIOdSH.js";import{n as a,t as o}from"./SerializableSelect-ki4BThj7.js";var s=e({AsyncReloadLike:()=>h,Controlled:()=>f,Disabled:()=>g,Placeholder:()=>p,WithCode:()=>m,__namedExportsOrder:()=>_,default:()=>d}),c,l,u,d,f,p,m,h,g,_,v=n((()=>{c=t(r(),1),a(),l=i(),u=[{id:10,name:`Продажи`,code:`SLS`,branch:`Екатеринбург`},{id:20,name:`Закупки`,code:`PRC`,branch:`Челябинск`},{id:30,name:`Логистика`,code:`LGS`,branch:`Новосибирск`},{id:40,name:`Сервис`,code:`SRV`,branch:`Москва`}],d={title:`Shared/UI/SerializableSelect`,component:o,args:{label:`Подразделение`,description:`Сериализуемая обёртка над Select для object-options и field-based конфигурации.`,placeholder:`Выберите подразделение`,options:u,optionKey:`id`,optionLabel:`name`,value:void 0,onChange:()=>{},size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Высокоуровневая обёртка над low-level Select. Принимает массив объектов, получает key и label по именам полей, а наружу возвращает только значение ключа. Нужна для сериализуемых конфигов, в том числе в src/shared/ui/controls/*.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда ключ ещё не выбран.`,control:`text`},options:{description:`Массив объектных option.`,control:!1},optionKey:{description:`Поле объекта, значение которого используется как ключ и отдаётся наружу через onChange.`,control:!1},optionLabel:{description:`Поле объекта, значение которого отображается как основной текст option.`,control:!1},renderCode:{description:`Если включено, справа от текста будет показан ключ optionKey.`,control:`boolean`},value:{description:`Текущий выбранный ключ option, а не вся option целиком.`,control:!1},onChange:{description:`Вызывается с новым значением optionKey.`,control:!1},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},className:{description:`Дополнительный CSS-класс корневого контейнера.`,control:`text`}}},f={name:`Выбор по ключу`,render:e=>{let[t,n]=(0,c.useState)(20);return(0,l.jsx)(o,{...e,value:t,onChange:n})}},p={render:e=>{let[t,n]=(0,c.useState)(void 0);return(0,l.jsx)(o,{...e,value:t,onChange:n})}},m={name:`С кодом`,render:e=>{let[t,n]=(0,c.useState)(10);return(0,l.jsx)(o,{...e,value:t,onChange:n,renderCode:!0})},args:{renderCode:!0}},h={name:`Смена набора опций`,render:e=>{let[t,n]=(0,c.useState)(30),[r,i]=(0,c.useState)(!1),a=(0,c.useMemo)(()=>r?u.filter(e=>e.id!==20):u,[r]);return(0,l.jsxs)(`div`,{style:{display:`grid`,gap:`12px`,maxWidth:`320px`},children:[(0,l.jsx)(`button`,{type:`button`,onClick:()=>i(e=>!e),children:r?`Показать полный список`:`Скрыть одну опцию`}),(0,l.jsx)(o,{...e,options:a,value:t,onChange:n})]})}},g={args:{disabled:!0,value:10}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
name: "Выбор по ключу",
|
|
3
|
-
render: args => {
|
|
4
|
-
const [value, setValue] = useState<number | undefined>(20);
|
|
5
|
-
return <SerializableSelect {...args} value={value} onChange={setValue} />;
|
|
6
|
-
}
|
|
7
|
-
}`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
|
|
8
|
-
render: args => {
|
|
9
|
-
const [value, setValue] = useState<number | undefined>(undefined);
|
|
10
|
-
return <SerializableSelect {...args} value={value} onChange={setValue} />;
|
|
11
|
-
}
|
|
12
|
-
}`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
13
|
-
name: "С кодом",
|
|
14
|
-
render: args => {
|
|
15
|
-
const [value, setValue] = useState<number | undefined>(10);
|
|
16
|
-
return <SerializableSelect {...args} value={value} onChange={setValue} renderCode />;
|
|
17
|
-
},
|
|
18
|
-
args: {
|
|
19
|
-
renderCode: true
|
|
20
|
-
}
|
|
21
|
-
}`,...m.parameters?.docs?.source}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
|
|
22
|
-
name: "Смена набора опций",
|
|
23
|
-
render: args => {
|
|
24
|
-
const [value, setValue] = useState<number | undefined>(30);
|
|
25
|
-
const [showShortList, setShowShortList] = useState(false);
|
|
26
|
-
const options = useMemo(() => showShortList ? departmentOptions.filter(option => option.id !== 20) : departmentOptions, [showShortList]);
|
|
27
|
-
return <div style={{
|
|
28
|
-
display: "grid",
|
|
29
|
-
gap: "12px",
|
|
30
|
-
maxWidth: "320px"
|
|
31
|
-
}}>
|
|
32
|
-
<button type="button" onClick={() => setShowShortList(current => !current)}>
|
|
33
|
-
{showShortList ? "Показать полный список" : "Скрыть одну опцию"}
|
|
34
|
-
</button>
|
|
35
|
-
<SerializableSelect {...args} options={options} value={value} onChange={setValue} />
|
|
36
|
-
</div>;
|
|
37
|
-
}
|
|
38
|
-
}`,...h.parameters?.docs?.source}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
|
|
39
|
-
args: {
|
|
40
|
-
disabled: true,
|
|
41
|
-
value: 10
|
|
42
|
-
}
|
|
43
|
-
}`,...g.parameters?.docs?.source}}},_=[`Controlled`,`Placeholder`,`WithCode`,`AsyncReloadLike`,`Disabled`]}));v();export{h as AsyncReloadLike,f as Controlled,g as Disabled,p as Placeholder,m as WithCode,_ as __namedExportsOrder,d as default,v as n,s as t};
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{jt as r,n as i,pn as a,t as o,tt as ee}from"./iframe-BJGIOdSH.js";import{a as s,i as c}from"./utils-DzbSigQl.js";import{J as l,K as u,o as d,p as te,t as f,z as p}from"./formatters-BtIOYENB.js";import{i as m,t as h}from"./popover-CuFTypCp.js";import{n as g,t as _}from"./ui.module-wFHXkJzp.js";import{t as v}from"./Button-MoWVKehO.js";import{i as y}from"./DateInput-erobPRG_.js";import{t as b}from"./button-DZpTIXz2.js";import{o as ne,r as re,u as ie}from"./Input-BGdz8TmT.js";import{t as ae}from"./input-DXi75xv1.js";import{t as oe}from"./ui-DWDaBPQx.js";import{a as x,i as se,n as S,r as C,t as w}from"./date-segments-CzU9k5bl.js";import{a as ce,c as le,d as ue,i as T,l as de,n as E,o as D,r as fe,s as O,t as pe,u as me}from"./TimePanel-ClMfq_py.js";var k=n((()=>{D()}));function he(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function ge({value:e,onChange:t,onClearError:n,disabled:r,minDate:i,maxDate:a,mode:o=`date-time`}){let ee=(0,A.useMemo)(()=>ce(o),[o]),s=(0,A.useMemo)(()=>se(ee),[ee]),c=(0,A.useMemo)(()=>he(s),[s]),l=(0,A.useMemo)(()=>S(e??null,s),[s,e]),[u,d]=(0,A.useState)(null),te=e?.getTime()??null,f=(0,A.useEffectEvent)(e=>d(e));(0,A.useEffect)(()=>{f(null)},[te,o]);let p=u??l,m=(0,A.useRef)(new Map),h=(0,A.useRef)(0),g=(0,A.useCallback)(n=>{if(w(s,n))return t(null),null;let r=x(s,n,{defaultDate:o===`time`?me(e,`time`)??T():void 0});return!r||!O(r,i,a,o)?null:(t(r),r)},[a,i,o,t,s,e]),_=(0,A.useCallback)((e,t=!0)=>{let n=m.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),v=(0,A.useCallback)(e=>{let t=c.indexOf(e);return t<c.length-1?c[t+1]:null},[c]),y=(0,A.useCallback)(e=>{let t=c.indexOf(e);return t>0?c[t-1]:null},[c]),b=(0,A.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:s,segmentValues:p,registerRef:(0,A.useCallback)(e=>t=>{if(t){m.current.set(e,t);return}m.current.delete(e)},[]),handleInput:(0,A.useCallback)(e=>t=>{if(r)return;let i=s[e];if(i.kind!==`editable`)return;let a=t.target.value.replace(/\D/g,``).slice(0,i.length),o=new Map(p);if(o.set(e,a),d(o),n?.(),a.length===i.length){let t=v(e);t!==null&&requestAnimationFrame(()=>_(t))}g(o)},[r,_,v,n,p,s,g]),handleKeyDown:(0,A.useCallback)(e=>t=>{if(r)return;let n=s[e];if(n.kind!==`editable`)return;let i=p.get(e)??``,a=t.currentTarget;switch(t.key){case`ArrowRight`:if(a.selectionStart===i.length||i===``){t.preventDefault();let n=v(e);n!==null&&_(n)}break;case`ArrowLeft`:if(a.selectionStart===0||i===``){t.preventDefault();let n=y(e);n!==null&&_(n)}break;case`ArrowUp`:{t.preventDefault();let r=i===``?n.min:Number.parseInt(i,10)+1;r>n.max&&(r=n.min);let o=new Map(p);o.set(e,b(String(r),n)),d(o),g(o),requestAnimationFrame(()=>a.select());break}case`ArrowDown`:{t.preventDefault();let r=i===``?n.max:Number.parseInt(i,10)-1;r<n.min&&(r=n.max);let o=new Map(p);o.set(e,b(String(r),n)),d(o),g(o),requestAnimationFrame(()=>a.select());break}case`Backspace`:if(i===``){t.preventDefault();let n=y(e);n!==null&&_(n)}break;case`Delete`:{t.preventDefault();let n=new Map(p);n.set(e,``),d(n),g(n);break}}},[r,_,v,y,b,p,s,g]),handleFocus:(0,A.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,A.useCallback)(()=>{clearTimeout(h.current)},[]),handleContainerBlur:(0,A.useCallback)(()=>{let n=new Map(p);h.current=window.setTimeout(()=>{if(w(s,n)){t(null),d(n);return}let r=x(s,n,{defaultDate:o===`time`?me(e,`time`)??T():void 0});if(!r||!O(r,i,a,o)){d(null);return}d(n)},0)},[a,i,o,t,p,s,e]),focusFirstEmpty:(0,A.useCallback)(()=>{let e=c.find(e=>!(p.get(e)??``))??c[c.length-1];e!==void 0&&_(e)},[c,_,p])}}var A,_e=n((()=>{A=t(a(),1),C(),k()})),ve=n((()=>{_e()})),j,M,N,P,F,I,L,R,z,B,V,H,ye=n((()=>{j=`AvG-mf`,M=`ig7KtT`,N=`RTruv0`,P=`YQHPZa`,F=`-RZe-i`,I=`Ox0SRE`,L=`gfaRup`,R=`_59kEea`,z=`Jjdu1Q`,B=`Q8Y2xS`,V=`XxZYTW`,H={segmentInput:j,separator:M,calendarButton:N,popoverContent:P,bottom:F,right:I,calendarPane:L,timePanelPane:R,timeOnlyPopoverContent:z,timePanelPaneBottom:B,timePanelPaneRight:V}}));function U({value:e,onChange:t,label:n,description:i,placeholder:a,disabled:o,size:c,error:l,onClearError:u,minDate:f,maxDate:p,timePanelPlacement:h=`right`,mode:_=`date-time`}){let b=me(e,_),ae=b?.getTime()??null,oe=(0,W.useMemo)(()=>te(new Date),[]),[x,se]=(0,W.useState)(!1),[S,C]=(0,W.useState)(b??null),[w,ce]=(0,W.useState)(`day`),[T,E]=(0,W.useState)(()=>ue(b,oe,_)),{controlId:D,labelId:k,descriptionId:he,errorId:A,describedBy:_e}=ie({hasLabel:n!=null,hasDescription:!!i,hasError:!!l}),ve=(0,W.useEffectEvent)(e=>C(e)),j=(0,W.useEffectEvent)(e=>E(e));(0,W.useEffect)(()=>{x||ve(b??null),b&&j(b)},[b,ae,x]),(0,W.useEffect)(()=>{b&&j(b)},[b,ae]);let{segments:M,segmentValues:N,registerRef:P,handleInput:F,handleKeyDown:I,handleFocus:L,handleContainerFocus:R,handleContainerBlur:z,focusFirstEmpty:B}=ge({value:b,onChange:t,onClearError:u,disabled:o,minDate:f,maxDate:p,mode:_}),V=e=>{if(_===`time`||d(e)||o)return;let t=le(e,S??b??T),{hours:n,minutes:r}=fe(e,t.getHours(),t.getMinutes(),f,p,_),i=de(e,n,r);O(i,f,p,_)&&(u?.(),C(i),E(i))},ye=(e,t)=>{if(o)return;let n=S??b??T,r=fe(n,e,t,f,p,_),i=de(n,r.hours,r.minutes,_);O(i,f,p,_)&&(u?.(),C(i),E(i))},U=e=>{e&&(C(b??null),E(ue(b,oe,_))),se(e)},be=()=>{(b?.getTime()??null)!==(S?.getTime()??null)&&t(S)},xe=h===`right`?H.timePanelPaneRight:H.timePanelPaneBottom,K=_===`time`?`Открыть выбор времени`:`Открыть календарь даты и времени`,q=a??(_===`time`?`чч:мм`:`дд.мм.гггг чч:мм`),J=S??b??T;return(0,G.jsxs)(m,{open:x,onOpenChange:U,children:[(0,G.jsx)(ne,{label:n,description:i,disabled:o,size:c,error:l,controlId:D,labelId:k,descriptionId:he,errorId:A,children:(0,G.jsx)(re,{endAdornmentWidth:`var(--control-height)`,endAdornment:(0,G.jsx)(m.Trigger,{children:(0,G.jsx)(v,{variant:`transparent`,disabled:o,className:H.calendarButton,icon:_===`time`?(0,G.jsx)(ee,{}):(0,G.jsx)(r,{}),"aria-label":K})}),children:({controlClassName:e})=>(0,G.jsx)(`div`,{id:D,className:s(g.uiInputControlFake,e),"data-disabled":o||void 0,"data-invalid":l?``:void 0,role:`group`,"aria-invalid":!!l||void 0,"aria-placeholder":q,"aria-labelledby":k,"aria-describedby":_e,onFocus:R,onBlur:z,onClick:e=>{e.target===e.currentTarget&&B()},children:M.map((e,t)=>e.kind===`literal`?(0,G.jsx)(`span`,{className:H.separator,"data-disabled":o||void 0,children:e.text},t):(0,G.jsx)(`input`,{ref:P(t),type:`text`,inputMode:`numeric`,className:H.segmentInput,style:{width:`${e.length+.5}ch`},value:N.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:o,"aria-label":e.ariaLabel,autoComplete:`off`,onChange:F(t),onKeyDown:I(t),onFocus:L()},t))})})}),(0,G.jsx)(m.Content,{background:`primary`,onClose:be,children:_===`time`?(0,G.jsx)(`div`,{className:H.timeOnlyPopoverContent,children:(0,G.jsx)(pe,{value:J,disabled:o,minDate:f,maxDate:p,mode:_,onChange:ye})}):(0,G.jsxs)(`div`,{className:s(H.popoverContent,H[h]),children:[(0,G.jsx)(`div`,{className:H.calendarPane,children:(0,G.jsx)(y,{view:w,datePickerLevel:`day`,selectionMode:`day`,onViewChange:ce,value:J,onChange:V,minDate:f,maxDate:p,currentDate:T,onCurrentDateChange:E})}),(0,G.jsx)(`div`,{className:s(H.timePanelPane,xe),children:(0,G.jsx)(pe,{value:J,disabled:o,minDate:f,maxDate:p,mode:_,onChange:ye})})]})})]})}var W,G,be=n((()=>{W=t(a(),1),f(),c(),i(),b(),oe(),ae(),h(),_(),k(),ve(),ye(),E(),G=o(),U.__docgenInfo={description:`Поле выбора даты-времени со строгой сегментной маской и popover-пикером.`,methods:[],displayName:`SingleDateTimeInput`,props:{error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},minDate:{required:!1,tsType:{name:`Date`},description:``},maxDate:{required:!1,tsType:{name:`Date`},description:``},timePanelPlacement:{required:!1,tsType:{name:`union`,raw:`"bottom" | "right"`,elements:[{name:`literal`,value:`"bottom"`},{name:`literal`,value:`"right"`}]},description:``,defaultValue:{value:`"right"`,computed:!1}},mode:{required:!1,tsType:{name:`union`,raw:`"date-time" | "time"`,elements:[{name:`literal`,value:`"date-time"`},{name:`literal`,value:`"time"`}]},description:``,defaultValue:{value:`"date-time"`,computed:!1}},label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``}}}})),xe=e({Default:()=>Y,Empty:()=>Z,TimeOnly:()=>X,WithLimits:()=>Q,WithRightPanel:()=>$,__namedExportsOrder:()=>Se,default:()=>J}),K,q,J,Y,X,Z,Q,$,Se,Ce=n((()=>{K=t(a(),1),f(),be(),q=o(),J={title:`Shared/UI/SingleDateTimeInput`,component:U,args:{value:null,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля даты и времени.`,control:`text`},description:{description:`Описание под заголовком поля.`,control:`text`},placeholder:{description:`Текстовая подсказка для сегментного ввода.`,control:`text`},value:{description:"Текущее значение в виде `Date | null`.",control:!1},onChange:{description:`Вызывается при вводе или выборе валидной даты-времени.`,control:!1},minDate:{description:`Минимально допустимая дата-время.`,control:`date`},maxDate:{description:`Максимально допустимая дата-время.`,control:`date`},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Сбрасывает внешнюю ошибку при ручном вводе и выборе в picker.`,control:!1},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует сегментный ввод и popover picker.`,control:`boolean`},timePanelPlacement:{description:`Размещение панели выбора времени относительно календаря.`,control:`inline-radio`,options:[`bottom`,`right`]},mode:{description:`Режим работы поля: дата-время или только время.`,control:`inline-radio`,options:[`date-time`,`time`]}}},Y={render:e=>{let[t,n]=(0,K.useState)(e.value??new Date(2026,2,5,9,15,0,0));return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(U,{...e,value:t,onChange:n}),(0,q.jsxs)(`p`,{children:[`Вывод значения через `,(0,q.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsDateTime(value)`}),`:`]}),(0,q.jsx)(`pre`,{children:l(t)}),(0,q.jsxs)(`p`,{children:[`Вывод значения через `,(0,q.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsODataDatetime(value)`}),`:`]}),(0,q.jsx)(`pre`,{children:p(t)})]})},args:{label:`Дата и время`,description:`Фиксированный формат: дд.мм.гггг чч:мм`,placeholder:`дд.мм.гггг чч:мм`,timePanelPlacement:`bottom`}},X={render:e=>{let[t,n]=(0,K.useState)(new Date(1970,0,1,9,15,0,0));return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(U,{...e,value:t,onChange:n}),(0,q.jsxs)(`p`,{children:[`Вывод значения через `,(0,q.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsTime(value)`}),`:`]}),(0,q.jsx)(`pre`,{children:u(t)}),(0,q.jsx)(`p`,{children:`Техническая дата значения всегда фиксируется как 01.01.1970.`}),(0,q.jsx)(`pre`,{children:t?t.toISOString():``})]})},args:{label:`Время`,description:`Режим только времени с маской чч:мм и wheel-picker без календаря.`,placeholder:`чч:мм`,mode:`time`,minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},Z={render:e=>{let[t,n]=(0,K.useState)(null);return(0,q.jsx)(U,{...e,value:t,onChange:n})},args:{label:`Пустое значение`,description:`Поле можно заполнить вручную или через popover picker.`,placeholder:`дд.мм.гггг чч:мм`,timePanelPlacement:`bottom`}},Q={render:e=>{let[t,n]=(0,K.useState)(new Date(2026,2,10,12,30,0,0));return(0,q.jsx)(U,{...e,value:t,onChange:n})},args:{label:`Дата отгрузки`,description:`Доступен только интервал с 10 по 12 марта 2026 года.`,minDate:new Date(2026,2,10,9,0,0,0),maxDate:new Date(2026,2,12,18,30,0,0),timePanelPlacement:`bottom`}},$={render:e=>{let[t,n]=(0,K.useState)(new Date(2026,2,10,12,30,0,0));return(0,q.jsx)(U,{...e,value:t,onChange:n})},args:{label:`Дата и время`,description:`Wheel-панель времени расположена справа от календаря.`,timePanelPlacement:`right`}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
render: args => {
|
|
3
|
-
const [value, setValue] = useState<Date | null>(args.value ?? new Date(2026, 2, 5, 9, 15, 0, 0));
|
|
4
|
-
return <div>
|
|
5
|
-
<SingleDateTimeInput {...args} value={value} onChange={setValue} />
|
|
6
|
-
|
|
7
|
-
<p>
|
|
8
|
-
Вывод значения через <code className="statusInfo">formatDateAsDateTime(value)</code>:
|
|
9
|
-
</p>
|
|
10
|
-
<pre>{formatDateAsDateTime(value)}</pre>
|
|
11
|
-
<p>
|
|
12
|
-
Вывод значения через <code className="statusInfo">formatDateAsODataDatetime(value)</code>:
|
|
13
|
-
</p>
|
|
14
|
-
<pre>{formatDateAsODataDatetime(value)}</pre>
|
|
15
|
-
</div>;
|
|
16
|
-
},
|
|
17
|
-
args: {
|
|
18
|
-
label: "Дата и время",
|
|
19
|
-
description: "Фиксированный формат: дд.мм.гггг чч:мм",
|
|
20
|
-
placeholder: "дд.мм.гггг чч:мм",
|
|
21
|
-
timePanelPlacement: "bottom"
|
|
22
|
-
}
|
|
23
|
-
}`,...Y.parameters?.docs?.source},description:{story:`Демонстрирует основной сценарий выбора даты и времени с точностью до минуты.`,...Y.parameters?.docs?.description}}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{
|
|
24
|
-
render: args => {
|
|
25
|
-
const [value, setValue] = useState<Date | null>(new Date(1970, 0, 1, 9, 15, 0, 0));
|
|
26
|
-
return <div>
|
|
27
|
-
<SingleDateTimeInput {...args} value={value} onChange={setValue} />
|
|
28
|
-
|
|
29
|
-
<p>
|
|
30
|
-
Вывод значения через <code className="statusInfo">formatDateAsTime(value)</code>:
|
|
31
|
-
</p>
|
|
32
|
-
<pre>{formatDateAsTime(value)}</pre>
|
|
33
|
-
<p>Техническая дата значения всегда фиксируется как 01.01.1970.</p>
|
|
34
|
-
<pre>{value ? value.toISOString() : ""}</pre>
|
|
35
|
-
</div>;
|
|
36
|
-
},
|
|
37
|
-
args: {
|
|
38
|
-
label: "Время",
|
|
39
|
-
description: "Режим только времени с маской чч:мм и wheel-picker без календаря.",
|
|
40
|
-
placeholder: "чч:мм",
|
|
41
|
-
mode: "time",
|
|
42
|
-
minDate: new Date(2026, 2, 10, 9, 15, 0, 0),
|
|
43
|
-
maxDate: new Date(2026, 2, 10, 18, 30, 0, 0)
|
|
44
|
-
}
|
|
45
|
-
}`,...X.parameters?.docs?.source},description:{story:"Демонстрирует режим выбора только времени на технической дате `1970-01-01`.",...X.parameters?.docs?.description}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
|
|
46
|
-
render: args => {
|
|
47
|
-
const [value, setValue] = useState<Date | null>(null);
|
|
48
|
-
return <SingleDateTimeInput {...args} value={value} onChange={setValue} />;
|
|
49
|
-
},
|
|
50
|
-
args: {
|
|
51
|
-
label: "Пустое значение",
|
|
52
|
-
description: "Поле можно заполнить вручную или через popover picker.",
|
|
53
|
-
placeholder: "дд.мм.гггг чч:мм",
|
|
54
|
-
timePanelPlacement: "bottom"
|
|
55
|
-
}
|
|
56
|
-
}`,...Z.parameters?.docs?.source},description:{story:`Показывает пустое контролируемое значение.`,...Z.parameters?.docs?.description}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
|
|
57
|
-
render: args => {
|
|
58
|
-
const [value, setValue] = useState<Date | null>(new Date(2026, 2, 10, 12, 30, 0, 0));
|
|
59
|
-
return <SingleDateTimeInput {...args} value={value} onChange={setValue} />;
|
|
60
|
-
},
|
|
61
|
-
args: {
|
|
62
|
-
label: "Дата отгрузки",
|
|
63
|
-
description: "Доступен только интервал с 10 по 12 марта 2026 года.",
|
|
64
|
-
minDate: new Date(2026, 2, 10, 9, 0, 0, 0),
|
|
65
|
-
maxDate: new Date(2026, 2, 12, 18, 30, 0, 0),
|
|
66
|
-
timePanelPlacement: "bottom"
|
|
67
|
-
}
|
|
68
|
-
}`,...Q.parameters?.docs?.source},description:{story:`Демонстрирует ограничение диапазона и синхронизацию календаря со временем.`,...Q.parameters?.docs?.description}}},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{
|
|
69
|
-
render: args => {
|
|
70
|
-
const [value, setValue] = useState<Date | null>(new Date(2026, 2, 10, 12, 30, 0, 0));
|
|
71
|
-
return <SingleDateTimeInput {...args} value={value} onChange={setValue} />;
|
|
72
|
-
},
|
|
73
|
-
args: {
|
|
74
|
-
label: "Дата и время",
|
|
75
|
-
description: "Wheel-панель времени расположена справа от календаря.",
|
|
76
|
-
timePanelPlacement: "right"
|
|
77
|
-
}
|
|
78
|
-
}`,...$.parameters?.docs?.source},description:{story:`Демонстрирует размещение wheel-панели справа от календаря.`,...$.parameters?.docs?.description}}},Se=[`Default`,`TimeOnly`,`Empty`,`WithLimits`,`WithRightPanel`]}));Ce();export{Y as Default,Z as Empty,X as TimeOnly,Q as WithLimits,$ as WithRightPanel,Se as __namedExportsOrder,J as default,Ce as n,xe as t};
|