@ryuzaki13/react-foundation-ui 1.1.5 → 1.1.6
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/period-select/PeriodSelect.d.ts +8 -2
- package/dist/period-select/PeriodSelect.d.ts.map +1 -1
- package/dist/period-select/index.js +66 -51
- package/dist/period-select/index.js.map +1 -1
- package/dist/period-select/lib/periodSelect.d.ts +12 -2
- package/dist/period-select/lib/periodSelect.d.ts.map +1 -1
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-BTAE-Cu0.js → Badge-DTbZvGvY.js} +1 -1
- package/storybook-static/assets/{Badge.stories-BfCBagHU.js → Badge.stories-C0FRO6mR.js} +1 -1
- package/storybook-static/assets/{Button-COr8ZnBZ.js → Button-CwOxcrRy.js} +1 -1
- package/storybook-static/assets/{Button-D0l3oLtE.js → Button-DBvM6sOi.js} +1 -1
- package/storybook-static/assets/{Button.stories-DilF6LrK.js → Button.stories-wRxT1tys.js} +1 -1
- package/storybook-static/assets/{CheckBox-C8vS8vJo.js → CheckBox-6vNLr5mN.js} +1 -1
- package/storybook-static/assets/{CheckBox-d9nyYsIy.js → CheckBox-B2PYacPl.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-B07ze4Wr.js → CheckBox.stories-BsgDlKB1.js} +1 -1
- package/storybook-static/assets/{Color-KMSTOMOX-Bzsd_5QQ.js → Color-KMSTOMOX-CSNKZs5h.js} +1 -1
- package/storybook-static/assets/{ContextMenu-D7IPfGtH.js → ContextMenu-BrkKv7rm.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-EmxBfTnl.js → ContextMenu.stories-Bu0PKs77.js} +1 -1
- package/storybook-static/assets/{DateInput-Crs5GWnG.js → DateInput-CpD5ET6Z.js} +1 -1
- package/storybook-static/assets/{DateInput-CP4Pxdvs.js → DateInput-Dk6Oy1Y5.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BLCS9iRX.js → DateInput.stories-PxSyhXdr.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Csbfuey7.js → DateRangePresetSelect-DngfCkUZ.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-J-WzYVkt.js → DateRangePresetSelect-Y_jVJn8B.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-BhFL1OaP.js → DateRangePresetSelect.stories-C8lPJh_i.js} +1 -1
- package/storybook-static/assets/{Detail-DglfYNE2.js → Detail-VfH3Ddln.js} +1 -1
- package/storybook-static/assets/{Detail.stories-0IivH1cQ.js → Detail.stories-HC_fB5JL.js} +1 -1
- package/storybook-static/assets/{Dialog-D0joa64s.js → Dialog-BqF8Stct.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CTfN45UP.js → Dialog.stories-CZREWQ1k.js} +1 -1
- package/storybook-static/assets/{Disclosure-rdSQS8P7.js → Disclosure-DdQCtfOv.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-5BgYi8uF.js → Disclosure.stories-BipF9KGl.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-BJkHjLCZ.js → DocsRenderer-JROSPFPF-C_tirLBz.js} +2 -2
- package/storybook-static/assets/{DropZone-BM1NLuA0.js → DropZone-GYL3kQCI.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-DrPDxIBC.js → DropZone.stories-CruH4C9l.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-shJr746W.js → DropdownMenu-E1ylGqL9.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-TtfzEN4C.js → ExpandableActionPanel.stories-BBsU-gui.js} +1 -1
- package/storybook-static/assets/{Flex-5o7k9tUR.js → Flex-C6fgzqXv.js} +1 -1
- package/storybook-static/assets/{Flex-BkWF7h5z.js → Flex-DMLdHG7d.js} +1 -1
- package/storybook-static/assets/{Flex.stories-C1XJ44EO.js → Flex.stories-CP5WdLD3.js} +1 -1
- package/storybook-static/assets/{Grid-BXz1CwFq.js → Grid-DzBMbNYT.js} +1 -1
- package/storybook-static/assets/{Grid-CdI_y4yl.js → Grid-p6sY7en9.js} +1 -1
- package/storybook-static/assets/{Grid.stories-EsSWnusY.js → Grid.stories-rHEEhmA4.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-BYg2ptRF.js → ImageCropper.stories-DXzbQ5FJ.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-DAdVVRDG.js → ImageRenderer-CPYOOx0n.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-nYsBLQRc.js → ImageRenderer.stories-B5a4BoWt.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-BuexvCt7.js → ImageView.stories-sTO611LR.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-C2rTyKj7.js → ImageViewer.stories-CwIqVtTH.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-F7Qkt8r6.js → ImageViewerRuntime-CkiRw9AS.js} +1 -1
- package/storybook-static/assets/{Input-B2CGKwD9.js → Input-Cgz-Bx_e.js} +1 -1
- package/storybook-static/assets/{Input-Ny_qDcq6.js → Input-JhUvY-Jm.js} +1 -1
- package/storybook-static/assets/{Input.stories-I9DUZ8AK.js → Input.stories-CZjEUeuS.js} +1 -1
- package/storybook-static/assets/{InputDateTime-WZ2-rOQX.js → InputDateTime-BkN07v28.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-CQTdSUz9.js → InputDateTime.stories-DYM7WEl_.js} +1 -1
- package/storybook-static/assets/{InputFile-Dai1MtLc.js → InputFile-C7jAf-Im.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-C5xJSqnv.js → InputFile.stories-D_etMzJL.js} +1 -1
- package/storybook-static/assets/{InputFiles-DjdQ7Z-d.js → InputFiles-CQ30jms7.js} +1 -1
- package/storybook-static/assets/{InputFiles-dasytOC9.js → InputFiles-DzpHx6LX.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-D10tTtI-.js → InputFiles.stories-CAvuu19z.js} +1 -1
- package/storybook-static/assets/{InputImage-RkEq2Brn.js → InputImage-CZQnxU3r.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-B1YNcZ6A.js → InputImage.stories-CC5rWT7x.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CnVEWDPg.js → LayoutPicker-Csk591Gq.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-C_Imtvkh.js → LayoutPicker.stories-HSzDTfbl.js} +1 -1
- package/storybook-static/assets/{Listbox-thRqniZv.js → Listbox-Cs3PEOu7.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-DoZDFQfn.js → Listbox.stories-DKxQyANQ.js} +1 -1
- package/storybook-static/assets/{Modal-Dj0-wAgD.js → Modal-D56cSUlx.js} +1 -1
- package/storybook-static/assets/{Modal.stories-D4X-fefE.js → Modal.stories-DBhh8Oex.js} +1 -1
- package/storybook-static/assets/{MultiSelect-s-wvj6n5.js → MultiSelect-DfN6F5Zf.js} +1 -1
- package/storybook-static/assets/{MultiSelect-BvVNwbrA.js → MultiSelect-hFHpaUjE.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-0yA0f5-c.js → MultiSelect.stories-DdiJtud4.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-Bi0Tp6sW.js → NotificationsHost-VRe_IYdJ.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-B3QdYoD0.js → NotificationsHost.stories-CgomuZqK.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-hks0ZQrT.js → ODataMultiSelect-CaKU5cyu.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-D5N-uBqS.js → ODataMultiSelect.stories-BHHcSft9.js} +1 -1
- package/storybook-static/assets/{ODataSelect-CQ8bUpd5.js → ODataSelect-B5Lo66gN.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BhCR9HGn.js → ODataSelect-BT-YqgRv.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-BBAdmYae.js → ODataSelect.stories-DhfSQYto.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-DNBatq4h.js → ODataTreeMultiSelect-mPwmusDm.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-BtKl_ASP.js → ODataTreeMultiSelect.stories-zU72m_nT.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-DyHbGnJH.js → ODataTreeSelect-HRpdPLA2.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CG4AfZLd.js → ODataTreeSelect.stories-BtSzrEr2.js} +1 -1
- package/storybook-static/assets/PeriodSelect-ZBGWb2Xt.js +51 -0
- package/storybook-static/assets/PeriodSelect.stories-B0nOV7yZ.js +47 -0
- package/storybook-static/assets/{Popover-CMZ3UnB3.js → Popover-CuZWq4ir.js} +1 -1
- package/storybook-static/assets/{Popover.stories-BypMyp_9.js → Popover.stories-UomYS0vU.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-CPodYJSD.js → PresetRangeDateInput-D3rjN3XZ.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-qdPO2Oz-.js → PresetRangeDateInput.stories-wy7GVVdF.js} +1 -1
- package/storybook-static/assets/{RadioButton-Ch1qnDnT.js → RadioButton-DPL0ufmD.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-Bxs1aUdB.js → RadioButton.stories-DLzOE3FX.js} +1 -1
- package/storybook-static/assets/{RadioGroup-Do88BbGS.js → RadioGroup-BRuTj9Ey.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DVDuj2J-.js → RadioGroup-jjU7Wc3l.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-Vt66-Caq.js → RadioGroup.stories-Bbs7gPeI.js} +1 -1
- package/storybook-static/assets/{Select-q_XrayeK.js → Select-CSQfHGXO.js} +1 -1
- package/storybook-static/assets/{Select-COpg8sSQ.js → Select-DrdEDezx.js} +1 -1
- package/storybook-static/assets/{Select.stories-7BhfKWNg.js → Select.stories-B482Sdsv.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-BbWkG0Cj.js → SelectOptionContent-KmIjKWiS.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-4ijwdqn7.js → SerializableSelect-Bt1FrgBB.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BVqRKICZ.js → SerializableSelect-RadwUlKf.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-CNCW7ySW.js → SerializableSelect.stories-B_0no7si.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-ktOvdlgM.js → SingleDateTimeInput-DhyidxjF.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-B1sVehuC.js → SingleDateTimeInput.stories-B61QM3vF.js} +1 -1
- package/storybook-static/assets/{Slider-BwzMyRGn.js → Slider-DIH0-2GV.js} +1 -1
- package/storybook-static/assets/{Slider.stories-BA5faG4z.js → Slider.stories-DECV07rR.js} +1 -1
- package/storybook-static/assets/{SliderInput-BMMXEBJZ.js → SliderInput-B59f8oMg.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-DSEiXNpJ.js → SliderInput.stories-DLnxLEkD.js} +1 -1
- package/storybook-static/assets/{Sortable-BojJGp_6.js → Sortable-B8WbzmlP.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-DPzKTc1m.js → Sortable.stories-DqUlCVvw.js} +1 -1
- package/storybook-static/assets/{Splitter-4L-UBcBS.js → Splitter-C4yDAl_u.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-DS-CWey5.js → Splitter.stories-CcgiUjmr.js} +1 -1
- package/storybook-static/assets/{StateSelect-h7zV-q7S.js → StateSelect-CV-8pxhw.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-DlCmcleb.js → StateSelect.stories-BK9ivlmG.js} +1 -1
- package/storybook-static/assets/{Switch-D7cJWIpv.js → Switch-DE7nHbwh.js} +1 -1
- package/storybook-static/assets/{Switch.stories-BUNj3c7I.js → Switch.stories-CMfzzp_X.js} +1 -1
- package/storybook-static/assets/{Table-Djwn-kmo.js → Table-C6MOZ4T6.js} +1 -1
- package/storybook-static/assets/{Table.stories-6o57WDBN.js → Table.stories-STJ__NxI.js} +1 -1
- package/storybook-static/assets/{Tabs-BEDGo6Dt.js → Tabs-CD1hcYPu.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-D6jsxqio.js → Tabs.stories-BvqssX2z.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-Detqw-BO.js → TagInput.stories-ma0idG2o.js} +1 -1
- package/storybook-static/assets/{Textarea-e1rqwdS0.js → Textarea-Bg8GLfKh.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-CYNlkru_.js → Textarea.stories-DFvplu2w.js} +1 -1
- package/storybook-static/assets/{TimePanel-BzwAMpxA.js → TimePanel-CZ-zOdHh.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-BKtxxbV9.js → TimePanel.stories-DFH-UUBq.js} +1 -1
- package/storybook-static/assets/{Toggle-CFY-QWG0.js → Toggle-CDPkOx6F.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-CN4EtvMk.js → Toggle.stories-Ccw3JBaV.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-XcdSsZbx.js → TreeMultiSelect-D-tS9rvA.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-C6LC0B_t.js → TreeMultiSelect-cz0brPQw.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-BPSHj5Oz.js → TreeMultiSelect.stories-C92b10QI.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-DLRPlLkL.js → TreePickerBase-B39PMNf_.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Cgscw1vO.js → TreeSelect-CyHcbvrN.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BHQFUR9I.js → TreeSelect-tdrV0FoI.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-BxaBjBhQ.js → TreeSelect.stories-C-7CmDg1.js} +1 -1
- package/storybook-static/assets/{TreeTable-CrO1q-bb.js → TreeTable-C_WN8FQo.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-Cbw3al7a.js → TreeTable.stories-DSkbQoFG.js} +1 -1
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-DX5OwBGJ.js → WithTooltip-7X4HQR7L-Ccl2HZl-.js} +1 -1
- package/storybook-static/assets/{base-table-BOoR-jrw.js → base-table-CB4WoiOm.js} +1 -1
- package/storybook-static/assets/{blocks-CWdkXPAf.js → blocks-xFhW5LuA.js} +6 -6
- package/storybook-static/assets/{button-y1pwsTgq.js → button-LL06NtwK.js} +1 -1
- package/storybook-static/assets/{check-box-KzIumHeK.js → check-box-B2R83vBX.js} +1 -1
- package/storybook-static/assets/{chunk-3LY4VQVK-DgGt6GC4.js → chunk-3LY4VQVK-CrLkroEp.js} +1 -1
- package/storybook-static/assets/{chunk-LITCR56V-DaMBGWjn.js → chunk-LITCR56V-CwP5uBgf.js} +1 -1
- package/storybook-static/assets/{contextMenu-TVGY1zYp.js → contextMenu-C412_f6X.js} +1 -1
- package/storybook-static/assets/{error-BPBoLmDN.js → error-CVV9NONe.js} +1 -1
- package/storybook-static/assets/{flex-D9b-dBgG.js → flex-BsIB-Bk2.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-D3mIqn3s.js → floating-ui.react-BUVR6RTk.js} +1 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-B_BDMouG.js +1 -0
- package/storybook-static/assets/{formatters-D0zSsBW1.js → formatters-C2NH5oG9.js} +1 -1
- package/storybook-static/assets/grid-g_iBhVr4.js +1 -0
- package/storybook-static/assets/{hooks-DhYf_owN.js → hooks-B3VxCLy3.js} +1 -1
- package/storybook-static/assets/{iframe-m0QwbmMJ.js → iframe-DflW120b.js} +3 -3
- package/storybook-static/assets/{input-BZBDl16m.js → input-BaHg50eA.js} +1 -1
- package/storybook-static/assets/{lucide-react-CLUPuimx.js → lucide-react-VWiBigaj.js} +1 -1
- package/storybook-static/assets/{mdx-react-shim-CmEvmtFH.js → mdx-react-shim-C4qR84IJ.js} +1 -1
- package/storybook-static/assets/{media-CjQdA2Mv.js → media-D0ZLoHC-.js} +1 -1
- package/storybook-static/assets/{misc-BPMpbj-u.js → misc-C9Lkw27O.js} +1 -1
- package/storybook-static/assets/{notifications-DcYI6zTi.js → notifications-vHR6fNDB.js} +1 -1
- package/storybook-static/assets/{odata-ypqfpogF.js → odata-Fxs_Fy9_.js} +1 -1
- package/storybook-static/assets/odata-service-R4sN6H36.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-Dz9x9V3d.js → odataStoryFixtures-B9hZmWqf.js} +1 -1
- package/storybook-static/assets/{picker-DDeo_PCY.js → picker-Cv_Ql1NL.js} +1 -1
- package/storybook-static/assets/{popover-CbcUGKOy.js → popover-DrE0FDTT.js} +1 -1
- package/storybook-static/assets/{preset-select-BBA7ffCG.js → preset-select-B31k-k9Y.js} +1 -1
- package/storybook-static/assets/{react-18-CEpEuDLi.js → react-18-DHZovjkP.js} +1 -1
- package/storybook-static/assets/{react-Dlj91pfF.js → react-DzyGsyH7.js} +1 -1
- package/storybook-static/assets/{react-dom-6vmLvsDt.js → react-dom-CchAcezr.js} +1 -1
- package/storybook-static/assets/select-DYPSEJF1.js +1 -0
- package/storybook-static/assets/{slider-C92y_ac7.js → slider-CjYK3ZGn.js} +1 -1
- package/storybook-static/assets/{sortable-CVw4tyjV.js → sortable-BdcqlSP1.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-Dq_L5d9h.js → syntaxhighlighter-RTCFPKCB-7I_ZEDBS.js} +1 -1
- package/storybook-static/assets/{text-Cg4cjrW7.js → text-C1j_wRlP.js} +1 -1
- package/storybook-static/assets/{theming-CQoZ5-v_.js → theming-BBiKrPJV.js} +1 -1
- package/storybook-static/assets/ui-BdaKEyAd.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-K7wnoQzR.js → useODataSelectBase-CXv-4xSN.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DFvQ7a3D.js → useODataTreeData-DsCRTvwe.js} +1 -1
- package/storybook-static/assets/{utils-CV_FgKe9.js → utils-G8NqhJFu.js} +1 -1
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/PeriodSelect-BfQge37Z.js +0 -35
- package/storybook-static/assets/PeriodSelect.stories-CPzb6u_X.js +0 -23
- package/storybook-static/assets/formatter-L2YTDE3Q-Dx2lRR9t.js +0 -1
- package/storybook-static/assets/grid-CiXWA2Qm.js +0 -1
- package/storybook-static/assets/odata-service-CwyYgqal.js +0 -1
- package/storybook-static/assets/select-BOHTwP2D.js +0 -1
- package/storybook-static/assets/ui-Dj5Iqdsg.js +0 -1
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { type PeriodSelectOption } from "./lib";
|
|
1
|
+
import { type PeriodSelectOption, type PeriodSelectPresetId } from "./lib";
|
|
2
2
|
import type { UiBaseProps } from "../types";
|
|
3
3
|
import type { DateRangeInput } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
4
4
|
export interface PeriodSelectProps extends UiBaseProps<PeriodSelectOption["id"] | undefined> {
|
|
5
5
|
options?: readonly PeriodSelectOption[];
|
|
6
|
+
/**
|
|
7
|
+
* Разрешенные встроенные варианты периода. Значение нормализуется в канонический
|
|
8
|
+
* порядок, а пустой либо невалидный список безопасно заменяется полным набором.
|
|
9
|
+
* Не применяется, когда передан собственный `options`.
|
|
10
|
+
*/
|
|
11
|
+
presetIds?: readonly PeriodSelectPresetId[];
|
|
6
12
|
dateRange?: DateRangeInput;
|
|
7
13
|
maxDayRangeDays?: number;
|
|
8
14
|
maxWeekRangeWeeks?: number;
|
|
@@ -10,5 +16,5 @@ export interface PeriodSelectProps extends UiBaseProps<PeriodSelectOption["id"]
|
|
|
10
16
|
/**
|
|
11
17
|
* Select периода детализации, который может ограничивать доступные варианты по диапазону дат.
|
|
12
18
|
*/
|
|
13
|
-
export declare function PeriodSelect({ value, onChange, options, dateRange, maxDayRangeDays, maxWeekRangeWeeks, ...props }: PeriodSelectProps): import("react").JSX.Element;
|
|
19
|
+
export declare function PeriodSelect({ value, onChange, options, presetIds, dateRange, maxDayRangeDays, maxWeekRangeWeeks, ...props }: PeriodSelectProps): import("react").JSX.Element;
|
|
14
20
|
//# sourceMappingURL=PeriodSelect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeriodSelect.d.ts","sourceRoot":"","sources":["../../src/period-select/PeriodSelect.tsx"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"PeriodSelect.d.ts","sourceRoot":"","sources":["../../src/period-select/PeriodSelect.tsx"],"names":[],"mappings":"AAIA,OAAO,EAMN,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEjF,MAAM,WAAW,iBAAkB,SAAQ,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3F,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,GAAG,KAAK,EACR,EAAE,iBAAiB,+BAqDnB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { PresetSelect as e } from "../preset-select/index.js";
|
|
2
|
-
import { useEffect as t, useEffectEvent as n, useMemo as r } from "react";
|
|
3
|
-
import { isRecord as
|
|
4
|
-
import { countCalendarDaysInDateRange as
|
|
5
|
-
import { jsx as
|
|
6
|
-
import { getPresetOption as
|
|
2
|
+
import { useEffect as t, useEffectEvent as n, useMemo as r, useRef as i } from "react";
|
|
3
|
+
import { isRecord as a } from "@ryuzaki13/react-foundation-lib/validators";
|
|
4
|
+
import { countCalendarDaysInDateRange as o, normalizeText as s, toPositiveInteger as c } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
5
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
6
|
+
import { getPresetOption as u, normalizePresetIds as d, resolvePresetOptionsByIds as f } from "@ryuzaki13/react-foundation-lib/presets";
|
|
7
7
|
//#region src/period-select/lib/constants.ts
|
|
8
|
-
var
|
|
8
|
+
var p = "period-select", m = "day", h = 31, g = 26, _ = Object.freeze([
|
|
9
9
|
{
|
|
10
10
|
id: "day",
|
|
11
11
|
label: "по дням"
|
|
@@ -17,30 +17,36 @@ var f = "period-select", p = "day", m = 31, h = 26, g = Object.freeze([
|
|
|
17
17
|
{
|
|
18
18
|
id: "month",
|
|
19
19
|
label: "по месяцам"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: "year",
|
|
23
|
+
label: "по годам"
|
|
20
24
|
}
|
|
21
|
-
]),
|
|
25
|
+
]), v = Object.freeze([
|
|
22
26
|
"day",
|
|
23
27
|
"week",
|
|
24
|
-
"month"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
"month",
|
|
29
|
+
"year"
|
|
30
|
+
]), y = new Set(_.map((e) => e.id));
|
|
31
|
+
function b(e) {
|
|
32
|
+
return typeof e == "string" && y.has(e);
|
|
28
33
|
}
|
|
29
|
-
function
|
|
30
|
-
|
|
34
|
+
function x(e, t = v) {
|
|
35
|
+
let n = d(e, b, t), r = n.length > 0 ? n : v, i = new Set(r);
|
|
36
|
+
return v.filter((e) => i.has(e));
|
|
31
37
|
}
|
|
32
|
-
function
|
|
33
|
-
return
|
|
38
|
+
function S(e, t = _) {
|
|
39
|
+
return f(e, t);
|
|
34
40
|
}
|
|
35
|
-
function
|
|
36
|
-
return
|
|
41
|
+
function C(e, t = _) {
|
|
42
|
+
return u(e, t);
|
|
37
43
|
}
|
|
38
|
-
function
|
|
39
|
-
return
|
|
44
|
+
function w(e) {
|
|
45
|
+
return b(e) ? e : "day";
|
|
40
46
|
}
|
|
41
|
-
function
|
|
42
|
-
let n =
|
|
43
|
-
return
|
|
47
|
+
function T({ maxDayRangeDays: e, maxWeekRangeWeeks: t } = {}) {
|
|
48
|
+
let n = c(e), r = c(t);
|
|
49
|
+
return _.map((e) => e.id === "day" && n !== void 0 ? {
|
|
44
50
|
...e,
|
|
45
51
|
maxRangeDays: n
|
|
46
52
|
} : e.id === "week" && r !== void 0 ? {
|
|
@@ -48,20 +54,20 @@ function w({ maxDayRangeDays: e, maxWeekRangeWeeks: t } = {}) {
|
|
|
48
54
|
maxRangeDays: r * 7
|
|
49
55
|
} : { ...e });
|
|
50
56
|
}
|
|
51
|
-
function
|
|
52
|
-
let n =
|
|
57
|
+
function E(e, t) {
|
|
58
|
+
let n = c(e.maxRangeDays);
|
|
53
59
|
if (n === void 0 || t === void 0) return !1;
|
|
54
|
-
let r =
|
|
60
|
+
let r = o(t);
|
|
55
61
|
return r !== null && r > n;
|
|
56
62
|
}
|
|
57
|
-
function
|
|
63
|
+
function D(e, t, n) {
|
|
58
64
|
if (t.length === 0) return;
|
|
59
65
|
let r = e === void 0 ? -1 : t.findIndex((t) => t.id === e), i = r >= 0 ? t[r] : void 0;
|
|
60
|
-
return i && !
|
|
66
|
+
return i && !E(i, n) ? i.id : (r >= 0 ? t.slice(r + 1) : t).find((e) => !E(e, n))?.id ?? t.find((e) => !E(e, n))?.id;
|
|
61
67
|
}
|
|
62
|
-
function
|
|
63
|
-
if (!
|
|
64
|
-
let t =
|
|
68
|
+
function O(e) {
|
|
69
|
+
if (!a(e)) return;
|
|
70
|
+
let t = s(e.start), n = s(e.end);
|
|
65
71
|
return t && n ? {
|
|
66
72
|
start: t,
|
|
67
73
|
end: n
|
|
@@ -69,32 +75,41 @@ function D(e) {
|
|
|
69
75
|
}
|
|
70
76
|
//#endregion
|
|
71
77
|
//#region src/period-select/PeriodSelect.tsx
|
|
72
|
-
function
|
|
73
|
-
let
|
|
74
|
-
maxDayRangeDays:
|
|
75
|
-
maxWeekRangeWeeks:
|
|
76
|
-
}), [
|
|
77
|
-
|
|
78
|
-
u,
|
|
79
|
-
o
|
|
80
|
-
]), p = r(() => E(i, f, s), [
|
|
81
|
-
s,
|
|
78
|
+
function k({ value: a, onChange: o, options: s, presetIds: c, dateRange: u, maxDayRangeDays: d, maxWeekRangeWeeks: f, ...p }) {
|
|
79
|
+
let m = r(() => s ?? S(x(c), T({
|
|
80
|
+
maxDayRangeDays: d,
|
|
81
|
+
maxWeekRangeWeeks: f
|
|
82
|
+
})), [
|
|
83
|
+
d,
|
|
82
84
|
f,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
s,
|
|
86
|
+
c
|
|
87
|
+
]), h = r(() => D(a, m, u), [
|
|
88
|
+
u,
|
|
89
|
+
m,
|
|
90
|
+
a
|
|
91
|
+
]), g = i(null), _ = n(() => {
|
|
92
|
+
if (h === void 0 || h === a) {
|
|
93
|
+
g.current = null;
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
let e = g.current;
|
|
97
|
+
e && e.value === a && e.availableValue === h || (g.current = {
|
|
98
|
+
value: a,
|
|
99
|
+
availableValue: h
|
|
100
|
+
}, o(h));
|
|
86
101
|
});
|
|
87
102
|
return t(() => {
|
|
88
|
-
|
|
89
|
-
}, [
|
|
90
|
-
...
|
|
91
|
-
options:
|
|
92
|
-
value:
|
|
93
|
-
onChange:
|
|
94
|
-
getOptionDisabled: (e) =>
|
|
103
|
+
_();
|
|
104
|
+
}, [h, a]), /* @__PURE__ */ l(e, {
|
|
105
|
+
...p,
|
|
106
|
+
options: m,
|
|
107
|
+
value: h,
|
|
108
|
+
onChange: o,
|
|
109
|
+
getOptionDisabled: (e) => E(e, u)
|
|
95
110
|
});
|
|
96
111
|
}
|
|
97
112
|
//#endregion
|
|
98
|
-
export {
|
|
113
|
+
export { h as DEFAULT_PERIOD_SELECT_MAX_DAY_RANGE_DAYS, g as DEFAULT_PERIOD_SELECT_MAX_WEEK_RANGE_WEEKS, m as DEFAULT_PERIOD_SELECT_PRESET_ID, v as DEFAULT_PERIOD_SELECT_PRESET_IDS, p as PERIOD_SELECT_COMPONENT_ID, _ as PERIOD_SELECT_OPTIONS, k as PeriodSelect, T as createPeriodSelectOptions, C as getPeriodSelectOption, E as isPeriodSelectOptionDisabled, b as isPeriodSelectPresetId, O as normalizePeriodSelectDateRangeConnectors, x as normalizePeriodSelectPresetIds, D as resolvePeriodSelectAvailableValue, w as resolvePeriodSelectDefaultValue, S as resolvePeriodSelectOptionsByIds };
|
|
99
114
|
|
|
100
115
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/period-select/lib/constants.ts","../../src/period-select/lib/periodSelect.ts","../../src/period-select/PeriodSelect.tsx"],"sourcesContent":["export const PERIOD_SELECT_COMPONENT_ID = \"period-select\";\n","import {\n\tcountCalendarDaysInDateRange,\n\ttype DateRangeInput,\n\tnormalizeText,\n\ttoPositiveInteger\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { getPresetOption, normalizePresetIds, type PresetOption, resolvePresetOptionsByIds } from \"@ryuzaki13/react-foundation-lib/presets\";\nimport { isRecord } from \"@ryuzaki13/react-foundation-lib/validators\";\n\nexport type PeriodSelectPresetId = \"day\" | \"week\" | \"month\";\nexport type PeriodSelectId = PeriodSelectPresetId | (string & {});\n\nexport interface PeriodSelectOption extends PresetOption<PeriodSelectId> {\n\tmaxRangeDays?: number;\n}\n\ntype BuiltInPeriodSelectOption = PeriodSelectOption & {\n\tid: PeriodSelectPresetId;\n};\n\nexport type PeriodSelectDateRangeConnectors = Readonly<{\n\tstart: string;\n\tend: string;\n}>;\n\nexport type PeriodSelectThresholds = {\n\tmaxDayRangeDays?: number;\n\tmaxWeekRangeWeeks?: number;\n};\n\nexport const DEFAULT_PERIOD_SELECT_PRESET_ID = \"day\" satisfies PeriodSelectPresetId;\nexport const DEFAULT_PERIOD_SELECT_MAX_DAY_RANGE_DAYS = 31;\nexport const DEFAULT_PERIOD_SELECT_MAX_WEEK_RANGE_WEEKS = 26;\n\nexport const PERIOD_SELECT_OPTIONS: readonly BuiltInPeriodSelectOption[] = Object.freeze([\n\t{\n\t\tid: \"day\",\n\t\tlabel: \"по дням\"\n\t},\n\t{\n\t\tid: \"week\",\n\t\tlabel: \"по неделям\"\n\t},\n\t{\n\t\tid: \"month\",\n\t\tlabel: \"по месяцам\"\n\t}\n]);\n\nexport const DEFAULT_PERIOD_SELECT_PRESET_IDS = Object.freeze([\"day\", \"week\", \"month\"] as const satisfies readonly PeriodSelectPresetId[]);\n\nconst PERIOD_SELECT_PRESET_ID_SET: ReadonlySet<string> = new Set(PERIOD_SELECT_OPTIONS.map((option) => option.id));\n\nexport function isPeriodSelectPresetId(value: unknown): value is PeriodSelectPresetId {\n\treturn typeof value === \"string\" && PERIOD_SELECT_PRESET_ID_SET.has(value);\n}\n\nexport function normalizePeriodSelectPresetIds(\n\tvalue: unknown,\n\tfallbackIds: readonly PeriodSelectPresetId[] = DEFAULT_PERIOD_SELECT_PRESET_IDS\n): PeriodSelectPresetId[] {\n\treturn normalizePresetIds(value, isPeriodSelectPresetId, fallbackIds);\n}\n\nexport function resolvePeriodSelectOptionsByIds(\n\tpresetIds: readonly PeriodSelectOption[\"id\"][],\n\toptions: readonly PeriodSelectOption[] = PERIOD_SELECT_OPTIONS\n): PeriodSelectOption[] {\n\treturn resolvePresetOptionsByIds(presetIds, options);\n}\n\nexport function getPeriodSelectOption(\n\tid: PeriodSelectOption[\"id\"] | undefined,\n\toptions: readonly PeriodSelectOption[] = PERIOD_SELECT_OPTIONS\n): PeriodSelectOption | null {\n\treturn getPresetOption(id, options);\n}\n\nexport function resolvePeriodSelectDefaultValue(value: unknown): PeriodSelectPresetId {\n\treturn isPeriodSelectPresetId(value) ? value : DEFAULT_PERIOD_SELECT_PRESET_ID;\n}\n\nexport function createPeriodSelectOptions({ maxDayRangeDays, maxWeekRangeWeeks }: PeriodSelectThresholds = {}): PeriodSelectOption[] {\n\tconst dayLimit = toPositiveInteger(maxDayRangeDays);\n\tconst weekLimit = toPositiveInteger(maxWeekRangeWeeks);\n\n\treturn PERIOD_SELECT_OPTIONS.map((option) => {\n\t\tif (option.id === \"day\" && dayLimit !== undefined) {\n\t\t\treturn {\n\t\t\t\t...option,\n\t\t\t\tmaxRangeDays: dayLimit\n\t\t\t};\n\t\t}\n\n\t\tif (option.id === \"week\" && weekLimit !== undefined) {\n\t\t\treturn {\n\t\t\t\t...option,\n\t\t\t\tmaxRangeDays: weekLimit * 7\n\t\t\t};\n\t\t}\n\n\t\treturn { ...option };\n\t});\n}\n\nexport function isPeriodSelectOptionDisabled(option: PeriodSelectOption, dateRange: DateRangeInput | undefined): boolean {\n\tconst maxRangeDays = toPositiveInteger(option.maxRangeDays);\n\tif (maxRangeDays === undefined || dateRange === undefined) {\n\t\treturn false;\n\t}\n\n\tconst rangeDays = countCalendarDaysInDateRange(dateRange);\n\treturn rangeDays !== null && rangeDays > maxRangeDays;\n}\n\nexport function resolvePeriodSelectAvailableValue(\n\tvalue: PeriodSelectOption[\"id\"] | undefined,\n\toptions: readonly PeriodSelectOption[],\n\tdateRange: DateRangeInput | undefined\n): PeriodSelectOption[\"id\"] | undefined {\n\tif (options.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tconst selectedIndex = value === undefined ? -1 : options.findIndex((option) => option.id === value);\n\tconst selectedOption = selectedIndex >= 0 ? options[selectedIndex] : undefined;\n\n\tif (selectedOption && !isPeriodSelectOptionDisabled(selectedOption, dateRange)) {\n\t\treturn selectedOption.id;\n\t}\n\n\tconst nextOptions = selectedIndex >= 0 ? options.slice(selectedIndex + 1) : options;\n\tconst nextAvailableOption = nextOptions.find((option) => !isPeriodSelectOptionDisabled(option, dateRange));\n\n\treturn nextAvailableOption?.id ?? options.find((option) => !isPeriodSelectOptionDisabled(option, dateRange))?.id;\n}\n\nexport function normalizePeriodSelectDateRangeConnectors(value: unknown): PeriodSelectDateRangeConnectors | undefined {\n\tif (!isRecord(value)) {\n\t\treturn undefined;\n\t}\n\n\tconst startConnector = normalizeText(value.start);\n\tconst endConnector = normalizeText(value.end);\n\n\treturn startConnector && endConnector ? { start: startConnector, end: endConnector } : undefined;\n}\n","import { useEffect, useEffectEvent, useMemo } from \"react\";\n\nimport { PresetSelect } from \"../preset-select\";\n\nimport { createPeriodSelectOptions, isPeriodSelectOptionDisabled, resolvePeriodSelectAvailableValue, type PeriodSelectOption } from \"./lib\";\n\nimport type { UiBaseProps } from \"../types\";\nimport type { DateRangeInput } from \"@ryuzaki13/react-foundation-lib/formatters\";\n\nexport interface PeriodSelectProps extends UiBaseProps<PeriodSelectOption[\"id\"] | undefined> {\n\toptions?: readonly PeriodSelectOption[];\n\tdateRange?: DateRangeInput;\n\tmaxDayRangeDays?: number;\n\tmaxWeekRangeWeeks?: number;\n}\n\n/**\n * Select периода детализации, который может ограничивать доступные варианты по диапазону дат.\n */\nexport function PeriodSelect({ value, onChange, options, dateRange, maxDayRangeDays, maxWeekRangeWeeks, ...props }: PeriodSelectProps) {\n\tconst resolvedOptions = useMemo(\n\t\t() => options ?? createPeriodSelectOptions({ maxDayRangeDays, maxWeekRangeWeeks }),\n\t\t[maxDayRangeDays, maxWeekRangeWeeks, options]\n\t);\n\tconst availableValue = useMemo(\n\t\t() => resolvePeriodSelectAvailableValue(value, resolvedOptions, dateRange),\n\t\t[dateRange, resolvedOptions, value]\n\t);\n\n\tconst emitAvailableValue = useEffectEvent(() => {\n\t\tif (availableValue === undefined || availableValue === value) {\n\t\t\treturn;\n\t\t}\n\n\t\tonChange(availableValue);\n\t});\n\n\tuseEffect(() => {\n\t\temitAvailableValue();\n\t}, [availableValue, value]);\n\n\treturn (\n\t\t<PresetSelect\n\t\t\t{...props}\n\t\t\toptions={resolvedOptions}\n\t\t\tvalue={availableValue}\n\t\t\tonChange={onChange}\n\t\t\tgetOptionDisabled={(option) => isPeriodSelectOptionDisabled(option, dateRange)}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAAA,IAAa,IAA6B,iBC8B7B,IAAkC,OAClC,IAA2C,IAC3C,IAA6C,IAE7C,IAA8D,OAAO,OAAO;CACxF;EACC,IAAI;EACJ,OAAO;CACR;CACA;EACC,IAAI;EACJ,OAAO;CACR;CACA;EACC,IAAI;EACJ,OAAO;CACR;AACD,CAAC,GAEY,IAAmC,OAAO,OAAO;CAAC;CAAO;CAAQ;AAAO,CAAoD,GAEnI,IAAmD,IAAI,IAAI,EAAsB,KAAK,MAAW,EAAO,EAAE,CAAC;AAEjH,SAAgB,EAAuB,GAA+C;CACrF,OAAO,OAAO,KAAU,YAAY,EAA4B,IAAI,CAAK;AAC1E;AAEA,SAAgB,EACf,GACA,IAA+C,GACtB;CACzB,OAAO,EAAmB,GAAO,GAAwB,CAAW;AACrE;AAEA,SAAgB,EACf,GACA,IAAyC,GAClB;CACvB,OAAO,EAA0B,GAAW,CAAO;AACpD;AAEA,SAAgB,EACf,GACA,IAAyC,GACb;CAC5B,OAAO,EAAgB,GAAI,CAAO;AACnC;AAEA,SAAgB,EAAgC,GAAsC;CACrF,OAAO,EAAuB,CAAK,IAAI,IAAA;AACxC;AAEA,SAAgB,EAA0B,EAAE,oBAAiB,yBAA8C,CAAC,GAAyB;CACpI,IAAM,IAAW,EAAkB,CAAe,GAC5C,IAAY,EAAkB,CAAiB;CAErD,OAAO,EAAsB,KAAK,MAC7B,EAAO,OAAO,SAAS,MAAa,KAAA,IAChC;EACN,GAAG;EACH,cAAc;CACf,IAGG,EAAO,OAAO,UAAU,MAAc,KAAA,IAClC;EACN,GAAG;EACH,cAAc,IAAY;CAC3B,IAGM,EAAE,GAAG,EAAO,CACnB;AACF;AAEA,SAAgB,EAA6B,GAA4B,GAAgD;CACxH,IAAM,IAAe,EAAkB,EAAO,YAAY;CAC1D,IAAI,MAAiB,KAAA,KAAa,MAAc,KAAA,GAC/C,OAAO;CAGR,IAAM,IAAY,EAA6B,CAAS;CACxD,OAAO,MAAc,QAAQ,IAAY;AAC1C;AAEA,SAAgB,EACf,GACA,GACA,GACuC;CACvC,IAAI,EAAQ,WAAW,GACtB;CAGD,IAAM,IAAgB,MAAU,KAAA,IAAY,KAAK,EAAQ,WAAW,MAAW,EAAO,OAAO,CAAK,GAC5F,IAAiB,KAAiB,IAAI,EAAQ,KAAiB,KAAA;CASrE,OAPI,KAAkB,CAAC,EAA6B,GAAgB,CAAS,IACrE,EAAe,MAGH,KAAiB,IAAI,EAAQ,MAAM,IAAgB,CAAC,IAAI,EAAA,CACpC,MAAM,MAAW,CAAC,EAA6B,GAAQ,CAAS,CAEjG,CAAA,EAAqB,MAAM,EAAQ,MAAM,MAAW,CAAC,EAA6B,GAAQ,CAAS,CAAC,CAAC,EAAE;AAC/G;AAEA,SAAgB,EAAyC,GAA6D;CACrH,IAAI,CAAC,EAAS,CAAK,GAClB;CAGD,IAAM,IAAiB,EAAc,EAAM,KAAK,GAC1C,IAAe,EAAc,EAAM,GAAG;CAE5C,OAAO,KAAkB,IAAe;EAAE,OAAO;EAAgB,KAAK;CAAa,IAAI,KAAA;AACxF;;;AC/HA,SAAgB,EAAa,EAAE,UAAO,aAAU,YAAS,cAAW,oBAAiB,sBAAmB,GAAG,KAA4B;CACtI,IAAM,IAAkB,QACjB,KAAW,EAA0B;EAAE;EAAiB;CAAkB,CAAC,GACjF;EAAC;EAAiB;EAAmB;CAAO,CAC7C,GACM,IAAiB,QAChB,EAAkC,GAAO,GAAiB,CAAS,GACzE;EAAC;EAAW;EAAiB;CAAK,CACnC,GAEM,IAAqB,QAAqB;EAC3C,MAAmB,KAAA,KAAa,MAAmB,KAIvD,EAAS,CAAc;CACxB,CAAC;CAMD,OAJA,QAAgB;EACf,EAAmB;CACpB,GAAG,CAAC,GAAgB,CAAK,CAAC,GAGzB,kBAAC,GAAD;EACC,GAAI;EACJ,SAAS;EACT,OAAO;EACG;EACV,oBAAoB,MAAW,EAA6B,GAAQ,CAAS;CAC7E,CAAA;AAEH"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/period-select/lib/constants.ts","../../src/period-select/lib/periodSelect.ts","../../src/period-select/PeriodSelect.tsx"],"sourcesContent":["export const PERIOD_SELECT_COMPONENT_ID = \"period-select\";\n","import {\n\tcountCalendarDaysInDateRange,\n\ttype DateRangeInput,\n\tnormalizeText,\n\ttoPositiveInteger\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { getPresetOption, normalizePresetIds, type PresetOption, resolvePresetOptionsByIds } from \"@ryuzaki13/react-foundation-lib/presets\";\nimport { isRecord } from \"@ryuzaki13/react-foundation-lib/validators\";\n\n/**\n * Идентификаторы встроенных уровней детализации периода.\n */\nexport type PeriodSelectPresetId = \"day\" | \"week\" | \"month\" | \"year\";\nexport type PeriodSelectId = PeriodSelectPresetId | (string & {});\n\nexport interface PeriodSelectOption extends PresetOption<PeriodSelectId> {\n\tmaxRangeDays?: number;\n}\n\ntype BuiltInPeriodSelectOption = PeriodSelectOption & {\n\tid: PeriodSelectPresetId;\n};\n\nexport type PeriodSelectDateRangeConnectors = Readonly<{\n\tstart: string;\n\tend: string;\n}>;\n\nexport type PeriodSelectThresholds = {\n\tmaxDayRangeDays?: number;\n\tmaxWeekRangeWeeks?: number;\n};\n\nexport const DEFAULT_PERIOD_SELECT_PRESET_ID = \"day\" satisfies PeriodSelectPresetId;\nexport const DEFAULT_PERIOD_SELECT_MAX_DAY_RANGE_DAYS = 31;\nexport const DEFAULT_PERIOD_SELECT_MAX_WEEK_RANGE_WEEKS = 26;\n\n/**\n * Канонический каталог встроенных вариантов. Порядок элементов задает порядок\n * отображения и автоматического перехода к следующему доступному уровню.\n */\nexport const PERIOD_SELECT_OPTIONS: readonly BuiltInPeriodSelectOption[] = Object.freeze([\n\t{\n\t\tid: \"day\",\n\t\tlabel: \"по дням\"\n\t},\n\t{\n\t\tid: \"week\",\n\t\tlabel: \"по неделям\"\n\t},\n\t{\n\t\tid: \"month\",\n\t\tlabel: \"по месяцам\"\n\t},\n\t{\n\t\tid: \"year\",\n\t\tlabel: \"по годам\"\n\t}\n]);\n\n/**\n * Полный набор встроенных вариантов, доступный при отсутствии явного allow-list.\n */\nexport const DEFAULT_PERIOD_SELECT_PRESET_IDS = Object.freeze([\n\t\"day\",\n\t\"week\",\n\t\"month\",\n\t\"year\"\n] as const satisfies readonly PeriodSelectPresetId[]);\n\nconst PERIOD_SELECT_PRESET_ID_SET: ReadonlySet<string> = new Set(PERIOD_SELECT_OPTIONS.map((option) => option.id));\n\nexport function isPeriodSelectPresetId(value: unknown): value is PeriodSelectPresetId {\n\treturn typeof value === \"string\" && PERIOD_SELECT_PRESET_ID_SET.has(value);\n}\n\nexport function normalizePeriodSelectPresetIds(\n\tvalue: unknown,\n\tfallbackIds: readonly PeriodSelectPresetId[] = DEFAULT_PERIOD_SELECT_PRESET_IDS\n): PeriodSelectPresetId[] {\n\tconst normalizedIds = normalizePresetIds(value, isPeriodSelectPresetId, fallbackIds);\n\tconst resolvedIds = normalizedIds.length > 0 ? normalizedIds : DEFAULT_PERIOD_SELECT_PRESET_IDS;\n\tconst resolvedIdSet = new Set<PeriodSelectPresetId>(resolvedIds);\n\n\t// Порядок runtime-опций является частью контракта: конфигурация только ограничивает\n\t// каталог и не может переставить уровни либо оставить контрол без вариантов.\n\treturn DEFAULT_PERIOD_SELECT_PRESET_IDS.filter((presetId) => resolvedIdSet.has(presetId));\n}\n\nexport function resolvePeriodSelectOptionsByIds(\n\tpresetIds: readonly PeriodSelectOption[\"id\"][],\n\toptions: readonly PeriodSelectOption[] = PERIOD_SELECT_OPTIONS\n): PeriodSelectOption[] {\n\treturn resolvePresetOptionsByIds(presetIds, options);\n}\n\nexport function getPeriodSelectOption(\n\tid: PeriodSelectOption[\"id\"] | undefined,\n\toptions: readonly PeriodSelectOption[] = PERIOD_SELECT_OPTIONS\n): PeriodSelectOption | null {\n\treturn getPresetOption(id, options);\n}\n\nexport function resolvePeriodSelectDefaultValue(value: unknown): PeriodSelectPresetId {\n\treturn isPeriodSelectPresetId(value) ? value : DEFAULT_PERIOD_SELECT_PRESET_ID;\n}\n\nexport function createPeriodSelectOptions({ maxDayRangeDays, maxWeekRangeWeeks }: PeriodSelectThresholds = {}): PeriodSelectOption[] {\n\tconst dayLimit = toPositiveInteger(maxDayRangeDays);\n\tconst weekLimit = toPositiveInteger(maxWeekRangeWeeks);\n\n\treturn PERIOD_SELECT_OPTIONS.map((option) => {\n\t\tif (option.id === \"day\" && dayLimit !== undefined) {\n\t\t\treturn {\n\t\t\t\t...option,\n\t\t\t\tmaxRangeDays: dayLimit\n\t\t\t};\n\t\t}\n\n\t\tif (option.id === \"week\" && weekLimit !== undefined) {\n\t\t\treturn {\n\t\t\t\t...option,\n\t\t\t\tmaxRangeDays: weekLimit * 7\n\t\t\t};\n\t\t}\n\n\t\treturn { ...option };\n\t});\n}\n\nexport function isPeriodSelectOptionDisabled(option: PeriodSelectOption, dateRange: DateRangeInput | undefined): boolean {\n\tconst maxRangeDays = toPositiveInteger(option.maxRangeDays);\n\tif (maxRangeDays === undefined || dateRange === undefined) {\n\t\treturn false;\n\t}\n\n\tconst rangeDays = countCalendarDaysInDateRange(dateRange);\n\treturn rangeDays !== null && rangeDays > maxRangeDays;\n}\n\nexport function resolvePeriodSelectAvailableValue(\n\tvalue: PeriodSelectOption[\"id\"] | undefined,\n\toptions: readonly PeriodSelectOption[],\n\tdateRange: DateRangeInput | undefined\n): PeriodSelectOption[\"id\"] | undefined {\n\tif (options.length === 0) {\n\t\treturn undefined;\n\t}\n\n\tconst selectedIndex = value === undefined ? -1 : options.findIndex((option) => option.id === value);\n\tconst selectedOption = selectedIndex >= 0 ? options[selectedIndex] : undefined;\n\n\tif (selectedOption && !isPeriodSelectOptionDisabled(selectedOption, dateRange)) {\n\t\treturn selectedOption.id;\n\t}\n\n\tconst nextOptions = selectedIndex >= 0 ? options.slice(selectedIndex + 1) : options;\n\tconst nextAvailableOption = nextOptions.find((option) => !isPeriodSelectOptionDisabled(option, dateRange));\n\n\treturn nextAvailableOption?.id ?? options.find((option) => !isPeriodSelectOptionDisabled(option, dateRange))?.id;\n}\n\nexport function normalizePeriodSelectDateRangeConnectors(value: unknown): PeriodSelectDateRangeConnectors | undefined {\n\tif (!isRecord(value)) {\n\t\treturn undefined;\n\t}\n\n\tconst startConnector = normalizeText(value.start);\n\tconst endConnector = normalizeText(value.end);\n\n\treturn startConnector && endConnector ? { start: startConnector, end: endConnector } : undefined;\n}\n","import { useEffect, useEffectEvent, useMemo, useRef } from \"react\";\n\nimport { PresetSelect } from \"../preset-select\";\n\nimport {\n\tcreatePeriodSelectOptions,\n\tisPeriodSelectOptionDisabled,\n\tnormalizePeriodSelectPresetIds,\n\tresolvePeriodSelectAvailableValue,\n\tresolvePeriodSelectOptionsByIds,\n\ttype PeriodSelectOption,\n\ttype PeriodSelectPresetId\n} from \"./lib\";\n\nimport type { UiBaseProps } from \"../types\";\nimport type { DateRangeInput } from \"@ryuzaki13/react-foundation-lib/formatters\";\n\nexport interface PeriodSelectProps extends UiBaseProps<PeriodSelectOption[\"id\"] | undefined> {\n\toptions?: readonly PeriodSelectOption[];\n\t/**\n\t * Разрешенные встроенные варианты периода. Значение нормализуется в канонический\n\t * порядок, а пустой либо невалидный список безопасно заменяется полным набором.\n\t * Не применяется, когда передан собственный `options`.\n\t */\n\tpresetIds?: readonly PeriodSelectPresetId[];\n\tdateRange?: DateRangeInput;\n\tmaxDayRangeDays?: number;\n\tmaxWeekRangeWeeks?: number;\n}\n\n/**\n * Select периода детализации, который может ограничивать доступные варианты по диапазону дат.\n */\nexport function PeriodSelect({\n\tvalue,\n\tonChange,\n\toptions,\n\tpresetIds,\n\tdateRange,\n\tmaxDayRangeDays,\n\tmaxWeekRangeWeeks,\n\t...props\n}: PeriodSelectProps) {\n\tconst resolvedOptions = useMemo(\n\t\t() =>\n\t\t\toptions ??\n\t\t\tresolvePeriodSelectOptionsByIds(\n\t\t\t\tnormalizePeriodSelectPresetIds(presetIds),\n\t\t\t\tcreatePeriodSelectOptions({ maxDayRangeDays, maxWeekRangeWeeks })\n\t\t\t),\n\t\t[maxDayRangeDays, maxWeekRangeWeeks, options, presetIds]\n\t);\n\tconst availableValue = useMemo(\n\t\t() => resolvePeriodSelectAvailableValue(value, resolvedOptions, dateRange),\n\t\t[dateRange, resolvedOptions, value]\n\t);\n\tconst lastEmittedTransitionRef = useRef<{\n\t\tvalue: PeriodSelectOption[\"id\"] | undefined;\n\t\tavailableValue: PeriodSelectOption[\"id\"] | undefined;\n\t} | null>(null);\n\n\tconst emitAvailableValue = useEffectEvent(() => {\n\t\tif (availableValue === undefined || availableValue === value) {\n\t\t\t// После принятия controlled-значения либо временной блокировки всех опций\n\t\t\t// такой же переход должен снова стать допустимым при следующем изменении условий.\n\t\t\tlastEmittedTransitionRef.current = null;\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastTransition = lastEmittedTransitionRef.current;\n\t\tif (lastTransition && lastTransition.value === value && lastTransition.availableValue === availableValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tlastEmittedTransitionRef.current = { value, availableValue };\n\n\t\t// Сигнатура перехода защищает reconciliation от повтора в React StrictMode.\n\t\t// При временной блокировке всех опций внешний controlled-id сохраняется,\n\t\t// поэтому выбор восстановится без потери runtime-параметра после смены диапазона.\n\t\tonChange(availableValue);\n\t});\n\n\tuseEffect(() => {\n\t\temitAvailableValue();\n\t}, [availableValue, value]);\n\n\treturn (\n\t\t<PresetSelect\n\t\t\t{...props}\n\t\t\toptions={resolvedOptions}\n\t\t\tvalue={availableValue}\n\t\t\tonChange={onChange}\n\t\t\tgetOptionDisabled={(option) => isPeriodSelectOptionDisabled(option, dateRange)}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAAA,IAAa,IAA6B,iBCiC7B,IAAkC,OAClC,IAA2C,IAC3C,IAA6C,IAM7C,IAA8D,OAAO,OAAO;CACxF;EACC,IAAI;EACJ,OAAO;CACR;CACA;EACC,IAAI;EACJ,OAAO;CACR;CACA;EACC,IAAI;EACJ,OAAO;CACR;CACA;EACC,IAAI;EACJ,OAAO;CACR;AACD,CAAC,GAKY,IAAmC,OAAO,OAAO;CAC7D;CACA;CACA;CACA;AACD,CAAoD,GAE9C,IAAmD,IAAI,IAAI,EAAsB,KAAK,MAAW,EAAO,EAAE,CAAC;AAEjH,SAAgB,EAAuB,GAA+C;CACrF,OAAO,OAAO,KAAU,YAAY,EAA4B,IAAI,CAAK;AAC1E;AAEA,SAAgB,EACf,GACA,IAA+C,GACtB;CACzB,IAAM,IAAgB,EAAmB,GAAO,GAAwB,CAAW,GAC7E,IAAc,EAAc,SAAS,IAAI,IAAgB,GACzD,IAAgB,IAAI,IAA0B,CAAW;CAI/D,OAAO,EAAiC,QAAQ,MAAa,EAAc,IAAI,CAAQ,CAAC;AACzF;AAEA,SAAgB,EACf,GACA,IAAyC,GAClB;CACvB,OAAO,EAA0B,GAAW,CAAO;AACpD;AAEA,SAAgB,EACf,GACA,IAAyC,GACb;CAC5B,OAAO,EAAgB,GAAI,CAAO;AACnC;AAEA,SAAgB,EAAgC,GAAsC;CACrF,OAAO,EAAuB,CAAK,IAAI,IAAA;AACxC;AAEA,SAAgB,EAA0B,EAAE,oBAAiB,yBAA8C,CAAC,GAAyB;CACpI,IAAM,IAAW,EAAkB,CAAe,GAC5C,IAAY,EAAkB,CAAiB;CAErD,OAAO,EAAsB,KAAK,MAC7B,EAAO,OAAO,SAAS,MAAa,KAAA,IAChC;EACN,GAAG;EACH,cAAc;CACf,IAGG,EAAO,OAAO,UAAU,MAAc,KAAA,IAClC;EACN,GAAG;EACH,cAAc,IAAY;CAC3B,IAGM,EAAE,GAAG,EAAO,CACnB;AACF;AAEA,SAAgB,EAA6B,GAA4B,GAAgD;CACxH,IAAM,IAAe,EAAkB,EAAO,YAAY;CAC1D,IAAI,MAAiB,KAAA,KAAa,MAAc,KAAA,GAC/C,OAAO;CAGR,IAAM,IAAY,EAA6B,CAAS;CACxD,OAAO,MAAc,QAAQ,IAAY;AAC1C;AAEA,SAAgB,EACf,GACA,GACA,GACuC;CACvC,IAAI,EAAQ,WAAW,GACtB;CAGD,IAAM,IAAgB,MAAU,KAAA,IAAY,KAAK,EAAQ,WAAW,MAAW,EAAO,OAAO,CAAK,GAC5F,IAAiB,KAAiB,IAAI,EAAQ,KAAiB,KAAA;CASrE,OAPI,KAAkB,CAAC,EAA6B,GAAgB,CAAS,IACrE,EAAe,MAGH,KAAiB,IAAI,EAAQ,MAAM,IAAgB,CAAC,IAAI,EAAA,CACpC,MAAM,MAAW,CAAC,EAA6B,GAAQ,CAAS,CAEjG,CAAA,EAAqB,MAAM,EAAQ,MAAM,MAAW,CAAC,EAA6B,GAAQ,CAAS,CAAC,CAAC,EAAE;AAC/G;AAEA,SAAgB,EAAyC,GAA6D;CACrH,IAAI,CAAC,EAAS,CAAK,GAClB;CAGD,IAAM,IAAiB,EAAc,EAAM,KAAK,GAC1C,IAAe,EAAc,EAAM,GAAG;CAE5C,OAAO,KAAkB,IAAe;EAAE,OAAO;EAAgB,KAAK;CAAa,IAAI,KAAA;AACxF;;;AC1IA,SAAgB,EAAa,EAC5B,UACA,aACA,YACA,cACA,cACA,oBACA,sBACA,GAAG,KACkB;CACrB,IAAM,IAAkB,QAEtB,KACA,EACC,EAA+B,CAAS,GACxC,EAA0B;EAAE;EAAiB;CAAkB,CAAC,CACjE,GACD;EAAC;EAAiB;EAAmB;EAAS;CAAS,CACxD,GACM,IAAiB,QAChB,EAAkC,GAAO,GAAiB,CAAS,GACzE;EAAC;EAAW;EAAiB;CAAK,CACnC,GACM,IAA2B,EAGvB,IAAI,GAER,IAAqB,QAAqB;EAC/C,IAAI,MAAmB,KAAA,KAAa,MAAmB,GAAO;GAG7D,EAAyB,UAAU;GACnC;EACD;EAEA,IAAM,IAAiB,EAAyB;EAC5C,KAAkB,EAAe,UAAU,KAAS,EAAe,mBAAmB,MAI1F,EAAyB,UAAU;GAAE;GAAO;EAAe,GAK3D,EAAS,CAAc;CACxB,CAAC;CAMD,OAJA,QAAgB;EACf,EAAmB;CACpB,GAAG,CAAC,GAAgB,CAAK,CAAC,GAGzB,kBAAC,GAAD;EACC,GAAI;EACJ,SAAS;EACT,OAAO;EACG;EACV,oBAAoB,MAAW,EAA6B,GAAQ,CAAS;CAC7E,CAAA;AAEH"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { type DateRangeInput } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
2
2
|
import { type PresetOption } from "@ryuzaki13/react-foundation-lib/presets";
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Идентификаторы встроенных уровней детализации периода.
|
|
5
|
+
*/
|
|
6
|
+
export type PeriodSelectPresetId = "day" | "week" | "month" | "year";
|
|
4
7
|
export type PeriodSelectId = PeriodSelectPresetId | (string & {});
|
|
5
8
|
export interface PeriodSelectOption extends PresetOption<PeriodSelectId> {
|
|
6
9
|
maxRangeDays?: number;
|
|
@@ -19,8 +22,15 @@ export type PeriodSelectThresholds = {
|
|
|
19
22
|
export declare const DEFAULT_PERIOD_SELECT_PRESET_ID = "day";
|
|
20
23
|
export declare const DEFAULT_PERIOD_SELECT_MAX_DAY_RANGE_DAYS = 31;
|
|
21
24
|
export declare const DEFAULT_PERIOD_SELECT_MAX_WEEK_RANGE_WEEKS = 26;
|
|
25
|
+
/**
|
|
26
|
+
* Канонический каталог встроенных вариантов. Порядок элементов задает порядок
|
|
27
|
+
* отображения и автоматического перехода к следующему доступному уровню.
|
|
28
|
+
*/
|
|
22
29
|
export declare const PERIOD_SELECT_OPTIONS: readonly BuiltInPeriodSelectOption[];
|
|
23
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Полный набор встроенных вариантов, доступный при отсутствии явного allow-list.
|
|
32
|
+
*/
|
|
33
|
+
export declare const DEFAULT_PERIOD_SELECT_PRESET_IDS: readonly ["day", "week", "month", "year"];
|
|
24
34
|
export declare function isPeriodSelectPresetId(value: unknown): value is PeriodSelectPresetId;
|
|
25
35
|
export declare function normalizePeriodSelectPresetIds(value: unknown, fallbackIds?: readonly PeriodSelectPresetId[]): PeriodSelectPresetId[];
|
|
26
36
|
export declare function resolvePeriodSelectOptionsByIds(presetIds: readonly PeriodSelectOption["id"][], options?: readonly PeriodSelectOption[]): PeriodSelectOption[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"periodSelect.d.ts","sourceRoot":"","sources":["../../../src/period-select/lib/periodSelect.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,cAAc,EAGnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAuC,KAAK,YAAY,EAA6B,MAAM,yCAAyC,CAAC;AAG5I,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"periodSelect.d.ts","sourceRoot":"","sources":["../../../src/period-select/lib/periodSelect.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,cAAc,EAGnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAuC,KAAK,YAAY,EAA6B,MAAM,yCAAyC,CAAC;AAG5I;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElE,MAAM,WAAW,kBAAmB,SAAQ,YAAY,CAAC,cAAc,CAAC;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,yBAAyB,GAAG,kBAAkB,GAAG;IACrD,EAAE,EAAE,oBAAoB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,QAAQ,CAAC;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACZ,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,+BAA+B,QAAuC,CAAC;AACpF,eAAO,MAAM,wCAAwC,KAAK,CAAC;AAC3D,eAAO,MAAM,0CAA0C,KAAK,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,yBAAyB,EAiBpE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gCAAgC,2CAKQ,CAAC;AAItD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAEpF;AAED,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,OAAO,EACd,WAAW,GAAE,SAAS,oBAAoB,EAAqC,GAC7E,oBAAoB,EAAE,CAQxB;AAED,wBAAgB,+BAA+B,CAC9C,SAAS,EAAE,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAC9C,OAAO,GAAE,SAAS,kBAAkB,EAA0B,GAC5D,kBAAkB,EAAE,CAEtB;AAED,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,EACxC,OAAO,GAAE,SAAS,kBAAkB,EAA0B,GAC5D,kBAAkB,GAAG,IAAI,CAE3B;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAEpF;AAED,wBAAgB,yBAAyB,CAAC,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAE,sBAA2B,GAAG,kBAAkB,EAAE,CAqBnI;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAQvH;AAED,wBAAgB,iCAAiC,CAChD,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,EAC3C,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,SAAS,EAAE,cAAc,GAAG,SAAS,GACnC,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,CAgBtC;AAED,wBAAgB,wCAAwC,CAAC,KAAK,EAAE,OAAO,GAAG,+BAA+B,GAAG,SAAS,CASpH"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-xFhW5LuA.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-C4qR84IJ.js";import{Appearances as p,Basic as m,RemovableList as h,Sizes as g,Tones as _,n as v,t as y}from"./Badge.stories-C0FRO6mR.js";function b(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(a,{of:y,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(c,{children:`Badge`}),`
|
|
3
3
|
`,(0,S.jsx)(i,{children:`Компактная текстовая метка для статусов, категорий, фильтров и коротких служебных пометок`}),`
|
|
4
4
|
`,(0,S.jsx)(o.p,{children:`Badge подходит для коротких подписей, которые должны быстро читаться и не перегружать интерфейс:`}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DflW120b.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-G8NqhJFu.js";import{o as s,t as c}from"./lucide-react-VWiBigaj.js";import{n as l,t as u}from"./text-C1j_wRlP.js";import{i as d,n as f,r as p,t as m}from"./uiClasses-CaHp0EWd.js";import{o as h}from"./Flex-DMLdHG7d.js";import{t as g}from"./flex-BsIB-Bk2.js";var _,v,y,b,x,S,C,w,T,E,D=n((()=>{_=`qBtmnH`,v=`p-HsHY`,y=`u9tQAE`,b=`FRScRz`,x=`W13uQO`,S=`_3IRcM9`,C=`R3ybI7`,w=`DdWAaC`,T=`_5cXBQF`,E={badge:_,passive:v,sizeXs:y,sizeSm:b,sizeMd:x,sizeLg:S,sizeXl:C,content:w,removeButton:T}}));function O({children:e,size:t=`sm`,tone:n,appearance:r,className:i,onRemove:o}){let c=n??`neutral`,u=d({tone:n,appearance:r,fallbackTone:c,fallbackAppearance:c===`neutral`?`outline`:`solid`});return(0,k.jsxs)(`div`,{className:a(E.badge,A[t],f(u.tone),m(u.appearance),!o&&E.passive,i),children:[(0,k.jsx)(l,{maxChar:25,placement:`top`,block:!0,textWrapProps:{className:E.content},children:String(e)}),o&&(0,k.jsx)(`button`,{type:`button`,onClick:o,className:E.removeButton,"aria-label":`Удалить бейдж`,"data-ui":`badge-remove-button`,"data-action":`remove-badge`,children:(0,k.jsx)(s,{})})]})}var k,A,j=n((()=>{o(),c(),u(),p(),D(),k=i(),A={xs:E.sizeXs,sm:E.sizeSm,md:E.sizeMd,lg:E.sizeLg,xl:E.sizeXl},O.__docgenInfo={description:`Компактный индикатор для статусов, категорий и коротких служебных меток.`,methods:[],displayName:`Badge`,props:{children:{required:!0,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``,defaultValue:{value:`"sm"`,computed:!1}},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``},appearance:{required:!1,tsType:{name:`union`,raw:`"solid" | "outline" | "ghost" | "transparent"`,elements:[{name:`literal`,value:`"solid"`},{name:`literal`,value:`"outline"`},{name:`literal`,value:`"ghost"`},{name:`literal`,value:`"transparent"`}]},description:``},className:{required:!1,tsType:{name:`string`},description:``},onRemove:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}}}}));function M({children:e}){return(0,P.jsx)(h,{inline:!0,wrap:!0,gap:`sm`,align:`baseline`,children:N.Children.map(e,(e,t)=>(0,P.jsx)(N.Fragment,{children:e},t))})}var N,P,F=n((()=>{N=t(r(),1),g(),P=i(),M.__docgenInfo={description:"Контейнер для группы `Badge`, который выстраивает элементы в единый список с предсказуемыми отступами. Используется для компактного вывода набора меток или фильтров.",methods:[],displayName:`BadgeList`,props:{children:{required:!0,tsType:{name:`Array`,elements:[{name:`ReactElement`,elements:[{name:`union`,raw:`typeof Badge | null | undefined | false`,elements:[{name:`Badge`},{name:`null`},{name:`undefined`},{name:`literal`,value:`false`}]}],raw:`ReactElement<typeof Badge | null | undefined | false>`}],raw:`ReactElement<typeof Badge | null | undefined | false>[]`},description:``}}}})),I=e({Appearances:()=>H,Basic:()=>B,RemovableList:()=>W,Sizes:()=>U,Tones:()=>V,__namedExportsOrder:()=>G,default:()=>z}),L,R,z,B,V,H,U,W,G,K=n((()=>{L=t(r(),1),j(),F(),R=i(),z={title:`Shared/UI/Badge`,component:O,args:{children:`Новый`,size:`md`,tone:`info`,appearance:`solid`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текст внутри бейджа.`,control:`text`},size:{description:`Размер бейджа.`,control:`inline-radio`,options:[`sm`,`md`,`lg`]},tone:{description:`Семантический тон бейджа.`,control:`inline-radio`,options:[`neutral`,`success`,`warning`,`error`,`info`]},appearance:{description:`Форма бейджа.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},onRemove:{description:`Показывает кнопку удаления и вызывает обработчик по клику.`,control:!1},className:{description:`Дополнительный CSS-класс контейнера.`,control:`text`}}},B={},V={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,R.jsx)(O,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,R.jsx)(O,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,R.jsx)(O,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,R.jsx)(O,{tone:`info`,appearance:`solid`,children:`Информация`})]})},H={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{tone:`neutral`,appearance:`solid`,children:`Solid`}),(0,R.jsx)(O,{tone:`neutral`,appearance:`outline`,children:`Outline`}),(0,R.jsx)(O,{tone:`info`,appearance:`ghost`,children:`Ghost`}),(0,R.jsx)(O,{tone:`warning`,appearance:`transparent`,children:`Transparent`})]})},U={render:()=>(0,R.jsxs)(M,{children:[(0,R.jsx)(O,{size:`xs`,children:`Extra Small`}),(0,R.jsx)(O,{size:`sm`,children:`Small`}),(0,R.jsx)(O,{size:`md`,children:`Medium`}),(0,R.jsx)(O,{size:`lg`,children:`Large`}),(0,R.jsx)(O,{size:`xl`,children:`Extra Large`})]})},W={render:()=>{let[e,t]=(0,L.useState)([`Фильтр A`,`Фильтр B`,`Фильтр C`]);return(0,R.jsx)(M,{children:e.map(e=>(0,R.jsx)(O,{tone:`info`,appearance:`outline`,onRemove:()=>t(t=>t.filter(t=>t!==e)),children:e},e))})}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{}`,...B.parameters?.docs?.source}}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: () => <BadgeList>
|
|
3
3
|
<Badge tone="neutral" appearance="outline">
|
|
4
4
|
Neutral
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-xFhW5LuA.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-C4qR84IJ.js";import{Basic as p,ComposableScheme as m,Variants as h,WithIcons as g,n as _,t as v}from"./Button.stories-wRxT1tys.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(c,{children:`Button`}),`
|
|
3
3
|
`,(0,x.jsx)(i,{children:`Базовая action-кнопка дизайн-системы для пользовательских действий, подтверждений и быстрых операций`}),`
|
|
4
4
|
`,(0,x.jsxs)(o.p,{children:[(0,x.jsx)(o.code,{children:`Button`}),` используется как универсальная кнопка интерфейса: в формах, тулбарах, модальных окнах, карточках, таблицах и компактных icon-only сценариях.`]}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-DflW120b.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-G8NqhJFu.js";import{n as o,t as s}from"./popover-DrE0FDTT.js";import{n as c,t as l}from"./ui.module-wFHXkJzp.js";import{i as u,n as d,r as f,t as p}from"./uiClasses-CaHp0EWd.js";var m,h,g,_,v,y=t((()=>{m=`wLOHwj`,h=`lFsM-Y`,g=`LPob63`,_=`tsaGtv`,v={button:m,iconOnly:h,buttonInner:g,buttonIcon:_}})),b,x,S,C=t((()=>{b=e(n(),1),a(),s(),l(),f(),y(),x=r(),S=(0,b.forwardRef)(function({children:e,disabled:t,className:n,icon:r,iconEnd:a,title:s,variant:l,tone:f,appearance:m,type:h=`button`,"aria-label":g,..._},y){let S=b.Children.count(e)>0,C=!!r&&!S,w=u({variant:l,tone:f,appearance:m,fallbackAppearance:f&&f!==`neutral`?`solid`:`outline`}),T=C?g??s:g,E=(0,x.jsx)(`button`,{..._,ref:y,type:h,disabled:t,"aria-label":T,className:i(c.uiElement,c.uiInputControl,v.button,d(w.tone),p(w.appearance),C?v.iconOnly:``,`textNoWrap`,n??``),children:(0,x.jsxs)(`span`,{className:v.buttonInner,children:[r&&!a&&(0,x.jsx)(`span`,{"aria-hidden":`true`,className:v.buttonIcon,children:r}),S&&(0,x.jsx)(`span`,{className:`flexEllipsis`,children:e}),r&&a&&(0,x.jsx)(`span`,{"aria-hidden":`true`,className:v.buttonIcon,children:r})]})});return s?(0,x.jsx)(o,{placement:`bottom`,tooltip:!0,content:(0,x.jsx)(x.Fragment,{children:s}),children:E}):E}),S.__docgenInfo={description:'Базовая кнопка дизайн-системы для пользовательских действий.\nПоддерживает состояния, tone + appearance, иконки и безопасный `type="button"` по умолчанию.',methods:[],displayName:`Button`,props:{variant:{required:!1,tsType:{name:`union`,raw:`| "transparent"
|
|
2
2
|
| "ghost"
|
|
3
3
|
| "neutral"
|
|
4
4
|
| "error"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,i as t}from"./preload-helper-B45gAKPr.js";import{t as n}from"./jsx-runtime-BBQGix-2.js";import{J as r,Mt as i,t as a,w as o,wt as s}from"./lucide-react-
|
|
1
|
+
import{a as e,i as t}from"./preload-helper-B45gAKPr.js";import{t as n}from"./jsx-runtime-BBQGix-2.js";import{J as r,Mt as i,t as a,w as o,wt as s}from"./lucide-react-VWiBigaj.js";import{n as c,t as l}from"./Button-DBvM6sOi.js";var u=e({Basic:()=>m,ComposableScheme:()=>g,Variants:()=>h,WithIcons:()=>_,__namedExportsOrder:()=>v,default:()=>p}),d,f,p,m,h,g,_,v,y=t((()=>{a(),c(),d=n(),{fn:f}=__STORYBOOK_MODULE_TEST__,p={title:`Shared/UI/Button`,component:l,args:{children:`Действие`,variant:`neutralOutline`,disabled:!1,iconEnd:!1,onClick:f()},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{children:{description:`Текстовое содержимое кнопки.`,control:`text`},variant:{description:"Готовая схема для обратной совместимости. Если заданы `tone` или `appearance`, они имеют приоритет.",control:`select`,options:[`neutral`,`neutralOutline`,`ghost`,`error`,`warning`,`success`,`info`,`errorOutline`,`warningOutline`,`successOutline`,`infoOutline`,`transparent`]},tone:{description:`Семантический тон кнопки.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]},appearance:{description:`Визуальная форма кнопки.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},icon:{description:`Иконка слева или справа от текста.`,control:!1},iconEnd:{description:`Перемещает иконку в конец кнопки.`,control:`boolean`},title:{description:"Текст тултипа и `aria-label` для кнопки.",control:`text`},disabled:{description:`Блокирует нажатие.`,control:`boolean`},onClick:{description:`Вызывается при нажатии на кнопку.`,control:!1},className:{description:`Дополнительный CSS-класс.`,control:`text`}}},m={},h={render:()=>(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`},children:[(0,d.jsx)(l,{variant:`neutral`,children:`Neutral Solid`}),(0,d.jsx)(l,{variant:`neutralOutline`,children:`Neutral Outline`}),(0,d.jsx)(l,{variant:`ghost`,children:`Ghost`}),(0,d.jsx)(l,{variant:`info`,children:`Info Solid`}),(0,d.jsx)(l,{variant:`success`,children:`Success Solid`}),(0,d.jsx)(l,{variant:`warning`,children:`Warning Solid`}),(0,d.jsx)(l,{variant:`error`,children:`Error Solid`}),(0,d.jsx)(l,{variant:`infoOutline`,children:`Info Outline`}),(0,d.jsx)(l,{variant:`successOutline`,children:`Success Outline`}),(0,d.jsx)(l,{variant:`warningOutline`,children:`Warning Outline`}),(0,d.jsx)(l,{variant:`errorOutline`,children:`Error Outline`}),(0,d.jsx)(l,{variant:`transparent`,children:`Transparent`})]}),args:{children:`Действие`}},g={render:()=>(0,d.jsxs)(`div`,{style:{display:`grid`,gap:12,gridTemplateColumns:`repeat(auto-fit, minmax(180px, 1fr))`},children:[(0,d.jsx)(l,{tone:`neutral`,appearance:`solid`,children:`Neutral Solid`}),(0,d.jsx)(l,{tone:`neutral`,appearance:`outline`,children:`Neutral Outline`}),(0,d.jsx)(l,{tone:`neutral`,appearance:`ghost`,children:`Neutral Ghost`}),(0,d.jsx)(l,{tone:`info`,appearance:`outline`,children:`Info Outline`}),(0,d.jsx)(l,{tone:`success`,appearance:`solid`,children:`Success Solid`}),(0,d.jsx)(l,{tone:`error`,appearance:`transparent`,children:`Error Transparent`})]})},_={render:()=>(0,d.jsxs)(`div`,{style:{display:`flex`,gap:12,flexWrap:`wrap`},children:[(0,d.jsx)(l,{icon:(0,d.jsx)(r,{}),children:`Скачать`}),(0,d.jsx)(l,{icon:(0,d.jsx)(o,{}),tone:`info`,appearance:`solid`,children:`Создать`}),(0,d.jsx)(l,{icon:(0,d.jsx)(s,{}),iconEnd:!0,tone:`success`,appearance:`solid`,children:`Подтвердить`}),(0,d.jsx)(l,{icon:(0,d.jsx)(i,{}),title:`Уведомления`})]}),args:{children:`Действие`}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
// play: async function ({ args, canvas, userEvent }) {
|
|
3
3
|
// const button = canvas.getByRole("button", { name: /button/i });
|
|
4
4
|
// // 👇 Simulate behavior
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-xFhW5LuA.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-C4qR84IJ.js";import{Controlled as p,Disabled as m,Sizes as h,Tones as g,n as _,t as v}from"./CheckBox.stories-BsgDlKB1.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(c,{children:`CheckBox`}),`
|
|
3
3
|
`,(0,x.jsx)(i,{children:`Флажок для булевых полей с общими UI-схемами tone и appearance`}),`
|
|
4
4
|
`,(0,x.jsx)(o.p,{children:`CheckBox уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-DflW120b.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-G8NqhJFu.js";import{g as o,t as s}from"./lucide-react-VWiBigaj.js";import{n as c,t as l}from"./ui.module-wFHXkJzp.js";import{n as u,r as d}from"./uiClasses-CaHp0EWd.js";import{n as f,t as p}from"./CheckBox.module-Hr3mvdAC.js";function m({label:e,description:t,placeholder:n,disabled:r,size:a,className:s,onChange:l,value:d,noWrap:f,id:m,tone:_=`neutral`,...v}){let y=(0,h.useId)(),b=m??y,x=t?`${b}-description`:void 0,S=e??n,C=d??!1;return(0,g.jsxs)(`div`,{className:i(c.uiElement,a&&c.uiSizable,a&&c[a],r&&c.disabled,s),"aria-disabled":r||void 0,children:[(0,g.jsxs)(`div`,{className:p.row,children:[(0,g.jsxs)(`div`,{className:i(p.wrapper,u(_)),children:[(0,g.jsx)(`input`,{...v,id:b,type:`checkbox`,checked:C,disabled:r,"aria-checked":C,"aria-describedby":x,className:i(c.uiSelectionControl,p.input),onChange:()=>l?.(!C)}),(0,g.jsx)(`div`,{className:i(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,g.jsx)(o,{})})]}),S&&(0,g.jsx)(`label`,{htmlFor:b,className:i(c.uiLabelBase,f&&`textNoWrap`),children:S})]}),t&&(0,g.jsx)(`p`,{id:x,className:c.uiDescription,children:t})]})}var h,g,_=t((()=>{h=e(n(),1),a(),s(),l(),d(),f(),g=r(),m.__docgenInfo={description:`Компонент флажка для выбора булевого значения в формах и списках.
|
|
2
2
|
Поддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.`,methods:[],displayName:`CheckBox`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}},noWrap:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}}));export{_ as n,m as t};
|
package/storybook-static/assets/{CheckBox.stories-B07ze4Wr.js → CheckBox.stories-BsgDlKB1.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DflW120b.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{n as a,t as o}from"./CheckBox-B2PYacPl.js";var s=e({Controlled:()=>d,Disabled:()=>m,Sizes:()=>p,Tones:()=>f,__namedExportsOrder:()=>h,default:()=>u}),c,l,u,d,f,p,m,h,g=n((()=>{c=t(r(),1),a(),l=i(),u={title:`Shared/UI/CheckBox`,component:o,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст основной подписи чекбокса.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Текст подписи, если `label` не задан.",control:`text`},value:{description:`Текущее состояние чекбокса.`,control:`boolean`},onChange:{description:`Вызывается при изменении состояния.`,control:!1},disabled:{description:`Блокирует взаимодействие с элементом.`,control:`boolean`},size:{description:`Размер визуального контрола и текста.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Семантический тон чекбокса.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]}}},d={render:e=>{let[t,n]=(0,c.useState)(e.value??!1);return(0,l.jsx)(o,{...e,value:t,onChange:n})},args:{label:`Принимать условия`,description:`Подтверждение условий использования сервиса.`,value:!1,size:`md`,disabled:!1,tone:`neutral`}},f={render:()=>{let[e,t]=(0,c.useState)({neutral:!0,info:!0,success:!0,warning:!0,error:!0});return(0,l.jsx)(`div`,{style:{display:`grid`,gap:12},children:[`neutral`,`info`,`success`,`warning`,`error`].map(n=>(0,l.jsx)(o,{tone:n,label:`Тон ${n}`,value:e[n],onChange:e=>t(t=>({...t,[n]:e}))},n))})}},p={render:()=>{let[e,t]=(0,c.useState)({xs:!1,sm:!0,md:!1,lg:!0,xl:!1});return(0,l.jsx)(`div`,{style:{display:`grid`,gap:12},children:[`xs`,`sm`,`md`,`lg`,`xl`].map(n=>(0,l.jsx)(o,{size:n,label:`Размер ${n}`,value:e[n],onChange:e=>t(t=>({...t,[n]:e}))},n))})}},m={args:{label:`Недоступный чекбокс`,description:`Изменение недоступно из-за прав доступа.`,value:!0,disabled:!0,tone:`neutral`}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState(args.value ?? false);
|
|
4
4
|
return <CheckBox {...args} value={value} onChange={setValue} />;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n,n as r,r as i,t as a}from"./iframe-m0QwbmMJ.js";import{S as o,_ as s,b as c,g as l,h as u,v as d,x as f,y as p}from"./blocks-CWdkXPAf.js";import{a as m,l as h}from"./theming-CQoZ5-v_.js";function ee(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function g(e,...t){return _(e,ae,...t)}function _(e,t,...n){let r=function(...r){let i=0,a=n.slice().map(e=>e===t?r[i++]:e),o=r.slice(i);return e.apply(this,a.concat(o))};return e.prototype&&(r.prototype=Object.create(e.prototype)),r}function te(e,...t){return v(e,E,...t)}function v(e,t,...n){let r=function(...r){let i=n.filter(e=>e===t).length,a=Math.max(r.length-i,0),o=r.slice(0,a),s=a,c=n.slice().map(e=>e===t?r[s++]:e);return e.apply(this,o.concat(c))};return e.prototype&&(r.prototype=Object.create(e.prototype)),r}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function b(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}function x(e){var t=(0,w.useRef)(e),n=(0,w.useRef)(function(e){t.current&&t.current(e)});return t.current=e,n.current}function S(e,t,n){var r=x(n),i=(0,w.useState)(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=(0,w.useRef)({color:t,hsva:a});return(0,w.useEffect)(function(){if(!e.equal(t,s.current.color)){var n=e.toHsva(t);s.current={hsva:n,color:t},o(n)}},[t,e]),(0,w.useEffect)(function(){var t;W(a,s.current.hsva)||e.equal(t=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:t},r(t))},[a,e,r]),[a,(0,w.useCallback)(function(e){o(function(t){return Object.assign({},t,e)})},[])]}var C,w,ne,re,ie,T,ae,E,D,O,k,A,oe,j,M,N,P,se,ce,F,le,ue,de,fe,I,L,R,z,pe,B,me,V,H,U,W,G,he,ge,_e,ve,K,q,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,J,Le,Re,ze,Y,Be,Ve,X,He,Ue,We,Ge,Z,Ke,qe,Q,Je,$,Ye;t((()=>{o(),i(),C=e(n(),1),d(),c(),w=e(n(),1),m(),ne=a({"../../../node_modules/color-name/index.js"(e,t){t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}}),re=a({"../../../node_modules/color-convert/conversions.js"(e,t){var n=ne(),r={};for(let e of Object.keys(n))r[n[e]]=e;var i={rgb:{channels:3,labels:`rgb`},hsl:{channels:3,labels:`hsl`},hsv:{channels:3,labels:`hsv`},hwb:{channels:3,labels:`hwb`},cmyk:{channels:4,labels:`cmyk`},xyz:{channels:3,labels:`xyz`},lab:{channels:3,labels:`lab`},lch:{channels:3,labels:`lch`},hex:{channels:1,labels:[`hex`]},keyword:{channels:1,labels:[`keyword`]},ansi16:{channels:1,labels:[`ansi16`]},ansi256:{channels:1,labels:[`ansi256`]},hcg:{channels:3,labels:[`h`,`c`,`g`]},apple:{channels:3,labels:[`r16`,`g16`,`b16`]},gray:{channels:1,labels:[`gray`]}};t.exports=i;for(let e of Object.keys(i)){if(!(`channels`in i[e]))throw Error(`missing channels property: `+e);if(!(`labels`in i[e]))throw Error(`missing channel labels property: `+e);if(i[e].labels.length!==i[e].channels)throw Error(`channel and label counts mismatch: `+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s,c;a===i?s=0:t===a?s=(n-r)/o:n===a?s=2+(r-t)/o:r===a&&(s=4+(t-n)/o),s=Math.min(s*60,360),s<0&&(s+=360);let l=(i+a)/2;return c=a===i?0:l<=.5?o/(a+i):o/(2-a-i),[s,c*100,l*100]},i.rgb.hsv=function(e){let t,n,r,i,a,o=e[0]/255,s=e[1]/255,c=e[2]/255,l=Math.max(o,s,c),u=l-Math.min(o,s,c),d=function(e){return(l-e)/6/u+1/2};return u===0?(i=0,a=0):(a=u/l,t=d(o),n=d(s),r=d(c),o===l?i=r-n:s===l?i=1/3+t-r:c===l&&(i=2/3+n-t),i<0?i+=1:i>1&&--i),[i*360,a*100,l*100]},i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],a=i.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[a,o*100,r*100]},i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r),a=(1-t-i)/(1-i)||0,o=(1-n-i)/(1-i)||0,s=(1-r-i)/(1-i)||0;return[a*100,o*100,s*100,i*100]};function a(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=r[e];if(t)return t;let i=1/0,o;for(let t of Object.keys(n)){let r=n[t],s=a(e,r);s<i&&(i=s,o=t)}return o},i.keyword.rgb=function(e){return n[e]},i.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let i=t*.4124+n*.3576+r*.1805,a=t*.2126+n*.7152+r*.0722,o=t*.0193+n*.1192+r*.9505;return[i*100,a*100,o*100]},i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return n/=95.047,r/=100,a/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,[116*r-16,500*(n-r),200*(r-a)]},i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i,a,o;if(n===0)return o=r*255,[o,o,o];i=r<.5?r*(1+n):r+n-r*n;let s=2*r-i,c=[0,0,0];for(let e=0;e<3;e++)a=t+1/3*-(e-1),a<0&&a++,a>1&&a--,o=6*a<1?s+(i-s)*6*a:2*a<1?i:3*a<2?s+(i-s)*(2/3-a)*6:s,c[e]=o*255;return c},i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=n,a=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=a<=1?a:2-a;let o=(r+n)/2;return[t,(r===0?2*i/(a+i):2*n/(r+n))*100,o*100]},i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*a),c=255*r*(1-n*(1-a));switch(r*=255,i){case 0:return[r,c,o];case 1:return[s,r,o];case 2:return[o,r,c];case 3:return[o,s,r];case 4:return[c,o,r];case 5:return[r,o,s]}},i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01),a,o;o=(2-n)*r;let s=(2-n)*i;return a=n*i,a/=s<=1?s:2-s,a||=0,o/=2,[t,a*100,o*100]},i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i=n+r,a;i>1&&(n/=i,r/=i);let o=Math.floor(6*t),s=1-r;a=6*t-o,o&1&&(a=1-a);let c=n+a*(s-n),l,u,d;switch(o){default:case 6:case 0:l=s,u=c,d=n;break;case 1:l=c,u=s,d=n;break;case 2:l=n,u=s,d=c;break;case 3:l=n,u=c,d=s;break;case 4:l=c,u=n,d=s;break;case 5:l=s,u=n,d=c;break}return[l*255,u*255,d*255]},i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100,a=1-Math.min(1,t*(1-i)+i),o=1-Math.min(1,n*(1-i)+i),s=1-Math.min(1,r*(1-i)+i);return[a*255,o*255,s*255]},i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i,a,o;return i=t*3.2406+n*-1.5372+r*-.4986,a=t*-.9689+n*1.8758+r*.0415,o=t*.0557+n*-.204+r*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),[i*255,a*255,o*255]},i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];return t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,[116*n-16,500*(t-n),200*(n-r)]},i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],i,a,o;a=(t+16)/116,i=n/500+a,o=a-r/200;let s=a**3,c=i**3,l=o**3;return a=s>.008856?s:(a-16/116)/7.787,i=c>.008856?c:(i-16/116)/7.787,o=l>.008856?l:(o-16/116)/7.787,i*=95.047,a*=100,o*=108.883,[i,a,o]},i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],i;return i=Math.atan2(r,n)*360/2/Math.PI,i<0&&(i+=360),[t,Math.sqrt(n*n+r*r),i]},i.lch.lab=function(e){let t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},i.rgb.ansi16=function(e,t=null){let[n,r,a]=e,o=t===null?i.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let s=30+(Math.round(a/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return o===2&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5;return[(t&1)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){let t=(e-232)*10+8;return[t,t,t]}e-=16;let t;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},i.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return`000000`.substring(t.length)+t},i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split(``).map(e=>e+e).join(``));let r=parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),a=Math.min(Math.min(t,n),r),o=i-a,s,c;return s=o<1?a/(1-o):0,c=o<=0?0:i===t?(n-r)/o%6:i===n?2+(r-t)/o:4+(t-n)/o,c/=6,c%=1,[c*360,o*100,s*100]},i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],r*100,i*100]},i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let i=[0,0,0],a=t%1*6,o=a%1,s=1-o,c=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return c=(1-n)*r,[(n*i[0]+c)*255,(n*i[1]+c)*255,(n*i[2]+c)*255]},i.hcg.hsv=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],r*100,n*100]},i.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],r*100,n*100]},i.hcg.hwb=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],(n-t)*100,(1-n)*100]},i.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return`000000`.substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}}),ie=a({"../../../node_modules/color-convert/route.js"(e,t){var n=re();function r(){let e={},t=Object.keys(n);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function i(e){let t=r(),i=[e];for(t[e].distance=0;i.length;){let e=i.pop(),r=Object.keys(n[e]);for(let n=r.length,a=0;a<n;a++){let n=r[a],o=t[n];o.distance===-1&&(o.distance=t[e].distance+1,o.parent=e,i.unshift(n))}}return t}function a(e,t){return function(n){return t(e(n))}}function o(e,t){let r=[t[e].parent,e],i=n[t[e].parent][e],o=t[e].parent;for(;t[o].parent;)r.unshift(t[o].parent),i=a(n[t[o].parent][o],i),o=t[o].parent;return i.conversion=r,i}t.exports=function(e){let t=i(e),n={},r=Object.keys(t);for(let e=r.length,i=0;i<e;i++){let e=r[i];t[e].parent!==null&&(n[e]=o(e,t))}return n}}}),T=r(a({"../../../node_modules/color-convert/index.js"(e,t){var n=re(),r=ie(),i={},a=Object.keys(n);function o(e){let t=function(...t){let n=t[0];return n==null?n:(n.length>1&&(t=n),e(t))};return`conversion`in e&&(t.conversion=e.conversion),t}function s(e){let t=function(...t){let n=t[0];if(n==null)return n;n.length>1&&(t=n);let r=e(t);if(typeof r==`object`)for(let e=r.length,t=0;t<e;t++)r[t]=Math.round(r[t]);return r};return`conversion`in e&&(t.conversion=e.conversion),t}a.forEach(e=>{i[e]={},Object.defineProperty(i[e],"channels",{value:n[e].channels}),Object.defineProperty(i[e],"labels",{value:n[e].labels});let t=r(e);Object.keys(t).forEach(n=>{let r=t[n];i[e][n]=s(r),i[e][n].raw=o(r)})}),t.exports=i}})(),1),ae=Symbol(`partial.placeholder`),g.placeholder=ae,E=Symbol(`partialRight.placeholder`),te.placeholder=E,D=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e<t?t:e},O=function(e){return`touches`in e},k=function(e){return e&&e.ownerDocument.defaultView||self},A=function(e,t,n){var r=e.getBoundingClientRect(),i=O(t)?(function(e,t){for(var n=0;n<e.length;n++)if(e[n].identifier===t)return e[n];return e[0]})(t.touches,n):t;return{left:D((i.pageX-(r.left+k(e).pageXOffset))/r.width),top:D((i.pageY-(r.top+k(e).pageYOffset))/r.height)}},oe=function(e){!O(e)&&e.preventDefault()},j=w.memo(function(e){var t=e.onMove,n=e.onKey,r=b(e,[`onMove`,`onKey`]),i=(0,w.useRef)(null),a=x(t),o=x(n),s=(0,w.useRef)(null),c=(0,w.useRef)(!1),l=(0,w.useMemo)(function(){var e=function(e){oe(e),(O(e)?e.touches.length>0:e.buttons>0)&&i.current?a(A(i.current,e,s.current)):n(!1)},t=function(){return n(!1)};function n(n){var r=c.current,a=k(i.current),o=n?a.addEventListener:a.removeEventListener;o(r?`touchmove`:`mousemove`,e),o(r?`touchend`:`mouseup`,t)}return[function(e){var t=e.nativeEvent,r=i.current;if(r&&(oe(t),!(function(e,t){return t&&!O(e)})(t,c.current)&&r)){if(O(t)){c.current=!0;var o=t.changedTouches||[];o.length&&(s.current=o[0].identifier)}r.focus(),a(A(r,t,s.current)),n(!0)}},function(e){var t=e.which||e.keyCode;t<37||t>40||(e.preventDefault(),o({left:t===39?.05:t===37?-.05:0,top:t===40?.05:t===38?-.05:0}))},n]},[o,a]),u=l[0],d=l[1],f=l[2];return(0,w.useEffect)(function(){return f},[f]),w.createElement(`div`,y({},r,{onTouchStart:u,onMouseDown:u,className:`react-colorful__interactive`,ref:i,onKeyDown:d,tabIndex:0,role:`slider`}))}),M=function(e){return e.filter(Boolean).join(` `)},N=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,a=M([`react-colorful__pointer`,e.className]);return w.createElement(`div`,{className:a,style:{top:100*i+`%`,left:100*n+`%`}},w.createElement(`div`,{className:`react-colorful__pointer-fill`,style:{backgroundColor:t}}))},P=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=10**t),Math.round(n*e)/n},se={grad:.9,turn:360,rad:360/(2*Math.PI)},ce=function(e){return V(F(e))},F=function(e){return e[0]===`#`&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?P(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?P(parseInt(e.substring(6,8),16)/255,2):1}},le=function(e,t){return t===void 0&&(t=`deg`),Number(e)*(se[t]||1)},ue=function(e){var t=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?de({h:le(t[1],t[2]),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)}):{h:0,s:0,v:0,a:1}},de=function(e){var t=e.s,n=e.l;return{h:e.h,s:(t*=(n<50?n:100-n)/100)>0?2*t/(n+t)*100:0,v:n+t,a:e.a}},fe=function(e){return me(z(e))},I=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:P(e.h),s:P(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:P(i/2),a:P(r,2)}},L=function(e){var t=I(e);return`hsl(`+t.h+`, `+t.s+`%, `+t.l+`%)`},R=function(e){var t=I(e);return`hsla(`+t.h+`, `+t.s+`%, `+t.l+`%, `+t.a+`)`},z=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),l=a%6;return{r:P(255*[r,s,o,o,c,r][l]),g:P(255*[c,r,r,s,o,o][l]),b:P(255*[o,o,c,r,r,s][l]),a:P(i,2)}},pe=function(e){var t=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?V({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):{h:0,s:0,v:0,a:1}},B=function(e){var t=e.toString(16);return t.length<2?`0`+t:t},me=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=i<1?B(P(255*i)):``;return`#`+B(t)+B(n)+B(r)+a},V=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:P(60*(s<0?s+6:s)),s:P(a?o/a*100:0),v:P(a/255*100),a:i}},H=w.memo(function(e){var t=e.hue,n=e.onChange,r=M([`react-colorful__hue`,e.className]);return w.createElement(`div`,{className:r},w.createElement(j,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:D(t+360*e.left,0,360)})},"aria-label":`Hue`,"aria-valuenow":P(t),"aria-valuemax":`360`,"aria-valuemin":`0`},w.createElement(N,{className:`react-colorful__hue-pointer`,left:t/360,color:L({h:t,s:100,v:100,a:1})})))}),U=w.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:L({h:t.h,s:100,v:100,a:1})};return w.createElement(`div`,{className:`react-colorful__saturation`,style:r},w.createElement(j,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:D(t.s+100*e.left,0,100),v:D(t.v-100*e.top,0,100)})},"aria-label":`Color`,"aria-valuetext":`Saturation `+P(t.s)+`%, Brightness `+P(t.v)+`%`},w.createElement(N,{className:`react-colorful__saturation-pointer`,top:1-t.v/100,left:t.s/100,color:L(t)})))}),W=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0},G=function(e,t){return e.replace(/\s/g,``)===t.replace(/\s/g,``)},he=function(e,t){return e.toLowerCase()===t.toLowerCase()||W(F(e),F(t))},_e=typeof window<`u`?w.useLayoutEffect:w.useEffect,ve=function(){return ge||(typeof __webpack_nonce__<`u`?__webpack_nonce__:void 0)},K=new Map,q=function(e){_e(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!K.has(t)){var n=t.createElement(`style`);n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,K.set(t,n);var r=ve();r&&n.setAttribute(`nonce`,r),t.head.appendChild(n)}},[])},ye=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=b(e,[`className`,`colorModel`,`color`,`onChange`]),s=(0,w.useRef)(null);q(s);var c=S(n,i,a),l=c[0],u=c[1],d=M([`react-colorful`,t]);return w.createElement(`div`,y({},o,{ref:s,className:d}),w.createElement(U,{hsva:l,onChange:u}),w.createElement(H,{hue:l.h,onChange:u,className:`react-colorful__last-control`}))},be={defaultColor:`000`,toHsva:ce,fromHsva:function(e){return fe({h:e.h,s:e.s,v:e.v,a:1})},equal:he},xe=function(e){return w.createElement(ye,y({},e,{colorModel:be}))},Se=function(e){var t=e.className,n=e.hsva,r=e.onChange,i={backgroundImage:`linear-gradient(90deg, `+R(Object.assign({},n,{a:0}))+`, `+R(Object.assign({},n,{a:1}))+`)`},a=M([`react-colorful__alpha`,t]),o=P(100*n.a);return w.createElement(`div`,{className:a},w.createElement(`div`,{className:`react-colorful__alpha-gradient`,style:i}),w.createElement(j,{onMove:function(e){r({a:e.left})},onKey:function(e){r({a:D(n.a+e.left)})},"aria-label":`Alpha`,"aria-valuetext":o+`%`,"aria-valuenow":o,"aria-valuemin":`0`,"aria-valuemax":`100`},w.createElement(N,{className:`react-colorful__alpha-pointer`,left:n.a,color:R(n)})))},Ce=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=b(e,[`className`,`colorModel`,`color`,`onChange`]),s=(0,w.useRef)(null);q(s);var c=S(n,i,a),l=c[0],u=c[1],d=M([`react-colorful`,t]);return w.createElement(`div`,y({},o,{ref:s,className:d}),w.createElement(U,{hsva:l,onChange:u}),w.createElement(H,{hue:l.h,onChange:u}),w.createElement(Se,{hsva:l,onChange:u,className:`react-colorful__last-control`}))},we={defaultColor:`hsla(0, 0%, 0%, 1)`,toHsva:ue,fromHsva:R,equal:G},Te=function(e){return w.createElement(Ce,y({},e,{colorModel:we}))},Ee={defaultColor:`rgba(0, 0, 0, 1)`,toHsva:pe,fromHsva:function(e){var t=z(e);return`rgba(`+t.r+`, `+t.g+`, `+t.b+`, `+t.a+`)`},equal:G},De=function(e){return w.createElement(Ce,y({},e,{colorModel:Ee}))},Oe=h.div({position:`relative`,maxWidth:250}),ke=h.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:`4px 4px 0 0`},".react-colorful__hue":{boxShadow:`inset 0 0 0 1px rgb(0 0 0 / 5%)`},".react-colorful__last-control":{borderRadius:`0 0 4px 4px`}}),Ae=h.div({display:`grid`,gridTemplateColumns:`repeat(9, 16px)`,gap:6,padding:3,marginTop:5,width:200}),je=e=>`url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity="0.05" fill="${e?`white`:`black`}"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`,Me=h(u)(({value:e,selected:t,theme:n})=>({width:16,height:16,boxShadow:t?`${n.appBorderColor} 0 0 0 1px inset, ${n.textMutedColor}50 0 0 0 4px`:`${n.appBorderColor} 0 0 0 1px inset`,border:`none`,borderRadius:n.appBorderRadius,"&, &:hover":{background:`unset`,backgroundColor:`unset`,backgroundImage:`linear-gradient(${e}, ${e}), ${je(n.base===`dark`)}`}})),Ne=h(l.Input)(({theme:e})=>({width:`100%`,paddingLeft:30,paddingRight:30,boxSizing:`border-box`,fontFamily:e.typography.fonts.base,'[aria-readonly="true"] > &':{background:e.base===`light`?e.color.lighter:`transparent`}})),Pe=h(Me)(({disabled:e})=>({position:`absolute`,top:4,left:4,zIndex:1,cursor:e?`not-allowed`:`pointer`})),Fe=h(u)(({theme:e})=>({position:`absolute`,zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:`border-box`,cursor:`pointer`,color:e.input.color})),Ie=(e=>(e.RGB=`rgb`,e.HSL=`hsl`,e.HEX=`hex`,e))(Ie||{}),J=Object.values(Ie),Le=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,Re=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,ze=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,Y=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,Be=/^\s*#?([0-9a-f]{3})\s*$/i,Ve={hex:xe,rgb:De,hsl:Te},X={hex:`transparent`,rgb:`rgba(0, 0, 0, 0)`,hsl:`hsla(0, 0%, 0%, 0)`},He=e=>{let t=e?.match(Le);if(!t)return[0,0,0,1];let[,n,r,i,a=1]=t;return[n,r,i,a].map(Number)},Ue=e=>{let[t,n,r,i]=He(e),[a,o,s]=T.default.rgb.hsl([t,n,r])||[0,0,0];return{valid:!0,value:e,keyword:T.default.rgb.keyword([t,n,r]),colorSpace:`rgb`,rgb:e,hsl:`hsla(${a}, ${o}%, ${s}%, ${i})`,hex:`#${T.default.rgb.hex([t,n,r]).toLowerCase()}`}},We=e=>{let[t,n,r,i]=He(e),[a,o,s]=T.default.hsl.rgb([t,n,r])||[0,0,0];return{valid:!0,value:e,keyword:T.default.hsl.keyword([t,n,r]),colorSpace:`hsl`,rgb:`rgba(${a}, ${o}, ${s}, ${i})`,hsl:e,hex:`#${T.default.hsl.hex([t,n,r]).toLowerCase()}`}},Ge=e=>{let t=e.replace(`#`,``),n=T.default.keyword.rgb(t)||T.default.hex.rgb(t),r=T.default.rgb.hsl(n),i=e;/[^#a-f0-9]/i.test(e)?i=t:Y.test(e)&&(i=`#${t}`);let a=!0;if(i.startsWith(`#`))a=Y.test(i);else try{T.default.keyword.hex(i)}catch{a=!1}return{valid:a,value:i,keyword:T.default.rgb.keyword(n),colorSpace:`hex`,rgb:`rgba(${n[0]}, ${n[1]}, ${n[2]}, 1)`,hsl:`hsla(${r[0]}, ${r[1]}%, ${r[2]}%, 1)`,hex:i}},Z=e=>{if(e)return Re.test(e)?Ue(e):ze.test(e)?We(e):Ge(e)},Ke=(e,t,n)=>{if(!e||!t?.valid)return X[n];if(n!==`hex`)return t?.[n]||X[n];if(!t.hex.startsWith(`#`))try{return`#${T.default.keyword.hex(t.hex)}`}catch{return X.hex}let r=t.hex.match(Be);if(!r)return Y.test(t.hex)?t.hex:X.hex;let[i,a,o]=r[1].split(``);return`#${i}${i}${a}${a}${o}${o}`},qe=(e,t)=>{let[n,r]=(0,C.useState)(e||``),[i,a]=(0,C.useState)(()=>Z(n)),[o,s]=(0,C.useState)(i?.colorSpace||`hex`);return(0,C.useEffect)(()=>{let t=e||``,n=Z(t);r(t),a(n),s(n?.colorSpace||`hex`)},[e]),{value:n,realValue:(0,C.useMemo)(()=>Ke(n,i,o).toLowerCase(),[n,i,o]),updateValue:(0,C.useCallback)(e=>{let n=Z(e),i=n?.value||e||``;r(i),i===``&&(a(void 0),t(void 0)),n&&(a(n),s(n.colorSpace),t(n.value))},[t]),color:i,colorSpace:o,cycleColorSpace:(0,C.useCallback)(()=>{let e=J[(J.indexOf(o)+1)%J.length];s(e);let n=i?.[e]||``;r(n),t(n)},[i,o,t])}},Q=e=>e.replace(/\s*/,``).toLowerCase(),Je=(e,t,n,r=27)=>{let[i,a]=(0,C.useState)(t?.valid?[t]:[]);(0,C.useEffect)(()=>{t===void 0&&a([])},[t]);let o=(0,C.useMemo)(()=>{let t=(e||[]).map(e=>typeof e==`string`?Z(e):e.title?{...Z(e.color),keyword:e.title}:Z(e.color)).concat(i).filter(Boolean);if(r===0||r===1/0)return t;let n=Number.isInteger(r)&&r>0?r:27;return t.slice(-n)},[e,i,r]);return{presets:o,addPreset:(0,C.useCallback)(e=>{e?.valid&&(o.some(t=>t&&t[n]&&Q(t[n]||``)===Q(e[n]||``))||a(t=>t.concat(e)))},[n,o])}},$=({name:e,storyId:t,value:n,onChange:r,onFocus:i,onBlur:a,presetColors:o,maxPresetColors:c,startOpen:l=!1,argType:u})=>{let{value:d,realValue:m,updateValue:h,color:g,colorSpace:_,cycleColorSpace:te}=qe(n,(0,C.useCallback)(ee(r,200),[r])),{presets:v,addPreset:y}=Je(o??[],g,_,c),b=Ve[_],x=!!u?.table?.readonly,S=f(e,t);return C.createElement(Oe,null,C.createElement(`label`,{htmlFor:S,className:`sb-sr-only`},e),C.createElement(Ne,{id:S,value:d,onChange:e=>h(e.target.value),onFocus:e=>e.target.select(),readOnly:x,placeholder:`Choose color...`}),C.createElement(s,{ariaLabel:`Color picker`,defaultVisible:l,visible:x?!1:void 0,onVisibleChange:()=>g&&y(g),popover:C.createElement(ke,null,C.createElement(b,{color:m===`transparent`?`#000000`:m,onChange:h,onFocus:i,onBlur:a}),v.length>0&&C.createElement(Ae,null,v.map((e,t)=>C.createElement(Me,{key:`${e?.value||t}-${t}`,variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Pick this color`,tooltip:e?.keyword||e?.value||``,value:e?.value||``,selected:!!(g&&e&&e[_]&&Q(e[_]||``)===Q(g[_])),onClick:()=>e&&h(e.value||``)}))))},C.createElement(Pe,{variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Open color picker`,value:m,style:{margin:4},disabled:x})),d?C.createElement(Fe,{variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Cycle through color spaces`,disabled:x,onClick:x?void 0:te},C.createElement(p,null)):null)},Ye=$}))();export{$ as ColorControl,Ye as default};
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n,n as r,r as i,t as a}from"./iframe-DflW120b.js";import{S as o,_ as s,b as c,g as l,h as u,v as d,x as f,y as p}from"./blocks-xFhW5LuA.js";import{a as m,l as h}from"./theming-BBiKrPJV.js";function ee(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function g(e,...t){return _(e,ae,...t)}function _(e,t,...n){let r=function(...r){let i=0,a=n.slice().map(e=>e===t?r[i++]:e),o=r.slice(i);return e.apply(this,a.concat(o))};return e.prototype&&(r.prototype=Object.create(e.prototype)),r}function te(e,...t){return v(e,E,...t)}function v(e,t,...n){let r=function(...r){let i=n.filter(e=>e===t).length,a=Math.max(r.length-i,0),o=r.slice(0,a),s=a,c=n.slice().map(e=>e===t?r[s++]:e);return e.apply(this,o.concat(c))};return e.prototype&&(r.prototype=Object.create(e.prototype)),r}function y(){return(y=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function b(e,t){if(e==null)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(i[n]=e[n]);return i}function x(e){var t=(0,w.useRef)(e),n=(0,w.useRef)(function(e){t.current&&t.current(e)});return t.current=e,n.current}function S(e,t,n){var r=x(n),i=(0,w.useState)(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=(0,w.useRef)({color:t,hsva:a});return(0,w.useEffect)(function(){if(!e.equal(t,s.current.color)){var n=e.toHsva(t);s.current={hsva:n,color:t},o(n)}},[t,e]),(0,w.useEffect)(function(){var t;W(a,s.current.hsva)||e.equal(t=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:t},r(t))},[a,e,r]),[a,(0,w.useCallback)(function(e){o(function(t){return Object.assign({},t,e)})},[])]}var C,w,ne,re,ie,T,ae,E,D,O,k,A,oe,j,M,N,P,se,ce,F,le,ue,de,fe,I,L,R,z,pe,B,me,V,H,U,W,G,he,ge,_e,ve,K,q,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,J,Le,Re,ze,Y,Be,Ve,X,He,Ue,We,Ge,Z,Ke,qe,Q,Je,$,Ye;t((()=>{o(),i(),C=e(n(),1),d(),c(),w=e(n(),1),m(),ne=a({"../../../node_modules/color-name/index.js"(e,t){t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}}}),re=a({"../../../node_modules/color-convert/conversions.js"(e,t){var n=ne(),r={};for(let e of Object.keys(n))r[n[e]]=e;var i={rgb:{channels:3,labels:`rgb`},hsl:{channels:3,labels:`hsl`},hsv:{channels:3,labels:`hsv`},hwb:{channels:3,labels:`hwb`},cmyk:{channels:4,labels:`cmyk`},xyz:{channels:3,labels:`xyz`},lab:{channels:3,labels:`lab`},lch:{channels:3,labels:`lch`},hex:{channels:1,labels:[`hex`]},keyword:{channels:1,labels:[`keyword`]},ansi16:{channels:1,labels:[`ansi16`]},ansi256:{channels:1,labels:[`ansi256`]},hcg:{channels:3,labels:[`h`,`c`,`g`]},apple:{channels:3,labels:[`r16`,`g16`,`b16`]},gray:{channels:1,labels:[`gray`]}};t.exports=i;for(let e of Object.keys(i)){if(!(`channels`in i[e]))throw Error(`missing channels property: `+e);if(!(`labels`in i[e]))throw Error(`missing channel labels property: `+e);if(i[e].labels.length!==i[e].channels)throw Error(`channel and label counts mismatch: `+e);let{channels:t,labels:n}=i[e];delete i[e].channels,delete i[e].labels,Object.defineProperty(i[e],"channels",{value:t}),Object.defineProperty(i[e],"labels",{value:n})}i.rgb.hsl=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s,c;a===i?s=0:t===a?s=(n-r)/o:n===a?s=2+(r-t)/o:r===a&&(s=4+(t-n)/o),s=Math.min(s*60,360),s<0&&(s+=360);let l=(i+a)/2;return c=a===i?0:l<=.5?o/(a+i):o/(2-a-i),[s,c*100,l*100]},i.rgb.hsv=function(e){let t,n,r,i,a,o=e[0]/255,s=e[1]/255,c=e[2]/255,l=Math.max(o,s,c),u=l-Math.min(o,s,c),d=function(e){return(l-e)/6/u+1/2};return u===0?(i=0,a=0):(a=u/l,t=d(o),n=d(s),r=d(c),o===l?i=r-n:s===l?i=1/3+t-r:c===l&&(i=2/3+n-t),i<0?i+=1:i>1&&--i),[i*360,a*100,l*100]},i.rgb.hwb=function(e){let t=e[0],n=e[1],r=e[2],a=i.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(n,r));return r=1-1/255*Math.max(t,Math.max(n,r)),[a,o*100,r*100]},i.rgb.cmyk=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(1-t,1-n,1-r),a=(1-t-i)/(1-i)||0,o=(1-n-i)/(1-i)||0,s=(1-r-i)/(1-i)||0;return[a*100,o*100,s*100,i*100]};function a(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}i.rgb.keyword=function(e){let t=r[e];if(t)return t;let i=1/0,o;for(let t of Object.keys(n)){let r=n[t],s=a(e,r);s<i&&(i=s,o=t)}return o},i.keyword.rgb=function(e){return n[e]},i.rgb.xyz=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92;let i=t*.4124+n*.3576+r*.1805,a=t*.2126+n*.7152+r*.0722,o=t*.0193+n*.1192+r*.9505;return[i*100,a*100,o*100]},i.rgb.lab=function(e){let t=i.rgb.xyz(e),n=t[0],r=t[1],a=t[2];return n/=95.047,r/=100,a/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,a=a>.008856?a**(1/3):7.787*a+16/116,[116*r-16,500*(n-r),200*(r-a)]},i.hsl.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i,a,o;if(n===0)return o=r*255,[o,o,o];i=r<.5?r*(1+n):r+n-r*n;let s=2*r-i,c=[0,0,0];for(let e=0;e<3;e++)a=t+1/3*-(e-1),a<0&&a++,a>1&&a--,o=6*a<1?s+(i-s)*6*a:2*a<1?i:3*a<2?s+(i-s)*(2/3-a)*6:s,c[e]=o*255;return c},i.hsl.hsv=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=n,a=Math.max(r,.01);r*=2,n*=r<=1?r:2-r,i*=a<=1?a:2-a;let o=(r+n)/2;return[t,(r===0?2*i/(a+i):2*n/(r+n))*100,o*100]},i.hsv.rgb=function(e){let t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,a=t-Math.floor(t),o=255*r*(1-n),s=255*r*(1-n*a),c=255*r*(1-n*(1-a));switch(r*=255,i){case 0:return[r,c,o];case 1:return[s,r,o];case 2:return[o,r,c];case 3:return[o,s,r];case 4:return[c,o,r];case 5:return[r,o,s]}},i.hsv.hsl=function(e){let t=e[0],n=e[1]/100,r=e[2]/100,i=Math.max(r,.01),a,o;o=(2-n)*r;let s=(2-n)*i;return a=n*i,a/=s<=1?s:2-s,a||=0,o/=2,[t,a*100,o*100]},i.hwb.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100,i=n+r,a;i>1&&(n/=i,r/=i);let o=Math.floor(6*t),s=1-r;a=6*t-o,o&1&&(a=1-a);let c=n+a*(s-n),l,u,d;switch(o){default:case 6:case 0:l=s,u=c,d=n;break;case 1:l=c,u=s,d=n;break;case 2:l=n,u=s,d=c;break;case 3:l=n,u=c,d=s;break;case 4:l=c,u=n,d=s;break;case 5:l=s,u=n,d=c;break}return[l*255,u*255,d*255]},i.cmyk.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i=e[3]/100,a=1-Math.min(1,t*(1-i)+i),o=1-Math.min(1,n*(1-i)+i),s=1-Math.min(1,r*(1-i)+i);return[a*255,o*255,s*255]},i.xyz.rgb=function(e){let t=e[0]/100,n=e[1]/100,r=e[2]/100,i,a,o;return i=t*3.2406+n*-1.5372+r*-.4986,a=t*-.9689+n*1.8758+r*.0415,o=t*.0557+n*-.204+r*1.057,i=i>.0031308?1.055*i**(1/2.4)-.055:i*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),[i*255,a*255,o*255]},i.xyz.lab=function(e){let t=e[0],n=e[1],r=e[2];return t/=95.047,n/=100,r/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,[116*n-16,500*(t-n),200*(n-r)]},i.lab.xyz=function(e){let t=e[0],n=e[1],r=e[2],i,a,o;a=(t+16)/116,i=n/500+a,o=a-r/200;let s=a**3,c=i**3,l=o**3;return a=s>.008856?s:(a-16/116)/7.787,i=c>.008856?c:(i-16/116)/7.787,o=l>.008856?l:(o-16/116)/7.787,i*=95.047,a*=100,o*=108.883,[i,a,o]},i.lab.lch=function(e){let t=e[0],n=e[1],r=e[2],i;return i=Math.atan2(r,n)*360/2/Math.PI,i<0&&(i+=360),[t,Math.sqrt(n*n+r*r),i]},i.lch.lab=function(e){let t=e[0],n=e[1],r=e[2]/360*2*Math.PI;return[t,n*Math.cos(r),n*Math.sin(r)]},i.rgb.ansi16=function(e,t=null){let[n,r,a]=e,o=t===null?i.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let s=30+(Math.round(a/255)<<2|Math.round(r/255)<<1|Math.round(n/255));return o===2&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){let t=e[0],n=e[1],r=e[2];return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},i.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let n=(~~(e>50)+1)*.5;return[(t&1)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},i.ansi256.rgb=function(e){if(e>=232){let t=(e-232)*10+8;return[t,t,t]}e-=16;let t;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},i.rgb.hex=function(e){let t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return`000000`.substring(t.length)+t},i.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let n=t[0];t[0].length===3&&(n=n.split(``).map(e=>e+e).join(``));let r=parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},i.rgb.hcg=function(e){let t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.max(Math.max(t,n),r),a=Math.min(Math.min(t,n),r),o=i-a,s,c;return s=o<1?a/(1-o):0,c=o<=0?0:i===t?(n-r)/o%6:i===n?2+(r-t)/o:4+(t-n)/o,c/=6,c%=1,[c*360,o*100,s*100]},i.hsl.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=n<.5?2*t*n:2*t*(1-n),i=0;return r<1&&(i=(n-.5*r)/(1-r)),[e[0],r*100,i*100]},i.hsv.hcg=function(e){let t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.hcg.rgb=function(e){let t=e[0]/360,n=e[1]/100,r=e[2]/100;if(n===0)return[r*255,r*255,r*255];let i=[0,0,0],a=t%1*6,o=a%1,s=1-o,c=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return c=(1-n)*r,[(n*i[0]+c)*255,(n*i[1]+c)*255,(n*i[2]+c)*255]},i.hcg.hsv=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t),r=0;return n>0&&(r=t/n),[e[0],r*100,n*100]},i.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,r=0;return n>0&&n<.5?r=t/(2*n):n>=.5&&n<1&&(r=t/(2*(1-n))),[e[0],r*100,n*100]},i.hcg.hwb=function(e){let t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],(n-t)*100,(1-n)*100]},i.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,r=n-t,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],r*100,i*100]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=function(e){return[0,0,e[0]]},i.gray.hsv=i.gray.hsl,i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return`000000`.substring(n.length)+n},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}}),ie=a({"../../../node_modules/color-convert/route.js"(e,t){var n=re();function r(){let e={},t=Object.keys(n);for(let n=t.length,r=0;r<n;r++)e[t[r]]={distance:-1,parent:null};return e}function i(e){let t=r(),i=[e];for(t[e].distance=0;i.length;){let e=i.pop(),r=Object.keys(n[e]);for(let n=r.length,a=0;a<n;a++){let n=r[a],o=t[n];o.distance===-1&&(o.distance=t[e].distance+1,o.parent=e,i.unshift(n))}}return t}function a(e,t){return function(n){return t(e(n))}}function o(e,t){let r=[t[e].parent,e],i=n[t[e].parent][e],o=t[e].parent;for(;t[o].parent;)r.unshift(t[o].parent),i=a(n[t[o].parent][o],i),o=t[o].parent;return i.conversion=r,i}t.exports=function(e){let t=i(e),n={},r=Object.keys(t);for(let e=r.length,i=0;i<e;i++){let e=r[i];t[e].parent!==null&&(n[e]=o(e,t))}return n}}}),T=r(a({"../../../node_modules/color-convert/index.js"(e,t){var n=re(),r=ie(),i={},a=Object.keys(n);function o(e){let t=function(...t){let n=t[0];return n==null?n:(n.length>1&&(t=n),e(t))};return`conversion`in e&&(t.conversion=e.conversion),t}function s(e){let t=function(...t){let n=t[0];if(n==null)return n;n.length>1&&(t=n);let r=e(t);if(typeof r==`object`)for(let e=r.length,t=0;t<e;t++)r[t]=Math.round(r[t]);return r};return`conversion`in e&&(t.conversion=e.conversion),t}a.forEach(e=>{i[e]={},Object.defineProperty(i[e],"channels",{value:n[e].channels}),Object.defineProperty(i[e],"labels",{value:n[e].labels});let t=r(e);Object.keys(t).forEach(n=>{let r=t[n];i[e][n]=s(r),i[e][n].raw=o(r)})}),t.exports=i}})(),1),ae=Symbol(`partial.placeholder`),g.placeholder=ae,E=Symbol(`partialRight.placeholder`),te.placeholder=E,D=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=1),e>n?n:e<t?t:e},O=function(e){return`touches`in e},k=function(e){return e&&e.ownerDocument.defaultView||self},A=function(e,t,n){var r=e.getBoundingClientRect(),i=O(t)?(function(e,t){for(var n=0;n<e.length;n++)if(e[n].identifier===t)return e[n];return e[0]})(t.touches,n):t;return{left:D((i.pageX-(r.left+k(e).pageXOffset))/r.width),top:D((i.pageY-(r.top+k(e).pageYOffset))/r.height)}},oe=function(e){!O(e)&&e.preventDefault()},j=w.memo(function(e){var t=e.onMove,n=e.onKey,r=b(e,[`onMove`,`onKey`]),i=(0,w.useRef)(null),a=x(t),o=x(n),s=(0,w.useRef)(null),c=(0,w.useRef)(!1),l=(0,w.useMemo)(function(){var e=function(e){oe(e),(O(e)?e.touches.length>0:e.buttons>0)&&i.current?a(A(i.current,e,s.current)):n(!1)},t=function(){return n(!1)};function n(n){var r=c.current,a=k(i.current),o=n?a.addEventListener:a.removeEventListener;o(r?`touchmove`:`mousemove`,e),o(r?`touchend`:`mouseup`,t)}return[function(e){var t=e.nativeEvent,r=i.current;if(r&&(oe(t),!(function(e,t){return t&&!O(e)})(t,c.current)&&r)){if(O(t)){c.current=!0;var o=t.changedTouches||[];o.length&&(s.current=o[0].identifier)}r.focus(),a(A(r,t,s.current)),n(!0)}},function(e){var t=e.which||e.keyCode;t<37||t>40||(e.preventDefault(),o({left:t===39?.05:t===37?-.05:0,top:t===40?.05:t===38?-.05:0}))},n]},[o,a]),u=l[0],d=l[1],f=l[2];return(0,w.useEffect)(function(){return f},[f]),w.createElement(`div`,y({},r,{onTouchStart:u,onMouseDown:u,className:`react-colorful__interactive`,ref:i,onKeyDown:d,tabIndex:0,role:`slider`}))}),M=function(e){return e.filter(Boolean).join(` `)},N=function(e){var t=e.color,n=e.left,r=e.top,i=r===void 0?.5:r,a=M([`react-colorful__pointer`,e.className]);return w.createElement(`div`,{className:a,style:{top:100*i+`%`,left:100*n+`%`}},w.createElement(`div`,{className:`react-colorful__pointer-fill`,style:{backgroundColor:t}}))},P=function(e,t,n){return t===void 0&&(t=0),n===void 0&&(n=10**t),Math.round(n*e)/n},se={grad:.9,turn:360,rad:360/(2*Math.PI)},ce=function(e){return V(F(e))},F=function(e){return e[0]===`#`&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?P(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?P(parseInt(e.substring(6,8),16)/255,2):1}},le=function(e,t){return t===void 0&&(t=`deg`),Number(e)*(se[t]||1)},ue=function(e){var t=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?de({h:le(t[1],t[2]),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)}):{h:0,s:0,v:0,a:1}},de=function(e){var t=e.s,n=e.l;return{h:e.h,s:(t*=(n<50?n:100-n)/100)>0?2*t/(n+t)*100:0,v:n+t,a:e.a}},fe=function(e){return me(z(e))},I=function(e){var t=e.s,n=e.v,r=e.a,i=(200-t)*n/100;return{h:P(e.h),s:P(i>0&&i<200?t*n/100/(i<=100?i:200-i)*100:0),l:P(i/2),a:P(r,2)}},L=function(e){var t=I(e);return`hsl(`+t.h+`, `+t.s+`%, `+t.l+`%)`},R=function(e){var t=I(e);return`hsla(`+t.h+`, `+t.s+`%, `+t.l+`%, `+t.a+`)`},z=function(e){var t=e.h,n=e.s,r=e.v,i=e.a;t=t/360*6,n/=100,r/=100;var a=Math.floor(t),o=r*(1-n),s=r*(1-(t-a)*n),c=r*(1-(1-t+a)*n),l=a%6;return{r:P(255*[r,s,o,o,c,r][l]),g:P(255*[c,r,r,s,o,o][l]),b:P(255*[o,o,c,r,r,s][l]),a:P(i,2)}},pe=function(e){var t=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return t?V({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):{h:0,s:0,v:0,a:1}},B=function(e){var t=e.toString(16);return t.length<2?`0`+t:t},me=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=i<1?B(P(255*i)):``;return`#`+B(t)+B(n)+B(r)+a},V=function(e){var t=e.r,n=e.g,r=e.b,i=e.a,a=Math.max(t,n,r),o=a-Math.min(t,n,r),s=o?a===t?(n-r)/o:a===n?2+(r-t)/o:4+(t-n)/o:0;return{h:P(60*(s<0?s+6:s)),s:P(a?o/a*100:0),v:P(a/255*100),a:i}},H=w.memo(function(e){var t=e.hue,n=e.onChange,r=M([`react-colorful__hue`,e.className]);return w.createElement(`div`,{className:r},w.createElement(j,{onMove:function(e){n({h:360*e.left})},onKey:function(e){n({h:D(t+360*e.left,0,360)})},"aria-label":`Hue`,"aria-valuenow":P(t),"aria-valuemax":`360`,"aria-valuemin":`0`},w.createElement(N,{className:`react-colorful__hue-pointer`,left:t/360,color:L({h:t,s:100,v:100,a:1})})))}),U=w.memo(function(e){var t=e.hsva,n=e.onChange,r={backgroundColor:L({h:t.h,s:100,v:100,a:1})};return w.createElement(`div`,{className:`react-colorful__saturation`,style:r},w.createElement(j,{onMove:function(e){n({s:100*e.left,v:100-100*e.top})},onKey:function(e){n({s:D(t.s+100*e.left,0,100),v:D(t.v-100*e.top,0,100)})},"aria-label":`Color`,"aria-valuetext":`Saturation `+P(t.s)+`%, Brightness `+P(t.v)+`%`},w.createElement(N,{className:`react-colorful__saturation-pointer`,top:1-t.v/100,left:t.s/100,color:L(t)})))}),W=function(e,t){if(e===t)return!0;for(var n in e)if(e[n]!==t[n])return!1;return!0},G=function(e,t){return e.replace(/\s/g,``)===t.replace(/\s/g,``)},he=function(e,t){return e.toLowerCase()===t.toLowerCase()||W(F(e),F(t))},_e=typeof window<`u`?w.useLayoutEffect:w.useEffect,ve=function(){return ge||(typeof __webpack_nonce__<`u`?__webpack_nonce__:void 0)},K=new Map,q=function(e){_e(function(){var t=e.current?e.current.ownerDocument:document;if(t!==void 0&&!K.has(t)){var n=t.createElement(`style`);n.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity=".05"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,K.set(t,n);var r=ve();r&&n.setAttribute(`nonce`,r),t.head.appendChild(n)}},[])},ye=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=b(e,[`className`,`colorModel`,`color`,`onChange`]),s=(0,w.useRef)(null);q(s);var c=S(n,i,a),l=c[0],u=c[1],d=M([`react-colorful`,t]);return w.createElement(`div`,y({},o,{ref:s,className:d}),w.createElement(U,{hsva:l,onChange:u}),w.createElement(H,{hue:l.h,onChange:u,className:`react-colorful__last-control`}))},be={defaultColor:`000`,toHsva:ce,fromHsva:function(e){return fe({h:e.h,s:e.s,v:e.v,a:1})},equal:he},xe=function(e){return w.createElement(ye,y({},e,{colorModel:be}))},Se=function(e){var t=e.className,n=e.hsva,r=e.onChange,i={backgroundImage:`linear-gradient(90deg, `+R(Object.assign({},n,{a:0}))+`, `+R(Object.assign({},n,{a:1}))+`)`},a=M([`react-colorful__alpha`,t]),o=P(100*n.a);return w.createElement(`div`,{className:a},w.createElement(`div`,{className:`react-colorful__alpha-gradient`,style:i}),w.createElement(j,{onMove:function(e){r({a:e.left})},onKey:function(e){r({a:D(n.a+e.left)})},"aria-label":`Alpha`,"aria-valuetext":o+`%`,"aria-valuenow":o,"aria-valuemin":`0`,"aria-valuemax":`100`},w.createElement(N,{className:`react-colorful__alpha-pointer`,left:n.a,color:R(n)})))},Ce=function(e){var t=e.className,n=e.colorModel,r=e.color,i=r===void 0?n.defaultColor:r,a=e.onChange,o=b(e,[`className`,`colorModel`,`color`,`onChange`]),s=(0,w.useRef)(null);q(s);var c=S(n,i,a),l=c[0],u=c[1],d=M([`react-colorful`,t]);return w.createElement(`div`,y({},o,{ref:s,className:d}),w.createElement(U,{hsva:l,onChange:u}),w.createElement(H,{hue:l.h,onChange:u}),w.createElement(Se,{hsva:l,onChange:u,className:`react-colorful__last-control`}))},we={defaultColor:`hsla(0, 0%, 0%, 1)`,toHsva:ue,fromHsva:R,equal:G},Te=function(e){return w.createElement(Ce,y({},e,{colorModel:we}))},Ee={defaultColor:`rgba(0, 0, 0, 1)`,toHsva:pe,fromHsva:function(e){var t=z(e);return`rgba(`+t.r+`, `+t.g+`, `+t.b+`, `+t.a+`)`},equal:G},De=function(e){return w.createElement(Ce,y({},e,{colorModel:Ee}))},Oe=h.div({position:`relative`,maxWidth:250}),ke=h.div({width:200,margin:5,".react-colorful__saturation":{borderRadius:`4px 4px 0 0`},".react-colorful__hue":{boxShadow:`inset 0 0 0 1px rgb(0 0 0 / 5%)`},".react-colorful__last-control":{borderRadius:`0 0 4px 4px`}}),Ae=h.div({display:`grid`,gridTemplateColumns:`repeat(9, 16px)`,gap:6,padding:3,marginTop:5,width:200}),je=e=>`url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill-opacity="0.05" fill="${e?`white`:`black`}"><path d="M8 0h8v8H8zM0 8h8v8H0z"/></svg>')`,Me=h(u)(({value:e,selected:t,theme:n})=>({width:16,height:16,boxShadow:t?`${n.appBorderColor} 0 0 0 1px inset, ${n.textMutedColor}50 0 0 0 4px`:`${n.appBorderColor} 0 0 0 1px inset`,border:`none`,borderRadius:n.appBorderRadius,"&, &:hover":{background:`unset`,backgroundColor:`unset`,backgroundImage:`linear-gradient(${e}, ${e}), ${je(n.base===`dark`)}`}})),Ne=h(l.Input)(({theme:e})=>({width:`100%`,paddingLeft:30,paddingRight:30,boxSizing:`border-box`,fontFamily:e.typography.fonts.base,'[aria-readonly="true"] > &':{background:e.base===`light`?e.color.lighter:`transparent`}})),Pe=h(Me)(({disabled:e})=>({position:`absolute`,top:4,left:4,zIndex:1,cursor:e?`not-allowed`:`pointer`})),Fe=h(u)(({theme:e})=>({position:`absolute`,zIndex:1,top:6,right:7,width:20,height:20,padding:4,boxSizing:`border-box`,cursor:`pointer`,color:e.input.color})),Ie=(e=>(e.RGB=`rgb`,e.HSL=`hsl`,e.HEX=`hex`,e))(Ie||{}),J=Object.values(Ie),Le=/\(([0-9]+),\s*([0-9]+)%?,\s*([0-9]+)%?,?\s*([0-9.]+)?\)/,Re=/^\s*rgba?\(([0-9]+),\s*([0-9]+),\s*([0-9]+),?\s*([0-9.]+)?\)\s*$/i,ze=/^\s*hsla?\(([0-9]+),\s*([0-9]+)%,\s*([0-9]+)%,?\s*([0-9.]+)?\)\s*$/i,Y=/^\s*#?([0-9a-f]{3}|[0-9a-f]{6})\s*$/i,Be=/^\s*#?([0-9a-f]{3})\s*$/i,Ve={hex:xe,rgb:De,hsl:Te},X={hex:`transparent`,rgb:`rgba(0, 0, 0, 0)`,hsl:`hsla(0, 0%, 0%, 0)`},He=e=>{let t=e?.match(Le);if(!t)return[0,0,0,1];let[,n,r,i,a=1]=t;return[n,r,i,a].map(Number)},Ue=e=>{let[t,n,r,i]=He(e),[a,o,s]=T.default.rgb.hsl([t,n,r])||[0,0,0];return{valid:!0,value:e,keyword:T.default.rgb.keyword([t,n,r]),colorSpace:`rgb`,rgb:e,hsl:`hsla(${a}, ${o}%, ${s}%, ${i})`,hex:`#${T.default.rgb.hex([t,n,r]).toLowerCase()}`}},We=e=>{let[t,n,r,i]=He(e),[a,o,s]=T.default.hsl.rgb([t,n,r])||[0,0,0];return{valid:!0,value:e,keyword:T.default.hsl.keyword([t,n,r]),colorSpace:`hsl`,rgb:`rgba(${a}, ${o}, ${s}, ${i})`,hsl:e,hex:`#${T.default.hsl.hex([t,n,r]).toLowerCase()}`}},Ge=e=>{let t=e.replace(`#`,``),n=T.default.keyword.rgb(t)||T.default.hex.rgb(t),r=T.default.rgb.hsl(n),i=e;/[^#a-f0-9]/i.test(e)?i=t:Y.test(e)&&(i=`#${t}`);let a=!0;if(i.startsWith(`#`))a=Y.test(i);else try{T.default.keyword.hex(i)}catch{a=!1}return{valid:a,value:i,keyword:T.default.rgb.keyword(n),colorSpace:`hex`,rgb:`rgba(${n[0]}, ${n[1]}, ${n[2]}, 1)`,hsl:`hsla(${r[0]}, ${r[1]}%, ${r[2]}%, 1)`,hex:i}},Z=e=>{if(e)return Re.test(e)?Ue(e):ze.test(e)?We(e):Ge(e)},Ke=(e,t,n)=>{if(!e||!t?.valid)return X[n];if(n!==`hex`)return t?.[n]||X[n];if(!t.hex.startsWith(`#`))try{return`#${T.default.keyword.hex(t.hex)}`}catch{return X.hex}let r=t.hex.match(Be);if(!r)return Y.test(t.hex)?t.hex:X.hex;let[i,a,o]=r[1].split(``);return`#${i}${i}${a}${a}${o}${o}`},qe=(e,t)=>{let[n,r]=(0,C.useState)(e||``),[i,a]=(0,C.useState)(()=>Z(n)),[o,s]=(0,C.useState)(i?.colorSpace||`hex`);return(0,C.useEffect)(()=>{let t=e||``,n=Z(t);r(t),a(n),s(n?.colorSpace||`hex`)},[e]),{value:n,realValue:(0,C.useMemo)(()=>Ke(n,i,o).toLowerCase(),[n,i,o]),updateValue:(0,C.useCallback)(e=>{let n=Z(e),i=n?.value||e||``;r(i),i===``&&(a(void 0),t(void 0)),n&&(a(n),s(n.colorSpace),t(n.value))},[t]),color:i,colorSpace:o,cycleColorSpace:(0,C.useCallback)(()=>{let e=J[(J.indexOf(o)+1)%J.length];s(e);let n=i?.[e]||``;r(n),t(n)},[i,o,t])}},Q=e=>e.replace(/\s*/,``).toLowerCase(),Je=(e,t,n,r=27)=>{let[i,a]=(0,C.useState)(t?.valid?[t]:[]);(0,C.useEffect)(()=>{t===void 0&&a([])},[t]);let o=(0,C.useMemo)(()=>{let t=(e||[]).map(e=>typeof e==`string`?Z(e):e.title?{...Z(e.color),keyword:e.title}:Z(e.color)).concat(i).filter(Boolean);if(r===0||r===1/0)return t;let n=Number.isInteger(r)&&r>0?r:27;return t.slice(-n)},[e,i,r]);return{presets:o,addPreset:(0,C.useCallback)(e=>{e?.valid&&(o.some(t=>t&&t[n]&&Q(t[n]||``)===Q(e[n]||``))||a(t=>t.concat(e)))},[n,o])}},$=({name:e,storyId:t,value:n,onChange:r,onFocus:i,onBlur:a,presetColors:o,maxPresetColors:c,startOpen:l=!1,argType:u})=>{let{value:d,realValue:m,updateValue:h,color:g,colorSpace:_,cycleColorSpace:te}=qe(n,(0,C.useCallback)(ee(r,200),[r])),{presets:v,addPreset:y}=Je(o??[],g,_,c),b=Ve[_],x=!!u?.table?.readonly,S=f(e,t);return C.createElement(Oe,null,C.createElement(`label`,{htmlFor:S,className:`sb-sr-only`},e),C.createElement(Ne,{id:S,value:d,onChange:e=>h(e.target.value),onFocus:e=>e.target.select(),readOnly:x,placeholder:`Choose color...`}),C.createElement(s,{ariaLabel:`Color picker`,defaultVisible:l,visible:x?!1:void 0,onVisibleChange:()=>g&&y(g),popover:C.createElement(ke,null,C.createElement(b,{color:m===`transparent`?`#000000`:m,onChange:h,onFocus:i,onBlur:a}),v.length>0&&C.createElement(Ae,null,v.map((e,t)=>C.createElement(Me,{key:`${e?.value||t}-${t}`,variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Pick this color`,tooltip:e?.keyword||e?.value||``,value:e?.value||``,selected:!!(g&&e&&e[_]&&Q(e[_]||``)===Q(g[_])),onClick:()=>e&&h(e.value||``)}))))},C.createElement(Pe,{variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Open color picker`,value:m,style:{margin:4},disabled:x})),d?C.createElement(Fe,{variant:`ghost`,padding:`small`,size:`small`,ariaLabel:`Cycle through color spaces`,disabled:x,onClick:x?void 0:te},C.createElement(p,null)):null)},Ye=$}))();export{$ as ColorControl,Ye as default};
|