@ryuzaki13/react-foundation-ui 1.8.2 → 1.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced-search/index.js +8 -8
- 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-DGElHRTJ.js → CalendarView-BJx6akIp.js} +2 -2
- package/dist/chunks/{CalendarView-DGElHRTJ.js.map → CalendarView-BJx6akIp.js.map} +1 -1
- package/dist/chunks/CheckBox.module-C5SjPwSj.js.map +1 -1
- package/dist/chunks/{TextEditorLexicalClient-C6b5N8AO.js → TextEditorLexicalClient-Ca89d-Db.js} +6 -6
- package/dist/chunks/{TextEditorLexicalClient-C6b5N8AO.js.map → TextEditorLexicalClient-Ca89d-Db.js.map} +1 -1
- package/dist/chunks/{badge-DMM8cOHd.js → badge-DUI2ET6q.js} +2 -2
- package/dist/chunks/{badge-DMM8cOHd.js.map → badge-DUI2ET6q.js.map} +1 -1
- package/dist/chunks/{base-table-DNSYOO9t.js → base-table-CsnUiMTe.js} +2 -2
- package/dist/chunks/{base-table-DNSYOO9t.js.map → base-table-CsnUiMTe.js.map} +1 -1
- package/dist/chunks/{button-BsvHGWPc.js → button-C53OkqTg.js} +3 -3
- package/dist/chunks/{button-BsvHGWPc.js.map → button-C53OkqTg.js.map} +1 -1
- package/dist/chunks/{check-box-sfGjYczQ.js → check-box-CC8CDnSR.js} +3 -3
- package/dist/chunks/{check-box-sfGjYczQ.js.map → check-box-CC8CDnSR.js.map} +1 -1
- package/dist/chunks/context-menu-C8sA7xCN.js +525 -0
- package/dist/chunks/context-menu-C8sA7xCN.js.map +1 -0
- package/dist/chunks/{date-input-C4GcKul6.js → date-input-g6l1iDmf.js} +5 -5
- package/dist/chunks/{date-input-C4GcKul6.js.map → date-input-g6l1iDmf.js.map} +1 -1
- package/dist/chunks/defaultRenderers-Dbhg2hHc.js +38 -0
- package/dist/chunks/defaultRenderers-Dbhg2hHc.js.map +1 -0
- package/dist/chunks/{input-CCdBtl-C.js → input-d08WN5FV.js} +2 -2
- package/dist/chunks/{input-CCdBtl-C.js.map → input-d08WN5FV.js.map} +1 -1
- package/dist/chunks/{input-files-TXdXrSAs.js → input-files-_NdSQM_3.js} +3 -3
- package/dist/chunks/{input-files-TXdXrSAs.js.map → input-files-_NdSQM_3.js.map} +1 -1
- package/dist/chunks/{input-search-Ca8iqeK2.js → input-search-BjtTMoRu.js} +2 -2
- package/dist/chunks/{input-search-Ca8iqeK2.js.map → input-search-BjtTMoRu.js.map} +1 -1
- package/dist/chunks/{modal-DLRYn-Lr.js → modal-Bar-j5a4.js} +2 -2
- package/dist/chunks/{modal-DLRYn-Lr.js.map → modal-Bar-j5a4.js.map} +1 -1
- package/dist/chunks/multi-select-Cvjz9W07.js +466 -0
- package/dist/chunks/multi-select-Cvjz9W07.js.map +1 -0
- package/dist/chunks/picker-0I1yMKIY.js +435 -0
- package/dist/chunks/picker-0I1yMKIY.js.map +1 -0
- package/dist/chunks/{radio-group-BAeJjyZ5.js → radio-group-DhpP7JSJ.js} +2 -2
- package/dist/chunks/{radio-group-BAeJjyZ5.js.map → radio-group-DhpP7JSJ.js.map} +1 -1
- package/dist/chunks/select-CUQ91FIc.js +363 -0
- package/dist/chunks/select-CUQ91FIc.js.map +1 -0
- package/dist/chunks/{table-RO4dfMAj.js → table-z9kyd9U3.js} +2 -2
- package/dist/chunks/{table-RO4dfMAj.js.map → table-z9kyd9U3.js.map} +1 -1
- package/dist/chunks/{ui.module-DHVTOqZ0.js → ui.module-BsDio9A3.js} +4 -3
- package/dist/chunks/ui.module-BsDio9A3.js.map +1 -0
- package/dist/chunks/{uiClasses-UkaejTdf.js → uiClasses-BVwFzzsr.js} +2 -2
- package/dist/chunks/{uiClasses-UkaejTdf.js.map → uiClasses-BVwFzzsr.js.map} +1 -1
- package/dist/chunks/useODataSelectBase-DR4PrY1j.js +117 -0
- package/dist/chunks/useODataSelectBase-DR4PrY1j.js.map +1 -0
- package/dist/context-menu/components/ContextMenu.d.ts +2 -1
- package/dist/context-menu/components/ContextMenu.d.ts.map +1 -1
- package/dist/context-menu/components/DropdownMenu.d.ts +2 -1
- package/dist/context-menu/components/DropdownMenu.d.ts.map +1 -1
- package/dist/context-menu/components/MenuContent.d.ts.map +1 -1
- package/dist/context-menu/components/MenuItem.d.ts +6 -6
- package/dist/context-menu/components/MenuItem.d.ts.map +1 -1
- package/dist/context-menu/components/MenuRoot.d.ts +1 -1
- package/dist/context-menu/components/MenuRoot.d.ts.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 +3 -3
- package/dist/disclosure/index.js +2 -2
- package/dist/drop-zone/index.js +1 -1
- package/dist/expandable-action-panel/index.js +1 -1
- package/dist/image/index.js +4 -4
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +2 -2
- package/dist/input-file/index.js +2 -2
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +2 -2
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +66 -68
- package/dist/layout-picker/index.js.map +1 -1
- package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
- package/dist/listbox/Listbox.d.ts +1 -1
- package/dist/listbox/Listbox.d.ts.map +1 -1
- package/dist/listbox/index.js +71 -59
- package/dist/listbox/index.js.map +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +2 -2
- package/dist/multi-select/ui/MultiSelect.d.ts +11 -1
- package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
- package/dist/multi-select/ui/defaultRenderers.d.ts +6 -4
- package/dist/multi-select/ui/defaultRenderers.d.ts.map +1 -1
- package/dist/multi-select/ui/index.d.ts +0 -1
- package/dist/multi-select/ui/index.d.ts.map +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/option/CustomOptionButton.d.ts +6 -0
- package/dist/option/CustomOptionButton.d.ts.map +1 -0
- package/dist/option/Option.d.ts +14 -0
- package/dist/option/Option.d.ts.map +1 -0
- package/dist/option/OptionButton.d.ts +8 -0
- package/dist/option/OptionButton.d.ts.map +1 -0
- package/dist/option/OptionCode.d.ts +6 -0
- package/dist/option/OptionCode.d.ts.map +1 -0
- package/dist/option/OptionContent.d.ts +19 -0
- package/dist/option/OptionContent.d.ts.map +1 -0
- package/dist/option/OptionHotkey.d.ts +6 -0
- package/dist/option/OptionHotkey.d.ts.map +1 -0
- package/dist/option/OptionIcon.d.ts +6 -0
- package/dist/option/OptionIcon.d.ts.map +1 -0
- package/dist/option/OptionLink.d.ts +8 -0
- package/dist/option/OptionLink.d.ts.map +1 -0
- package/dist/option/OptionText.d.ts +6 -0
- package/dist/option/OptionText.d.ts.map +1 -0
- package/dist/option/index.d.ts +10 -0
- package/dist/option/index.d.ts.map +1 -0
- package/dist/option/index.js +112 -0
- package/dist/option/index.js.map +1 -0
- package/dist/picker/PickerClearButton.d.ts +9 -0
- package/dist/picker/PickerClearButton.d.ts.map +1 -0
- package/dist/picker/PickerOptions.d.ts +22 -0
- package/dist/picker/PickerOptions.d.ts.map +1 -0
- package/dist/picker/PickerPlaceholder.d.ts +14 -0
- package/dist/picker/PickerPlaceholder.d.ts.map +1 -0
- package/dist/picker/PickerPopup.d.ts +4 -3
- package/dist/picker/PickerPopup.d.ts.map +1 -1
- package/dist/picker/PickerSelectedToken.d.ts +7 -0
- package/dist/picker/PickerSelectedToken.d.ts.map +1 -0
- package/dist/picker/PickerTrigger.d.ts +29 -0
- package/dist/picker/PickerTrigger.d.ts.map +1 -0
- package/dist/picker/PickerTriggerActions.d.ts.map +1 -1
- package/dist/picker/PickerTriggerInput.d.ts +1 -2
- package/dist/picker/PickerTriggerInput.d.ts.map +1 -1
- package/dist/picker/index.d.ts +5 -0
- package/dist/picker/index.d.ts.map +1 -1
- package/dist/picker/index.js +2 -2
- package/dist/picker/model/extractPickerTextContent.d.ts +1 -1
- package/dist/picker/model/extractPickerTextContent.d.ts.map +1 -1
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/preset-select/PresetSelect.d.ts +1 -1
- package/dist/preset-select/PresetSelect.d.ts.map +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/preset-select/index.js.map +1 -1
- package/dist/radio-button/index.js +2 -2
- package/dist/radio-group/index.js +1 -1
- package/dist/select/Select.d.ts +4 -2
- package/dist/select/Select.d.ts.map +1 -1
- package/dist/select/SelectOptionGroup.d.ts +1 -1
- package/dist/select/SelectOptionGroup.d.ts.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +3 -3
- package/dist/state-select/StateSelect.d.ts +1 -1
- package/dist/state-select/StateSelect.d.ts.map +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/state-select/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tabs/index.js +2 -2
- package/dist/tag-input/index.js +2 -2
- package/dist/text-editor/index.js +1 -1
- package/dist/textarea/index.js +2 -2
- package/dist/toggle/index.js +1 -1
- package/dist/tree-select/TreeMultiSelect.d.ts.map +1 -1
- package/dist/tree-select/TreeNodeContent.d.ts +2 -1
- package/dist/tree-select/TreeNodeContent.d.ts.map +1 -1
- package/dist/tree-select/TreePickerBase.d.ts +4 -1
- package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
- package/dist/tree-select/index.js +322 -353
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +1 -1
- package/package.json +5 -1
- package/src/styles/themes/_interactive-surface.scss +67 -0
- package/storybook-static/assets/{Badge-Dis0WdSI.js → Badge-BazfGubN.js} +1 -1
- package/storybook-static/assets/{Badge.stories-DKUJOyg3.js → Badge.stories-VRDt3jMW.js} +1 -1
- package/storybook-static/assets/{BadgeList-C_ImRsat.js → BadgeList-CCz0WCRb.js} +1 -1
- package/storybook-static/assets/{Button-BSsRzaxX.js → Button-CMYD3NJ-.js} +1 -1
- package/storybook-static/assets/{Button-DxGg9rB3.js → Button-DWcNl5Zj.js} +1 -1
- package/storybook-static/assets/{Button.stories-fHvDvt2w.js → Button.stories-B3Apb2Ql.js} +1 -1
- package/storybook-static/assets/{CalendarView-BFcwl9Vq.js → CalendarView-PEudhNak.js} +1 -1
- package/storybook-static/assets/{CheckBox-CSbi2BEU.js → CheckBox-BJzDZz1m.js} +1 -1
- package/storybook-static/assets/CheckBox-DWrG0yT0.css +1 -0
- package/storybook-static/assets/{CheckBox-SuVeN-FY.js → CheckBox-yw29uS-5.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-C6PF0zG1.js → CheckBox.stories-s55oWii9.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-DX3p6XEG.js → Color-6AOWCN3U-Cv5TeHjl.js} +1 -1
- package/storybook-static/assets/{ContextMenu-f0QZPgBQ.js → ContextMenu-B4wKUE8V.js} +1 -1
- package/storybook-static/assets/ContextMenu-CFPrlO2u.css +1 -0
- package/storybook-static/assets/ContextMenu-Py3xGtjx.js +1 -0
- package/storybook-static/assets/ContextMenu.stories-D0tE2Py7.js +37 -0
- package/storybook-static/assets/CustomOptionButton-DfUeGOyK.js +1 -0
- package/storybook-static/assets/{DateInput-C0K0JvWe.js → DateInput-CAh9jnPm.js} +1 -1
- package/storybook-static/assets/{DateInput-BmL4c3wO.js → DateInput-PGhcIb-N.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-65WMYAML.js → DateInput.stories-3PkULX39.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DVAqXJt1.js → DateRangePresetSelect-BAul11Hu.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DdpNa-Yj.js → DateRangePresetSelect-QD9hMhTi.js} +1 -1
- package/storybook-static/assets/DateRangePresetSelect.stories-DHZcrIJ5.js +19 -0
- package/storybook-static/assets/{Detail-1rmVP04K.js → Detail-B4bZrxtj.js} +1 -1
- package/storybook-static/assets/{Detail.stories-CW2YXAPy.js → Detail.stories-BqZjQl2L.js} +1 -1
- package/storybook-static/assets/{Dialog-CszRheXL.js → Dialog-DnXPYFBh.js} +1 -1
- package/storybook-static/assets/{Dialog-DcdGv_Bv.js → Dialog-r6FZVhKu.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CN9vtGuI.js → Dialog.stories-BpFQ8-23.js} +1 -1
- package/storybook-static/assets/{Disclosure-DWeZZ2i8.js → Disclosure-DOU_WgGj.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-pZXR5BOM.js → Disclosure.stories-C9wGRzxY.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-BWba17wI.js → DisclosureGroup-D6JXQUMx.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-BYN3Mg4U.js → DocsRenderer-JROSPFPF-CgT68qHp.js} +1 -1
- package/storybook-static/assets/{DropZone-ByDIyQgI.js → DropZone-B_9dX3jy.js} +1 -1
- package/storybook-static/assets/{DropZone-BCe20YiO.js → DropZone-Cx2F0t9p.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-CLXe7D8H.js → DropZone.stories-quFSsVRn.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-BD-pc32j.js → DropdownMenu-BOSAD3oH.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-v-DZaEKX.js → ExpandableActionPanel-D6NDXTu4.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BhHYM4mJ.js → ExpandableActionPanel.stories-CVjY1iX5.js} +1 -1
- package/storybook-static/assets/{Flex-DukB58MF.js → Flex-BLsAxNZH.js} +1 -1
- package/storybook-static/assets/{Flex.stories-DQmoW5jb.js → Flex.stories-COgd-m61.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-fnwAyZil.js → FloatingPopover-BHoALAyc.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-CK1yXePp.js → FormattedTableCell-jahnzzXB.js} +1 -1
- package/storybook-static/assets/{Grid-BoLaxbR_.js → Grid-D6u5WD3Q.js} +1 -1
- package/storybook-static/assets/{Grid.stories-CSuOTbao.js → Grid.stories-CcoCu0LK.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-BRi_qlO4.js → ImageCropper.stories-BltZdz_w.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-BiV2g53B.js → ImageRenderer-BTz3VRCH.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-Da7QE7_Q.js → ImageRenderer.stories-Bgaa216V.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DSFBxOa6.js → ImageView.stories-DNR6oWH-.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D2rcovap.js → ImageViewer.stories-BN4RTTO5.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-B2CS1UFL.js → ImageViewerRuntime-DaiwPOBp.js} +1 -1
- package/storybook-static/assets/{Input-CVs7SVMJ.js → Input-Ctu1FLAo.js} +1 -1
- package/storybook-static/assets/{Input-BIy4zhlA.js → Input-gekKw4Qs.js} +1 -1
- package/storybook-static/assets/{Input.stories-BBXrateo.js → Input.stories-BggH3U4m.js} +1 -1
- package/storybook-static/assets/{InputDateTime-VUiW2Znv.js → InputDateTime-BilfVxzl.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-lqECZY7T.js → InputDateTime.stories-Dg12XqNR.js} +1 -1
- package/storybook-static/assets/{InputFile-D0aHVW1q.js → InputFile-CgfUHLMj.js} +1 -1
- package/storybook-static/assets/{InputFile-DEeRFq2f.js → InputFile-GlyPqFhE.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-9fBhIus4.js → InputFile.stories-67US4MbA.js} +1 -1
- package/storybook-static/assets/{InputFiles-C_KIqiN9.js → InputFiles-CEfoc97w.js} +1 -1
- package/storybook-static/assets/{InputFiles-DTy038xW.js → InputFiles-DgoOF_5y.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CspkI6-Y.js → InputFiles.stories-O8pudhPC.js} +1 -1
- package/storybook-static/assets/{InputFilesList-BQdSFOI1.js → InputFilesList-_qhXHNH0.js} +1 -1
- package/storybook-static/assets/{InputImage-C0kyUtT0.js → InputImage-BPUac2Z0.js} +1 -1
- package/storybook-static/assets/{InputImage-VJaqApEh.js → InputImage-BR8hGCOw.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-DKXeva5i.js → InputImage.stories-BAa0Lev5.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-B8zzCcZ_.js → InteractiveComponents-Cc3uRY7X.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-DP0Jma43.js → InteractiveComponents.stories-nMxOIkmX.js} +1 -1
- package/storybook-static/assets/LayoutPicker-BY4-fUQa.css +1 -0
- package/storybook-static/assets/{LayoutPicker-BpcPcCDz.js → LayoutPicker-Cb4v3x_G.js} +1 -1
- package/storybook-static/assets/LayoutPicker-KZTxqlGf.js +376 -0
- package/storybook-static/assets/{LayoutPicker.stories-POpVHww7.js → LayoutPicker.stories-BbV9ZXzc.js} +1 -1
- package/storybook-static/assets/Listbox-C92C4jC8.js +1 -0
- package/storybook-static/assets/{Listbox-gHitzePa.js → Listbox-DkvAwfwh.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-Dw3IdYZA.js → Listbox.stories-DTXTRenl.js} +1 -1
- package/storybook-static/assets/{Modal-CY7qfD1u.js → Modal-CIwNzxbo.js} +1 -1
- package/storybook-static/assets/{Modal.stories-Boa7oW-a.js → Modal.stories-9ktsjdlT.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-GYXaQe-7.js → ModalManagerProvider-CqG-xbfj.js} +1 -1
- package/storybook-static/assets/MultiSelect-DI_UD1B-.css +1 -0
- package/storybook-static/assets/{MultiSelect-DToMWi-I.js → MultiSelect-DQm2lbrO.js} +1 -1
- package/storybook-static/assets/MultiSelect-qwlU7fvU.js +2 -0
- package/storybook-static/assets/{MultiSelect.stories-DLuXOl9Q.js → MultiSelect.stories-bq1Xkq9E.js} +1 -1
- package/storybook-static/assets/{NoData-Bzj7vNCz.js → NoData-CeVr2a_m.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-Bs93X8Nv.js → NotificationsHost-ubJMdXdC.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-DxVOVOf8.js → NotificationsHost.stories-CZQ9euOx.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-Dh33YJP6.js → ODataMultiSelect-BHIpg_P7.js} +1 -1
- package/storybook-static/assets/ODataMultiSelect.stories-B8XwUQQ6.js +126 -0
- package/storybook-static/assets/{ODataSelect-lpN9sKth.js → ODataSelect-CE3b_939.js} +1 -1
- package/storybook-static/assets/ODataSelect.stories-DICkWxpb.js +148 -0
- package/storybook-static/assets/{ODataTreeMultiSelect-DFY2FJBX.js → ODataTreeMultiSelect-D-qt-iEB.js} +1 -1
- package/storybook-static/assets/ODataTreeMultiSelect.stories-D01WD4zP.js +74 -0
- package/storybook-static/assets/{ODataTreeSelect-DdniMRRE.js → ODataTreeSelect-IZZlfBOq.js} +1 -1
- package/storybook-static/assets/ODataTreeSelect.stories-B__1Vzqt.js +46 -0
- package/storybook-static/assets/{OneStepScroller-CHvIHlYx.js → OneStepScroller-CyJbFkoT.js} +1 -1
- package/storybook-static/assets/Option-CJBK9i2B.css +1 -0
- package/storybook-static/assets/Option-DQa5SXb3.js +10 -0
- package/storybook-static/assets/OptionButton-Dl4UZEH-.js +1 -0
- package/storybook-static/assets/{PeriodSelect-T1qaj11S.js → PeriodSelect-C_1wt-mw.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BgAak8GG.js → PeriodSelect-CexnILTv.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DYEtD47p.js → PeriodSelect.stories-Dkne0t8f.js} +1 -1
- package/storybook-static/assets/PickerTriggerActions-BceJ6-XM.js +1 -0
- package/storybook-static/assets/{Popover-BVP-wMdK.js → Popover-BYKBmS3g.js} +1 -1
- package/storybook-static/assets/{Popover-DQKHL6wc.js → Popover-Dp9cqgB7.js} +1 -1
- package/storybook-static/assets/{Popover.stories-Pt4-7Aof.js → Popover.stories-CVddfiw-.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-C4_NegG_.js → PresetRangeDateInput-B0L3i9jd.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DQ3rlCp5.js → PresetRangeDateInput-CdWhErE7.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-3AzmySZv.js → PresetRangeDateInput.stories-zF3rsqzw.js} +1 -1
- package/storybook-static/assets/{PresetSelect-BTh53LoO.js → PresetSelect-Cgy9Fxp1.js} +1 -1
- package/storybook-static/assets/{RadioButton-BfBSX73Y.js → RadioButton-C2vBV1hA.js} +1 -1
- package/storybook-static/assets/{RadioButton-Ci25eUL_.js → RadioButton-CXC1Cx3U.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-JVGXFlz8.js → RadioButton.stories-BB8LUjRM.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CL7EHd6O.js → RadioGroup-BtbFmZdj.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CW39hD_-.js → RadioGroup-t3X9UtTe.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-MS9Jl6AT.js → RadioGroup.stories-9zY5fs7x.js} +1 -1
- package/storybook-static/assets/{Scrollable-Bo4197LC.js → Scrollable-BJ9U5zou.js} +1 -1
- package/storybook-static/assets/{Select-CxQqH8H5.js → Select-BvTVuFC9.js} +1 -1
- package/storybook-static/assets/Select-C714MPRu.js +12 -0
- package/storybook-static/assets/{Select.stories-DfjNWXba.js → Select.stories-4Q5T_g3F.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BktENdyg.js → SerializableSelect-D-Zq3RWA.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-B8zxcu66.js → SerializableSelect.stories-CMP1sVcs.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DZBRm3dM.js → SingleDateTimeInput-CFu-yAx-.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DvpU1DkI.js → SingleDateTimeInput-CRF8VyEy.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-Bku5Zc05.js → SingleDateTimeInput.stories-D-3ZQXEM.js} +1 -1
- package/storybook-static/assets/{Slider-BN2xXBOi.js → Slider-C1IZK88-.js} +1 -1
- package/storybook-static/assets/{Slider-BJkB6IoW.js → Slider-DkVzyjnU.js} +1 -1
- package/storybook-static/assets/{Slider.stories-CM3yNojO.js → Slider.stories-CL2kGwWV.js} +1 -1
- package/storybook-static/assets/{SliderInput-2ZiuvbpQ.js → SliderInput-CrWP_doO.js} +1 -1
- package/storybook-static/assets/{SliderInput-CPX2bJK3.js → SliderInput-qSo8a1-L.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-dJX-tRtA.js → SliderInput.stories-C_55M3Rx.js} +1 -1
- package/storybook-static/assets/{Sortable-Bkr-xnO4.js → Sortable-DQN5jv9g.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BPEg99e5.js → Sortable.stories-D6JJK92g.js} +1 -1
- package/storybook-static/assets/{Splitter-D4en_f5n.js → Splitter-3xKtU1Lb.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-Cynn_kHV.js → Splitter.stories-BX8ALiZg.js} +1 -1
- package/storybook-static/assets/{StateSelect-PcH0VuO_.js → StateSelect-BpPBAs_C.js} +3 -3
- package/storybook-static/assets/{StateSelect-BgbwMGGc.js → StateSelect-CRvQIHMd.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-CShqVH9Y.js → StateSelect.stories-BjFEEWVC.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CypR3oB_.js → StringToggle.stories-CAHHreic.js} +1 -1
- package/storybook-static/assets/{Switch-D-cSDh8j.js → Switch-QlzemgHG.js} +1 -1
- package/storybook-static/assets/{Switch-BVN6TcVZ.js → Switch-ams7jd2Z.js} +1 -1
- package/storybook-static/assets/{Switch.stories-C0s7gvBf.js → Switch.stories-CYHyTttw.js} +1 -1
- package/storybook-static/assets/{Table-CwXJDDe6.js → Table-CQdV4VHj.js} +1 -1
- package/storybook-static/assets/{Table.stories-vqttnROX.js → Table.stories-DruTDpdl.js} +1 -1
- package/storybook-static/assets/{Tabs-BRSEvQpk.js → Tabs-BJSbr7kb.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-R_7jiTQc.js → Tabs.stories-lf-mDq_D.js} +1 -1
- package/storybook-static/assets/{TabsBox-CqSxAUdJ.js → TabsBox-ZVImR6p0.js} +1 -1
- package/storybook-static/assets/{TagInput-C3ahaF-B.js → TagInput-DQytVtEo.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-C3O2gBUY.js → TagInput.stories-BQqHbyr3.js} +1 -1
- package/storybook-static/assets/{Text-b8fMr5Hd.js → Text-B5iDs3oJ.js} +1 -1
- package/storybook-static/assets/{Textarea-BDL_MwcM.js → Textarea-8wa0S9LS.js} +1 -1
- package/storybook-static/assets/{Textarea-CCgxNL6F.js → Textarea-D70Fh5jz.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-kc_LXBix.js → Textarea.stories-CbBM7a9o.js} +1 -1
- package/storybook-static/assets/{TimePanel-BCotjEKQ.js → TimePanel-Cef9klO_.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-B8paqA-_.js → TimePanel.stories-DFhohiAp.js} +1 -1
- package/storybook-static/assets/{Toggle-CT4IyZPI.js → Toggle-DNQFJhW_.js} +1 -1
- package/storybook-static/assets/{Toggle-CbsKNs_c.js → Toggle-v-5-JSE0.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-YsQZk4DA.js → Toggle.stories-cZNfdzmw.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DRLoUCXF.js → TreeMultiSelect-BnE3mYFf.js} +1 -1
- package/storybook-static/assets/TreeMultiSelect-CxPv6whw.js +1 -0
- package/storybook-static/assets/{TreeMultiSelect.stories-CV65ZVUo.js → TreeMultiSelect.stories-DlYN_GCe.js} +1 -1
- package/storybook-static/assets/TreePickerBase-B6DED6Hz.css +1 -0
- package/storybook-static/assets/TreePickerBase-C7qpkbpz.js +34 -0
- package/storybook-static/assets/{TreeSelect-FhEH7bMx.js → TreeSelect-CIEqH8S9.js} +1 -1
- package/storybook-static/assets/{TreeSelect-CsYGUC6s.js → TreeSelect-hddQ7fyj.js} +1 -1
- package/storybook-static/assets/TreeSelect.stories-D40eyoD9.js +32 -0
- package/storybook-static/assets/{TreeTable-Bajr80HM.js → TreeTable-CpYB4MSV.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-DDCGoB2u.js → TreeTable.stories-DOy9GHlG.js} +1 -1
- package/storybook-static/assets/{async-CWrFMaux.js → async-MCpAOgGj.js} +1 -1
- package/storybook-static/assets/{blocks-CrYcG0WD.js → blocks-B8O-SmXz.js} +3 -3
- package/storybook-static/assets/{browserAndReact-DSxaVMjM.js → browserAndReact-CWhfyF1v.js} +1 -1
- package/storybook-static/assets/{check-Cnuffb78.js → check-CABFFBZp.js} +1 -1
- package/storybook-static/assets/{chevron-down-ChPfAmdy.js → chevron-down-D9EpqOx3.js} +1 -1
- package/storybook-static/assets/{chevron-left-CEB5eAVk.js → chevron-left-lXvtYh2L.js} +1 -1
- package/storybook-static/assets/{chevron-right-DHw2yjh1.js → chevron-right-DEPi2-vh.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-i9Cm4c-p.js → chunk-W22LQPXL-BnFjL7A4.js} +1 -1
- package/storybook-static/assets/{circle-alert-B0REyiCt.js → circle-alert-BFTgQNUa.js} +1 -1
- package/storybook-static/assets/{circle-check-D6WZ24rj.js → circle-check-BwBhaE4u.js} +1 -1
- package/storybook-static/assets/{components-BCe0UvQp.js → components-b7MrsXAu.js} +3 -3
- package/storybook-static/assets/{contextMenu-De66k1si.js → contextMenu-CgfU49vo.js} +1 -1
- package/storybook-static/assets/defaultRenderers-V5HI39JH.js +1 -0
- package/storybook-static/assets/{download-C1DiezfA.js → download-C27enrZU.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-BVMGH9OS.js → filesAndExcel-BiY4Bovb.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-BswSORmJ.js → floating-ui.react-DEyIFiNo.js} +1 -1
- package/storybook-static/assets/{formatters-D27XMzPd.js → formatters-g8ZqvE1G.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-B_C8yQOS.js → formatters-runtime-CXUIlmJj.js} +1 -1
- package/storybook-static/assets/{foundationLib-BmwSyi1e.js → foundationLib-BPodAJdq.js} +1 -1
- package/storybook-static/assets/{hooks-CXlVTo5i.js → hooks-e6Pq1dhk.js} +1 -1
- package/storybook-static/assets/{iframe-Baz8D-0E.css → iframe-BIt4o49Q.css} +1 -1
- package/storybook-static/assets/{iframe-Bbj4T0X2.js → iframe-MGtmawLC.js} +3 -3
- package/storybook-static/assets/iframe-arpq4Gv1.js +1 -0
- package/storybook-static/assets/{info-D_YlGthq.js → info-BaBKhExm.js} +1 -1
- package/storybook-static/assets/{odata-CDuIqs1a.js → odata-CU8OqBfR.js} +1 -1
- package/storybook-static/assets/{odataAndTables-D4R4KHZc.js → odataAndTables-owHlC75n.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-Sw0FicJe.js → odataFetchFn-I0wds8hr.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-z1HaQHNb.js → odataStoryFixtures-B8Q5eYoW.js} +2 -2
- package/storybook-static/assets/{persisted-TRx901TV.js → persisted-ia9NSjyZ.js} +1 -1
- package/storybook-static/assets/{pureUtilities-B8KVYaZx.js → pureUtilities-qAyFc8Y7.js} +1 -1
- package/storybook-static/assets/{react-CTGFMmtV.js → react-CDRSjgW9.js} +1 -1
- package/storybook-static/assets/{refresh-cw-BuhtDwqw.js → refresh-cw-Cy7nKRWv.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-DDPlVhTs.js → runtimeAndState-CnHg6P7-.js} +1 -1
- package/storybook-static/assets/{settings-2-DESCgIcH.js → settings-2-C_voZFm1.js} +1 -1
- package/storybook-static/assets/{sortable-BxGw7kip.js → sortable-CjH0UUUz.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-B0d7LXTh.js → syntaxhighlighter-T5IQBZDB-Ckcddreo.js} +1 -1
- package/storybook-static/assets/{trash-2-D0Ed43_3.js → trash-2-EOy5mjuJ.js} +1 -1
- package/storybook-static/assets/{triangle-alert-CpgcfVSf.js → triangle-alert-BRrEHiq1.js} +1 -1
- package/storybook-static/assets/{ui-BMhMvV6y.css → ui-CatTcSJL.css} +1 -1
- package/storybook-static/assets/ui.module-D4CuGr8r.js +1 -0
- package/storybook-static/assets/{uiClasses-DiXn3Hc-.js → uiClasses-CVGbL980.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-CFR7eJND.js → useODataSelectBase-69zlLmHt.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DgEKknmd.js → useODataTreeData-BLZGLxQw.js} +1 -1
- package/storybook-static/assets/usePickerQuery-mBLwpp5S.js +1 -0
- package/storybook-static/assets/usePickerTriggerController-B3JWoIjX.js +6 -0
- package/storybook-static/assets/{x-_GQ6nyHW.js → x-DGdEDv4r.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/project.json +1 -1
- package/dist/chunks/context-menu-6nJkPmKV.js +0 -535
- package/dist/chunks/context-menu-6nJkPmKV.js.map +0 -1
- package/dist/chunks/multi-select-Clsst6DE.js +0 -538
- package/dist/chunks/multi-select-Clsst6DE.js.map +0 -1
- package/dist/chunks/picker-CrRdwdA5.js +0 -340
- package/dist/chunks/picker-CrRdwdA5.js.map +0 -1
- package/dist/chunks/select-B0xc6g81.js +0 -355
- package/dist/chunks/select-B0xc6g81.js.map +0 -1
- package/dist/chunks/ui.module-DHVTOqZ0.js.map +0 -1
- package/dist/chunks/useODataSelectBase-Bq36Wp1U.js +0 -141
- package/dist/chunks/useODataSelectBase-Bq36Wp1U.js.map +0 -1
- package/dist/multi-select/ui/MultiSelectOption.d.ts +0 -14
- package/dist/multi-select/ui/MultiSelectOption.d.ts.map +0 -1
- package/dist/multi-select/ui/MultiSelectToken.d.ts +0 -9
- package/dist/multi-select/ui/MultiSelectToken.d.ts.map +0 -1
- package/storybook-static/assets/CheckBox-BnO90VKX.css +0 -1
- package/storybook-static/assets/ContextMenu-BgzIzwzM.css +0 -1
- package/storybook-static/assets/ContextMenu-BhGu3QoC.js +0 -1
- package/storybook-static/assets/ContextMenu.stories-V9d5mjak.js +0 -37
- package/storybook-static/assets/DateRangePresetSelect.stories-BGgd7TOu.js +0 -19
- package/storybook-static/assets/LayoutPicker-DjUZ5y7M.js +0 -376
- package/storybook-static/assets/LayoutPicker-DudPIiwb.css +0 -1
- package/storybook-static/assets/Listbox-Cg1OczYK.js +0 -1
- package/storybook-static/assets/MultiSelect-D8qN-i5f.js +0 -2
- package/storybook-static/assets/ODataMultiSelect.stories-DUmFRMTU.js +0 -139
- package/storybook-static/assets/ODataSelect.stories-BkFs5uIY.js +0 -161
- package/storybook-static/assets/ODataTreeMultiSelect.stories-B_Izm4eH.js +0 -87
- package/storybook-static/assets/ODataTreeSelect.stories-DxNhuLVU.js +0 -55
- package/storybook-static/assets/PickerSelectionToolbar-DWtGYc4E.js +0 -2
- package/storybook-static/assets/PickerTriggerActions-BIH8_o_b.js +0 -1
- package/storybook-static/assets/Select-CO4ZHP9h.css +0 -1
- package/storybook-static/assets/Select-DBsWg0wv.js +0 -12
- package/storybook-static/assets/SelectOptionContent-Bie2pzia.js +0 -1
- package/storybook-static/assets/TreeMultiSelect-CmAa_Gin.js +0 -1
- package/storybook-static/assets/TreePickerBase-hyMFakp7.css +0 -1
- package/storybook-static/assets/TreePickerBase-rB-Q9Uwf.js +0 -24
- package/storybook-static/assets/TreeSelect.stories-Cw4IkrNG.js +0 -40
- package/storybook-static/assets/defaultRenderers-B7PDT-nL.css +0 -1
- package/storybook-static/assets/defaultRenderers-D0Z-7t0H.js +0 -1
- package/storybook-static/assets/iframe-DLZ4F2nx.js +0 -1
- package/storybook-static/assets/ui.module-CiLQZm_L.js +0 -1
- package/storybook-static/assets/usePickerQuery-Be3WSeUa.js +0 -1
- package/storybook-static/assets/usePickerTriggerController-BZZv-jDV.js +0 -1
- package/storybook-static/assets/usePickerTriggerController-DzBkX15M.css +0 -1
- /package/storybook-static/assets/{CheckBox.module-BNQm6HXI.js → CheckBox.module-CoYygdZx.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/layout-picker/lib/layout.ts","../../src/layout-picker/lib/presets.ts","../../src/layout-picker/ui/LayoutPicker.module.scss","../../src/layout-picker/ui/LayoutPicker.tsx"],"sourcesContent":["import { type CSSProperties } from \"react\";\n\nimport { type LayoutPickerPreset, type LayoutPickerPresetCell } from \"./types\";\n\n/**\n * Возвращает CSS Grid-стиль для схематичного layout-пресета.\n */\nexport function getLayoutStyle(preset: LayoutPickerPreset, rowMinHeightInEm?: number): CSSProperties {\n\treturn {\n\t\tgridTemplateColumns: `repeat(${preset.columns}, minmax(0, 1fr))`,\n\t\tgridTemplateRows: `repeat(${preset.rows}, minmax(${rowMinHeightInEm ?? 0}em, 1fr))`\n\t};\n}\n\n/**\n * Возвращает позиционирование ячейки внутри CSS Grid.\n */\nexport function getLayoutCellStyle(cell: LayoutPickerPresetCell): CSSProperties {\n\treturn {\n\t\tgridColumn: `${cell.column} / span ${cell.columnSpan ?? 1}`,\n\t\tgridRow: `${cell.row} / span ${cell.rowSpan ?? 1}`\n\t};\n}\n","import { type LayoutPickerPreset } from \"./types\";\n\n/**\n * Базовый набор layout-пресетов для первого среза выбора схемы.\n *\n * id формата:\n * - \"2x3\" — 2 строки, 3 колонки\n * - \"2x2-l\" — 2x2 с большой ячейкой слева\n * - \"3x2-b\" — 3x2 с широкой нижней ячейкой\n */\nexport const DEFAULT_LAYOUT_PICKER_PRESETS = [\n\t{\n\t\tid: \"1x1\",\n\t\tlabel: \"1x1\",\n\t\tcolumns: 1,\n\t\trows: 1,\n\t\tcells: [{ id: \"c11\", row: 1, column: 1 }]\n\t},\n\t{\n\t\tid: \"1x2\",\n\t\tlabel: \"1x2\",\n\t\tcolumns: 2,\n\t\trows: 1,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"1x3\",\n\t\tlabel: \"1x3\",\n\t\tcolumns: 3,\n\t\trows: 1,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x1\",\n\t\tlabel: \"2x1\",\n\t\tcolumns: 1,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x2\",\n\t\tlabel: \"2x2\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x3\",\n\t\tlabel: \"2x3\",\n\t\tcolumns: 3,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x1\",\n\t\tlabel: \"3x1\",\n\t\tcolumns: 1,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x2\",\n\t\tlabel: \"3x2\",\n\t\tcolumns: 2,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x3\",\n\t\tlabel: \"3x3\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x1\",\n\t\tlabel: \"4x1\",\n\t\tcolumns: 1,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x2\",\n\t\tlabel: \"4x2\",\n\t\tcolumns: 2,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 },\n\t\t\t{ id: \"c42\", row: 4, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x3\",\n\t\tlabel: \"4x3\",\n\t\tcolumns: 3,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 },\n\t\t\t{ id: \"c42\", row: 4, column: 2 },\n\t\t\t{ id: \"c43\", row: 4, column: 3 }\n\t\t]\n\t},\n\n\t{\n\t\tid: \"2x2-l\",\n\t\tlabel: \"Большая слева + две справа\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"left\", row: 1, column: 1, rowSpan: 2 },\n\t\t\t{ id: \"rt\", row: 1, column: 2 },\n\t\t\t{ id: \"rb\", row: 2, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x2-r\",\n\t\tlabel: \"Две слева + большая справа\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"lt\", row: 1, column: 1 },\n\t\t\t{ id: \"lb\", row: 2, column: 1 },\n\t\t\t{ id: \"right\", row: 1, column: 2, rowSpan: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x2-t\",\n\t\tlabel: \"Широкая сверху + две снизу\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 2 },\n\t\t\t{ id: \"bl\", row: 2, column: 1 },\n\t\t\t{ id: \"br\", row: 2, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x2-b\",\n\t\tlabel: \"Две сверху + широкая снизу\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"tl\", row: 1, column: 1 },\n\t\t\t{ id: \"tr\", row: 1, column: 2 },\n\t\t\t{ id: \"bottom\", row: 2, column: 1, columnSpan: 2 }\n\t\t]\n\t},\n\n\t{\n\t\tid: \"3x2-t\",\n\t\tlabel: \"Широкая сверху + 2x2\",\n\t\tcolumns: 2,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x2-b\",\n\t\tlabel: \"2x2 + широкая снизу\",\n\t\tcolumns: 2,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"bottom\", row: 3, column: 1, columnSpan: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x2-m\",\n\t\tlabel: \"Широкая по центру\",\n\t\tcolumns: 2,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"tl\", row: 1, column: 1 },\n\t\t\t{ id: \"tr\", row: 1, column: 2 },\n\t\t\t{ id: \"middle\", row: 2, column: 1, columnSpan: 2 },\n\t\t\t{ id: \"bl\", row: 3, column: 1 },\n\t\t\t{ id: \"br\", row: 3, column: 2 }\n\t\t]\n\t},\n\n\t{\n\t\tid: \"3x3-l\",\n\t\tlabel: \"Большая слева + 2x3 справа\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"left\", row: 1, column: 1, rowSpan: 3 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x3-r\",\n\t\tlabel: \"2x3 слева + большая справа\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"right\", row: 1, column: 3, rowSpan: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x3-t\",\n\t\tlabel: \"Широкая сверху + 2x3\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x3-b\",\n\t\tlabel: \"2x3 + широкая снизу\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"bottom\", row: 3, column: 1, columnSpan: 3 }\n\t\t]\n\t},\n\n\t{\n\t\tid: \"4x2-t\",\n\t\tlabel: \"Широкая сверху + 3x2\",\n\t\tcolumns: 2,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 },\n\t\t\t{ id: \"c42\", row: 4, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x2-b\",\n\t\tlabel: \"3x2 + широкая снизу\",\n\t\tcolumns: 2,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"bottom\", row: 4, column: 1, columnSpan: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x3-t\",\n\t\tlabel: \"Широкая сверху + 3x3\",\n\t\tcolumns: 3,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 },\n\t\t\t{ id: \"c42\", row: 4, column: 2 },\n\t\t\t{ id: \"c43\", row: 4, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x3-b\",\n\t\tlabel: \"3x3 + широкая снизу\",\n\t\tcolumns: 3,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 },\n\t\t\t{ id: \"bottom\", row: 4, column: 1, columnSpan: 3 }\n\t\t]\n\t}\n] as const satisfies readonly LayoutPickerPreset[];\n\nexport type DefaultLayoutPickerPresetId = (typeof DEFAULT_LAYOUT_PICKER_PRESETS)[number][\"id\"];\n\nexport function getDefaultLayoutPickerPresetId(): DefaultLayoutPickerPresetId {\n\treturn DEFAULT_LAYOUT_PICKER_PRESETS[0].id;\n}\n\n/** Возвращает layout-пресет по id с fallback на дефолт chart-ракурса. */\nexport function resolveLayoutPreset(layoutId: string | undefined): LayoutPickerPreset {\n\treturn DEFAULT_LAYOUT_PICKER_PRESETS.find((preset) => preset.id === layoutId) ?? DEFAULT_LAYOUT_PICKER_PRESETS[0];\n}\n\nexport function resolveLayoutCellCount(layoutId: string): number {\n\treturn DEFAULT_LAYOUT_PICKER_PRESETS.find((preset) => preset.id === layoutId)?.cells.length ?? 1;\n}\n","@use \"@/styles/mixins\" as *;\n\n.valueOverlay {\n\tposition: absolute;\n\tinset: 0 calc(var(--control-height) + var(--space-xs)) 0 var(--space-sm);\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-sm);\n\tmin-width: 0;\n\tpointer-events: none;\n\toverflow: hidden;\n}\n\n.triggerInput {\n\t--ui-color: transparent;\n\t--ui-color-hover: transparent;\n\t--ui-color-active: transparent;\n\n\tcolor: transparent;\n\tcaret-color: transparent;\n}\n\n.triggerText {\n\tmin-width: 0;\n\tflex: 1 1 auto;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.popup {\n\twidth: min(calc(100vw - var(--space-lg) * 2), 44em);\n\tmax-height: min(75vh, 34em);\n}\n\n.popupLayout {\n\tmax-height: inherit;\n}\n\n.popupBody {\n\toverflow: auto;\n\tpadding: var(--space-xs);\n}\n\n.options {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(min(100%, 5em), 1fr));\n\tgap: var(--space-sm);\n}\n\n.option {\n\tposition: relative;\n\tpadding: var(--space-sm);\n\t// border: var(--border);\n\tborder-radius: var(--radius-sm);\n\t// background-color: var(--surface-1);\n\ttransition:\n\t\tbackground-color var(--transition-fast) ease,\n\t\tborder-color var(--transition-fast) ease,\n\t\tcolor var(--transition-fast) ease;\n\n\t@include hover(true) {\n\t\tbackground-color: var(--surface-2);\n\t\tborder-color: var(--border-2);\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\topacity: var(--disabled-opacity);\n\t}\n}\n\n.optionActive {\n\tbackground-color: var(--surface-2);\n\tborder-color: var(--border-2);\n}\n\n.optionSelected {\n\tborder-color: var(--border-1);\n\tbackground-color: var(--surface-1);\n\n\t.previewCell {\n\t\tbackground-color: var(--surface-accent);\n\t\tborder: var(--border-width) solid var(--border-accent);\n\t}\n}\n\n.optionPreviewWrap {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.preview,\n.previewPlaceholder {\n\t--layout-picker-preview-size: 3.5em;\n\n\twidth: var(--layout-picker-preview-size);\n\theight: calc(var(--layout-picker-preview-size) * 0.72);\n\tflex: 0 0 auto;\n}\n\n.preview {\n\tdisplay: grid;\n\tgap: calc(var(--border-width) * 2);\n}\n\n.previewCompact,\n.previewPlaceholder {\n\t--layout-picker-preview-size: 1.75rem;\n}\n\n.previewCell {\n\tmin-width: 0;\n\tmin-height: 0;\n\tborder-radius: var(--radius-xs);\n\tbackground-color: var(--surface-1);\n\tborder: var(--border-width) solid var(--border-1);\n}\n\n.previewCompact {\n\t.previewCell {\n\t\tbackground-color: var(--status-brand-fill);\n\t\tborder: none;\n\t}\n}\n","import { useRef, useState } from \"react\";\n\nimport { type Placement } from \"@floating-ui/react\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport {\n\tPickerField,\n\tPickerPopup,\n\tPickerTriggerActions,\n\tPickerTriggerInput,\n\tusePickerFloatingListbox,\n\tusePickerTriggerController\n} from \"../../picker\";\nimport { type UiBaseProps } from \"../../types\";\nimport uiStyles from \"../../ui.module.scss\";\nimport { DEFAULT_LAYOUT_PICKER_PRESETS, getLayoutCellStyle, getLayoutStyle, type LayoutPickerPreset } from \"../lib\";\n\nimport styles from \"./LayoutPicker.module.scss\";\n\nexport interface LayoutPickerProps extends UiBaseProps<string> {\n\tid?: string;\n\tpresets?: readonly LayoutPickerPreset[];\n\tgetPresetDisabled?: (preset: LayoutPickerPreset) => boolean;\n\t/**\n\t * Показывает рядом с превью переданный текст `placeholder`.\n\t * По умолчанию текст скрыт, поэтому trigger отображает только иконку раскладки.\n\t */\n\tshowPlaceholder?: boolean;\n\tariaLabel?: string;\n\tclassName?: string;\n\ttriggerClassName?: string;\n\tpopupClassName?: string;\n\tplacement?: Placement;\n}\n\nconst DEFAULT_PLACEHOLDER = \"Выберите раскладку\";\n\nfunction LayoutPresetPreview({ preset, compact = false }: { preset: LayoutPickerPreset; compact?: boolean }) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn(styles.preview, compact && styles.previewCompact)}\n\t\t\tstyle={getLayoutStyle(preset)}\n\t\t\taria-hidden=\"true\"\n\t\t\tdata-ui=\"layout-picker-preview\">\n\t\t\t{preset.cells.map((cell) => (\n\t\t\t\t<span key={`${preset.id}:${cell.id}`} className={styles.previewCell} style={getLayoutCellStyle(cell)} />\n\t\t\t))}\n\t\t</span>\n\t);\n}\n\n/**\n * Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.\n */\nexport function LayoutPicker({\n\tid,\n\tlabel,\n\tdescription,\n\tvalue,\n\tonChange,\n\tpresets = DEFAULT_LAYOUT_PICKER_PRESETS,\n\tdisabled,\n\tgetPresetDisabled,\n\tplaceholder = DEFAULT_PLACEHOLDER,\n\tshowPlaceholder = false,\n\tsize,\n\tariaLabel,\n\tclassName,\n\ttriggerClassName,\n\tpopupClassName,\n\tplacement = \"bottom-start\"\n}: LayoutPickerProps) {\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst [open, setOpen] = useState(false);\n\tconst selectedIndex = presets.findIndex((preset) => preset.id === value);\n\tconst selectedPreset = selectedIndex >= 0 ? presets[selectedIndex] : undefined;\n\tconst previewPreset = selectedPreset ?? presets[0];\n\tconst triggerLabel = selectedPreset?.label ?? placeholder;\n\tconst {\n\t\tactiveIndex,\n\t\tcontext,\n\t\tfloatingStyles,\n\t\tgetFloatingProps,\n\t\tsetReference,\n\t\tsetFloating,\n\t\tsetOptionRef,\n\t\tclose,\n\t\topenList,\n\t\ttoggleOpen,\n\t\tselectOption,\n\t\tselectActiveOption,\n\t\thandleReferenceKeyDown,\n\t\thandleFloatingKeyDown,\n\t\tgetOptionId,\n\t\tgetActiveOptionId\n\t} = usePickerFloatingListbox({\n\t\toptions: presets,\n\t\tselectedIndex,\n\t\topen,\n\t\tonOpenChange: setOpen,\n\t\tgetOptionDisabled: getPresetDisabled,\n\t\tonSelect: (preset) => onChange(preset.id),\n\t\tdisabled,\n\t\tplacement,\n\t\ttriggerMode: \"display\"\n\t});\n\tconst triggerController = usePickerTriggerController({\n\t\tmode: \"display\",\n\t\topen,\n\t\tcurrentQuery: \"\",\n\t\thasDisplayValue: selectedPreset !== undefined,\n\t\tinputRef,\n\t\topenList,\n\t\tclose,\n\t\ttoggleOpen\n\t});\n\tconst setInputNode = (node: HTMLInputElement | null) => {\n\t\tinputRef.current = node;\n\t};\n\n\treturn (\n\t\t<PickerField id={id} label={label} description={description} disabled={disabled} size={size} className={className}>\n\t\t\t{({ controlId, labelId, describedBy }) => {\n\t\t\t\tconst listId = `${controlId}-listbox`;\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PickerTriggerInput\n\t\t\t\t\t\t\tref={setInputNode}\n\t\t\t\t\t\t\trootRef={setReference}\n\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\tvalue={triggerLabel}\n\t\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\taria-controls={open ? listId : undefined}\n\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\t\t\taria-activedescendant={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\taria-label={!labelId ? (ariaLabel ?? `Выбрать layout. Текущее значение: ${triggerLabel}`) : undefined}\n\t\t\t\t\t\t\tdata-ui=\"layout-picker-trigger\"\n\t\t\t\t\t\t\trootClassName={triggerClassName}\n\t\t\t\t\t\t\tinputClassName={styles.triggerInput}\n\t\t\t\t\t\t\toverlay={\n\t\t\t\t\t\t\t\t<div className={styles.valueOverlay}>\n\t\t\t\t\t\t\t\t\t{previewPreset ? (\n\t\t\t\t\t\t\t\t\t\t<LayoutPresetPreview preset={previewPreset} compact />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<span className={styles.previewPlaceholder} />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{showPlaceholder ? (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(styles.triggerText, uiStyles.uiPlaceholder)}\n\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"layout-picker-placeholder\">\n\t\t\t\t\t\t\t\t\t\t\t{placeholder}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tendAdornment={\n\t\t\t\t\t\t\t\t<PickerTriggerActions\n\t\t\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tonToggleMouseDown={triggerController.handleToggleMouseDown}\n\t\t\t\t\t\t\t\t\tonToggleClick={triggerController.handleToggleClick}\n\t\t\t\t\t\t\t\t\topenAriaLabel=\"Открыть список layout\"\n\t\t\t\t\t\t\t\t\tcloseAriaLabel=\"Закрыть список layout\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={triggerController.handleTriggerClick}\n\t\t\t\t\t\t\tonFocus={(event) => {\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerFocus(event.currentTarget);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\thandleReferenceKeyDown(event);\n\n\t\t\t\t\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerKeyDown({\n\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\tonActivateWhenOpen: selectActiveOption,\n\t\t\t\t\t\t\t\t\tenableSpaceActivation: true\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<PickerPopup\n\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\tcontext={context}\n\t\t\t\t\t\t\tfloatingStyles={floatingStyles}\n\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\tlabelId={labelId}\n\t\t\t\t\t\t\tdescriptionId={describedBy}\n\t\t\t\t\t\t\tactiveOptionId={getActiveOptionId(listId)}\n\t\t\t\t\t\t\tsetFloating={setFloating}\n\t\t\t\t\t\t\tgetFloatingProps={getFloatingProps}\n\t\t\t\t\t\t\tonKeyDown={handleFloatingKeyDown}\n\t\t\t\t\t\t\tclassName={cn(uiStyles.uiPopupOptions, styles.popup, popupClassName)}\n\t\t\t\t\t\t\tlayoutClassName={styles.popupLayout}\n\t\t\t\t\t\t\tbodyClassName={styles.popupBody}>\n\t\t\t\t\t\t\t<div className={styles.options}>\n\t\t\t\t\t\t\t\t{presets.map((preset, index) => {\n\t\t\t\t\t\t\t\t\tconst selected = index === selectedIndex;\n\t\t\t\t\t\t\t\t\tconst active = index === activeIndex;\n\t\t\t\t\t\t\t\t\tconst presetDisabled = getPresetDisabled?.(preset) ?? false;\n\t\t\t\t\t\t\t\t\tconst optionId = getOptionId(listId, index);\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\tkey={preset.id}\n\t\t\t\t\t\t\t\t\t\t\tid={optionId}\n\t\t\t\t\t\t\t\t\t\t\tref={(node) => setOptionRef(index, node)}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={presetDisabled}\n\t\t\t\t\t\t\t\t\t\t\taria-selected={selected}\n\t\t\t\t\t\t\t\t\t\t\taria-disabled={presetDisabled || undefined}\n\t\t\t\t\t\t\t\t\t\t\taria-label={preset.description ? `${preset.label}. ${preset.description}` : preset.label}\n\t\t\t\t\t\t\t\t\t\t\tclassName={cn(styles.option, selected && styles.optionSelected, active && styles.optionActive)}\n\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"layout-picker-option\"\n\t\t\t\t\t\t\t\t\t\t\tdata-selected={selected || undefined}\n\t\t\t\t\t\t\t\t\t\t\tonMouseDown={(event) => event.preventDefault()}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => selectOption(preset)}>\n\t\t\t\t\t\t\t\t\t\t\t<span className={styles.optionPreviewWrap}>\n\t\t\t\t\t\t\t\t\t\t\t\t<LayoutPresetPreview preset={preset} />\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PickerPopup>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}}\n\t\t</PickerField>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/layout-picker/lib/layout.ts","../../src/layout-picker/lib/presets.ts","../../src/layout-picker/ui/LayoutPicker.module.scss","../../src/layout-picker/ui/LayoutPicker.tsx"],"sourcesContent":["import { type CSSProperties } from \"react\";\n\nimport { type LayoutPickerPreset, type LayoutPickerPresetCell } from \"./types\";\n\n/**\n * Возвращает CSS Grid-стиль для схематичного layout-пресета.\n */\nexport function getLayoutStyle(preset: LayoutPickerPreset, rowMinHeightInEm?: number): CSSProperties {\n\treturn {\n\t\tgridTemplateColumns: `repeat(${preset.columns}, minmax(0, 1fr))`,\n\t\tgridTemplateRows: `repeat(${preset.rows}, minmax(${rowMinHeightInEm ?? 0}em, 1fr))`\n\t};\n}\n\n/**\n * Возвращает позиционирование ячейки внутри CSS Grid.\n */\nexport function getLayoutCellStyle(cell: LayoutPickerPresetCell): CSSProperties {\n\treturn {\n\t\tgridColumn: `${cell.column} / span ${cell.columnSpan ?? 1}`,\n\t\tgridRow: `${cell.row} / span ${cell.rowSpan ?? 1}`\n\t};\n}\n","import { type LayoutPickerPreset } from \"./types\";\n\n/**\n * Базовый набор layout-пресетов для первого среза выбора схемы.\n *\n * id формата:\n * - \"2x3\" — 2 строки, 3 колонки\n * - \"2x2-l\" — 2x2 с большой ячейкой слева\n * - \"3x2-b\" — 3x2 с широкой нижней ячейкой\n */\nexport const DEFAULT_LAYOUT_PICKER_PRESETS = [\n\t{\n\t\tid: \"1x1\",\n\t\tlabel: \"1x1\",\n\t\tcolumns: 1,\n\t\trows: 1,\n\t\tcells: [{ id: \"c11\", row: 1, column: 1 }]\n\t},\n\t{\n\t\tid: \"1x2\",\n\t\tlabel: \"1x2\",\n\t\tcolumns: 2,\n\t\trows: 1,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"1x3\",\n\t\tlabel: \"1x3\",\n\t\tcolumns: 3,\n\t\trows: 1,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x1\",\n\t\tlabel: \"2x1\",\n\t\tcolumns: 1,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x2\",\n\t\tlabel: \"2x2\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x3\",\n\t\tlabel: \"2x3\",\n\t\tcolumns: 3,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x1\",\n\t\tlabel: \"3x1\",\n\t\tcolumns: 1,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x2\",\n\t\tlabel: \"3x2\",\n\t\tcolumns: 2,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x3\",\n\t\tlabel: \"3x3\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x1\",\n\t\tlabel: \"4x1\",\n\t\tcolumns: 1,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x2\",\n\t\tlabel: \"4x2\",\n\t\tcolumns: 2,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 },\n\t\t\t{ id: \"c42\", row: 4, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x3\",\n\t\tlabel: \"4x3\",\n\t\tcolumns: 3,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 },\n\t\t\t{ id: \"c42\", row: 4, column: 2 },\n\t\t\t{ id: \"c43\", row: 4, column: 3 }\n\t\t]\n\t},\n\n\t{\n\t\tid: \"2x2-l\",\n\t\tlabel: \"Большая слева + две справа\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"left\", row: 1, column: 1, rowSpan: 2 },\n\t\t\t{ id: \"rt\", row: 1, column: 2 },\n\t\t\t{ id: \"rb\", row: 2, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x2-r\",\n\t\tlabel: \"Две слева + большая справа\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"lt\", row: 1, column: 1 },\n\t\t\t{ id: \"lb\", row: 2, column: 1 },\n\t\t\t{ id: \"right\", row: 1, column: 2, rowSpan: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x2-t\",\n\t\tlabel: \"Широкая сверху + две снизу\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 2 },\n\t\t\t{ id: \"bl\", row: 2, column: 1 },\n\t\t\t{ id: \"br\", row: 2, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"2x2-b\",\n\t\tlabel: \"Две сверху + широкая снизу\",\n\t\tcolumns: 2,\n\t\trows: 2,\n\t\tcells: [\n\t\t\t{ id: \"tl\", row: 1, column: 1 },\n\t\t\t{ id: \"tr\", row: 1, column: 2 },\n\t\t\t{ id: \"bottom\", row: 2, column: 1, columnSpan: 2 }\n\t\t]\n\t},\n\n\t{\n\t\tid: \"3x2-t\",\n\t\tlabel: \"Широкая сверху + 2x2\",\n\t\tcolumns: 2,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x2-b\",\n\t\tlabel: \"2x2 + широкая снизу\",\n\t\tcolumns: 2,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"bottom\", row: 3, column: 1, columnSpan: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x2-m\",\n\t\tlabel: \"Широкая по центру\",\n\t\tcolumns: 2,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"tl\", row: 1, column: 1 },\n\t\t\t{ id: \"tr\", row: 1, column: 2 },\n\t\t\t{ id: \"middle\", row: 2, column: 1, columnSpan: 2 },\n\t\t\t{ id: \"bl\", row: 3, column: 1 },\n\t\t\t{ id: \"br\", row: 3, column: 2 }\n\t\t]\n\t},\n\n\t{\n\t\tid: \"3x3-l\",\n\t\tlabel: \"Большая слева + 2x3 справа\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"left\", row: 1, column: 1, rowSpan: 3 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x3-r\",\n\t\tlabel: \"2x3 слева + большая справа\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"right\", row: 1, column: 3, rowSpan: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x3-t\",\n\t\tlabel: \"Широкая сверху + 2x3\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"3x3-b\",\n\t\tlabel: \"2x3 + широкая снизу\",\n\t\tcolumns: 3,\n\t\trows: 3,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"bottom\", row: 3, column: 1, columnSpan: 3 }\n\t\t]\n\t},\n\n\t{\n\t\tid: \"4x2-t\",\n\t\tlabel: \"Широкая сверху + 3x2\",\n\t\tcolumns: 2,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 },\n\t\t\t{ id: \"c42\", row: 4, column: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x2-b\",\n\t\tlabel: \"3x2 + широкая снизу\",\n\t\tcolumns: 2,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"bottom\", row: 4, column: 1, columnSpan: 2 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x3-t\",\n\t\tlabel: \"Широкая сверху + 3x3\",\n\t\tcolumns: 3,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"top\", row: 1, column: 1, columnSpan: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 },\n\t\t\t{ id: \"c41\", row: 4, column: 1 },\n\t\t\t{ id: \"c42\", row: 4, column: 2 },\n\t\t\t{ id: \"c43\", row: 4, column: 3 }\n\t\t]\n\t},\n\t{\n\t\tid: \"4x3-b\",\n\t\tlabel: \"3x3 + широкая снизу\",\n\t\tcolumns: 3,\n\t\trows: 4,\n\t\tcells: [\n\t\t\t{ id: \"c11\", row: 1, column: 1 },\n\t\t\t{ id: \"c12\", row: 1, column: 2 },\n\t\t\t{ id: \"c13\", row: 1, column: 3 },\n\t\t\t{ id: \"c21\", row: 2, column: 1 },\n\t\t\t{ id: \"c22\", row: 2, column: 2 },\n\t\t\t{ id: \"c23\", row: 2, column: 3 },\n\t\t\t{ id: \"c31\", row: 3, column: 1 },\n\t\t\t{ id: \"c32\", row: 3, column: 2 },\n\t\t\t{ id: \"c33\", row: 3, column: 3 },\n\t\t\t{ id: \"bottom\", row: 4, column: 1, columnSpan: 3 }\n\t\t]\n\t}\n] as const satisfies readonly LayoutPickerPreset[];\n\nexport type DefaultLayoutPickerPresetId = (typeof DEFAULT_LAYOUT_PICKER_PRESETS)[number][\"id\"];\n\nexport function getDefaultLayoutPickerPresetId(): DefaultLayoutPickerPresetId {\n\treturn DEFAULT_LAYOUT_PICKER_PRESETS[0].id;\n}\n\n/** Возвращает layout-пресет по id с fallback на дефолт chart-ракурса. */\nexport function resolveLayoutPreset(layoutId: string | undefined): LayoutPickerPreset {\n\treturn DEFAULT_LAYOUT_PICKER_PRESETS.find((preset) => preset.id === layoutId) ?? DEFAULT_LAYOUT_PICKER_PRESETS[0];\n}\n\nexport function resolveLayoutCellCount(layoutId: string): number {\n\treturn DEFAULT_LAYOUT_PICKER_PRESETS.find((preset) => preset.id === layoutId)?.cells.length ?? 1;\n}\n","@use \"@/styles/mixins\" as *;\n\n.triggerText {\n\tmin-width: 0;\n\tflex: 1 1 auto;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.popup {\n\twidth: min(calc(100vw - var(--space-lg) * 2), 44em);\n\tmax-height: min(75vh, 34em);\n}\n\n.popupLayout {\n\tmax-height: inherit;\n}\n\n.popupBody {\n\toverflow: auto;\n\tpadding: var(--space-xs);\n}\n\n.options {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(min(100%, 5em), 1fr));\n\tgap: var(--space-sm);\n}\n\n.option {\n\tposition: relative;\n\tpadding: var(--space-sm);\n\t// border: var(--border);\n\tborder-radius: var(--radius-sm);\n\t// background-color: var(--surface-1);\n\ttransition:\n\t\tbackground-color var(--transition-fast) ease,\n\t\tborder-color var(--transition-fast) ease,\n\t\tcolor var(--transition-fast) ease;\n\n\t@include hover(true) {\n\t\tbackground-color: var(--surface-2);\n\t\tborder-color: var(--border-2);\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\topacity: var(--disabled-opacity);\n\t}\n}\n\n.option[data-selected] {\n\tborder-color: var(--border-1);\n\tbackground-color: var(--surface-1);\n\n\t.previewCell {\n\t\tbackground-color: var(--surface-accent);\n\t\tborder: var(--border-width) solid var(--border-accent);\n\t}\n}\n\n.optionPreviewWrap {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.preview,\n.previewPlaceholder {\n\t--layout-picker-preview-size: 3.5em;\n\n\twidth: var(--layout-picker-preview-size);\n\theight: calc(var(--layout-picker-preview-size) * 0.72);\n\tflex: 0 0 auto;\n}\n\n.preview {\n\tdisplay: grid;\n\tgap: calc(var(--border-width) * 2);\n}\n\n.previewCompact,\n.previewPlaceholder {\n\t--layout-picker-preview-size: 1.75rem;\n}\n\n.previewCell {\n\tmin-width: 0;\n\tmin-height: 0;\n\tborder-radius: var(--radius-xs);\n\tbackground-color: var(--surface-1);\n\tborder: var(--border-width) solid var(--border-1);\n}\n\n.previewCompact {\n\t.previewCell {\n\t\tbackground-color: var(--status-brand-fill);\n\t\tborder: none;\n\t}\n}\n","import { useRef, useState } from \"react\";\n\nimport { type Placement } from \"@floating-ui/react\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { CustomOptionButton, Option } from \"../../option\";\nimport { PickerField, PickerPopup, PickerTrigger, usePickerFloatingListbox, usePickerTriggerController } from \"../../picker\";\nimport { type UiBaseProps } from \"../../types\";\nimport { DEFAULT_LAYOUT_PICKER_PRESETS, getLayoutCellStyle, getLayoutStyle, type LayoutPickerPreset } from \"../lib\";\n\nimport styles from \"./LayoutPicker.module.scss\";\n\nexport interface LayoutPickerProps extends UiBaseProps<string> {\n\tid?: string;\n\tpresets?: readonly LayoutPickerPreset[];\n\tgetPresetDisabled?: (preset: LayoutPickerPreset) => boolean;\n\t/**\n\t * Показывает рядом с превью переданный текст `placeholder`.\n\t * По умолчанию текст скрыт, поэтому trigger отображает только иконку раскладки.\n\t */\n\tshowPlaceholder?: boolean;\n\tariaLabel?: string;\n\tclassName?: string;\n\ttriggerClassName?: string;\n\tpopupClassName?: string;\n\tplacement?: Placement;\n}\n\nconst DEFAULT_PLACEHOLDER = \"Выберите раскладку\";\n\nfunction LayoutPresetPreview({ preset, compact = false }: { preset: LayoutPickerPreset; compact?: boolean }) {\n\treturn (\n\t\t<span\n\t\t\tclassName={cn(styles.preview, compact && styles.previewCompact)}\n\t\t\tstyle={getLayoutStyle(preset)}\n\t\t\taria-hidden=\"true\"\n\t\t\tdata-ui=\"layout-picker-preview\">\n\t\t\t{preset.cells.map((cell) => (\n\t\t\t\t<span key={`${preset.id}:${cell.id}`} className={styles.previewCell} style={getLayoutCellStyle(cell)} />\n\t\t\t))}\n\t\t</span>\n\t);\n}\n\n/**\n * Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.\n */\nexport function LayoutPicker({\n\tid,\n\tlabel,\n\tdescription,\n\tvalue,\n\tonChange,\n\tpresets = DEFAULT_LAYOUT_PICKER_PRESETS,\n\tdisabled,\n\tgetPresetDisabled,\n\tplaceholder = DEFAULT_PLACEHOLDER,\n\tshowPlaceholder = false,\n\tsize,\n\tariaLabel,\n\tclassName,\n\ttriggerClassName,\n\tpopupClassName,\n\tplacement = \"bottom-start\"\n}: LayoutPickerProps) {\n\tconst inputRef = useRef<HTMLInputElement | null>(null);\n\tconst [open, setOpen] = useState(false);\n\tconst selectedIndex = presets.findIndex((preset) => preset.id === value);\n\tconst selectedPreset = selectedIndex >= 0 ? presets[selectedIndex] : undefined;\n\tconst triggerLabel = selectedPreset?.label ?? placeholder;\n\tconst {\n\t\tactiveIndex,\n\t\tcontext,\n\t\tfloatingStyles,\n\t\tgetFloatingProps,\n\t\tsetReference,\n\t\tsetFloating,\n\t\tsetOptionRef,\n\t\tclose,\n\t\topenList,\n\t\ttoggleOpen,\n\t\tselectOption,\n\t\tselectActiveOption,\n\t\thandleReferenceKeyDown,\n\t\thandleFloatingKeyDown,\n\t\tgetOptionId,\n\t\tgetActiveOptionId\n\t} = usePickerFloatingListbox({\n\t\toptions: presets,\n\t\tselectedIndex,\n\t\topen,\n\t\tonOpenChange: setOpen,\n\t\tgetOptionDisabled: getPresetDisabled,\n\t\tonSelect: (preset) => onChange(preset.id),\n\t\tdisabled,\n\t\tplacement,\n\t\ttriggerMode: \"display\"\n\t});\n\tconst triggerController = usePickerTriggerController({\n\t\tmode: \"display\",\n\t\topen,\n\t\tcurrentQuery: \"\",\n\t\thasDisplayValue: selectedPreset !== undefined,\n\t\tinputRef,\n\t\topenList,\n\t\tclose,\n\t\ttoggleOpen\n\t});\n\tconst setInputNode = (node: HTMLInputElement | null) => {\n\t\tinputRef.current = node;\n\t};\n\n\treturn (\n\t\t<PickerField id={id} label={label} description={description} disabled={disabled} size={size} className={className}>\n\t\t\t{({ controlId, labelId, describedBy }) => {\n\t\t\t\tconst listId = `${controlId}-listbox`;\n\n\t\t\t\treturn (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<PickerTrigger\n\t\t\t\t\t\t\tref={setInputNode}\n\t\t\t\t\t\t\trootRef={setReference}\n\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\toptionCount={presets.length}\n\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\t\tvalue={triggerLabel}\n\t\t\t\t\t\t\tselectedValue={\n\t\t\t\t\t\t\t\tselectedPreset ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<LayoutPresetPreview preset={selectedPreset} compact />\n\t\t\t\t\t\t\t\t\t\t{showPlaceholder ? (\n\t\t\t\t\t\t\t\t\t\t\t<span className={styles.triggerText} data-ui=\"layout-picker-selected-label\">\n\t\t\t\t\t\t\t\t\t\t\t\t{selectedPreset.label}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thasSelection={selectedPreset !== undefined}\n\t\t\t\t\t\t\tshowSelectedValue={selectedPreset !== undefined}\n\t\t\t\t\t\t\tonToggleMouseDown={triggerController.handleToggleMouseDown}\n\t\t\t\t\t\t\tonToggleClick={triggerController.handleToggleClick}\n\t\t\t\t\t\t\topenAriaLabel=\"Открыть список layout\"\n\t\t\t\t\t\t\tcloseAriaLabel=\"Закрыть список layout\"\n\t\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\t\taria-controls={open ? listId : undefined}\n\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\t\t\taria-activedescendant={open ? getActiveOptionId(listId) : undefined}\n\t\t\t\t\t\t\taria-label={!labelId ? (ariaLabel ?? `Выбрать layout. Текущее значение: ${triggerLabel}`) : undefined}\n\t\t\t\t\t\t\tdata-ui=\"layout-picker-trigger\"\n\t\t\t\t\t\t\trootClassName={triggerClassName}\n\t\t\t\t\t\t\tonClick={triggerController.handleTriggerClick}\n\t\t\t\t\t\t\tonFocus={(event) => {\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerFocus(event.currentTarget);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyDown={(event) => {\n\t\t\t\t\t\t\t\thandleReferenceKeyDown(event);\n\n\t\t\t\t\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\ttriggerController.handleTriggerKeyDown({\n\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\tonActivateWhenOpen: selectActiveOption,\n\t\t\t\t\t\t\t\t\tenableSpaceActivation: true\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<PickerPopup\n\t\t\t\t\t\t\topen={open}\n\t\t\t\t\t\t\tcontext={context}\n\t\t\t\t\t\t\tfloatingStyles={floatingStyles}\n\t\t\t\t\t\t\tlistId={listId}\n\t\t\t\t\t\t\tlabelId={labelId}\n\t\t\t\t\t\t\tdescriptionId={describedBy}\n\t\t\t\t\t\t\tactiveOptionId={getActiveOptionId(listId)}\n\t\t\t\t\t\t\tsetFloating={setFloating}\n\t\t\t\t\t\t\tgetFloatingProps={getFloatingProps}\n\t\t\t\t\t\t\tonKeyDown={handleFloatingKeyDown}\n\t\t\t\t\t\t\tclassName={cn(styles.popup, popupClassName)}\n\t\t\t\t\t\t\tlayoutClassName={styles.popupLayout}\n\t\t\t\t\t\t\tbodyClassName={styles.popupBody}>\n\t\t\t\t\t\t\t<div className={styles.options}>\n\t\t\t\t\t\t\t\t{presets.map((preset, index) => {\n\t\t\t\t\t\t\t\t\tconst selected = index === selectedIndex;\n\t\t\t\t\t\t\t\t\tconst active = index === activeIndex;\n\t\t\t\t\t\t\t\t\tconst presetDisabled = getPresetDisabled?.(preset) ?? false;\n\t\t\t\t\t\t\t\t\tconst optionId = getOptionId(listId, index);\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<Option\n\t\t\t\t\t\t\t\t\t\t\tkey={preset.id}\n\t\t\t\t\t\t\t\t\t\t\tid={optionId}\n\t\t\t\t\t\t\t\t\t\t\tref={(node) => setOptionRef(index, node)}\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\taria-selected={selected}\n\t\t\t\t\t\t\t\t\t\t\taria-disabled={presetDisabled || undefined}\n\t\t\t\t\t\t\t\t\t\t\taria-label={preset.description ? `${preset.label}. ${preset.description}` : preset.label}\n\t\t\t\t\t\t\t\t\t\t\tclassName={styles.option}\n\t\t\t\t\t\t\t\t\t\t\tactive={active}\n\t\t\t\t\t\t\t\t\t\t\tselected={selected}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={presetDisabled}\n\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"layout-picker-option\"\n\t\t\t\t\t\t\t\t\t\t\tdata-selected={selected || undefined}>\n\t\t\t\t\t\t\t\t\t\t\t<CustomOptionButton\n\t\t\t\t\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={presetDisabled}\n\n\t\t\t\t\t\t\t\t\t\t\t\tonMouseDown={(event) => event.preventDefault()}\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => selectOption(preset)}>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className={styles.optionPreviewWrap}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<LayoutPresetPreview preset={preset} />\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</CustomOptionButton>\n\t\t\t\t\t\t\t\t\t\t</Option>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PickerPopup>\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}}\n\t\t</PickerField>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutPicker.d.ts","sourceRoot":"","sources":["../../../src/layout-picker/ui/LayoutPicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"LayoutPicker.d.ts","sourceRoot":"","sources":["../../../src/layout-picker/ui/LayoutPicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAqE,KAAK,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAIpH,MAAM,WAAW,iBAAkB,SAAQ,WAAW,CAAC,MAAM,CAAC;IAC7D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC;IAC5D;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,SAAS,CAAC;CACtB;AAkBD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC5B,EAAE,EACF,KAAK,EACL,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAuC,EACvC,QAAQ,EACR,iBAAiB,EACjB,WAAiC,EACjC,eAAuB,EACvB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,SAA0B,EAC1B,EAAE,iBAAiB,+BA4KnB"}
|
|
@@ -4,7 +4,7 @@ type ListboxOption<T> = {
|
|
|
4
4
|
label?: string;
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
};
|
|
7
|
-
interface ListboxBaseProps<T> extends Omit<HTMLAttributes<
|
|
7
|
+
interface ListboxBaseProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue" | "value"> {
|
|
8
8
|
options: ListboxOption<T>[];
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
focusOnMount?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Listbox.d.ts","sourceRoot":"","sources":["../../src/listbox/Listbox.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Listbox.d.ts","sourceRoot":"","sources":["../../src/listbox/Listbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEN,cAAc,EACd,GAAG,EAEH,SAAS,EAOT,MAAM,OAAO,CAAC;AAaf,KAAK,aAAa,CAAC,CAAC,IAAI;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,UAAU,gBAAgB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC;IAChH,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,SAAS,CAAC;IACzF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC7D;AAGD,UAAU,kBAAkB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACxD;AAGD,UAAU,iBAAiB,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IACzD,QAAQ,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CAC1D;AA4BD;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;AACtE,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC"}
|
package/dist/listbox/index.js
CHANGED
|
@@ -1,86 +1,98 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { CustomOptionButton as e, Option as t, OptionButton as n } from "../option/index.js";
|
|
2
|
+
import { h as r } from "../chunks/picker-0I1yMKIY.js";
|
|
3
|
+
import { useEffect as i, useId as a, useLayoutEffect as o, useMemo as s, useRef as c, useState as l } from "react";
|
|
4
|
+
import { findFirstEnabledIndex as u, findLastEnabledIndex as d, findNextEnabledIndex as f, handleKeyboardActivation as p } from "@ryuzaki13/react-foundation-lib/utils";
|
|
5
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
6
|
+
import { CheckIcon as h } from "lucide-react";
|
|
6
7
|
//#region src/listbox/Listbox.tsx
|
|
7
|
-
var
|
|
8
|
-
function
|
|
8
|
+
var g = (e) => e.disabled === !0;
|
|
9
|
+
function _(e, t, n) {
|
|
9
10
|
if (n) {
|
|
10
11
|
if (Array.isArray(t) && t.length > 0) {
|
|
11
12
|
let n = e.findIndex((e) => t.includes(e.value) && !e.disabled);
|
|
12
13
|
if (n >= 0) return n;
|
|
13
14
|
}
|
|
14
|
-
return
|
|
15
|
+
return u(e, g);
|
|
15
16
|
}
|
|
16
17
|
if (t !== void 0) {
|
|
17
18
|
let n = e.findIndex((e) => e.value === t && !e.disabled);
|
|
18
19
|
if (n >= 0) return n;
|
|
19
20
|
}
|
|
20
|
-
return
|
|
21
|
+
return u(e, g);
|
|
21
22
|
}
|
|
22
|
-
function
|
|
23
|
-
let { value:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
]),
|
|
29
|
-
if (
|
|
23
|
+
function v(v) {
|
|
24
|
+
let { value: y, defaultValue: b, multiple: x, disabled: S, focusOnMount: C, renderItem: w, getKey: T, options: E, onChange: D, id: O, ...k } = v, A = y !== void 0, j = a(), M = O ?? `${j}-listbox`, [N, P] = l(b), F = c(null), [I, L] = l(() => _(E, y ?? b, x)), R = c(!1), z = s(() => (A ? y : N) ?? (x ? [] : null), [
|
|
25
|
+
N,
|
|
26
|
+
A,
|
|
27
|
+
x,
|
|
28
|
+
y
|
|
29
|
+
]), B = I, V = (e) => {
|
|
30
|
+
if (S || e.disabled) return;
|
|
30
31
|
let t;
|
|
31
|
-
if (
|
|
32
|
-
let n = Array.isArray(
|
|
33
|
-
t = n.includes(e.value) ? n.filter((t) => t !== e.value) : [...n, e.value],
|
|
34
|
-
} else t = e.value,
|
|
35
|
-
|
|
32
|
+
if (v.multiple) {
|
|
33
|
+
let n = Array.isArray(z) ? z : [];
|
|
34
|
+
t = n.includes(e.value) ? n.filter((t) => t !== e.value) : [...n, e.value], v.onChange?.(t, e);
|
|
35
|
+
} else t = e.value, v.onChange?.(t, e);
|
|
36
|
+
A || P(t);
|
|
36
37
|
};
|
|
37
|
-
return
|
|
38
|
-
if (!
|
|
39
|
-
|
|
40
|
-
let e =
|
|
38
|
+
return i(() => {
|
|
39
|
+
if (!R.current) return;
|
|
40
|
+
R.current = !1;
|
|
41
|
+
let e = F.current?.querySelectorAll("[role=\"option\"]")[B];
|
|
41
42
|
e && e.scrollIntoView({ block: "nearest" });
|
|
42
|
-
}, [
|
|
43
|
-
|
|
44
|
-
}, [
|
|
45
|
-
|
|
46
|
-
id:
|
|
43
|
+
}, [B]), o(() => {
|
|
44
|
+
C && F.current?.focus();
|
|
45
|
+
}, [C]), /* @__PURE__ */ m(r, {
|
|
46
|
+
rootRef: F,
|
|
47
|
+
id: M,
|
|
47
48
|
role: "listbox",
|
|
48
|
-
"aria-multiselectable":
|
|
49
|
-
"aria-activedescendant":
|
|
49
|
+
"aria-multiselectable": x || void 0,
|
|
50
|
+
"aria-activedescendant": B >= 0 ? `${M}-option-${B}` : void 0,
|
|
50
51
|
onKeyDown: (e) => {
|
|
51
|
-
if (!
|
|
52
|
-
if (e.key === "ArrowDown") e.preventDefault(),
|
|
53
|
-
else if (e.key === "ArrowUp") e.preventDefault(),
|
|
54
|
-
else if (e.key === "Home") e.preventDefault(),
|
|
55
|
-
else if (e.key === "End") e.preventDefault(),
|
|
56
|
-
else if (
|
|
57
|
-
let e =
|
|
58
|
-
e &&
|
|
52
|
+
if (!S) {
|
|
53
|
+
if (e.key === "ArrowDown") e.preventDefault(), R.current = !0, L((e) => f(E, e, 1, g));
|
|
54
|
+
else if (e.key === "ArrowUp") e.preventDefault(), R.current = !0, L((e) => f(E, e, -1, g));
|
|
55
|
+
else if (e.key === "Home") e.preventDefault(), R.current = !0, L(u(E, g));
|
|
56
|
+
else if (e.key === "End") e.preventDefault(), R.current = !0, L(d(E, g));
|
|
57
|
+
else if (p(e, () => {
|
|
58
|
+
let e = E[B];
|
|
59
|
+
e && V(e);
|
|
59
60
|
})) return;
|
|
60
61
|
}
|
|
61
62
|
},
|
|
62
|
-
...
|
|
63
|
-
"aria-disabled":
|
|
64
|
-
tabIndex:
|
|
65
|
-
className:
|
|
66
|
-
children:
|
|
67
|
-
let
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
...k,
|
|
64
|
+
"aria-disabled": S || void 0,
|
|
65
|
+
tabIndex: S ? -1 : 0,
|
|
66
|
+
className: k.className,
|
|
67
|
+
children: E.map((r, i) => {
|
|
68
|
+
let a = x ? Array.isArray(z) && z.includes(r.value) : z === r.value, o = i === B, s = S || r.disabled || void 0, c = (e) => {
|
|
69
|
+
e.preventDefault(), !s && (L(i), V(r));
|
|
70
|
+
};
|
|
71
|
+
return /* @__PURE__ */ m(t, {
|
|
72
|
+
id: `${M}-option-${i}`,
|
|
70
73
|
role: "option",
|
|
71
|
-
"aria-selected":
|
|
72
|
-
"aria-disabled":
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
"aria-selected": a,
|
|
75
|
+
"aria-disabled": s,
|
|
76
|
+
disabled: s,
|
|
77
|
+
active: o,
|
|
78
|
+
selected: a,
|
|
79
|
+
children: w ? /* @__PURE__ */ m(e, {
|
|
80
|
+
tabIndex: -1,
|
|
81
|
+
disabled: s,
|
|
82
|
+
onMouseDown: c,
|
|
83
|
+
children: w(r, a, o)
|
|
84
|
+
}) : /* @__PURE__ */ m(n, {
|
|
85
|
+
tabIndex: -1,
|
|
86
|
+
disabled: s,
|
|
87
|
+
onMouseDown: c,
|
|
88
|
+
icon: m(a ? h : "span", {}),
|
|
89
|
+
text: r.label ?? String(r.value)
|
|
90
|
+
})
|
|
91
|
+
}, T ? T(r, i) : i);
|
|
80
92
|
})
|
|
81
93
|
});
|
|
82
94
|
}
|
|
83
95
|
//#endregion
|
|
84
|
-
export {
|
|
96
|
+
export { v as Listbox };
|
|
85
97
|
|
|
86
98
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/listbox/Listbox.tsx"],"sourcesContent":["import { HTMLAttributes, JSX, KeyboardEvent, ReactNode, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from \"react\";\n\nimport {\n\tcn,\n\tfindFirstEnabledIndex,\n\tfindLastEnabledIndex,\n\tfindNextEnabledIndex,\n\thandleKeyboardActivation\n} from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport uiStyles from \"../ui.module.scss\";\n\ntype ListboxOption<T> = {\n\tvalue: T;\n\tlabel?: string;\n\tdisabled?: boolean;\n};\n\ninterface ListboxBaseProps<T> extends Omit<HTMLAttributes<HTMLUListElement>, \"onChange\" | \"defaultValue\" | \"value\"> {\n\toptions: ListboxOption<T>[];\n\tdisabled?: boolean;\n\tfocusOnMount?: boolean;\n\trenderItem?: (option: ListboxOption<T>, selected: boolean, active: boolean) => ReactNode;\n\tgetKey?: (option: ListboxOption<T>, index: number) => string;\n}\n\n// Вариант для single-select\ninterface ListboxSingleProps<T> extends ListboxBaseProps<T> {\n\tmultiple?: false;\n\tvalue?: T;\n\tdefaultValue?: T;\n\tonChange?: (value: T, option: ListboxOption<T>) => void;\n}\n\n// Вариант для multi-select\ninterface ListboxMultiProps<T> extends ListboxBaseProps<T> {\n\tmultiple: true;\n\tvalue?: T[];\n\tdefaultValue?: T[];\n\tonChange?: (value: T[], option: ListboxOption<T>) => void;\n}\n\ntype ListboxProps<T> = ListboxSingleProps<T> | ListboxMultiProps<T>;\n\nconst isOptionDisabled = <T,>(option: ListboxOption<T>) => option.disabled === true;\n\nfunction getInitialFocusIndex<T>(options: ListboxOption<T>[], value: T | T[] | undefined, multiple: boolean | undefined) {\n\tif (multiple) {\n\t\tif (Array.isArray(value) && value.length > 0) {\n\t\t\tconst selectedIndex = options.findIndex((option) => value.includes(option.value) && !option.disabled);\n\t\t\tif (selectedIndex >= 0) {\n\t\t\t\treturn selectedIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn findFirstEnabledIndex(options, isOptionDisabled);\n\t}\n\n\tif (value !== undefined) {\n\t\tconst selectedIndex = options.findIndex((option) => option.value === value && !option.disabled);\n\t\tif (selectedIndex >= 0) {\n\t\t\treturn selectedIndex;\n\t\t}\n\t}\n\n\treturn findFirstEnabledIndex(options, isOptionDisabled);\n}\n\n/**\n * Компонент выбора одного или нескольких элементов из списка. Поддерживает controlled API, поиск по данным и рендер кастомных опций.\n */\nexport function Listbox<T>(props: ListboxSingleProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxMultiProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxProps<T>): JSX.Element {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst { value, defaultValue, multiple, disabled, focusOnMount, renderItem, getKey, options, onChange, id: externalId, ...rest } = props;\n\n\tconst isControlled = value !== undefined;\n\tconst autoId = useId();\n\tconst listId = externalId ?? `${autoId}-listbox`;\n\tconst [internalValue, setInternalValue] = useState<T | T[] | undefined>(defaultValue);\n\tconst listRef = useRef<HTMLUListElement>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState(() => getInitialFocusIndex(options, value ?? defaultValue, multiple));\n\t/**\n\t * Прокрутка нужна только после клавиатурной навигации. Это не даёт монтированию и Fast Refresh\n\t * вызывать scrollIntoView, который иначе прокручивает внешнюю страницу до Listbox.\n\t */\n\tconst shouldScrollActiveOptionRef = useRef(false);\n\n\tconst selectedValues = useMemo(\n\t\t() => (isControlled ? value : internalValue) ?? (multiple ? [] : null),\n\t\t[internalValue, isControlled, multiple, value]\n\t);\n\tconst activeIndex = focusedIndex;\n\n\tconst handleSelect = (option: ListboxOption<T>) => {\n\t\tif (disabled || option.disabled) return;\n\n\t\tlet newValue: T | T[];\n\t\tif (props.multiple) {\n\t\t\tconst arr = Array.isArray(selectedValues) ? selectedValues : [];\n\t\t\tnewValue = arr.includes(option.value) ? arr.filter((v) => v !== option.value) : [...arr, option.value];\n\n\t\t\tprops.onChange?.(newValue, option);\n\t\t} else {\n\t\t\tnewValue = option.value;\n\n\t\t\tprops.onChange?.(newValue, option);\n\t\t}\n\n\t\tif (!isControlled) setInternalValue(newValue);\n\t};\n\n\tconst handleKeyDown = (e: KeyboardEvent<HTMLUListElement>) => {\n\t\tif (disabled) return;\n\n\t\tif (e.key === \"ArrowDown\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, 1, isOptionDisabled));\n\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, -1, isOptionDisabled));\n\t\t} else if (e.key === \"Home\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findFirstEnabledIndex(options, isOptionDisabled));\n\t\t} else if (e.key === \"End\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findLastEnabledIndex(options, isOptionDisabled));\n\t\t} else if (\n\t\t\thandleKeyboardActivation(e, () => {\n\t\t\t\tconst activeOption = options[activeIndex];\n\t\t\t\tif (activeOption) {\n\t\t\t\t\thandleSelect(activeOption);\n\t\t\t\t}\n\t\t\t})\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!shouldScrollActiveOptionRef.current) return;\n\n\t\tshouldScrollActiveOptionRef.current = false;\n\t\tconst el = listRef.current?.querySelectorAll<HTMLElement>('[role=\"option\"]')[activeIndex];\n\t\tif (el) el.scrollIntoView({ block: \"nearest\" });\n\t}, [activeIndex]);\n\n\tuseLayoutEffect(() => {\n\t\tif (focusOnMount) {\n\t\t\tlistRef.current?.focus();\n\t\t}\n\t}, [focusOnMount]);\n\n\treturn (\n\t\t<ul\n\t\t\tref={listRef}\n\t\t\tid={listId}\n\t\t\trole=\"listbox\"\n\t\t\taria-multiselectable={multiple || undefined}\n\t\t\taria-activedescendant={activeIndex >= 0 ? `${listId}-option-${activeIndex}` : undefined}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\t{...rest}\n\t\t\taria-disabled={disabled || undefined}\n\t\t\ttabIndex={disabled ? -1 : 0}\n\t\t\tclassName={cn(uiStyles.uiPanel, \"scrollable\", disabled && uiStyles.disabled)}>\n\t\t\t{options.map((option, index) => {\n\t\t\t\tconst selected = multiple\n\t\t\t\t\t? Array.isArray(selectedValues) && selectedValues.includes(option.value)\n\t\t\t\t\t: selectedValues === option.value;\n\t\t\t\tconst active = index === activeIndex;\n\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tkey={getKey ? getKey(option, index) : index}\n\t\t\t\t\t\tid={`${listId}-option-${index}`}\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-selected={selected}\n\t\t\t\t\t\taria-disabled={disabled || option.disabled || undefined}\n\t\t\t\t\t\tonMouseDown={(e) => {\n\t\t\t\t\t\t\te.preventDefault(); // чтобы не сбрасывался фокус listbox\n\t\t\t\t\t\t\tif (disabled || option.disabled) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetFocusedIndex(index);\n\t\t\t\t\t\t\thandleSelect(option);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\tuiStyles.uiPopupOption,\n\t\t\t\t\t\t\t(disabled || option.disabled) && uiStyles.disabled,\n\t\t\t\t\t\t\tactive && uiStyles.uiPopupOptionActive,\n\t\t\t\t\t\t\tselected && uiStyles.selected\n\t\t\t\t\t\t)}>\n\t\t\t\t\t\t{selected ? (\n\t\t\t\t\t\t\t<CheckIcon className={uiStyles.uiPopupOptionIcon} />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className={uiStyles.uiPopupOptionIcon}></span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div /*className={uiStyles.uiOptionText}*/>\n\t\t\t\t\t\t\t{renderItem ? renderItem(option, selected, active) : (option.label ?? String(option.value))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ul>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/listbox/Listbox.tsx"],"sourcesContent":["import {\n\ttype MouseEvent,\n\tHTMLAttributes,\n\tJSX,\n\tKeyboardEvent,\n\tReactNode,\n\tuseEffect,\n\tuseId,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState\n} from \"react\";\n\nimport {\n\tfindFirstEnabledIndex,\n\tfindLastEnabledIndex,\n\tfindNextEnabledIndex,\n\thandleKeyboardActivation\n} from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { CustomOptionButton, Option, OptionButton } from \"../option\";\nimport { PickerOptions } from \"../picker\";\n\ntype ListboxOption<T> = {\n\tvalue: T;\n\tlabel?: string;\n\tdisabled?: boolean;\n};\n\ninterface ListboxBaseProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\" | \"defaultValue\" | \"value\"> {\n\toptions: ListboxOption<T>[];\n\tdisabled?: boolean;\n\tfocusOnMount?: boolean;\n\trenderItem?: (option: ListboxOption<T>, selected: boolean, active: boolean) => ReactNode;\n\tgetKey?: (option: ListboxOption<T>, index: number) => string;\n}\n\n// Вариант для single-select\ninterface ListboxSingleProps<T> extends ListboxBaseProps<T> {\n\tmultiple?: false;\n\tvalue?: T;\n\tdefaultValue?: T;\n\tonChange?: (value: T, option: ListboxOption<T>) => void;\n}\n\n// Вариант для multi-select\ninterface ListboxMultiProps<T> extends ListboxBaseProps<T> {\n\tmultiple: true;\n\tvalue?: T[];\n\tdefaultValue?: T[];\n\tonChange?: (value: T[], option: ListboxOption<T>) => void;\n}\n\ntype ListboxProps<T> = ListboxSingleProps<T> | ListboxMultiProps<T>;\n\nconst isOptionDisabled = <T,>(option: ListboxOption<T>) => option.disabled === true;\n\nfunction getInitialFocusIndex<T>(options: ListboxOption<T>[], value: T | T[] | undefined, multiple: boolean | undefined) {\n\tif (multiple) {\n\t\tif (Array.isArray(value) && value.length > 0) {\n\t\t\tconst selectedIndex = options.findIndex((option) => value.includes(option.value) && !option.disabled);\n\t\t\tif (selectedIndex >= 0) {\n\t\t\t\treturn selectedIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn findFirstEnabledIndex(options, isOptionDisabled);\n\t}\n\n\tif (value !== undefined) {\n\t\tconst selectedIndex = options.findIndex((option) => option.value === value && !option.disabled);\n\t\tif (selectedIndex >= 0) {\n\t\t\treturn selectedIndex;\n\t\t}\n\t}\n\n\treturn findFirstEnabledIndex(options, isOptionDisabled);\n}\n\n/**\n * Компонент выбора одного или нескольких элементов из списка. Поддерживает controlled API, поиск по данным и рендер кастомных опций.\n */\nexport function Listbox<T>(props: ListboxSingleProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxMultiProps<T>): JSX.Element;\nexport function Listbox<T>(props: ListboxProps<T>): JSX.Element {\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\tconst { value, defaultValue, multiple, disabled, focusOnMount, renderItem, getKey, options, onChange, id: externalId, ...rest } = props;\n\n\tconst isControlled = value !== undefined;\n\tconst autoId = useId();\n\tconst listId = externalId ?? `${autoId}-listbox`;\n\tconst [internalValue, setInternalValue] = useState<T | T[] | undefined>(defaultValue);\n\tconst listRef = useRef<HTMLDivElement>(null);\n\tconst [focusedIndex, setFocusedIndex] = useState(() => getInitialFocusIndex(options, value ?? defaultValue, multiple));\n\t/**\n\t * Прокрутка нужна только после клавиатурной навигации. Это не даёт монтированию и Fast Refresh\n\t * вызывать scrollIntoView, который иначе прокручивает внешнюю страницу до Listbox.\n\t */\n\tconst shouldScrollActiveOptionRef = useRef(false);\n\n\tconst selectedValues = useMemo(\n\t\t() => (isControlled ? value : internalValue) ?? (multiple ? [] : null),\n\t\t[internalValue, isControlled, multiple, value]\n\t);\n\tconst activeIndex = focusedIndex;\n\n\tconst handleSelect = (option: ListboxOption<T>) => {\n\t\tif (disabled || option.disabled) return;\n\n\t\tlet newValue: T | T[];\n\t\tif (props.multiple) {\n\t\t\tconst arr = Array.isArray(selectedValues) ? selectedValues : [];\n\t\t\tnewValue = arr.includes(option.value) ? arr.filter((v) => v !== option.value) : [...arr, option.value];\n\n\t\t\tprops.onChange?.(newValue, option);\n\t\t} else {\n\t\t\tnewValue = option.value;\n\n\t\t\tprops.onChange?.(newValue, option);\n\t\t}\n\n\t\tif (!isControlled) setInternalValue(newValue);\n\t};\n\n\tconst handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n\t\tif (disabled) return;\n\n\t\tif (e.key === \"ArrowDown\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, 1, isOptionDisabled));\n\t\t} else if (e.key === \"ArrowUp\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex((index) => findNextEnabledIndex(options, index, -1, isOptionDisabled));\n\t\t} else if (e.key === \"Home\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findFirstEnabledIndex(options, isOptionDisabled));\n\t\t} else if (e.key === \"End\") {\n\t\t\te.preventDefault();\n\t\t\tshouldScrollActiveOptionRef.current = true;\n\t\t\t// setHoveredIndex(null);\n\t\t\tsetFocusedIndex(findLastEnabledIndex(options, isOptionDisabled));\n\t\t} else if (\n\t\t\thandleKeyboardActivation(e, () => {\n\t\t\t\tconst activeOption = options[activeIndex];\n\t\t\t\tif (activeOption) {\n\t\t\t\t\thandleSelect(activeOption);\n\t\t\t\t}\n\t\t\t})\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!shouldScrollActiveOptionRef.current) return;\n\n\t\tshouldScrollActiveOptionRef.current = false;\n\t\tconst el = listRef.current?.querySelectorAll<HTMLElement>('[role=\"option\"]')[activeIndex];\n\t\tif (el) el.scrollIntoView({ block: \"nearest\" });\n\t}, [activeIndex]);\n\n\tuseLayoutEffect(() => {\n\t\tif (focusOnMount) {\n\t\t\tlistRef.current?.focus();\n\t\t}\n\t}, [focusOnMount]);\n\n\treturn (\n\t\t<PickerOptions\n\t\t\trootRef={listRef}\n\t\t\tid={listId}\n\t\t\trole=\"listbox\"\n\t\t\t// aria-label={}\n\t\t\taria-multiselectable={multiple || undefined}\n\t\t\taria-activedescendant={activeIndex >= 0 ? `${listId}-option-${activeIndex}` : undefined}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\t{...rest}\n\t\t\taria-disabled={disabled || undefined}\n\t\t\ttabIndex={disabled ? -1 : 0}\n\t\t\tclassName={rest.className}>\n\t\t\t{options.map((option, index) => {\n\t\t\t\tconst selected = multiple\n\t\t\t\t\t? Array.isArray(selectedValues) && selectedValues.includes(option.value)\n\t\t\t\t\t: selectedValues === option.value;\n\t\t\t\tconst active = index === activeIndex;\n\t\t\t\tconst optionDisabled = disabled || option.disabled || undefined;\n\n\t\t\t\tconst handleMouseDown = (e: MouseEvent<HTMLButtonElement>) => {\n\t\t\t\t\te.preventDefault(); // чтобы не сбрасывался фокус listbox\n\t\t\t\t\tif (optionDisabled) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsetFocusedIndex(index);\n\t\t\t\t\thandleSelect(option);\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tkey={getKey ? getKey(option, index) : index}\n\t\t\t\t\t\tid={`${listId}-option-${index}`}\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\taria-selected={selected}\n\t\t\t\t\t\taria-disabled={optionDisabled}\n\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\tactive={active}\n\t\t\t\t\t\tselected={selected}>\n\t\t\t\t\t\t{renderItem ? (\n\t\t\t\t\t\t\t<CustomOptionButton tabIndex={-1} disabled={optionDisabled} onMouseDown={handleMouseDown}>\n\t\t\t\t\t\t\t\t{renderItem(option, selected, active)}\n\t\t\t\t\t\t\t</CustomOptionButton>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<OptionButton\n\t\t\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t\t\t\tdisabled={optionDisabled}\n\t\t\t\t\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\t\t\t\t\ticon={selected ? <CheckIcon /> : <span />}\n\t\t\t\t\t\t\t\ttext={option.label ?? String(option.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Option>\n\t\t\t\t);\n\t\t\t})}\n\t\t</PickerOptions>\n\t);\n}\n"],"mappings":"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"}
|
package/dist/modal/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/modal-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/modal-Bar-j5a4.js";
|
|
2
2
|
export { n as Modal, i as ModalContent, t as ModalFooter, r as ModalManagerContext, o as ModalManagerProvider, e as ModalToolbar, a as useModalManager };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, i as t, n, r,
|
|
2
|
-
export { e as MultiSelect,
|
|
1
|
+
import { a as e, i as t, n, r, t as i } from "../chunks/multi-select-Cvjz9W07.js";
|
|
2
|
+
export { e as MultiSelect, n as ODataDependentMultiSelect, r as ODataDependentSegmentMultiSelect, t as ODataMultiSelect, i as SerializableMultiSelect };
|
|
@@ -8,6 +8,16 @@ export interface MultiSelectItemState {
|
|
|
8
8
|
query: string;
|
|
9
9
|
highlightQuery: string;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Структурированное содержимое опции множественного выбора. `MultiSelect` владеет
|
|
13
|
+
* интерактивной оболочкой и checkbox-слотом, а renderer отвечает только за данные
|
|
14
|
+
* текстовой части, поэтому единая композиция `OptionButton` сохраняется и для
|
|
15
|
+
* произвольного ReactNode.
|
|
16
|
+
*/
|
|
17
|
+
export interface MultiSelectOptionContent {
|
|
18
|
+
text: string;
|
|
19
|
+
code: string;
|
|
20
|
+
}
|
|
11
21
|
export interface MultiSelectRenderContext {
|
|
12
22
|
selectedItems: CollectionItem[];
|
|
13
23
|
committedSelectedItems: CollectionItem[];
|
|
@@ -28,7 +38,7 @@ type MultiSelectOptionalRenderer<TContext> = ((context: TContext) => React.React
|
|
|
28
38
|
interface MultiSelectRenderers {
|
|
29
39
|
renderToken?: MultiSelectOptionalRenderer<MultiSelectRenderContext>;
|
|
30
40
|
renderToolbar?: MultiSelectOptionalRenderer<MultiSelectRenderContext>;
|
|
31
|
-
renderItem?: (item: CollectionItem, state: MultiSelectItemState) =>
|
|
41
|
+
renderItem?: (item: CollectionItem, state: MultiSelectItemState) => MultiSelectOptionContent;
|
|
32
42
|
}
|
|
33
43
|
export interface MultiSelectProps<TOption extends Record<string, string> = CollectionItem> extends MultiSelectRenderers, UiBaseProps<TOption[]> {
|
|
34
44
|
codeKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../src/multi-select/ui/MultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqF,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../../src/multi-select/ui/MultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqF,MAAM,OAAO,CAAC;AAgB1G,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAgB5E,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACxC,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,sBAAsB,EAAE,cAAc,EAAE,CAAC;IACzC,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC/C,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,sBAAsB,EAAE,cAAc,EAAE,CAAC;IACzC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,EAAE,OAAO,CAAC;CACd;AAED,KAAK,2BAA2B,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAErG,UAAU,oBAAoB;IAC7B,WAAW,CAAC,EAAE,2BAA2B,CAAC,wBAAwB,CAAC,CAAC;IACpE,aAAa,CAAC,EAAE,2BAA2B,CAAC,wBAAwB,CAAC,CAAC;IACtE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,KAAK,wBAAwB,CAAC;CAC7F;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CACxF,SAAQ,oBAAoB,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,+BAA+B,KAAK,OAAO,CAAC;IACzF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAqGD;;;GAGG;AACH,eAAO,MAAM,WAAW,2GAiYvB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CollectionItem } from "@ryuzaki13/react-foundation-lib/odata";
|
|
2
|
-
import { type
|
|
2
|
+
import { type MultiSelectRenderContext } from "./MultiSelect";
|
|
3
3
|
interface MultiSelectRendererConfig {
|
|
4
4
|
codeKey: string;
|
|
5
5
|
textKey?: string;
|
|
@@ -8,8 +8,10 @@ interface MultiSelectRendererConfig {
|
|
|
8
8
|
export declare function formatOptionCount(count: number): string;
|
|
9
9
|
export declare function resolveMultiSelectTextKey(items: CollectionItem[], codeKey: string, textKey?: string): string;
|
|
10
10
|
export declare function getDefaultMultiSelectTokenValue(items: CollectionItem[], codeKey: string, textKey?: string): string | undefined;
|
|
11
|
-
export declare function createDefaultMultiSelectTokenRenderer(config: MultiSelectRendererConfig): (context: MultiSelectRenderContext) =>
|
|
12
|
-
export declare function
|
|
13
|
-
|
|
11
|
+
export declare function createDefaultMultiSelectTokenRenderer(config: MultiSelectRendererConfig): (context: MultiSelectRenderContext) => string | undefined;
|
|
12
|
+
export declare function createDefaultMultiSelectItemRenderer(config: MultiSelectRendererConfig): (item: CollectionItem) => {
|
|
13
|
+
text: string;
|
|
14
|
+
code: string;
|
|
15
|
+
};
|
|
14
16
|
export {};
|
|
15
17
|
//# sourceMappingURL=defaultRenderers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultRenderers.d.ts","sourceRoot":"","sources":["../../../src/multi-select/ui/defaultRenderers.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"defaultRenderers.d.ts","sourceRoot":"","sources":["../../../src/multi-select/ui/defaultRenderers.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE9D,UAAU,yBAAyB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,UAE9C;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,UAYnG;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,sBAWzG;AAED,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,yBAAyB,IACnD,SAAS,wBAAwB,wBAGpE;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,yBAAyB,IACnD,MAAM,cAAc;;;EAOtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/multi-select/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/multi-select/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as e } from "../chunks/button-
|
|
1
|
+
import { n as e } from "../chunks/button-C53OkqTg.js";
|
|
2
2
|
import { o as t } from "../chunks/flex-C7njxZ74.js";
|
|
3
3
|
import { createContext as n, useContext as r, useEffect as i, useMemo as a } from "react";
|
|
4
4
|
import { cn as o } from "@ryuzaki13/react-foundation-lib/utils";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type Ref } from "react";
|
|
2
|
+
export type CustomOptionButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "type"> & {
|
|
3
|
+
ref?: Ref<HTMLButtonElement>;
|
|
4
|
+
};
|
|
5
|
+
export declare function CustomOptionButton({ ref, ...props }: CustomOptionButtonProps): import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=CustomOptionButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomOptionButton.d.ts","sourceRoot":"","sources":["../../src/option/CustomOptionButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAM5D,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,CAAC;AAE/H,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,+BAE5E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type HTMLAttributes, type Ref } from "react";
|
|
2
|
+
export interface OptionProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
ref?: Ref<HTMLDivElement>;
|
|
4
|
+
active?: boolean;
|
|
5
|
+
selected?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Общая внешняя оболочка опции. Она владеет фоном, отступами и состояниями строки,
|
|
10
|
+
* а вложенные OptionButton, OptionLink, checkbox и expander остаются независимыми
|
|
11
|
+
* интерактивными элементами.
|
|
12
|
+
*/
|
|
13
|
+
export declare function Option({ ref, active, selected, disabled, className, ...props }: OptionProps): import("react").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=Option.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../../src/option/Option.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAMtD,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,cAAc,CAAC;IAClE,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAe3F"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ButtonHTMLAttributes, type Ref } from "react";
|
|
2
|
+
import { type OptionContentProps } from "./OptionContent";
|
|
3
|
+
export type OptionButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "type" | "children"> & OptionContentProps & {
|
|
4
|
+
ref?: Ref<HTMLButtonElement>;
|
|
5
|
+
};
|
|
6
|
+
/** Основное button-действие внутри внешней оболочки Option. */
|
|
7
|
+
export declare function OptionButton({ ref, icon, text, searchText, code, hotkey, emphasizeContent, ...props }: OptionButtonProps): import("react").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=OptionButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionButton.d.ts","sourceRoot":"","sources":["../../src/option/OptionButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAM5D,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,GACjG,kBAAkB,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,CAAC;AAEvD,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,+BAYxH"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ReactNode, type HTMLAttributes } from "react";
|
|
2
|
+
export interface OptionCodeProps extends HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
}
|
|
5
|
+
export declare function OptionCode(props: OptionCodeProps): import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=OptionCode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OptionCode.d.ts","sourceRoot":"","sources":["../../src/option/OptionCode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAMvD,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,eAAe,CAAC;IACvE,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,+BAEhD"}
|