@ryuzaki13/react-foundation-ui 3.6.0 → 3.7.0
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/notifications/index.d.ts +1 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +40 -24
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/model/NotificationsProvider.d.ts +2 -18
- package/dist/notifications/model/NotificationsProvider.d.ts.map +1 -1
- package/dist/notifications/model/index.d.ts +4 -0
- package/dist/notifications/model/index.d.ts.map +1 -1
- package/dist/notifications/model/notificationsContext.d.ts +4 -0
- package/dist/notifications/model/notificationsContext.d.ts.map +1 -0
- package/dist/notifications/model/useNotificationById.d.ts +4 -0
- package/dist/notifications/model/useNotificationById.d.ts.map +1 -0
- package/dist/notifications/model/useNotificationHistory.d.ts +6 -0
- package/dist/notifications/model/useNotificationHistory.d.ts.map +1 -0
- package/dist/notifications/model/useNotifications.d.ts +3 -0
- package/dist/notifications/model/useNotifications.d.ts.map +1 -0
- package/dist/notifications/model/useNotificationsStore.d.ts +3 -0
- package/dist/notifications/model/useNotificationsStore.d.ts.map +1 -0
- package/dist/notifications/model/useNotify.d.ts +17 -0
- package/dist/notifications/model/useNotify.d.ts.map +1 -0
- package/dist/notifications/ui/NotificationsHost.d.ts +2 -1
- package/dist/notifications/ui/NotificationsHost.d.ts.map +1 -1
- package/package.json +3 -3
- package/storybook-static/assets/{Badge-r7lsdHne.js → Badge-CV3f-YLa.js} +1 -1
- package/storybook-static/assets/{Badge.stories-P4qdQ7cm.js → Badge.stories-BUPuimKi.js} +1 -1
- package/storybook-static/assets/{BadgeList-8NyPAV2Q.js → BadgeList-CDDAItI6.js} +1 -1
- package/storybook-static/assets/{BarcodeScannerDialog.stories--TadwGdZ.js → BarcodeScannerDialog.stories-teB8ep3A.js} +1 -1
- package/storybook-static/assets/{Button-BP0DDcNq.js → Button-BW8cBp03.js} +1 -1
- package/storybook-static/assets/{Button-X3OT5zE7.js → Button-CV4tslOZ.js} +1 -1
- package/storybook-static/assets/{Button.stories-CFiUr_xE.js → Button.stories-DKlzPZqU.js} +1 -1
- package/storybook-static/assets/{CalendarView-nWuZBE9T.js → CalendarView-CX2J7c6F.js} +1 -1
- package/storybook-static/assets/{CheckBox-Bde9tud-.js → CheckBox-BTr4z78V.js} +1 -1
- package/storybook-static/assets/{CheckBox-BId2Zf_m.js → CheckBox-BWZ_P_3Q.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-BVU9Rkai.js → CheckBox.stories-BUaJvDIu.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-BeUy9gum.js → Color-6AOWCN3U-DmrUSa8T.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BS2UVgbu.js → ContextMenu-DsJnOtZ9.js} +1 -1
- package/storybook-static/assets/{ContextMenu-Byksyz_8.js → ContextMenu-wBO-KcfV.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-DmJPp2YR.js → ContextMenu.stories-CNOrf21k.js} +1 -1
- package/storybook-static/assets/{DateInput-CQe_1Dk-.js → DateInput-DbZNB8s8.js} +1 -1
- package/storybook-static/assets/{DateInput-CgETMk9B.js → DateInput-xQJfyfF-.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BOst6EKv.js → DateInput.stories-DAku4mZt.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CxrNYBTe.js → DateRangePresetSelect-BPlpCA6c.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DHJ31vIB.js → DateRangePresetSelect-DHoyZyQT.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-CiyN1joN.js → DateRangePresetSelect.stories-DRvogj0c.js} +1 -1
- package/storybook-static/assets/{Detail-V_NYrUJR.js → Detail-mXagpId3.js} +1 -1
- package/storybook-static/assets/{Detail.stories-B4tf6inN.js → Detail.stories-D7Iwy0-s.js} +1 -1
- package/storybook-static/assets/{Dialog-B6miFej7.js → Dialog-CMqH_KAI.js} +1 -1
- package/storybook-static/assets/{Dialog-DNTx5Unm.js → Dialog-qRvPPGeh.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-BS1dDTLW.js → Dialog.stories-J_OyVz3O.js} +1 -1
- package/storybook-static/assets/{Disclosure-4sf5BIn1.js → Disclosure-TdbPZNSu.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-DhUQNdEC.js → Disclosure.stories-DRoDp_Fu.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-Codiur77.js → DisclosureGroup-CeBLtSCA.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-yT2aWNaF.js → DocsRenderer-JROSPFPF-BdyHYSwz.js} +1 -1
- package/storybook-static/assets/{DropZone-Du0BQAyO.js → DropZone-BzRKfOtd.js} +1 -1
- package/storybook-static/assets/{DropZone-D4rl2WEV.js → DropZone-CODtJSpF.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-B8iPjYH_.js → DropZone.stories-BzNj9PbZ.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-BcdS3oNz.js → DropdownMenu-Db-sh5Gd.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-6u6YJanI.js → ExpandableActionPanel-fOfO1fQV.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-D-CZHUv0.js → ExpandableActionPanel.stories-C6Si_Nqk.js} +1 -1
- package/storybook-static/assets/{Flex-DWi0hQ-f.js → Flex-B9KnOucm.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CKKi33JK.js → Flex.stories-ApvEyW4R.js} +1 -1
- package/storybook-static/assets/{FlexContainer-BMK_YH72.js → FlexContainer-B1y3dds2.js} +1 -1
- package/storybook-static/assets/{FlexItem-DpSHNBxJ.js → FlexItem-pEuFUX72.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-D9nTd47B.js → FloatingPopover-CjNAEFQy.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-DyBhk9rG.js → FormattedTableCell-DZM2eYz5.js} +1 -1
- package/storybook-static/assets/{Grid-BZgzDCLK.js → Grid-CI6OKKu8.js} +1 -1
- package/storybook-static/assets/{Grid-DbvUGBEN.js → Grid-NnstE-Tl.js} +1 -1
- package/storybook-static/assets/{Grid.stories-BeEAzTxD.js → Grid.stories-tklnzZVg.js} +1 -1
- package/storybook-static/assets/{GridContainer-B82Onj6x.js → GridContainer-wl6R6ToY.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-SDIt19aO.js → ImageCropper.stories-DFN1M8eV.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-Bzg27pq7.js → ImageRenderer-CsIh2Gps.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-C-IE84zV.js → ImageRenderer.stories-CFg_ibLF.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DIcx2Krs.js → ImageView.stories-HHd7jrjM.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-CQTy0uPX.js → ImageViewer.stories-DgWkr466.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-CA5BYQsX.js → ImageViewerRuntime-6z6zV9jF.js} +1 -1
- package/storybook-static/assets/{Input-DmsN6uC_.js → Input-B7_Qlowr.js} +1 -1
- package/storybook-static/assets/{Input-D8uMye_9.js → Input-Bvw9Sw0g.js} +1 -1
- package/storybook-static/assets/{Input.stories-D8QWPnMD.js → Input.stories-Dc2sDy4p.js} +1 -1
- package/storybook-static/assets/{InputDateTime-Cczll-bH.js → InputDateTime-DUkFFY2j.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-DeZ6XHwa.js → InputDateTime.stories-WZXWHrjO.js} +1 -1
- package/storybook-static/assets/{InputFile-BbPjLN4E.js → InputFile-CR2m2VQy.js} +1 -1
- package/storybook-static/assets/{InputFile-C0_L0zTd.js → InputFile-DJE39TQT.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-Di_6BkX1.js → InputFile.stories-BxE2jR8X.js} +1 -1
- package/storybook-static/assets/{InputFiles-B3uOwqKF.js → InputFiles-CMkLLJOH.js} +1 -1
- package/storybook-static/assets/{InputFiles-CF60S_qG.js → InputFiles-CTD2obOb.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-BkTiEPX6.js → InputFiles.stories-CeLIDMcH.js} +1 -1
- package/storybook-static/assets/{InputFilesList-C9cudcHe.js → InputFilesList-tUr9ob4W.js} +1 -1
- package/storybook-static/assets/{InputImage-Aq_ZXmtw.js → InputImage-C0cIhVXy.js} +1 -1
- package/storybook-static/assets/{InputImage-Dx0DIf4l.js → InputImage-CoAYtfEV.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-D7LfEcn4.js → InputImage.stories-DpXv7PID.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-DP5FyU4S.js → InteractiveComponents-Dmyiy24S.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-CE5L5PAB.js → InteractiveComponents.stories-B77oJ-sY.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BehxFQsU.js → LayoutPicker-CJcSQqwn.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CW1W-CAf.js → LayoutPicker-MTeK4NeO.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-DtvfpOUS.js → LayoutPicker.stories-CcY356LI.js} +1 -1
- package/storybook-static/assets/{Listbox-Bn_6WyQc.js → Listbox-BGYVb_Ct.js} +1 -1
- package/storybook-static/assets/{Listbox-VcD28kxl.js → Listbox-Cv9AQzQU.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-CL6fJlUm.js → Listbox.stories-C9_cOdMY.js} +1 -1
- package/storybook-static/assets/{Modal-DrSX0i3a.js → Modal-CHcZjpHv.js} +1 -1
- package/storybook-static/assets/{Modal-D0D5WZ_O.js → Modal-CnMZc0y1.js} +1 -1
- package/storybook-static/assets/{Modal.stories-Ch3P8_kY.js → Modal.stories-DxITHZDl.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-B0Lf7xX0.js → ModalManagerProvider-vGXTuniv.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Bw3qf8eW.js → MultiSelect-DDC0Nrrq.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Cmxa5Vho.js → MultiSelect-DqdwstLi.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-DKHPBUWD.js → MultiSelect.stories-BPsGXWR2.js} +1 -1
- package/storybook-static/assets/{NoData-seFnJNiE.js → NoData-BlGdaWe6.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-d770FjSM.js → NotificationsHost-gXnNQDp7.js} +30 -2
- package/storybook-static/assets/NotificationsHost.stories-BdkJz6WZ.js +30 -0
- package/storybook-static/assets/{ODataMultiSelect-BN0pcCmQ.js → ODataMultiSelect-C_Qs3Nl4.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-D5zrkaFW.js → ODataMultiSelect.stories-DfmeONnP.js} +1 -1
- package/storybook-static/assets/{ODataSelect-C5DXRRVH.js → ODataSelect-C5fwwi_V.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-ClYp08JR.js → ODataSelect.stories-BCDjW9Of.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-CsvSq1G1.js → ODataTreeMultiSelect-bU2QW5pt.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-DFXLQjms.js → ODataTreeMultiSelect.stories-FRT1vULJ.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-CdN-NwV7.js → ODataTreeSelect-DmNcnlbz.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CDffbvxi.js → ODataTreeSelect.stories-B9Mq-Iq-.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-qXHo2r0J.js → OneStepScroller-X_sOKCiI.js} +1 -1
- package/storybook-static/assets/{Option-tEWfKgN_.js → Option-CSut1BkS.js} +1 -1
- package/storybook-static/assets/{OptionButton-DOj_dfd1.js → OptionButton-B7wOhE1V.js} +1 -1
- package/storybook-static/assets/{OptionContent-6iwuLpQP.js → OptionContent-DyxUQFu3.js} +1 -1
- package/storybook-static/assets/{OptionContentContainer-DbdHO42m.js → OptionContentContainer-DnzI9J61.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-Bo_B6jdw.js → PeriodSelect-C1Rh75We.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DffBuv6v.js → PeriodSelect-SjGK6Esp.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-Boq-fBL8.js → PeriodSelect.stories-Bch3cN5l.js} +1 -1
- package/storybook-static/assets/{PickerField-fMVQUcBX.js → PickerField-B8_SoyYo.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-zS0JUD-3.js → PickerTriggerActions-DP0ZKD9L.js} +1 -1
- package/storybook-static/assets/{Popover-5c_n39x0.js → Popover-DF-J3Kwx.js} +1 -1
- package/storybook-static/assets/{Popover-u02JbpuP.js → Popover-NBKcB7nc.js} +1 -1
- package/storybook-static/assets/{Popover.stories-BUVgJJQI.js → Popover.stories-BGcAWbjW.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-EiaEd6Qp.js → PresetRangeDateInput-BAbrOHdm.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-TyV-u0Db.js → PresetRangeDateInput-DajjeSUc.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-jJq5Gkdb.js → PresetRangeDateInput.stories-Bf7YKKIQ.js} +1 -1
- package/storybook-static/assets/{PresetSelect-Cnl_fXjS.js → PresetSelect-CfmPZsZF.js} +1 -1
- package/storybook-static/assets/{README-ByxHEXaq.js → README--xvSptx6.js} +1 -1
- package/storybook-static/assets/{README-BylyIJ4z.js → README-02MdhoYj.js} +1 -1
- package/storybook-static/assets/{README-BoXMNqUS.js → README-23NGVX-l.js} +1 -1
- package/storybook-static/assets/{README-CZBT22Qx.js → README-3bVCOGDc.js} +1 -1
- package/storybook-static/assets/{README-DsqwQGJx.js → README-5JPwN5I3.js} +1 -1
- package/storybook-static/assets/{README-Bn7SBLqL.js → README-B35CL6W4.js} +1 -1
- package/storybook-static/assets/{README-CqCDXjY-.js → README-B4-JBF7Z.js} +1 -1
- package/storybook-static/assets/{README-CmCyESsg.js → README-B5cX2glk.js} +1 -1
- package/storybook-static/assets/{README-B-z6znlC.js → README-BGZN87_w.js} +1 -1
- package/storybook-static/assets/{README-CXlUZ-Tw.js → README-BNTTx0rf.js} +1 -1
- package/storybook-static/assets/{README-e3Zi9n04.js → README-BRvVmpDS.js} +1 -1
- package/storybook-static/assets/{README-CO0Anr1W.js → README-BUhZmzyX.js} +1 -1
- package/storybook-static/assets/{README-BPWr_0XE.js → README-Bb5AJH8-.js} +1 -1
- package/storybook-static/assets/{README-CoofcGyA.js → README-Bew3UK8F.js} +1 -1
- package/storybook-static/assets/{README-WtLMdn_H.js → README-Bk_A3mYt.js} +1 -1
- package/storybook-static/assets/{README-Cc5RUdsX.js → README-BlTlxb7s.js} +1 -1
- package/storybook-static/assets/{README-BoZbB8t8.js → README-BqHDKN3N.js} +1 -1
- package/storybook-static/assets/{README-B7f6XRLa.js → README-BwhJA_em.js} +1 -1
- package/storybook-static/assets/{README-DBqb3xHL.js → README-BzhO6nn7.js} +1 -1
- package/storybook-static/assets/{README-DZKQ2NbJ.js → README-C-fD13Eo.js} +1 -1
- package/storybook-static/assets/{README-B6uVB1ib.js → README-C2dMbb8z.js} +1 -1
- package/storybook-static/assets/{README-jb10Ekr5.js → README-C79arOAr.js} +1 -1
- package/storybook-static/assets/{README-DnIK-CvZ.js → README-C7gQVhLI.js} +1 -1
- package/storybook-static/assets/{README-8vaqVs2t.js → README-CBYHjEjb.js} +1 -1
- package/storybook-static/assets/{README-7mbN7jNm.js → README-CCqwPYoe.js} +1 -1
- package/storybook-static/assets/{README-6n5fAnyG.js → README-CJKEEjnI.js} +1 -1
- package/storybook-static/assets/{README-BfF9g6q6.js → README-CKDAq2L0.js} +1 -1
- package/storybook-static/assets/{README-CXhBUq08.js → README-CXNyh6Hq.js} +1 -1
- package/storybook-static/assets/{README-W30_dPSQ.js → README-Ce9KyfEM.js} +1 -1
- package/storybook-static/assets/{README-BGEviJbA.js → README-CijcMn5M.js} +1 -1
- package/storybook-static/assets/{README-CZaKBu1r.js → README-Cj8rKrp5.js} +1 -1
- package/storybook-static/assets/{README-g4l3WFXZ.js → README-CkYzrLaV.js} +1 -1
- package/storybook-static/assets/{README-B-K2UPpo.js → README-CvqMprlS.js} +1 -1
- package/storybook-static/assets/{README-tDgobAYS.js → README-CxURTiLk.js} +1 -1
- package/storybook-static/assets/{README-10_nKrEg.js → README-DBsUCpqI.js} +1 -1
- package/storybook-static/assets/{README-DKMzvCHg.js → README-DD2eTjZe.js} +1 -1
- package/storybook-static/assets/{README-8qj7XGDa.js → README-DJ53d7sm.js} +6 -3
- package/storybook-static/assets/{README-E09CwLzJ.js → README-DLlWedYv.js} +1 -1
- package/storybook-static/assets/{README-BgbmWbpJ.js → README-DRxLVin-.js} +1 -1
- package/storybook-static/assets/{README-BsHrwATK.js → README-DTE8nUeJ.js} +1 -1
- package/storybook-static/assets/{README-DT4BWDzj.js → README-DUh3QGlI.js} +14 -8
- package/storybook-static/assets/{README-AbbeH5rC.js → README-DfrkaWMN.js} +1 -1
- package/storybook-static/assets/{README-CqMgUXym.js → README-DlJZHUr9.js} +1 -1
- package/storybook-static/assets/{README-_UuZJvdY.js → README-Dm0fH6Ac.js} +1 -1
- package/storybook-static/assets/{README-DsEaeYrz.js → README-DvgeFwUN.js} +1 -1
- package/storybook-static/assets/{README-DLGk_zi3.js → README-DzfnNMhi.js} +1 -1
- package/storybook-static/assets/{README-DyhDd6j2.js → README-EjFzMh6K.js} +1 -1
- package/storybook-static/assets/{README-bJALHbSR.js → README-Yp7ckVfi.js} +1 -1
- package/storybook-static/assets/{README-DXzLMFnF.js → README-ZzFd6eCk.js} +1 -1
- package/storybook-static/assets/{README-DB3HzmYa.js → README-cBsDQvLg.js} +1 -1
- package/storybook-static/assets/{README-By7MmJad.js → README-hq5hkADm.js} +1 -1
- package/storybook-static/assets/{README-BWiCGCpy.js → README-kYUqgwYs.js} +1 -1
- package/storybook-static/assets/{README-q6R_bF6h.js → README-l9uKtPiZ.js} +1 -1
- package/storybook-static/assets/{RadioButton-DGjO61a9.js → RadioButton-BDpUjCQB.js} +1 -1
- package/storybook-static/assets/{RadioButton-j3O4woG8.js → RadioButton-BWpGjwT9.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-COGMYQcq.js → RadioButton.stories-DrOP5Alc.js} +1 -1
- package/storybook-static/assets/{RadioGroup-Cuj2D_RZ.js → RadioGroup-BljW3G4c.js} +1 -1
- package/storybook-static/assets/{RadioGroup-D9samx7D.js → RadioGroup-wzlE1seI.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-KSDvpgqY.js → RadioGroup.stories-6h1qt8DI.js} +1 -1
- package/storybook-static/assets/{Scrollable-DsOw--4y.js → Scrollable-C7dBSd5R.js} +1 -1
- package/storybook-static/assets/{Scrollable-tPrIOchd.js → Scrollable-Dhpelsb3.js} +1 -1
- package/storybook-static/assets/{Scrollable.stories-B7d_6eGB.js → Scrollable.stories-Cj1mRfdX.js} +1 -1
- package/storybook-static/assets/{Select-D0CHiGkz.js → Select-BI1R-0nK.js} +1 -1
- package/storybook-static/assets/{Select-h0tWQbii.js → Select-n3InYkr7.js} +1 -1
- package/storybook-static/assets/{Select.stories-GmGbpUoi.js → Select.stories-pppfr6nn.js} +1 -1
- package/storybook-static/assets/{Separator-C8aQcNns.js → Separator-Bx2BKztN.js} +1 -1
- package/storybook-static/assets/{Separator-Dh8kzf-5.js → Separator-GtZBq7gL.js} +1 -1
- package/storybook-static/assets/{Separator.stories-nQ9bDdo1.js → Separator.stories-DxY_qbJt.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BJAxQ8an.js → SerializableSelect-DogkO2Bz.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-CzVCg1_7.js → SerializableSelect.stories-C3OU-Qlh.js} +1 -1
- package/storybook-static/assets/{ShimmerText-DnEOvvJA.js → ShimmerText-XI1rbKrT.js} +1 -1
- package/storybook-static/assets/{ShimmerText.stories-D2XRPcMC.js → ShimmerText.stories-lvn1uLl_.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DwY38Bzb.js → SingleDateTimeInput-DK8vuf-o.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-Bwn8kqI3.js → SingleDateTimeInput-HNBKELgZ.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-DKq1_AqA.js → SingleDateTimeInput.stories-DrV6WMT9.js} +1 -1
- package/storybook-static/assets/{Slider-CT0jMXMY.js → Slider-D4ec91gY.js} +1 -1
- package/storybook-static/assets/{Slider-KiXLZUpw.js → Slider-bg4iXFEy.js} +1 -1
- package/storybook-static/assets/{Slider.stories-Cmcm8HlR.js → Slider.stories-DhJUqLP3.js} +1 -1
- package/storybook-static/assets/{SliderInput-Unp3YEcU.js → SliderInput-CScKm1eT.js} +1 -1
- package/storybook-static/assets/{SliderInput-Dd_yvyMG.js → SliderInput-o9cFbZ18.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-C0MwvTOV.js → SliderInput.stories-CDNoleib.js} +1 -1
- package/storybook-static/assets/{Sortable-CnCowZw-.js → Sortable-DHqDBQQd.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-DCrIurAg.js → Sortable.stories-CEhPetnR.js} +1 -1
- package/storybook-static/assets/{Splitter-BErks2lB.js → Splitter-BU9vPggP.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-DyRlCVUo.js → Splitter.stories-BxKoQqiy.js} +1 -1
- package/storybook-static/assets/{StateSelect-DXfsbduM.js → StateSelect-Cp-vkDd6.js} +1 -1
- package/storybook-static/assets/{StateSelect-DuVzqi0t.js → StateSelect-ez77Inqm.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-CnIXqGFB.js → StateSelect.stories-CpZV5ol8.js} +1 -1
- package/storybook-static/assets/{StatusIndicator-Bz3JF899.js → StatusIndicator-BM7o68m0.js} +1 -1
- package/storybook-static/assets/{StatusIndicator.stories-B5RMchH3.js → StatusIndicator.stories-DmP9Drw5.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CcR8KHGF.js → StringToggle.stories-TO-VXZOK.js} +1 -1
- package/storybook-static/assets/{Switch-a7GMbDn9.js → Switch-BnYvYOX5.js} +1 -1
- package/storybook-static/assets/{Switch-Bo-dd4nL.js → Switch-CfDHmCm8.js} +1 -1
- package/storybook-static/assets/{Switch.stories-B9c9CAmZ.js → Switch.stories-CX92UhBc.js} +1 -1
- package/storybook-static/assets/{Table-BgmEmcbL.js → Table-DkrNiq_n.js} +1 -1
- package/storybook-static/assets/{Table.stories-BByDPmdZ.js → Table.stories-DsGm0-i7.js} +1 -1
- package/storybook-static/assets/{TableEditor.stories-DJi7VPcY.js → TableEditor.stories-sxgtoDe3.js} +1 -1
- package/storybook-static/assets/{Tabs-CV1ykDlt.js → Tabs-wMDcBXIR.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-DOyJdrcR.js → Tabs.stories-BVXrXbOp.js} +1 -1
- package/storybook-static/assets/{TabsBox-n38x7_yO.js → TabsBox-5NiiCrDc.js} +1 -1
- package/storybook-static/assets/{TagInput-j4mVWIf0.js → TagInput-BATz4lHU.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-DSU97IRU.js → TagInput.stories-D9IJIG_P.js} +1 -1
- package/storybook-static/assets/{Text-COGTV38X.js → Text-Bswu5PVP.js} +1 -1
- package/storybook-static/assets/{Textarea-BcgmS9aD.js → Textarea-AqkGgrCZ.js} +1 -1
- package/storybook-static/assets/{Textarea-Byqjr2Ve.js → Textarea-CrkCHaE2.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-D1gXsWxK.js → Textarea.stories-dtpJFQAX.js} +1 -1
- package/storybook-static/assets/{TimePanel-DzFFLXJP.js → TimePanel-DGcJeL-M.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-287q5ipF.js → TimePanel.stories-DxPuKGPZ.js} +1 -1
- package/storybook-static/assets/{Toggle-KtpVC-vX.js → Toggle-DLZn_nZe.js} +1 -1
- package/storybook-static/assets/{Toggle-CCkzi_xC.js → Toggle-Dd08B6s5.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BLKa6Zst.js → Toggle.stories-4h-5zxJC.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-sYAglJIC.js → TreeMultiSelect-4XUsw-my.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-CbnCiXFa.js → TreeMultiSelect-CF9O5XGt.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-DGw_tJQ5.js → TreeMultiSelect.stories-m5UlkTdr.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-wz0-Y-eg.js → TreePickerBase-8R1GFz9r.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BCOJNrl1.js → TreeSelect-BPc7kRdh.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BJ6C_2pM.js → TreeSelect-CZme7Tu-.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-DKdmUNAI.js → TreeSelect.stories-DRVi0xZP.js} +1 -1
- package/storybook-static/assets/{TreeTable-DIRsmeC8.js → TreeTable-CTBSrT9l.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-BfqeLJU6.js → TreeTable.stories-oILl7PkB.js} +1 -1
- package/storybook-static/assets/{blocks-r6nP1Mk3.js → blocks-TIr5_lNX.js} +3 -3
- package/storybook-static/assets/{check-CX66-EtS.js → check-Du8FuQ6e.js} +1 -1
- package/storybook-static/assets/{chevron-down-BpTVPmXw.js → chevron-down-rt2_lu7i.js} +1 -1
- package/storybook-static/assets/{chevron-left-BDyvowID.js → chevron-left-SdIvDBzr.js} +1 -1
- package/storybook-static/assets/{chevron-right-PitONC71.js → chevron-right-BU-pTQL2.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-Bd54JRSO.js → chunk-W22LQPXL-C5x9oI8u.js} +1 -1
- package/storybook-static/assets/{circle-alert-BxfK632o.js → circle-alert-C-51hrK9.js} +1 -1
- package/storybook-static/assets/{circle-check-CQ0mrCVh.js → circle-check-DZ3A5xhF.js} +1 -1
- package/storybook-static/assets/{components-CJIwocXl.js → components-DLKEXX2n.js} +3 -3
- package/storybook-static/assets/{contextMenu-BodN1HdA.js → contextMenu-Cwftox4w.js} +1 -1
- package/storybook-static/assets/{dom-DBd_DWF8.js → dom-D9_dPJ4G.js} +1 -1
- package/storybook-static/assets/{download-C_lZf2f4.js → download-BIHyCgGp.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-BzwQR5CG.js → floating-ui.react-bcuT6Qw6.js} +1 -1
- package/storybook-static/assets/{foundationApi-BgE0geET.js → foundationApi-C5uBuKS6.js} +1 -1
- package/storybook-static/assets/{foundationLib-6nKeXUFS.js → foundationLib-DRvN1n2m.js} +1 -1
- package/storybook-static/assets/{hooks-DDySZJGR.js → hooks-DovKTAOG.js} +1 -1
- package/storybook-static/assets/iframe-CxmZ1iUO.js +1 -0
- package/storybook-static/assets/{iframe-B9PXVErw.js → iframe-DfqtMMgG.js} +3 -3
- package/storybook-static/assets/{info-rdW9neC9.js → info-CgVG4e4u.js} +1 -1
- package/storybook-static/assets/{odata-D6cOAxLt.js → odata-BGOCt2tD.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-CGQ31IO_.js → odataStoryFixtures--hE0dv-U.js} +1 -1
- package/storybook-static/assets/{react-BMktiE65.js → react-CZ1I4PcW.js} +1 -1
- package/storybook-static/assets/{refresh-cw-CfKvrc1N.js → refresh-cw-CGuUzrYs.js} +1 -1
- package/storybook-static/assets/{settings-2-Drz-L5J9.js → settings-2-BnIPgWLg.js} +1 -1
- package/storybook-static/assets/{sortable-BMuu2DRC.js → sortable-CSXMP4VV.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-eBmofw1l.js → syntaxhighlighter-QEQV7K2Y-BXIJBARj.js} +1 -1
- package/storybook-static/assets/{trash-2-DEbF1hh6.js → trash-2-25yeOC8e.js} +1 -1
- package/storybook-static/assets/{triangle-alert--nwD_1ZX.js → triangle-alert-0L7_o0IU.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-DSOGiMIw.js → useODataSelectBase-D9KnZAJ2.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-Cn_XaKz_.js → useODataTreeData-BRlsCagQ.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-B5ZZQg8g.js → usePickerQuery-B05uUMJ9.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-Cqy5IfOJ.js → usePickerTriggerController-YWagu6f6.js} +1 -1
- package/storybook-static/assets/{x-DSHJbBBz.js → x-i4zUW10Y.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/NotificationsHost.stories-BYmVl44l.js +0 -29
- package/storybook-static/assets/iframe-f5g4GUQw.js +0 -1
|
@@ -8,6 +8,6 @@ notify as NotificationApi,
|
|
|
8
8
|
* @deprecated use `import { notify } from "@ryuzaki13/react-foundation-lib/notifications";`
|
|
9
9
|
*/
|
|
10
10
|
notify };
|
|
11
|
-
export * from "./model
|
|
11
|
+
export * from "./model";
|
|
12
12
|
export * from "./ui/NotificationsHost";
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACvE,OAAO;AACN;;GAEG;AACH,MAAM,IAAI,eAAe;AACzB;;GAEG;AACH,MAAM,EACN,CAAC;AAEF,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACvE,OAAO;AACN;;GAEG;AACH,MAAM,IAAI,eAAe;AACzB;;GAEG;AACH,MAAM,EACN,CAAC;AAEF,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC"}
|
|
@@ -7,8 +7,10 @@ import { createContext as u, useContext as d, useEffect as f, useMemo as p } fro
|
|
|
7
7
|
import { createMissingContextError as m } from "@ryuzaki13/react-foundation-lib/error";
|
|
8
8
|
import { bindNotifications as h, createNotificationsStore as g, notify as _ } from "@ryuzaki13/react-foundation-lib/notifications";
|
|
9
9
|
import { useStore as v } from "zustand";
|
|
10
|
-
//#region src/notifications/model/
|
|
10
|
+
//#region src/notifications/model/notificationsContext.ts
|
|
11
11
|
var y = u(null);
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/notifications/model/NotificationsProvider.tsx
|
|
12
14
|
function b({ children: e }) {
|
|
13
15
|
let t = p(() => g(), []);
|
|
14
16
|
return f(() => h(t), [t]), /* @__PURE__ */ c(y.Provider, {
|
|
@@ -16,19 +18,37 @@ function b({ children: e }) {
|
|
|
16
18
|
children: e
|
|
17
19
|
});
|
|
18
20
|
}
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region src/notifications/model/useNotificationsStore.ts
|
|
19
23
|
function x() {
|
|
20
24
|
let e = d(y);
|
|
21
25
|
if (!e) throw m({
|
|
22
|
-
hookName: "
|
|
26
|
+
hookName: "useNotificationsStore",
|
|
23
27
|
providerName: "NotificationsProvider"
|
|
24
28
|
});
|
|
25
29
|
return e;
|
|
26
30
|
}
|
|
27
|
-
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/notifications/model/useNotificationById.ts
|
|
33
|
+
function S(e) {
|
|
34
|
+
let t = x();
|
|
35
|
+
return v(t, (t) => t.items.find((t) => t.id === e));
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/notifications/model/useNotificationHistory.ts
|
|
39
|
+
function C() {
|
|
40
|
+
let e = x();
|
|
41
|
+
return v(e, (e) => e.history);
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/notifications/model/useNotifications.ts
|
|
45
|
+
function w() {
|
|
28
46
|
let e = x();
|
|
29
47
|
return v(e, (e) => e.items);
|
|
30
48
|
}
|
|
31
|
-
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/notifications/model/useNotify.ts
|
|
51
|
+
function T() {
|
|
32
52
|
let e = x(), t = v(e, (e) => e.actions), n = (e) => (n, r) => t.push({
|
|
33
53
|
type: e,
|
|
34
54
|
message: n,
|
|
@@ -42,11 +62,7 @@ function C() {
|
|
|
42
62
|
error: n("error")
|
|
43
63
|
};
|
|
44
64
|
}
|
|
45
|
-
|
|
46
|
-
let t = x();
|
|
47
|
-
return v(t, (t) => t.items.find((t) => t.id === e));
|
|
48
|
-
}
|
|
49
|
-
var T = {
|
|
65
|
+
var E = {
|
|
50
66
|
container: "STGQ3g",
|
|
51
67
|
card: "RaiISE",
|
|
52
68
|
info: "cM81wO",
|
|
@@ -61,7 +77,7 @@ var T = {
|
|
|
61
77
|
title: "_4YDLB5",
|
|
62
78
|
message: "CK3Bqv",
|
|
63
79
|
actions: "nLmQut"
|
|
64
|
-
},
|
|
80
|
+
}, D = {
|
|
65
81
|
info: {
|
|
66
82
|
title: "Информация",
|
|
67
83
|
Icon: a
|
|
@@ -79,47 +95,47 @@ var T = {
|
|
|
79
95
|
Icon: r
|
|
80
96
|
}
|
|
81
97
|
};
|
|
82
|
-
function
|
|
83
|
-
let r =
|
|
98
|
+
function O() {
|
|
99
|
+
let r = w(), { dismiss: i } = T();
|
|
84
100
|
return /* @__PURE__ */ c("section", {
|
|
85
|
-
className:
|
|
101
|
+
className: E.container,
|
|
86
102
|
"aria-label": "Область уведомлений",
|
|
87
103
|
children: r.map((r) => {
|
|
88
|
-
let a =
|
|
104
|
+
let a = D[r.type], o = r.title ?? a.title, u = a.Icon;
|
|
89
105
|
return /* @__PURE__ */ c("div", {
|
|
90
106
|
role: r.type === "error" ? "alert" : "status",
|
|
91
107
|
"aria-atomic": "true",
|
|
92
|
-
className: n(
|
|
108
|
+
className: n(E.card, E[r.type]),
|
|
93
109
|
children: /* @__PURE__ */ l(e, {
|
|
94
110
|
align: "start",
|
|
95
111
|
justify: "between",
|
|
96
112
|
gap: "sm",
|
|
97
|
-
className:
|
|
113
|
+
className: E.header,
|
|
98
114
|
children: [/* @__PURE__ */ l(e, {
|
|
99
115
|
align: "start",
|
|
100
116
|
gap: "sm",
|
|
101
|
-
className:
|
|
117
|
+
className: E.content,
|
|
102
118
|
children: [/* @__PURE__ */ c("span", {
|
|
103
|
-
className:
|
|
119
|
+
className: E.icon,
|
|
104
120
|
"aria-hidden": "true",
|
|
105
121
|
children: /* @__PURE__ */ c(u, {})
|
|
106
122
|
}), /* @__PURE__ */ l("div", {
|
|
107
|
-
className:
|
|
123
|
+
className: E.copy,
|
|
108
124
|
children: [
|
|
109
125
|
/* @__PURE__ */ c("div", {
|
|
110
|
-
className:
|
|
126
|
+
className: E.kicker,
|
|
111
127
|
children: a.title
|
|
112
128
|
}),
|
|
113
129
|
r.title ? /* @__PURE__ */ c("div", {
|
|
114
|
-
className:
|
|
130
|
+
className: E.title,
|
|
115
131
|
children: o
|
|
116
132
|
}) : null,
|
|
117
133
|
/* @__PURE__ */ c("div", {
|
|
118
|
-
className:
|
|
134
|
+
className: E.message,
|
|
119
135
|
children: r.message
|
|
120
136
|
}),
|
|
121
137
|
r.actions?.length ? /* @__PURE__ */ c("div", {
|
|
122
|
-
className:
|
|
138
|
+
className: E.actions,
|
|
123
139
|
children: r.actions.map((e) => /* @__PURE__ */ c(t, {
|
|
124
140
|
tone: e.tone ?? r.type,
|
|
125
141
|
appearance: "outline",
|
|
@@ -146,6 +162,6 @@ function D() {
|
|
|
146
162
|
});
|
|
147
163
|
}
|
|
148
164
|
//#endregion
|
|
149
|
-
export { _ as NotificationApi, _ as notify,
|
|
165
|
+
export { _ as NotificationApi, _ as notify, O as NotificationsHost, b as NotificationsProvider, S as useNotificationById, C as useNotificationHistory, w as useNotifications, T as useNotify };
|
|
150
166
|
|
|
151
167
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/notifications/model/NotificationsProvider.tsx","../../src/notifications/ui/Notification.module.scss","../../src/notifications/ui/NotificationsHost.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport { createContext, PropsWithChildren, useContext, useEffect, useMemo } from \"react\";\n\nimport { createMissingContextError } from \"@ryuzaki13/react-foundation-lib/error\";\nimport {\n\tbindNotifications,\n\tcreateNotificationsStore,\n\tNotificationId,\n\tNotificationPushInput,\n\tNotificationsStoreApi,\n\tNotificationType\n} from \"@ryuzaki13/react-foundation-lib/notifications\";\nimport { useStore } from \"zustand\";\n\nconst NotificationsContext = createContext<NotificationsStoreApi | null>(null);\n\n/**\n * Провайдер уведомлений приложения. Хранит состояние списка уведомлений и предоставляет хуки доступа к нему.\n */\nexport function NotificationsProvider({ children }: PropsWithChildren) {\n\tconst store = useMemo(() => createNotificationsStore(), []);\n\n\tuseEffect(() => {\n\t\treturn bindNotifications(store);\n\t}, [store]);\n\n\treturn <NotificationsContext.Provider value={store}>{children}</NotificationsContext.Provider>;\n}\n\nfunction useNotificationApi() {\n\tconst ctx = useContext(NotificationsContext);\n\tif (!ctx) {\n\t\tthrow createMissingContextError({\n\t\t\thookName: \"useNotificationApi\",\n\t\t\tproviderName: \"NotificationsProvider\"\n\t\t});\n\t}\n\treturn ctx;\n}\n\nexport function useNotifications() {\n\tconst api = useNotificationApi();\n\treturn useStore(api, (s) => s.items);\n}\n\nexport function useNotify() {\n\tconst api = useNotificationApi();\n\tconst actions = useStore(api, (s) => s.actions);\n\n\tconst mk = (type: NotificationType) => (message: string, opts?: Omit<NotificationPushInput, \"type\" | \"message\">) =>\n\t\tactions.push({ type, message, ...opts });\n\n\treturn {\n\t\t...actions,\n\t\tsuccess: mk(\"success\"),\n\t\tinfo: mk(\"info\"),\n\t\twarning: mk(\"warning\"),\n\t\terror: mk(\"error\")\n\t};\n}\n\nexport function useNotificationById(id: NotificationId) {\n\tconst api = useNotificationApi();\n\treturn useStore(api, (s) => s.items.find((n) => n.id === id));\n}\n","@use \"@/styles/mixins\" as *;\n@use \"@/styles/tone-derived\" as toneDerived;\n\n.container {\n\tposition: fixed;\n\tz-index: var(--z-notify);\n\tbottom: 0;\n\tleft: 0;\n\tdisplay: grid;\n\tgap: var(--space-sm);\n\tpadding: var(--space-lg);\n\twidth: min(28em, calc(100dvw - var(--space-lg) * 2));\n\tpointer-events: none;\n}\n\n.card {\n\t--notify-accent: var(--border-1);\n\t--notify-accent-surface: var(--surface-1);\n\t--notify-accent-text: var(--accent-text);\n\n\tposition: relative;\n\toverflow: hidden;\n\tpointer-events: auto;\n\twidth: 100%;\n\tpadding: var(--space-md);\n\t// border: var(--border);\n\tborder-left: 0.3125em solid var(--notify-accent);\n\tborder-radius: var(--radius-md);\n\tbackground: linear-gradient(37deg, var(--notify-accent-surface), var(--surface-0));\n\tcolor: var(--content-0);\n\tbox-shadow: var(--shadow-md);\n}\n\n.info {\n\t--notify-accent: var(--info-border);\n\t@include toneDerived.tone-soft-declaration(\"--notify-accent-surface\", \"info\");\n\t--notify-accent-text: var(--info-text);\n}\n\n.success {\n\t--notify-accent: var(--success-border);\n\t@include toneDerived.tone-soft-declaration(\"--notify-accent-surface\", \"success\");\n\t--notify-accent-text: var(--success-text);\n}\n\n.warning {\n\t--notify-accent: var(--warning-border);\n\t@include toneDerived.tone-soft-declaration(\"--notify-accent-surface\", \"warning\");\n\t--notify-accent-text: var(--warning-text);\n}\n\n.error {\n\t--notify-accent: var(--error-border);\n\t@include toneDerived.tone-soft-declaration(\"--notify-accent-surface\", \"error\");\n\t--notify-accent-text: var(--error-text);\n}\n\n.header,\n.content,\n.copy {\n\tmin-width: 0;\n}\n\n.content {\n\tmin-width: 0;\n\tflex: 1;\n}\n\n.icon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\twidth: var(--control-height);\n\theight: var(--control-height);\n\tborder-radius: 50%;\n\tbackground-color: var(--notify-accent-surface);\n\tcolor: var(--notify-accent-text);\n\tborder: var(--border-width) solid color-mix(in srgb, var(--notify-accent) 22%, transparent);\n\n\tsvg {\n\t\twidth: 1.125em;\n\t\theight: 1.125em;\n\t}\n}\n\n.kicker {\n\tmargin-bottom: var(--space-xs);\n\tcolor: var(--notify-accent-text);\n\tfont-size: var(--font-size-xs);\n\tfont-weight: 600;\n\tfont-variation-settings: \"wght\" 600;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n}\n\n.title {\n\tcolor: var(--notify-accent-text);\n\tfont-weight: 600;\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.message {\n\tmargin-top: var(--space-xs);\n\tcolor: var(--content-0);\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n}\n\n.actions {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: var(--space-xs);\n\tmargin-top: var(--space-sm);\n}\n\n@include mobile {\n\t.container {\n\t\tpadding: var(--space-md);\n\t\t// Контейнер занимает viewport целиком, а padding задаёт карточкам симметричные отступы от его краёв.\n\t\twidth: 100dvw;\n\t}\n}\n","import { type NotificationType } from \"@ryuzaki13/react-foundation-lib/notifications\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { AlertCircleIcon, CheckCircle2Icon, InfoIcon, TriangleAlertIcon, XIcon } from \"lucide-react\";\n\nimport { Button } from \"../../button\";\nimport { FlexContainer } from \"../../flex\";\nimport { useNotifications, useNotify } from \"../model/NotificationsProvider\";\n\nimport styles from \"./Notification.module.scss\";\n\nconst notificationConfig: Record<\n\tNotificationType,\n\t{\n\t\ttitle: string;\n\t\tIcon: typeof InfoIcon;\n\t}\n> = {\n\tinfo: {\n\t\ttitle: \"Информация\",\n\t\tIcon: InfoIcon\n\t},\n\tsuccess: {\n\t\ttitle: \"Успешно\",\n\t\tIcon: CheckCircle2Icon\n\t},\n\twarning: {\n\t\ttitle: \"Предупреждение\",\n\t\tIcon: TriangleAlertIcon\n\t},\n\terror: {\n\t\ttitle: \"Ошибка\",\n\t\tIcon: AlertCircleIcon\n\t}\n};\n\n/**\n * Хост для визуального отображения очереди уведомлений.\n * Обычно монтируется один раз на уровне приложения рядом с провайдером уведомлений.\n */\nexport function NotificationsHost() {\n\tconst items = useNotifications();\n\tconst { dismiss } = useNotify();\n\n\treturn (\n\t\t<section className={styles.container} aria-label=\"Область уведомлений\">\n\t\t\t{items.map((notification) => {\n\t\t\t\tconst config = notificationConfig[notification.type];\n\t\t\t\tconst title = notification.title ?? config.title;\n\t\t\t\tconst Icon = config.Icon;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={notification.id}\n\t\t\t\t\t\trole={notification.type === \"error\" ? \"alert\" : \"status\"}\n\t\t\t\t\t\taria-atomic=\"true\"\n\t\t\t\t\t\tclassName={cn(styles.card, styles[notification.type])}>\n\t\t\t\t\t\t<FlexContainer align=\"start\" justify=\"between\" gap=\"sm\" className={styles.header}>\n\t\t\t\t\t\t\t<FlexContainer align=\"start\" gap=\"sm\" className={styles.content}>\n\t\t\t\t\t\t\t\t<span className={styles.icon} aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t<Icon />\n\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t<div className={styles.copy}>\n\t\t\t\t\t\t\t\t\t<div className={styles.kicker}>{config.title}</div>\n\t\t\t\t\t\t\t\t\t{notification.title ? <div className={styles.title}>{title}</div> : null}\n\t\t\t\t\t\t\t\t\t<div className={styles.message}>{notification.message}</div>\n\n\t\t\t\t\t\t\t\t\t{notification.actions?.length ? (\n\t\t\t\t\t\t\t\t\t\t<div className={styles.actions}>\n\t\t\t\t\t\t\t\t\t\t\t{notification.actions.map((action) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={action.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttone={action.tone ?? notification.type}\n\t\t\t\t\t\t\t\t\t\t\t\t\tappearance=\"outline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"notification-action-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata-action=\"notification-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => void action.onClick()}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</FlexContainer>\n\n\t\t\t\t\t\t\t{notification.dismissible !== false ? (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={<XIcon />}\n\t\t\t\t\t\t\t\t\tappearance=\"ghost\"\n\t\t\t\t\t\t\t\t\ttone={notification.type}\n\t\t\t\t\t\t\t\t\tonClick={() => dismiss(notification.id)}\n\t\t\t\t\t\t\t\t\taria-label={`Закрыть уведомление «${title}»`}\n\t\t\t\t\t\t\t\t\tdata-ui=\"notification-dismiss-button\"\n\t\t\t\t\t\t\t\t\tdata-action=\"dismiss-notification\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t</FlexContainer>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</section>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/notifications/model/notificationsContext.ts","../../src/notifications/model/NotificationsProvider.tsx","../../src/notifications/model/useNotificationsStore.ts","../../src/notifications/model/useNotificationById.ts","../../src/notifications/model/useNotificationHistory.ts","../../src/notifications/model/useNotifications.ts","../../src/notifications/model/useNotify.ts","../../src/notifications/ui/Notification.module.scss","../../src/notifications/ui/NotificationsHost.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nimport { type NotificationsStoreApi } from \"@ryuzaki13/react-foundation-lib/notifications\";\n\n/** Внутренний канал store: публичный доступ host-проект получает через notification-хуки. */\nexport const NotificationsContext = createContext<NotificationsStoreApi | null>(null);\n","import { type PropsWithChildren, useEffect, useMemo } from \"react\";\n\nimport { bindNotifications, createNotificationsStore } from \"@ryuzaki13/react-foundation-lib/notifications\";\n\nimport { NotificationsContext } from \"./notificationsContext\";\n\n/**\n * Провайдер уведомлений приложения. Хранит активный toast-стек и полную историю уведомлений.\n */\nexport function NotificationsProvider({ children }: PropsWithChildren) {\n\tconst store = useMemo(() => createNotificationsStore(), []);\n\n\tuseEffect(() => bindNotifications(store), [store]);\n\n\treturn <NotificationsContext.Provider value={store}>{children}</NotificationsContext.Provider>;\n}\n","import { useContext } from \"react\";\n\nimport { createMissingContextError } from \"@ryuzaki13/react-foundation-lib/error\";\n\nimport { NotificationsContext } from \"./notificationsContext\";\n\n/** Возвращает store ближайшего NotificationsProvider для внутренних notification-хуков. */\nexport function useNotificationsStore() {\n\tconst store = useContext(NotificationsContext);\n\n\tif (!store) {\n\t\tthrow createMissingContextError({\n\t\t\thookName: \"useNotificationsStore\",\n\t\t\tproviderName: \"NotificationsProvider\"\n\t\t});\n\t}\n\n\treturn store;\n}\n","import { type NotificationId } from \"@ryuzaki13/react-foundation-lib/notifications\";\nimport { useStore } from \"zustand\";\n\nimport { useNotificationsStore } from \"./useNotificationsStore\";\n\n/** Возвращает активное toast-уведомление по идентификатору. */\nexport function useNotificationById(id: NotificationId) {\n\tconst store = useNotificationsStore();\n\treturn useStore(store, (state) => state.items.find((notification) => notification.id === id));\n}\n","import { useStore } from \"zustand\";\n\nimport { useNotificationsStore } from \"./useNotificationsStore\";\n\n/**\n * Возвращает полную историю уведомлений за время жизни NotificationsProvider.\n * Hook не задаёт контейнер или разметку: host-проект сам отображает историю на странице, в модалке или диалоге.\n */\nexport function useNotificationHistory() {\n\tconst store = useNotificationsStore();\n\treturn useStore(store, (state) => state.history);\n}\n","import { useStore } from \"zustand\";\n\nimport { useNotificationsStore } from \"./useNotificationsStore\";\n\n/** Возвращает активные уведомления, которые отображает краткоживущий toast-host. */\nexport function useNotifications() {\n\tconst store = useNotificationsStore();\n\treturn useStore(store, (state) => state.items);\n}\n","import { type NotificationPushInput, type NotificationType } from \"@ryuzaki13/react-foundation-lib/notifications\";\nimport { useStore } from \"zustand\";\n\nimport { useNotificationsStore } from \"./useNotificationsStore\";\n\n/** Возвращает действия notification-store и сокращённые методы для каждого типа уведомления. */\nexport function useNotify() {\n\tconst store = useNotificationsStore();\n\tconst actions = useStore(store, (state) => state.actions);\n\n\tconst createShortcut = (type: NotificationType) => (message: string, options?: Omit<NotificationPushInput, \"type\" | \"message\">) =>\n\t\tactions.push({ type, message, ...options });\n\n\treturn {\n\t\t...actions,\n\t\tsuccess: createShortcut(\"success\"),\n\t\tinfo: createShortcut(\"info\"),\n\t\twarning: createShortcut(\"warning\"),\n\t\terror: createShortcut(\"error\")\n\t};\n}\n","@use \"@/styles/mixins\" as *;\n@use \"@/styles/tone-derived\" as toneDerived;\n\n.container {\n\tposition: fixed;\n\tz-index: var(--z-notify);\n\tbottom: 0;\n\tleft: 0;\n\tdisplay: grid;\n\tgap: var(--space-sm);\n\tpadding: var(--space-lg);\n\twidth: min(28em, calc(100dvw - var(--space-lg) * 2));\n\tpointer-events: none;\n}\n\n.card {\n\t--notify-accent: var(--border-1);\n\t--notify-accent-surface: var(--surface-1);\n\t--notify-accent-text: var(--accent-text);\n\n\tposition: relative;\n\toverflow: hidden;\n\tpointer-events: auto;\n\twidth: 100%;\n\tpadding: var(--space-md);\n\t// border: var(--border);\n\tborder-left: 0.3125em solid var(--notify-accent);\n\tborder-radius: var(--radius-md);\n\tbackground: linear-gradient(37deg, var(--notify-accent-surface), var(--surface-0));\n\tcolor: var(--content-0);\n\tbox-shadow: var(--shadow-md);\n}\n\n.info {\n\t--notify-accent: var(--info-border);\n\t@include toneDerived.tone-soft-declaration(\"--notify-accent-surface\", \"info\");\n\t--notify-accent-text: var(--info-text);\n}\n\n.success {\n\t--notify-accent: var(--success-border);\n\t@include toneDerived.tone-soft-declaration(\"--notify-accent-surface\", \"success\");\n\t--notify-accent-text: var(--success-text);\n}\n\n.warning {\n\t--notify-accent: var(--warning-border);\n\t@include toneDerived.tone-soft-declaration(\"--notify-accent-surface\", \"warning\");\n\t--notify-accent-text: var(--warning-text);\n}\n\n.error {\n\t--notify-accent: var(--error-border);\n\t@include toneDerived.tone-soft-declaration(\"--notify-accent-surface\", \"error\");\n\t--notify-accent-text: var(--error-text);\n}\n\n.header,\n.content,\n.copy {\n\tmin-width: 0;\n}\n\n.content {\n\tmin-width: 0;\n\tflex: 1;\n}\n\n.icon {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\twidth: var(--control-height);\n\theight: var(--control-height);\n\tborder-radius: 50%;\n\tbackground-color: var(--notify-accent-surface);\n\tcolor: var(--notify-accent-text);\n\tborder: var(--border-width) solid color-mix(in srgb, var(--notify-accent) 22%, transparent);\n\n\tsvg {\n\t\twidth: 1.125em;\n\t\theight: 1.125em;\n\t}\n}\n\n.kicker {\n\tmargin-bottom: var(--space-xs);\n\tcolor: var(--notify-accent-text);\n\tfont-size: var(--font-size-xs);\n\tfont-weight: 600;\n\tfont-variation-settings: \"wght\" 600;\n\tletter-spacing: 0.04em;\n\ttext-transform: uppercase;\n}\n\n.title {\n\tcolor: var(--notify-accent-text);\n\tfont-weight: 600;\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.message {\n\tmargin-top: var(--space-xs);\n\tcolor: var(--content-0);\n\twhite-space: pre-wrap;\n\tword-break: break-word;\n}\n\n.actions {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: var(--space-xs);\n\tmargin-top: var(--space-sm);\n}\n\n@include mobile {\n\t.container {\n\t\tpadding: var(--space-md);\n\t\t// Контейнер занимает viewport целиком, а padding задаёт карточкам симметричные отступы от его краёв.\n\t\twidth: 100dvw;\n\t}\n}\n","import { type NotificationType } from \"@ryuzaki13/react-foundation-lib/notifications\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { AlertCircleIcon, CheckCircle2Icon, InfoIcon, TriangleAlertIcon, XIcon } from \"lucide-react\";\n\nimport { Button } from \"../../button\";\nimport { FlexContainer } from \"../../flex\";\nimport { useNotifications, useNotify } from \"../model\";\n\nimport styles from \"./Notification.module.scss\";\n\nconst notificationConfig: Record<\n\tNotificationType,\n\t{\n\t\ttitle: string;\n\t\tIcon: typeof InfoIcon;\n\t}\n> = {\n\tinfo: {\n\t\ttitle: \"Информация\",\n\t\tIcon: InfoIcon\n\t},\n\tsuccess: {\n\t\ttitle: \"Успешно\",\n\t\tIcon: CheckCircle2Icon\n\t},\n\twarning: {\n\t\ttitle: \"Предупреждение\",\n\t\tIcon: TriangleAlertIcon\n\t},\n\terror: {\n\t\ttitle: \"Ошибка\",\n\t\tIcon: AlertCircleIcon\n\t}\n};\n\n/**\n * Хост для визуального отображения активного toast-стека.\n * Обычно монтируется один раз на уровне приложения рядом с провайдером уведомлений.\n * Полную историю host-проект отображает отдельно через useNotificationHistory.\n */\nexport function NotificationsHost() {\n\tconst items = useNotifications();\n\tconst { dismiss } = useNotify();\n\n\treturn (\n\t\t<section className={styles.container} aria-label=\"Область уведомлений\">\n\t\t\t{items.map((notification) => {\n\t\t\t\tconst config = notificationConfig[notification.type];\n\t\t\t\tconst title = notification.title ?? config.title;\n\t\t\t\tconst Icon = config.Icon;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={notification.id}\n\t\t\t\t\t\trole={notification.type === \"error\" ? \"alert\" : \"status\"}\n\t\t\t\t\t\taria-atomic=\"true\"\n\t\t\t\t\t\tclassName={cn(styles.card, styles[notification.type])}>\n\t\t\t\t\t\t<FlexContainer align=\"start\" justify=\"between\" gap=\"sm\" className={styles.header}>\n\t\t\t\t\t\t\t<FlexContainer align=\"start\" gap=\"sm\" className={styles.content}>\n\t\t\t\t\t\t\t\t<span className={styles.icon} aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t<Icon />\n\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t<div className={styles.copy}>\n\t\t\t\t\t\t\t\t\t<div className={styles.kicker}>{config.title}</div>\n\t\t\t\t\t\t\t\t\t{notification.title ? <div className={styles.title}>{title}</div> : null}\n\t\t\t\t\t\t\t\t\t<div className={styles.message}>{notification.message}</div>\n\n\t\t\t\t\t\t\t\t\t{notification.actions?.length ? (\n\t\t\t\t\t\t\t\t\t\t<div className={styles.actions}>\n\t\t\t\t\t\t\t\t\t\t\t{notification.actions.map((action) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={action.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\ttone={action.tone ?? notification.type}\n\t\t\t\t\t\t\t\t\t\t\t\t\tappearance=\"outline\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata-ui=\"notification-action-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdata-action=\"notification-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => void action.onClick()}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{action.label}\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</FlexContainer>\n\n\t\t\t\t\t\t\t{notification.dismissible !== false ? (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={<XIcon />}\n\t\t\t\t\t\t\t\t\tappearance=\"ghost\"\n\t\t\t\t\t\t\t\t\ttone={notification.type}\n\t\t\t\t\t\t\t\t\tonClick={() => dismiss(notification.id)}\n\t\t\t\t\t\t\t\t\taria-label={`Закрыть уведомление «${title}»`}\n\t\t\t\t\t\t\t\t\tdata-ui=\"notification-dismiss-button\"\n\t\t\t\t\t\t\t\t\tdata-action=\"dismiss-notification\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t</FlexContainer>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</section>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
import { PropsWithChildren } from "react";
|
|
2
|
-
import { NotificationId, NotificationPushInput } from "@ryuzaki13/react-foundation-lib/notifications";
|
|
1
|
+
import { type PropsWithChildren } from "react";
|
|
3
2
|
/**
|
|
4
|
-
* Провайдер уведомлений приложения. Хранит
|
|
3
|
+
* Провайдер уведомлений приложения. Хранит активный toast-стек и полную историю уведомлений.
|
|
5
4
|
*/
|
|
6
5
|
export declare function NotificationsProvider({ children }: PropsWithChildren): import("react").JSX.Element;
|
|
7
|
-
export declare function useNotifications(): import("@ryuzaki13/react-foundation-lib/notifications").Notification[];
|
|
8
|
-
export declare function useNotify(): {
|
|
9
|
-
success: (message: string, opts?: Omit<NotificationPushInput, "type" | "message">) => string;
|
|
10
|
-
info: (message: string, opts?: Omit<NotificationPushInput, "type" | "message">) => string;
|
|
11
|
-
warning: (message: string, opts?: Omit<NotificationPushInput, "type" | "message">) => string;
|
|
12
|
-
error: (message: string, opts?: Omit<NotificationPushInput, "type" | "message">) => string;
|
|
13
|
-
push: (input: NotificationPushInput) => NotificationId;
|
|
14
|
-
update: (id: NotificationId, patch: import("@ryuzaki13/react-foundation-lib/notifications").NotificationUpdatePatch) => boolean;
|
|
15
|
-
upsert: (input: NotificationPushInput & {
|
|
16
|
-
id: NotificationId;
|
|
17
|
-
}) => NotificationId;
|
|
18
|
-
dismiss: (id: NotificationId) => void;
|
|
19
|
-
clear: () => void;
|
|
20
|
-
};
|
|
21
|
-
export declare function useNotificationById(id: NotificationId): import("@ryuzaki13/react-foundation-lib/notifications").Notification | undefined;
|
|
22
6
|
//# sourceMappingURL=NotificationsProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationsProvider.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/NotificationsProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NotificationsProvider.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/NotificationsProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AAMnE;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,+BAMpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type NotificationsStoreApi } from "@ryuzaki13/react-foundation-lib/notifications";
|
|
2
|
+
/** Внутренний канал store: публичный доступ host-проект получает через notification-хуки. */
|
|
3
|
+
export declare const NotificationsContext: import("react").Context<NotificationsStoreApi | null>;
|
|
4
|
+
//# sourceMappingURL=notificationsContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notificationsContext.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/notificationsContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAE3F,6FAA6F;AAC7F,eAAO,MAAM,oBAAoB,uDAAoD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type NotificationId } from "@ryuzaki13/react-foundation-lib/notifications";
|
|
2
|
+
/** Возвращает активное toast-уведомление по идентификатору. */
|
|
3
|
+
export declare function useNotificationById(id: NotificationId): import("@ryuzaki13/react-foundation-lib/notifications").Notification | undefined;
|
|
4
|
+
//# sourceMappingURL=useNotificationById.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotificationById.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/useNotificationById.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAKpF,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,cAAc,oFAGrD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Возвращает полную историю уведомлений за время жизни NotificationsProvider.
|
|
3
|
+
* Hook не задаёт контейнер или разметку: host-проект сам отображает историю на странице, в модалке или диалоге.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useNotificationHistory(): import("@ryuzaki13/react-foundation-lib/notifications").Notification[];
|
|
6
|
+
//# sourceMappingURL=useNotificationHistory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotificationHistory.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/useNotificationHistory.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,sBAAsB,2EAGrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/useNotifications.ts"],"names":[],"mappings":"AAIA,oFAAoF;AACpF,wBAAgB,gBAAgB,2EAG/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotificationsStore.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/useNotificationsStore.ts"],"names":[],"mappings":"AAMA,2FAA2F;AAC3F,wBAAgB,qBAAqB,kFAWpC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type NotificationPushInput } from "@ryuzaki13/react-foundation-lib/notifications";
|
|
2
|
+
/** Возвращает действия notification-store и сокращённые методы для каждого типа уведомления. */
|
|
3
|
+
export declare function useNotify(): {
|
|
4
|
+
success: (message: string, options?: Omit<NotificationPushInput, "type" | "message">) => string;
|
|
5
|
+
info: (message: string, options?: Omit<NotificationPushInput, "type" | "message">) => string;
|
|
6
|
+
warning: (message: string, options?: Omit<NotificationPushInput, "type" | "message">) => string;
|
|
7
|
+
error: (message: string, options?: Omit<NotificationPushInput, "type" | "message">) => string;
|
|
8
|
+
push: (input: NotificationPushInput) => import("@ryuzaki13/react-foundation-lib/notifications").NotificationId;
|
|
9
|
+
update: (id: import("@ryuzaki13/react-foundation-lib/notifications").NotificationId, patch: import("@ryuzaki13/react-foundation-lib/notifications").NotificationUpdatePatch) => boolean;
|
|
10
|
+
upsert: (input: NotificationPushInput & {
|
|
11
|
+
id: import("@ryuzaki13/react-foundation-lib/notifications").NotificationId;
|
|
12
|
+
}) => import("@ryuzaki13/react-foundation-lib/notifications").NotificationId;
|
|
13
|
+
dismiss: (id: import("@ryuzaki13/react-foundation-lib/notifications").NotificationId) => void;
|
|
14
|
+
clear: () => void;
|
|
15
|
+
clearHistory: () => void;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=useNotify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNotify.d.ts","sourceRoot":"","sources":["../../../src/notifications/model/useNotify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAyB,MAAM,+CAA+C,CAAC;AAKlH,gGAAgG;AAChG,wBAAgB,SAAS;uBAIqC,MAAM,YAAY,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;oBAAjE,MAAM,YAAY,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;uBAAjE,MAAM,YAAY,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;qBAAjE,MAAM,YAAY,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;;;;;;;;;EAU9H"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Хост для визуального отображения
|
|
2
|
+
* Хост для визуального отображения активного toast-стека.
|
|
3
3
|
* Обычно монтируется один раз на уровне приложения рядом с провайдером уведомлений.
|
|
4
|
+
* Полную историю host-проект отображает отдельно через useNotificationHistory.
|
|
4
5
|
*/
|
|
5
6
|
export declare function NotificationsHost(): import("react").JSX.Element;
|
|
6
7
|
//# sourceMappingURL=NotificationsHost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationsHost.d.ts","sourceRoot":"","sources":["../../../src/notifications/ui/NotificationsHost.tsx"],"names":[],"mappings":"AAmCA
|
|
1
|
+
{"version":3,"file":"NotificationsHost.d.ts","sourceRoot":"","sources":["../../../src/notifications/ui/NotificationsHost.tsx"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,wBAAgB,iBAAiB,gCA+DhC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryuzaki13/react-foundation-ui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.7.0",
|
|
4
4
|
"description": "Reusable React foundation UI primitives and Storybook stories.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ryuzaki13",
|
|
@@ -394,7 +394,7 @@
|
|
|
394
394
|
"@lexical/selection": ">=0.46.0 <1.0.0",
|
|
395
395
|
"@lexical/utils": ">=0.46.0 <1.0.0",
|
|
396
396
|
"@ryuzaki13/react-foundation-api": ">=2.0.0 <3.0.0",
|
|
397
|
-
"@ryuzaki13/react-foundation-lib": ">=2.
|
|
397
|
+
"@ryuzaki13/react-foundation-lib": ">=2.4.0 <3.0.0",
|
|
398
398
|
"@tanstack/react-query": ">=5.101.4 <6.0.0",
|
|
399
399
|
"@tanstack/react-router": ">=1.170.23 <2.0.0",
|
|
400
400
|
"@tanstack/react-table": ">=9.1.0 <10.0.0",
|
|
@@ -491,7 +491,7 @@
|
|
|
491
491
|
"@lexical/selection": "^0.49.0",
|
|
492
492
|
"@lexical/utils": "^0.49.0",
|
|
493
493
|
"@ryuzaki13/react-foundation-api": "^2.0.0",
|
|
494
|
-
"@ryuzaki13/react-foundation-lib": "^2.
|
|
494
|
+
"@ryuzaki13/react-foundation-lib": "^2.4.0",
|
|
495
495
|
"@storybook/addon-a11y": "^10.5.5",
|
|
496
496
|
"@storybook/addon-docs": "^10.5.5",
|
|
497
497
|
"@storybook/addon-vitest": "^10.5.5",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-DfqtMMgG.js";import{i as n,r}from"./react-Bl2r1tuC.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-TIr5_lNX.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Badge.stories-BUPuimKi.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:h,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`Badge`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:`Компактная текстовая метка для статусов, категорий, фильтров и коротких служебных пометок`}),`
|
|
4
4
|
`,(0,S.jsx)(t.p,{children:`Badge подходит для коротких подписей, которые должны быстро читаться и не перегружать интерфейс:`}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-DfqtMMgG.js";import{i,n as a,r as o,t as s}from"./BadgeList-CDDAItI6.js";var c=t({Appearances:()=>h,Basic:()=>p,RemovableList:()=>_,Sizes:()=>g,Tones:()=>m,__namedExportsOrder:()=>v,default:()=>f}),l,u,d,f,p,m,h,g,_,v;function y(){return(y=e((()=>{l=n(),i(),a(),u=r(),{useArgs:d}=__STORYBOOK_MODULE_PREVIEW_API__,f={title:`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:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Цветовой тон бейджа.`,control:`inline-radio`,options:[`neutral`,`accent`,`brand`,`success`,`warning`,`error`,`info`]},appearance:{description:`Форма бейджа.`,control:`inline-radio`,options:[`solid`,`outline`,`ghost`,`transparent`]},onRemove:{description:`Показывает кнопку удаления и вызывает обработчик по клику.`,control:!1}}},p={render:function(){let[e]=d();return(0,u.jsx)(o,{...e})}},m={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{tone:`neutral`,appearance:`outline`,children:`Neutral`}),(0,u.jsx)(o,{tone:`accent`,appearance:`solid`,children:`Акцент`}),(0,u.jsx)(o,{tone:`brand`,appearance:`solid`,children:`Бренд`}),(0,u.jsx)(o,{tone:`success`,appearance:`solid`,children:`Успешно`}),(0,u.jsx)(o,{tone:`warning`,appearance:`solid`,children:`Внимание`}),(0,u.jsx)(o,{tone:`error`,appearance:`solid`,children:`Ошибка`}),(0,u.jsx)(o,{tone:`info`,appearance:`solid`,children:`Информация`})]})},h={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{tone:`neutral`,appearance:`solid`,children:`Solid`}),(0,u.jsx)(o,{tone:`neutral`,appearance:`outline`,children:`Outline`}),(0,u.jsx)(o,{tone:`info`,appearance:`ghost`,children:`Ghost`}),(0,u.jsx)(o,{tone:`warning`,appearance:`transparent`,children:`Transparent`})]})},g={render:()=>(0,u.jsxs)(s,{children:[(0,u.jsx)(o,{size:`xs`,children:`Extra Small`}),(0,u.jsx)(o,{size:`sm`,children:`Small`}),(0,u.jsx)(o,{size:`md`,children:`Medium`}),(0,u.jsx)(o,{size:`lg`,children:`Large`}),(0,u.jsx)(o,{size:`xl`,children:`Extra Large`})]})},_={render:()=>{let[e,t]=(0,l.useState)([`Фильтр A`,`Фильтр B`,`Фильтр C`]);return(0,u.jsx)(s,{children:e.map(e=>(0,u.jsx)(o,{tone:`info`,appearance:`outline`,onRemove:()=>t(t=>t.filter(t=>t!==e)),children:e},e))})}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: function Render() {
|
|
3
3
|
const [args] = useArgs<BadgeStoryArgs>();
|
|
4
4
|
return <Badge {...args} />;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./x-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./x-i4zUW10Y.js";import{n as i}from"./iframe-DfqtMMgG.js";import{a,i as o}from"./utils-tg3ibbzi.js";import{c as s,i as c}from"./array-D-_yMMUK-DnJ_b27D.js";import{n as l,t as u}from"./FloatingPopover-CjNAEFQy.js";import{a as d,i as f,r as p,t as m}from"./uiClasses-Bar5W7-L.js";import{n as h,t as g}from"./FlexContainer-B1y3dds2.js";function _({maxChar:e,placement:t=`left`,closeDelay:n=0,maxWidth:r,children:i,block:a,state:o,textWrap:c,textWrapProps:l}){let d=s(i);if(!d.length||e&&d.length<e)return(0,v.jsx)(`span`,{children:d});let f=c??`div`,p={style:{display:a?`block`:`inline-block`,width:e?`${e-3}ch`:`auto`},className:`textOverflow`},m={...l,...p,style:{...l?.style,...p.style},className:[l?.className,p.className].filter(Boolean).join(` `)};return(0,v.jsx)(u,{state:o,placement:t,openOnHover:!0,content:d,closeDelay:n,maxWidth:r,children:(0,v.jsx)(f,{...m,children:d})})}var v;function y(){return(y=e((()=>{c(),l(),v=i(),_.__docgenInfo={description:``,methods:[],displayName:`TextOverflow`,props:{children:{required:!0,tsType:{name:`string`},description:``},maxChar:{required:!1,tsType:{name:`number`},description:``},maxWidth:{required:!1,tsType:{name:`number`},description:`Максимальная ширина тултипа в em.`},placement:{required:!1,tsType:{name:`Placement`},description:``,defaultValue:{value:`"left"`,computed:!1}},closeDelay:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0`,computed:!1}},block:{required:!1,tsType:{name:`literal`,value:`true`},description:`Для работы text-overflow элемент обязан быть блочным или inline-block.
|
|
2
2
|
Если в качестве обёртки передается инлайновый компонент, то он будет
|
|
3
3
|
перезаписан через стили на display: block или inline-block в зависимости
|
|
4
4
|
от установки данного пропса.`},state:{required:!1,tsType:{name:`union`,raw:`"information" | "error" | "warning" | "success" | "negative"`,elements:[{name:`literal`,value:`"information"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"negative"`}]},description:``},textWrap:{required:!1,tsType:{name:`T`},description:``},textWrapProps:{required:!1,tsType:{name:`Omit`,elements:[{name:`ComponentProps`,elements:[{name:`T`}],raw:`ComponentProps<T>`},{name:`literal`,value:`"children"`}],raw:`Omit<ComponentProps<T>, "children">`},description:``}}}})))()}var b,x,S,C,w,T,E,D,O,k;function A(){return(A=e((()=>{b=`qBtmnH`,x=`p-HsHY`,S=`u9tQAE`,C=`FRScRz`,w=`W13uQO`,T=`_3IRcM9`,E=`R3ybI7`,D=`DdWAaC`,O=`_5cXBQF`,k={badge:b,passive:x,sizeXs:S,sizeSm:C,sizeMd:w,sizeLg:T,sizeXl:E,content:D,removeButton:O}})))()}function j({children:e,size:t=`sm`,tone:n,appearance:i,className:o,onRemove:s}){let c=n??`neutral`,l=d({tone:n,appearance:i,fallbackTone:c,fallbackAppearance:c===`neutral`?`outline`:`solid`});return(0,M.jsxs)(`div`,{className:a(k.badge,N[t],p(l.tone),m(l.appearance),!s&&k.passive,o),children:[(0,M.jsx)(_,{maxChar:25,placement:`top`,block:!0,textWrapProps:{className:k.content},children:String(e)}),s&&(0,M.jsx)(`button`,{type:`button`,onClick:s,className:k.removeButton,"aria-label":`Удалить бейдж`,"data-ui":`badge-remove-button`,"data-action":`remove-badge`,children:(0,M.jsx)(r,{})})]})}var M,N;function P(){return(P=e((()=>{o(),n(),y(),f(),A(),M=i(),N={xs:k.sizeXs,sm:k.sizeSm,md:k.sizeMd,lg:k.sizeLg,xl:k.sizeXl},j.__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:`"accent" | "neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"accent"`},{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``},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 F({children:e}){return(0,L.jsx)(g,{inline:!0,wrap:!0,gap:`sm`,align:`baseline`,children:I.Children.map(e,(e,t)=>(0,L.jsx)(I.Fragment,{children:e},t))})}var I,L;function R(){return(R=e((()=>{I=t(),h(),L=i(),F.__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:``}}}})))()}export{P as i,R as n,j as r,F as t};
|