@ryuzaki13/react-foundation-ui 1.9.3 → 1.10.1
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/README.md +43 -0
- package/dist/advanced-search/index.js +4 -4
- package/dist/base-table/index.js +1 -1
- package/dist/button/index.js +1 -1
- package/dist/chunks/{CalendarView-j6rF-EWR.js → CalendarView-BK-Q6GVc.js} +2 -2
- package/dist/chunks/{CalendarView-j6rF-EWR.js.map → CalendarView-BK-Q6GVc.js.map} +1 -1
- package/dist/chunks/{TextEditorLexicalClient-B7Y6-3rL.js → TextEditorLexicalClient-C8jKCbsp.js} +3 -3
- package/dist/chunks/{TextEditorLexicalClient-B7Y6-3rL.js.map → TextEditorLexicalClient-C8jKCbsp.js.map} +1 -1
- package/dist/chunks/{base-table-8aMlH6XB.js → base-table-BNtd1xSl.js} +2 -2
- package/dist/chunks/{base-table-8aMlH6XB.js.map → base-table-BNtd1xSl.js.map} +1 -1
- package/dist/chunks/{button-C53OkqTg.js → button-BYWHD2TV.js} +2 -2
- package/dist/chunks/{button-C53OkqTg.js.map → button-BYWHD2TV.js.map} +1 -1
- package/dist/chunks/{date-input-B4n6tceY.js → date-input-DXXKeLcq.js} +3 -3
- package/dist/chunks/{date-input-B4n6tceY.js.map → date-input-DXXKeLcq.js.map} +1 -1
- package/dist/chunks/{misc-Csi68Etw.js → misc-CV0XwJf3.js} +2 -2
- package/dist/chunks/{misc-Csi68Etw.js.map → misc-CV0XwJf3.js.map} +1 -1
- package/dist/chunks/{modal-_og-L6rt.js → modal-Bmd9iBw1.js} +3 -3
- package/dist/chunks/{modal-_og-L6rt.js.map → modal-Bmd9iBw1.js.map} +1 -1
- package/dist/chunks/popover-BMboZXoQ.js +244 -0
- package/dist/chunks/popover-BMboZXoQ.js.map +1 -0
- package/dist/chunks/{table-DQmVlKDI.js → table-C3sKpYHL.js} +2 -2
- package/dist/chunks/{table-DQmVlKDI.js.map → table-C3sKpYHL.js.map} +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-time-input/index.js +2 -2
- package/dist/expandable-action-panel/index.js +2 -2
- package/dist/image/index.js +2 -2
- package/dist/list/index.js +1 -1
- package/dist/misc/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/popover/components/Popover.d.ts.map +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/popover/lib/applyPopoverAvailableSize.d.ts +13 -0
- package/dist/popover/lib/applyPopoverAvailableSize.d.ts.map +1 -0
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +1 -1
- package/dist/table/index.js +1 -1
- package/dist/tabs/index.js +1 -1
- package/dist/text/index.js +1 -1
- package/dist/text-editor/index.js +2 -2
- package/dist/tree-table/index.js +1 -1
- package/package.json +1 -1
- package/src/styles/config/_index.scss +26 -2
- package/src/styles/themes/_index.scss +1 -0
- package/src/styles/themes/_interactive-surface.scss +1 -1
- package/src/styles/themes/_theme.scss +173 -6
- package/src/styles/themes/dark/_default.scss +1 -3
- package/src/styles/themes/light/_default.scss +1 -3
- package/src/styles/themes/theme.test.ts +110 -0
- package/storybook-static/assets/{Badge-C1KbJFb6.js → Badge-jMoGaWlH.js} +1 -1
- package/storybook-static/assets/{Badge.stories-CMV5YKMU.js → Badge.stories-DCRYgiFn.js} +1 -1
- package/storybook-static/assets/{BadgeList-Dp3AYrwv.js → BadgeList-hUxkrQKk.js} +1 -1
- package/storybook-static/assets/{Button-B2I2pMcy.js → Button-BLZxiBx_.js} +1 -1
- package/storybook-static/assets/{Button-CcbXFAnn.js → Button-CN90zPTE.js} +1 -1
- package/storybook-static/assets/{Button.stories-BzQjIelZ.js → Button.stories-C3IDTh6L.js} +1 -1
- package/storybook-static/assets/{CalendarView-BjM9oIc_.js → CalendarView-Da3lEn5n.js} +1 -1
- package/storybook-static/assets/{CheckBox-BIVJcOqm.js → CheckBox-BDPsgkY9.js} +1 -1
- package/storybook-static/assets/{CheckBox-DX62RRB8.js → CheckBox-C88r1nU9.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-CDVi7HoJ.js → CheckBox.stories-CLL1W22k.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-BQUTqYuX.js → Color-6AOWCN3U-BeYazCuF.js} +1 -1
- package/storybook-static/assets/{ContextMenu-D1cYiYLX.js → ContextMenu-BvDbyzAk.js} +1 -1
- package/storybook-static/assets/{ContextMenu-DXdSsiE4.js → ContextMenu-CEmrtmjw.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-CuHmimS8.js → ContextMenu.stories-CJdQ3DxK.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-7RqaHQyF.js → CustomOptionButton-BlBnyItt.js} +1 -1
- package/storybook-static/assets/{DateInput-DiEqHlzH.js → DateInput-BOeTDc10.js} +1 -1
- package/storybook-static/assets/{DateInput-itc81ORI.js → DateInput-BplJWRap.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-BKinQKwP.js → DateInput.stories-Dvsg67Q7.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CXftu_8X.js → DateRangePresetSelect-BNAtaJ9P.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DPcNI2ev.js → DateRangePresetSelect-CQlubR_0.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-C6q-yBU_.js → DateRangePresetSelect.stories-iaVAJzrk.js} +1 -1
- package/storybook-static/assets/{Detail-TKBhJXM1.js → Detail-DDYBXrvC.js} +1 -1
- package/storybook-static/assets/{Detail.stories-DrXBGm1b.js → Detail.stories-DNRTPZcT.js} +1 -1
- package/storybook-static/assets/{Dialog-CRne1UkS.js → Dialog-D60NKiU7.js} +1 -1
- package/storybook-static/assets/{Dialog-CllCzJ5n.js → Dialog-_8-5uCF4.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-Dr3E6XaP.js → Dialog.stories-LMG0RjuL.js} +1 -1
- package/storybook-static/assets/{Disclosure-CEuBeKUQ.js → Disclosure-DTCWb38a.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-BSvAGMk4.js → Disclosure.stories-D98Sqa6B.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-CJs0KMvV.js → DisclosureGroup-rjsQrwwz.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-Ck6uvxG3.js → DocsRenderer-JROSPFPF-C8rtPh64.js} +1 -1
- package/storybook-static/assets/{DropZone-BiG2d1OF.js → DropZone-Cc-Nr7qt.js} +1 -1
- package/storybook-static/assets/{DropZone-DpsMRYuH.js → DropZone-xZSakToS.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-C3txCzNd.js → DropZone.stories-BrNYMWdp.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-BxLAvF2W.js → DropdownMenu-CKHgBr1G.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-GrT_b2Du.js → ExpandableActionPanel-CaRPw6Wm.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-ZjZaIthK.js → ExpandableActionPanel.stories-D84EsMIi.js} +1 -1
- package/storybook-static/assets/{Flex-Cv3Qmndv.js → Flex-ksn1ULug.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CbGZJhgz.js → Flex.stories-CImsjHxn.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-D4NxEU-n.js → FloatingPopover-Cmz412EM.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-DQOSRRXD.js → FormattedTableCell-DIPPfMCP.js} +1 -1
- package/storybook-static/assets/{Grid-CoCaqqJf.js → Grid-COjPAy0V.js} +1 -1
- package/storybook-static/assets/{Grid.stories-V3BXNQmF.js → Grid.stories-DInra2zZ.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-CHcshTek.js → ImageCropper.stories-BaN5T0Sj.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-qHPGMl-l.js → ImageRenderer-BiX7KYHn.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-O1ZPo7dd.js → ImageRenderer.stories-DRA0tvY5.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-CbrRE1YO.js → ImageView.stories-DmgrraU8.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-CbdAdVl2.js → ImageViewer.stories-B1lcBTZL.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-DnppwdQ8.js → ImageViewerRuntime-Ba0P6JkW.js} +1 -1
- package/storybook-static/assets/{Input-BW_KIjON.js → Input-BE3ev4c3.js} +1 -1
- package/storybook-static/assets/{Input-Eg9_PEo7.js → Input-DWaSzRT6.js} +1 -1
- package/storybook-static/assets/{Input.stories-CifVnhP6.js → Input.stories-BwSh-rG5.js} +1 -1
- package/storybook-static/assets/{InputDateTime-d2w9tw72.js → InputDateTime-Bzcathpr.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-CbdBjQVo.js → InputDateTime.stories-BKSNyeGW.js} +1 -1
- package/storybook-static/assets/{InputFile-DL7GKeGm.js → InputFile-B1xshCl7.js} +1 -1
- package/storybook-static/assets/{InputFile-CCFrrpJv.js → InputFile-BkcqAe9e.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-Cvz70MX3.js → InputFile.stories-DNzDLdnM.js} +1 -1
- package/storybook-static/assets/{InputFiles-1u5FHnaN.js → InputFiles-Beh9VGnI.js} +1 -1
- package/storybook-static/assets/{InputFiles-DKoTbSyC.js → InputFiles-DoIpCwD8.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CW8enyCo.js → InputFiles.stories-D463o_2j.js} +1 -1
- package/storybook-static/assets/{InputFilesList-FAb5sH37.js → InputFilesList-XBhxIwzm.js} +1 -1
- package/storybook-static/assets/{InputImage-WuRkrpds.js → InputImage-BxplZPLz.js} +1 -1
- package/storybook-static/assets/{InputImage-DMEXLyoX.js → InputImage-DFOKaSvG.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-BdP_AhB9.js → InputImage.stories-9_4PdNVX.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-BMQYO7fl.js → InteractiveComponents-gVX-Co65.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-DJirNn_h.js → InteractiveComponents.stories-xGm6Qn3p.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BZAwV4lf.js → LayoutPicker-CAIUGlYR.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-C0oo_b-r.js → LayoutPicker-DyNgBEDt.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-C8BzcbMh.js → LayoutPicker.stories-DjWIoqq_.js} +1 -1
- package/storybook-static/assets/{Listbox-DbnMN1m2.js → Listbox-C1nug1gi.js} +1 -1
- package/storybook-static/assets/{Listbox-CaEVOoYD.js → Listbox-DdUSWuvx.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BkEYOlwL.js → Listbox.stories-CgXZhffL.js} +1 -1
- package/storybook-static/assets/{Modal-DjYwqol2.js → Modal-C2JN8byf.js} +1 -1
- package/storybook-static/assets/{Modal.stories-BchGkw0K.js → Modal.stories-CEF1CDMw.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-DTKcyL8t.js → ModalManagerProvider-DpQegT4s.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Ddsn1hXj.js → MultiSelect-4BySiqWq.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Dz5E5Pbf.js → MultiSelect-DI65H684.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-DEIKHwy1.js → MultiSelect.stories-BMINO4tp.js} +1 -1
- package/storybook-static/assets/{NoData-CKGcddxk.js → NoData-BF8QLM-6.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-CEfH53W5.js → NotificationsHost-CoKBvP6W.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-MTxFeVoy.js → NotificationsHost.stories-ABBuJJZn.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-CvQSOety.js → ODataMultiSelect-8jdLzrag.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DtCodUVW.js → ODataMultiSelect.stories-Bbx2pEhr.js} +1 -1
- package/storybook-static/assets/{ODataSelect-C5RMxZjc.js → ODataSelect-CCBMuL_6.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-CZ9mL0_j.js → ODataSelect.stories-IRVdMUYS.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-0fCn87D6.js → ODataTreeMultiSelect-CMYSul4g.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-DQDCllvF.js → ODataTreeMultiSelect.stories-B-7VuEMx.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-Bzfdon5Z.js → ODataTreeSelect-wABuQQ8m.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-D5scx29T.js → ODataTreeSelect.stories-B4PexyPP.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-COlpXyui.js → OneStepScroller-Bsx2cAbW.js} +1 -1
- package/storybook-static/assets/{Option-wQK2X0Kl.js → Option-Bi34xfha.js} +1 -1
- package/storybook-static/assets/{OptionButton-C_lBxJnN.js → OptionButton-sAMQ-B-2.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DgineFIH.js → PeriodSelect-D8M2m7Ae.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-heOd8pO8.js → PeriodSelect-DvbYBRp0.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-uiPmpg5A.js → PeriodSelect.stories-CF9om3YB.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-B567GsTL.js → PickerTriggerActions-DQ6Irt2H.js} +1 -1
- package/storybook-static/assets/{Popover-DGySGg9z.js → Popover-CoKI13TR.js} +1 -1
- package/storybook-static/assets/Popover-Y5ZKg3I8.js +2 -0
- package/storybook-static/assets/{Popover.stories-Cv154XF5.js → Popover.stories-D8WTwZ-k.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-VSoCHhMT.js → PresetRangeDateInput-C8-UkEaY.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DvH7YmsA.js → PresetRangeDateInput-kYlehlXI.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-CGlbX94O.js → PresetRangeDateInput.stories-Bw2Olt9n.js} +1 -1
- package/storybook-static/assets/{PresetSelect-BcMVurGB.js → PresetSelect-L0tuYJEl.js} +1 -1
- package/storybook-static/assets/{README-BoZyIQir.js → README-0xG00EW_.js} +1 -1
- package/storybook-static/assets/{README-Blg3xPoc.js → README-1v-Ux6-4.js} +1 -1
- package/storybook-static/assets/{README-DXqBns-d.js → README-B10YW1sd.js} +1 -1
- package/storybook-static/assets/{README-CC4dIKt_.js → README-B1ksGK8E.js} +1 -1
- package/storybook-static/assets/{README-CXLCa134.js → README-BN-M1WU0.js} +1 -1
- package/storybook-static/assets/{README-Dbmtpfl0.js → README-BPWfZ4-n.js} +1 -1
- package/storybook-static/assets/{README-DBYrpsH8.js → README-BQ2U05OE.js} +1 -1
- package/storybook-static/assets/{README-CEaGnPRF.js → README-BQsFSC9n.js} +1 -1
- package/storybook-static/assets/{README-DVpSJuVZ.js → README-BVQt8mtd.js} +1 -1
- package/storybook-static/assets/{README-BV3c8FDT.js → README-BXPXMULk.js} +1 -1
- package/storybook-static/assets/{README-DMvggye-.js → README-BnVbW7Gs.js} +1 -1
- package/storybook-static/assets/{README-BOK-j9I7.js → README-BocI24Kg.js} +1 -1
- package/storybook-static/assets/{README-AHbsuUw8.js → README-BrCC1uJU.js} +1 -1
- package/storybook-static/assets/{README-DKaFdYbR.js → README-BxwHKa3w.js} +1 -1
- package/storybook-static/assets/{README-DCP8j0A2.js → README-BzHuSALx.js} +1 -1
- package/storybook-static/assets/{README-TEnjnkJ8.js → README-C33_zdBH.js} +1 -1
- package/storybook-static/assets/{README-B-DLLxyh.js → README-CDufFsWQ.js} +1 -1
- package/storybook-static/assets/{README-CAiHTGCl.js → README-CFpRXUWW.js} +1 -1
- package/storybook-static/assets/{README-y0FYYKqJ.js → README-CHEiSVyW.js} +1 -1
- package/storybook-static/assets/{README-CUlzrvUa.js → README-CO3dUhsD.js} +1 -1
- package/storybook-static/assets/{README-Bi4zPzN1.js → README-CXPodKHT.js} +1 -1
- package/storybook-static/assets/{README-BtCpxXgd.js → README-CZLMmuEJ.js} +1 -1
- package/storybook-static/assets/{README-9b6mmXZa.js → README-Cab4zgqv.js} +1 -1
- package/storybook-static/assets/{README-T0jrvm8P.js → README-ChqY7Icu.js} +1 -1
- package/storybook-static/assets/{README-_kJbfY6a.js → README-CjCfW25k.js} +1 -1
- package/storybook-static/assets/{README-Bdd3XZWr.js → README-CjqrGvr8.js} +1 -1
- package/storybook-static/assets/{README-C1Of7Jrs.js → README-CmhWsQkb.js} +1 -1
- package/storybook-static/assets/{README-CVSfzXX9.js → README-CrYAH16i.js} +1 -1
- package/storybook-static/assets/{README-DY3q19ya.js → README-Cyb-5mOG.js} +1 -1
- package/storybook-static/assets/{README-DjMYJYhe.js → README-D13Q95J6.js} +1 -1
- package/storybook-static/assets/{README-DAYyheBK.js → README-D5yuEPPv.js} +1 -1
- package/storybook-static/assets/{README-CukqSL-4.js → README-DBqfDDoK.js} +1 -1
- package/storybook-static/assets/{README-DSNmiIfN.js → README-DIa084ap.js} +1 -1
- package/storybook-static/assets/{README-RFcuJdu5.js → README-DIlnpVMH.js} +1 -1
- package/storybook-static/assets/{README-FwXp4Pjy.js → README-DSqT3qTl.js} +1 -1
- package/storybook-static/assets/{README-w1uOSyJu.js → README-DZwnGvV1.js} +1 -1
- package/storybook-static/assets/{README-CNnubKZC.js → README-D_zvxXbp.js} +1 -1
- package/storybook-static/assets/{README-B_nDVUsP.js → README-DdW8haTK.js} +1 -1
- package/storybook-static/assets/{README-CCOdpywR.js → README-DlIoOZ58.js} +1 -1
- package/storybook-static/assets/{README-Ba5xoJYB.js → README-Dp6_DOef.js} +1 -1
- package/storybook-static/assets/{README-C2PSAh21.js → README-DrwiMWd7.js} +1 -1
- package/storybook-static/assets/{README-CeK7FNh1.js → README-DvMUuU1d.js} +1 -1
- package/storybook-static/assets/{README-Dj6ep9U_.js → README-N9wZCeCb.js} +1 -1
- package/storybook-static/assets/{README-DYgLLZOR.js → README-NmcS3YJ6.js} +1 -1
- package/storybook-static/assets/{README-Bu7OMSUf.js → README-S2VOLhWx.js} +1 -1
- package/storybook-static/assets/{README-MP9oEhDT.js → README-UELPBLbA.js} +1 -1
- package/storybook-static/assets/{README-kgYtNaRd.js → README-VcApJaXd.js} +1 -1
- package/storybook-static/assets/{README-DMZC3tWr.js → README-gft7Uab5.js} +1 -1
- package/storybook-static/assets/{README-B_t_BiM-.js → README-gpDcs_LH.js} +1 -1
- package/storybook-static/assets/{README-C_F5QX-F.js → README-q3ocfiGy.js} +1 -1
- package/storybook-static/assets/{README-DhImd5pH.js → README-rfp-yzSZ.js} +1 -1
- package/storybook-static/assets/{README-DiOpga3T.js → README-xgO81XJN.js} +1 -1
- package/storybook-static/assets/{RadioButton-o4av6A8a.js → RadioButton-CoPal8pt.js} +1 -1
- package/storybook-static/assets/{RadioButton-BQKjKxAe.js → RadioButton-DJEpCllJ.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-DcSQNaXN.js → RadioButton.stories-CrNbB_Qs.js} +1 -1
- package/storybook-static/assets/{RadioGroup-8EH0MZWC.js → RadioGroup-DBlvBC8z.js} +1 -1
- package/storybook-static/assets/{RadioGroup-C10vUMZk.js → RadioGroup-Dv_q57B4.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-BqS79JtE.js → RadioGroup.stories-CdafywwL.js} +1 -1
- package/storybook-static/assets/{Scrollable-ddtSKo90.js → Scrollable-CVZxkb7b.js} +1 -1
- package/storybook-static/assets/{Select-B5ShJKKc.js → Select-B7fM7XXA.js} +1 -1
- package/storybook-static/assets/{Select-BY6ORdvS.js → Select-BtuStcTW.js} +1 -1
- package/storybook-static/assets/{Select.stories-BSF0Wnux.js → Select.stories-D2i9D1wO.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CS19oFlz.js → SerializableSelect-DsjutVwZ.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-BPmCTl6L.js → SerializableSelect.stories-C4qr93lP.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-BEJu-R1m.js → SingleDateTimeInput-CV1HjRhb.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CTfMcncR.js → SingleDateTimeInput-jOTDUNrw.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-CYxHrxxd.js → SingleDateTimeInput.stories-yb4i7Se-.js} +1 -1
- package/storybook-static/assets/{Slider-DVzdB5yx.js → Slider-DGAxIRgF.js} +1 -1
- package/storybook-static/assets/{Slider-BeAKJm-a.js → Slider-DbiTyk2d.js} +1 -1
- package/storybook-static/assets/{Slider.stories-K2VPtjGi.js → Slider.stories-BIPqFQgF.js} +1 -1
- package/storybook-static/assets/{SliderInput-ApivV4in.js → SliderInput-DEbF8pTt.js} +1 -1
- package/storybook-static/assets/{SliderInput-BAfXIzNG.js → SliderInput-DPmmdNSI.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-PcR7jo6v.js → SliderInput.stories-DpNI0YBv.js} +1 -1
- package/storybook-static/assets/{Sortable-DiswLDg5.js → Sortable-BYYO2Rd5.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-fsl44zmS.js → Sortable.stories-CAig11WS.js} +1 -1
- package/storybook-static/assets/{Splitter-Ct-47bE7.js → Splitter-k76UJpxB.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-Bz79Lc6H.js → Splitter.stories-CuaNuNp7.js} +1 -1
- package/storybook-static/assets/{StateSelect-XihqGd4j.js → StateSelect-BSx0a0xn.js} +1 -1
- package/storybook-static/assets/{StateSelect-BIhp7x_B.js → StateSelect-BdvIKDtX.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-C3rxpGIl.js → StateSelect.stories-Cn2k7xLt.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CxLLcq91.js → StringToggle.stories-BzYQZVOT.js} +1 -1
- package/storybook-static/assets/{Switch-DNR82Wwo.js → Switch-DtsM7AlJ.js} +1 -1
- package/storybook-static/assets/{Switch-CrtYGIaI.js → Switch-WXicw9j3.js} +1 -1
- package/storybook-static/assets/{Switch.stories-BPDQ5GN3.js → Switch.stories-DSJ6cmJH.js} +1 -1
- package/storybook-static/assets/{Table-cJR7vlNL.js → Table-DG3Ysl0M.js} +1 -1
- package/storybook-static/assets/{Table.stories-DiKmKEFg.js → Table.stories-DZld4Wa8.js} +1 -1
- package/storybook-static/assets/{Tabs-m055f4P9.js → Tabs-BUkYwc0R.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-CDKX0533.js → Tabs.stories-Bxj65iOe.js} +1 -1
- package/storybook-static/assets/{TabsBox-C7XivHOT.js → TabsBox-BufsM8ff.js} +1 -1
- package/storybook-static/assets/{TagInput-9CihyZlQ.js → TagInput-ButGKwPX.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-Dum4KJFn.js → TagInput.stories-BdBPL9C4.js} +1 -1
- package/storybook-static/assets/{Text-CCM2eK9R.js → Text-CfVgVnx4.js} +1 -1
- package/storybook-static/assets/{Textarea-DQZ24GYg.js → Textarea-BlRdt8GB.js} +1 -1
- package/storybook-static/assets/{Textarea-C21w8uCg.js → Textarea-Cw0dpv9O.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-yFLMuluS.js → Textarea.stories-DIztJwoG.js} +1 -1
- package/storybook-static/assets/{TimePanel-Bogchh-c.js → TimePanel-BaHjWmQy.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-BlP2rln-.js → TimePanel.stories-CLhOwXWZ.js} +1 -1
- package/storybook-static/assets/{Toggle-C3ZDjRb5.js → Toggle-CeEIN_2z.js} +1 -1
- package/storybook-static/assets/{Toggle-CEtTYP_r.js → Toggle-DS0d4WQL.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BaOfYMcT.js → Toggle.stories-qQruW7gc.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-BmYBPzAL.js → TreeMultiSelect-C19YnmWz.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-Bpp3Axoc.js → TreeMultiSelect-xvnFdWRY.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-CNmwscoQ.js → TreeMultiSelect.stories-CfvfyxYD.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-DyhXguNc.js → TreePickerBase-CtEPKSbm.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Dp57_GsP.js → TreeSelect-BnLvixZ5.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DuPG1BmQ.js → TreeSelect-CBkH-AEV.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-BRRmTO1d.js → TreeSelect.stories-Ee033WTq.js} +1 -1
- package/storybook-static/assets/{TreeTable-DwX5hSn0.js → TreeTable-Bj-wmrBR.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-CUUpqLpH.js → TreeTable.stories-BIOrVNfx.js} +1 -1
- package/storybook-static/assets/{blocks-CBEn2XET.js → blocks-DFW8ghoN.js} +3 -3
- package/storybook-static/assets/{check-DVP2RrW4.js → check-7oGyK4Lh.js} +1 -1
- package/storybook-static/assets/{chevron-down-pB5aBt7f.js → chevron-down-BBUXCskk.js} +1 -1
- package/storybook-static/assets/{chevron-left--IVT8TOE.js → chevron-left-C9RcDRYm.js} +1 -1
- package/storybook-static/assets/{chevron-right-iLA_AfbS.js → chevron-right-Bz2dxTCT.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-YYPDaIiD.js → chunk-W22LQPXL-BFc9wUX9.js} +1 -1
- package/storybook-static/assets/{circle-alert-DOF8EPXy.js → circle-alert-DxODWI3W.js} +1 -1
- package/storybook-static/assets/{circle-check-BjGJW_s0.js → circle-check-Dt98F3HY.js} +1 -1
- package/storybook-static/assets/{components-CzWrpiYt.js → components-C9PL8fDL.js} +3 -3
- package/storybook-static/assets/{contextMenu-BFKXs6m5.js → contextMenu-BOrF5Hzw.js} +1 -1
- package/storybook-static/assets/{download-4iQ_Vsh9.js → download-Cicfr3Yq.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-D3bibiBm.js → floating-ui.react-j2x4WoIe.js} +1 -1
- package/storybook-static/assets/{foundationApi-BV_TLuEz.js → foundationApi-Czup-_8C.js} +1 -1
- package/storybook-static/assets/{foundationLib-D_yb9R0g.js → foundationLib-CvOU0kH6.js} +1 -1
- package/storybook-static/assets/{hooks-BbSZNRij.js → hooks-D1LxuSK1.js} +1 -1
- package/storybook-static/assets/{iframe-D8QmYZNe.css → iframe-B-mSv97o.css} +1 -1
- package/storybook-static/assets/iframe-BhNcQkWA.js +1 -0
- package/storybook-static/assets/{iframe-B3pr0MSX.js → iframe-CB9pifff.js} +3 -3
- package/storybook-static/assets/{info-BKZSxeDX.js → info-H3kL_ony.js} +1 -1
- package/storybook-static/assets/{odata-49160IRT.js → odata-DZHQPho8.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-1xkPz1fv.js → odataStoryFixtures-Dv4IyA2E.js} +1 -1
- package/storybook-static/assets/{react-Dt1l_ilq.js → react-D9ony7ur.js} +1 -1
- package/storybook-static/assets/{refresh-cw-DP6ayqeB.js → refresh-cw-C1wTVwsA.js} +1 -1
- package/storybook-static/assets/{settings-2-CJlqldqu.js → settings-2-CYAxQ8JZ.js} +1 -1
- package/storybook-static/assets/{sortable-BGvg9h6F.js → sortable-D3dOipv-.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-Bx8YXbZx.js → syntaxhighlighter-QEQV7K2Y-BEAJBt17.js} +1 -1
- package/storybook-static/assets/{trash-2-BjN-x0Jv.js → trash-2-DFYiqA7Y.js} +1 -1
- package/storybook-static/assets/{triangle-alert-BClbPGD8.js → triangle-alert-DT66rGfn.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-A-C5_yHs.js → useODataSelectBase-SGoINsPA.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-COxjc88A.js → useODataTreeData-Bd0rjQ8C.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-DNMGmR5c.js → usePickerQuery-jINMRgys.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-CK41xnO5.js → usePickerTriggerController-C0xxhsv5.js} +1 -1
- package/storybook-static/assets/{x-DKa9bKVJ.js → x-DgcBZVW3.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/project.json +1 -1
- package/dist/chunks/popover-IztNF45J.js +0 -230
- package/dist/chunks/popover-IztNF45J.js.map +0 -1
- package/storybook-static/assets/Popover-kJOIlyWU.js +0 -2
- package/storybook-static/assets/iframe-BOWfmfT4.js +0 -1
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { t as e } from "./floating-arrow-DPKwJfww.js";
|
|
2
|
+
import { cloneElement as t, createContext as n, useCallback as r, useContext as i, useEffect as a, useLayoutEffect as o, useRef as s, useState as c } from "react";
|
|
3
|
+
import { cn as l } from "@ryuzaki13/react-foundation-lib/utils";
|
|
4
|
+
import { FloatingPortal as u, arrow as d, autoUpdate as f, flip as p, offset as m, shift as h, size as g, useDismiss as _, useFloating as v, useHover as y, useInteractions as b, useRole as x } from "@floating-ui/react";
|
|
5
|
+
import { useClickOutside as S, useEscapeDismiss as C, useOverlayFocus as w } from "@ryuzaki13/react-foundation-lib/dom";
|
|
6
|
+
import { Fragment as T, jsx as E, jsxs as D } from "react/jsx-runtime";
|
|
7
|
+
import { createMissingContextError as O } from "@ryuzaki13/react-foundation-lib/error";
|
|
8
|
+
import { createPortal as k } from "react-dom";
|
|
9
|
+
//#region src/popover/lib/applyPopoverAvailableSize.ts
|
|
10
|
+
function A({ availableWidth: e, availableHeight: t, floating: n }) {
|
|
11
|
+
n.style.setProperty("--popover-available-width", `${Math.max(0, e)}px`), n.style.setProperty("--popover-available-height", `${Math.max(0, t)}px`);
|
|
12
|
+
}
|
|
13
|
+
var j = {
|
|
14
|
+
popover: "JK2Y7t",
|
|
15
|
+
primary: "_5QtpCJ",
|
|
16
|
+
secondary: "hZuysP"
|
|
17
|
+
}, M = n(null);
|
|
18
|
+
function N() {
|
|
19
|
+
let e = i(M);
|
|
20
|
+
if (!e) throw O({
|
|
21
|
+
hookName: "usePopoverContext",
|
|
22
|
+
providerName: "Popover"
|
|
23
|
+
});
|
|
24
|
+
return e;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/popover/components/PopoverContent.tsx
|
|
28
|
+
var P = ({ children: t, onClose: n, closeOnOutside: i = !0, closeOnEscape: a = !0, disableOutsideClick: o = !1, background: c = "secondary" }) => {
|
|
29
|
+
let { open: d, setOpen: f, refs: p, floatingStyles: m, middlewareData: h, placement: g, arrowRef: _ } = N(), v = s(null), y = r((e) => {
|
|
30
|
+
v.current = e, p.setFloating(e);
|
|
31
|
+
}, [p]), b = w({
|
|
32
|
+
active: d,
|
|
33
|
+
initialFocus: "container",
|
|
34
|
+
restoreFocus: !0,
|
|
35
|
+
containerRef: v
|
|
36
|
+
}), x = r(() => {
|
|
37
|
+
d && (f(!1), n?.());
|
|
38
|
+
}, [
|
|
39
|
+
f,
|
|
40
|
+
n,
|
|
41
|
+
d
|
|
42
|
+
]);
|
|
43
|
+
C({
|
|
44
|
+
active: d,
|
|
45
|
+
enabled: a,
|
|
46
|
+
onDismiss: x,
|
|
47
|
+
containerRef: b
|
|
48
|
+
});
|
|
49
|
+
let T = r(() => {
|
|
50
|
+
!d || o || i && x();
|
|
51
|
+
}, [
|
|
52
|
+
d,
|
|
53
|
+
o,
|
|
54
|
+
i,
|
|
55
|
+
x
|
|
56
|
+
]);
|
|
57
|
+
return S([p.floating, p.reference], T), d ? /* @__PURE__ */ E(u, { children: /* @__PURE__ */ D("div", {
|
|
58
|
+
ref: y,
|
|
59
|
+
style: m,
|
|
60
|
+
className: l(j.popover, j[c]),
|
|
61
|
+
role: "dialog",
|
|
62
|
+
"aria-modal": "true",
|
|
63
|
+
tabIndex: -1,
|
|
64
|
+
children: [typeof t == "function" ? t({ setClose: x }) : t, /* @__PURE__ */ E(e, {
|
|
65
|
+
ref: _,
|
|
66
|
+
placement: g,
|
|
67
|
+
middlewareData: h
|
|
68
|
+
})]
|
|
69
|
+
}) }) : null;
|
|
70
|
+
}, F = ({ passive: e, children: n }) => {
|
|
71
|
+
let { open: i, setOpen: a, refs: o } = N(), s = r((t) => {
|
|
72
|
+
n.props.onClick && n.props.onClick(t), !t.defaultPrevented && (t.preventDefault(), t.stopPropagation(), !e && a((e) => !e));
|
|
73
|
+
}, [
|
|
74
|
+
n,
|
|
75
|
+
a,
|
|
76
|
+
e
|
|
77
|
+
]);
|
|
78
|
+
return t(n, {
|
|
79
|
+
ref: o.setReference,
|
|
80
|
+
"aria-expanded": i,
|
|
81
|
+
onClick: s
|
|
82
|
+
});
|
|
83
|
+
}, I = 16, L = Object.assign(({ children: e, open: t, defaultOpen: n, onOpenChange: i, placement: a = "bottom" }) => {
|
|
84
|
+
let [o, l] = c(n ?? !1), u = t !== void 0, _ = u ? t : o, y = r((e) => {
|
|
85
|
+
let t = typeof e == "function" ? e(_) : e;
|
|
86
|
+
u || l(t), i?.(t);
|
|
87
|
+
}, [
|
|
88
|
+
u,
|
|
89
|
+
i,
|
|
90
|
+
_
|
|
91
|
+
]), b = s(null), { refs: x, floatingStyles: S, middlewareData: C, placement: w } = v({
|
|
92
|
+
open: _,
|
|
93
|
+
onOpenChange: y,
|
|
94
|
+
placement: a,
|
|
95
|
+
middleware: [
|
|
96
|
+
m(8),
|
|
97
|
+
p({ padding: I }),
|
|
98
|
+
h({ padding: I }),
|
|
99
|
+
g({
|
|
100
|
+
padding: I,
|
|
101
|
+
apply({ availableWidth: e, availableHeight: t, elements: n }) {
|
|
102
|
+
A({
|
|
103
|
+
availableWidth: e,
|
|
104
|
+
availableHeight: t,
|
|
105
|
+
floating: n.floating
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}),
|
|
109
|
+
d({ element: b.current })
|
|
110
|
+
],
|
|
111
|
+
whileElementsMounted: f
|
|
112
|
+
});
|
|
113
|
+
return /* @__PURE__ */ E(M.Provider, {
|
|
114
|
+
value: {
|
|
115
|
+
open: _,
|
|
116
|
+
setOpen: y,
|
|
117
|
+
refs: x,
|
|
118
|
+
floatingStyles: S,
|
|
119
|
+
placement: w,
|
|
120
|
+
middlewareData: C,
|
|
121
|
+
arrowRef: b
|
|
122
|
+
},
|
|
123
|
+
children: e
|
|
124
|
+
});
|
|
125
|
+
}, {
|
|
126
|
+
Trigger: F,
|
|
127
|
+
Content: P
|
|
128
|
+
}), R = {
|
|
129
|
+
tooltipPanel: "sZ0x6w",
|
|
130
|
+
tooltip: "_538Ejd",
|
|
131
|
+
negative: "fqciCO",
|
|
132
|
+
information: "sHkUiQ",
|
|
133
|
+
error: "bpGNoX",
|
|
134
|
+
warning: "tYnRg-",
|
|
135
|
+
success: "_8lflEh"
|
|
136
|
+
}, z = ({ content: t, children: n, openOnHover: r = !0, placement: i = "bottom", openDelay: a = 200, closeDelay: u = 100, maxWidth: g, state: S, tooltip: C, positionUpdateKey: w }) => {
|
|
137
|
+
let [O, A] = c(!1), j = s(null), { refs: M, floatingStyles: N, middlewareData: P, context: F, placement: I, update: L } = v({
|
|
138
|
+
open: O,
|
|
139
|
+
onOpenChange: A,
|
|
140
|
+
placement: i,
|
|
141
|
+
middleware: [
|
|
142
|
+
m(8),
|
|
143
|
+
p({
|
|
144
|
+
fallbackAxisSideDirection: "end",
|
|
145
|
+
fallbackPlacements: [
|
|
146
|
+
"top",
|
|
147
|
+
"right",
|
|
148
|
+
"bottom"
|
|
149
|
+
]
|
|
150
|
+
}),
|
|
151
|
+
h({ padding: 8 }),
|
|
152
|
+
d({
|
|
153
|
+
element: j,
|
|
154
|
+
padding: 8
|
|
155
|
+
})
|
|
156
|
+
],
|
|
157
|
+
whileElementsMounted: f
|
|
158
|
+
});
|
|
159
|
+
o(() => {
|
|
160
|
+
O && L();
|
|
161
|
+
}, [
|
|
162
|
+
O,
|
|
163
|
+
w,
|
|
164
|
+
L
|
|
165
|
+
]);
|
|
166
|
+
let z = y(F, {
|
|
167
|
+
enabled: r,
|
|
168
|
+
move: !1,
|
|
169
|
+
delay: {
|
|
170
|
+
open: a,
|
|
171
|
+
close: u
|
|
172
|
+
}
|
|
173
|
+
}), B = _(F), V = x(F), { getReferenceProps: H, getFloatingProps: U } = b([
|
|
174
|
+
z,
|
|
175
|
+
B,
|
|
176
|
+
V
|
|
177
|
+
]);
|
|
178
|
+
return /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E("span", {
|
|
179
|
+
ref: M.setReference,
|
|
180
|
+
...H(),
|
|
181
|
+
style: { lineHeight: 1 },
|
|
182
|
+
children: n
|
|
183
|
+
}), O && k(/* @__PURE__ */ D("div", {
|
|
184
|
+
ref: M.setFloating,
|
|
185
|
+
style: {
|
|
186
|
+
...N,
|
|
187
|
+
zIndex: "var(--z-tooltip)",
|
|
188
|
+
maxWidth: g ? `${g}em` : void 0
|
|
189
|
+
},
|
|
190
|
+
...U(),
|
|
191
|
+
role: "tooltip",
|
|
192
|
+
className: l(R.tooltipPanel, C && R.tooltip, S && R[S]),
|
|
193
|
+
children: [t, /* @__PURE__ */ E(e, {
|
|
194
|
+
ref: j,
|
|
195
|
+
placement: I,
|
|
196
|
+
middlewareData: P
|
|
197
|
+
})]
|
|
198
|
+
}), document.body)] });
|
|
199
|
+
}, B = ({ x: t, y: n, children: r }) => {
|
|
200
|
+
let i = s(null), { refs: o, floatingStyles: c, middlewareData: l, placement: u } = v({
|
|
201
|
+
strategy: "absolute",
|
|
202
|
+
placement: "top",
|
|
203
|
+
middleware: [
|
|
204
|
+
m(6),
|
|
205
|
+
p(),
|
|
206
|
+
h({ padding: 16 }),
|
|
207
|
+
d({ element: i })
|
|
208
|
+
]
|
|
209
|
+
});
|
|
210
|
+
return a(() => {
|
|
211
|
+
o.setReference && o.setReference({ getBoundingClientRect: () => ({
|
|
212
|
+
x: t,
|
|
213
|
+
y: n,
|
|
214
|
+
width: 0,
|
|
215
|
+
height: 0,
|
|
216
|
+
top: n,
|
|
217
|
+
left: t,
|
|
218
|
+
bottom: n,
|
|
219
|
+
right: t,
|
|
220
|
+
toJSON: () => {}
|
|
221
|
+
}) });
|
|
222
|
+
}, [
|
|
223
|
+
t,
|
|
224
|
+
n,
|
|
225
|
+
o
|
|
226
|
+
]), /* @__PURE__ */ D("div", {
|
|
227
|
+
ref: o.setFloating,
|
|
228
|
+
style: {
|
|
229
|
+
...c,
|
|
230
|
+
position: "absolute",
|
|
231
|
+
pointerEvents: "none"
|
|
232
|
+
},
|
|
233
|
+
className: R.tooltip,
|
|
234
|
+
children: [r, /* @__PURE__ */ E(e, {
|
|
235
|
+
ref: i,
|
|
236
|
+
placement: u,
|
|
237
|
+
middlewareData: l
|
|
238
|
+
})]
|
|
239
|
+
});
|
|
240
|
+
};
|
|
241
|
+
//#endregion
|
|
242
|
+
export { P as a, F as i, z as n, N as o, L as r, B as t };
|
|
243
|
+
|
|
244
|
+
//# sourceMappingURL=popover-BMboZXoQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover-BMboZXoQ.js","names":[],"sources":["../../src/popover/lib/applyPopoverAvailableSize.ts","../../src/popover/components/Popover.module.scss","../../src/popover/components/PopoverContext.tsx","../../src/popover/components/PopoverContent.tsx","../../src/popover/components/PopoverTrigger.tsx","../../src/popover/components/Popover.tsx","../../src/popover/Popover.module.scss","../../src/popover/FloatingPopover.tsx","../../src/popover/FloatingTooltip.tsx"],"sourcesContent":["type ApplyPopoverAvailableSizeOptions = {\n\treadonly availableWidth: number;\n\treadonly availableHeight: number;\n\treadonly floating: HTMLElement;\n};\n\n/**\n * Передаёт вычисленную Floating UI доступную область самому popover через CSS-переменные.\n * Потребитель может совместить эти границы со своим размером и режимом прокрутки,\n * не дублируя `size()` middleware и правила clipping context.\n */\nexport function applyPopoverAvailableSize({ availableWidth, availableHeight, floating }: ApplyPopoverAvailableSizeOptions) {\n\tfloating.style.setProperty(\"--popover-available-width\", `${Math.max(0, availableWidth)}px`);\n\tfloating.style.setProperty(\"--popover-available-height\", `${Math.max(0, availableHeight)}px`);\n}\n",".popover {\n\tpadding: var(--space-sm);\n\t// background-image: radial-gradient(var(--surface-0) 50%, var(--surface-1) 100%);\n\n\tborder: var(--border-width) solid var(--border-1);\n\tborder-radius: var(--radius-sm);\n\tcolor: var(--content-0);\n\n\tfilter: drop-shadow(var(--shadow-md));\n\n\tz-index: var(--z-popover);\n\n\t&.primary {\n\t\tbackground-color: var(--surface-0);\n\t}\n\n\t&.secondary {\n\t\tbackground-color: var(--surface-1);\n\t}\n}\n","import React, { createContext, useContext } from \"react\";\n\nimport { Placement, useFloating } from \"@floating-ui/react\";\nimport { createMissingContextError } from \"@ryuzaki13/react-foundation-lib/error\";\n\ninterface PopoverContextValue {\n\topen: boolean;\n\tsetOpen: React.Dispatch<React.SetStateAction<boolean>>;\n\trefs: ReturnType<typeof useFloating>[\"refs\"];\n\tfloatingStyles: React.CSSProperties;\n\tplacement: Placement;\n\tmiddlewareData: ReturnType<typeof useFloating>[\"middlewareData\"];\n\tarrowRef: React.RefObject<HTMLDivElement | null>;\n}\n\nexport const PopoverContext = createContext<PopoverContextValue | null>(null);\n\nexport function usePopoverContext() {\n\tconst context = useContext(PopoverContext);\n\tif (!context) {\n\t\tthrow createMissingContextError({\n\t\t\thookName: \"usePopoverContext\",\n\t\t\tproviderName: \"Popover\"\n\t\t});\n\t}\n\treturn context;\n}\n","import React, { useCallback, useRef } from \"react\";\n\nimport { FloatingPortal } from \"@floating-ui/react\";\nimport { useClickOutside, useEscapeDismiss, useOverlayFocus } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { TooltipArrow } from \"../../floating-arrow\";\n\nimport styles from \"./Popover.module.scss\";\nimport { usePopoverContext } from \"./PopoverContext\";\n\nexport interface PopoverContentProps {\n\tchildren: React.ReactNode | ((ctx: { setClose: () => void }) => React.ReactNode);\n\tonClose?: () => void;\n\tcloseOnOutside?: boolean;\n\tcloseOnEscape?: boolean;\n\tdisableOutsideClick?: boolean;\n\tbackground?: \"primary\" | \"secondary\";\n}\n\n/**\n * Содержимое Popover, отображаемое в портале.\n */\nexport const PopoverContent: React.FC<PopoverContentProps> = ({\n\tchildren,\n\tonClose,\n\tcloseOnOutside = true,\n\tcloseOnEscape = true,\n\tdisableOutsideClick = false,\n\tbackground = \"secondary\"\n}) => {\n\tconst { open, setOpen, refs, floatingStyles, middlewareData, placement, arrowRef } = usePopoverContext();\n\tconst floatingElementRef = useRef<HTMLDivElement | null>(null);\n\tconst setFloating = useCallback(\n\t\t(node: HTMLDivElement | null) => {\n\t\t\tfloatingElementRef.current = node;\n\t\t\trefs.setFloating(node);\n\t\t},\n\t\t[refs]\n\t);\n\n\tconst floatingRef = useOverlayFocus<HTMLDivElement>({\n\t\tactive: open,\n\t\tinitialFocus: \"container\",\n\t\trestoreFocus: true,\n\t\tcontainerRef: floatingElementRef\n\t});\n\n\tconst setClose = useCallback(() => {\n\t\tif (!open) return;\n\t\tsetOpen(false);\n\t\tonClose?.();\n\t}, [setOpen, onClose, open]);\n\n\tuseEscapeDismiss({\n\t\tactive: open,\n\t\tenabled: closeOnEscape,\n\t\tonDismiss: setClose,\n\t\tcontainerRef: floatingRef as React.RefObject<HTMLElement | null>\n\t});\n\n\tconst outsideClose = useCallback(() => {\n\t\tif (!open || disableOutsideClick) return;\n\t\tif (closeOnOutside) setClose();\n\t}, [open, disableOutsideClick, closeOnOutside, setClose]);\n\n\tuseClickOutside([refs.floating as React.RefObject<HTMLElement>, refs.reference as React.RefObject<HTMLElement>], outsideClose);\n\n\tif (!open) return null;\n\n\treturn (\n\t\t<FloatingPortal>\n\t\t\t<div\n\t\t\t\tref={setFloating}\n\t\t\t\tstyle={floatingStyles}\n\t\t\t\tclassName={cn(styles.popover, styles[background])}\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\ttabIndex={-1}>\n\t\t\t\t{typeof children === \"function\" ? children({ setClose }) : children}\n\t\t\t\t<TooltipArrow ref={arrowRef} placement={placement} middlewareData={middlewareData} />\n\t\t\t</div>\n\t\t</FloatingPortal>\n\t);\n};\n","import React, { cloneElement, useCallback } from \"react\";\n\nimport { usePopoverContext } from \"./PopoverContext\";\n\nexport interface PopoverTriggerProps {\n\tpassive?: true;\n\tchildren: React.ReactElement<React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }>;\n}\n\nexport const PopoverTrigger: React.FC<PopoverTriggerProps> = ({ passive, children }) => {\n\tconst { open, setOpen, refs } = usePopoverContext();\n\n\tconst handleClick = useCallback(\n\t\t(e: React.MouseEvent) => {\n\t\t\tif (children.props.onClick) {\n\t\t\t\tchildren.props.onClick(e);\n\t\t\t}\n\t\t\tif (e.defaultPrevented) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tif (passive) return;\n\n\t\t\tsetOpen((v) => !v);\n\t\t},\n\t\t[children, setOpen, passive]\n\t);\n\n\treturn cloneElement(children as React.JSX.Element, {\n\t\tref: refs.setReference,\n\t\t\"aria-expanded\": open,\n\t\tonClick: handleClick\n\t});\n};\n","/* eslint-disable react-refresh/only-export-components */\nimport React, { useCallback, useRef, useState } from \"react\";\n\nimport { arrow, autoUpdate, flip, offset, Placement, shift, size as floatingSize, useFloating } from \"@floating-ui/react\";\n\nimport { applyPopoverAvailableSize } from \"../lib/applyPopoverAvailableSize\";\n\nimport { PopoverContent } from \"./PopoverContent\";\nimport { PopoverContext } from \"./PopoverContext\";\nimport { PopoverTrigger } from \"./PopoverTrigger\";\n\nconst POPOVER_VIEWPORT_PADDING = 16;\n\nexport interface PopoverProps {\n\tchildren: React.ReactNode;\n\tplacement?: Placement;\n\topen?: boolean;\n\tdefaultOpen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Контролируемый Popover.\n * Используется в связке с Popover.Trigger и Popover.Content.\n */\nconst PopoverRoot: React.FC<PopoverProps> = ({ children, open: controlledOpen, defaultOpen, onOpenChange, placement = \"bottom\" }) => {\n\tconst [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen ?? false);\n\n\tconst isControlled = controlledOpen !== undefined;\n\tconst open = isControlled ? controlledOpen : uncontrolledOpen;\n\tconst setOpen = useCallback<React.Dispatch<React.SetStateAction<boolean>>>(\n\t\t(value) => {\n\t\t\tconst next = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (!isControlled) setUncontrolledOpen(next);\n\t\t\tonOpenChange?.(next);\n\t\t},\n\t\t[isControlled, onOpenChange, open]\n\t);\n\n\tconst arrowRef = useRef<HTMLDivElement | null>(null);\n\n\tconst {\n\t\trefs,\n\t\tfloatingStyles,\n\t\tmiddlewareData,\n\t\tplacement: actualPlacement\n\t} = useFloating({\n\t\topen,\n\t\tonOpenChange: setOpen,\n\t\tplacement,\n\t\tmiddleware: [\n\t\t\toffset(8),\n\t\t\tflip({ padding: POPOVER_VIEWPORT_PADDING }),\n\t\t\tshift({ padding: POPOVER_VIEWPORT_PADDING }),\n\t\t\tfloatingSize({\n\t\t\t\tpadding: POPOVER_VIEWPORT_PADDING,\n\t\t\t\tapply({ availableWidth, availableHeight, elements }) {\n\t\t\t\t\tapplyPopoverAvailableSize({ availableWidth, availableHeight, floating: elements.floating });\n\t\t\t\t}\n\t\t\t}),\n\t\t\t// eslint-disable-next-line react-hooks/refs\n\t\t\tarrow({ element: arrowRef.current })\n\t\t],\n\t\twhileElementsMounted: autoUpdate\n\t});\n\n\treturn (\n\t\t<PopoverContext.Provider value={{ open, setOpen, refs, floatingStyles, placement: actualPlacement, middlewareData, arrowRef }}>\n\t\t\t{children}\n\t\t</PopoverContext.Provider>\n\t);\n};\n\n/**\n * Композиционное API:\n * <Popover>\n * <Popover.Trigger />\n * <Popover.Content />\n * </Popover>\n */\nexport const Popover = Object.assign(PopoverRoot, {\n\tTrigger: PopoverTrigger,\n\tContent: PopoverContent\n});\n",".tooltipPanel {\n\tpadding: var(--space-sm);\n\t// background-image: radial-gradient(var(--surface-0) 50%, var(--surface-1) 100%);\n\tbackground-color: var(--surface-1);\n\tborder: var(--border-width) solid var(--border-2);\n\tborder-radius: var(--radius-sm);\n\tcolor: var(--content-0);\n\n\tfilter: drop-shadow(var(--shadow-sm));\n\n\t&.negative {\n\t\t--border-1: var(--content-0);\n\n\t\tbackground-color: var(--content-0);\n\t\tborder-color: var(--border-1);\n\t\tcolor: var(--surface-1);\n\t}\n\n\t&.information {\n\t\t--border-1: var(--status-info-text);\n\n\t\tbackground-color: var(--status-info-text);\n\t\tborder-color: var(--status-info-text);\n\t\tcolor: var(--status-info-on-fill);\n\t}\n\n\t&.error {\n\t\t--border-1: var(--status-error-text);\n\n\t\tbackground-color: var(--status-error-text);\n\t\tborder-color: var(--status-error-text);\n\t\tcolor: var(--status-error-on-fill);\n\t}\n\n\t&.warning {\n\t\t--border-1: var(--status-warning-text);\n\n\t\tbackground-color: var(--status-warning-text);\n\t\tborder-color: var(--status-warning-text);\n\t\tcolor: var(--status-warning-on-fill);\n\t}\n\n\t&.success {\n\t\t--border-1: var(--status-success-text);\n\n\t\tbackground-color: var(--status-success-text);\n\t\tborder-color: var(--status-success-text);\n\t\tcolor: var(--status-success-on-fill);\n\t}\n}\n\n.tooltip {\n\tz-index: var(--z-tooltip);\n\tpointer-events: none;\n\n\ttext-align: initial;\n\tfont-size: var(--font-size-sm);\n\tfont-style: normal;\n\tfont-weight: 500;\n\tfont-variation-settings: \"wght\" 500;\n\tline-height: var(--line-height);\n\n\t@extend .tooltipPanel;\n}\n","/* eslint-disable react-hooks/refs */\nimport React, { useLayoutEffect, useRef, useState } from \"react\";\n\nimport {\n\tarrow,\n\tautoUpdate,\n\tflip,\n\toffset,\n\tPlacement,\n\tshift,\n\tuseDismiss,\n\tuseFloating,\n\tuseHover,\n\tuseInteractions,\n\tuseRole\n} from \"@floating-ui/react\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { createPortal } from \"react-dom\";\n\nimport { FloatingArrow } from \"../floating-arrow/FloatingArrow\";\n\nimport styles from \"./Popover.module.scss\";\n\ninterface FloatingPopoverProps {\n\tcontent: React.ReactNode;\n\tchildren: React.ReactNode;\n\topenOnHover?: boolean;\n\tplacement?: Placement;\n\topenDelay?: number;\n\tcloseDelay?: number;\n\tmaxWidth?: number;\n\tstate?: \"information\" | \"error\" | \"warning\" | \"success\" | \"negative\";\n\ttooltip?: true;\n\t/**\n\t * Изменяется вместе с CSS-координатой trigger, когда её изменение не отслеживается `autoUpdate`.\n\t * После commit React выполняется повторный расчёт позиции открытой floating-панели.\n\t */\n\tpositionUpdateKey?: unknown;\n}\n\nexport const FloatingPopover: React.FC<FloatingPopoverProps> = ({\n\tcontent,\n\tchildren,\n\topenOnHover = true,\n\tplacement = \"bottom\",\n\topenDelay = 200,\n\tcloseDelay = 100,\n\tmaxWidth,\n\tstate,\n\ttooltip,\n\tpositionUpdateKey\n}) => {\n\tconst [open, setOpen] = useState(false);\n\tconst arrowRef = useRef<HTMLDivElement>(null);\n\n\tconst {\n\t\trefs,\n\t\tfloatingStyles,\n\t\tmiddlewareData,\n\t\tcontext,\n\t\tplacement: computedPlacement,\n\t\tupdate\n\t} = useFloating({\n\t\topen,\n\t\tonOpenChange: setOpen,\n\t\tplacement,\n\t\tmiddleware: [\n\t\t\toffset(8),\n\t\t\tflip({ fallbackAxisSideDirection: \"end\", fallbackPlacements: [\"top\", \"right\", \"bottom\"] }),\n\t\t\tshift({ padding: 8 }),\n\t\t\tarrow({ element: arrowRef, padding: 8 })\n\t\t],\n\t\twhileElementsMounted: autoUpdate\n\t});\n\n\tuseLayoutEffect(() => {\n\t\tif (open) {\n\t\t\tvoid update();\n\t\t}\n\t}, [open, positionUpdateKey, update]);\n\n\tconst hover = useHover(context, {\n\t\tenabled: openOnHover,\n\t\tmove: false,\n\t\tdelay: {\n\t\t\topen: openDelay,\n\t\t\tclose: closeDelay\n\t\t}\n\t});\n\tconst dismiss = useDismiss(context);\n\tconst role = useRole(context);\n\n\tconst { getReferenceProps, getFloatingProps } = useInteractions([hover, dismiss, role]);\n\n\treturn (\n\t\t<>\n\t\t\t<span ref={refs.setReference} {...getReferenceProps()} style={{ lineHeight: 1 }}>\n\t\t\t\t{children}\n\t\t\t</span>\n\n\t\t\t{open &&\n\t\t\t\tcreatePortal(\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\tstyle={{ ...floatingStyles, zIndex: \"var(--z-tooltip)\", maxWidth: maxWidth ? `${maxWidth}em` : undefined }}\n\t\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\t\trole=\"tooltip\"\n\t\t\t\t\t\tclassName={cn(styles.tooltipPanel, tooltip && styles.tooltip, state && styles[state])}>\n\t\t\t\t\t\t{content}\n\n\t\t\t\t\t\t<FloatingArrow ref={arrowRef} placement={computedPlacement} middlewareData={middlewareData} />\n\t\t\t\t\t</div>,\n\t\t\t\t\tdocument.body\n\t\t\t\t)}\n\t\t</>\n\t);\n};\n","import React, { useEffect, useRef } from \"react\";\n\nimport { arrow, flip, offset, shift, useFloating } from \"@floating-ui/react\";\n\nimport { FloatingArrow } from \"../floating-arrow/FloatingArrow\";\n\nimport styles from \"./Popover.module.scss\";\n\nexport const FloatingTooltip: React.FC<{\n\tx: number;\n\ty: number;\n\tchildren: React.ReactNode;\n}> = ({ x, y, children }) => {\n\tconst arrowRef = useRef<HTMLDivElement | null>(null);\n\n\tconst {\n\t\trefs,\n\t\tfloatingStyles,\n\t\tmiddlewareData,\n\t\tplacement: computedPlacement\n\t} = useFloating({\n\t\tstrategy: \"absolute\",\n\t\tplacement: \"top\",\n\t\t// eslint-disable-next-line react-hooks/refs\n\t\tmiddleware: [offset(6), flip(), shift({ padding: 16 }), arrow({ element: arrowRef })]\n\t});\n\n\tuseEffect(() => {\n\t\tif (refs.setReference) {\n\t\t\trefs.setReference({\n\t\t\t\tgetBoundingClientRect: () =>\n\t\t\t\t\t({\n\t\t\t\t\t\tx,\n\t\t\t\t\t\ty,\n\t\t\t\t\t\twidth: 0,\n\t\t\t\t\t\theight: 0,\n\t\t\t\t\t\ttop: y,\n\t\t\t\t\t\tleft: x,\n\t\t\t\t\t\tbottom: y,\n\t\t\t\t\t\tright: x,\n\t\t\t\t\t\ttoJSON: () => {}\n\t\t\t\t\t}) as DOMRect\n\t\t\t});\n\t\t}\n\t}, [x, y, refs]);\n\n\treturn (\n\t\t<div ref={refs.setFloating} style={{ ...floatingStyles, position: \"absolute\", pointerEvents: \"none\" }} className={styles.tooltip}>\n\t\t\t{children}\n\n\t\t\t<FloatingArrow ref={arrowRef} placement={computedPlacement} middlewareData={middlewareData} />\n\t\t</div>\n\t);\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as e, c as t, d as n, i as r, n as i, o as a, p as ee, r as te, s as ne, t as re } from "./base-table-
|
|
1
|
+
import { a as e, c as t, d as n, i as r, n as i, o as a, p as ee, r as te, s as ne, t as re } from "./base-table-BNtd1xSl.js";
|
|
2
2
|
import { useEffect as ie, useEffectEvent as ae, useMemo as o, useRef as s } from "react";
|
|
3
3
|
import { jsx as c } from "react/jsx-runtime";
|
|
4
4
|
import { formatPipelineDisplayValue as l } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
@@ -138,4 +138,4 @@ function m({ title: m, isLoading: h, isFetching: se, data: g, columns: _, select
|
|
|
138
138
|
//#endregion
|
|
139
139
|
export { m as t };
|
|
140
140
|
|
|
141
|
-
//# sourceMappingURL=table-
|
|
141
|
+
//# sourceMappingURL=table-C3sKpYHL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-DQmVlKDI.js","names":[],"sources":["../../src/table/Table.module.scss","../../src/table/Table.tsx"],"sourcesContent":[".selectedIndicatorCell {\n\tbox-shadow: inset 0.1875rem 0 0 var(--content-accent);\n}\n\n.sentinel {\n\theight: 1px;\n}\n","import { useEffect, useEffectEvent, useMemo, useRef } from \"react\";\n\nimport { formatPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { TableFormulaRowData } from \"@ryuzaki13/react-foundation-lib/formulas\";\nimport {\n\ttype FoundationTableRow,\n\tfoundationTableFeatures,\n\ttype TableColumnDef,\n\ttype TableColumnOrderState,\n\ttype TableColumnSizingState,\n\ttype TableColumnVisibilityState,\n\ttype TableSelectionMode,\n\tuseTableRowSelection\n} from \"@ryuzaki13/react-foundation-lib/table\";\nimport { useTable } from \"@tanstack/react-table\";\n\nimport {\n\tBaseTable,\n\tbuildBaseTableMergedCellsLayout,\n\tbuildTableFormattingSnapshot,\n\tFormattedTableCell,\n\tgetOrderedVisibleLeafColumns,\n\tshouldUseTableFormatting,\n\tuseTableColumnOrder,\n\tuseTableColumnPinning,\n\tuseTableColumnSizing,\n\tuseTableColumnVisibility,\n\ttype BaseTableColumnState,\n\ttype BaseTableProps,\n\ttype TableColumnPinningState\n} from \"../base-table\";\n\nimport styles from \"./Table.module.scss\";\n\n/**\n * Возвращает индекс как строковый id, если внешний id не передан.\n */\nfunction defaultGetRowId<TData>(_row: TData, index: number): string {\n\treturn String(index);\n}\n\n/**\n * Пропсы компонента Table.\n *\n * Компонент предназначен для плоских данных и по API осознанно сближен с TreeTable.\n */\nexport interface TableProps<TData extends object> {\n\t/**\n\t * Необязательный заголовок над таблицей.\n\t */\n\ttitle?: string;\n\t/**\n\t * Признак первичной загрузки.\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Признак фоновой догрузки или обновления данных.\n\t */\n\tisFetching?: boolean;\n\t/**\n\t * Плоский источник строк.\n\t */\n\tdata: readonly TData[] | undefined | null;\n\t/**\n\t * Описание колонок таблицы.\n\t */\n\tcolumns: readonly TableColumnDef<TData>[];\n\t/**\n\t * Режим выбора строк.\n\t */\n\tselectionMode?: TableSelectionMode;\n\t/**\n\t * Внешний список выбранных строк.\n\t *\n\t * Если передан, таблица синхронизирует визуальное выделение с этим набором id.\n\t */\n\tselectedRowIds?: readonly string[];\n\t/**\n\t * Стабильный идентификатор строки.\n\t *\n\t * Если не задан, используется индекс строки.\n\t */\n\tgetRowId?: (row: TData, index: number) => string;\n\t/**\n\t * Дополнительный CSS-класс корневого контейнера.\n\t */\n\tclassName?: string;\n\tminHeight?: `${number}em` | `${number}%`;\n\t/**\n\t * Дополнительный CSS-класс тега `table`.\n\t */\n\ttableClassName?: string;\n\t/**\n\t * Внешнее controlled-состояние видимости колонок.\n\t */\n\tcolumnVisibility?: TableColumnVisibilityState;\n\t/**\n\t * Стартовое uncontrolled-состояние видимости колонок.\n\t */\n\tdefaultColumnVisibility?: TableColumnVisibilityState;\n\t/**\n\t * Внешнее controlled-состояние порядка колонок.\n\t */\n\tcolumnOrder?: readonly string[];\n\t/**\n\t * Стартовое uncontrolled-состояние порядка колонок.\n\t */\n\tdefaultColumnOrder?: readonly string[];\n\t/**\n\t * Внешнее controlled-состояние ширин колонок в px.\n\t */\n\tcolumnSizing?: TableColumnSizingState;\n\t/**\n\t * Стартовое uncontrolled-состояние ширин колонок в px.\n\t */\n\tdefaultColumnSizing?: TableColumnSizingState;\n\t/**\n\t * Внешнее controlled-состояние start-pinning для колонок.\n\t */\n\tcolumnPinning?: TableColumnPinningState;\n\t/**\n\t * Стартовое uncontrolled-состояние start-pinning для колонок.\n\t */\n\tdefaultColumnPinning?: TableColumnPinningState;\n\t/**\n\t * Включает изменение ширины колонок через header-handle.\n\t */\n\tenableColumnResizing?: boolean;\n\t/**\n\t * Включает изменение порядка колонок через drag&drop заголовков.\n\t */\n\tenableColumnReordering?: boolean;\n\t/**\n\t * Минимальная ширина колонки при resize в px.\n\t */\n\tcolumnResizeMinWidth?: number;\n\t/**\n\t * Вызывается после изменения видимости колонок.\n\t */\n\tonColumnVisibilityChange?: (state: TableColumnVisibilityState) => void;\n\t/**\n\t * Вызывается после изменения порядка колонок.\n\t */\n\tonColumnOrderChange?: (state: TableColumnOrderState) => void;\n\t/**\n\t * Вызывается после изменения ширины колонок.\n\t */\n\tonColumnSizingChange?: (state: TableColumnSizingState) => void;\n\t/**\n\t * Вызывается после изменения start-pinning state.\n\t */\n\tonColumnPinningChange?: (state: TableColumnPinningState) => void;\n\t/**\n\t * Вызывается при активации строки кликом или клавиатурой.\n\t */\n\tonRowClick?: (row: TData) => void;\n\t/**\n\t * Вызывается после изменения выбранных строк.\n\t */\n\tonRowSelectionChange?: (rows: TData[]) => void;\n\t/**\n\t * Вызывается при достижении конца таблицы внутри scroll-контейнера.\n\t */\n\tonReachEnd?: () => void;\n\t/**\n\t * Позволяет запретить выбор отдельных строк.\n\t */\n\tgetRowCanSelect?: (row: TData) => boolean;\n\t/**\n\t * Позволяет добавить CSS-класс для конкретной строки.\n\t */\n\tgetRowClassName?: (row: TData) => string | undefined;\n\t/**\n\t * Контекстное меню заголовка колонки. Используется для общих runtime-действий\n\t * вроде server sorting без встраивания доменной логики в shared-таблицу.\n\t */\n\trenderHeaderContextMenu?: BaseTableProps<TData>[\"renderHeaderContextMenu\"];\n\t/**\n\t * Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\t *\n\t * В отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n\t * `defaultContent` уже содержит отформатированное значение, если оно применимо.\n\t */\n\trenderCellContent?: BaseTableProps<TData>[\"renderCellContent\"];\n}\n\n/**\n * Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.\n */\nexport function Table<TData extends object>({\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tdata,\n\tcolumns,\n\tselectionMode = \"none\",\n\tselectedRowIds,\n\tgetRowId,\n\tclassName,\n\tminHeight,\n\ttableClassName,\n\tcolumnVisibility,\n\tdefaultColumnVisibility,\n\tcolumnOrder,\n\tdefaultColumnOrder,\n\tcolumnSizing,\n\tdefaultColumnSizing,\n\tcolumnPinning,\n\tdefaultColumnPinning,\n\tenableColumnResizing = false,\n\tenableColumnReordering = false,\n\tcolumnResizeMinWidth,\n\tonColumnVisibilityChange,\n\tonColumnOrderChange,\n\tonColumnSizingChange,\n\tonColumnPinningChange,\n\tonRowClick,\n\tonRowSelectionChange,\n\tonReachEnd,\n\tgetRowCanSelect,\n\tgetRowClassName,\n\trenderHeaderContextMenu,\n\trenderCellContent\n}: TableProps<TData>) {\n\tconst tableData = useMemo(() => data ?? [], [data]);\n\tconst formattingSnapshot = useMemo(() => buildTableFormattingSnapshot(columns), [columns]);\n\tconst resolveRowId = getRowId ?? defaultGetRowId<TData>;\n\tconst rowById = useMemo(() => new Map(tableData.map((row, index) => [resolveRowId(row, index), row])), [resolveRowId, tableData]);\n\tconst availableRowIds = useMemo(() => Array.from(rowById.keys()), [rowById]);\n\tconst scrollableRef = useRef<HTMLDivElement | null>(null);\n\tconst sentinelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst { rowSelection, activateRowSelection } = useTableRowSelection({\n\t\tavailableRowIds,\n\t\trowById,\n\t\tselectionMode,\n\t\tselectedRowIds,\n\t\tonRowSelectionChange\n\t});\n\tconst { columnVisibility: resolvedColumnVisibility, onColumnVisibilityChange: handleColumnVisibilityChange } = useTableColumnVisibility(\n\t\t{\n\t\t\tcolumnVisibility,\n\t\t\tdefaultColumnVisibility,\n\t\t\tonColumnVisibilityChange\n\t\t}\n\t);\n\tconst { columnOrder: resolvedColumnOrder, onColumnOrderChange: handleColumnOrderChange } = useTableColumnOrder({\n\t\tcolumnOrder,\n\t\tdefaultColumnOrder,\n\t\tonColumnOrderChange\n\t});\n\tconst { columnSizing: resolvedColumnSizing, onColumnSizingChange: handleColumnSizingChange } = useTableColumnSizing({\n\t\tcolumnSizing,\n\t\tdefaultColumnSizing,\n\t\tcolumnResizeMinWidth,\n\t\tonColumnSizingChange\n\t});\n\tconst { columnPinning: resolvedColumnPinning, onColumnPinningChange: handleColumnPinningChange } = useTableColumnPinning({\n\t\tcolumnPinning,\n\t\tdefaultColumnPinning,\n\t\tonColumnPinningChange\n\t});\n\tconst baseTableColumnState = useMemo<BaseTableColumnState>(\n\t\t() => ({\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility\n\t\t}),\n\t\t[resolvedColumnOrder, resolvedColumnPinning, resolvedColumnSizing, resolvedColumnVisibility]\n\t);\n\n\tconst emitReachEnd = useEffectEvent(() => {\n\t\tonReachEnd?.();\n\t});\n\n\tuseEffect(() => {\n\t\tif (!onReachEnd || !scrollableRef.current || !sentinelRef.current || isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tconst entry = entries[0];\n\n\t\t\t\tif (entry?.isIntersecting) {\n\t\t\t\t\temitReachEnd();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: scrollableRef.current,\n\t\t\t\tthreshold: 0.1\n\t\t\t}\n\t\t);\n\n\t\tobserver.observe(sentinelRef.current);\n\n\t\treturn () => observer.disconnect();\n\t}, [isLoading, onReachEnd, tableData.length]);\n\n\tconst table = useTable({\n\t\tfeatures: foundationTableFeatures,\n\t\tdata: tableData as TData[],\n\t\tcolumns: columns as TableColumnDef<TData>[],\n\t\tstate: {\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility,\n\t\t\trowSelection\n\t\t},\n\t\tonColumnOrderChange: handleColumnOrderChange,\n\t\tonColumnPinningChange: handleColumnPinningChange,\n\t\tonColumnSizingChange: handleColumnSizingChange,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tgetRowId: (row, index) => resolveRowId(row, index),\n\t\tenableMultiRowSelection: selectionMode === \"multi\",\n\t\tenableRowSelection: (row) => {\n\t\t\tif (selectionMode === \"none\") {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn getRowCanSelect ? getRowCanSelect(row.original) : true;\n\t\t}\n\t});\n\n\tconst visibleLeafColumns = getOrderedVisibleLeafColumns(table, baseTableColumnState);\n\tconst rowModelRows = table.getRowModel().rows;\n\tconst mergedCellLayout = useMemo(\n\t\t() =>\n\t\t\tbuildBaseTableMergedCellsLayout({\n\t\t\t\trows: rowModelRows,\n\t\t\t\tcolumns: visibleLeafColumns\n\t\t\t}),\n\t\t[rowModelRows, visibleLeafColumns]\n\t);\n\tconst leadingColumnId = visibleLeafColumns[0]?.id;\n\n\t/**\n\t * Активирует строку: обновляет выбор в соответствии с режимом и вызывает внешний callback.\n\t */\n\tconst activateRow = (row: FoundationTableRow<TData>) => {\n\t\tactivateRowSelection(row.id, row.getCanSelect());\n\t\tonRowClick?.(row.original);\n\t};\n\n\treturn (\n\t\t<BaseTable\n\t\t\ttable={table}\n\t\t\tcolumnState={baseTableColumnState}\n\t\t\ttitle={title}\n\t\t\tisLoading={isLoading}\n\t\t\tisFetching={isFetching}\n\t\t\tclassName={className}\n\t\t\tminHeight={minHeight}\n\t\t\ttableClassName={tableClassName}\n\t\t\tselectionMode={selectionMode}\n\t\t\tscrollableRef={scrollableRef}\n\t\t\tonActivateRow={selectionMode !== \"none\" || onRowClick ? activateRow : undefined}\n\t\t\tisRowInteractive={(row) => Boolean(onRowClick || (selectionMode !== \"none\" && row.getCanSelect()))}\n\t\t\tgetRowClassName={(row) => getRowClassName?.(row.original)}\n\t\t\tgetCellClassName={({ row, cell }) =>\n\t\t\t\tcell.column.id === leadingColumnId && row.getIsSelected() ? styles.selectedIndicatorCell : undefined\n\t\t\t}\n\t\t\tgetCellLayout={({ cell }) => mergedCellLayout.get(cell.id)}\n\t\t\trenderHeaderContextMenu={renderHeaderContextMenu}\n\t\t\tenableColumnResizing={enableColumnResizing}\n\t\t\tenableColumnReordering={enableColumnReordering}\n\t\t\tcolumnResizeMinWidth={columnResizeMinWidth}\n\t\t\trenderCellContent={(args) => {\n\t\t\t\tconst displayValue = formatPipelineDisplayValue({\n\t\t\t\t\tfield: formattingSnapshot.runtimeByColumnId[args.cell.column.id],\n\t\t\t\t\trawValue: args.cell.getValue(),\n\t\t\t\t\trowData: args.row.original as TableFormulaRowData,\n\t\t\t\t\trowKind: \"plain\"\n\t\t\t\t});\n\t\t\t\tconst defaultContent = !shouldUseTableFormatting({\n\t\t\t\t\tcolumnId: args.cell.column.id,\n\t\t\t\t\truntimeByColumnId: formattingSnapshot.runtimeByColumnId,\n\t\t\t\t\tcustomCellColumnIds: formattingSnapshot.customCellColumnIds\n\t\t\t\t}) ? (\n\t\t\t\t\targs.defaultContent\n\t\t\t\t) : (\n\t\t\t\t\t<FormattedTableCell displayValue={displayValue} align={args.columnMeta?.align} />\n\t\t\t\t);\n\n\t\t\t\tif (renderCellContent) {\n\t\t\t\t\treturn renderCellContent({\n\t\t\t\t\t\t...args,\n\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\tdisplayValue\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn defaultContent;\n\t\t\t}}\n\t\t\tafterTableContent={onReachEnd ? <div ref={sentinelRef} className={styles.sentinel} aria-hidden=\"true\" /> : null}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-C3sKpYHL.js","names":[],"sources":["../../src/table/Table.module.scss","../../src/table/Table.tsx"],"sourcesContent":[".selectedIndicatorCell {\n\tbox-shadow: inset 0.1875rem 0 0 var(--content-accent);\n}\n\n.sentinel {\n\theight: 1px;\n}\n","import { useEffect, useEffectEvent, useMemo, useRef } from \"react\";\n\nimport { formatPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { TableFormulaRowData } from \"@ryuzaki13/react-foundation-lib/formulas\";\nimport {\n\ttype FoundationTableRow,\n\tfoundationTableFeatures,\n\ttype TableColumnDef,\n\ttype TableColumnOrderState,\n\ttype TableColumnSizingState,\n\ttype TableColumnVisibilityState,\n\ttype TableSelectionMode,\n\tuseTableRowSelection\n} from \"@ryuzaki13/react-foundation-lib/table\";\nimport { useTable } from \"@tanstack/react-table\";\n\nimport {\n\tBaseTable,\n\tbuildBaseTableMergedCellsLayout,\n\tbuildTableFormattingSnapshot,\n\tFormattedTableCell,\n\tgetOrderedVisibleLeafColumns,\n\tshouldUseTableFormatting,\n\tuseTableColumnOrder,\n\tuseTableColumnPinning,\n\tuseTableColumnSizing,\n\tuseTableColumnVisibility,\n\ttype BaseTableColumnState,\n\ttype BaseTableProps,\n\ttype TableColumnPinningState\n} from \"../base-table\";\n\nimport styles from \"./Table.module.scss\";\n\n/**\n * Возвращает индекс как строковый id, если внешний id не передан.\n */\nfunction defaultGetRowId<TData>(_row: TData, index: number): string {\n\treturn String(index);\n}\n\n/**\n * Пропсы компонента Table.\n *\n * Компонент предназначен для плоских данных и по API осознанно сближен с TreeTable.\n */\nexport interface TableProps<TData extends object> {\n\t/**\n\t * Необязательный заголовок над таблицей.\n\t */\n\ttitle?: string;\n\t/**\n\t * Признак первичной загрузки.\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Признак фоновой догрузки или обновления данных.\n\t */\n\tisFetching?: boolean;\n\t/**\n\t * Плоский источник строк.\n\t */\n\tdata: readonly TData[] | undefined | null;\n\t/**\n\t * Описание колонок таблицы.\n\t */\n\tcolumns: readonly TableColumnDef<TData>[];\n\t/**\n\t * Режим выбора строк.\n\t */\n\tselectionMode?: TableSelectionMode;\n\t/**\n\t * Внешний список выбранных строк.\n\t *\n\t * Если передан, таблица синхронизирует визуальное выделение с этим набором id.\n\t */\n\tselectedRowIds?: readonly string[];\n\t/**\n\t * Стабильный идентификатор строки.\n\t *\n\t * Если не задан, используется индекс строки.\n\t */\n\tgetRowId?: (row: TData, index: number) => string;\n\t/**\n\t * Дополнительный CSS-класс корневого контейнера.\n\t */\n\tclassName?: string;\n\tminHeight?: `${number}em` | `${number}%`;\n\t/**\n\t * Дополнительный CSS-класс тега `table`.\n\t */\n\ttableClassName?: string;\n\t/**\n\t * Внешнее controlled-состояние видимости колонок.\n\t */\n\tcolumnVisibility?: TableColumnVisibilityState;\n\t/**\n\t * Стартовое uncontrolled-состояние видимости колонок.\n\t */\n\tdefaultColumnVisibility?: TableColumnVisibilityState;\n\t/**\n\t * Внешнее controlled-состояние порядка колонок.\n\t */\n\tcolumnOrder?: readonly string[];\n\t/**\n\t * Стартовое uncontrolled-состояние порядка колонок.\n\t */\n\tdefaultColumnOrder?: readonly string[];\n\t/**\n\t * Внешнее controlled-состояние ширин колонок в px.\n\t */\n\tcolumnSizing?: TableColumnSizingState;\n\t/**\n\t * Стартовое uncontrolled-состояние ширин колонок в px.\n\t */\n\tdefaultColumnSizing?: TableColumnSizingState;\n\t/**\n\t * Внешнее controlled-состояние start-pinning для колонок.\n\t */\n\tcolumnPinning?: TableColumnPinningState;\n\t/**\n\t * Стартовое uncontrolled-состояние start-pinning для колонок.\n\t */\n\tdefaultColumnPinning?: TableColumnPinningState;\n\t/**\n\t * Включает изменение ширины колонок через header-handle.\n\t */\n\tenableColumnResizing?: boolean;\n\t/**\n\t * Включает изменение порядка колонок через drag&drop заголовков.\n\t */\n\tenableColumnReordering?: boolean;\n\t/**\n\t * Минимальная ширина колонки при resize в px.\n\t */\n\tcolumnResizeMinWidth?: number;\n\t/**\n\t * Вызывается после изменения видимости колонок.\n\t */\n\tonColumnVisibilityChange?: (state: TableColumnVisibilityState) => void;\n\t/**\n\t * Вызывается после изменения порядка колонок.\n\t */\n\tonColumnOrderChange?: (state: TableColumnOrderState) => void;\n\t/**\n\t * Вызывается после изменения ширины колонок.\n\t */\n\tonColumnSizingChange?: (state: TableColumnSizingState) => void;\n\t/**\n\t * Вызывается после изменения start-pinning state.\n\t */\n\tonColumnPinningChange?: (state: TableColumnPinningState) => void;\n\t/**\n\t * Вызывается при активации строки кликом или клавиатурой.\n\t */\n\tonRowClick?: (row: TData) => void;\n\t/**\n\t * Вызывается после изменения выбранных строк.\n\t */\n\tonRowSelectionChange?: (rows: TData[]) => void;\n\t/**\n\t * Вызывается при достижении конца таблицы внутри scroll-контейнера.\n\t */\n\tonReachEnd?: () => void;\n\t/**\n\t * Позволяет запретить выбор отдельных строк.\n\t */\n\tgetRowCanSelect?: (row: TData) => boolean;\n\t/**\n\t * Позволяет добавить CSS-класс для конкретной строки.\n\t */\n\tgetRowClassName?: (row: TData) => string | undefined;\n\t/**\n\t * Контекстное меню заголовка колонки. Используется для общих runtime-действий\n\t * вроде server sorting без встраивания доменной логики в shared-таблицу.\n\t */\n\trenderHeaderContextMenu?: BaseTableProps<TData>[\"renderHeaderContextMenu\"];\n\t/**\n\t * Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\t *\n\t * В отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n\t * `defaultContent` уже содержит отформатированное значение, если оно применимо.\n\t */\n\trenderCellContent?: BaseTableProps<TData>[\"renderCellContent\"];\n}\n\n/**\n * Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.\n */\nexport function Table<TData extends object>({\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tdata,\n\tcolumns,\n\tselectionMode = \"none\",\n\tselectedRowIds,\n\tgetRowId,\n\tclassName,\n\tminHeight,\n\ttableClassName,\n\tcolumnVisibility,\n\tdefaultColumnVisibility,\n\tcolumnOrder,\n\tdefaultColumnOrder,\n\tcolumnSizing,\n\tdefaultColumnSizing,\n\tcolumnPinning,\n\tdefaultColumnPinning,\n\tenableColumnResizing = false,\n\tenableColumnReordering = false,\n\tcolumnResizeMinWidth,\n\tonColumnVisibilityChange,\n\tonColumnOrderChange,\n\tonColumnSizingChange,\n\tonColumnPinningChange,\n\tonRowClick,\n\tonRowSelectionChange,\n\tonReachEnd,\n\tgetRowCanSelect,\n\tgetRowClassName,\n\trenderHeaderContextMenu,\n\trenderCellContent\n}: TableProps<TData>) {\n\tconst tableData = useMemo(() => data ?? [], [data]);\n\tconst formattingSnapshot = useMemo(() => buildTableFormattingSnapshot(columns), [columns]);\n\tconst resolveRowId = getRowId ?? defaultGetRowId<TData>;\n\tconst rowById = useMemo(() => new Map(tableData.map((row, index) => [resolveRowId(row, index), row])), [resolveRowId, tableData]);\n\tconst availableRowIds = useMemo(() => Array.from(rowById.keys()), [rowById]);\n\tconst scrollableRef = useRef<HTMLDivElement | null>(null);\n\tconst sentinelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst { rowSelection, activateRowSelection } = useTableRowSelection({\n\t\tavailableRowIds,\n\t\trowById,\n\t\tselectionMode,\n\t\tselectedRowIds,\n\t\tonRowSelectionChange\n\t});\n\tconst { columnVisibility: resolvedColumnVisibility, onColumnVisibilityChange: handleColumnVisibilityChange } = useTableColumnVisibility(\n\t\t{\n\t\t\tcolumnVisibility,\n\t\t\tdefaultColumnVisibility,\n\t\t\tonColumnVisibilityChange\n\t\t}\n\t);\n\tconst { columnOrder: resolvedColumnOrder, onColumnOrderChange: handleColumnOrderChange } = useTableColumnOrder({\n\t\tcolumnOrder,\n\t\tdefaultColumnOrder,\n\t\tonColumnOrderChange\n\t});\n\tconst { columnSizing: resolvedColumnSizing, onColumnSizingChange: handleColumnSizingChange } = useTableColumnSizing({\n\t\tcolumnSizing,\n\t\tdefaultColumnSizing,\n\t\tcolumnResizeMinWidth,\n\t\tonColumnSizingChange\n\t});\n\tconst { columnPinning: resolvedColumnPinning, onColumnPinningChange: handleColumnPinningChange } = useTableColumnPinning({\n\t\tcolumnPinning,\n\t\tdefaultColumnPinning,\n\t\tonColumnPinningChange\n\t});\n\tconst baseTableColumnState = useMemo<BaseTableColumnState>(\n\t\t() => ({\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility\n\t\t}),\n\t\t[resolvedColumnOrder, resolvedColumnPinning, resolvedColumnSizing, resolvedColumnVisibility]\n\t);\n\n\tconst emitReachEnd = useEffectEvent(() => {\n\t\tonReachEnd?.();\n\t});\n\n\tuseEffect(() => {\n\t\tif (!onReachEnd || !scrollableRef.current || !sentinelRef.current || isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tconst entry = entries[0];\n\n\t\t\t\tif (entry?.isIntersecting) {\n\t\t\t\t\temitReachEnd();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: scrollableRef.current,\n\t\t\t\tthreshold: 0.1\n\t\t\t}\n\t\t);\n\n\t\tobserver.observe(sentinelRef.current);\n\n\t\treturn () => observer.disconnect();\n\t}, [isLoading, onReachEnd, tableData.length]);\n\n\tconst table = useTable({\n\t\tfeatures: foundationTableFeatures,\n\t\tdata: tableData as TData[],\n\t\tcolumns: columns as TableColumnDef<TData>[],\n\t\tstate: {\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility,\n\t\t\trowSelection\n\t\t},\n\t\tonColumnOrderChange: handleColumnOrderChange,\n\t\tonColumnPinningChange: handleColumnPinningChange,\n\t\tonColumnSizingChange: handleColumnSizingChange,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tgetRowId: (row, index) => resolveRowId(row, index),\n\t\tenableMultiRowSelection: selectionMode === \"multi\",\n\t\tenableRowSelection: (row) => {\n\t\t\tif (selectionMode === \"none\") {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn getRowCanSelect ? getRowCanSelect(row.original) : true;\n\t\t}\n\t});\n\n\tconst visibleLeafColumns = getOrderedVisibleLeafColumns(table, baseTableColumnState);\n\tconst rowModelRows = table.getRowModel().rows;\n\tconst mergedCellLayout = useMemo(\n\t\t() =>\n\t\t\tbuildBaseTableMergedCellsLayout({\n\t\t\t\trows: rowModelRows,\n\t\t\t\tcolumns: visibleLeafColumns\n\t\t\t}),\n\t\t[rowModelRows, visibleLeafColumns]\n\t);\n\tconst leadingColumnId = visibleLeafColumns[0]?.id;\n\n\t/**\n\t * Активирует строку: обновляет выбор в соответствии с режимом и вызывает внешний callback.\n\t */\n\tconst activateRow = (row: FoundationTableRow<TData>) => {\n\t\tactivateRowSelection(row.id, row.getCanSelect());\n\t\tonRowClick?.(row.original);\n\t};\n\n\treturn (\n\t\t<BaseTable\n\t\t\ttable={table}\n\t\t\tcolumnState={baseTableColumnState}\n\t\t\ttitle={title}\n\t\t\tisLoading={isLoading}\n\t\t\tisFetching={isFetching}\n\t\t\tclassName={className}\n\t\t\tminHeight={minHeight}\n\t\t\ttableClassName={tableClassName}\n\t\t\tselectionMode={selectionMode}\n\t\t\tscrollableRef={scrollableRef}\n\t\t\tonActivateRow={selectionMode !== \"none\" || onRowClick ? activateRow : undefined}\n\t\t\tisRowInteractive={(row) => Boolean(onRowClick || (selectionMode !== \"none\" && row.getCanSelect()))}\n\t\t\tgetRowClassName={(row) => getRowClassName?.(row.original)}\n\t\t\tgetCellClassName={({ row, cell }) =>\n\t\t\t\tcell.column.id === leadingColumnId && row.getIsSelected() ? styles.selectedIndicatorCell : undefined\n\t\t\t}\n\t\t\tgetCellLayout={({ cell }) => mergedCellLayout.get(cell.id)}\n\t\t\trenderHeaderContextMenu={renderHeaderContextMenu}\n\t\t\tenableColumnResizing={enableColumnResizing}\n\t\t\tenableColumnReordering={enableColumnReordering}\n\t\t\tcolumnResizeMinWidth={columnResizeMinWidth}\n\t\t\trenderCellContent={(args) => {\n\t\t\t\tconst displayValue = formatPipelineDisplayValue({\n\t\t\t\t\tfield: formattingSnapshot.runtimeByColumnId[args.cell.column.id],\n\t\t\t\t\trawValue: args.cell.getValue(),\n\t\t\t\t\trowData: args.row.original as TableFormulaRowData,\n\t\t\t\t\trowKind: \"plain\"\n\t\t\t\t});\n\t\t\t\tconst defaultContent = !shouldUseTableFormatting({\n\t\t\t\t\tcolumnId: args.cell.column.id,\n\t\t\t\t\truntimeByColumnId: formattingSnapshot.runtimeByColumnId,\n\t\t\t\t\tcustomCellColumnIds: formattingSnapshot.customCellColumnIds\n\t\t\t\t}) ? (\n\t\t\t\t\targs.defaultContent\n\t\t\t\t) : (\n\t\t\t\t\t<FormattedTableCell displayValue={displayValue} align={args.columnMeta?.align} />\n\t\t\t\t);\n\n\t\t\t\tif (renderCellContent) {\n\t\t\t\t\treturn renderCellContent({\n\t\t\t\t\t\t...args,\n\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\tdisplayValue\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn defaultContent;\n\t\t\t}}\n\t\t\tafterTableContent={onReachEnd ? <div ref={sentinelRef} className={styles.sentinel} aria-hidden=\"true\" /> : null}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;ACqCA,SAAS,GAAuB,GAAa,GAAuB;CACnE,OAAO,OAAO,CAAK;AACpB;AAsJA,SAAgB,EAA4B,EAC3C,UACA,cACA,gBACA,SACA,YACA,mBAAgB,QAChB,oBACA,cACA,eACA,eACA,oBACA,qBACA,4BACA,gBACA,uBACA,iBACA,wBACA,kBACA,yBACA,0BAAuB,IACvB,4BAAyB,IACzB,yBACA,6BACA,wBACA,yBACA,0BACA,eACA,yBACA,eACA,oBACA,oBACA,6BACA,wBACqB;CACrB,IAAM,IAAY,QAAc,KAAQ,CAAC,GAAG,CAAC,CAAI,CAAC,GAC5C,IAAqB,QAAc,EAA6B,CAAO,GAAG,CAAC,CAAO,CAAC,GACnF,IAAe,MAAY,IAC3B,IAAU,QAAc,IAAI,IAAI,EAAU,KAAK,GAAK,MAAU,CAAC,EAAa,GAAK,CAAK,GAAG,CAAG,CAAC,CAAC,GAAG,CAAC,GAAc,CAAS,CAAC,GAC1H,KAAkB,QAAc,MAAM,KAAK,EAAQ,KAAK,CAAC,GAAG,CAAC,CAAO,CAAC,GACrE,IAAgB,EAA8B,IAAI,GAClD,IAAc,EAA8B,IAAI,GAEhD,EAAE,kBAAc,6BAAyB,EAAqB;EACnE;EACA;EACA;EACA;EACA;CACD,CAAC,GACK,EAAE,kBAAkB,GAA0B,0BAA0B,OAAiC,GAC9G;EACC;EACA;EACA;CACD,CACD,GACM,EAAE,aAAa,GAAqB,qBAAqB,OAA4B,EAAoB;EAC9G;EACA;EACA;CACD,CAAC,GACK,EAAE,cAAc,GAAsB,sBAAsB,OAA6B,EAAqB;EACnH;EACA;EACA;EACA;CACD,CAAC,GACK,EAAE,eAAe,GAAuB,uBAAuB,OAA8B,EAAsB;EACxH;EACA;EACA;CACD,CAAC,GACK,IAAuB,SACrB;EACN,aAAa;EACb,eAAe;EACf,cAAc;EACd,kBAAkB;CACnB,IACA;EAAC;EAAqB;EAAuB;EAAsB;CAAwB,CAC5F,GAEM,KAAe,SAAqB;EACzC,IAAa;CACd,CAAC;CAED,SAAgB;EACf,IAAI,CAAC,KAAc,CAAC,EAAc,WAAW,CAAC,EAAY,WAAW,GACpE;EAGD,IAAM,IAAW,IAAI,sBACnB,MAAY;GAGZ,AAFc,EAAQ,EAElB,EAAO,kBACV,GAAa;EAEf,GACA;GACC,MAAM,EAAc;GACpB,WAAW;EACZ,CACD;EAIA,OAFA,EAAS,QAAQ,EAAY,OAAO,SAEvB,EAAS,WAAW;CAClC,GAAG;EAAC;EAAW;EAAY,EAAU;CAAM,CAAC;CAE5C,IAAM,IAAQ,EAAS;EACtB,UAAU;EACV,MAAM;EACG;EACT,OAAO;GACN,aAAa;GACb,eAAe;GACf,cAAc;GACd,kBAAkB;GAClB;EACD;EACA,qBAAqB;EACrB,uBAAuB;EACvB,sBAAsB;EACtB,0BAA0B;EAC1B,WAAW,GAAK,MAAU,EAAa,GAAK,CAAK;EACjD,yBAAyB,MAAkB;EAC3C,qBAAqB,MAChB,MAAkB,SACd,KAGD,MAAkB,EAAgB,EAAI,QAAQ;CAEvD,CAAC,GAEK,IAAqB,GAA6B,GAAO,CAAoB,GAC7E,IAAe,EAAM,YAAY,CAAC,CAAC,MACnC,KAAmB,QAEvB,GAAgC;EAC/B,MAAM;EACN,SAAS;CACV,CAAC,GACF,CAAC,GAAc,CAAkB,CAClC,GACM,KAAkB,EAAmB,EAAE,EAAE;CAU/C,OACC,kBAAC,GAAD;EACQ;EACP,aAAa;EACN;EACI;EACC;EACD;EACA;EACK;EACD;EACA;EACf,eAAe,MAAkB,UAAU,KAjBxB,MAAmC;GAEvD,AADA,GAAqB,EAAI,IAAI,EAAI,aAAa,CAAC,GAC/C,IAAa,EAAI,QAAQ;EAC1B,IAcwE,KAAA;EACtE,mBAAmB,MAAQ,GAAQ,KAAe,MAAkB,UAAU,EAAI,aAAa;EAC/F,kBAAkB,MAAQ,IAAkB,EAAI,QAAQ;EACxD,mBAAmB,EAAE,QAAK,cACzB,EAAK,OAAO,OAAO,MAAmB,EAAI,cAAc,IAAI,EAAO,wBAAwB,KAAA;EAE5F,gBAAgB,EAAE,cAAW,GAAiB,IAAI,EAAK,EAAE;EAChC;EACH;EACE;EACF;EACtB,oBAAoB,MAAS;GAC5B,IAAM,IAAe,EAA2B;IAC/C,OAAO,EAAmB,kBAAkB,EAAK,KAAK,OAAO;IAC7D,UAAU,EAAK,KAAK,SAAS;IAC7B,SAAS,EAAK,IAAI;IAClB,SAAS;GACV,CAAC,GACK,IAAkB,EAAyB;IAChD,UAAU,EAAK,KAAK,OAAO;IAC3B,mBAAmB,EAAmB;IACtC,qBAAqB,EAAmB;GACzC,CAAC,IAGA,kBAAC,IAAD;IAAkC;IAAc,OAAO,EAAK,YAAY;GAAQ,CAAA,IAFhF,EAAK;GAaN,OARI,IACI,EAAkB;IACxB,GAAG;IACH;IACA;GACD,CAAC,IAGK;EACR;EACA,mBAAmB,IAAa,kBAAC,OAAD;GAAK,KAAK;GAAa,WAAW,EAAO;GAAU,eAAY;EAAQ,CAAA,IAAI;CAC3G,CAAA;AAEH"}
|
package/dist/date-input/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/CalendarView-
|
|
2
|
-
import { _ as s, a as c, b as l, c as u, d, f, g as p, h as m, i as h, l as g, m as _, n as v, o as y, p as b, r as x, s as S, t as C, u as w, v as T, y as E } from "../chunks/date-input-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/CalendarView-BK-Q6GVc.js";
|
|
2
|
+
import { _ as s, a as c, b as l, c as u, d, f, g as p, h as m, i as h, l as g, m as _, n as v, o as y, p as b, r as x, s as S, t as C, u as w, v as T, y as E } from "../chunks/date-input-DXXKeLcq.js";
|
|
3
3
|
export { o as CalendarView, p as DATE_INPUT_SELECTION_MODES, s as DATE_INPUT_SELECTION_MODE_OPTIONS, n as DATE_INPUT_WEEK_END_DAYS, i as DATE_PICKER_LEVELS, x as DEFAULT_DATE_INPUT_FORMAT, h as DEFAULT_DATE_INPUT_PRESET, C as RangeDateInput, v as SingleDateInput, c as areRangeDateValuesEqual, y as areSingleDateValuesEqual, S as formatDateInputValue, u as formatRangeDateValue, g as formatSingleDateValue, t as getDatePickerLevelForSelectionMode, T as isDateInputSelectionMode, e as isDatePickerLevelAvailable, E as normalizeDateInputSelectionModes, w as normalizeRangeDateValue, d as normalizeRangeEndDateValue, f as normalizeSingleDateValue, b as parseRangeDateValue, _ as parseRangeEndDateValue, m as parseSingleDateValue, r as resolveAvailableDatePickerLevel, a as resolveDateInputPeriodRangeState, l as resolveDateInputSelectionModeOptionsByModes };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { r as e } from "../chunks/popover-
|
|
1
|
+
import { r as e } from "../chunks/popover-BMboZXoQ.js";
|
|
2
2
|
import { t } from "../chunks/ui.module-BsDio9A3.js";
|
|
3
3
|
import { c as n, d as r, i } from "../chunks/input-D1jOxm0t.js";
|
|
4
|
-
import { t as a } from "../chunks/CalendarView-
|
|
4
|
+
import { t as a } from "../chunks/CalendarView-BK-Q6GVc.js";
|
|
5
5
|
import { t as o } from "../chunks/wheel-picker-FS58cRsQ.js";
|
|
6
6
|
import { useCallback as s, useMemo as c, useRef as l, useState as u } from "react";
|
|
7
7
|
import { cn as d } from "@ryuzaki13/react-foundation-lib/utils";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as e } from "../chunks/button-
|
|
2
|
-
import { l as t } from "../chunks/misc-
|
|
1
|
+
import { n as e } from "../chunks/button-BYWHD2TV.js";
|
|
2
|
+
import { l as t } from "../chunks/misc-CV0XwJf3.js";
|
|
3
3
|
import { useCallback as n, useId as r, useState as i } from "react";
|
|
4
4
|
import { cn as a } from "@ryuzaki13/react-foundation-lib/utils";
|
|
5
5
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
package/dist/image/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { n as e } from "../chunks/button-
|
|
1
|
+
import { n as e } from "../chunks/button-BYWHD2TV.js";
|
|
2
2
|
import { r as t } from "../chunks/grid-dI94AAbi.js";
|
|
3
|
-
import { i as n, n as r, r as i } from "../chunks/modal-
|
|
3
|
+
import { i as n, n as r, r as i } from "../chunks/modal-Bmd9iBw1.js";
|
|
4
4
|
import { s as a } from "../chunks/input-D1jOxm0t.js";
|
|
5
5
|
import { t as o } from "../chunks/input-files-CDGpJaUm.js";
|
|
6
6
|
import { Suspense as s, lazy as c, useCallback as l, useEffect as u, useMemo as d, useRef as f, useState as p } from "react";
|
package/dist/list/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as e, h as t } from "../chunks/misc-
|
|
1
|
+
import { c as e, h as t } from "../chunks/misc-CV0XwJf3.js";
|
|
2
2
|
import { t as n } from "../chunks/grid-dI94AAbi.js";
|
|
3
3
|
import r, { Children as i, useLayoutEffect as a, useReducer as o, useRef as s, useState as c } from "react";
|
|
4
4
|
import { cn as l } from "@ryuzaki13/react-foundation-lib/utils";
|
package/dist/misc/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as e, a as t, b as n, c as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _, v, y } from "../chunks/misc-
|
|
1
|
+
import { _ as e, a as t, b as n, c as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, o as f, p, r as m, s as h, t as g, u as _, v, y } from "../chunks/misc-CV0XwJf3.js";
|
|
2
2
|
export { n as AnimatedLogo, y as AnimatedLogoSegment, v as CopyTextWrapper, d as ErrorIcon, e as IconWrapper, m as InformationIcon, u as LazyDynamicComponent, a as LazyValue, s as LoadingMessage, o as Message, i as NoData, _ as Notice, l as OneStepScroller, c as RenderStateIcon, r as Scrollable, p as SkeletonLine, t as StateIcon, g as StateWrapper, f as SuccessIcon, h as WarningIcon };
|
package/dist/modal/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/modal-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, s as a, t as o } from "../chunks/modal-Bmd9iBw1.js";
|
|
2
2
|
export { n as Modal, i as ModalContent, t as ModalFooter, r as ModalManagerContext, o as ModalManagerProvider, e as ModalToolbar, a as useModalManager };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as e } from "../chunks/button-
|
|
1
|
+
import { n as e } from "../chunks/button-BYWHD2TV.js";
|
|
2
2
|
import { o as t } from "../chunks/flex-C7njxZ74.js";
|
|
3
3
|
import { createContext as n, useContext as r, useEffect as i, useMemo as a } from "react";
|
|
4
4
|
import { cn as o } from "@ryuzaki13/react-foundation-lib/utils";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/popover/components/Popover.tsx"],"names":[],"mappings":"AACA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAmC,SAAS,
|
|
1
|
+
{"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/popover/components/Popover.tsx"],"names":[],"mappings":"AACA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAmC,SAAS,EAA4C,MAAM,oBAAoB,CAAC;AAU1H,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AAsDD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;;;CAGlB,CAAC"}
|
package/dist/popover/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, i as t, n, o as r, r as i, t as a } from "../chunks/popover-
|
|
1
|
+
import { a as e, i as t, n, o as r, r as i, t as a } from "../chunks/popover-BMboZXoQ.js";
|
|
2
2
|
export { n as FloatingPopover, a as FloatingTooltip, i as Popover, e as PopoverContent, t as PopoverTrigger, r as usePopoverContext };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type ApplyPopoverAvailableSizeOptions = {
|
|
2
|
+
readonly availableWidth: number;
|
|
3
|
+
readonly availableHeight: number;
|
|
4
|
+
readonly floating: HTMLElement;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Передаёт вычисленную Floating UI доступную область самому popover через CSS-переменные.
|
|
8
|
+
* Потребитель может совместить эти границы со своим размером и режимом прокрутки,
|
|
9
|
+
* не дублируя `size()` middleware и правила clipping context.
|
|
10
|
+
*/
|
|
11
|
+
export declare function applyPopoverAvailableSize({ availableWidth, availableHeight, floating }: ApplyPopoverAvailableSizeOptions): void;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=applyPopoverAvailableSize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyPopoverAvailableSize.d.ts","sourceRoot":"","sources":["../../../src/popover/lib/applyPopoverAvailableSize.ts"],"names":[],"mappings":"AAAA,KAAK,gCAAgC,GAAG;IACvC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,gCAAgC,QAGxH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as e } from "../chunks/flex-C7njxZ74.js";
|
|
2
|
-
import { t } from "../chunks/date-input-
|
|
2
|
+
import { t } from "../chunks/date-input-DXXKeLcq.js";
|
|
3
3
|
import { c as n, l as r, r as i, s as a, t as o, u as s } from "../chunks/date-range-preset-select-BLnY47cv.js";
|
|
4
4
|
import { useCallback as c, useMemo as l, useRef as u, useState as d } from "react";
|
|
5
5
|
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
package/dist/slider/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as e, r as t } from "../chunks/popover-
|
|
1
|
+
import { n as e, r as t } from "../chunks/popover-BMboZXoQ.js";
|
|
2
2
|
import { t as n } from "../chunks/ui.module-BsDio9A3.js";
|
|
3
3
|
import { c as r, d as i, i as a, s as o } from "../chunks/input-D1jOxm0t.js";
|
|
4
4
|
import { l as s } from "../chunks/picker-DO9HFqJV.js";
|
package/dist/table/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../chunks/table-
|
|
1
|
+
import { t as e } from "../chunks/table-C3sKpYHL.js";
|
|
2
2
|
export { e as Table };
|
package/dist/tabs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "../chunks/ui.module-BsDio9A3.js";
|
|
2
2
|
import { n as t } from "../chunks/uiClasses-BVwFzzsr.js";
|
|
3
|
-
import { d as n, h as r, l as i } from "../chunks/misc-
|
|
3
|
+
import { d as n, h as r, l as i } from "../chunks/misc-CV0XwJf3.js";
|
|
4
4
|
import { Children as a, isValidElement as o, useId as s, useMemo as c, useRef as l, useState as u } from "react";
|
|
5
5
|
import { cn as d, getRovingFocusTargetIndex as f } from "@ryuzaki13/react-foundation-lib/utils";
|
|
6
6
|
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
package/dist/text/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { m as e } from "../chunks/misc-
|
|
1
|
+
import { m as e } from "../chunks/misc-CV0XwJf3.js";
|
|
2
2
|
import { a as t, n, t as r } from "../chunks/types-D9Wj9wrg.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-C8jKCbsp.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, n as i, o as ee, p 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, n as i, o as ee, p as te, r as ne, s as re, t as ie } from "../chunks/base-table-BNtd1xSl.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 { jsx as l, jsxs as u } from "react/jsx-runtime";
|
package/package.json
CHANGED
|
@@ -203,7 +203,19 @@ $light-theme-defaults: (
|
|
|
203
203
|
"--shadow-xs": 0 0 0.25em rgba(0, 0, 0, 0.15),
|
|
204
204
|
"--shadow-sm": 0 0 0.25em rgba(0, 0, 0, 0.25),
|
|
205
205
|
"--shadow-md": 0 0 0.5em rgba(0, 0, 0, 0.25),
|
|
206
|
-
"--shadow-lg": 0 0 1em rgba(0, 0, 0, 0.25)
|
|
206
|
+
"--shadow-lg": 0 0 1em rgba(0, 0, 0, 0.25),
|
|
207
|
+
"--interactive-color": inherit,
|
|
208
|
+
"--interactive-hover-color": var(--content-0),
|
|
209
|
+
"--interactive-active-color": var(--content-0),
|
|
210
|
+
"--interactive-selected-color": var(--content-0),
|
|
211
|
+
"--interactive-surface": transparent,
|
|
212
|
+
"--interactive-hover-surface": var(--surface-accent),
|
|
213
|
+
"--interactive-active-surface": var(--surface-accent),
|
|
214
|
+
"--interactive-selected-surface": var(--surface-accent),
|
|
215
|
+
"--interactive-border": transparent,
|
|
216
|
+
"--interactive-hover-border": var(--border-accent),
|
|
217
|
+
"--interactive-active-border": var(--border-accent),
|
|
218
|
+
"--interactive-selected-border": var(--border-accent)
|
|
207
219
|
),
|
|
208
220
|
accent: (
|
|
209
221
|
l: 0.55,
|
|
@@ -301,7 +313,19 @@ $dark-theme-defaults: (
|
|
|
301
313
|
"--shadow-xs": 0 0 0.25em rgba(0, 0, 0, 0.15),
|
|
302
314
|
"--shadow-sm": 0 0 0.25em rgba(0, 0, 0, 0.25),
|
|
303
315
|
"--shadow-md": 0 0 0.5em rgba(0, 0, 0, 0.25),
|
|
304
|
-
"--shadow-lg": 0 0 1em rgba(0, 0, 0, 0.25)
|
|
316
|
+
"--shadow-lg": 0 0 1em rgba(0, 0, 0, 0.25),
|
|
317
|
+
"--interactive-color": inherit,
|
|
318
|
+
"--interactive-hover-color": var(--content-0),
|
|
319
|
+
"--interactive-active-color": var(--content-0),
|
|
320
|
+
"--interactive-selected-color": var(--content-0),
|
|
321
|
+
"--interactive-surface": transparent,
|
|
322
|
+
"--interactive-hover-surface": var(--surface-accent),
|
|
323
|
+
"--interactive-active-surface": var(--surface-accent),
|
|
324
|
+
"--interactive-selected-surface": var(--surface-accent),
|
|
325
|
+
"--interactive-border": transparent,
|
|
326
|
+
"--interactive-hover-border": var(--border-accent),
|
|
327
|
+
"--interactive-active-border": var(--border-accent),
|
|
328
|
+
"--interactive-selected-border": var(--border-accent)
|
|
305
329
|
),
|
|
306
330
|
accent: (
|
|
307
331
|
l: 0.7,
|