@ryuzaki13/react-foundation-ui 1.0.7 → 1.0.11
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 +11 -11
- package/dist/badge/index.js +1 -1
- package/dist/base-table/index.js +1 -1
- package/dist/button/index.js +2 -23
- package/dist/check-box/index.js +1 -1
- package/dist/chunks/{CalendarView-DjeTJkTT.js → CalendarView-DCQjO2ho.js} +2 -2
- package/dist/chunks/{CalendarView-DjeTJkTT.js.map → CalendarView-DCQjO2ho.js.map} +1 -1
- package/dist/chunks/{odata-DSW7z3nh.js → SelectOptionContent-lfEtHXfO.js} +404 -381
- package/dist/chunks/SelectOptionContent-lfEtHXfO.js.map +1 -0
- package/dist/chunks/{TextEditorLexicalClient-uvFboXlh.js → TextEditorLexicalClient-Bca3FOUs.js} +8 -8
- package/dist/chunks/{TextEditorLexicalClient-uvFboXlh.js.map → TextEditorLexicalClient-Bca3FOUs.js.map} +1 -1
- package/dist/chunks/{BadgeList-DYgun2rf.js → badge-BfbLPk0z.js} +2 -2
- package/dist/chunks/badge-BfbLPk0z.js.map +1 -0
- package/dist/chunks/{base-table-CoQlKABk.js → base-table-CiYSRI_J.js} +4 -4
- package/dist/chunks/{base-table-CoQlKABk.js.map → base-table-CiYSRI_J.js.map} +1 -1
- package/dist/chunks/button-CC0Jdx1j.js +72 -0
- package/dist/chunks/button-CC0Jdx1j.js.map +1 -0
- package/dist/chunks/{CheckBox-BowNqqd3.js → check-box-BowNqqd3.js} +1 -1
- package/dist/chunks/check-box-BowNqqd3.js.map +1 -0
- package/dist/chunks/{DropdownMenu-DQeR3y7M.js → context-menu-DQeR3y7M.js} +1 -1
- package/dist/chunks/context-menu-DQeR3y7M.js.map +1 -0
- package/dist/chunks/{DateInput-CaKGXluL.js → date-input-DjAQ75n9.js} +5 -5
- package/dist/chunks/date-input-DjAQ75n9.js.map +1 -0
- package/dist/chunks/{DateRangePresetSelect-UgsfaOeM.js → date-range-preset-select-UgsfaOeM.js} +1 -1
- package/dist/chunks/date-range-preset-select-UgsfaOeM.js.map +1 -0
- package/dist/chunks/{Flex-DUYSL5TE.js → flex-CPO6xlPR.js} +38 -33
- package/dist/chunks/{Flex-DUYSL5TE.js.map → flex-CPO6xlPR.js.map} +1 -1
- package/dist/chunks/{Grid-ByIIytjh.js → grid-ByIIytjh.js} +1 -1
- package/dist/chunks/{Grid-ByIIytjh.js.map → grid-ByIIytjh.js.map} +1 -1
- package/dist/chunks/{Input-BYUl3UFn.js → input-CZLUUggm.js} +12 -4
- package/dist/chunks/input-CZLUUggm.js.map +1 -0
- package/dist/chunks/{InputFiles-gIxOPv5y.js → input-files-aB8iaqGk.js} +5 -5
- package/dist/chunks/input-files-aB8iaqGk.js.map +1 -0
- package/dist/chunks/{input-search-BR4LDmyb.js → input-search-eMvnvgV0.js} +2 -2
- package/dist/chunks/{input-search-BR4LDmyb.js.map → input-search-eMvnvgV0.js.map} +1 -1
- package/dist/chunks/{misc-DoqZBMof.js → misc-1PxS8OWD.js} +2 -2
- package/dist/chunks/{misc-DoqZBMof.js.map → misc-1PxS8OWD.js.map} +1 -1
- package/dist/chunks/{modal-ByNRME3b.js → modal-C0j0hEIt.js} +5 -5
- package/dist/chunks/{modal-ByNRME3b.js.map → modal-C0j0hEIt.js.map} +1 -1
- package/dist/chunks/multi-select-r0ekR6Bh.js +541 -0
- package/dist/chunks/multi-select-r0ekR6Bh.js.map +1 -0
- package/dist/chunks/{picker-DGXq3ikg.js → picker-beNX-cW9.js} +11 -11
- package/dist/chunks/{picker-DGXq3ikg.js.map → picker-beNX-cW9.js.map} +1 -1
- package/dist/chunks/{RadioGroup-B9XjkcOy.js → radio-group-B9XjkcOy.js} +1 -1
- package/dist/chunks/radio-group-B9XjkcOy.js.map +1 -0
- package/dist/chunks/select-CFbZS7fx.js +284 -0
- package/dist/chunks/select-CFbZS7fx.js.map +1 -0
- package/dist/chunks/{table-Dc3AqMzP.js → table-BR2VqeEg.js} +2 -2
- package/dist/chunks/{table-Dc3AqMzP.js.map → table-BR2VqeEg.js.map} +1 -1
- package/dist/chunks/{toolbar-BCZNdRXM.js → toolbar-XCDeS2Li.js} +2 -2
- package/dist/chunks/{toolbar-BCZNdRXM.js.map → toolbar-XCDeS2Li.js.map} +1 -1
- package/dist/chunks/{useODataSelectBase-BbeKdq6x.js → useODataSelectBase-BxAvhDww.js} +2 -2
- package/dist/chunks/{useODataSelectBase-BbeKdq6x.js.map → useODataSelectBase-BxAvhDww.js.map} +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-range-preset-select/index.js +1 -1
- package/dist/date-time-input/index.js +458 -2
- package/dist/date-time-input/index.js.map +1 -0
- package/dist/detail/index.js +80 -2
- package/dist/detail/index.js.map +1 -0
- package/dist/dialog/index.js +50 -2
- package/dist/dialog/index.js.map +1 -0
- package/dist/disclosure/index.js +49 -2
- package/dist/disclosure/index.js.map +1 -0
- package/dist/drop-zone/index.js +98 -2
- package/dist/drop-zone/index.js.map +1 -0
- package/dist/errors/index.js +1 -1
- package/dist/expandable-action-panel/index.js +82 -2
- package/dist/expandable-action-panel/index.js.map +1 -0
- package/dist/flex/index.js +2 -14
- package/dist/grid/index.js +1 -1
- package/dist/image/index.js +5 -5
- package/dist/input/Input.d.ts +2 -2
- package/dist/input/Input.d.ts.map +1 -1
- package/dist/input/index.js +2 -14
- package/dist/input-date-time/index.js +258 -2
- package/dist/input-date-time/index.js.map +1 -0
- package/dist/input-file/index.js +105 -2
- package/dist/input-file/index.js.map +1 -0
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +100 -2
- package/dist/input-image/index.js.map +1 -0
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +1171 -2
- package/dist/layout-picker/index.js.map +1 -0
- package/dist/list/index.js +2 -2
- package/dist/listbox/index.js +81 -2
- package/dist/listbox/index.js.map +1 -0
- package/dist/misc/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +2 -3
- package/dist/notifications/index.js +151 -3
- package/dist/notifications/index.js.map +1 -0
- package/dist/picker/index.js +1 -1
- package/dist/preset-range-date-input/index.js +52 -3
- package/dist/preset-range-date-input/index.js.map +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/radio-button/index.js +48 -2
- package/dist/radio-button/index.js.map +1 -0
- package/dist/radio-group/index.js +1 -1
- package/dist/select/index.js +2 -4
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +695 -2
- package/dist/slider/index.js.map +1 -0
- package/dist/splitter/index.js +168 -2
- package/dist/splitter/index.js.map +1 -0
- package/dist/state-select/index.js +78 -2
- package/dist/state-select/index.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/switch/index.js +81 -2
- package/dist/switch/index.js.map +1 -0
- package/dist/table/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tabs/index.js +384 -2
- package/dist/tabs/index.js.map +1 -0
- package/dist/text-editor/index.js +3 -3
- package/dist/text-editor/toolbar/index.js +1 -1
- package/dist/textarea/index.js +44 -2
- package/dist/textarea/index.js.map +1 -0
- package/dist/toggle/index.js +73 -2
- package/dist/toggle/index.js.map +1 -0
- package/dist/toolbar/index.js +2 -3
- package/dist/toolbar/index.js.map +1 -1
- package/dist/tree-select/index.js +569 -89
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +1 -1
- package/package.json +5 -304
- package/src/styles/_base.scss +11 -3
- package/src/styles/config/_index.scss +21 -37
- package/src/styles/themes/dark/_default.scss +0 -17
- package/storybook-static/assets/Badge-Cr7bAbxa.css +1 -0
- package/storybook-static/assets/Badge-Q8iX86Mn.js +139 -0
- package/storybook-static/assets/Badge.stories-BEMBzR2f.js +51 -0
- package/storybook-static/assets/Button-BN8Cuwsy.css +1 -0
- package/storybook-static/assets/Button-BUkCW8Zg.js +12 -0
- package/storybook-static/assets/Button-CfX05aoR.js +124 -0
- package/storybook-static/assets/Button.stories-BoNLZb6w.js +75 -0
- package/storybook-static/assets/CheckBox-B1xm2kwz.css +1 -0
- package/storybook-static/assets/CheckBox-CcXGzkSE.js +42 -0
- package/storybook-static/assets/CheckBox-DTSi8Yok.js +2 -0
- package/storybook-static/assets/CheckBox.module-Hr3mvdAC.js +1 -0
- package/storybook-static/assets/CheckBox.stories-Bo53TxC7.js +60 -0
- package/storybook-static/assets/Color-KMSTOMOX-Mbprgrbi.js +1 -0
- package/storybook-static/assets/ContextMenu-DYlSojIE.js +40 -0
- package/storybook-static/assets/ContextMenu.stories-BJr53bsq.js +90 -0
- package/storybook-static/assets/DateInput-Bc-MiPp1.css +1 -0
- package/storybook-static/assets/DateInput-BrmilavO.js +40 -0
- package/storybook-static/assets/DateInput-C72jV86j.js +1 -0
- package/storybook-static/assets/DateInput.stories-0hU_T1iZ.js +115 -0
- package/storybook-static/assets/DateRangePresetSelect-BklzgpCR.js +3 -0
- package/storybook-static/assets/DateRangePresetSelect-C7gJVkMB.js +30 -0
- package/storybook-static/assets/DateRangePresetSelect.stories-DQKDcAdP.js +11 -0
- package/storybook-static/assets/Detail-BKSBSfTO.css +1 -0
- package/storybook-static/assets/Detail-BMu0MY4h.js +40 -0
- package/storybook-static/assets/Detail.stories-CgBJjWQd.js +44 -0
- package/storybook-static/assets/Dialog-M7Uy3LiO.js +40 -0
- package/storybook-static/assets/Dialog.stories-BZ0opvaJ.js +31 -0
- package/storybook-static/assets/Disclosure-BXnfHC6v.js +29 -0
- package/storybook-static/assets/Disclosure-zNgXNDkm.css +1 -0
- package/storybook-static/assets/Disclosure.stories-C7wh6KJU.js +35 -0
- package/storybook-static/assets/DocsRenderer-JROSPFPF-BjXFJaat.js +2 -0
- package/storybook-static/assets/DropZone-C7HIN5ml.css +1 -0
- package/storybook-static/assets/DropZone-cd1aCNT1.js +36 -0
- package/storybook-static/assets/DropZone.stories-CVu731Lk.js +44 -0
- package/storybook-static/assets/DropdownMenu-B97Ad5Dg.js +1 -0
- package/storybook-static/assets/DropdownMenu-BgzIzwzM.css +1 -0
- package/storybook-static/assets/ExpandableActionPanel-D7q9two4.css +1 -0
- package/storybook-static/assets/ExpandableActionPanel.stories-k-eTxMyV.js +20 -0
- package/storybook-static/assets/Flex-BQkqAqL5.js +61 -0
- package/storybook-static/assets/Flex-C_VnI9xY.js +3 -0
- package/storybook-static/assets/Flex-IXK2se1Y.css +1 -0
- package/storybook-static/assets/Flex.stories-C1VO9Ct3.js +300 -0
- package/storybook-static/assets/Grid-Dr3BuEgd.js +61 -0
- package/storybook-static/assets/Grid-K9R_IHaw.css +1 -0
- package/storybook-static/assets/Grid-y8wKyEwc.js +163 -0
- package/storybook-static/assets/Grid.stories-6WUp6Tof.js +495 -0
- package/storybook-static/assets/Input-B7DWcGCL.js +3 -0
- package/storybook-static/assets/Input-BioMOZju.css +1 -0
- package/storybook-static/assets/Input-yly8wxYE.js +39 -0
- package/storybook-static/assets/Input.stories-CkVqvY-C.js +38 -0
- package/storybook-static/assets/InputDateTime-Cv8gmBe0.css +1 -0
- package/storybook-static/assets/InputDateTime-DHirw8rp.js +39 -0
- package/storybook-static/assets/InputDateTime.stories-Dci_81MA.js +35 -0
- package/storybook-static/assets/InputFile-DBFfWIkJ.js +37 -0
- package/storybook-static/assets/InputFile-hNjZ_wlG.css +1 -0
- package/storybook-static/assets/InputFile.stories-Bar27dP5.js +36 -0
- package/storybook-static/assets/InputFiles-ByK52qUe.css +1 -0
- package/storybook-static/assets/InputFiles-DPz7PiOC.js +1 -0
- package/storybook-static/assets/InputFiles-tULKp1KR.js +37 -0
- package/storybook-static/assets/InputFiles.stories-CkZ8et32.js +33 -0
- package/storybook-static/assets/InputImage-C-pnIXhT.css +1 -0
- package/storybook-static/assets/InputImage-D8VckxKl.js +37 -0
- package/storybook-static/assets/InputImage.stories-Dq8ORce3.js +51 -0
- package/storybook-static/assets/LayoutPicker-9tLTatHF.css +1 -0
- package/storybook-static/assets/LayoutPicker-l3XFAkqv.js +65 -0
- package/storybook-static/assets/LayoutPicker.stories-BjUmm2cg.js +449 -0
- package/storybook-static/assets/Listbox-B_6QVPAJ.js +38 -0
- package/storybook-static/assets/Listbox.stories-Cf_ApbmT.js +47 -0
- package/storybook-static/assets/Modal-BL_cTIW7.css +1 -0
- package/storybook-static/assets/Modal-BzienAaa.js +54 -0
- package/storybook-static/assets/Modal.stories-cPIHRa9a.js +180 -0
- package/storybook-static/assets/MultiSelect-CK2D25RA.js +56 -0
- package/storybook-static/assets/MultiSelect-CUQV67Ev.css +1 -0
- package/storybook-static/assets/MultiSelect-CjGBd2pC.js +2 -0
- package/storybook-static/assets/MultiSelect.stories--f_FoBzR.js +29 -0
- package/storybook-static/assets/NotificationsHost-D5Pvn4eu.css +1 -0
- package/storybook-static/assets/NotificationsHost-DKmlmqh0.js +44 -0
- package/storybook-static/assets/NotificationsHost.stories-1bPUJXfm.js +25 -0
- package/storybook-static/assets/ODataMultiSelect-BWUXuzlr.js +53 -0
- package/storybook-static/assets/ODataMultiSelect.stories-DA0f6SUG.js +73 -0
- package/storybook-static/assets/ODataSelect-D7GAFOcM.js +1 -0
- package/storybook-static/assets/ODataSelect-aNdHSjo_.js +52 -0
- package/storybook-static/assets/ODataSelect.stories-CjXA9Y9l.js +73 -0
- package/storybook-static/assets/ODataTreeMultiSelect-DKodulQ8.js +17 -0
- package/storybook-static/assets/ODataTreeMultiSelect.stories-BjRcb4W0.js +24 -0
- package/storybook-static/assets/ODataTreeSelect-Ck8HCh74.js +16 -0
- package/storybook-static/assets/ODataTreeSelect.stories-BgDj08mH.js +21 -0
- package/storybook-static/assets/PeriodSelect-Db7QmUfi.js +35 -0
- package/storybook-static/assets/PeriodSelect.stories-BI6yLRCK.js +23 -0
- package/storybook-static/assets/Popover-DR-r8iC5.js +45 -0
- package/storybook-static/assets/Popover.stories-ReRFMWiO.js +69 -0
- package/storybook-static/assets/PresetRangeDateInput-tSpiPAT9.js +31 -0
- package/storybook-static/assets/PresetRangeDateInput.stories-LVQa2_DG.js +15 -0
- package/storybook-static/assets/RadioButton-C-RjN-wY.css +1 -0
- package/storybook-static/assets/RadioButton-sEzdlL1y.js +38 -0
- package/storybook-static/assets/RadioButton.stories-CR0km0zF.js +36 -0
- package/storybook-static/assets/RadioGroup-BtNCd3Je.js +1 -0
- package/storybook-static/assets/RadioGroup-D-J7t20C.css +1 -0
- package/storybook-static/assets/RadioGroup-DR0H6Z0w.js +42 -0
- package/storybook-static/assets/RadioGroup.stories-FEqmkrs7.js +42 -0
- package/storybook-static/assets/Select-CO4ZHP9h.css +1 -0
- package/storybook-static/assets/Select-CUAevk01.js +57 -0
- package/storybook-static/assets/Select-DYVS7SCZ.js +9 -0
- package/storybook-static/assets/Select.stories-Df_c0IfC.js +37 -0
- package/storybook-static/assets/SelectOptionContent-B7W0Mned.js +1 -0
- package/storybook-static/assets/SerializableSelect-D63xBqOT.js +48 -0
- package/storybook-static/assets/SerializableSelect-DwCnuBgv.js +4 -0
- package/storybook-static/assets/SerializableSelect.stories-BLPXVOtP.js +43 -0
- package/storybook-static/assets/SingleDateTimeInput-mOllNfg2.css +1 -0
- package/storybook-static/assets/SingleDateTimeInput-xMkDodYz.js +53 -0
- package/storybook-static/assets/SingleDateTimeInput.stories-kcuSwx76.js +78 -0
- package/storybook-static/assets/Slider-BHZgpCjC.js +63 -0
- package/storybook-static/assets/Slider.stories-Bias_Soq.js +77 -0
- package/storybook-static/assets/SliderInput-jzFZcWr7.js +58 -0
- package/storybook-static/assets/SliderInput.stories-B7w8bp86.js +67 -0
- package/storybook-static/assets/Sortable-DcmDaPBw.js +72 -0
- package/storybook-static/assets/Sortable.stories-CwhHGCih.js +141 -0
- package/storybook-static/assets/Splitter-Bn7AJiD_.js +83 -0
- package/storybook-static/assets/Splitter-D-LmmQad.css +1 -0
- package/storybook-static/assets/Splitter.stories-CSvjKF-O.js +22 -0
- package/storybook-static/assets/StateSelect-MIGiXD10.js +36 -0
- package/storybook-static/assets/StateSelect-pIMkhj9A.css +1 -0
- package/storybook-static/assets/StateSelect.stories-BGDCnVqb.js +47 -0
- package/storybook-static/assets/Switch-C5zxOq_O.js +36 -0
- package/storybook-static/assets/Switch-DGYGWtPw.css +1 -0
- package/storybook-static/assets/Switch.stories-BmCl_Ts5.js +26 -0
- package/storybook-static/assets/Table-BGvRn9y0.css +1 -0
- package/storybook-static/assets/Table-CoySXvs5.js +197 -0
- package/storybook-static/assets/Table.stories-CA7ARhwC.js +122 -0
- package/storybook-static/assets/Tabs-BLkTB6pp.css +1 -0
- package/storybook-static/assets/Tabs-CQdzU18E.js +72 -0
- package/storybook-static/assets/Tabs.stories-SBWTpiy2.js +58 -0
- package/storybook-static/assets/Textarea-Bo-I0cnE.js +37 -0
- package/storybook-static/assets/Textarea-CPNMR88I.css +1 -0
- package/storybook-static/assets/Textarea.stories-C1wO9PKR.js +27 -0
- package/storybook-static/assets/TimePanel-0-mzaXky.js +1 -0
- package/storybook-static/assets/TimePanel-Bh98qsCo.css +1 -0
- package/storybook-static/assets/TimePanel.stories-C1VM13qN.js +25 -0
- package/storybook-static/assets/Toggle-B9H63WWC.js +37 -0
- package/storybook-static/assets/Toggle-DHulCX3T.css +1 -0
- package/storybook-static/assets/Toggle.stories-CKlGFcZW.js +30 -0
- package/storybook-static/assets/TreeMultiSelect-AXIl2Ge2.js +15 -0
- package/storybook-static/assets/TreeMultiSelect-Ci3bUpmv.js +1 -0
- package/storybook-static/assets/TreeMultiSelect.stories-CXGt4Q_u.js +14 -0
- package/storybook-static/assets/TreePickerBase-Md6Mt9qF.js +19 -0
- package/storybook-static/assets/TreePickerBase-qreyVjhY.css +1 -0
- package/storybook-static/assets/TreeSelect-BWoURakw.js +15 -0
- package/storybook-static/assets/TreeSelect-bOgRYtQQ.js +1 -0
- package/storybook-static/assets/TreeSelect.stories-By0h6wRi.js +16 -0
- package/storybook-static/assets/TreeTable--ZoksUiw.css +1 -0
- package/storybook-static/assets/TreeTable-C52Jh7O_.js +175 -0
- package/storybook-static/assets/TreeTable.stories-BH9Q8NPP.js +83 -0
- package/storybook-static/assets/WithTooltip-7X4HQR7L-DQXHhZoH.js +9 -0
- package/storybook-static/assets/axe-GLfyhAYL.js +20 -0
- package/storybook-static/assets/base-table-BNO0lnTL.css +1 -0
- package/storybook-static/assets/base-table-BSkQBgdx.js +18 -0
- package/storybook-static/assets/blocks-CwEU-ME1.js +285 -0
- package/storybook-static/assets/button-Bl3Hu8CS.js +1 -0
- package/storybook-static/assets/check-box-BrnNQnSi.js +1 -0
- package/storybook-static/assets/chunk-242VQQM5-Dtm7LRbQ.js +1 -0
- package/storybook-static/assets/chunk-3LY4VQVK-BxHCYS2R.js +6 -0
- package/storybook-static/assets/chunk-LITCR56V-euffoZAN.js +18 -0
- package/storybook-static/assets/contextMenu-Do6qEwKB.js +2 -0
- package/storybook-static/assets/date-segments-CzU9k5bl.js +1 -0
- package/storybook-static/assets/error-RVOk7zpw.js +1 -0
- package/storybook-static/assets/file-hArYcyES.js +1 -0
- package/storybook-static/assets/flex-DuYzsEBQ.js +1 -0
- package/storybook-static/assets/floating-ui.react-BR04wkLx.js +1 -0
- package/storybook-static/assets/formatter-L2YTDE3Q-Cdp-Jp2M.js +1 -0
- package/storybook-static/assets/formatters-yIBztcem.js +3 -0
- package/storybook-static/assets/grid-D0WOuGlB.js +1 -0
- package/storybook-static/assets/hooks-BEB2Gqy0.js +5 -0
- package/storybook-static/assets/iframe-SfMJGCsn.js +1117 -0
- package/storybook-static/assets/input-Be5K9_B7.js +1 -0
- package/storybook-static/assets/jsx-runtime-BBQGix-2.js +1 -0
- package/storybook-static/assets/lucide-react-CK2oyDtF.js +1 -0
- package/storybook-static/assets/matchers-JIUQ3HVY-BPS-eazD.js +28 -0
- package/storybook-static/assets/mdx-react-shim-DnKFgFHy.js +1 -0
- package/storybook-static/assets/media-Djn0SUaN.js +1 -0
- package/storybook-static/assets/misc-CPvLzCFJ.js +5 -0
- package/storybook-static/assets/misc-CerLA5Xh.css +1 -0
- package/storybook-static/assets/notifications-Zk996KvR.js +1 -0
- package/storybook-static/assets/odata-C2BNbnc9.js +1 -0
- package/storybook-static/assets/odata-service-8sDCOQ3I.js +1 -0
- package/storybook-static/assets/odataStoryFixtures-BBfdskiC.js +25 -0
- package/storybook-static/assets/picker-BmTTr59E.css +1 -0
- package/storybook-static/assets/picker-De4ZbESe.js +1 -0
- package/storybook-static/assets/popover-BiQHI7Wi.css +1 -0
- package/storybook-static/assets/popover-DWA5VOMQ.js +2 -0
- package/storybook-static/assets/preload-helper-B45gAKPr.js +1 -0
- package/storybook-static/assets/preset-select-DozCGhmu.js +5 -0
- package/storybook-static/assets/react-18-CfpYK14y.js +9 -0
- package/storybook-static/assets/react-BWN-5oQj.js +9 -0
- package/storybook-static/assets/react-dom-CncQzc_h.js +1 -0
- package/storybook-static/assets/select-BPvMbVDe.js +1 -0
- package/storybook-static/assets/slider-39Mty47U.js +2 -0
- package/storybook-static/assets/slider-DMDFRH6B.css +1 -0
- package/storybook-static/assets/sortable-CgCCp3dq.js +1 -0
- package/storybook-static/assets/sortable-DiBavgm0.css +1 -0
- package/storybook-static/assets/syntaxhighlighter-RTCFPKCB-Di6cCrDX.js +6 -0
- package/storybook-static/assets/text-BxA8yj6Z.js +4 -0
- package/storybook-static/assets/theming-DZauqOKI.js +39 -0
- package/storybook-static/assets/treeStoryFixtures-Cd984L7t.js +1 -0
- package/storybook-static/assets/ui-CmVy0trY.js +1 -0
- package/storybook-static/assets/ui-ZWM9zG1I.css +1 -0
- package/storybook-static/assets/ui.module-DS2qtZts.js +1 -0
- package/storybook-static/assets/uiClasses-CZ_HVS3Y.js +1 -0
- package/storybook-static/assets/useODataSelectBase-D33B4x2W.js +1 -0
- package/storybook-static/assets/useODataTreeData-CDdzN-LC.js +1 -0
- package/storybook-static/assets/utils-CReRlw17.js +1 -0
- package/storybook-static/favicon-wrapper.svg +46 -0
- package/storybook-static/favicon.svg +1 -0
- package/storybook-static/iframe.html +709 -0
- package/storybook-static/index.html +146 -0
- package/storybook-static/index.json +1 -0
- package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/project.json +1 -0
- package/storybook-static/sb-addons/a11y-2/manager-bundle.js +57 -0
- package/storybook-static/sb-addons/docs-1/manager-bundle.js +3 -0
- package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +630 -0
- package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
- package/storybook-static/sb-common-assets/favicon.svg +1 -0
- package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/sb-manager/globals-runtime.js +76714 -0
- package/storybook-static/sb-manager/globals.js +24 -0
- package/storybook-static/sb-manager/manager-stores.js +23 -0
- package/storybook-static/sb-manager/runtime.js +27451 -0
- package/storybook-static/vite-inject-mocker-entry.js +2 -0
- package/dist/badge/stories/Badge.stories.d.ts +0 -54
- package/dist/badge/stories/Badge.stories.d.ts.map +0 -1
- package/dist/badge/stories/Badge.stories.js +0 -147
- package/dist/badge/stories/Badge.stories.js.map +0 -1
- package/dist/button/index.js.map +0 -1
- package/dist/button/stories/Button.stories.d.ts +0 -69
- package/dist/button/stories/Button.stories.d.ts.map +0 -1
- package/dist/button/stories/Button.stories.js +0 -223
- package/dist/button/stories/Button.stories.js.map +0 -1
- package/dist/check-box/stories/CheckBox.stories.d.ts +0 -58
- package/dist/check-box/stories/CheckBox.stories.d.ts.map +0 -1
- package/dist/check-box/stories/CheckBox.stories.js +0 -150
- package/dist/check-box/stories/CheckBox.stories.js.map +0 -1
- package/dist/chunks/BadgeList-DYgun2rf.js.map +0 -1
- package/dist/chunks/Button-CCWuggdA.js +0 -55
- package/dist/chunks/Button-CCWuggdA.js.map +0 -1
- package/dist/chunks/CheckBox-BowNqqd3.js.map +0 -1
- package/dist/chunks/DateInput-CaKGXluL.js.map +0 -1
- package/dist/chunks/DateRangePresetSelect-UgsfaOeM.js.map +0 -1
- package/dist/chunks/Detail-DHDMsg8q.js +0 -80
- package/dist/chunks/Detail-DHDMsg8q.js.map +0 -1
- package/dist/chunks/Dialog-CFIvGxER.js +0 -50
- package/dist/chunks/Dialog-CFIvGxER.js.map +0 -1
- package/dist/chunks/DisclosureGroup-CfRTkl6Z.js +0 -49
- package/dist/chunks/DisclosureGroup-CfRTkl6Z.js.map +0 -1
- package/dist/chunks/DropZone-DdFdnC9X.js +0 -98
- package/dist/chunks/DropZone-DdFdnC9X.js.map +0 -1
- package/dist/chunks/DropdownMenu-DQeR3y7M.js.map +0 -1
- package/dist/chunks/Input-BYUl3UFn.js.map +0 -1
- package/dist/chunks/InputDateTime-DBkWb0lk.js +0 -258
- package/dist/chunks/InputDateTime-DBkWb0lk.js.map +0 -1
- package/dist/chunks/InputFile-Bo3CN73O.js +0 -105
- package/dist/chunks/InputFile-Bo3CN73O.js.map +0 -1
- package/dist/chunks/InputFiles-gIxOPv5y.js.map +0 -1
- package/dist/chunks/InputImage-k4l1J_tm.js +0 -100
- package/dist/chunks/InputImage-k4l1J_tm.js.map +0 -1
- package/dist/chunks/LabeledExpandableActionPanel-D3kUvmFH.js +0 -82
- package/dist/chunks/LabeledExpandableActionPanel-D3kUvmFH.js.map +0 -1
- package/dist/chunks/Listbox-BZlp5qHz.js +0 -81
- package/dist/chunks/Listbox-BZlp5qHz.js.map +0 -1
- package/dist/chunks/MultiSelect-B0nfMSpS.js +0 -422
- package/dist/chunks/MultiSelect-B0nfMSpS.js.map +0 -1
- package/dist/chunks/NotificationsHost-_icJx4xR.js +0 -151
- package/dist/chunks/NotificationsHost-_icJx4xR.js.map +0 -1
- package/dist/chunks/PresetRangeDateInput-C5HqkOCG.js +0 -53
- package/dist/chunks/PresetRangeDateInput-C5HqkOCG.js.map +0 -1
- package/dist/chunks/RadioButton-D0uA0rX_.js +0 -48
- package/dist/chunks/RadioButton-D0uA0rX_.js.map +0 -1
- package/dist/chunks/RadioGroup-B9XjkcOy.js.map +0 -1
- package/dist/chunks/Select-B6kxgxK2.js +0 -182
- package/dist/chunks/Select-B6kxgxK2.js.map +0 -1
- package/dist/chunks/SelectOptionContent-CI7wq9Oi.js +0 -27
- package/dist/chunks/SelectOptionContent-CI7wq9Oi.js.map +0 -1
- package/dist/chunks/SerializableSelect-CVGFjCGK.js +0 -33
- package/dist/chunks/SerializableSelect-CVGFjCGK.js.map +0 -1
- package/dist/chunks/SingleDateTimeInput-D2fDMQnI.js +0 -331
- package/dist/chunks/SingleDateTimeInput-D2fDMQnI.js.map +0 -1
- package/dist/chunks/Splitter-BFkVGVRb.js +0 -168
- package/dist/chunks/Splitter-BFkVGVRb.js.map +0 -1
- package/dist/chunks/StateSelect-CEp7kGGg.js +0 -78
- package/dist/chunks/StateSelect-CEp7kGGg.js.map +0 -1
- package/dist/chunks/Switch-B57Qmy1z.js +0 -81
- package/dist/chunks/Switch-B57Qmy1z.js.map +0 -1
- package/dist/chunks/Textarea-T8gXua35.js +0 -44
- package/dist/chunks/Textarea-T8gXua35.js.map +0 -1
- package/dist/chunks/TimePanel-b4saqoUY.js +0 -135
- package/dist/chunks/TimePanel-b4saqoUY.js.map +0 -1
- package/dist/chunks/Toggle-DVqOQXmt.js +0 -73
- package/dist/chunks/Toggle-DVqOQXmt.js.map +0 -1
- package/dist/chunks/TreeMultiSelect-BcPr2Phe.js +0 -40
- package/dist/chunks/TreeMultiSelect-BcPr2Phe.js.map +0 -1
- package/dist/chunks/TreePickerBase-ClXn2q3u.js +0 -423
- package/dist/chunks/TreePickerBase-ClXn2q3u.js.map +0 -1
- package/dist/chunks/TreeSelect-DYWkgryS.js +0 -37
- package/dist/chunks/TreeSelect-DYWkgryS.js.map +0 -1
- package/dist/chunks/layout-picker-C1sizRYa.js +0 -1171
- package/dist/chunks/layout-picker-C1sizRYa.js.map +0 -1
- package/dist/chunks/multi-select-DCY3fonG.js +0 -126
- package/dist/chunks/multi-select-DCY3fonG.js.map +0 -1
- package/dist/chunks/odata-DSW7z3nh.js.map +0 -1
- package/dist/chunks/select-Di99RAVO.js +0 -81
- package/dist/chunks/select-Di99RAVO.js.map +0 -1
- package/dist/chunks/slider-BqeYbdrg.js +0 -695
- package/dist/chunks/slider-BqeYbdrg.js.map +0 -1
- package/dist/chunks/tabs-DlnVVMJl.js +0 -384
- package/dist/chunks/tabs-DlnVVMJl.js.map +0 -1
- package/dist/chunks/treeStoryFixtures-Bhm3Gdky.js +0 -113
- package/dist/chunks/treeStoryFixtures-Bhm3Gdky.js.map +0 -1
- package/dist/context-menu/stories/ContextMenu.stories.d.ts +0 -16
- package/dist/context-menu/stories/ContextMenu.stories.d.ts.map +0 -1
- package/dist/context-menu/stories/ContextMenu.stories.js +0 -136
- package/dist/context-menu/stories/ContextMenu.stories.js.map +0 -1
- package/dist/date-input/stories/DateInput.stories.d.ts +0 -132
- package/dist/date-input/stories/DateInput.stories.d.ts.map +0 -1
- package/dist/date-input/stories/DateInput.stories.js +0 -247
- package/dist/date-input/stories/DateInput.stories.js.map +0 -1
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.d.ts +0 -22
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.d.ts.map +0 -1
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js +0 -41
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js.map +0 -1
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.d.ts +0 -95
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.d.ts.map +0 -1
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.js +0 -195
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.js.map +0 -1
- package/dist/date-time-input/stories/TimePanel.stories.d.ts +0 -26
- package/dist/date-time-input/stories/TimePanel.stories.d.ts.map +0 -1
- package/dist/date-time-input/stories/TimePanel.stories.js +0 -53
- package/dist/date-time-input/stories/TimePanel.stories.js.map +0 -1
- package/dist/detail/stories/Detail.stories.d.ts +0 -67
- package/dist/detail/stories/Detail.stories.d.ts.map +0 -1
- package/dist/detail/stories/Detail.stories.js +0 -170
- package/dist/detail/stories/Detail.stories.js.map +0 -1
- package/dist/dialog/stories/Dialog.stories.d.ts +0 -50
- package/dist/dialog/stories/Dialog.stories.d.ts.map +0 -1
- package/dist/dialog/stories/Dialog.stories.js +0 -89
- package/dist/dialog/stories/Dialog.stories.js.map +0 -1
- package/dist/disclosure/stories/Disclosure.stories.d.ts +0 -35
- package/dist/disclosure/stories/Disclosure.stories.d.ts.map +0 -1
- package/dist/disclosure/stories/Disclosure.stories.js +0 -70
- package/dist/disclosure/stories/Disclosure.stories.js.map +0 -1
- package/dist/drop-zone/stories/DropZone.stories.d.ts +0 -63
- package/dist/drop-zone/stories/DropZone.stories.d.ts.map +0 -1
- package/dist/drop-zone/stories/DropZone.stories.js +0 -97
- package/dist/drop-zone/stories/DropZone.stories.js.map +0 -1
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.d.ts +0 -44
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.d.ts.map +0 -1
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js +0 -117
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js.map +0 -1
- package/dist/flex/index.js.map +0 -1
- package/dist/flex/stories/Flex.stories.d.ts +0 -24
- package/dist/flex/stories/Flex.stories.d.ts.map +0 -1
- package/dist/flex/stories/Flex.stories.js +0 -607
- package/dist/flex/stories/Flex.stories.js.map +0 -1
- package/dist/grid/stories/Grid.stories.d.ts +0 -24
- package/dist/grid/stories/Grid.stories.d.ts.map +0 -1
- package/dist/grid/stories/Grid.stories.js +0 -840
- package/dist/grid/stories/Grid.stories.js.map +0 -1
- package/dist/input/index.js.map +0 -1
- package/dist/input/stories/Input.stories.d.ts +0 -69
- package/dist/input/stories/Input.stories.d.ts.map +0 -1
- package/dist/input/stories/Input.stories.js +0 -132
- package/dist/input/stories/Input.stories.js.map +0 -1
- package/dist/input-date-time/stories/InputDateTime.stories.d.ts +0 -69
- package/dist/input-date-time/stories/InputDateTime.stories.d.ts.map +0 -1
- package/dist/input-date-time/stories/InputDateTime.stories.js +0 -125
- package/dist/input-date-time/stories/InputDateTime.stories.js.map +0 -1
- package/dist/input-file/stories/InputFile.stories.d.ts +0 -85
- package/dist/input-file/stories/InputFile.stories.d.ts.map +0 -1
- package/dist/input-file/stories/InputFile.stories.js +0 -158
- package/dist/input-file/stories/InputFile.stories.js.map +0 -1
- package/dist/input-files/stories/InputFiles.stories.d.ts +0 -86
- package/dist/input-files/stories/InputFiles.stories.d.ts.map +0 -1
- package/dist/input-files/stories/InputFiles.stories.js +0 -158
- package/dist/input-files/stories/InputFiles.stories.js.map +0 -1
- package/dist/input-image/stories/InputImage.stories.d.ts +0 -81
- package/dist/input-image/stories/InputImage.stories.d.ts.map +0 -1
- package/dist/input-image/stories/InputImage.stories.js +0 -174
- package/dist/input-image/stories/InputImage.stories.js.map +0 -1
- package/dist/layout-picker/stories/LayoutPicker.stories.d.ts +0 -873
- package/dist/layout-picker/stories/LayoutPicker.stories.d.ts.map +0 -1
- package/dist/layout-picker/stories/LayoutPicker.stories.js +0 -422
- package/dist/layout-picker/stories/LayoutPicker.stories.js.map +0 -1
- package/dist/listbox/stories/Listbox.stories.d.ts +0 -76
- package/dist/listbox/stories/Listbox.stories.d.ts.map +0 -1
- package/dist/listbox/stories/Listbox.stories.js +0 -140
- package/dist/listbox/stories/Listbox.stories.js.map +0 -1
- package/dist/modal/stories/Modal.stories.d.ts +0 -74
- package/dist/modal/stories/Modal.stories.d.ts.map +0 -1
- package/dist/modal/stories/Modal.stories.js +0 -320
- package/dist/modal/stories/Modal.stories.js.map +0 -1
- package/dist/multi-select/ui/stories/MultiSelect.stories.d.ts +0 -67
- package/dist/multi-select/ui/stories/MultiSelect.stories.d.ts.map +0 -1
- package/dist/multi-select/ui/stories/MultiSelect.stories.js +0 -114
- package/dist/multi-select/ui/stories/MultiSelect.stories.js.map +0 -1
- package/dist/multi-select/ui/stories/ODataMultiSelect.stories.d.ts +0 -44
- package/dist/multi-select/ui/stories/ODataMultiSelect.stories.d.ts.map +0 -1
- package/dist/notifications/ui/stories/NotificationsHost.stories.d.ts +0 -21
- package/dist/notifications/ui/stories/NotificationsHost.stories.d.ts.map +0 -1
- package/dist/notifications/ui/stories/NotificationsHost.stories.js +0 -326
- package/dist/notifications/ui/stories/NotificationsHost.stories.js.map +0 -1
- package/dist/period-select/stories/PeriodSelect.stories.d.ts +0 -96
- package/dist/period-select/stories/PeriodSelect.stories.d.ts.map +0 -1
- package/dist/period-select/stories/PeriodSelect.stories.js +0 -166
- package/dist/period-select/stories/PeriodSelect.stories.js.map +0 -1
- package/dist/popover/stories/Popover.stories.d.ts +0 -10
- package/dist/popover/stories/Popover.stories.d.ts.map +0 -1
- package/dist/popover/stories/Popover.stories.js +0 -75
- package/dist/popover/stories/Popover.stories.js.map +0 -1
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.d.ts +0 -22
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.d.ts.map +0 -1
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js +0 -45
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js.map +0 -1
- package/dist/radio-button/stories/RadioButton.stories.d.ts +0 -60
- package/dist/radio-button/stories/RadioButton.stories.d.ts.map +0 -1
- package/dist/radio-button/stories/RadioButton.stories.js +0 -121
- package/dist/radio-button/stories/RadioButton.stories.js.map +0 -1
- package/dist/radio-group/stories/RadioGroup.stories.d.ts +0 -74
- package/dist/radio-group/stories/RadioGroup.stories.d.ts.map +0 -1
- package/dist/radio-group/stories/RadioGroup.stories.js +0 -146
- package/dist/radio-group/stories/RadioGroup.stories.js.map +0 -1
- package/dist/select/stories/ODataSelect.stories.d.ts +0 -46
- package/dist/select/stories/ODataSelect.stories.d.ts.map +0 -1
- package/dist/select/stories/Select.stories.d.ts +0 -127
- package/dist/select/stories/Select.stories.d.ts.map +0 -1
- package/dist/select/stories/Select.stories.js +0 -214
- package/dist/select/stories/Select.stories.js.map +0 -1
- package/dist/select/stories/SerializableSelect.stories.d.ts +0 -91
- package/dist/select/stories/SerializableSelect.stories.d.ts.map +0 -1
- package/dist/select/stories/SerializableSelect.stories.js +0 -165
- package/dist/select/stories/SerializableSelect.stories.js.map +0 -1
- package/dist/select/stories/odataStoryCollection.d.ts +0 -2
- package/dist/select/stories/odataStoryCollection.d.ts.map +0 -1
- package/dist/select/stories/odataStoryFixtures.d.ts +0 -35
- package/dist/select/stories/odataStoryFixtures.d.ts.map +0 -1
- package/dist/slider/stories/Slider.stories.d.ts +0 -29
- package/dist/slider/stories/Slider.stories.d.ts.map +0 -1
- package/dist/slider/stories/Slider.stories.js +0 -310
- package/dist/slider/stories/Slider.stories.js.map +0 -1
- package/dist/slider/stories/SliderInput.stories.d.ts +0 -30
- package/dist/slider/stories/SliderInput.stories.d.ts.map +0 -1
- package/dist/slider/stories/SliderInput.stories.js +0 -282
- package/dist/slider/stories/SliderInput.stories.js.map +0 -1
- package/dist/sortable/stories/Sortable.stories.d.ts +0 -58
- package/dist/sortable/stories/Sortable.stories.d.ts.map +0 -1
- package/dist/sortable/stories/Sortable.stories.js +0 -255
- package/dist/sortable/stories/Sortable.stories.js.map +0 -1
- package/dist/splitter/stories/Splitter.stories.d.ts +0 -66
- package/dist/splitter/stories/Splitter.stories.d.ts.map +0 -1
- package/dist/splitter/stories/Splitter.stories.js +0 -223
- package/dist/splitter/stories/Splitter.stories.js.map +0 -1
- package/dist/state-select/stories/StateSelect.stories.d.ts +0 -70
- package/dist/state-select/stories/StateSelect.stories.d.ts.map +0 -1
- package/dist/state-select/stories/StateSelect.stories.js +0 -145
- package/dist/state-select/stories/StateSelect.stories.js.map +0 -1
- package/dist/switch/stories/Switch.stories.d.ts +0 -59
- package/dist/switch/stories/Switch.stories.d.ts.map +0 -1
- package/dist/switch/stories/Switch.stories.js +0 -90
- package/dist/switch/stories/Switch.stories.js.map +0 -1
- package/dist/table/stories/Table.stories.d.ts +0 -155
- package/dist/table/stories/Table.stories.d.ts.map +0 -1
- package/dist/tabs/stories/Tabs.stories.d.ts +0 -94
- package/dist/tabs/stories/Tabs.stories.d.ts.map +0 -1
- package/dist/tabs/stories/Tabs.stories.js +0 -283
- package/dist/tabs/stories/Tabs.stories.js.map +0 -1
- package/dist/textarea/stories/Textarea.stories.d.ts +0 -64
- package/dist/textarea/stories/Textarea.stories.d.ts.map +0 -1
- package/dist/textarea/stories/Textarea.stories.js +0 -98
- package/dist/textarea/stories/Textarea.stories.js.map +0 -1
- package/dist/toggle/stories/Toggle.stories.d.ts +0 -61
- package/dist/toggle/stories/Toggle.stories.d.ts.map +0 -1
- package/dist/toggle/stories/Toggle.stories.js +0 -102
- package/dist/toggle/stories/Toggle.stories.js.map +0 -1
- package/dist/tree-select/stories/ODataTreeMultiSelect.stories.d.ts +0 -55
- package/dist/tree-select/stories/ODataTreeMultiSelect.stories.d.ts.map +0 -1
- package/dist/tree-select/stories/ODataTreeSelect.stories.d.ts +0 -54
- package/dist/tree-select/stories/ODataTreeSelect.stories.d.ts.map +0 -1
- package/dist/tree-select/stories/TreeMultiSelect.stories.d.ts +0 -35
- package/dist/tree-select/stories/TreeMultiSelect.stories.d.ts.map +0 -1
- package/dist/tree-select/stories/TreeMultiSelect.stories.js +0 -64
- package/dist/tree-select/stories/TreeMultiSelect.stories.js.map +0 -1
- package/dist/tree-select/stories/TreeSelect.stories.d.ts +0 -35
- package/dist/tree-select/stories/TreeSelect.stories.d.ts.map +0 -1
- package/dist/tree-select/stories/TreeSelect.stories.js +0 -66
- package/dist/tree-select/stories/TreeSelect.stories.js.map +0 -1
- package/dist/tree-select/stories/treeStoryFixtures.d.ts +0 -3
- package/dist/tree-select/stories/treeStoryFixtures.d.ts.map +0 -1
- package/dist/tree-table/stories/TreeTable.stories.d.ts +0 -158
- package/dist/tree-table/stories/TreeTable.stories.d.ts.map +0 -1
- package/src/styles/fonts.scss +0 -47
|
@@ -0,0 +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%, 12em), 1fr));\n\tgap: var(--space-sm);\n}\n\n.option {\n\tposition: relative;\n\tdisplay: grid;\n\tgrid-template-columns: auto minmax(0, 1fr) auto;\n\talign-items: center;\n\tgap: var(--space-sm);\n\tmin-height: 3.5em;\n\tpadding: var(--space-sm);\n\tborder: var(--border);\n\tborder-radius: var(--radius-sm);\n\tbackground-color: var(--surface-0);\n\tcolor: var(--content-0);\n\ttext-align: left;\n\tcursor: pointer;\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-1);\n\t\tborder-color: var(--border-1);\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-1);\n\tborder-color: var(--border-1);\n}\n\n.optionSelected {\n\t// border-color: var(--border-accent);\n\t// background-color: var(--surface-accent);\n\tcolor: var(--content-accent);\n}\n\n.optionPreviewWrap {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmin-width: 3.5rem;\n}\n\n// .optionText {\n// \tmin-width: 0;\n// \tdisplay: grid;\n// \tgap: var(--space-xs);\n// }\n\n// .optionLabel {\n// overflow: hidden;\n// text-overflow: ellipsis;\n// white-space: nowrap;\n// }\n\n// .optionDescription {\n// \toverflow: hidden;\n// \tdisplay: -webkit-box;\n// \t-webkit-line-clamp: 2;\n// \t-webkit-box-orient: vertical;\n// \tcolor: var(--content-2);\n// \tfont-size: var(--font-size-sm);\n// }\n\n.optionCheck {\n\twidth: 1em;\n\theight: 1em;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcolor: var(--content-accent);\n\n\tsvg {\n\t\twidth: 1em;\n\t\theight: 1em;\n\t}\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\t// background-color: var(--surface-0);\n\t// border: var(--border);\n\t// border-radius: var(--radius-xs);\n\t// padding: calc(var(--border-width) * 2);\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.5rem;\n}\n\n.previewCell {\n\tmin-width: 0;\n\tmin-height: 0;\n\tborder-radius: calc(var(--radius-xs) / 2);\n\tbackground-color: var(--surface-accent);\n\tborder: var(--border-width) solid var(--border-accent);\n}\n","import { useRef, useState } from \"react\";\n\nimport { type Placement } from \"@floating-ui/react\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\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\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 className={cn(styles.preview, compact && styles.previewCompact)} style={getLayoutStyle(preset)} aria-hidden=\"true\">\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\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\n\t\t\tid={id}\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tplaceholder={placeholder}\n\t\t\tsize={size}\n\t\t\tclassName={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<span className={cn(styles.triggerText, !selectedPreset && uiStyles.uiPlaceholder)}>\n\t\t\t\t\t\t\t\t\t\t{triggerLabel}\n\t\t\t\t\t\t\t\t\t</span>\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\t<span className=\"fontSizeSm\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span>{preset.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t{preset.description ? <span>{preset.description}</span> : null}\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t<span className={styles.optionCheck} aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t{selected ? <CheckIcon /> : null}\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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"}
|
package/dist/list/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "../chunks/
|
|
2
|
-
import { c as t, h as n } from "../chunks/misc-
|
|
1
|
+
import { t as e } from "../chunks/grid-ByIIytjh.js";
|
|
2
|
+
import { c as t, h as n } from "../chunks/misc-1PxS8OWD.js";
|
|
3
3
|
import r, { Children as i, useMemo as a, useRef as o } from "react";
|
|
4
4
|
import { cn as s } from "@ryuzaki13/react-foundation-lib/utils";
|
|
5
5
|
import { jsx as c } from "react/jsx-runtime";
|
package/dist/listbox/index.js
CHANGED
|
@@ -1,2 +1,81 @@
|
|
|
1
|
-
import { t as e } from "../chunks/
|
|
2
|
-
|
|
1
|
+
import { t as e } from "../chunks/ui.module-BisoTevy.js";
|
|
2
|
+
import { useEffect as t, useId as n, useLayoutEffect as r, useMemo as i, useRef as a, useState as o } from "react";
|
|
3
|
+
import { cn as s, findFirstEnabledIndex as c, findLastEnabledIndex as l, findNextEnabledIndex as u, handleKeyboardActivation as d } from "@ryuzaki13/react-foundation-lib/utils";
|
|
4
|
+
import { CheckIcon as f } from "lucide-react";
|
|
5
|
+
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
6
|
+
//#region src/listbox/Listbox.tsx
|
|
7
|
+
var h = (e) => e.disabled === !0;
|
|
8
|
+
function g(e, t, n) {
|
|
9
|
+
if (n) {
|
|
10
|
+
if (Array.isArray(t) && t.length > 0) {
|
|
11
|
+
let n = e.findIndex((e) => t.includes(e.value) && !e.disabled);
|
|
12
|
+
if (n >= 0) return n;
|
|
13
|
+
}
|
|
14
|
+
return c(e, h);
|
|
15
|
+
}
|
|
16
|
+
if (t !== void 0) {
|
|
17
|
+
let n = e.findIndex((e) => e.value === t && !e.disabled);
|
|
18
|
+
if (n >= 0) return n;
|
|
19
|
+
}
|
|
20
|
+
return c(e, h);
|
|
21
|
+
}
|
|
22
|
+
function _(_) {
|
|
23
|
+
let { value: v, defaultValue: y, multiple: b, focusOnMount: x, renderItem: S, getKey: C, options: w, onChange: T, id: E, ...D } = _, O = v !== void 0, k = n(), A = E ?? `${k}-listbox`, [j, M] = o(y), N = a(null), [P, F] = o(() => g(w, v ?? y, b)), I = i(() => (O ? v : j) ?? (b ? [] : null), [
|
|
24
|
+
j,
|
|
25
|
+
O,
|
|
26
|
+
b,
|
|
27
|
+
v
|
|
28
|
+
]), L = P, R = (e) => {
|
|
29
|
+
if (e.disabled) return;
|
|
30
|
+
let t;
|
|
31
|
+
if (_.multiple) {
|
|
32
|
+
let n = Array.isArray(I) ? I : [];
|
|
33
|
+
t = n.includes(e.value) ? n.filter((t) => t !== e.value) : [...n, e.value], _.onChange?.(t, e);
|
|
34
|
+
} else t = e.value, _.onChange?.(t, e);
|
|
35
|
+
O || M(t);
|
|
36
|
+
};
|
|
37
|
+
return t(() => {
|
|
38
|
+
let e = N.current?.querySelectorAll("[role=\"option\"]")[L];
|
|
39
|
+
e && e.scrollIntoView({ block: "nearest" });
|
|
40
|
+
}, [L]), r(() => {
|
|
41
|
+
x && N.current?.focus();
|
|
42
|
+
}, [x]), /* @__PURE__ */ p("ul", {
|
|
43
|
+
ref: N,
|
|
44
|
+
id: A,
|
|
45
|
+
role: "listbox",
|
|
46
|
+
"aria-multiselectable": b || void 0,
|
|
47
|
+
"aria-activedescendant": L >= 0 ? `${A}-option-${L}` : void 0,
|
|
48
|
+
tabIndex: 0,
|
|
49
|
+
onKeyDown: (e) => {
|
|
50
|
+
if (e.key === "ArrowDown") e.preventDefault(), F((e) => u(w, e, 1, h));
|
|
51
|
+
else if (e.key === "ArrowUp") e.preventDefault(), F((e) => u(w, e, -1, h));
|
|
52
|
+
else if (e.key === "Home") e.preventDefault(), F(c(w, h));
|
|
53
|
+
else if (e.key === "End") e.preventDefault(), F(l(w, h));
|
|
54
|
+
else if (d(e, () => {
|
|
55
|
+
let e = w[L];
|
|
56
|
+
e && R(e);
|
|
57
|
+
})) return;
|
|
58
|
+
},
|
|
59
|
+
...D,
|
|
60
|
+
className: s(e.uiPanel, "scrollable"),
|
|
61
|
+
children: w.map((t, n) => {
|
|
62
|
+
let r = b ? Array.isArray(I) && I.includes(t.value) : I === t.value, i = n === L;
|
|
63
|
+
return /* @__PURE__ */ m("li", {
|
|
64
|
+
id: `${A}-option-${n}`,
|
|
65
|
+
role: "option",
|
|
66
|
+
"aria-selected": r,
|
|
67
|
+
"aria-disabled": t.disabled || void 0,
|
|
68
|
+
onMouseDown: (e) => {
|
|
69
|
+
e.preventDefault(), !t.disabled && (F(n), R(t));
|
|
70
|
+
},
|
|
71
|
+
tabIndex: -1,
|
|
72
|
+
className: s(e.uiPopupOption, t.disabled && e.disabled, i && e.uiPopupOptionActive, r && e.selected),
|
|
73
|
+
children: [p(r ? f : "span", { className: e.uiPopupOptionIcon }), /* @__PURE__ */ p("div", { children: S ? S(t, r, i) : t.label ?? String(t.value) })]
|
|
74
|
+
}, C ? C(t, n) : n);
|
|
75
|
+
})
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
export { _ as Listbox };
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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\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, 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// const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\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 = /*hoveredIndex ??*/ focusedIndex;\n\n\tconst handleSelect = (option: ListboxOption<T>) => {\n\t\tif (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 (e.key === \"ArrowDown\") {\n\t\t\te.preventDefault();\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\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\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\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\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\ttabIndex={0}\n\t\t\t// onMouseLeave={() => setHoveredIndex(null)}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\t{...rest}\n\t\t\tclassName={cn(uiStyles.uiPanel, \"scrollable\")}>\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={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 (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\t// setHoveredIndex(index);\n\t\t\t\t\t\t\thandleSelect(option);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t// onMouseEnter={() => setHoveredIndex(index)}\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\toption.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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"}
|
package/dist/misc/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g, v as _, y as v } from "../chunks/misc-
|
|
1
|
+
import { _ as e, a as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, u as g, v as _, y as v } from "../chunks/misc-1PxS8OWD.js";
|
|
2
2
|
export { v as AnimatedLogo, _ as CopyTextWrapper, u as ErrorIcon, e as IconWrapper, p as InformationIcon, l as LazyDynamicComponent, i as LazyValue, o as LoadingMessage, a as Message, r as NoData, g as Notice, c as OneStepScroller, s as RenderStateIcon, n as Scrollable, f as SkeletonLine, t as StateIcon, h as StateWrapper, d as SuccessIcon, m as WarningIcon };
|
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-C0j0hEIt.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,3 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export { t as MultiSelect, e as MultiSelectToken, r as ODataDependentMultiSelect, i as ODataDependentSegmentMultiSelect, n as ODataMultiSelect, a as SerializableMultiSelect };
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, t as a } from "../chunks/multi-select-r0ekR6Bh.js";
|
|
2
|
+
export { e as MultiSelect, r as MultiSelectToken, n as ODataDependentMultiSelect, i as ODataDependentSegmentMultiSelect, t as ODataMultiSelect, a as SerializableMultiSelect };
|
|
@@ -1,3 +1,151 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { o as e } from "../chunks/flex-CPO6xlPR.js";
|
|
2
|
+
import { n as t } from "../chunks/button-CC0Jdx1j.js";
|
|
3
|
+
import { createContext as n, useContext as r, useEffect as i, useMemo as a } from "react";
|
|
4
|
+
import { cn as o } from "@ryuzaki13/react-foundation-lib/utils";
|
|
5
|
+
import { bindNotifications as s, createNotificationsStore as c, notify as l } from "@ryuzaki13/react-foundation-lib/notifications";
|
|
6
|
+
import { AlertCircleIcon as u, CheckCircle2Icon as d, InfoIcon as f, TriangleAlertIcon as p, XIcon as m } from "lucide-react";
|
|
7
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
8
|
+
import { createMissingContextError as _ } from "@ryuzaki13/react-foundation-lib/error";
|
|
9
|
+
import { useStore as v } from "zustand";
|
|
10
|
+
//#region src/notifications/model/NotificationsProvider.tsx
|
|
11
|
+
var y = n(null);
|
|
12
|
+
function b({ children: e }) {
|
|
13
|
+
let t = a(() => c(), []);
|
|
14
|
+
return i(() => s(t), [t]), /* @__PURE__ */ h(y.Provider, {
|
|
15
|
+
value: t,
|
|
16
|
+
children: e
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function x() {
|
|
20
|
+
let e = r(y);
|
|
21
|
+
if (!e) throw _({
|
|
22
|
+
hookName: "useNotificationApi",
|
|
23
|
+
providerName: "NotificationsProvider"
|
|
24
|
+
});
|
|
25
|
+
return e;
|
|
26
|
+
}
|
|
27
|
+
function S() {
|
|
28
|
+
return v(x(), (e) => e.items);
|
|
29
|
+
}
|
|
30
|
+
function C() {
|
|
31
|
+
let e = v(x(), (e) => e.actions), t = (t) => (n, r) => e.push({
|
|
32
|
+
type: t,
|
|
33
|
+
message: n,
|
|
34
|
+
...r
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
...e,
|
|
38
|
+
success: t("success"),
|
|
39
|
+
info: t("info"),
|
|
40
|
+
warning: t("warning"),
|
|
41
|
+
error: t("error")
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function w(e) {
|
|
45
|
+
return v(x(), (t) => t.items.find((t) => t.id === e));
|
|
46
|
+
}
|
|
47
|
+
var T = {
|
|
48
|
+
container: "STGQ3g",
|
|
49
|
+
card: "RaiISE",
|
|
50
|
+
info: "cM81wO",
|
|
51
|
+
success: "nH2cuZ",
|
|
52
|
+
warning: "A2glD7",
|
|
53
|
+
error: "yWjijS",
|
|
54
|
+
header: "_1HO2ne",
|
|
55
|
+
content: "OyRJpj",
|
|
56
|
+
copy: "vrCrow",
|
|
57
|
+
icon: "A0X-ma",
|
|
58
|
+
kicker: "AkHvPV",
|
|
59
|
+
title: "_4YDLB5",
|
|
60
|
+
message: "CK3Bqv",
|
|
61
|
+
actions: "nLmQut"
|
|
62
|
+
}, E = {
|
|
63
|
+
info: {
|
|
64
|
+
title: "Информация",
|
|
65
|
+
Icon: f
|
|
66
|
+
},
|
|
67
|
+
success: {
|
|
68
|
+
title: "Успешно",
|
|
69
|
+
Icon: d
|
|
70
|
+
},
|
|
71
|
+
warning: {
|
|
72
|
+
title: "Предупреждение",
|
|
73
|
+
Icon: p
|
|
74
|
+
},
|
|
75
|
+
error: {
|
|
76
|
+
title: "Ошибка",
|
|
77
|
+
Icon: u
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
function D() {
|
|
81
|
+
let n = S(), { dismiss: r } = C();
|
|
82
|
+
return /* @__PURE__ */ h("div", {
|
|
83
|
+
className: T.container,
|
|
84
|
+
"aria-label": "Область уведомлений",
|
|
85
|
+
"aria-live": "polite",
|
|
86
|
+
"aria-relevant": "additions text",
|
|
87
|
+
children: n.map((n) => {
|
|
88
|
+
let i = E[n.type], a = n.title ?? i.title, s = i.Icon;
|
|
89
|
+
return /* @__PURE__ */ h("article", {
|
|
90
|
+
role: n.type === "error" ? "alert" : "status",
|
|
91
|
+
"aria-atomic": "true",
|
|
92
|
+
className: o(T.card, T[n.type]),
|
|
93
|
+
children: /* @__PURE__ */ g(e, {
|
|
94
|
+
align: "start",
|
|
95
|
+
justify: "between",
|
|
96
|
+
gap: "sm",
|
|
97
|
+
className: T.header,
|
|
98
|
+
children: [/* @__PURE__ */ g(e, {
|
|
99
|
+
align: "start",
|
|
100
|
+
gap: "sm",
|
|
101
|
+
className: T.content,
|
|
102
|
+
children: [/* @__PURE__ */ h("span", {
|
|
103
|
+
className: T.icon,
|
|
104
|
+
"aria-hidden": "true",
|
|
105
|
+
children: /* @__PURE__ */ h(s, {})
|
|
106
|
+
}), /* @__PURE__ */ g("div", {
|
|
107
|
+
className: T.copy,
|
|
108
|
+
children: [
|
|
109
|
+
/* @__PURE__ */ h("div", {
|
|
110
|
+
className: T.kicker,
|
|
111
|
+
children: i.title
|
|
112
|
+
}),
|
|
113
|
+
n.title ? /* @__PURE__ */ h("div", {
|
|
114
|
+
className: T.title,
|
|
115
|
+
children: a
|
|
116
|
+
}) : null,
|
|
117
|
+
/* @__PURE__ */ h("div", {
|
|
118
|
+
className: T.message,
|
|
119
|
+
children: n.message
|
|
120
|
+
}),
|
|
121
|
+
n.actions?.length ? /* @__PURE__ */ h("div", {
|
|
122
|
+
className: T.actions,
|
|
123
|
+
children: n.actions.map((e) => /* @__PURE__ */ h(t, {
|
|
124
|
+
tone: e.tone ?? n.type,
|
|
125
|
+
appearance: "outline",
|
|
126
|
+
"data-ui": "notification-action-button",
|
|
127
|
+
"data-action": "notification-action",
|
|
128
|
+
onClick: () => void e.onClick(),
|
|
129
|
+
children: e.label
|
|
130
|
+
}, e.label))
|
|
131
|
+
}) : null
|
|
132
|
+
]
|
|
133
|
+
})]
|
|
134
|
+
}), n.dismissible === !1 ? null : /* @__PURE__ */ h(t, {
|
|
135
|
+
icon: /* @__PURE__ */ h(m, {}),
|
|
136
|
+
appearance: "ghost",
|
|
137
|
+
tone: n.type,
|
|
138
|
+
onClick: () => r(n.id),
|
|
139
|
+
"aria-label": "Закрыть уведомление",
|
|
140
|
+
"data-ui": "notification-dismiss-button",
|
|
141
|
+
"data-action": "dismiss-notification"
|
|
142
|
+
})]
|
|
143
|
+
})
|
|
144
|
+
}, n.id);
|
|
145
|
+
})
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
//#endregion
|
|
149
|
+
export { l as NotificationApi, l as notify, D as NotificationsHost, b as NotificationsProvider, w as useNotificationById, S as useNotifications, C as useNotify };
|
|
150
|
+
|
|
151
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/notifications/model/NotificationsProvider.tsx","../../src/notifications/ui/Notification.module.scss","../../src/notifications/ui/NotificationsHost.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport { createContext, PropsWithChildren, useContext, useEffect, useMemo } from \"react\";\n\nimport { createMissingContextError } from \"@ryuzaki13/react-foundation-lib/error\";\nimport {\n\tbindNotifications,\n\tcreateNotificationsStore,\n\tNotificationId,\n\tNotificationPushInput,\n\tNotificationsStoreApi,\n\tNotificationType\n} from \"@ryuzaki13/react-foundation-lib/notifications\";\nimport { useStore } from \"zustand\";\n\nconst NotificationsContext = createContext<NotificationsStoreApi | null>(null);\n\n/**\n * Провайдер уведомлений приложения. Хранит состояние списка уведомлений и предоставляет хуки доступа к нему.\n */\nexport function NotificationsProvider({ children }: PropsWithChildren) {\n\tconst store = useMemo(() => createNotificationsStore(), []);\n\n\tuseEffect(() => {\n\t\treturn bindNotifications(store);\n\t}, [store]);\n\n\treturn <NotificationsContext.Provider value={store}>{children}</NotificationsContext.Provider>;\n}\n\nfunction useNotificationApi() {\n\tconst ctx = useContext(NotificationsContext);\n\tif (!ctx) {\n\t\tthrow createMissingContextError({\n\t\t\thookName: \"useNotificationApi\",\n\t\t\tproviderName: \"NotificationsProvider\"\n\t\t});\n\t}\n\treturn ctx;\n}\n\nexport function useNotifications() {\n\tconst api = useNotificationApi();\n\treturn useStore(api, (s) => s.items);\n}\n\nexport function useNotify() {\n\tconst api = useNotificationApi();\n\tconst actions = useStore(api, (s) => s.actions);\n\n\tconst mk = (type: NotificationType) => (message: string, opts?: Omit<NotificationPushInput, \"type\" | \"message\">) =>\n\t\tactions.push({ type, message, ...opts });\n\n\treturn {\n\t\t...actions,\n\t\tsuccess: mk(\"success\"),\n\t\tinfo: mk(\"info\"),\n\t\twarning: mk(\"warning\"),\n\t\terror: mk(\"error\")\n\t};\n}\n\nexport function useNotificationById(id: NotificationId) {\n\tconst api = useNotificationApi();\n\treturn useStore(api, (s) => s.items.find((n) => n.id === id));\n}\n","@use \"@/styles/mixins\" as *;\n\n.container {\n\tposition: fixed;\n\tz-index: var(--z-notify);\n\tbottom: 0;\n\tleft: 0;\n\tdisplay: grid;\n\tgap: var(--space-sm);\n\tpadding: var(--space-lg);\n\twidth: min(28em, calc(100dvw - var(--space-lg) * 2));\n\tpointer-events: none;\n}\n\n.card {\n\t--notify-accent: var(--border-1);\n\t--notify-accent-surface: var(--surface-1);\n\t--notify-accent-text: var(--content-accent);\n\n\tposition: relative;\n\toverflow: hidden;\n\tpointer-events: auto;\n\twidth: 100%;\n\tpadding: var(--space-md);\n\t// border: var(--border);\n\tborder-left: 0.3125em solid var(--notify-accent);\n\tborder-radius: var(--radius-md);\n\tbackground: linear-gradient(37deg, var(--notify-accent-surface), var(--surface-0));\n\tcolor: var(--content-0);\n\tbox-shadow: var(--shadow-md);\n}\n\n.info {\n\t--notify-accent: var(--status-info-border);\n\t--notify-accent-surface: var(--status-info-soft);\n\t--notify-accent-text: var(--status-info-text);\n}\n\n.success {\n\t--notify-accent: var(--status-success-border);\n\t--notify-accent-surface: var(--status-success-soft);\n\t--notify-accent-text: var(--status-success-text);\n}\n\n.warning {\n\t--notify-accent: var(--status-warning-border);\n\t--notify-accent-surface: var(--status-warning-soft);\n\t--notify-accent-text: var(--status-warning-text);\n}\n\n.error {\n\t--notify-accent: var(--status-error-border);\n\t--notify-accent-surface: var(--status-error-soft);\n\t--notify-accent-text: var(--status-error-text);\n}\n\n.header,\n.content,\n.copy {\n\tmin-width: 0;\n}\n\n.content {\n\tmin-width: 0;\n\tflex: 1;\n}\n\n.icon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\twidth: var(--control-height);\n\theight: var(--control-height);\n\tborder-radius: 50%;\n\tbackground-color: var(--notify-accent-surface);\n\tcolor: var(--notify-accent-text);\n\tborder: var(--border-width) solid color-mix(in srgb, var(--notify-accent) 22%, transparent);\n\n\tsvg {\n\t\twidth: 1.125em;\n\t\theight: 1.125em;\n\t}\n}\n\n.kicker {\n\tmargin-bottom: var(--space-xs);\n\tcolor: var(--notify-accent-text);\n\tfont-size: var(--font-size-xs);\n\tfont-weight: 600;\n\tfont-variation-settings: \"wght\" 600;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n}\n\n.title {\n\tcolor: var(--notify-accent-text);\n\tfont-weight: 600;\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.message {\n\tmargin-top: var(--space-xs);\n\tcolor: var(--content-0);\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n}\n\n.actions {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: var(--space-xs);\n\tmargin-top: var(--space-sm);\n}\n\n@include mobile {\n\t.container {\n\t\tpadding: var(--space-md);\n\t\twidth: min(100dvw, calc(100dvw - var(--space-md) * 2));\n\t}\n}\n","import { NotificationType } from \"@ryuzaki13/react-foundation-lib/notifications\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { AlertCircleIcon, CheckCircle2Icon, InfoIcon, TriangleAlertIcon, XIcon } from \"lucide-react\";\n\nimport { Button } from \"../../button\";\nimport { FlexContainer } from \"../../flex\";\nimport { useNotifications, useNotify } from \"../model/NotificationsProvider\";\n\nimport styles from \"./Notification.module.scss\";\n\nconst notificationConfig: Record<\n\tNotificationType,\n\t{\n\t\ttitle: string;\n\t\tIcon: typeof InfoIcon;\n\t}\n> = {\n\tinfo: {\n\t\ttitle: \"Информация\",\n\t\tIcon: InfoIcon\n\t},\n\tsuccess: {\n\t\ttitle: \"Успешно\",\n\t\tIcon: CheckCircle2Icon\n\t},\n\twarning: {\n\t\ttitle: \"Предупреждение\",\n\t\tIcon: TriangleAlertIcon\n\t},\n\terror: {\n\t\ttitle: \"Ошибка\",\n\t\tIcon: AlertCircleIcon\n\t}\n};\n\n/**\n * Хост для визуального отображения очереди уведомлений.\n * Обычно монтируется один раз на уровне приложения рядом с провайдером уведомлений.\n */\nexport function NotificationsHost() {\n\tconst items = useNotifications();\n\tconst { dismiss } = useNotify();\n\n\treturn (\n\t\t<div className={styles.container} aria-label=\"Область уведомлений\" aria-live=\"polite\" aria-relevant=\"additions text\">\n\t\t\t{items.map((notification) => {\n\t\t\t\tconst config = notificationConfig[notification.type];\n\t\t\t\tconst title = notification.title ?? config.title;\n\t\t\t\tconst Icon = config.Icon;\n\n\t\t\t\treturn (\n\t\t\t\t\t<article\n\t\t\t\t\t\tkey={notification.id}\n\t\t\t\t\t\trole={notification.type === \"error\" ? \"alert\" : \"status\"}\n\t\t\t\t\t\taria-atomic=\"true\"\n\t\t\t\t\t\tclassName={cn(styles.card, styles[notification.type])}>\n\t\t\t\t\t\t<FlexContainer align=\"start\" justify=\"between\" gap=\"sm\" className={styles.header}>\n\t\t\t\t\t\t\t<FlexContainer align=\"start\" gap=\"sm\" className={styles.content}>\n\t\t\t\t\t\t\t\t<span className={styles.icon} aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t<Icon />\n\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t<div className={styles.copy}>\n\t\t\t\t\t\t\t\t\t<div className={styles.kicker}>{config.title}</div>\n\t\t\t\t\t\t\t\t\t{notification.title ? <div className={styles.title}>{title}</div> : null}\n\t\t\t\t\t\t\t\t\t<div className={styles.message}>{notification.message}</div>\n\n\t\t\t\t\t\t\t\t\t{notification.actions?.length ? (\n\t\t\t\t\t\t\t\t\t\t<div className={styles.actions}>\n\t\t\t\t\t\t\t\t\t\t\t{notification.actions.map((action) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={action.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttone={action.tone ?? notification.type}\n\t\t\t\t\t\t\t\t\t\t\t\t\tappearance=\"outline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"notification-action-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata-action=\"notification-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => void action.onClick()}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</div>\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</FlexContainer>\n\n\t\t\t\t\t\t\t{notification.dismissible !== false ? (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={<XIcon />}\n\t\t\t\t\t\t\t\t\tappearance=\"ghost\"\n\t\t\t\t\t\t\t\t\ttone={notification.type}\n\t\t\t\t\t\t\t\t\tonClick={() => dismiss(notification.id)}\n\t\t\t\t\t\t\t\t\taria-label=\"Закрыть уведомление\"\n\t\t\t\t\t\t\t\t\tdata-ui=\"notification-dismiss-button\"\n\t\t\t\t\t\t\t\t\tdata-action=\"dismiss-notification\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t</FlexContainer>\n\t\t\t\t\t</article>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
package/dist/picker/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, r as c, s as l, t as u, u as d } from "../chunks/picker-
|
|
1
|
+
import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, r as c, s as l, t as u, u as d } from "../chunks/picker-beNX-cW9.js";
|
|
2
2
|
export { r as PickerField, n as PickerPopup, d as PickerStatus, a as PickerTriggerActions, t as PickerTriggerInput, l as createPickerTriggerPolicy, s as extractPickerTextContent, e as usePickerDefaultFilter, i as usePickerFloatingListbox, c as usePickerQuery, o as usePickerSelectionLifecycle, u as usePickerTriggerController };
|
|
@@ -1,7 +1,56 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { o as e } from "../chunks/flex-CPO6xlPR.js";
|
|
2
|
+
import { t } from "../chunks/date-input-DjAQ75n9.js";
|
|
3
|
+
import { c as n, l as r, r as i, s as a, t as o, u as s } from "../chunks/date-range-preset-select-UgsfaOeM.js";
|
|
4
|
+
import { useCallback as c, useMemo as l, useRef as u, useState as d } from "react";
|
|
5
|
+
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
2
6
|
//#region src/preset-range-date-input/lib/constants.ts
|
|
3
|
-
var
|
|
7
|
+
var m = "preset-range-date-input";
|
|
4
8
|
//#endregion
|
|
5
|
-
|
|
9
|
+
//#region src/preset-range-date-input/ui/PresetRangeDateInput.tsx
|
|
10
|
+
function h(e) {
|
|
11
|
+
return e ?? "__empty__";
|
|
12
|
+
}
|
|
13
|
+
function g({ value: m, onChange: g, presetId: _, onPresetIdChange: v, referenceDate: y, presetIds: b, presetOptions: x, presetLabel: S, presetDescription: C, presetPlaceholder: w = "Выберите пресет диапазона", presetDisabled: T, ...E }) {
|
|
14
|
+
let [D] = d(() => /* @__PURE__ */ new Date()), O = y ?? D, k = l(() => x ?? r(a(b, i)), [b, x]), A = m ?? null, j = l(() => n(A, O, k), [
|
|
15
|
+
A,
|
|
16
|
+
k,
|
|
17
|
+
O
|
|
18
|
+
]), M = _ ?? j ?? void 0, N = u(""), P = c((e) => {
|
|
19
|
+
if (!v) return;
|
|
20
|
+
let t = h(e);
|
|
21
|
+
t !== N.current && (N.current = t, v(e));
|
|
22
|
+
}, [v]), F = (e) => {
|
|
23
|
+
let t = s(e, O, k);
|
|
24
|
+
if (!t) {
|
|
25
|
+
P(null);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
P(t.id), g(t.range);
|
|
29
|
+
}, I = (e) => {
|
|
30
|
+
g(e), P(n(e, O, k));
|
|
31
|
+
};
|
|
32
|
+
return /* @__PURE__ */ p(e, {
|
|
33
|
+
gap: "sm",
|
|
34
|
+
align: "end",
|
|
35
|
+
children: [/* @__PURE__ */ f(o, {
|
|
36
|
+
size: "md",
|
|
37
|
+
label: S,
|
|
38
|
+
description: C,
|
|
39
|
+
placeholder: w,
|
|
40
|
+
disabled: T ?? E.disabled,
|
|
41
|
+
value: M,
|
|
42
|
+
onChange: F,
|
|
43
|
+
options: k,
|
|
44
|
+
referenceDate: O
|
|
45
|
+
}), /* @__PURE__ */ f(t, {
|
|
46
|
+
...E,
|
|
47
|
+
size: "md",
|
|
48
|
+
value: A,
|
|
49
|
+
onChange: I
|
|
50
|
+
})]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { m as PRESET_RANGE_DATE_INPUT_COMPONENT_ID, g as PresetRangeDateInput };
|
|
6
55
|
|
|
7
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/preset-range-date-input/lib/constants.ts"],"sourcesContent":["/**\n * Идентификатор составного контрола диапазона дат с пресетами.\n */\nexport const PRESET_RANGE_DATE_INPUT_COMPONENT_ID = \"preset-range-date-input\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/preset-range-date-input/lib/constants.ts","../../src/preset-range-date-input/ui/PresetRangeDateInput.tsx"],"sourcesContent":["/**\n * Идентификатор составного контрола диапазона дат с пресетами.\n */\nexport const PRESET_RANGE_DATE_INPUT_COMPONENT_ID = \"preset-range-date-input\";\n","import { useCallback, useMemo, useRef, useState, type ReactNode } from \"react\";\n\nimport { NullableDateRange } from \"@ryuzaki13/react-foundation-lib/formatters\";\n\nimport { RangeDateInput, type DateRangeInputProps } from \"../../date-input\";\nimport {\n\tDateRangePresetOption,\n\tDateRangePresetSelect,\n\tDEFAULT_DATE_RANGE_PRESET_IDS,\n\tnormalizeDateRangePresetIds,\n\tresolveDateRangePresetIdByRange,\n\tresolveDateRangePresetOptionsByIds,\n\tresolveDateRangePresetPayload\n} from \"../../date-range-preset-select\";\nimport { FlexContainer } from \"../../flex\";\n\nexport interface PresetRangeDateInputProps extends Omit<DateRangeInputProps, \"selectsRange\"> {\n\tpresetId?: DateRangePresetOption[\"id\"] | null;\n\tonPresetIdChange?: (presetId: DateRangePresetOption[\"id\"] | null) => void;\n\treferenceDate?: Date;\n\tpresetIds?: readonly DateRangePresetOption[\"id\"][];\n\tpresetOptions?: readonly DateRangePresetOption[];\n\tpresetLabel?: ReactNode;\n\tpresetDescription?: string;\n\tpresetPlaceholder?: string;\n\tpresetDisabled?: boolean;\n}\n\n/**\n * Строит сигнатуру пресета для защиты от повторной синхронизации.\n */\nfunction getPresetSignature(presetId: DateRangePresetOption[\"id\"] | null): string {\n\treturn presetId ?? \"__empty__\";\n}\n\n/**\n * Составной компонент выбора диапазона дат через пресет или ручной ввод.\n */\nexport function PresetRangeDateInput({\n\tvalue,\n\tonChange,\n\tpresetId,\n\tonPresetIdChange,\n\treferenceDate,\n\tpresetIds,\n\tpresetOptions,\n\tpresetLabel,\n\tpresetDescription,\n\tpresetPlaceholder = \"Выберите пресет диапазона\",\n\tpresetDisabled,\n\t...rangeDateInputProps\n}: PresetRangeDateInputProps) {\n\tconst [defaultReferenceDate] = useState(() => new Date());\n\tconst resolvedReferenceDate = referenceDate ?? defaultReferenceDate;\n\tconst resolvedPresetOptions = useMemo(\n\t\t() => presetOptions ?? resolveDateRangePresetOptionsByIds(normalizeDateRangePresetIds(presetIds, DEFAULT_DATE_RANGE_PRESET_IDS)),\n\t\t[presetIds, presetOptions]\n\t);\n\tconst controlledValue = value ?? null;\n\tconst matchedPresetId = useMemo(\n\t\t() => resolveDateRangePresetIdByRange(controlledValue, resolvedReferenceDate, resolvedPresetOptions),\n\t\t[controlledValue, resolvedPresetOptions, resolvedReferenceDate]\n\t);\n\tconst selectedPresetId = presetId ?? matchedPresetId ?? undefined;\n\tconst lastPresetSignatureRef = useRef<string>(\"\");\n\n\t/**\n\t * Сообщает наружу только реальное изменение `presetId`.\n\t */\n\tconst emitPresetIdChange = useCallback(\n\t\t(nextPresetId: DateRangePresetOption[\"id\"] | null) => {\n\t\t\tif (!onPresetIdChange) return;\n\n\t\t\tconst nextSignature = getPresetSignature(nextPresetId);\n\t\t\tif (nextSignature === lastPresetSignatureRef.current) return;\n\n\t\t\tlastPresetSignatureRef.current = nextSignature;\n\t\t\tonPresetIdChange(nextPresetId);\n\t\t},\n\t\t[onPresetIdChange]\n\t);\n\n\t/**\n\t * Обрабатывает выбор пресета и переводит его в диапазон дат.\n\t */\n\tconst handlePresetChange = (nextPresetId: DateRangePresetOption[\"id\"] | undefined) => {\n\t\tconst nextPayload = resolveDateRangePresetPayload(nextPresetId, resolvedReferenceDate, resolvedPresetOptions);\n\t\tif (!nextPayload) {\n\t\t\temitPresetIdChange(null);\n\t\t\treturn;\n\t\t}\n\n\t\temitPresetIdChange(nextPayload.id);\n\t\tonChange(nextPayload.range);\n\t};\n\n\t/**\n\t * Обрабатывает ручное изменение диапазона и подбирает подходящий пресет.\n\t */\n\tconst handleRangeChange = (nextRange: NullableDateRange | null) => {\n\t\tonChange(nextRange);\n\t\temitPresetIdChange(resolveDateRangePresetIdByRange(nextRange, resolvedReferenceDate, resolvedPresetOptions));\n\t};\n\n\treturn (\n\t\t<FlexContainer gap=\"sm\" align=\"end\">\n\t\t\t<DateRangePresetSelect\n\t\t\t\tsize=\"md\"\n\t\t\t\tlabel={presetLabel}\n\t\t\t\tdescription={presetDescription}\n\t\t\t\tplaceholder={presetPlaceholder}\n\t\t\t\tdisabled={presetDisabled ?? rangeDateInputProps.disabled}\n\t\t\t\tvalue={selectedPresetId}\n\t\t\t\tonChange={handlePresetChange}\n\t\t\t\toptions={resolvedPresetOptions}\n\t\t\t\treferenceDate={resolvedReferenceDate}\n\t\t\t/>\n\n\t\t\t<RangeDateInput {...rangeDateInputProps} size=\"md\" value={controlledValue} onChange={handleRangeChange} />\n\t\t</FlexContainer>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAa,IAAuC;;;AC4BpD,SAAS,EAAmB,GAAsD;CACjF,OAAO,KAAY;AACpB;AAKA,SAAgB,EAAqB,EACpC,UACA,aACA,aACA,qBACA,kBACA,cACA,kBACA,gBACA,sBACA,uBAAoB,6BACpB,mBACA,GAAG,KAC0B;CAC7B,IAAM,CAAC,KAAwB,wBAAe,IAAI,KAAK,CAAC,GAClD,IAAwB,KAAiB,GACzC,IAAwB,QACvB,KAAiB,EAAmC,EAA4B,GAAW,CAA6B,CAAC,GAC/H,CAAC,GAAW,CAAa,CAC1B,GACM,IAAkB,KAAS,MAC3B,IAAkB,QACjB,EAAgC,GAAiB,GAAuB,CAAqB,GACnG;EAAC;EAAiB;EAAuB;CAAqB,CAC/D,GACM,IAAmB,KAAY,KAAmB,KAAA,GAClD,IAAyB,EAAe,EAAE,GAK1C,IAAqB,GACzB,MAAqD;EACrD,IAAI,CAAC,GAAkB;EAEvB,IAAM,IAAgB,EAAmB,CAAY;EACjD,MAAkB,EAAuB,YAE7C,EAAuB,UAAU,GACjC,EAAiB,CAAY;CAC9B,GACA,CAAC,CAAgB,CAClB,GAKM,KAAsB,MAA0D;EACrF,IAAM,IAAc,EAA8B,GAAc,GAAuB,CAAqB;EAC5G,IAAI,CAAC,GAAa;GACjB,EAAmB,IAAI;GACvB;EACD;EAGA,AADA,EAAmB,EAAY,EAAE,GACjC,EAAS,EAAY,KAAK;CAC3B,GAKM,KAAqB,MAAwC;EAElE,AADA,EAAS,CAAS,GAClB,EAAmB,EAAgC,GAAW,GAAuB,CAAqB,CAAC;CAC5G;CAEA,OACC,kBAAC,GAAD;EAAe,KAAI;EAAK,OAAM;YAA9B,CACC,kBAAC,GAAD;GACC,MAAK;GACL,OAAO;GACP,aAAa;GACb,aAAa;GACb,UAAU,KAAkB,EAAoB;GAChD,OAAO;GACP,UAAU;GACV,SAAS;GACT,eAAe;EACf,CAAA,GAED,kBAAC,GAAD;GAAgB,GAAI;GAAqB,MAAK;GAAK,OAAO;GAAiB,UAAU;EAAoB,CAAA,CAC3F;;AAEjB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { r as e } from "../chunks/select-CFbZS7fx.js";
|
|
2
2
|
import { jsx as t } from "react/jsx-runtime";
|
|
3
3
|
import { getPresetOption as n } from "@ryuzaki13/react-foundation-lib/presets";
|
|
4
4
|
//#region src/preset-select/PresetSelect.tsx
|
|
@@ -1,2 +1,48 @@
|
|
|
1
|
-
import { t as e } from "../chunks/
|
|
2
|
-
|
|
1
|
+
import { t as e } from "../chunks/ui.module-BisoTevy.js";
|
|
2
|
+
import { n as t } from "../chunks/uiClasses-BNjBunnY.js";
|
|
3
|
+
import { t as n } from "../chunks/CheckBox.module-D0Ze9qh3.js";
|
|
4
|
+
import { useId as r } from "react";
|
|
5
|
+
import { cn as i } from "@ryuzaki13/react-foundation-lib/utils";
|
|
6
|
+
import { CircleIcon as a } from "lucide-react";
|
|
7
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
8
|
+
var c = { radioInput: "gu8UMB" }, l = ({ label: l, description: u, placeholder: d, disabled: f, size: p, className: m, onChange: h, value: g, id: _, tone: v = "neutral", ...y }) => {
|
|
9
|
+
let b = r(), x = _ ?? b, S = u ? `${x}-description` : void 0, C = l ?? d, w = g ?? !1;
|
|
10
|
+
return /* @__PURE__ */ s("div", {
|
|
11
|
+
className: i(e.uiElement, p && e.uiSizable, p && e[p], f && e.disabled, m),
|
|
12
|
+
children: [/* @__PURE__ */ s("div", {
|
|
13
|
+
className: n.row,
|
|
14
|
+
children: [/* @__PURE__ */ s("div", {
|
|
15
|
+
className: i(n.wrapper, t(v)),
|
|
16
|
+
children: [/* @__PURE__ */ o("input", {
|
|
17
|
+
...y,
|
|
18
|
+
id: x,
|
|
19
|
+
type: "checkbox",
|
|
20
|
+
role: "radio",
|
|
21
|
+
checked: w,
|
|
22
|
+
disabled: f,
|
|
23
|
+
"aria-disabled": f,
|
|
24
|
+
"aria-checked": w,
|
|
25
|
+
"aria-describedby": S,
|
|
26
|
+
className: i(e.uiSelectionControl, n.input, c.radioInput),
|
|
27
|
+
onChange: () => h?.(!w)
|
|
28
|
+
}), /* @__PURE__ */ o("div", {
|
|
29
|
+
className: i(e.uiSelectionIcon, n.icon),
|
|
30
|
+
"aria-hidden": "true",
|
|
31
|
+
children: /* @__PURE__ */ o(a, {})
|
|
32
|
+
})]
|
|
33
|
+
}), C && /* @__PURE__ */ o("label", {
|
|
34
|
+
htmlFor: x,
|
|
35
|
+
className: e.uiLabel,
|
|
36
|
+
children: C
|
|
37
|
+
})]
|
|
38
|
+
}), u && /* @__PURE__ */ o("p", {
|
|
39
|
+
id: S,
|
|
40
|
+
className: e.uiDescription,
|
|
41
|
+
children: u
|
|
42
|
+
})]
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
export { l as RadioButton };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/radio-button/RadioButton.module.scss","../../src/radio-button/RadioButton.tsx"],"sourcesContent":[".radioInput {\n\tborder-radius: 50%;\n}\n","import React, { useId } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CircleIcon } from \"lucide-react\";\n\nimport baseStyles from \"../check-box/CheckBox.module.scss\";\nimport uiStyles from \"../ui.module.scss\";\nimport { getUiToneClassName } from \"../uiClasses\";\n\nimport styles from \"./RadioButton.module.scss\";\n\nimport type { UiBaseProps, UiTone } from \"../types\";\n\nexport interface RadioButtonProps\n\textends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\" | \"checked\" | \"value\" | \"onChange\" | \"type\">, UiBaseProps<boolean> {\n\ttone?: UiTone;\n}\n\n/**\n * Компонент радиокнопки для выбора одного варианта.\n * Поддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.\n */\nexport const RadioButton: React.FC<RadioButtonProps> = ({\n\tlabel,\n\tdescription,\n\tplaceholder,\n\tdisabled,\n\tsize,\n\tclassName,\n\tonChange,\n\tvalue,\n\tid: externalId,\n\ttone = \"neutral\",\n\t...props\n}) => {\n\tconst autoId = useId();\n\tconst id = externalId ?? autoId;\n\tconst descriptionId = description ? `${id}-description` : undefined;\n\tconst text = label ?? placeholder;\n\tconst checked = value ?? false;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\tuiStyles.uiElement,\n\t\t\t\tsize && uiStyles.uiSizable,\n\t\t\t\tsize && uiStyles[size],\n\t\t\t\tdisabled && uiStyles.disabled,\n\t\t\t\tclassName\n\t\t\t)}>\n\t\t\t<div className={baseStyles.row}>\n\t\t\t\t<div className={cn(baseStyles.wrapper, getUiToneClassName(tone))}>\n\t\t\t\t\t<input\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\trole=\"radio\"\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\taria-disabled={disabled}\n\t\t\t\t\t\taria-checked={checked}\n\t\t\t\t\t\taria-describedby={descriptionId}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiSelectionControl, baseStyles.input, styles.radioInput)}\n\t\t\t\t\t\tonChange={() => onChange?.(!checked)}\n\t\t\t\t\t/>\n\t\t\t\t\t<div className={cn(uiStyles.uiSelectionIcon, baseStyles.icon)} aria-hidden=\"true\">\n\t\t\t\t\t\t<CircleIcon />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{text && (\n\t\t\t\t\t<label htmlFor={id} className={uiStyles.uiLabel}>\n\t\t\t\t\t\t{text}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{description && (\n\t\t\t\t<p id={descriptionId} className={uiStyles.uiDescription}>\n\t\t\t\t\t{description}\n\t\t\t\t</p>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"mappings":";;;;;;;kCCsBa,KAA2C,EACvD,UACA,gBACA,gBACA,aACA,SACA,cACA,aACA,UACA,IAAI,GACJ,UAAO,WACP,GAAG,QACE;CACL,IAAM,IAAS,EAAM,GACf,IAAK,KAAc,GACnB,IAAgB,IAAc,GAAG,EAAG,gBAAgB,KAAA,GACpD,IAAO,KAAS,GAChB,IAAU,KAAS;CAEzB,OACC,kBAAC,OAAD;EACC,WAAW,EACV,EAAS,WACT,KAAQ,EAAS,WACjB,KAAQ,EAAS,IACjB,KAAY,EAAS,UACrB,CACD;YAPD,CAQC,kBAAC,OAAD;GAAK,WAAW,EAAW;aAA3B,CACC,kBAAC,OAAD;IAAK,WAAW,EAAG,EAAW,SAAS,EAAmB,CAAI,CAAC;cAA/D,CACC,kBAAC,SAAD;KACC,GAAI;KACA;KACJ,MAAK;KACL,MAAK;KACI;KACC;KACV,iBAAe;KACf,gBAAc;KACd,oBAAkB;KAClB,WAAW,EAAG,EAAS,oBAAoB,EAAW,OAAO,EAAO,UAAU;KAC9E,gBAAgB,IAAW,CAAC,CAAO;IACnC,CAAA,GACD,kBAAC,OAAD;KAAK,WAAW,EAAG,EAAS,iBAAiB,EAAW,IAAI;KAAG,eAAY;eAC1E,kBAAC,GAAD,CAAa,CAAA;IACT,CAAA,CACD;OACJ,KACA,kBAAC,SAAD;IAAO,SAAS;IAAI,WAAW,EAAS;cACtC;GACK,CAAA,CAEJ;MACJ,KACA,kBAAC,KAAD;GAAG,IAAI;GAAe,WAAW,EAAS;aACxC;EACC,CAAA,CAEA;;AAEP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "../chunks/
|
|
1
|
+
import { n as e, t } from "../chunks/radio-group-B9XjkcOy.js";
|
|
2
2
|
export { t as Option, e as RadioGroup };
|
package/dist/select/index.js
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import { t as r } from "../chunks/SerializableSelect-CVGFjCGK.js";
|
|
4
|
-
export { n as ODataSelect, t as Select, r as SerializableSelect, e as resolveSelectedOption };
|
|
1
|
+
import { i as e, n as t, r as n, t as r } from "../chunks/select-CFbZS7fx.js";
|
|
2
|
+
export { t as ODataSelect, n as Select, r as SerializableSelect, e as resolveSelectedOption };
|