@ryuzaki13/react-foundation-ui 1.5.10 → 1.5.12
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 +182 -148
- package/dist/advanced-search/index.js.map +1 -1
- package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts +1 -1
- package/dist/advanced-search/model/useAdvancedSearchSelection.d.ts.map +1 -1
- package/dist/advanced-search/ui/AdvancedSearchModal.d.ts +12 -3
- package/dist/advanced-search/ui/AdvancedSearchModal.d.ts.map +1 -1
- package/dist/advanced-search/ui/AdvancedSearchModalSession.d.ts +15 -0
- package/dist/advanced-search/ui/AdvancedSearchModalSession.d.ts.map +1 -0
- package/dist/advanced-search/ui/AdvancedSearchSelect.d.ts.map +1 -1
- package/dist/badge/index.js +1 -1
- package/dist/base-table/index.js +1 -1
- package/dist/button/index.js +1 -1
- package/dist/check-box/index.js +1 -1
- package/dist/chunks/{CalendarView-BSshXZAX.js → CalendarView-DqA-PbAU.js} +42 -42
- package/dist/chunks/{CalendarView-BSshXZAX.js.map → CalendarView-DqA-PbAU.js.map} +1 -1
- package/dist/chunks/CheckBox.module-C5SjPwSj.js.map +1 -1
- package/dist/chunks/{ImageViewerRuntime-BMs3BBkV.js → ImageViewerRuntime-HGBWp9NM.js} +18 -18
- package/dist/chunks/{ImageViewerRuntime-BMs3BBkV.js.map → ImageViewerRuntime-HGBWp9NM.js.map} +1 -1
- package/dist/chunks/{TextEditorLexicalClient-CLjpATRu.js → TextEditorLexicalClient-B084kVzu.js} +322 -322
- package/dist/chunks/{TextEditorLexicalClient-CLjpATRu.js.map → TextEditorLexicalClient-B084kVzu.js.map} +1 -1
- package/dist/chunks/{badge-CaooZXYD.js → badge-DMM8cOHd.js} +16 -16
- package/dist/chunks/{badge-CaooZXYD.js.map → badge-DMM8cOHd.js.map} +1 -1
- package/dist/chunks/{base-table-fUJY__6M.js → base-table-CJdKCKhb.js} +125 -125
- package/dist/chunks/{base-table-fUJY__6M.js.map → base-table-CJdKCKhb.js.map} +1 -1
- package/dist/chunks/{button-C--u7uJj.js → button-CzUO5rzq.js} +17 -17
- package/dist/chunks/{button-C--u7uJj.js.map → button-CzUO5rzq.js.map} +1 -1
- package/dist/chunks/{check-box-BZiEBR9c.js → check-box-sfGjYczQ.js} +11 -11
- package/dist/chunks/{check-box-BZiEBR9c.js.map → check-box-sfGjYczQ.js.map} +1 -1
- package/dist/chunks/{context-menu-XZ-e0f6_.js → context-menu-6nJkPmKV.js} +83 -83
- package/dist/chunks/{context-menu-XZ-e0f6_.js.map → context-menu-6nJkPmKV.js.map} +1 -1
- package/dist/chunks/date-input-9T8AoG5U.js +341 -0
- package/dist/chunks/{date-input-Dr5QNVT6.js.map → date-input-9T8AoG5U.js.map} +1 -1
- package/dist/chunks/{input-BNszawm6.js → input-VC8jEoTa.js} +37 -37
- package/dist/chunks/{input-BNszawm6.js.map → input-VC8jEoTa.js.map} +1 -1
- package/dist/chunks/{input-files-DxLVr2PF.js → input-files-CoMjadk7.js} +22 -22
- package/dist/chunks/{input-files-DxLVr2PF.js.map → input-files-CoMjadk7.js.map} +1 -1
- package/dist/chunks/{input-search-C2OOhZlw.js → input-search-Bs_9SxT0.js} +2 -2
- package/dist/chunks/{input-search-C2OOhZlw.js.map → input-search-Bs_9SxT0.js.map} +1 -1
- package/dist/chunks/{misc-Cp_r022Z.js → misc-CkRRma5E.js} +55 -55
- package/dist/chunks/{misc-Cp_r022Z.js.map → misc-CkRRma5E.js.map} +1 -1
- package/dist/chunks/{modal-DK9M7lT5.js → modal-LHkNxBko.js} +38 -38
- package/dist/chunks/{modal-DK9M7lT5.js.map → modal-LHkNxBko.js.map} +1 -1
- package/dist/chunks/{multi-select-CFHaQPot.js → multi-select-BJ6Lst1E.js} +44 -44
- package/dist/chunks/{multi-select-CFHaQPot.js.map → multi-select-BJ6Lst1E.js.map} +1 -1
- package/dist/chunks/{picker-D3Fc15JH.js → picker-DLnfOgZj.js} +34 -34
- package/dist/chunks/{picker-D3Fc15JH.js.map → picker-DLnfOgZj.js.map} +1 -1
- package/dist/chunks/{popover-BTT7zSqx.js → popover-IExDrsF6.js} +67 -67
- package/dist/chunks/{popover-BTT7zSqx.js.map → popover-IExDrsF6.js.map} +1 -1
- package/dist/chunks/{select-BolFlcoY.js → select-CysiIrej.js} +5 -5
- package/dist/chunks/{select-BolFlcoY.js.map → select-CysiIrej.js.map} +1 -1
- package/dist/chunks/{sortable-DcTIAbjD.js → sortable-BKIwlqhI.js} +17 -17
- package/dist/chunks/{sortable-DcTIAbjD.js.map → sortable-BKIwlqhI.js.map} +1 -1
- package/dist/chunks/{table-BChs6bgR.js → table-CIWdAcPY.js} +2 -2
- package/dist/chunks/{table-BChs6bgR.js.map → table-CIWdAcPY.js.map} +1 -1
- package/dist/chunks/{types-CxXyru6U.js → types-D9Wj9wrg.js} +21 -21
- package/dist/chunks/{types-CxXyru6U.js.map → types-D9Wj9wrg.js.map} +1 -1
- package/dist/chunks/ui.module-DHVTOqZ0.js.map +1 -1
- package/dist/chunks/{useODataSelectBase-BhCMCzv_.js → useODataSelectBase-Bq36Wp1U.js} +8 -8
- package/dist/chunks/{useODataSelectBase-BhCMCzv_.js.map → useODataSelectBase-Bq36Wp1U.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 +32 -32
- package/dist/dialog/index.js +9 -9
- package/dist/disclosure/index.js +10 -10
- package/dist/drop-zone/index.js +8 -8
- package/dist/errors/index.js +8 -8
- package/dist/expandable-action-panel/index.js +16 -16
- package/dist/flex/useFlexClasses.d.ts +1 -1
- package/dist/fullscreen-portal/index.js +7 -7
- package/dist/image/index.js +27 -27
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +1 -1
- package/dist/input-file/index.js +1 -1
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +1 -1
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +1 -1
- package/dist/list/index.js +25 -25
- package/dist/listbox/index.js +5 -5
- package/dist/misc/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/notifications/index.js +30 -30
- package/dist/picker/index.js +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/radio-button/index.js +10 -10
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +3 -3
- package/dist/sortable/index.js +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch/index.js +11 -11
- package/dist/table/index.js +1 -1
- package/dist/table-sorting/index.js +13 -13
- package/dist/tabs/index.js +1 -1
- package/dist/tag-input/index.js +55 -55
- package/dist/tag-input/index.js.map +1 -1
- package/dist/text/index.js +1 -1
- package/dist/text-editor/index.js +3 -3
- package/dist/textarea/index.js +1 -1
- package/dist/tree-select/index.js +134 -134
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +16 -16
- package/package.json +1 -1
- package/src/styles/config/_index.scss +2 -2
- package/storybook-static/assets/{Badge-BRzsgtsW.js → Badge-BeE_wR-e.js} +1 -1
- package/storybook-static/assets/{Badge.stories-BEUzIGxR.js → Badge.stories-BMLNLp7n.js} +1 -1
- package/storybook-static/assets/{BadgeList-Dvi9mgiq.js → BadgeList-B1SSw9no.js} +1 -1
- package/storybook-static/assets/{Button-D9NRl_J-.js → Button-CS7C3s7J.js} +1 -1
- package/storybook-static/assets/{Button-B0yitxpz.js → Button-Vi1a4Q0N.js} +1 -1
- package/storybook-static/assets/{Button.stories-RTpFQ0lC.js → Button.stories-BAyszGDt.js} +1 -1
- package/storybook-static/assets/{CalendarView-hixokiLY.js → CalendarView-CroQMfFX.js} +1 -1
- package/storybook-static/assets/{CheckBox-CkP3wY1y.js → CheckBox-BSQDnjGm.js} +1 -1
- package/storybook-static/assets/CheckBox-BnO90VKX.css +1 -0
- package/storybook-static/assets/{CheckBox-DgcHpYEB.js → CheckBox-Cj9xdsq2.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-B6gt-Pyy.js → CheckBox.stories-JSQfqZK5.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-CS57U4UC.js → Color-6AOWCN3U-D5PnNXqh.js} +1 -1
- package/storybook-static/assets/{ContextMenu-DfArrHyO.js → ContextMenu-CocuusYO.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CvaQBpuB.js → ContextMenu-rzpDsRZx.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-UUZnkfjK.js → ContextMenu.stories-CO9uACMA.js} +1 -1
- package/storybook-static/assets/{DateInput-D0Z39L0u.js → DateInput-BFUW6ZnL.js} +1 -1
- package/storybook-static/assets/{DateInput-BOJzcuf8.js → DateInput-Du3E2ET_.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-B9oAtjEF.js → DateInput.stories-DDa04kSj.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-I9kq2B9z.js → DateRangePresetSelect-CSiFT5F5.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Bhzy-5vR.js → DateRangePresetSelect-D6xM7__Q.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-CkkmtUCo.js → DateRangePresetSelect.stories-eF33IA75.js} +1 -1
- package/storybook-static/assets/{Detail-D038XLEh.js → Detail-BE-E18-T.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Dy8sCrYr.js → Detail.stories-NCvSVTmL.js} +1 -1
- package/storybook-static/assets/{Dialog-DvcT-HcI.js → Dialog-C4HX9Sgs.js} +1 -1
- package/storybook-static/assets/{Dialog-BpBfxyHP.js → Dialog-DSmGfP7k.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CFwZCUTc.js → Dialog.stories-CVtvkV1R.js} +1 -1
- package/storybook-static/assets/{Disclosure-bS8JZMZH.js → Disclosure-CwhrFXI8.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-DoRb7eFP.js → Disclosure.stories-DHOMAfuS.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-C8bhahk2.js → DisclosureGroup-Be79LGlr.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-BENO-TjP.js → DocsRenderer-JROSPFPF-DIVlRluw.js} +1 -1
- package/storybook-static/assets/{DropZone-CT2ql-iq.js → DropZone-5B0A-vFn.js} +1 -1
- package/storybook-static/assets/{DropZone-BFesDtXX.js → DropZone-BZCyapHh.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-DjyWW5NR.js → DropZone.stories-BlTy-nE5.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-DFIvsL7-.js → DropdownMenu-CqSO4Xln.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-HfuTxNHC.js → ExpandableActionPanel-DGK_hHxg.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-hrKtH1J5.js → ExpandableActionPanel.stories-IH6Gcybn.js} +1 -1
- package/storybook-static/assets/{Flex-YpXsCy6o.js → Flex-D_Ov-qrX.js} +1 -1
- package/storybook-static/assets/{Flex.stories-Ck5prBoq.js → Flex.stories-DyibLGoC.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-DOPDzLFT.js → FloatingPopover-Dt0czWS7.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-CpYotISk.js → FormattedTableCell-BkTdSSLq.js} +1 -1
- package/storybook-static/assets/{Grid-DUocH4TX.js → Grid-CwZOkx33.js} +1 -1
- package/storybook-static/assets/{Grid.stories-jnw37ukT.js → Grid.stories-Dsu31tqi.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-CDLsJM59.js → ImageCropper.stories-BqRshYgd.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-CZ7DKuFY.js → ImageRenderer-DiEaiphg.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-B8-aQ58B.js → ImageRenderer.stories-DXk_A_1N.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DLhqZ_GI.js → ImageView.stories-TuZxh1Fr.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-o1yD_rZq.js → ImageViewer.stories-CL796ExX.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-CJlrAsfL.js → ImageViewerRuntime-CCVrFr6t.js} +1 -1
- package/storybook-static/assets/{Input-B8y70gW9.js → Input-CRRkPSmn.js} +1 -1
- package/storybook-static/assets/{Input-8dAj3L5M.js → Input-Dmum9ojv.js} +1 -1
- package/storybook-static/assets/{Input.stories-KAOo2cMb.js → Input.stories-C8y8Gzjn.js} +1 -1
- package/storybook-static/assets/{InputDateTime-C8iXQn7P.js → InputDateTime-DozxwdSK.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-BOUfVN41.js → InputDateTime.stories-Dm86teu7.js} +1 -1
- package/storybook-static/assets/{InputFile-BlMNRcyL.js → InputFile-Cm1ipP_c.js} +1 -1
- package/storybook-static/assets/{InputFile-C-CwNpFJ.js → InputFile-DPYOyrse.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-MD9cAu-W.js → InputFile.stories-A9sXRTPi.js} +1 -1
- package/storybook-static/assets/{InputFiles-BMjWaVN9.js → InputFiles-D6ibnj3Y.js} +1 -1
- package/storybook-static/assets/{InputFiles-D72fv8HQ.js → InputFiles-DqYEI0vF.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-BlD8cBmt.js → InputFiles.stories-CTK_G05d.js} +1 -1
- package/storybook-static/assets/{InputFilesList-Dol1dIX5.js → InputFilesList-Cw2vB_I4.js} +1 -1
- package/storybook-static/assets/{InputImage-uE0JlBq5.js → InputImage-YaDG8UBR.js} +1 -1
- package/storybook-static/assets/{InputImage-_sOF8mmB.js → InputImage-eWMt3Rpi.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-R6HZFGuR.js → InputImage.stories-Ba5v3XyF.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-BDmyyudJ.js → InteractiveComponents-C3WdIF2c.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-RsjV4QyY.js → InteractiveComponents.stories-CPqOBcYI.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CqpAicOL.js → LayoutPicker-CAIujH3t.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CywNkFMn.js → LayoutPicker-mQiBJ85c.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BMiwqihl.js → LayoutPicker.stories-BAqhsvOh.js} +1 -1
- package/storybook-static/assets/{Listbox-Bznk_lrX.js → Listbox-BCfY4SYB.js} +1 -1
- package/storybook-static/assets/{Listbox-zQgffOs0.js → Listbox-vwKVwC47.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BeWjK-CY.js → Listbox.stories-CA7VrO6z.js} +1 -1
- package/storybook-static/assets/{Modal-unWtDqq_.js → Modal-DvisZoA2.js} +1 -1
- package/storybook-static/assets/{Modal.stories-DepzRvWp.js → Modal.stories-Dj66uXRY.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-B1XUXs-1.js → ModalManagerProvider-CSsTef9-.js} +1 -1
- package/storybook-static/assets/{MultiSelect-U5XEaFTv.js → MultiSelect-C4uT-lwM.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DBzuR4v6.js → MultiSelect-CpNX4wyD.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-9xtLUsmK.js → MultiSelect.stories-CjIw1FBQ.js} +1 -1
- package/storybook-static/assets/{NoData-Did5-Vbj.js → NoData-J6gIe2DW.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-C16jWWbh.js → NotificationsHost-B4vBCIUo.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-Df9Sciyb.js → NotificationsHost.stories-Btx0-jS4.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-_5_Hrv8p.js → ODataMultiSelect-BRWRd-T0.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DWTlih_F.js → ODataMultiSelect.stories-AcwmUSqN.js} +1 -1
- package/storybook-static/assets/{ODataSelect-xX8_14hD.js → ODataSelect-DKF1dPMT.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-B_VSMkR5.js → ODataSelect.stories-BCCDQvG1.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-CheCWkrj.js → ODataTreeMultiSelect-Jmrc7xEO.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CAWAJxdC.js → ODataTreeMultiSelect.stories-BWX3TG9B.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-ZQN9ZhPc.js → ODataTreeSelect-CGO2HVbN.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CYC_eiFv.js → ODataTreeSelect.stories-DSmhE-Li.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-KFcpHiAM.js → OneStepScroller-pU0sAFEq.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DN9SFKXh.js → PeriodSelect-DmogN2kp.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BgQWqB2a.js → PeriodSelect-DwozNnWV.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DcUE2clK.js → PeriodSelect.stories-Cwad_AnS.js} +1 -1
- package/storybook-static/assets/{PickerSelectionToolbar-CvqU44D-.js → PickerSelectionToolbar-B3N3Sv51.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-DZzNAe4M.js → PickerTriggerActions-BurXeCTR.js} +1 -1
- package/storybook-static/assets/{Popover-B1_qmzkr.js → Popover-Bi3JzbPI.js} +1 -1
- package/storybook-static/assets/{Popover-iSasApKA.js → Popover-DYoRYOJQ.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CGLUaRgH.js → Popover.stories-jhxw-37b.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-D_ylm7hV.js → PresetRangeDateInput-4GkY4C-R.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-CxyBq2XS.js → PresetRangeDateInput-5o-VfEMw.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-DgrBel6_.js → PresetRangeDateInput.stories-BLrQFysM.js} +1 -1
- package/storybook-static/assets/{PresetSelect-CrdvEugF.js → PresetSelect-VSLjZIEN.js} +1 -1
- package/storybook-static/assets/{RadioButton-DwyUH5ms.js → RadioButton-BmDJRjUd.js} +1 -1
- package/storybook-static/assets/{RadioButton-DW4ph1Xp.js → RadioButton-DtZXxK2y.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-6q7CeUZY.js → RadioButton.stories-CnjoSTqx.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DshEU96S.js → RadioGroup-C5avdavC.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BumTRrwE.js → RadioGroup-DKQukpG2.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-Bwv8Bgn8.js → RadioGroup.stories-D2RkFaPs.js} +1 -1
- package/storybook-static/assets/{Scrollable-ZI0zA9wz.js → Scrollable-BfWwu2om.js} +1 -1
- package/storybook-static/assets/{Select-CjuyI3wO.js → Select-C8NwIhWM.js} +1 -1
- package/storybook-static/assets/{Select-CP1Ijv9g.js → Select-wCbHE4lQ.js} +1 -1
- package/storybook-static/assets/{Select.stories-kCFhGvWP.js → Select.stories-a2seNrPn.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-C2DjqaM0.js → SelectOptionContent-ZSxvUFLm.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CoVoXwJS.js → SerializableSelect-4Goej9W_.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-UTJc7HQF.js → SerializableSelect.stories-BkCW3jp4.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-bIeFRT8c.js → SingleDateTimeInput-BfG4Wffa.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DobT9m-7.js → SingleDateTimeInput-C2QxXHnT.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-CwAP5lI3.js → SingleDateTimeInput.stories-D1EHS_Lj.js} +1 -1
- package/storybook-static/assets/{Slider-DB7dm4uC.js → Slider-COfQFgR8.js} +1 -1
- package/storybook-static/assets/{Slider-CnhBAXNm.js → Slider-DutRipBc.js} +1 -1
- package/storybook-static/assets/{Slider.stories-D7ADzpCF.js → Slider.stories-DXNQd3RV.js} +1 -1
- package/storybook-static/assets/{SliderInput-DfMdXNjq.js → SliderInput-CKdp2Gmo.js} +1 -1
- package/storybook-static/assets/{SliderInput-CvmZ86d-.js → SliderInput-D15wYNK7.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-CKe5q8PZ.js → SliderInput.stories-BHmBapUE.js} +1 -1
- package/storybook-static/assets/{Sortable-D-PG0esR.js → Sortable-Cv98zRm4.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BUUu5LQR.js → Sortable.stories-VjnupnmR.js} +1 -1
- package/storybook-static/assets/{Splitter-Cbiph6ck.js → Splitter-jOqNKtm0.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-z1_IuipN.js → Splitter.stories-BTJf67_i.js} +1 -1
- package/storybook-static/assets/{StateSelect-BfhvHQrQ.js → StateSelect-BNXXcX4c.js} +1 -1
- package/storybook-static/assets/{StateSelect-C6b0aolc.js → StateSelect-D8Zep8nb.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-yKKasuZq.js → StateSelect.stories-B0nR14db.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-mHQXke0Z.js → StringToggle.stories-Cat4CWpp.js} +1 -1
- package/storybook-static/assets/{Switch-DtYu0DX3.js → Switch-CNbwWtfu.js} +1 -1
- package/storybook-static/assets/{Switch--s8CABgk.js → Switch-CmxJq-nM.js} +1 -1
- package/storybook-static/assets/{Switch.stories-DqVmpD3F.js → Switch.stories-T7MZJAke.js} +1 -1
- package/storybook-static/assets/{Table-CS-8NjMS.js → Table-C7D3rt22.js} +1 -1
- package/storybook-static/assets/{Table.stories-BDEFvavq.js → Table.stories-C0jQhruO.js} +1 -1
- package/storybook-static/assets/{Tabs-DVAc2sEq.js → Tabs-BEO2hPOw.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-Bx3SVBYV.js → Tabs.stories-CgVofLQc.js} +1 -1
- package/storybook-static/assets/{TabsBox-DIc3bAG9.js → TabsBox-C4gzhmdB.js} +1 -1
- package/storybook-static/assets/{TagInput-DvJOyiDa.js → TagInput-C_nlfbRh.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-BfUUxxvB.js → TagInput.stories-BMCmW5eG.js} +1 -1
- package/storybook-static/assets/{Text-DDM_QNpo.js → Text-BqKrUz4Q.js} +1 -1
- package/storybook-static/assets/{Textarea-B8jfChqH.js → Textarea-BRstHvhs.js} +1 -1
- package/storybook-static/assets/{Textarea-CouwxZMS.js → Textarea-BbNW9GUS.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-B5YnG6Hg.js → Textarea.stories-B_22Qe-e.js} +1 -1
- package/storybook-static/assets/{TimePanel-Ce44lmoA.js → TimePanel-9AlN21FL.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-dMXzRVpT.js → TimePanel.stories-yxNANrSL.js} +1 -1
- package/storybook-static/assets/{Toggle-C8qL0JdM.js → Toggle-Bl89R1NL.js} +1 -1
- package/storybook-static/assets/{Toggle-BLb3M4N1.js → Toggle-YLom0uCh.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-CR8xCkXd.js → Toggle.stories-BGIwKyic.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-5fHQVUTd.js → TreeMultiSelect-C9hv75Z0.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-Bttryv5k.js → TreeMultiSelect-Dhl8PI6r.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-B4zkiRfC.js → TreeMultiSelect.stories-DefpU9Nq.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-B_XyJaYL.js → TreePickerBase-B5guKjut.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BmV5BgHm.js → TreeSelect-Cbtl72S2.js} +1 -1
- package/storybook-static/assets/{TreeSelect-_mFMic9T.js → TreeSelect-D1wgUUfD.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-D-lz21y2.js → TreeSelect.stories-DK6Z_n2h.js} +1 -1
- package/storybook-static/assets/{TreeTable-BjnuFqoj.js → TreeTable-CC5CA5OL.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-OEii5uhT.js → TreeTable.stories-DVYLy82M.js} +1 -1
- package/storybook-static/assets/{async-BggDKhCa.js → async-CDaecudw.js} +1 -1
- package/storybook-static/assets/{blocks-DXv0kKnO.js → blocks-DFQ7gHL7.js} +3 -3
- package/storybook-static/assets/{browserAndReact-CJg4Htw7.js → browserAndReact-DNd3NO2z.js} +1 -1
- package/storybook-static/assets/{check-BDF3qN6C.js → check-CDGa2frI.js} +1 -1
- package/storybook-static/assets/{chevron-down-DycW5rEN.js → chevron-down-B5gF19ie.js} +1 -1
- package/storybook-static/assets/{chevron-left-C5fp0Uga.js → chevron-left-BhhrtQ5w.js} +1 -1
- package/storybook-static/assets/{chevron-right-BtcaEPgU.js → chevron-right-ULlpFrtQ.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-DpbhHTe5.js → chunk-W22LQPXL-bz_jGWFd.js} +1 -1
- package/storybook-static/assets/{circle-alert-BHmYiVSQ.js → circle-alert-DG_0NWce.js} +1 -1
- package/storybook-static/assets/{circle-check-D-kWZdLj.js → circle-check-DKgLpHr-.js} +1 -1
- package/storybook-static/assets/{components-CiK0i2y5.js → components-CgxL1hHE.js} +3 -3
- package/storybook-static/assets/{contextMenu-BuB7GWKM.js → contextMenu-D_apFypV.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-DKIVh61V.js → defaultRenderers-CK6DySTx.js} +1 -1
- package/storybook-static/assets/{download-CHMcYpj3.js → download-BMlQunb2.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-DlArA_GW.js → filesAndExcel-BmDCLG9Y.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-2n8Uyf0J.js → floating-ui.react-DaDI6aL_.js} +1 -1
- package/storybook-static/assets/{formatters-BwCs7xCt.js → formatters-C5iLXNhs.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-ibdtp7C6.js → formatters-runtime-CsjNRxSG.js} +1 -1
- package/storybook-static/assets/{foundationLib-DAvQ9wk8.js → foundationLib-BcQgD58A.js} +1 -1
- package/storybook-static/assets/{hooks-D0mbXwcm.js → hooks-C9DxdAXO.js} +1 -1
- package/storybook-static/assets/{iframe-BnjRbLCp.js → iframe-BOYfiRbQ.js} +3 -3
- package/storybook-static/assets/iframe-Dy-1_8OT.js +1 -0
- package/storybook-static/assets/iframe-OPLBHfTR.css +1 -0
- package/storybook-static/assets/{info-B9srbxQP.js → info-BuKiC7d0.js} +1 -1
- package/storybook-static/assets/{odata-D9w_2DW1.js → odata-CGjX6csD.js} +1 -1
- package/storybook-static/assets/{odataAndTables-B7U8x4CV.js → odataAndTables-CyGjgcKX.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-BrsJ-DlE.js → odataFetchFn-DQBb33CS.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-CbO3dfw1.js → odataStoryFixtures-BYjSHUPv.js} +1 -1
- package/storybook-static/assets/{persisted-DXbdpvSU.js → persisted-BmsVMmao.js} +1 -1
- package/storybook-static/assets/{pureUtilities-BtrtdX0r.js → pureUtilities-BbRRZPJI.js} +1 -1
- package/storybook-static/assets/{react-DmKWdnt1.js → react-CPygFl97.js} +1 -1
- package/storybook-static/assets/{refresh-cw-C2Rk5OjE.js → refresh-cw-D9xWA1ag.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-Be2a2JfZ.js → runtimeAndState-7kpVxxK8.js} +1 -1
- package/storybook-static/assets/{settings-2-CuAc9ekV.js → settings-2-D5vKtCuh.js} +1 -1
- package/storybook-static/assets/{sortable-DF8VgD8R.js → sortable-7ZhGDUUH.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-BnGJW0L9.js → syntaxhighlighter-T5IQBZDB-BgPG-zNQ.js} +1 -1
- package/storybook-static/assets/{trash-2-DRXwetzV.js → trash-2-COVTeKHf.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D5785xcd.js → triangle-alert-Dc8CWEGx.js} +1 -1
- package/storybook-static/assets/{ui-vmPSPL8p.css → ui-BMhMvV6y.css} +1 -1
- package/storybook-static/assets/{uiClasses-CyX7wB6b.js → uiClasses-DiXn3Hc-.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-DfOi4e0X.js → useODataSelectBase-BllI2D0F.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BBSy4G6V.js → useODataTreeData-CNVWCnCt.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-BYa25rmI.js → usePickerQuery-C0ti4hti.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-CwgtrL5F.js → usePickerTriggerController-BSWvRSBy.js} +1 -1
- package/storybook-static/assets/{x-DvnP0o1b.js → x-BVvgKMRp.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/project.json +1 -1
- package/dist/chunks/date-input-Dr5QNVT6.js +0 -341
- package/storybook-static/assets/CheckBox-Dw4nDCv8.css +0 -1
- package/storybook-static/assets/iframe-B1M7f4Qn.js +0 -1
- package/storybook-static/assets/iframe-J8XUsZxh.css +0 -1
- /package/storybook-static/assets/{CheckBox.module-CM_GPl_E.js → CheckBox.module-BNQm6HXI.js} +0 -0
- /package/storybook-static/assets/{ui.module-Bh9yvZgk.js → ui.module-CiLQZm_L.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-BOYfiRbQ.js";import{n as r,t as i}from"./Text-BqKrUz4Q.js";import{a,b as o,y as s}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as c,t as l}from"./createControlledStoryRender-DHsyXc1B.js";import{r as u,t as d}from"./DateInput-BFUW6ZnL.js";import{n as f,t as p}from"./GridContainer-qDguE1HS.js";import{i as m,n as h,r as g,t as _}from"./PeriodSelect-DmogN2kp.js";var v=t({AllAllowedOptionsDisabled:()=>A,AlternativeLabels:()=>k,AutoSwitchByRange:()=>D,Controlled:()=>E,Disabled:()=>j,MonthAndYear:()=>O,__namedExportsOrder:()=>M,default:()=>w});function y(e){return e!==void 0&&o(e)?e:null}var b,x,S,C,w,T,E,D,O,k,A,j,M;function N(){return(N=e((()=>{s(),u(),c(),f(),r(),m(),h(),b=n(),{fn:x}=__STORYBOOK_MODULE_TEST__,S=[new Date(2026,2,1,0,0,0),new Date(2026,2,14,23,59,59)],C=[new Date(2026,0,1,0,0,0),new Date(2026,4,20,23,59,59)],w={title:`Shared/UI/PeriodSelect`,component:_,args:{label:`Период детализации`,description:`Выберите уровень группировки дат.`,placeholder:`Выберите период`,value:`day`,onChange:x(),presetIds:g,dateRange:S,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:g},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:g},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`]}}},T=l((e,t)=>{let n=y(e.dateRange),r=a(e.dateRange??null);return(0,b.jsxs)(p,{gap:`md`,children:[(0,b.jsx)(_,{...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)(i,{as:`p`,color:`secondary`,"aria-live":`polite`,children:[`Выбрано: `,(0,b.jsx)(i,{as:`code`,children:e.value??`не выбрано`}),`. Дней в диапазоне:`,` `,(0,b.jsx)(i,{as:`code`,children:r??`не задано`}),`.`]})]})}),E={name:`Контролируемый выбор`,render:T},D={name:`Автопереключение по диапазону`,args:{value:`day`,dateRange:C,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:T},O={name:`Только месяцы и годы`,args:{value:`month`,presetIds:[`month`,`year`]},render:T},k={name:`Альтернативные подписи`,args:{value:`month`,labels:{day:`за день`,week:`за неделю`,month:`за месяц`,year:`за год`}},render:T},A={name:`Все разрешенные варианты недоступны`,args:{value:`day`,presetIds:[`day`,`week`],dateRange:C,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:T},j={name:`Заблокированный контрол`,args:{disabled:!0,value:`week`}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
name: "Контролируемый выбор",
|
|
3
3
|
render: renderPeriodSelectStory
|
|
4
4
|
}`,...E.parameters?.docs?.source},description:{story:"Контролируемый сценарий синхронизирует `value` и `dateRange` через Storybook args.",...E.parameters?.docs?.description}}},D.parameters={...D.parameters,docs:{...D.parameters?.docs,source:{originalSource:`{
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{n,t as r}from"./Grid-BCzygAqy.js";import{d as i,f as a}from"./usePickerTriggerController-BSWvRSBy.js";function o({onSelectAll:e,onDeselectAll:t,selectAllButtonRef:n}){return(0,s.jsxs)(r.Container,{gap:`xs`,templateColumns:`1fr 1fr`,children:[(0,s.jsx)(`button`,{ref:n,type:`button`,className:i.selectionActionButton,onClick:e,"data-ui":`picker-select-all`,"data-action":`select-all`,children:`Выбрать все`}),(0,s.jsx)(`button`,{type:`button`,className:i.selectionActionButton,onClick:t,"data-ui":`picker-deselect-all`,"data-action":`deselect-all`,children:`Снять выбор`})]})}var s;function c(){return(c=e((()=>{n(),a(),s=t(),o.__docgenInfo={description:`Общая панель массовых действий для picker-компонентов с множественным выбором.
|
|
2
2
|
Компонент не знает формат значения и делегирует изменение владельцу selection-модели.`,methods:[],displayName:`PickerSelectionToolbar`,props:{onSelectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onDeselectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},selectAllButtonRef:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLButtonElement`}],raw:`Ref<HTMLButtonElement>`},description:``}}}})))()}export{c as n,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t,t as n}from"./chevron-down-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t,t as n}from"./chevron-down-B5gF19ie.js";import{n as r}from"./iframe-BOYfiRbQ.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./ui.module-CiLQZm_L.js";function c({open:e,disabled:t,children:r,onToggleMouseDown:a,onToggleClick:s,openAriaLabel:c=`Открыть список`,closeAriaLabel:u=`Закрыть список`}){return(0,l.jsxs)(`div`,{className:o.uiToggleButtonContainer,"data-disabled":t||void 0,children:[r,(0,l.jsx)(`div`,{className:o.uiButtonSeparator}),(0,l.jsx)(`button`,{type:`button`,"aria-label":e?u:c,className:o.uiToggleButton,onMouseDown:a,onClick:s,children:(0,l.jsx)(n,{className:i(o.uiToggleIcon,e&&o.uiToggleIconOpen)})})]})}var l;function u(){return(u=e((()=>{a(),t(),s(),l=r(),c.__docgenInfo={description:``,methods:[],displayName:`PickerTriggerActions`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},children:{required:!1,tsType:{name:`ReactNode`},description:``},onToggleMouseDown:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(event: MouseEvent<HTMLButtonElement>) => void`,signature:{arguments:[{type:{name:`MouseEvent`,elements:[{name:`HTMLButtonElement`}],raw:`MouseEvent<HTMLButtonElement>`},name:`event`}],return:{name:`void`}}},description:``},onToggleClick:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},openAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Открыть список"`,computed:!1}},closeAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Закрыть список"`,computed:!1}}}}})))()}export{u as n,c as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DFQ7gHL7.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Popover.stories-jhxw-37b.js";function y(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(u,{children:`Popover`}),`
|
|
3
3
|
`,(0,x.jsx)(o,{children:`Всплывающий контейнер, привязанный к trigger-элементу и поддерживающий управляемое открытие`}),`
|
|
4
4
|
`,(0,x.jsx)(t.p,{children:`Popover уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-BOYfiRbQ.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{a as o,d as s,g as c,l,m as u,n as d,p as f,r as p}from"./floating-ui.react-DaDI6aL_.js";import{a as m,i as h,n as g,r as _}from"./dom-B3G_GtJw.js";import{i as v,r as y}from"./FloatingPopover-Dt0czWS7.js";import{n as b}from"./error-BZrNlEUO.js";var x,S,C,w;function T(){return(T=e((()=>{x=`JK2Y7t`,S=`_5QtpCJ`,C=`hZuysP`,w={popover:x,primary:S,secondary:C}})))()}function E(){let e=(0,D.useContext)(O);if(!e)throw b({hookName:`usePopoverContext`,providerName:`Popover`});return e}var D,O;function k(){return(k=e((()=>{D=n(),O=(0,D.createContext)(null)})))()}var A,j,M;function N(){return(N=e((()=>{A=t(n(),1),p(),_(),a(),v(),T(),k(),j=r(),M=({children:e,onClose:t,closeOnOutside:n=!0,closeOnEscape:r=!0,disableOutsideClick:a=!1,background:o=`secondary`})=>{let{open:s,setOpen:c,refs:l,floatingStyles:u,middlewareData:f,placement:p,arrowRef:_}=E(),v=(0,A.useRef)(null),b=(0,A.useCallback)(e=>{v.current=e,l.setFloating(e)},[l]),x=m({active:s,initialFocus:`container`,restoreFocus:!0,containerRef:v}),S=(0,A.useCallback)(()=>{s&&(c(!1),t?.())},[c,t,s]);g({active:s,enabled:r,onDismiss:S,containerRef:x});let C=(0,A.useCallback)(()=>{!s||a||n&&S()},[s,a,n,S]);return h([l.floating,l.reference],C),s?(0,j.jsx)(d,{children:(0,j.jsxs)(`div`,{ref:b,style:u,className:i(w.popover,w[o]),role:`dialog`,"aria-modal":`true`,tabIndex:-1,children:[typeof e==`function`?e({setClose:S}):e,(0,j.jsx)(y,{ref:_,placement:p,middlewareData:f})]})}):null},M.__docgenInfo={description:`Содержимое Popover, отображаемое в портале.`,methods:[],displayName:`PopoverContent`,props:{children:{required:!0,tsType:{name:`union`,raw:`React.ReactNode | ((ctx: { setClose: () => void }) => React.ReactNode)`,elements:[{name:`ReactReactNode`,raw:`React.ReactNode`},{name:`unknown`}]},description:``},onClose:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},closeOnOutside:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},closeOnEscape:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},disableOutsideClick:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},background:{required:!1,tsType:{name:`union`,raw:`"primary" | "secondary"`,elements:[{name:`literal`,value:`"primary"`},{name:`literal`,value:`"secondary"`}]},description:``,defaultValue:{value:`"secondary"`,computed:!1}}}}})))()}var P,F;function I(){return(I=e((()=>{P=n(),k(),F=({passive:e,children:t})=>{let{open:n,setOpen:r,refs:i}=E(),a=(0,P.useCallback)(n=>{t.props.onClick&&t.props.onClick(n),!n.defaultPrevented&&(n.preventDefault(),n.stopPropagation(),!e&&r(e=>!e))},[t,r,e]);return(0,P.cloneElement)(t,{ref:i.setReference,"aria-expanded":n,onClick:a})},F.__docgenInfo={description:``,methods:[],displayName:`PopoverTrigger`,props:{passive:{required:!1,tsType:{name:`literal`,value:`true`},description:``},children:{required:!0,tsType:{name:`ReactReactElement`,raw:`React.ReactElement<React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }>`,elements:[{name:`intersection`,raw:`React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }`,elements:[{name:`ReactHTMLAttributes`,raw:`React.HTMLAttributes<Element>`,elements:[{name:`Element`}]},{name:`signature`,type:`object`,raw:`{ ref?: React.Ref<Element> }`,signature:{properties:[{key:`ref`,value:{name:`ReactRef`,raw:`React.Ref<Element>`,elements:[{name:`Element`}],required:!1}}]}}]}]},description:``}}}})))()}var L,R,z,B;function V(){return(V=e((()=>{L=t(n(),1),p(),N(),k(),I(),R=r(),z=({children:e,open:t,defaultOpen:n,onOpenChange:r,placement:i=`bottom`})=>{let[a,d]=(0,L.useState)(n??!1),p=t!==void 0,m=p?t:a,h=(0,L.useCallback)(e=>{let t=typeof e==`function`?e(m):e;p||d(t),r?.(t)},[p,r,m]),g=(0,L.useRef)(null),{refs:_,floatingStyles:v,middlewareData:y,placement:b}=o({open:m,onOpenChange:h,placement:i,middleware:[f(8),s(),u({padding:16}),l({element:g.current})],whileElementsMounted:c});return(0,R.jsx)(O.Provider,{value:{open:m,setOpen:h,refs:_,floatingStyles:v,placement:b,middlewareData:y,arrowRef:g},children:e})},B=Object.assign(z,{Trigger:F,Content:M}),z.__docgenInfo={description:`Контролируемый Popover.
|
|
2
2
|
Используется в связке с Popover.Trigger и Popover.Content.`,methods:[],displayName:`PopoverRoot`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},placement:{required:!1,tsType:{name:`Placement`},description:``,defaultValue:{value:`"bottom"`,computed:!1}},open:{required:!1,tsType:{name:`boolean`},description:``},defaultOpen:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``}}}})))()}export{V as n,B as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-BOYfiRbQ.js";import{n as i,t as a}from"./Popover-DYoRYOJQ.js";import{n as o,t as s}from"./Button-CS7C3s7J.js";import{n as c,t as l}from"./createControlledStoryRender-DHsyXc1B.js";import{c as u,t as d}from"./Input-Dmum9ojv.js";var f=t({AnchorPlacement:()=>w,Controlled:()=>C,Default:()=>S,WithInteractiveContent:()=>T,__namedExportsOrder:()=>E,default:()=>x});function p({args:e,updateArgs:t,trigger:n,children:r}){return(0,_.jsxs)(a,{placement:e.placement,open:e.open,defaultOpen:e.defaultOpen,onOpenChange:n=>{e.onOpenChange?.(n),t({open:n})},children:[(0,_.jsx)(a.Trigger,{passive:e.passive,children:n(e.open===!0)}),(0,_.jsx)(a.Content,{onClose:()=>e.onClose?.(),closeOnOutside:e.closeOnOutside,closeOnEscape:e.closeOnEscape,disableOutsideClick:e.disableOutsideClick,background:e.background,children:r})]})}function m(e,t){return l((n,r)=>(0,_.jsx)(p,{args:n,updateArgs:r,trigger:e,children:t}))}function h({args:e,updateArgs:t}){let[n,r]=(0,g.useState)(``);return(0,_.jsx)(p,{args:e,updateArgs:t,trigger:()=>(0,_.jsx)(`button`,{type:`button`,children:`Форма`}),children:e=>(0,_.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),e.setClose()},style:{display:`flex`,flexDirection:`column`,gap:8,padding:12,width:180},children:[(0,_.jsx)(d,{label:`Имя`,placeholder:`Введите имя`,value:n,onChange:r}),(0,_.jsx)(s,{children:`Отправить`})]})})}var g,_,v,y,b,x,S,C,w,T,E;function D(){return(D=e((()=>{g=n(),o(),c(),u(),i(),_=r(),{useArgs:v}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:y}=__STORYBOOK_MODULE_TEST__,b=[`top`,`top-start`,`top-end`,`right`,`right-start`,`right-end`,`bottom`,`bottom-start`,`bottom-end`,`left`,`left-start`,`left-end`],x={title:`Shared/UI/Popover`,component:a,args:{children:null,placement:`bottom`,open:!1,defaultOpen:!1,onOpenChange:y(),onClose:y(),closeOnOutside:!0,closeOnEscape:!0,disableOutsideClick:!1,background:`secondary`},parameters:{atomicCanvas:!0,layout:`centered`},argTypes:{children:{description:"Композиция из `Popover.Trigger` и `Popover.Content`.",control:!1},placement:{description:`Предпочтительное положение панели относительно trigger.`,control:`select`,options:b},open:{description:`Контролируемая видимость popover.`,control:`boolean`},defaultOpen:{description:`Начальная видимость в uncontrolled-режиме.`,control:`boolean`},onOpenChange:{description:`Вызывается при открытии и закрытии popover.`,control:!1},passive:{description:`Оставляет trigger пассивным: он получает reference, но не переключает popover по клику.`,control:`boolean`},onClose:{description:"Вызывается после закрытия Content через Escape, клик снаружи или `setClose`.",control:!1},closeOnOutside:{description:`Закрывает Content по клику снаружи.`,control:`boolean`},closeOnEscape:{description:`Закрывает Content по клавише Escape.`,control:`boolean`},disableOutsideClick:{description:`Игнорирует клики снаружи Content.`,control:`boolean`},background:{description:`Тема фона Content.`,control:`inline-radio`,options:[`primary`,`secondary`]}}},S={render:m(()=>(0,_.jsx)(`button`,{type:`button`,children:`Открыть`}),e=>(0,_.jsxs)(`div`,{style:{padding:12,maxWidth:160},children:[(0,_.jsx)(`p`,{children:`Пример простого поповера`}),(0,_.jsx)(`button`,{type:`button`,onClick:e.setClose,children:`Закрыть`})]}))},C={render:m(e=>(0,_.jsx)(`button`,{type:`button`,children:e?`Закрыть`:`Открыть`}),(0,_.jsx)(`div`,{style:{padding:12},children:`Контролируемый режим`}))},w={render:function(){let[e,t]=v(),n=(n,r)=>{e.onOpenChange?.(n),t(n?{open:!0,placement:r}:{open:!1})};return(0,_.jsx)(`div`,{style:{display:`flex`,gap:32,flexWrap:`wrap`,justifyContent:`center`},children:b.map(t=>(0,_.jsxs)(a,{placement:t,open:e.open===!0&&e.placement===t,defaultOpen:e.defaultOpen,onOpenChange:e=>n(e,t),children:[(0,_.jsx)(a.Trigger,{passive:e.passive,children:(0,_.jsx)(`button`,{type:`button`,children:t})}),(0,_.jsx)(a.Content,{onClose:()=>e.onClose?.(),closeOnOutside:e.closeOnOutside,closeOnEscape:e.closeOnEscape,disableOutsideClick:e.disableOutsideClick,background:e.background,children:(0,_.jsx)(`div`,{style:{padding:8},children:t})})]},t))})}},T={render:l((e,t)=>(0,_.jsx)(h,{args:e,updateArgs:t}))},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: createPopoverStoryRender(() => <button type="button">Открыть</button>, ctx => <div style={{
|
|
3
3
|
padding: 12,
|
|
4
4
|
maxWidth: 160
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DFQ7gHL7.js";import{n as p,r as m,t as h}from"./PresetRangeDateInput.stories-BLrQFysM.js";function g(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,v.jsx)(u,{children:`PresetRangeDateInput`}),`
|
|
3
3
|
`,(0,v.jsx)(o,{children:`Составной контрол диапазона дат с синхронизацией ручного ввода и готовых пресетов`}),`
|
|
4
4
|
`,(0,v.jsx)(t.p,{children:`PresetRangeDateInput уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-BOYfiRbQ.js";import{n as r,t as i}from"./FlexContainer-LmZIdhq2.js";import{r as a,t as o}from"./DateInput-BFUW6ZnL.js";import{a as s,c,l,n as u,o as d,r as f,s as p,t as m}from"./DateRangePresetSelect-D6xM7__Q.js";function h(e){return e??`__empty__`}function g({value:e,onChange:t,presetId:n,onPresetIdChange:r,referenceDate:a,presetIds:s,presetOptions:u,presetLabel:g,presetDescription:y,presetPlaceholder:b=`Выберите пресет диапазона`,presetDisabled:x,...S}){let[C]=(0,_.useState)(()=>new Date),w=a??C,T=(0,_.useMemo)(()=>u??c(d(s,f)),[s,u]),E=e??null,D=(0,_.useMemo)(()=>p(E,w,T),[E,T,w]),O=n??D??void 0,k=(0,_.useRef)(``),A=(0,_.useCallback)(e=>{if(!r)return;let t=h(e);t!==k.current&&(k.current=t,r(e))},[r]),j=e=>{let n=l(e,w,T);if(!n){A(null);return}A(n.id),t(n.range)},M=e=>{t(e),A(p(e,w,T))};return(0,v.jsxs)(i,{gap:`sm`,align:`end`,children:[(0,v.jsx)(m,{size:S.size,label:g,description:y,placeholder:b,disabled:x??S.disabled,value:O,onChange:j,options:T,referenceDate:w}),(0,v.jsx)(o,{...S,value:E,onChange:M})]})}var _,v;function y(){return(y=e((()=>{_=t(),a(),u(),s(),r(),v=n(),g.__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`]}})))()}export{y as n,g as t};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{a as n,i as r,r as i}from"./CalendarView-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{a as n,i as r,r as i}from"./CalendarView-CroQMfFX.js";import{n as a}from"./iframe-BOYfiRbQ.js";import{n as o,t as s}from"./Text-BqKrUz4Q.js";import{n as c,t as l}from"./FlexContainer-LmZIdhq2.js";import{n as u,t as d}from"./createControlledStoryRender-DHsyXc1B.js";import{a as f,r as p}from"./DateRangePresetSelect-D6xM7__Q.js";import{n as m,t as h}from"./PresetRangeDateInput-5o-VfEMw.js";var g=t({Default:()=>x,__namedExportsOrder:()=>S,default:()=>y}),_,v,y,b,x,S;function C(){return(C=e((()=>{n(),f(),u(),c(),o(),m(),_=a(),{fn:v}=__STORYBOOK_MODULE_TEST__,y={title:`Shared/UI/PresetRangeDateInput`,component:h,args:{label:`Диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,10,0,0,0),new Date(2026,2,10,23,59,59)],onChange:v(),presetId:`today`,onPresetIdChange:v(),referenceDate:new Date(2026,2,10,12,0,0),presetLabel:`Быстрый диапазон`,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{presetId:{description:"Контролируемый ID выбранного быстрого пресета. `null` снимает внешний выбор.",control:`select`,options:[...p,null]},onPresetIdChange:{description:`Вызывается, когда выбор пресета меняется из-за preset или ручного диапазона.`,control:!1},referenceDate:{description:`Опорная дата для вычисления встроенных быстрых диапазонов.`,control:`date`},presetIds:{description:"Разрешённые встроенные ID пресетов, если не передан `presetOptions`.",control:`check`,options:p},presetOptions:{description:`Кастомный каталог быстрых диапазонов с функциями вычисления.`,control:!1},presetLabel:{description:`Заголовок поля быстрого выбора.`,control:`text`},presetDescription:{description:`Описание под полем быстрого выбора.`,control:`text`},presetPlaceholder:{description:`Текст до выбора быстрого диапазона.`,control:`text`},presetDisabled:{description:`Блокирует только выбор быстрого пресета.`,control:`boolean`},label:{description:`Заголовок ручного поля диапазона.`,control:`text`},description:{description:`Описание ручного поля диапазона.`,control:`text`},placeholder:{description:`Текст до выбора ручного диапазона.`,control:`text`},value:{description:`Текущий ручной диапазон дат.`,control:!1},onChange:{description:`Вызывается при изменении ручного диапазона или выборе пресета.`,control:!1},error:{description:`Текст внешней ошибки ручного поля.`,control:`text`},onClearError:{description:`Сбрасывает внешнюю ошибку после ввода или выбора.`,control:!1},minDate:{description:`Минимально доступная дата ручного диапазона.`,control:`date`},maxDate:{description:`Максимально доступная дата ручного диапазона.`,control:`date`},datePreset:{description:`Пресет форматирования выбранного ручного диапазона.`,control:`text`},datePickerLevel:{description:`Минимальный уровень навигации календаря ручного поля.`,control:`select`,options:[`day`,`month`,`year`]},selectionMode:{description:`Размер периода, который выбирает ручное поле.`,control:`select`,options:i},weekEndDay:{description:`Последний включённый день недели в режиме week.`,control:`select`,options:r},allowSelectionModeChange:{description:`Показывает runtime-переключатель размера периода.`,control:`boolean`},selectionModeOptions:{description:`Ограничивает доступные режимы в runtime-переключателе.`,control:`check`,options:i},onSelectionModeChange:{description:`Вызывается при runtime-смене размера периода.`,control:!1},disabled:{description:"Блокирует ручное поле и, если `presetDisabled` не задан, быстрый выбор.",control:`boolean`},size:{description:`Размер обоих полей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},b=d((e,t)=>(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(l,{gap:`sm`,align:`end`,children:(0,_.jsx)(h,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onPresetIdChange:n=>{e.onPresetIdChange?.(n),t({presetId:n})},onSelectionModeChange:n=>{e.onSelectionModeChange?.(n),t({selectionMode:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})}),(0,_.jsxs)(s,{as:`p`,className:`marginBlockSm`,children:[`Активный presetId: `,(0,_.jsx)(s,{as:`code`,children:e.presetId??`null`})]})]})),x={render:b},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderPresetRangeDateInputStory
|
|
3
3
|
}`,...x.parameters?.docs?.source},description:{story:`Демонстрирует совместную работу пресета и ручного диапазона.`,...x.parameters?.docs?.description}}},S=[`Default`]})))()}export{g as n,C as r,x as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{n,t as r}from"./Select-C8NwIhWM.js";function i(e,t,n=[]){if(!Array.isArray(e))return[...n];let r=[];for(let n of e)!t(n)||r.includes(n)||r.push(n);return r}function a(e,t){let n=new Map(t.map(e=>[e.id,e])),r=[],i=new Set;for(let t of e){if(i.has(t))continue;let e=n.get(t);e&&(r.push(e),i.add(t))}return r}function o(e,t){return e?t.find(t=>t.id===e)??null:null}function s(){return(s=e((()=>{})))()}function c({options:e,value:t,onChange:n,getOptionDisabled:i,getOptionCode:a,getOptionAriaLabel:s,renderOption:c,renderValue:u,className:d,buttonClassName:f,optionsClassName:p,clearable:m,...h}){let g=o(t,e)??void 0;return(0,l.jsx)(r,{...h,options:e,value:g,onChange:e=>n(e?.id),getOptionKey:e=>e.id,getOptionLabel:e=>e.label,getOptionCode:a,getOptionDisabled:i,getOptionAriaLabel:s,renderOption:c,renderValue:u,className:d,buttonClassName:f,optionsClassName:p,clearable:m})}var l;function u(){return(u=e((()=>{n(),l=t(),c.__docgenInfo={description:"Базовый Select для пресетов с контрактом `id/label`.",methods:[],displayName:`PresetSelect`,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:!0,tsType:{name:`unknown`},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},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:`{
|
|
2
2
|
active: boolean;
|
|
3
3
|
selected: boolean;
|
|
4
4
|
disabled: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{i as r,n as i,r as a}from"./iframe-
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{i as r,n as i,r as a}from"./iframe-BOYfiRbQ.js";import{a as o,i as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./ui.module-CiLQZm_L.js";import{i as u,r as d}from"./uiClasses-DiXn3Hc-.js";import{n as f,t as p}from"./CheckBox.module-BNQm6HXI.js";var m,h;function g(){return(g=e((()=>{r(),m=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],h=a(`circle`,m)})))()}var _,v;function y(){return(y=e((()=>{_=`gu8UMB`,v={radioInput:_}})))()}var b,x,S;function C(){return(C=e((()=>{b=t(n(),1),s(),g(),f(),l(),u(),y(),x=i(),S=({label:e,description:t,placeholder:n,disabled:r,size:i,className:a,onChange:s,value:l,id:u,tone:f=`neutral`,...m})=>{let g=(0,b.useId)(),_=u??g,y=t?`${_}-description`:void 0,S=e??n,C=l??!1;return(0,x.jsxs)(`div`,{className:o(c.uiElement,i&&c.uiSizable,i&&c[i],r&&c.disabled,a),children:[(0,x.jsxs)(`div`,{className:p.row,children:[(0,x.jsxs)(`div`,{className:o(p.wrapper,d(f)),children:[(0,x.jsx)(`input`,{...m,id:_,type:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-describedby":y,className:o(c.uiSelectionControl,p.input,v.radioInput),onChange:e=>s?.(e.currentTarget.checked)}),(0,x.jsx)(`div`,{className:o(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,x.jsx)(h,{fill:`currentColor`})})]}),S&&(0,x.jsx)(`label`,{htmlFor:_,className:c.uiLabel,children:S})]}),t&&(0,x.jsx)(`p`,{id:y,className:c.uiDescription,children:t})]})},S.__docgenInfo={description:'Компонент радиокнопки для выбора одного варианта.\nНативный `input[type="radio"]` обеспечивает взаимоисключение элементов с\nобщим `name`, а controlled API продолжает публиковать булево состояние.\nПоддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.',methods:[],displayName:`RadioButton`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})))()}export{C as n,S as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DFQ7gHL7.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioButton.stories-CnjoSTqx.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`RadioButton`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Одиночная radio-кнопка для ручной сборки наборов выбора и специальных компоновок`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`RadioButton уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
package/storybook-static/assets/{RadioButton.stories-6q7CeUZY.js → RadioButton.stories-CnjoSTqx.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./RadioButton-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./RadioButton-BmDJRjUd.js";import{n as a}from"./iframe-BOYfiRbQ.js";import{n as o,t as s}from"./createControlledStoryRender-DHsyXc1B.js";var c=t({Controlled:()=>p,Disabled:()=>h,Group:()=>m,__namedExportsOrder:()=>g,default:()=>f}),l,u,d,f,p,m,h,g;function _(){return(_=e((()=>{l=n(),o(),r(),u=a(),d=s((e,t)=>(0,u.jsx)(i,{...e,value:e.value??!1,onChange:n=>{e.onChange?.(n),t({value:n})}})),f={title:`Shared/UI/RadioButton`,component:i,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи радиокнопки.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Признак выбранного состояния.`,control:`boolean`},onChange:{description:`Вызывается при изменении выбранности.`,control:!1},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер визуального контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон радиокнопки.`,control:`inline-radio`,options:[`neutral`,`brand`,`error`,`warning`,`success`,`info`]}}},p={render:d,args:{label:`Выбрать опцию`,description:`Одиночная радиокнопка в controlled-режиме.`,value:!1,tone:`neutral`}},m={render:()=>{let[e,t]=(0,l.useState)(`email`);return(0,u.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Канал уведомлений`,style:{display:`grid`,gap:12},children:[(0,u.jsx)(i,{name:`notification-channel`,label:`Email`,value:e===`email`,onChange:e=>e&&t(`email`),tone:`info`}),(0,u.jsx)(i,{name:`notification-channel`,label:`SMS`,value:e===`sms`,onChange:e=>e&&t(`sms`),tone:`info`})]})},args:{value:void 0}},h={render:d,args:{label:`Недоступная опция`,description:`Заблокировано политикой конфигурации.`,value:!0,disabled:!0,tone:`neutral`}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderRadioButtonStory,
|
|
3
3
|
args: {
|
|
4
4
|
label: "Выбрать опцию",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DFQ7gHL7.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioGroup.stories-D2RkFaPs.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`RadioGroup`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Группа взаимоисключающих опций с поддержкой горизонтальной и вертикальной раскладки`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`RadioGroup уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-BOYfiRbQ.js";import{a as i,i as a,n as o,o as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./ui.module-CiLQZm_L.js";var u,d,f,p,m,h,g;function _(){return(_=e((()=>{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;function C(){return(C=e((()=>{b=t(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};
|
package/storybook-static/assets/{RadioGroup.stories-Bwv8Bgn8.js → RadioGroup.stories-D2RkFaPs.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-BOYfiRbQ.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./RadioGroup-DKQukpG2.js";var s=t({Controlled:()=>g,Disabled:()=>v,Vertical:()=>_,__namedExportsOrder:()=>y,default:()=>h});function c(e){return(0,d.jsx)(o,{...e})}function l({args:e,updateArgs:t,options:n,showValue:r=!1}){return(0,d.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,d.jsx)(c,{...e,onChange:n=>{e.onChange?.(n),t({value:n})},children:n.map(e=>(0,d.jsx)(o.Option,{value:e.value,label:e.label,description:e.description},e.value))}),r&&(0,d.jsxs)(`div`,{children:[`Выбрано: `,e.value??`не выбрано`]})]})}function u(e,t=!1){return i((n,r)=>(0,d.jsx)(l,{args:n,updateArgs:r,options:e,showValue:t}))}var d,f,p,m,h,g,_,v,y;function b(){return(b=e((()=>{r(),a(),d=n(),f=[{value:`email`,label:`Email`,description:`Письма на корпоративную почту`},{value:`sms`,label:`SMS`,description:`Сообщения на телефон`},{value:`push`,label:`Push`,description:`Уведомления в приложении`}],p=[{value:`draft`,label:`Черновик`},{value:`review`,label:`На согласовании`},{value:`approved`,label:`Утвержден`}],m=[{value:`yes`,label:`Да`},{value:`no`,label:`Нет`}],h={title:`Shared/UI/RadioGroup`,component:c,args:{value:`email`,onChange:()=>{},orientation:`horizontal`,label:`Канал уведомлений`,description:`Выберите основной канал доставки`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{description:`Текущее выбранное значение.`,control:`text`},onChange:{description:`Вызывается при смене выбранной опции.`,control:!1},label:{description:`Заголовок группы опций.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},disabled:{description:`Блокирует выбор опций.`,control:`boolean`},noWrap:{description:`Запрещает перенос опций на новую строку.`,control:`boolean`},orientation:{description:`Ориентация расположения опций.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},children:{description:"Элементы `RadioGroup.Option` внутри группы.",control:!1}}},g={render:u(f,!0),args:{}},_={render:u(p),args:{orientation:`vertical`,label:`Статус документа`,value:`draft`}},v={render:u(m),args:{disabled:!0,value:`yes`}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: createRadioGroupStoryRender(notificationOptions, true),
|
|
3
3
|
args: {}
|
|
4
4
|
}`,...g.parameters?.docs?.source}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-BOYfiRbQ.js";import{a as r,i}from"./utils-DUM89eIj.js";var a,o,s,c;function l(){return(l=e((()=>{a=t(),i(),o=n(),s=(0,a.forwardRef)(({children:e,height:t,stable:n,overscroll:i,className:a},s)=>(0,o.jsx)(`div`,{ref:s,className:r(`scrollable`,n&&`stable`,i&&`overscroll`,a),style:{height:t},children:e})),c=(0,a.forwardRef)(({blockClassName:e,...t},n)=>(0,o.jsx)(`div`,{className:r(e,`overflowHidden w100 h100`),children:(0,o.jsx)(s,{ref:n,...t})})),s.__docgenInfo={description:``,methods:[],displayName:`Scrollable`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`PropsWithChildren`]},c.__docgenInfo={description:``,methods:[],displayName:`ScrollableBlock`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``},blockClassName:{required:!1,tsType:{name:`string`},description:``}},composes:[`PropsWithChildren`]}})))()}export{l as n,s as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./check-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./check-CDGa2frI.js";import{n as i,t as a}from"./x-BVvgKMRp.js";import{n as o}from"./iframe-BOYfiRbQ.js";import{a as s,i as c}from"./utils-DUM89eIj.js";import{n as l,t as u}from"./ui.module-CiLQZm_L.js";import{c as d,g as f,h as ee,i as te,l as ne,n as re,r as p,s as ie,t as m,u as h}from"./usePickerTriggerController-BSWvRSBy.js";import{i as g,n as ae,r as oe,t as _}from"./usePickerQuery-C0ti4hti.js";import{n as v,t as se}from"./PickerTriggerActions-BurXeCTR.js";import{n as y,t as b}from"./usePickerDefaultFilter-Be420WNF.js";function x(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(Array.isArray(e)){let t=e.map(x).filter(e=>!!e);return t.length?t.join(` `):void 0}}function ce({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[x(t(e)),x(n?.(e)),x(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}function S(){return(S=e((()=>{})))()}function le(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 C,w,T;function E(){return(E=e((()=>{C=`aEEqH1`,w=`_4HQKa7`,T={inputWithOverlay:C,valueOverlay:w}})))()}function D(e){let{label:t,description:n,disabled:i,placeholder:o,size:c,options:u,value:d,onChange:f,getOptionKey:p,getOptionLabel:m,getOptionCode:h,getOptionDisabled:g,getOptionAriaLabel:_,getOptionGroup:v,getOptionClassName:b,renderOption:S,renderValue:C,className:w,buttonClassName:E,optionsClassName:D,optionsMaxWidth:A,optionsContentClassName:ue,searchable:j=!1,defaultFilter:M=!0,query:de,defaultQuery:fe,onQuery:pe,renderPopupHeader:me,emptyState:he,loadingState:ge,errorState:_e,placement:ve=`bottom-start`,clearable:N=!1}=e,P=f,F=(0,O.useRef)(null),[I,ye]=(0,O.useState)(!1),L=j?`search-single`:`display`,R=d===void 0?void 0:p(d),z=R===void 0?void 0:u.find(e=>p(e)===R)??d,{query:B,setQuery:V,resetQueryOnClose:be}=ae({query:de,defaultQuery:fe,onQuery:pe,triggerMode:L}),xe=e=>{I&&!e&&be&&V(``),ye(e)},Se=(0,O.useCallback)(e=>ce({option:e,getOptionLabel:m,getOptionCode:h,getOptionGroup:v}),[h,v,m]),H=y({options:u,query:B,enabled:j&&M,getSearchText:Se}),U=(0,O.useMemo)(()=>v?le(H,v):void 0,[v,H]),W=R===void 0?-1:H.findIndex(e=>p(e)===R),{activeIndex:Ce,context:we,floatingStyles:Te,getFloatingProps:Ee,setReference:De,setFloating:Oe,setOptionRef:ke,close:G,openList:Ae,toggleOpen:je,selectOption:Me,selectActiveOption:Ne,handleReferenceKeyDown:Pe,handleFloatingKeyDown:Fe,getOptionId:Ie,getActiveOptionId:K}=te({options:H,selectedIndex:W,open:I,onOpenChange:xe,getOptionDisabled:g,onSelect:P,disabled:i,placement:ve,triggerMode:L}),q=H.length>0,J=z===void 0?void 0:m(z),Y=z===void 0?void 0:C?C(z):J,Le=x(J),Re=z===void 0?void 0:x(h?.(z)),ze=x(Y)??Le??Re??(R===void 0?``:String(R)),X=j&&(I||B.length>0),Be=X?B:z===void 0?``:ze,Z=z!==void 0&&Y!==void 0&&x(Y)===void 0&&!X,Q=re({mode:L,open:I,currentQuery:B,hasDisplayValue:z!==void 0,inputRef:F,setQuery:V,openList:Ae,close:G,toggleOpen:je}),Ve=e=>{F.current=e},He=()=>{N&&P(void 0),V(``),G()},$=(e,t,n)=>{let i=p(t),a=R!==void 0&&i===R,o=n===Ce,c=g?.(t)??!1,u={active:o,selected:a,disabled:c};return(0,k.jsx)(`div`,{id:Ie(e,n),ref:e=>ke(n,e),role:`option`,"aria-selected":a,"aria-disabled":c||void 0,"aria-label":_?.(t),className:s(l.uiPopupOption,c&&l.disabled,o&&l.uiPopupOptionActive,a&&l.selected,b?.(t,u)),onClick:()=>Me(t),children:S?S(t,u):(0,k.jsxs)(k.Fragment,{children:[a?(0,k.jsx)(r,{className:l.uiPopupOptionIcon}):(0,k.jsx)(`span`,{className:l.uiPopupOptionIcon}),(0,k.jsx)(`div`,{className:l.uiOptionText,children:m(t)}),h&&(0,k.jsx)(`div`,{className:l.uiOptionCode,children:h(t)})]})},i)};return(0,k.jsx)(ee,{label:t,description:n,disabled:i,size:c,className:w,children:({controlId:e,labelId:n,describedBy:r})=>{let c=`${e}-listbox`;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(ie,{ref:Ve,rootRef:De,id:e,type:`text`,disabled:i,readOnly:!j,autoComplete:`off`,role:`combobox`,value:Be,placeholder:z===void 0||X?`${o??t??``} <${u.length}>`:void 0,"aria-labelledby":n,"aria-describedby":r,"aria-haspopup":`listbox`,"aria-expanded":I,"aria-controls":I?c:void 0,"aria-autocomplete":j?`list`:`none`,"aria-activedescendant":I?K(c):void 0,inputClassName:s(Z&&T.inputWithOverlay,E,`textOverflow`),overlay:Z?(0,k.jsx)(`div`,{className:T.valueOverlay,children:Y}):void 0,endAdornment:(0,k.jsx)(se,{open:I,disabled:i,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,children:N&&z!==void 0&&!i?(0,k.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(),He()},"aria-label":`Очистить выбор`,children:(0,k.jsx)(a,{})}):null}),onChange:e=>{j&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Pe(e),!e.defaultPrevented&&Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:Ne,enableSpaceActivation:!j})}}),(0,k.jsx)(ne,{open:I,context:we,floatingStyles:Te,listId:c,labelId:n,descriptionId:r,activeOptionId:q?K(c):void 0,setFloating:Oe,getFloatingProps:Ee,onKeyDown:Fe,className:s(l.uiPopupOptions,D),maxWidth:A,header:me,children:(0,k.jsx)(`div`,{className:s(ue,`h100 scrollable`),children:q?U?U.map((e,t)=>{let n=e.group?`${c}-group-${t}`:void 0,r=e.items.map(({option:e,index:t})=>$(c,e,t));return e.group?(0,k.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,k.jsx)(`div`,{id:n,className:l.uiPopupGroupLabel,children:e.group.label}),r]},`group-${String(e.group.key)}-${t}`):(0,k.jsx)(O.Fragment,{children:r},`options-${t}`)}):H.map((e,t)=>$(c,e,t)):(0,k.jsx)(oe,{emptyState:he,loadingState:ge,errorState:_e})})})]})}})}var O,k;function A(){return(A=e((()=>{O=t(),c(),n(),i(),f(),h(),g(),v(),d(),b(),p(),_(),m(),u(),S(),E(),k=o(),D.__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
2
|
readonly key: SelectOptionKey;
|
|
3
3
|
readonly label: ReactNode;
|
|
4
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:`{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DFQ7gHL7.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Select.stories-a2seNrPn.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,C.jsx)(u,{children:`Select`}),`
|
|
3
3
|
`,(0,C.jsx)(o,{children:`Getter-based select для примитивов и сложных объектных option`}),`
|
|
4
4
|
`,(0,C.jsx)(t.p,{children:`Select уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-BOYfiRbQ.js";import{n as i,t as a}from"./Select-C8NwIhWM.js";var o=t({ControlledObjects:()=>m,CustomOptionLayout:()=>v,Disabled:()=>y,GroupedOptions:()=>_,Placeholder:()=>g,PrimitiveOptions:()=>h,__namedExportsOrder:()=>b,default:()=>p}),s,c,l,u,d,f,p,m,h,g,_,v,y,b;function x(){return(x=e((()=>{s=n(),i(),c=r(),{useArgs:l}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:u}=__STORYBOOK_MODULE_TEST__,d=[{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:`Операционный блок`}],f=[`Новый`,`В работе`,`Завершён`,`Архив`],p={title:`Shared/UI/Select`,component:a,args:{label:`Подразделение`,description:`Выберите подразделение из списка.`,placeholder:`Не выбрано`,value:void 0,options:d,onChange:u(),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},optionsMaxWidth:{description:`Максимальная ширина выпадающего списка в любом допустимом CSS-формате.`,control:`text`},buttonClassName:{description:`Класс trigger-кнопки Select без изменения корневого контейнера.`,control:`text`},optionsClassName:{description:`Класс popup со списком option.`,control:`text`},optionsContentClassName:{description:`Класс области содержимого popup, например для особой плотности списка.`,control:`text`},searchable:{description:`Включает поиск по option в trigger-поле.`,control:`boolean`},query:{description:`Контролируемый текст поиска.`,control:`text`},defaultQuery:{description:`Начальный текст поиска в uncontrolled-режиме.`,control:`text`},onQuery:{description:`Вызывается при вводе поисковой строки.`,control:!1},defaultFilter:{description:`Включает встроенную фильтрацию option.`,control:`boolean`},renderPopupHeader:{description:`Дополнительное содержимое над списком option.`,control:!1},emptyState:{description:`Содержимое при пустом списке option.`,control:!1},loadingState:{description:`Содержимое при загрузке option.`,control:!1},errorState:{description:`Содержимое при ошибке загрузки option.`,control:!1},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`},clearable:{description:`Показывает действие очистки выбранной option.`,control:`boolean`}}},m={name:`Объекты`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??d[1],onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:d[1]}},h={name:`Примитивы`,render:()=>{let[e,t]=(0,s.useState)(f[1]);return(0,c.jsx)(a,{label:`Статус`,description:`Пример использования низкоуровневого Select со строковыми значениями.`,placeholder:`Выберите статус`,options:f,value:e,onChange:t,getOptionKey:e=>e,getOptionLabel:e=>e,size:`md`})}},g={render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}},_={name:`Группированные опции`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,onChange:n=>{e.onChange(n),t({value:n})},getOptionGroup:e=>({key:e.direction,label:e.direction}),optionsMaxWidth:`40rem`})}},v={name:`Кастомный рендер`,render:function(e){let[,t]=l();return(0,c.jsx)(a,{...e,value:e.value??d[0],onChange:n=>{e.onChange(n),t({value:n})},renderValue:e=>`${e.code} · ${e.name}`,renderOption:(e,t)=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`div`,{className:`flexEllipsis`,children:[(0,c.jsx)(`div`,{children:e.name}),(0,c.jsx)(`div`,{className:`fontSizeSm content2`,children:e.manager})]}),(0,c.jsx)(`div`,{style:{opacity:t.selected?1:.5},children:e.code})]})})}},y={args:{disabled:!0,value:d[0]}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
name: "Объекты",
|
|
3
3
|
render: function Render(args) {
|
|
4
4
|
const [, updateArgs] = useArgs<SelectProps<DepartmentOption>>();
|
package/storybook-static/assets/{SelectOptionContent-C2DjqaM0.js → SelectOptionContent-ZSxvUFLm.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{a as n,i as r}from"./utils-DUM89eIj.js";import{n as i,t as a}from"./ui.module-CiLQZm_L.js";var o,s;function c(){return(c=e((()=>{o=t(),s=({text:e,highlight:t})=>t?e.split(RegExp(`(${t})`,`gi`)).map((e,n)=>e.toLowerCase()===t.toLowerCase()?(0,o.jsx)(`mark`,{children:e},n):e):e})))()}function l({label:e,code:t,highlight:r,labelClassName:a,codeClassName:o}){return(0,u.jsxs)(`div`,{className:i.uiOptionBase,children:[(0,u.jsx)(`div`,{className:n(i.uiOptionText,`flexEllipsis`,a),children:(0,u.jsx)(s,{text:e,highlight:r})}),t&&(0,u.jsx)(`div`,{className:n(i.uiOptionCode,o),children:(0,u.jsx)(s,{text:t,highlight:r})})]})}var u;function d(){return(d=e((()=>{r(),c(),a(),u=t(),l.__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{d as n,l as t};
|
package/storybook-static/assets/{SerializableSelect-CoVoXwJS.js → SerializableSelect-4Goej9W_.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DFQ7gHL7.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./SerializableSelect.stories-BkCW3jp4.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`SerializableSelect`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:`Select для сериализуемых значений и конфигурационных сценариев с key/label описанием option`}),`
|
|
4
4
|
`,(0,S.jsx)(t.p,{children:`SerializableSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-BOYfiRbQ.js";import{n as i,t as a}from"./Select-C8NwIhWM.js";function o(e,t){return e[t]}function s(e,t,n){let r=e[t];if(typeof r==`string`||typeof r==`number`)return r;let i=o(e,n);return typeof i==`string`||typeof i==`number`?i:String(i)}function c({label:e,description:t,disabled:n,placeholder:r,size:i,options:c,value:u,onChange:d,optionKey:f,optionLabel:p,renderCode:m,className:h,clearable:g}){let _=u===void 0?void 0:c.find(e=>o(e,f)===u);return(0,l.jsx)(a,{label:e,description:t,disabled:n,placeholder:r,size:i,options:c,value:_,onChange:e=>d(e?o(e,f):void 0),getOptionKey:e=>o(e,f),getOptionLabel:e=>s(e,p,f),getOptionCode:m?e=>o(e,f):void 0,className:h,clearable:g})}var l;function u(){return(u=e((()=>{i(),l=r(),c.__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
2
|
TOption[TOptionKey],
|
|
3
3
|
SelectOptionKey
|
|
4
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`]}})))()}var d=t({AsyncReloadLike:()=>S,Controlled:()=>y,Disabled:()=>C,Placeholder:()=>b,WithCode:()=>x,__namedExportsOrder:()=>w,default:()=>v}),f,p,m,h,g,_,v,y,b,x,S,C,w;function T(){return(T=e((()=>{f=n(),u(),p=r(),{useArgs:m,useState:h}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:g}=__STORYBOOK_MODULE_TEST__,_=[{id:10,name:`Продажи`,code:`SLS`,branch:`Екатеринбург`},{id:20,name:`Закупки`,code:`PRC`,branch:`Челябинск`},{id:30,name:`Логистика`,code:`LGS`,branch:`Новосибирск`},{id:40,name:`Сервис`,code:`SRV`,branch:`Москва`}],v={title:`Shared/UI/SerializableSelect`,component:c,args:{label:`Подразделение`,description:`Сериализуемая обёртка над Select для object-options и field-based конфигурации.`,placeholder:`Выберите подразделение`,options:_,optionKey:`id`,optionLabel:`name`,value:void 0,onChange:g(),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`},clearable:{description:`Показывает действие очистки выбранного ключа.`,control:`boolean`}}},y={name:`Выбор по ключу`,render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,value:e.value??20,onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:20}},b={render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}},x={name:`С кодом`,render:function(e){let[,t]=m();return(0,p.jsx)(c,{...e,value:e.value??10,renderCode:!0,onChange:n=>{e.onChange(n),t({value:n})}})},args:{value:10,renderCode:!0}},S={name:`Смена набора опций`,render:function(e){let[,t]=m(),[n,r]=h(!1),i=(0,f.useMemo)(()=>n?_.filter(e=>e.id!==20):_,[n]);return(0,p.jsxs)(`div`,{style:{display:`grid`,gap:`12px`,maxWidth:`320px`},children:[(0,p.jsx)(`button`,{type:`button`,onClick:()=>r(e=>!e),children:n?`Показать полный список`:`Скрыть одну опцию`}),(0,p.jsx)(c,{...e,options:i,value:e.value??30,onChange:n=>{e.onChange(n),t({value:n})}})]})},args:{value:30}},C={args:{disabled:!0,value:10}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
|
package/storybook-static/assets/{SingleDateTimeInput-bIeFRT8c.js → SingleDateTimeInput-BfG4Wffa.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DFQ7gHL7.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./SingleDateTimeInput.stories-D1EHS_Lj.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:_,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`SingleDateTimeInput`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:`Строгий сегментный ввод даты-времени и времени с popover picker`}),`
|
|
4
4
|
`,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`SingleDateTimeInput`}),` объединяет два сценария:`]}),`
|
package/storybook-static/assets/{SingleDateTimeInput-DobT9m-7.js → SingleDateTimeInput-C2QxXHnT.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{c as n,l as r,n as i,t as a}from"./CalendarView-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{c as n,l as r,n as i,t as a}from"./CalendarView-CroQMfFX.js";import{i as o,n as s,r as c}from"./iframe-BOYfiRbQ.js";import{a as l,i as u}from"./utils-DUM89eIj.js";import{C as d,b as f,y as p}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as m,t as h}from"./Popover-DYoRYOJQ.js";import{n as g,t as _}from"./ui.module-CiLQZm_L.js";import{c as v,l as y,o as b,r as x,u as S}from"./Input-Dmum9ojv.js";import{a as C,i as w,n as ee,r as te,t as T}from"./date-segments-D3HouZ37.js";import{a as E,c as ne,d as re,i as D,l as ie,n as ae,o as O,r as oe,s as k,t as A,u as j}from"./TimePanel-9AlN21FL.js";var M,se;function N(){return(N=e((()=>{o(),M=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]],se=c(`clock-3`,M)})))()}function P(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function ce({value:e,onChange:t,onClearError:n,disabled:r,minDate:i,maxDate:a,mode:o=`date-time`}){let s=(0,F.useMemo)(()=>E(o),[o]),c=(0,F.useMemo)(()=>w(s),[s]),l=(0,F.useMemo)(()=>P(c),[c]),u=(0,F.useMemo)(()=>ee(e??null,c),[c,e]),d=e?.getTime()??null,[f,p]=(0,F.useState)(null),m=(f?.sourceValueTime===d&&f.sourceMode===o?f.values:null)??u,h=(0,F.useRef)(new Map),g=(0,F.useRef)(0),_=(0,F.useCallback)(e=>{p(e===null?null:{sourceValueTime:d,sourceMode:o,values:e})},[d,o]),v=(0,F.useCallback)(n=>{if(T(c,n))return t(null),null;let r=C(c,n,{defaultDate:o===`time`?j(e,`time`)??D():void 0});return!r||!k(r,i,a,o)?null:(t(r),r)},[a,i,o,t,c,e]),y=(0,F.useCallback)((e,t=!0)=>{let n=h.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),b=(0,F.useCallback)(e=>{let t=l.indexOf(e);return t<l.length-1?l[t+1]:null},[l]),x=(0,F.useCallback)(e=>{let t=l.indexOf(e);return t>0?l[t-1]:null},[l]),S=(0,F.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:c,segmentValues:m,registerRef:(0,F.useCallback)(e=>t=>{if(t){h.current.set(e,t);return}h.current.delete(e)},[]),handleInput:(0,F.useCallback)(e=>t=>{if(r)return;let i=c[e];if(i.kind!==`editable`)return;let a=t.target.value.replace(/\D/g,``).slice(0,i.length),o=new Map(m);if(o.set(e,a),_(o),n?.(),a.length===i.length){let t=b(e);t!==null&&requestAnimationFrame(()=>y(t))}v(o)},[r,y,b,n,m,c,_,v]),handleKeyDown:(0,F.useCallback)(e=>t=>{if(r)return;let n=c[e];if(n.kind!==`editable`)return;let i=m.get(e)??``,a=t.currentTarget;switch(t.key){case`ArrowRight`:if(a.selectionStart===i.length||i===``){t.preventDefault();let n=b(e);n!==null&&y(n)}break;case`ArrowLeft`:if(a.selectionStart===0||i===``){t.preventDefault();let n=x(e);n!==null&&y(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(m);o.set(e,S(String(r),n)),_(o),v(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(m);o.set(e,S(String(r),n)),_(o),v(o),requestAnimationFrame(()=>a.select());break}case`Backspace`:if(i===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`Delete`:{t.preventDefault();let n=new Map(m);n.set(e,``),_(n),v(n);break}}},[r,y,b,x,S,m,c,_,v]),handleFocus:(0,F.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,F.useCallback)(()=>{clearTimeout(g.current)},[]),handleContainerBlur:(0,F.useCallback)(()=>{let n=new Map(m);g.current=window.setTimeout(()=>{if(T(c,n)){t(null),_(n);return}let r=C(c,n,{defaultDate:o===`time`?j(e,`time`)??D():void 0});if(!r||!k(r,i,a,o)){_(null);return}_(n)},0)},[a,i,o,t,m,c,_,e]),focusFirstEmpty:(0,F.useCallback)(()=>{let e=l.find(e=>!(m.get(e)??``))??l[l.length-1];e!==void 0&&y(e)},[l,y,m])}}var F;function I(){return(I=e((()=>{F=t(),te(),O()})))()}var L,R,z,B,V,H,U,W,G,K,q;function J(){return(J=e((()=>{L=`AvG-mf`,R=`ig7KtT`,z=`YQHPZa`,B=`-RZe-i`,V=`Ox0SRE`,H=`gfaRup`,U=`_59kEea`,W=`Jjdu1Q`,G=`Q8Y2xS`,K=`XxZYTW`,q={segmentInput:L,separator:R,popoverContent:z,bottom:B,right:V,calendarPane:H,timePanelPane:U,timeOnlyPopoverContent:W,timePanelPaneBottom:G,timePanelPaneRight:K}})))()}function Y({value:e,onChange:t,label:r,description:i,placeholder:o,disabled:s,size:c,error:u,onClearError:p,minDate:m,maxDate:_,timePanelPlacement:v=`right`,mode:y=`date-time`}){let C=(0,X.useMemo)(()=>j(e,y),[y,e]),w=(0,X.useMemo)(()=>d(new Date),[]),[ee,te]=(0,X.useState)(!1),[T,E]=(0,X.useState)(C??null),[D,ae]=(0,X.useState)(`day`),[O,M]=(0,X.useState)(()=>re(C,w,y)),{controlId:N,labelId:P,descriptionId:F,errorId:I,describedBy:L}=S({hasLabel:r!=null,hasDescription:!!i,hasError:!!u}),{segments:R,segmentValues:z,registerRef:B,handleInput:V,handleKeyDown:H,handleFocus:U,handleContainerFocus:W,handleContainerBlur:G,focusFirstEmpty:K}=ce({value:C,onChange:t,onClearError:p,disabled:s,minDate:m,maxDate:_,mode:y}),J=e=>{if(y===`time`||f(e)||s)return;let t=ne(e,T??C??O),{hours:n,minutes:r}=oe(e,t.getHours(),t.getMinutes(),m,_,y),i=ie(e,n,r);k(i,m,_,y)&&(p?.(),E(i),M(i))},Y=(e,t)=>{if(s)return;let n=T??C??O,r=oe(n,e,t,m,_,y),i=ie(n,r.hours,r.minutes,y);k(i,m,_,y)&&(p?.(),E(i),M(i))},Q=e=>{e&&(E(C??null),M(re(C,w,y))),te(e)},le=()=>{(C?.getTime()??null)!==(T?.getTime()??null)&&t(T)},ue=v===`right`?q.timePanelPaneRight:q.timePanelPaneBottom,de=y===`time`?`Открыть выбор времени`:`Открыть календарь даты и времени`,fe=o??(y===`time`?`чч:мм`:`дд.мм.гггг чч:мм`),$=T??C??O;return(0,Z.jsxs)(h,{open:ee,onOpenChange:Q,children:[(0,Z.jsx)(b,{label:r,description:i,disabled:s,size:c,error:u,controlId:N,labelId:P,descriptionId:F,errorId:I,children:(0,Z.jsx)(x,{endAdornmentWidth:`var(--control-height)`,endAdornment:(0,Z.jsx)(h.Trigger,{children:(0,Z.jsx)(`div`,{className:g.uiToggleButtonContainer,children:(0,Z.jsx)(`button`,{type:`button`,disabled:s,"aria-label":de,className:g.uiToggleButton,children:y===`time`?(0,Z.jsx)(se,{}):(0,Z.jsx)(n,{})})})}),children:({controlClassName:e})=>(0,Z.jsx)(`div`,{id:N,className:l(g.uiInputControlFake,e),"data-disabled":s||void 0,"data-invalid":u?``:void 0,role:`group`,"aria-invalid":!!u||void 0,"aria-placeholder":fe,"aria-labelledby":P,"aria-describedby":L,onFocus:W,onBlur:G,onClick:e=>{e.target===e.currentTarget&&K()},children:R.map((e,t)=>e.kind===`literal`?(0,Z.jsx)(`span`,{className:q.separator,"data-disabled":s||void 0,children:e.text},t):(0,Z.jsx)(`input`,{ref:B(t),type:`text`,inputMode:`numeric`,className:q.segmentInput,style:{width:`${e.length+.5}ch`},value:z.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:s,"aria-label":e.ariaLabel,autoComplete:`off`,onChange:V(t),onKeyDown:H(t),onFocus:U()},t))})})}),(0,Z.jsx)(h.Content,{background:`primary`,onClose:le,children:y===`time`?(0,Z.jsx)(`div`,{className:q.timeOnlyPopoverContent,children:(0,Z.jsx)(A,{value:$,disabled:s,minDate:m,maxDate:_,mode:y,onChange:Y})}):(0,Z.jsxs)(`div`,{className:l(q.popoverContent,q[v]),children:[(0,Z.jsx)(`div`,{className:q.calendarPane,children:(0,Z.jsx)(a,{view:D,datePickerLevel:`day`,selectionMode:`day`,onViewChange:ae,value:$,onChange:J,minDate:m,maxDate:_,currentDate:O,onCurrentDateChange:M})}),(0,Z.jsx)(`div`,{className:l(q.timePanelPane,ue),children:(0,Z.jsx)(A,{value:$,disabled:s,minDate:m,maxDate:_,mode:y,onChange:Y})})]})})]})}var X,Z;function Q(){return(Q=e((()=>{X=t(),p(),u(),r(),N(),i(),v(),y(),m(),_(),O(),I(),J(),ae(),Z=s(),Y.__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:``}}}})))()}export{Q as n,Y as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n,t as r}from"./SingleDateTimeInput-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n,t as r}from"./SingleDateTimeInput-C2QxXHnT.js";import{n as i}from"./iframe-BOYfiRbQ.js";import{_ as a,b as o,h as s,y as c}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{n as l,t as u}from"./createControlledStoryRender-DHsyXc1B.js";var d=t({Default:()=>g,Empty:()=>v,TimeOnly:()=>_,WithLimits:()=>y,WithRightPanel:()=>b,__namedExportsOrder:()=>x,default:()=>h});function f(e){return u((t,n)=>{let i=t.value??null;return(0,p.jsxs)(`div`,{children:[(0,p.jsx)(r,{...t,value:i,onChange:e=>{t.onChange(e),n({value:e})},onClearError:()=>{t.onClearError?.(),n({error:void 0})}}),e===`date-time`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`p`,{children:[`Вывод значения через `,(0,p.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsDateTime(value)`}),`:`]}),(0,p.jsx)(`pre`,{children:c(i)}),(0,p.jsxs)(`p`,{children:[`Вывод значения через `,(0,p.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsODataDatetime(value)`}),`:`]}),(0,p.jsx)(`pre`,{children:s(i)})]}),e===`time`&&(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`p`,{children:[`Вывод значения через `,(0,p.jsx)(`code`,{className:`statusInfo`,children:`formatDateAsTime(value)`}),`:`]}),(0,p.jsx)(`pre`,{children:a(i)}),(0,p.jsx)(`p`,{children:`Техническая дата значения всегда фиксируется как 01.01.1970.`}),(0,p.jsx)(`pre`,{children:i?i.toISOString():``})]})]})})}var p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{o(),l(),n(),p=i(),{fn:m}=__STORYBOOK_MODULE_TEST__,h={title:`Shared/UI/SingleDateTimeInput`,component:r,args:{value:null,onChange:m()},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`]}}},g={render:f(`date-time`),args:{label:`Дата и время`,description:`Фиксированный формат: дд.мм.гггг чч:мм`,placeholder:`дд.мм.гггг чч:мм`,timePanelPlacement:`bottom`,value:new Date(2026,2,5,9,15,0,0)}},_={render:f(`time`),args:{label:`Время`,description:`Режим только времени с маской чч:мм и wheel-picker без календаря.`,placeholder:`чч:мм`,mode:`time`,value:new Date(1970,0,1,9,15,0,0),minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},v={render:f(`none`),args:{label:`Пустое значение`,description:`Поле можно заполнить вручную или через popover picker.`,placeholder:`дд.мм.гггг чч:мм`,timePanelPlacement:`bottom`,value:null}},y={render:f(`none`),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`,value:new Date(2026,2,10,12,30,0,0)}},b={render:f(`none`),args:{label:`Дата и время`,description:`Wheel-панель времени расположена справа от календаря.`,timePanelPlacement:`right`,value:new Date(2026,2,10,12,30,0,0)}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: createSingleDateTimeInputStoryRender("date-time"),
|
|
3
3
|
args: {
|
|
4
4
|
label: "Дата и время",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-BOYfiRbQ.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-DFQ7gHL7.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"./Slider.stories-DXNQd3RV.js";function C(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,T.jsx)(u,{children:`Slider`}),`
|
|
3
3
|
`,(0,T.jsx)(o,{children:`Компактные single и range слайдеры с marks, tooltip и открытыми границами`}),`
|
|
4
4
|
`,(0,T.jsxs)(t.p,{children:[(0,T.jsx)(t.code,{children:`Slider`}),` и `,(0,T.jsx)(t.code,{children:`SliderRange`}),` — отдельные публичные компоненты. Оба используют общую числовую шкалу, но не смешивают single/range через prop.`]}),`
|