@ryuzaki13/react-foundation-ui 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advanced-search/index.js +3 -3
- package/dist/base-table/index.js +1 -1
- package/dist/chunks/{TextEditorLexicalClient-B1kQnKrU.js → TextEditorLexicalClient-bDEyimUa.js} +2 -2
- package/dist/chunks/{TextEditorLexicalClient-B1kQnKrU.js.map → TextEditorLexicalClient-bDEyimUa.js.map} +1 -1
- package/dist/chunks/{base-table-DghNJ6ss.js → base-table-BXKFSgIk.js} +2 -2
- package/dist/chunks/{base-table-DghNJ6ss.js.map → base-table-BXKFSgIk.js.map} +1 -1
- package/dist/chunks/{misc-ClXJygTj.js → misc-DIF5h9ba.js} +71 -76
- package/dist/chunks/misc-DIF5h9ba.js.map +1 -0
- package/dist/chunks/{modal-QGp5CjB9.js → modal-Cll8YZ7b.js} +2 -2
- package/dist/chunks/{modal-QGp5CjB9.js.map → modal-Cll8YZ7b.js.map} +1 -1
- package/dist/chunks/{table-tBQ_FOs3.js → table-BdpMzhLH.js} +2 -2
- package/dist/chunks/{table-tBQ_FOs3.js.map → table-BdpMzhLH.js.map} +1 -1
- package/dist/expandable-action-panel/index.js +1 -1
- package/dist/image/index.js +1 -1
- package/dist/list/index.js +1 -1
- package/dist/misc/AnimatedLogo.d.ts +10 -1
- package/dist/misc/AnimatedLogo.d.ts.map +1 -1
- package/dist/misc/AnimatedLogoSegment.d.ts +12 -0
- package/dist/misc/AnimatedLogoSegment.d.ts.map +1 -0
- package/dist/misc/LoadingMessage.d.ts +6 -4
- package/dist/misc/LoadingMessage.d.ts.map +1 -1
- package/dist/misc/index.d.ts +1 -0
- package/dist/misc/index.d.ts.map +1 -1
- package/dist/misc/index.js +2 -2
- package/dist/modal/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/table/index.js +1 -1
- package/dist/tabs/index.js +1 -1
- package/dist/tag-input/TagInput.d.ts +40 -0
- package/dist/tag-input/TagInput.d.ts.map +1 -0
- package/dist/tag-input/index.d.ts +2 -0
- package/dist/tag-input/index.d.ts.map +1 -0
- package/dist/tag-input/index.js +180 -0
- package/dist/tag-input/index.js.map +1 -0
- package/dist/tag-input/lib/joinTagInputAriaIds.d.ts +3 -0
- package/dist/tag-input/lib/joinTagInputAriaIds.d.ts.map +1 -0
- package/dist/tag-input/lib/tagInputDefaults.d.ts +7 -0
- package/dist/tag-input/lib/tagInputDefaults.d.ts.map +1 -0
- package/dist/text-editor/index.js +2 -2
- package/dist/tree-table/index.js +1 -1
- package/package.json +5 -1
- package/src/styles/_base.scss +0 -62
- package/storybook-static/assets/{Badge-Cg2dYSwP.js → Badge-Dk1ppt6h.js} +1 -1
- package/storybook-static/assets/{Badge.stories-BYlun-i3.js → Badge.stories-DGed-OBQ.js} +1 -1
- package/storybook-static/assets/{Button-D4_1YUId.js → Button-BrdeQlDt.js} +1 -1
- package/storybook-static/assets/{Button-DHUm4dn9.js → Button-c4nDxtrg.js} +1 -1
- package/storybook-static/assets/{Button.stories-DJVvYNle.js → Button.stories-CYjvIvUW.js} +1 -1
- package/storybook-static/assets/{CheckBox-Cn0oEy-0.js → CheckBox-6Qr3jWMy.js} +1 -1
- package/storybook-static/assets/{CheckBox-BMCI3jcJ.js → CheckBox-rqQjSYV-.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-DNVyyKgk.js → CheckBox.stories-Q78_xCB-.js} +1 -1
- package/storybook-static/assets/{Color-KMSTOMOX-CogEIqTq.js → Color-KMSTOMOX-BMBFTpCU.js} +1 -1
- package/storybook-static/assets/{ContextMenu-GtVpIKrx.js → ContextMenu-Dy6qjxlr.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-BxiJt6xb.js → ContextMenu.stories-ArVPg2Iz.js} +1 -1
- package/storybook-static/assets/{DateInput-JyFcSSzH.js → DateInput-Dk1l_hxJ.js} +1 -1
- package/storybook-static/assets/{DateInput-D_BjVnON.js → DateInput-eu7DXgSU.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BXamFqSK.js → DateInput.stories-GCltuReT.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CnBjzwP0.js → DateRangePresetSelect-2dHNAnUX.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-5HW0LlXM.js → DateRangePresetSelect-aiAJs_u-.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-BzM9q06v.js → DateRangePresetSelect.stories-BXPIK_Co.js} +1 -1
- package/storybook-static/assets/{Detail-CVs0NkTq.js → Detail-C-0qKqgn.js} +1 -1
- package/storybook-static/assets/{Detail.stories-BDUK-3CV.js → Detail.stories-BpD2YoZq.js} +1 -1
- package/storybook-static/assets/{Dialog-D05c6OL5.js → Dialog-BHOqDS4r.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CK0kiLGo.js → Dialog.stories-DbY2IVcJ.js} +1 -1
- package/storybook-static/assets/{Disclosure-A8bS_6y5.js → Disclosure-BIS573Xf.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-mol8jRhI.js → Disclosure.stories-BEXgpOqT.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-Dxrzjrhe.js → DocsRenderer-JROSPFPF-DBLxlIku.js} +2 -2
- package/storybook-static/assets/{DropZone-CkNtivw_.js → DropZone-DCOH76_B.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-BCj0fFjw.js → DropZone.stories-D1SI6gcY.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-CG8U1WuI.js → DropdownMenu-mb1Hg5Gl.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-CRind3Wl.js → ExpandableActionPanel.stories-CXJMi0D0.js} +1 -1
- package/storybook-static/assets/{Flex-D1vaZnA1.js → Flex-D1ZBJLmP.js} +1 -1
- package/storybook-static/assets/{Flex-DSMWhdL8.js → Flex-aMhUlmFA.js} +1 -1
- package/storybook-static/assets/{Flex.stories-EJ-TT3O-.js → Flex.stories-Cq9hTA2s.js} +1 -1
- package/storybook-static/assets/{Grid-BVrIwkQn.js → Grid-D4xblGva.js} +1 -1
- package/storybook-static/assets/{Grid-DkHUHR2b.js → Grid-DrwSe074.js} +1 -1
- package/storybook-static/assets/{Grid.stories-Cb1KWhSo.js → Grid.stories-CsQlxLGT.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-B_Ff5EhO.js → ImageCropper.stories-Da0fJQ1n.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-BeYmvtFu.js → ImageRenderer-dXWklz9J.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-_U6PQ5s0.js → ImageRenderer.stories-C2l796Hd.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-Bh17T4cZ.js → ImageView.stories-Cee_V0zr.js} +1 -1
- package/storybook-static/assets/{Input-DqkpneO3.js → Input-B6UklXwb.js} +1 -1
- package/storybook-static/assets/{Input-UE0kbOUc.js → Input-DoTXagjB.js} +1 -1
- package/storybook-static/assets/{Input.stories-CFEO0SLd.js → Input.stories-mPAKrIP1.js} +1 -1
- package/storybook-static/assets/{InputDateTime-RvoVvU9H.js → InputDateTime-BgIJNCpv.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-UCTcJOk4.js → InputDateTime.stories-Ck0MCRBJ.js} +1 -1
- package/storybook-static/assets/{InputFile-Cwb5Aung.js → InputFile-BZqKG2Zr.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-Ckuxi-zr.js → InputFile.stories-QbTuArh1.js} +1 -1
- package/storybook-static/assets/{InputFiles-C89x8KHV.js → InputFiles-BUoDhUef.js} +1 -1
- package/storybook-static/assets/{InputFiles-C9B1dD_R.js → InputFiles-ChhwyB9P.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-7gqx5B4Y.js → InputFiles.stories-PD0pr8y6.js} +1 -1
- package/storybook-static/assets/{InputImage-BXBIgcz5.js → InputImage-YxBujSop.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CcJ3kjDY.js → InputImage.stories-CHjyI709.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-hTNxtlTj.js → LayoutPicker-DJT0cL8d.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-c8zR5DnT.js → LayoutPicker.stories-DvTvYmfw.js} +1 -1
- package/storybook-static/assets/{Listbox-DUIb79f5.js → Listbox-D7w7HJNg.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-CY3MwnZ5.js → Listbox.stories-D4EMWR6l.js} +1 -1
- package/storybook-static/assets/{Modal-CPseWXNJ.js → Modal-BCn0aKBf.js} +1 -1
- package/storybook-static/assets/{Modal.stories-Cxw2ZRgQ.js → Modal.stories-BgnMPuDy.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Bt3N0rgp.js → MultiSelect-CZW1VSbD.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Bf5YxYfN.js → MultiSelect-D7N8euwu.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-ajKJ1wl2.js → MultiSelect.stories-DV9nyDoE.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-DmAk6K6A.js → NotificationsHost-DJILaEyi.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-C3EicsDL.js → NotificationsHost.stories-DlO0kPbm.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-BpSU_AG9.js → ODataMultiSelect-C-DKYFLx.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-CLEKhMDU.js → ODataMultiSelect.stories-DypA5OPM.js} +1 -1
- package/storybook-static/assets/{ODataSelect-W-T83U4u.js → ODataSelect-ANgknc8h.js} +1 -1
- package/storybook-static/assets/{ODataSelect-naz-8rqO.js → ODataSelect-CMrLfCwp.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-BlwRaCjm.js → ODataSelect.stories-icXU3Kk-.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-BF3VGPGC.js → ODataTreeMultiSelect-C6yg6DFE.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-DXFNpGVh.js → ODataTreeMultiSelect.stories-CT_tBJph.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-KkeyBQOB.js → ODataTreeSelect-hiY9TK6F.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-B3LS8B-K.js → ODataTreeSelect.stories-DPNG2-gB.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-sqbTEh2-.js → PeriodSelect-5CQZq007.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-D0o5c-aW.js → PeriodSelect.stories-DuwM__eX.js} +1 -1
- package/storybook-static/assets/{Popover-BeVnS58h.js → Popover-BuB6NaNL.js} +1 -1
- package/storybook-static/assets/{Popover.stories-Bx7wB6zP.js → Popover.stories-DNHTB9O2.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DMJx6huf.js → PresetRangeDateInput-C6ke1QJN.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-CGHogk29.js → PresetRangeDateInput.stories-BiFR6FF_.js} +1 -1
- package/storybook-static/assets/{RadioButton-DuYV7oLX.js → RadioButton-bmKQ4B96.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-BzEefd1p.js → RadioButton.stories-CZatWIEO.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DIymc9Lq.js → RadioGroup-Vnr3qZKk.js} +1 -1
- package/storybook-static/assets/{RadioGroup-C0ZMTtyS.js → RadioGroup-diPPm8OV.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-DJhjmjZ3.js → RadioGroup.stories-BY_ORcvQ.js} +1 -1
- package/storybook-static/assets/{Select-B_oN8tGy.js → Select-BxK9yj6_.js} +1 -1
- package/storybook-static/assets/{Select-DTrqfSb7.js → Select-Cq66yRYB.js} +1 -1
- package/storybook-static/assets/{Select.stories-CPQaxErx.js → Select.stories-CevvmTWz.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-CBu-Z8q9.js → SelectOptionContent-C1-duJ6s.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-B8vNCKe6.js → SerializableSelect-C6jj7wLf.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-Cn6FnANb.js → SerializableSelect-CnwfEnur.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-B0gNlX9R.js → SerializableSelect.stories-DOTdXeIP.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-HdoxMDg5.js → SingleDateTimeInput-BtSG1SZF.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BWTJvkfh.js → SingleDateTimeInput.stories-CSFUpLfK.js} +1 -1
- package/storybook-static/assets/{Slider-B9zsG5_o.js → Slider-pb7TgPmP.js} +1 -1
- package/storybook-static/assets/{Slider.stories-B4R-Ojy6.js → Slider.stories-Cj9sU7k1.js} +1 -1
- package/storybook-static/assets/{SliderInput-ecY-t6ii.js → SliderInput-Dp4r4RqZ.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-Bq1WNiBu.js → SliderInput.stories-DKV9C_mb.js} +1 -1
- package/storybook-static/assets/{Sortable-BrcZpWjl.js → Sortable-BbVzA3mH.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-C9APYJGM.js → Sortable.stories-nttQ0wQV.js} +1 -1
- package/storybook-static/assets/{Splitter-zcD_78Cs.js → Splitter-DQip0vEb.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-Bh3dux3i.js → Splitter.stories-B7IdmITM.js} +1 -1
- package/storybook-static/assets/{StateSelect--2hZlmsM.js → StateSelect-BZeQfOZk.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-Cel6i2fC.js → StateSelect.stories-Cia0oYUX.js} +1 -1
- package/storybook-static/assets/{Switch-QlyZfEqf.js → Switch-DzxseHUx.js} +1 -1
- package/storybook-static/assets/{Switch.stories-BB3h3c5K.js → Switch.stories-BVAIn4yd.js} +1 -1
- package/storybook-static/assets/{Table-qUmGsDT8.js → Table-lzcaRxDg.js} +1 -1
- package/storybook-static/assets/{Table.stories-CYPyFV0A.js → Table.stories-sckp-lho.js} +1 -1
- package/storybook-static/assets/{Tabs-CyloJDHY.js → Tabs-DyBBFEsD.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-DSl3G7Ze.js → Tabs.stories-C6-sZs4H.js} +1 -1
- package/storybook-static/assets/TagInput-LeQAhDgs.css +1 -0
- package/storybook-static/assets/TagInput.stories-iI1hZ8CY.js +18 -0
- package/storybook-static/assets/{Textarea-BwY6pr1A.js → Textarea-D1fEct22.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-DNFuMzL8.js → Textarea.stories-ByJH2uhT.js} +1 -1
- package/storybook-static/assets/{TimePanel-DfD2qCKU.js → TimePanel-B5c9MfmC.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-CtKmIrYQ.js → TimePanel.stories-DBgXVhz1.js} +1 -1
- package/storybook-static/assets/{Toggle-9OU_0OxQ.js → Toggle-CHx3ZZfu.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-gX7GAhf5.js → Toggle.stories-g3Eq8oVl.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-xleloE3L.js → TreeMultiSelect-CrKusouJ.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-D6FZp3ol.js → TreeMultiSelect-T05Sk9sh.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-TNrQi3tC.js → TreeMultiSelect.stories-C85O7gDN.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-CKrFw1xA.js → TreePickerBase-VJSaTBqo.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DK87hY70.js → TreeSelect-DQmAaKsJ.js} +1 -1
- package/storybook-static/assets/{TreeSelect-KbC_b2h7.js → TreeSelect-Dw-svVvg.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-Dv24g8uv.js → TreeSelect.stories-Bqv2L08v.js} +1 -1
- package/storybook-static/assets/{TreeTable-DNyOKFIY.js → TreeTable-JJK6sE1o.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-g84YOpcn.js → TreeTable.stories-yOu-SM17.js} +1 -1
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-DTYeAnYl.js → WithTooltip-7X4HQR7L-Cib98jGG.js} +1 -1
- package/storybook-static/assets/{base-table-ChlvVz_l.js → base-table-BbenC81q.js} +1 -1
- package/storybook-static/assets/{blocks-nvFBZnmF.js → blocks-DsN3hykK.js} +6 -6
- package/storybook-static/assets/{button-DxVxb_AQ.js → button-C8nkqC6f.js} +1 -1
- package/storybook-static/assets/{check-box-b5_2dw6S.js → check-box-BRod99sY.js} +1 -1
- package/storybook-static/assets/{chunk-3LY4VQVK-HxSHgfWj.js → chunk-3LY4VQVK-DSSlp6en.js} +1 -1
- package/storybook-static/assets/{chunk-LITCR56V-ojcamuDf.js → chunk-LITCR56V-CB95AMSh.js} +1 -1
- package/storybook-static/assets/{contextMenu-BOr3FdXR.js → contextMenu-iKy1R_pJ.js} +1 -1
- package/storybook-static/assets/{error-gSnleOdo.js → error-ChmbU9Ma.js} +1 -1
- package/storybook-static/assets/{flex-nhxot7pG.js → flex-CMA-ZjxB.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-DBHno7PC.js → floating-ui.react-BpBaLM_G.js} +1 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-tZc7M3Ad.js +1 -0
- package/storybook-static/assets/{formatters-Cnj-VWHB.js → formatters-C0d3JoZj.js} +1 -1
- package/storybook-static/assets/grid-Ck5-5Szv.js +1 -0
- package/storybook-static/assets/{hooks-DOtYpswn.js → hooks-BpEcTBvi.js} +1 -1
- package/storybook-static/assets/{iframe-CELq1yHK.js → iframe-D90hKkIJ.js} +4 -4
- package/storybook-static/assets/{input-Bq20EuR5.js → input-D77vjPVL.js} +1 -1
- package/storybook-static/assets/{lucide-react-DaLrYAcN.js → lucide-react-ClGevkpS.js} +1 -1
- package/storybook-static/assets/{mdx-react-shim-BUeZ3JmE.js → mdx-react-shim-CdXPOrRW.js} +1 -1
- package/storybook-static/assets/{media-7gU-mKPx.js → media-C4dafSHo.js} +1 -1
- package/storybook-static/assets/misc-D9dXokhF.css +1 -0
- package/storybook-static/assets/misc-yRJvnOkX.js +5 -0
- package/storybook-static/assets/{notifications-GJTI8j3c.js → notifications-Dt8NSgnT.js} +1 -1
- package/storybook-static/assets/{odata-gGnv74mq.js → odata-DQSm2H7O.js} +1 -1
- package/storybook-static/assets/odata-service-CMTV9-cO.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-D6PpTODP.js → odataStoryFixtures-D0p0XtmS.js} +1 -1
- package/storybook-static/assets/{picker-xfAX_wju.js → picker-9SOfvJPJ.js} +1 -1
- package/storybook-static/assets/{popover-CIF-ZVaN.js → popover-Dph7wJ1_.js} +1 -1
- package/storybook-static/assets/{preset-select-CiuJ-Yp0.js → preset-select-mubmWRO9.js} +1 -1
- package/storybook-static/assets/{react-18-BRX9FbGe.js → react-18-CSg0VXTL.js} +1 -1
- package/storybook-static/assets/{react-A5qSDxGl.js → react-Cr3aZrbF.js} +1 -1
- package/storybook-static/assets/{react-dom-BRUL6UMQ.js → react-dom-Iu9X9_7I.js} +1 -1
- package/storybook-static/assets/select-DYXb71nn.js +1 -0
- package/storybook-static/assets/{slider-PVNNrxhZ.js → slider-C8Udy6I7.js} +1 -1
- package/storybook-static/assets/{sortable-DlbQfnOR.js → sortable-xt2HCdf-.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-AHhtM7MH.js → syntaxhighlighter-RTCFPKCB-4Ttp-ccw.js} +1 -1
- package/storybook-static/assets/{text-DyVJvCm8.js → text-CwWM1WCX.js} +1 -1
- package/storybook-static/assets/{theming-ClhUCD3-.js → theming--foXdFDq.js} +1 -1
- package/storybook-static/assets/ui-BJnukgBU.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-BonuBTfa.js → useODataSelectBase-C7f1zxWc.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DwO49vDk.js → useODataTreeData-7hwK6Byp.js} +1 -1
- package/storybook-static/assets/{utils-V012ES4W.js → utils-Bg8QclQy.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/dist/chunks/misc-ClXJygTj.js.map +0 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-B5zfJybp.js +0 -1
- package/storybook-static/assets/grid-B-H7CtbE.js +0 -1
- package/storybook-static/assets/misc-BsWm_Gl7.js +0 -5
- package/storybook-static/assets/misc-CerLA5Xh.css +0 -1
- package/storybook-static/assets/odata-service-Bz6VElCd.js +0 -1
- package/storybook-static/assets/select-CbSahuRN.js +0 -1
- package/storybook-static/assets/ui-DvOsIS0A.js +0 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { t as e } from "../chunks/ui.module-BisoTevy.js";
|
|
2
|
+
import { l as t, s as n } from "../chunks/input-CZLUUggm.js";
|
|
3
|
+
import { useImperativeHandle as r, useRef as i, useState as a } from "react";
|
|
4
|
+
import { cn as o } from "@ryuzaki13/react-foundation-lib/utils";
|
|
5
|
+
import { XIcon as s } from "lucide-react";
|
|
6
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
7
|
+
//#region src/tag-input/lib/joinTagInputAriaIds.ts
|
|
8
|
+
function u(...e) {
|
|
9
|
+
return e.filter(Boolean).join(" ") || void 0;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/tag-input/lib/tagInputDefaults.ts
|
|
13
|
+
function ee(e) {
|
|
14
|
+
return e.trim();
|
|
15
|
+
}
|
|
16
|
+
function te(e) {
|
|
17
|
+
return e;
|
|
18
|
+
}
|
|
19
|
+
function d(e) {
|
|
20
|
+
return `Удалить тег «${e}»`;
|
|
21
|
+
}
|
|
22
|
+
var f = {
|
|
23
|
+
control: "AoFB3K",
|
|
24
|
+
tagList: "PvaUEA",
|
|
25
|
+
tag: "FZ-xEM",
|
|
26
|
+
tagText: "-RCqfG",
|
|
27
|
+
removeButton: "ggY643",
|
|
28
|
+
input: "hiZq-y"
|
|
29
|
+
}, p = /[,\r\n]/, m = /[,\r\n]+/;
|
|
30
|
+
function h({ ref: h, value: g, onChange: _, label: v, description: y, placeholder: ne, size: b, disabled: x, readOnly: S = !1, error: C, onClearError: w, maxTags: T, normalizeTag: E = ee, getTagKey: D = te, addOnBlur: O = !0, getRemoveButtonAriaLabel: k = d, tokensAriaLabel: re = "Добавленные теги", inputClassName: ie, className: ae, id: oe, name: A, form: j, required: se, maxLength: M, onKeyDown: ce, onPaste: N, onBlur: P, onCompositionStart: F, onCompositionEnd: I, "aria-describedby": L, "aria-labelledby": R, ...z }) {
|
|
31
|
+
let B = i(null), V = i(null), H = i(!1), [U, W] = a(""), [le, G] = a(""), { controlId: K, labelId: q, descriptionId: ue, errorId: de, describedBy: fe } = t({
|
|
32
|
+
id: oe,
|
|
33
|
+
hasLabel: v != null,
|
|
34
|
+
hasDescription: !!y,
|
|
35
|
+
hasError: !!C
|
|
36
|
+
}), J = T === void 0 ? Infinity : Math.max(0, Math.floor(T)), Y = x || S, X = u(fe, L), pe = u(q, R);
|
|
37
|
+
r(h, () => {
|
|
38
|
+
let e = B.current;
|
|
39
|
+
if (!e) throw Error("TagInput: внутренний input недоступен при создании imperative handle.");
|
|
40
|
+
return e;
|
|
41
|
+
}, []);
|
|
42
|
+
let Z = (e) => {
|
|
43
|
+
if (Y) return;
|
|
44
|
+
w?.();
|
|
45
|
+
let t = [...g], n = new Set(t.map((e) => D(e))), r = [], i = 0, a = !1;
|
|
46
|
+
for (let o of e) {
|
|
47
|
+
let e = E(o);
|
|
48
|
+
if (!e) continue;
|
|
49
|
+
if (M !== void 0 && e.length > M) {
|
|
50
|
+
G(`Тег «${e}» длиннее допустимого значения.`);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
let s = D(e);
|
|
54
|
+
if (n.has(s)) {
|
|
55
|
+
i += 1;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (t.length >= J) {
|
|
59
|
+
a = !0;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
n.add(s), t.push(e), r.push(e);
|
|
63
|
+
}
|
|
64
|
+
r.length > 0 ? (_(t), G(r.length === 1 ? `Добавлен тег «${r[0]}».` : `Добавлено тегов: ${r.length}.`)) : a ? G(`Достигнуто максимальное количество тегов: ${J}.`) : i > 0 && G("Такой тег уже добавлен.");
|
|
65
|
+
}, Q = () => U ? (Z(U.split(m)), W(""), !0) : !1, $ = (e) => {
|
|
66
|
+
if (Y) return;
|
|
67
|
+
let t = g[e];
|
|
68
|
+
t !== void 0 && (_(g.filter((t, n) => n !== e)), w?.(), G(`Удалён тег «${t}».`), B.current?.focus());
|
|
69
|
+
}, me = (e) => {
|
|
70
|
+
if (ce?.(e), !(e.defaultPrevented || e.nativeEvent.isComposing || H.current || Y)) {
|
|
71
|
+
if (e.key === "Enter" || e.key === ",") {
|
|
72
|
+
(Q() || e.key === ",") && e.preventDefault();
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
e.key === "Backspace" && U.length === 0 && g.length > 0 && (e.preventDefault(), $(g.length - 1));
|
|
76
|
+
}
|
|
77
|
+
}, he = (e) => {
|
|
78
|
+
if (N?.(e), e.defaultPrevented || Y) return;
|
|
79
|
+
let t = e.clipboardData.getData("text");
|
|
80
|
+
if (!p.test(t)) return;
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
let n = e.currentTarget.selectionStart ?? U.length, r = e.currentTarget.selectionEnd ?? n, i = `${U.slice(0, n)}${t}${U.slice(r)}`;
|
|
83
|
+
Z(i.split(m)), W("");
|
|
84
|
+
};
|
|
85
|
+
return /* @__PURE__ */ l(n, {
|
|
86
|
+
label: v,
|
|
87
|
+
description: y,
|
|
88
|
+
disabled: x,
|
|
89
|
+
className: ae,
|
|
90
|
+
size: b,
|
|
91
|
+
error: C,
|
|
92
|
+
controlId: K,
|
|
93
|
+
labelId: q,
|
|
94
|
+
descriptionId: ue,
|
|
95
|
+
errorId: de,
|
|
96
|
+
children: [/* @__PURE__ */ l("div", {
|
|
97
|
+
ref: V,
|
|
98
|
+
className: o(e.uiControl, C && e.invalid, f.control),
|
|
99
|
+
"data-disabled": x ? "" : void 0,
|
|
100
|
+
"data-readonly": S ? "" : void 0,
|
|
101
|
+
"data-invalid": C ? "" : void 0,
|
|
102
|
+
onClick: () => B.current?.focus(),
|
|
103
|
+
children: [
|
|
104
|
+
g.length > 0 && /* @__PURE__ */ c("ul", {
|
|
105
|
+
className: f.tagList,
|
|
106
|
+
"aria-label": re,
|
|
107
|
+
children: g.map((e, t) => /* @__PURE__ */ l("li", {
|
|
108
|
+
className: f.tag,
|
|
109
|
+
children: [/* @__PURE__ */ c("span", {
|
|
110
|
+
className: f.tagText,
|
|
111
|
+
children: e
|
|
112
|
+
}), !Y && /* @__PURE__ */ c("button", {
|
|
113
|
+
type: "button",
|
|
114
|
+
className: f.removeButton,
|
|
115
|
+
onClick: (e) => {
|
|
116
|
+
e.stopPropagation(), $(t);
|
|
117
|
+
},
|
|
118
|
+
"aria-label": k(e, t),
|
|
119
|
+
children: /* @__PURE__ */ c(s, { "aria-hidden": "true" })
|
|
120
|
+
})]
|
|
121
|
+
}, `${D(e)}-${t}`))
|
|
122
|
+
}),
|
|
123
|
+
/* @__PURE__ */ c("input", {
|
|
124
|
+
...z,
|
|
125
|
+
ref: B,
|
|
126
|
+
id: K,
|
|
127
|
+
form: j,
|
|
128
|
+
disabled: x,
|
|
129
|
+
readOnly: S,
|
|
130
|
+
required: se && g.length === 0,
|
|
131
|
+
maxLength: M,
|
|
132
|
+
value: U,
|
|
133
|
+
placeholder: g.length === 0 ? ne : void 0,
|
|
134
|
+
"aria-invalid": !!C || void 0,
|
|
135
|
+
"aria-labelledby": pe,
|
|
136
|
+
"aria-describedby": X,
|
|
137
|
+
className: o(f.input, ie),
|
|
138
|
+
onChange: (e) => {
|
|
139
|
+
let t = e.target.value, n = p.test(t);
|
|
140
|
+
if (H.current) W(t);
|
|
141
|
+
else if (n) {
|
|
142
|
+
let e = t.split(m), n = p.test(t.at(-1) ?? "") ? "" : e.pop() ?? "";
|
|
143
|
+
Z(e), W(n);
|
|
144
|
+
} else W(t);
|
|
145
|
+
(H.current || !n) && w?.();
|
|
146
|
+
},
|
|
147
|
+
onKeyDown: me,
|
|
148
|
+
onPaste: he,
|
|
149
|
+
onCompositionStart: (e) => {
|
|
150
|
+
H.current = !0, F?.(e);
|
|
151
|
+
},
|
|
152
|
+
onCompositionEnd: (e) => {
|
|
153
|
+
H.current = !1, I?.(e);
|
|
154
|
+
},
|
|
155
|
+
onBlur: (e) => {
|
|
156
|
+
P?.(e);
|
|
157
|
+
let t = e.relatedTarget, n = t instanceof Node && V.current?.contains(t);
|
|
158
|
+
!e.defaultPrevented && !n && O && !Y && Q();
|
|
159
|
+
}
|
|
160
|
+
}),
|
|
161
|
+
A && g.map((e, t) => /* @__PURE__ */ c("input", {
|
|
162
|
+
type: "hidden",
|
|
163
|
+
name: A,
|
|
164
|
+
value: e,
|
|
165
|
+
form: j,
|
|
166
|
+
disabled: x
|
|
167
|
+
}, `${D(e)}-${t}`))
|
|
168
|
+
]
|
|
169
|
+
}), /* @__PURE__ */ c("span", {
|
|
170
|
+
className: "visuallyHidden",
|
|
171
|
+
"aria-live": "polite",
|
|
172
|
+
"aria-atomic": "true",
|
|
173
|
+
children: le
|
|
174
|
+
})]
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
//#endregion
|
|
178
|
+
export { h as TagInput };
|
|
179
|
+
|
|
180
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/tag-input/lib/joinTagInputAriaIds.ts","../../src/tag-input/lib/tagInputDefaults.ts","../../src/tag-input/TagInput.module.scss","../../src/tag-input/TagInput.tsx"],"sourcesContent":["/** Объединяет сгенерированные и пользовательские ARIA ID, исключая пустые части. */\nexport function joinTagInputAriaIds(...ids: Array<string | undefined>) {\n\treturn ids.filter(Boolean).join(\" \") || undefined;\n}\n","/** Удаляет внешние пробелы перед сохранением созданного тега. */\nexport function defaultNormalizeTag(value: string) {\n\treturn value.trim();\n}\n\n/** Сохраняет регистр и использует точное значение как ключ сравнения по умолчанию. */\nexport function defaultGetTagKey(value: string) {\n\treturn value;\n}\n\n/** Формирует доступное имя действия удаления с конкретным значением тега. */\nexport function defaultGetRemoveButtonAriaLabel(value: string) {\n\treturn `Удалить тег «${value}»`;\n}\n","@use \"@/styles/mixins\" as *;\n\n.control {\n\tmin-height: var(--control-height);\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tgap: var(--space-xs);\n\tpadding: calc(var(--space-xs) / 2) var(--space-sm);\n\tcursor: text;\n\n\t--ui-color: var(--content-0);\n\t--ui-color-hover: var(--content-0);\n\t--ui-color-active: var(--content-0);\n\n\t&[data-readonly] {\n\t\tcursor: default;\n\t\tbackground-color: var(--surface-1);\n\t}\n}\n\n.tagList {\n\tmin-width: 0;\n\tmax-width: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\tflex: 0 1 auto;\n\tflex-wrap: wrap;\n\tgap: var(--space-xs);\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.tag {\n\t@include ui-static-surface;\n\n\t--ui-color: var(--content-0);\n\t--ui-background: var(--surface-2);\n\t--ui-border-color: var(--border-0);\n\n\tmin-width: 0;\n\tmax-width: 100%;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tpadding: calc(var(--space-xs) / 2) var(--space-xs);\n\tfont-size: var(--font-size-sm);\n}\n\n.tagText {\n\tmin-width: 0;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.removeButton {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\twidth: 1.25em;\n\theight: 1.25em;\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: var(--radius-xs);\n\tbackground: transparent;\n\tcolor: inherit;\n\ttransition:\n\t\tcolor var(--transition-fast) ease,\n\t\tbackground-color var(--transition-fast) ease;\n\n\t&:hover {\n\t\tbackground-color: var(--status-error-soft);\n\t\tcolor: var(--status-error-text);\n\t}\n\n\t&:focus-visible {\n\t\t@include focusVisible;\n\t}\n\n\tsvg {\n\t\tdisplay: block;\n\t}\n}\n\n.input {\n\tmin-width: 8ch;\n\tmin-height: calc(var(--control-height) - var(--space-xs) - (var(--border-width) * 2));\n\tflex: 1 1 8rem;\n\tpadding: 0;\n\tborder: none;\n\toutline: none;\n\tbackground: transparent;\n\tcolor: inherit;\n\tfont: inherit;\n\n\t&::placeholder {\n\t\tcolor: var(--content-2);\n\t}\n\n\t&:read-only {\n\t\tcursor: default;\n\t}\n}\n","import {\n\ttype ClipboardEvent,\n\ttype CompositionEvent,\n\ttype InputHTMLAttributes,\n\ttype KeyboardEvent,\n\ttype Ref,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState\n} from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { XIcon } from \"lucide-react\";\n\nimport { InputUI, useInputFieldIds } from \"../input\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport { joinTagInputAriaIds } from \"./lib/joinTagInputAriaIds\";\nimport { defaultGetRemoveButtonAriaLabel, defaultGetTagKey, defaultNormalizeTag } from \"./lib/tagInputDefaults\";\nimport styles from \"./TagInput.module.scss\";\n\nimport type { UiBaseProps } from \"../types\";\n\nconst TAG_DELIMITER_PATTERN = /[,\\r\\n]/;\nconst TAG_DELIMITER_SPLIT_PATTERN = /[,\\r\\n]+/;\n\nexport interface TagInputProps\n\textends\n\t\tOmit<InputHTMLAttributes<HTMLInputElement>, \"children\" | \"defaultValue\" | \"disabled\" | \"onChange\" | \"readOnly\" | \"size\" | \"value\">,\n\t\tUiBaseProps<string[], readonly string[]> {\n\t/** Ссылка на внутренний нативный `input`, передаваемая напрямую как React 19 prop. */\n\tref?: Ref<HTMLInputElement>;\n\n\t/** Сообщение валидации, связанное с полем через `aria-describedby`. */\n\terror?: string;\n\n\t/** Сбрасывает внешнюю ошибку после изменения черновика или набора тегов. */\n\tonClearError?: () => void;\n\n\t/** Запрещает изменение набора тегов, сохраняя возможность выделять и копировать текст. */\n\treadOnly?: boolean;\n\n\t/** Максимальное количество тегов. Отсутствие значения не ограничивает набор. */\n\tmaxTags?: number;\n\n\t/**\n\t * Нормализует введённое значение перед проверкой дубликата и добавлением.\n\t * По умолчанию удаляет пробелы в начале и конце.\n\t */\n\tnormalizeTag?: (value: string) => string;\n\n\t/**\n\t * Возвращает ключ сравнения тегов. Позволяет, например, запретить дубликаты без учёта регистра.\n\t * По умолчанию используется точное строковое сравнение.\n\t */\n\tgetTagKey?: (value: string) => string;\n\n\t/** Добавляет непустой черновик при уходе фокуса с input. По умолчанию включено. */\n\taddOnBlur?: boolean;\n\n\t/** Формирует доступное имя кнопки удаления конкретного тега. */\n\tgetRemoveButtonAriaLabel?: (value: string, index: number) => string;\n\n\t/** Доступное имя списка уже добавленных тегов. */\n\ttokensAriaLabel?: string;\n\n\t/** CSS-класс непосредственно для внутреннего `input`; `className` применяется к оболочке поля. */\n\tinputClassName?: string;\n}\n\n/**\n * Controlled-поле для создания коротких строковых тегов.\n *\n * Новое значение фиксируется по `Enter`, запятой, вставке списка или потере фокуса. Компонент хранит\n * только незавершённый текст input, а окончательный набор всегда принадлежит потребителю через `value`.\n */\nexport function TagInput({\n\tref,\n\tvalue,\n\tonChange,\n\tlabel,\n\tdescription,\n\tplaceholder,\n\tsize,\n\tdisabled,\n\treadOnly = false,\n\terror,\n\tonClearError,\n\tmaxTags,\n\tnormalizeTag = defaultNormalizeTag,\n\tgetTagKey = defaultGetTagKey,\n\taddOnBlur = true,\n\tgetRemoveButtonAriaLabel = defaultGetRemoveButtonAriaLabel,\n\ttokensAriaLabel = \"Добавленные теги\",\n\tinputClassName,\n\tclassName,\n\tid: externalId,\n\tname,\n\tform,\n\trequired,\n\tmaxLength,\n\tonKeyDown,\n\tonPaste,\n\tonBlur,\n\tonCompositionStart,\n\tonCompositionEnd,\n\t\"aria-describedby\": externalAriaDescribedBy,\n\t\"aria-labelledby\": externalAriaLabelledBy,\n\t...inputProps\n}: TagInputProps) {\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst controlRef = useRef<HTMLDivElement>(null);\n\tconst isComposingRef = useRef(false);\n\tconst [draft, setDraft] = useState(\"\");\n\tconst [announcement, setAnnouncement] = useState(\"\");\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\tid: externalId,\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\tconst resolvedMaxTags = maxTags === undefined ? Number.POSITIVE_INFINITY : Math.max(0, Math.floor(maxTags));\n\tconst isEditingDisabled = disabled || readOnly;\n\tconst ariaDescribedBy = joinTagInputAriaIds(describedBy, externalAriaDescribedBy);\n\tconst ariaLabelledBy = joinTagInputAriaIds(labelId, externalAriaLabelledBy);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => {\n\t\t\tconst input = inputRef.current;\n\n\t\t\tif (!input) {\n\t\t\t\tthrow new Error(\"TagInput: внутренний input недоступен при создании imperative handle.\");\n\t\t\t}\n\n\t\t\treturn input;\n\t\t},\n\t\t[]\n\t);\n\n\t/** Добавляет сразу несколько кандидатов одним controlled-обновлением и сообщает результат screen reader. */\n\tconst appendTags = (rawTags: readonly string[]) => {\n\t\tif (isEditingDisabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tonClearError?.();\n\n\t\tconst nextTags = [...value];\n\t\tconst knownKeys = new Set(nextTags.map((tag) => getTagKey(tag)));\n\t\tconst added: string[] = [];\n\t\tlet duplicateCount = 0;\n\t\tlet limitReached = false;\n\n\t\tfor (const rawTag of rawTags) {\n\t\t\tconst tag = normalizeTag(rawTag);\n\n\t\t\tif (!tag) continue;\n\n\t\t\tif (maxLength !== undefined && tag.length > maxLength) {\n\t\t\t\tsetAnnouncement(`Тег «${tag}» длиннее допустимого значения.`);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst key = getTagKey(tag);\n\n\t\t\tif (knownKeys.has(key)) {\n\t\t\t\tduplicateCount += 1;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (nextTags.length >= resolvedMaxTags) {\n\t\t\t\tlimitReached = true;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tknownKeys.add(key);\n\t\t\tnextTags.push(tag);\n\t\t\tadded.push(tag);\n\t\t}\n\n\t\tif (added.length > 0) {\n\t\t\tonChange(nextTags);\n\t\t\tsetAnnouncement(added.length === 1 ? `Добавлен тег «${added[0]}».` : `Добавлено тегов: ${added.length}.`);\n\t\t} else if (limitReached) {\n\t\t\tsetAnnouncement(`Достигнуто максимальное количество тегов: ${resolvedMaxTags}.`);\n\t\t} else if (duplicateCount > 0) {\n\t\t\tsetAnnouncement(\"Такой тег уже добавлен.\");\n\t\t}\n\t};\n\n\tconst commitDraft = () => {\n\t\tif (!draft) return false;\n\n\t\tappendTags(draft.split(TAG_DELIMITER_SPLIT_PATTERN));\n\t\tsetDraft(\"\");\n\t\treturn true;\n\t};\n\n\tconst removeTag = (index: number) => {\n\t\tif (isEditingDisabled) return;\n\n\t\tconst removedTag = value[index];\n\t\tif (removedTag === undefined) return;\n\n\t\tonChange(value.filter((_, currentIndex) => currentIndex !== index));\n\t\tonClearError?.();\n\t\tsetAnnouncement(`Удалён тег «${removedTag}».`);\n\t\tinputRef.current?.focus();\n\t};\n\n\tconst handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n\t\tonKeyDown?.(event);\n\t\tif (event.defaultPrevented || event.nativeEvent.isComposing || isComposingRef.current || isEditingDisabled) return;\n\n\t\tif (event.key === \"Enter\" || event.key === \",\") {\n\t\t\tif (commitDraft() || event.key === \",\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.key === \"Backspace\" && draft.length === 0 && value.length > 0) {\n\t\t\tevent.preventDefault();\n\t\t\tremoveTag(value.length - 1);\n\t\t}\n\t};\n\n\tconst handlePaste = (event: ClipboardEvent<HTMLInputElement>) => {\n\t\tonPaste?.(event);\n\t\tif (event.defaultPrevented || isEditingDisabled) return;\n\n\t\tconst clipboardText = event.clipboardData.getData(\"text\");\n\t\tif (!TAG_DELIMITER_PATTERN.test(clipboardText)) return;\n\n\t\tevent.preventDefault();\n\t\tconst selectionStart = event.currentTarget.selectionStart ?? draft.length;\n\t\tconst selectionEnd = event.currentTarget.selectionEnd ?? selectionStart;\n\t\tconst pastedValue = `${draft.slice(0, selectionStart)}${clipboardText}${draft.slice(selectionEnd)}`;\n\n\t\tappendTags(pastedValue.split(TAG_DELIMITER_SPLIT_PATTERN));\n\t\tsetDraft(\"\");\n\t};\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tclassName={className}\n\t\t\tsize={size}\n\t\t\terror={error}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t<div\n\t\t\t\tref={controlRef}\n\t\t\t\tclassName={cn(uiStyles.uiControl, error && uiStyles.invalid, styles.control)}\n\t\t\t\tdata-disabled={disabled ? \"\" : undefined}\n\t\t\t\tdata-readonly={readOnly ? \"\" : undefined}\n\t\t\t\tdata-invalid={error ? \"\" : undefined}\n\t\t\t\tonClick={() => inputRef.current?.focus()}>\n\t\t\t\t{value.length > 0 && (\n\t\t\t\t\t<ul className={styles.tagList} aria-label={tokensAriaLabel}>\n\t\t\t\t\t\t{value.map((tag, index) => (\n\t\t\t\t\t\t\t<li className={styles.tag} key={`${getTagKey(tag)}-${index}`}>\n\t\t\t\t\t\t\t\t<span className={styles.tagText}>{tag}</span>\n\t\t\t\t\t\t\t\t{!isEditingDisabled && (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tclassName={styles.removeButton}\n\t\t\t\t\t\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tremoveTag(index);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\taria-label={getRemoveButtonAriaLabel(tag, index)}>\n\t\t\t\t\t\t\t\t\t\t<XIcon aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t)}\n\n\t\t\t\t<input\n\t\t\t\t\t{...inputProps}\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\tid={controlId}\n\t\t\t\t\tform={form}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\trequired={required && value.length === 0}\n\t\t\t\t\tmaxLength={maxLength}\n\t\t\t\t\tvalue={draft}\n\t\t\t\t\tplaceholder={value.length === 0 ? placeholder : undefined}\n\t\t\t\t\taria-invalid={!!error || undefined}\n\t\t\t\t\taria-labelledby={ariaLabelledBy}\n\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\tclassName={cn(styles.input, inputClassName)}\n\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\tconst nextDraft = event.target.value;\n\t\t\t\t\t\tconst hasDelimiter = TAG_DELIMITER_PATTERN.test(nextDraft);\n\n\t\t\t\t\t\tif (isComposingRef.current) {\n\t\t\t\t\t\t\tsetDraft(nextDraft);\n\t\t\t\t\t\t} else if (hasDelimiter) {\n\t\t\t\t\t\t\tconst parts = nextDraft.split(TAG_DELIMITER_SPLIT_PATTERN);\n\t\t\t\t\t\t\tconst hasTrailingDelimiter = TAG_DELIMITER_PATTERN.test(nextDraft.at(-1) ?? \"\");\n\t\t\t\t\t\t\tconst uncommittedPart = hasTrailingDelimiter ? \"\" : (parts.pop() ?? \"\");\n\n\t\t\t\t\t\t\tappendTags(parts);\n\t\t\t\t\t\t\tsetDraft(uncommittedPart);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetDraft(nextDraft);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (isComposingRef.current || !hasDelimiter) {\n\t\t\t\t\t\t\tonClearError?.();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t\tonPaste={handlePaste}\n\t\t\t\t\tonCompositionStart={(event: CompositionEvent<HTMLInputElement>) => {\n\t\t\t\t\t\tisComposingRef.current = true;\n\t\t\t\t\t\tonCompositionStart?.(event);\n\t\t\t\t\t}}\n\t\t\t\t\tonCompositionEnd={(event: CompositionEvent<HTMLInputElement>) => {\n\t\t\t\t\t\tisComposingRef.current = false;\n\t\t\t\t\t\tonCompositionEnd?.(event);\n\t\t\t\t\t}}\n\t\t\t\t\tonBlur={(event) => {\n\t\t\t\t\t\tonBlur?.(event);\n\t\t\t\t\t\tconst nextFocusedNode = event.relatedTarget;\n\t\t\t\t\t\tconst focusRemainsInside = nextFocusedNode instanceof Node && controlRef.current?.contains(nextFocusedNode);\n\n\t\t\t\t\t\tif (!event.defaultPrevented && !focusRemainsInside && addOnBlur && !isEditingDisabled) {\n\t\t\t\t\t\t\tcommitDraft();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t{name &&\n\t\t\t\t\tvalue.map((tag, index) => (\n\t\t\t\t\t\t<input key={`${getTagKey(tag)}-${index}`} type=\"hidden\" name={name} value={tag} form={form} disabled={disabled} />\n\t\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t<span className=\"visuallyHidden\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t{announcement}\n\t\t\t</span>\n\t\t</InputUI>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"joinTagInputAriaIds.d.ts","sourceRoot":"","sources":["../../../src/tag-input/lib/joinTagInputAriaIds.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,sBAEpE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Удаляет внешние пробелы перед сохранением созданного тега. */
|
|
2
|
+
export declare function defaultNormalizeTag(value: string): string;
|
|
3
|
+
/** Сохраняет регистр и использует точное значение как ключ сравнения по умолчанию. */
|
|
4
|
+
export declare function defaultGetTagKey(value: string): string;
|
|
5
|
+
/** Формирует доступное имя действия удаления с конкретным значением тега. */
|
|
6
|
+
export declare function defaultGetRemoveButtonAriaLabel(value: string): string;
|
|
7
|
+
//# sourceMappingURL=tagInputDefaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tagInputDefaults.d.ts","sourceRoot":"","sources":["../../../src/tag-input/lib/tagInputDefaults.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,UAEhD;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,UAE7C;AAED,6EAA6E;AAC7E,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,UAE5D"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { m as e } from "../chunks/misc-
|
|
1
|
+
import { m as e } from "../chunks/misc-DIF5h9ba.js";
|
|
2
2
|
import { a as t, n, t as r } from "../chunks/types-CxXyru6U.js";
|
|
3
3
|
import { jsx as i } from "react/jsx-runtime";
|
|
4
4
|
//#region src/text-editor/TextEditorLexical.tsx
|
|
5
5
|
function a() {
|
|
6
|
-
return import("../chunks/TextEditorLexicalClient-
|
|
6
|
+
return import("../chunks/TextEditorLexicalClient-bDEyimUa.js").then((e) => ({ TextEditorLexicalClient: e.TextEditorLexicalClient }));
|
|
7
7
|
}
|
|
8
8
|
function o(t) {
|
|
9
9
|
return /* @__PURE__ */ i(e, {
|
package/dist/tree-table/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e, c as t, d as n, i as r, m as i, n as ee, o as te, r as ne, s as re, t as ie } from "../chunks/base-table-
|
|
1
|
+
import { a as e, c as t, d as n, i as r, m as i, n as ee, o as te, r as ne, s as re, t as ie } from "../chunks/base-table-BXKFSgIk.js";
|
|
2
2
|
import { useEffect as a, useEffectEvent as o, useMemo as s, useRef as c, useState as ae } from "react";
|
|
3
3
|
import { cn as oe } from "@ryuzaki13/react-foundation-lib/utils";
|
|
4
4
|
import { formatPipelineDisplayValue as se } from "@ryuzaki13/react-foundation-lib/formatters";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryuzaki13/react-foundation-ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"description": "Reusable React foundation UI primitives and Storybook stories.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ryuzaki13",
|
|
@@ -266,6 +266,10 @@
|
|
|
266
266
|
"types": "./dist/switch/index.d.ts",
|
|
267
267
|
"import": "./dist/switch/index.js"
|
|
268
268
|
},
|
|
269
|
+
"./tag-input": {
|
|
270
|
+
"types": "./dist/tag-input/index.d.ts",
|
|
271
|
+
"import": "./dist/tag-input/index.js"
|
|
272
|
+
},
|
|
269
273
|
"./table": {
|
|
270
274
|
"types": "./dist/table/index.d.ts",
|
|
271
275
|
"import": "./dist/table/index.js"
|
package/src/styles/_base.scss
CHANGED
|
@@ -354,65 +354,3 @@ table {
|
|
|
354
354
|
z-index: 8000;
|
|
355
355
|
pointer-events: none;
|
|
356
356
|
}
|
|
357
|
-
|
|
358
|
-
.logoAnimated {
|
|
359
|
-
max-width: 10em;
|
|
360
|
-
margin: var(--space-md) auto;
|
|
361
|
-
|
|
362
|
-
svg {
|
|
363
|
-
display: block;
|
|
364
|
-
width: 100%;
|
|
365
|
-
height: 100%;
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
.logoSegment {
|
|
370
|
-
stroke: var(--content-2);
|
|
371
|
-
stroke-width: 30px;
|
|
372
|
-
stroke-miterlimit: 10;
|
|
373
|
-
opacity: 0.22;
|
|
374
|
-
animation: pulseSteps 1.8s ease-in-out infinite;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
.logoOutline {
|
|
378
|
-
fill: none;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
.logoFill {
|
|
382
|
-
fill: var(--content-2);
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
.logoS1 {
|
|
386
|
-
animation-delay: 0s;
|
|
387
|
-
}
|
|
388
|
-
.logoS2 {
|
|
389
|
-
animation-delay: 0.2s;
|
|
390
|
-
}
|
|
391
|
-
.logoS3 {
|
|
392
|
-
animation-delay: 0.4s;
|
|
393
|
-
}
|
|
394
|
-
.logoS4 {
|
|
395
|
-
animation-delay: 0.6s;
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
@keyframes pulseSteps {
|
|
399
|
-
0% {
|
|
400
|
-
opacity: 0.2;
|
|
401
|
-
}
|
|
402
|
-
35% {
|
|
403
|
-
opacity: 1;
|
|
404
|
-
}
|
|
405
|
-
55% {
|
|
406
|
-
opacity: 1;
|
|
407
|
-
}
|
|
408
|
-
100% {
|
|
409
|
-
opacity: 0.2;
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
// @media (prefers-reduced-motion: reduce) {
|
|
414
|
-
// .logoSegment {
|
|
415
|
-
// animation: none;
|
|
416
|
-
// opacity: 1;
|
|
417
|
-
// }
|
|
418
|
-
// }
|
|
@@ -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-DsN3hykK.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-CdXPOrRW.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-DGed-OBQ.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-D90hKkIJ.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-Bg8QclQy.js";import{n as s,t as c}from"./lucide-react-ClGevkpS.js";import{n as l,t as u}from"./text-CwWM1WCX.js";import{i as d,n as f,r as p,t as m}from"./uiClasses-CaHp0EWd.js";import{o as h}from"./Flex-D1ZBJLmP.js";import{t as g}from"./flex-CMA-ZjxB.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-DsN3hykK.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-CdXPOrRW.js";import{Basic as p,ComposableScheme as m,Variants as h,WithIcons as g,n as _,t as v}from"./Button.stories-CYjvIvUW.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-D90hKkIJ.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-Bg8QclQy.js";import{n as o,t as s}from"./popover-Dph7wJ1_.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{P as r,b as i,mt as a,t as o,ut 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{P as r,b as i,mt as a,t as o,ut as s}from"./lucide-react-ClGevkpS.js";import{n as c,t as l}from"./Button-c4nDxtrg.js";var u=e({Basic:()=>m,ComposableScheme:()=>g,Variants:()=>h,WithIcons:()=>_,__namedExportsOrder:()=>v,default:()=>p}),d,f,p,m,h,g,_,v,y=t((()=>{o(),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)(i,{}),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)(a,{}),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,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-D90hKkIJ.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-Bg8QclQy.js";import{f as o,t as s}from"./lucide-react-ClGevkpS.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};
|
|
@@ -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-DsN3hykK.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-CdXPOrRW.js";import{Controlled as p,Disabled as m,Sizes as h,Tones as g,n as _,t as v}from"./CheckBox.stories-Q78_xCB-.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.
|
package/storybook-static/assets/{CheckBox.stories-DNVyyKgk.js → CheckBox.stories-Q78_xCB-.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-D90hKkIJ.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{n as a,t as o}from"./CheckBox-6Qr3jWMy.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} />;
|