@ryuzaki13/react-foundation-ui 2.1.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COLOR_TOKENS_MIGRATION.md +224 -0
- package/README.md +14 -18
- package/dist/advanced-search/index.js +8 -8
- package/dist/badge/index.js +1 -1
- package/dist/barcode-scanner/index.js +2 -2
- package/dist/base-table/index.js +1 -1
- package/dist/button/index.js +1 -1
- package/dist/check-box/index.js +1 -1
- package/dist/chunks/{CalendarView-Bhaov_XE.js → CalendarView-Dm55k0bN.js} +2 -2
- package/dist/chunks/CalendarView-Dm55k0bN.js.map +1 -0
- package/dist/chunks/ImageViewerRuntime-HGBWp9NM.js.map +1 -1
- package/dist/chunks/{TextEditorLexicalClient-CSXZQOYo.js → TextEditorLexicalClient-D46Zed55.js} +6 -6
- package/dist/chunks/TextEditorLexicalClient-D46Zed55.js.map +1 -0
- package/dist/chunks/{badge-DUI2ET6q.js → badge-6mXO9BWP.js} +2 -2
- package/dist/chunks/badge-6mXO9BWP.js.map +1 -0
- package/dist/chunks/{base-table-BqW1n7tv.js → base-table-BWvKfI2W.js} +2 -2
- package/dist/chunks/{base-table-BqW1n7tv.js.map → base-table-BWvKfI2W.js.map} +1 -1
- package/dist/chunks/{button-BaUlN-nt.js → button-DF21yxVp.js} +3 -3
- package/dist/chunks/{button-BaUlN-nt.js.map → button-DF21yxVp.js.map} +1 -1
- package/dist/chunks/{check-box-CC8CDnSR.js → check-box-CZyhzmR0.js} +3 -3
- package/dist/chunks/{check-box-CC8CDnSR.js.map → check-box-CZyhzmR0.js.map} +1 -1
- package/dist/chunks/{context-menu-Dj6MXgv6.js → context-menu-DgvXGCuI.js} +3 -3
- package/dist/chunks/context-menu-DgvXGCuI.js.map +1 -0
- package/dist/chunks/{date-input-DkLfO3Ng.js → date-input-BwLOiGXp.js} +5 -5
- package/dist/chunks/{date-input-DkLfO3Ng.js.map → date-input-BwLOiGXp.js.map} +1 -1
- package/dist/chunks/dialog-Dqq8ZN99.js +50 -0
- package/dist/chunks/dialog-Dqq8ZN99.js.map +1 -0
- package/dist/chunks/{input-D1jOxm0t.js → input-DSPKgiCK.js} +2 -2
- package/dist/chunks/input-DSPKgiCK.js.map +1 -0
- package/dist/chunks/{input-files-CDGpJaUm.js → input-files-tIS17-zX.js} +3 -3
- package/dist/chunks/input-files-tIS17-zX.js.map +1 -0
- package/dist/chunks/{input-search-Ci1ubGox.js → input-search-Cat4c7SM.js} +2 -2
- package/dist/chunks/{input-search-Ci1ubGox.js.map → input-search-Cat4c7SM.js.map} +1 -1
- package/dist/chunks/misc-DeGboAt-.js.map +1 -1
- package/dist/chunks/{modal-CbAwLHlM.js → modal-dplfAaER.js} +2 -2
- package/dist/chunks/{modal-CbAwLHlM.js.map → modal-dplfAaER.js.map} +1 -1
- package/dist/chunks/{multi-select-V7SLAduU.js → multi-select-BZ9N6Dal.js} +4 -4
- package/dist/chunks/{multi-select-V7SLAduU.js.map → multi-select-BZ9N6Dal.js.map} +1 -1
- package/dist/chunks/{picker-DZ4-1BvK.js → picker-lvm82d0A.js} +3 -3
- package/dist/chunks/picker-lvm82d0A.js.map +1 -0
- package/dist/chunks/popover-Bne-Ljbs.js.map +1 -1
- package/dist/chunks/{radio-group-DhpP7JSJ.js → radio-group-CRk_1ODZ.js} +2 -2
- package/dist/chunks/radio-group-CRk_1ODZ.js.map +1 -0
- package/dist/chunks/{select-B7cWlJxL.js → select-aTGupQan.js} +4 -4
- package/dist/chunks/{select-B7cWlJxL.js.map → select-aTGupQan.js.map} +1 -1
- package/dist/chunks/{table-DMLFUBlb.js → table-DxoSOvQK.js} +2 -2
- package/dist/chunks/table-DxoSOvQK.js.map +1 -0
- package/dist/chunks/{ui.module-BsDio9A3.js → ui.module-oRwY3Zli.js} +2 -1
- package/dist/chunks/ui.module-oRwY3Zli.js.map +1 -0
- package/dist/chunks/{uiClasses-BVwFzzsr.js → uiClasses-CQj47jkF.js} +11 -2
- package/dist/chunks/uiClasses-CQj47jkF.js.map +1 -0
- package/dist/chunks/wheel-picker-FS58cRsQ.js.map +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-time-input/index.js +3 -3
- package/dist/dialog/index.js +2 -50
- package/dist/disclosure/index.js +2 -2
- package/dist/disclosure/index.js.map +1 -1
- package/dist/drop-zone/index.js +1 -1
- package/dist/drop-zone/index.js.map +1 -1
- package/dist/errors/index.js +4 -4
- package/dist/errors/index.js.map +1 -1
- package/dist/expandable-action-panel/index.js +1 -1
- package/dist/image/index.js +5 -5
- package/dist/image/index.js.map +1 -1
- package/dist/input/index.js +1 -1
- package/dist/input-date-time/index.js +2 -2
- package/dist/input-file/index.js +2 -2
- package/dist/input-files/index.js +1 -1
- package/dist/input-image/index.js +2 -2
- package/dist/input-search/index.js +1 -1
- package/dist/layout-picker/index.js +1 -1
- package/dist/layout-picker/index.js.map +1 -1
- package/dist/listbox/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/notifications/index.js.map +1 -1
- package/dist/option/index.js +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/preset-select/index.js +1 -1
- package/dist/radio-button/index.js +2 -2
- package/dist/radio-group/index.js +1 -1
- package/dist/select/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/index.js +3 -3
- package/dist/slider/index.js.map +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/status-indicator/StatusIndicator.d.ts.map +1 -1
- package/dist/status-indicator/index.js +2 -0
- package/dist/status-indicator/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-editor/index.d.ts +3 -0
- package/dist/table-editor/index.d.ts.map +1 -0
- package/dist/table-editor/index.js +462 -0
- package/dist/table-editor/index.js.map +1 -0
- package/dist/table-editor/model/useTableEditor.d.ts +25 -0
- package/dist/table-editor/model/useTableEditor.d.ts.map +1 -0
- package/dist/table-editor/model/useTableEditorTable.d.ts +10 -0
- package/dist/table-editor/model/useTableEditorTable.d.ts.map +1 -0
- package/dist/table-editor/ui/TableEditor.d.ts +21 -0
- package/dist/table-editor/ui/TableEditor.d.ts.map +1 -0
- package/dist/table-editor/ui/TableEditorGrid.d.ts +14 -0
- package/dist/table-editor/ui/TableEditorGrid.d.ts.map +1 -0
- package/dist/table-editor/ui/TableEditorStructure.d.ts +10 -0
- package/dist/table-editor/ui/TableEditorStructure.d.ts.map +1 -0
- package/dist/table-editor/ui/TableEditorToolbar.d.ts +11 -0
- package/dist/table-editor/ui/TableEditorToolbar.d.ts.map +1 -0
- package/dist/table-sorting/index.js +1 -1
- package/dist/tabs/index.js +2 -2
- package/dist/tabs/index.js.map +1 -1
- package/dist/tag-input/index.js +2 -2
- package/dist/tag-input/index.js.map +1 -1
- package/dist/text-editor/index.js +1 -1
- package/dist/textarea/index.js +2 -2
- package/dist/toggle/index.js +1 -1
- package/dist/toggle/index.js.map +1 -1
- package/dist/tree-select/index.js +3 -3
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +1 -1
- package/dist/tree-table/index.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/uiClasses.d.ts.map +1 -1
- package/package.json +8 -3
- package/src/styles/_border.scss +2 -2
- package/src/styles/_color.scss +8 -8
- package/src/styles/_components.scss +2 -2
- package/src/styles/_normalize.scss +4 -4
- package/src/styles/config/_index.scss +95 -182
- package/src/styles/mixins/_controls.scss +43 -26
- package/src/styles/mixins/_mixin.scss +0 -187
- package/src/styles/mixins/controls.test.ts +28 -6
- package/src/styles/themes/_interactive-surface.scss +12 -12
- package/src/styles/themes/_theme.scss +21 -157
- package/src/styles/themes/theme.test.ts +66 -48
- package/storybook-static/assets/{Badge-BXbiidny.js → Badge-DLpkFLAr.js} +8 -2
- package/storybook-static/assets/{Badge.stories-DCOkVsyk.js → Badge.stories-DwwZ0O7j.js} +7 -1
- package/storybook-static/assets/{BadgeList-DgUScGRc.js → BadgeList-C0bhovUR.js} +2 -2
- package/storybook-static/assets/{BadgeList-CD5894x5.css → BadgeList-DbjeNuw0.css} +1 -1
- package/storybook-static/assets/{BarcodeScannerDialog.stories-7Bv_TejN.js → BarcodeScannerDialog.stories-DYXaW4Vw.js} +1 -1
- package/storybook-static/assets/{Button-0UDcBhBt.js → Button-B1nvnaMI.js} +12 -2
- package/storybook-static/assets/{Button-BpQRrzrS.js → Button-PAj4mH8o.js} +4 -2
- package/storybook-static/assets/Button.stories-CNvWyh5M.js +106 -0
- package/storybook-static/assets/{CalendarView-B93LI4f_.js → CalendarView-WUXapLvN.js} +1 -1
- package/storybook-static/assets/CalendarView-dgpVDRJR.css +1 -0
- package/storybook-static/assets/{CheckBox-BaAouU5d.js → CheckBox-B9f_n0Nh.js} +2 -2
- package/storybook-static/assets/{CheckBox-CFusvDS8.js → CheckBox-C3r_FdXc.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-Bdr_GC0M.js → CheckBox.stories-B5CFQBFx.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-B8A6Hc7V.js → Color-6AOWCN3U-tYUAsbHo.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CvHpWBGV.js → ContextMenu-C-T3O2d9.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BcNU89-b.js → ContextMenu-PIvPPvq1.js} +1 -1
- package/storybook-static/assets/ContextMenu-yhWq2uJ3.css +1 -0
- package/storybook-static/assets/{ContextMenu.stories-DQDlVNxB.js → ContextMenu.stories-Bmy_0Oug.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-DkGlBvWP.js → CustomOptionButton-D_qTIop3.js} +1 -1
- package/storybook-static/assets/{DateInput-NkrPSWMl.js → DateInput-B7GZSkR3.js} +1 -1
- package/storybook-static/assets/{DateInput-CWsb-NhT.js → DateInput-C-goSdP-.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-Bvz465d-.js → DateInput.stories-CeAMz_x1.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DC6_r8SQ.js → DateRangePresetSelect-BZ9U_l_x.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DQlphKzc.js → DateRangePresetSelect-BmjgWIxM.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-DVfqPYN5.js → DateRangePresetSelect.stories-5UGP9HcH.js} +1 -1
- package/storybook-static/assets/{Detail-CXQYyd94.js → Detail-C6duvCft.js} +1 -1
- package/storybook-static/assets/{Detail.stories-BEXByYXt.js → Detail.stories-DQZciNeZ.js} +1 -1
- package/storybook-static/assets/{Dialog-CyYTYgbp.js → Dialog-87D5Shqd.js} +1 -1
- package/storybook-static/assets/{Dialog-B2UTbDCv.js → Dialog-Bx4-acbv.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-BWluB4Ya.js → Dialog.stories-BgOQABzP.js} +1 -1
- package/storybook-static/assets/{Disclosure-Dv5XOsna.js → Disclosure-ZctFZjdw.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-BxK_fmJE.js → Disclosure.stories-BioI8Dpv.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-B2O8D8CG.js → DisclosureGroup-Cn2EEocA.js} +1 -1
- package/storybook-static/assets/DisclosureGroup-D_ldcGgp.css +1 -0
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-7N0jH0Oi.js → DocsRenderer-JROSPFPF-CoppGUHs.js} +1 -1
- package/storybook-static/assets/{DropZone-DL34ooyF.js → DropZone-68BioqBN.js} +1 -1
- package/storybook-static/assets/{DropZone-ZlPjdEuO.js → DropZone-BpInQyuE.js} +1 -1
- package/storybook-static/assets/{DropZone-C7HIN5ml.css → DropZone-C4gPTIz0.css} +1 -1
- package/storybook-static/assets/{DropZone.stories-BT9JvF9d.js → DropZone.stories-DhVyaedf.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-BhC5f2Qc.js → DropdownMenu-Dw-i5abQ.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-C77qVHBP.js → ExpandableActionPanel-Bb7Eo_iW.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-D1MJEw6F.js → ExpandableActionPanel.stories-B0XABlVT.js} +1 -1
- package/storybook-static/assets/{Flex-BHt3-yoh.js → Flex-CG5yKEBH.js} +1 -1
- package/storybook-static/assets/{Flex.stories-M8QVGuVA.js → Flex.stories-Cfx4TAqp.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-Dch6_6e0.js → FloatingPopover-B8zZ8eYf.js} +1 -1
- package/storybook-static/assets/FloatingPopover-Di16BZj-.css +1 -0
- package/storybook-static/assets/FormattedTableCell-BzBZlmxd.js +15 -0
- package/storybook-static/assets/FormattedTableCell-CTIL_ueu.css +1 -0
- package/storybook-static/assets/{Grid-CcyaioK_.js → Grid-3MdRiyY4.js} +1 -1
- package/storybook-static/assets/{Grid.stories-CTHcYkKa.js → Grid.stories-DUfosHcu.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-B84lQIPy.js → ImageCropper.stories-DBLj9S4C.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-kTsPC-b5.js → ImageRenderer-bZHWE6lq.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-pozsCEPL.js → ImageRenderer.stories-BU2tt9QR.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-CNttofCE.js → ImageView.stories-t_ree_kB.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D_7oQpyX.js → ImageViewer.stories-kodL93QT.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-Dnc70fBS.js → ImageViewerRuntime-Dkw7fwZ1.js} +1 -1
- package/storybook-static/assets/ImageViewerRuntime-MxAd4mC-.css +1 -0
- package/storybook-static/assets/{Input-DvRmrrtj.js → Input-C-Q_V0Uc.js} +1 -1
- package/storybook-static/assets/{Input-CYgnggvb.css → Input-CIA3PkB4.css} +1 -1
- package/storybook-static/assets/{Input-BO9q-b1i.js → Input-Ckb0G4jj.js} +1 -1
- package/storybook-static/assets/{Input.stories-DeKdGxIC.js → Input.stories-BZITY0Np.js} +1 -1
- package/storybook-static/assets/{InputDateTime-hqRtizlN.js → InputDateTime-DF-R-IPb.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-BpGhWbRp.js → InputDateTime.stories-2ELFc29n.js} +1 -1
- package/storybook-static/assets/{InputFile-CExDbGYJ.js → InputFile-3Sn8IwRI.js} +1 -1
- package/storybook-static/assets/{InputFile-CTDHdo2g.js → InputFile-Xo-rxvud.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-BIinoG-U.js → InputFile.stories-B4EHuTtj.js} +1 -1
- package/storybook-static/assets/{InputFiles-Cvdn_5IV.js → InputFiles-CRFuoEBd.js} +1 -1
- package/storybook-static/assets/{InputFiles-BWeRuTCh.js → InputFiles-DzdnkOiD.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-J2bb48sN.js → InputFiles.stories-BRCSXgg-.js} +1 -1
- package/storybook-static/assets/{InputFilesList-ByK52qUe.css → InputFilesList-BbwB0oHE.css} +1 -1
- package/storybook-static/assets/{InputFilesList-DO6IJW98.js → InputFilesList-CvL4pjsZ.js} +1 -1
- package/storybook-static/assets/{InputImage-C7zaIkCa.js → InputImage-B1v_PWfN.js} +1 -1
- package/storybook-static/assets/{InputImage-BtsIbqEc.js → InputImage-qAzSyHzj.js} +1 -1
- package/storybook-static/assets/{InputImage.stories--ewdBKin.js → InputImage.stories-4NLpODaa.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-Cy9Y2J_q.js → InteractiveComponents-Bdy-KTOF.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-CgC4nhd3.js → InteractiveComponents.stories-C_ZAVn0R.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CfgWKTDC.js → LayoutPicker-8wwVLPom.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-DhJgMxdf.js → LayoutPicker-B4eblsaF.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BY4-fUQa.css → LayoutPicker-DaPDA0_s.css} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-Bli7rQRh.js → LayoutPicker.stories-BkA-VmHP.js} +1 -1
- package/storybook-static/assets/{Listbox-bq5sSQnZ.js → Listbox-ChaW3JrO.js} +1 -1
- package/storybook-static/assets/{Listbox-_MNXWNW7.js → Listbox-CyH7MftX.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BP9mqHoo.js → Listbox.stories-_31FVhoW.js} +1 -1
- package/storybook-static/assets/{Modal-CNt7-iWI.js → Modal-CaGOliEb.js} +1 -1
- package/storybook-static/assets/{Modal-Dwqp7agw.js → Modal-DGR9lZ4E.js} +1 -1
- package/storybook-static/assets/{Modal.stories-D2Hj75pl.js → Modal.stories-C1yvEVNj.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-BoCpnUex.js → ModalManagerProvider-BrPY3nRM.js} +1 -1
- package/storybook-static/assets/{MultiSelect-B1BckUGX.js → MultiSelect-D-O71OBm.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CTfbXQVD.js → MultiSelect-D4S4B3va.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-BdMJk22c.js → MultiSelect.stories-B0QY0_Ru.js} +1 -1
- package/storybook-static/assets/{NoData-CNK8-UBc.js → NoData-B6xgAMXh.js} +1 -1
- package/storybook-static/assets/NotificationsHost-BIyd1XQ0.css +1 -0
- package/storybook-static/assets/{NotificationsHost-Cczj_pFY.js → NotificationsHost-DJ3Y-Bov.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-BPB6hfSI.js → NotificationsHost.stories-B2ULIi8d.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-CahWMsCQ.js → ODataMultiSelect-0SfdyLn9.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-Dnyu2-gz.js → ODataMultiSelect.stories-BLq2Lzuq.js} +1 -1
- package/storybook-static/assets/{ODataSelect-DxbjbdNx.js → ODataSelect-CkdBSdJ6.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-DfK9yHK7.js → ODataSelect.stories-OLMZHd_q.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-DOgHyKon.js → ODataTreeMultiSelect-DMLCMhQn.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-Dv0-ackb.js → ODataTreeMultiSelect.stories-aY5Q0IHe.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-DIoygv27.js → ODataTreeSelect-ME1K7NL2.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-D4mZcW9Z.js → ODataTreeSelect.stories-C7UPHKEr.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-DNTilSDM.js → OneStepScroller-RRsghqzx.js} +1 -1
- package/storybook-static/assets/{Option-qcKM13Ly.js → Option-CcZ3aKLZ.js} +1 -1
- package/storybook-static/assets/Option-DD2t6DLq.css +1 -0
- package/storybook-static/assets/{OptionButton-DrNo-DMV.js → OptionButton-B-RTb3Ua.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-Dk-_iKeR.js → PeriodSelect-B-89h-o8.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DjzmUohy.js → PeriodSelect-CUUixF0M.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-d58Lz3DJ.js → PeriodSelect.stories-CU1V-pP4.js} +1 -1
- package/storybook-static/assets/{PickerField-Dv1S8Wit.js → PickerField-DykK8Xgu.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-dbXPGPRy.js → PickerTriggerActions-C2qYXlH1.js} +1 -1
- package/storybook-static/assets/{Popover-tPH8grZD.js → Popover-Bg-XuklM.js} +1 -1
- package/storybook-static/assets/{Popover-DMrefrsO.js → Popover-D_MNKdnD.js} +1 -1
- package/storybook-static/assets/{Popover.stories-BGgMddUi.js → Popover.stories-D2Asjc6d.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-Bi01AT1-.js → PresetRangeDateInput-B1KqD3aB.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-Bi5D7AvA.js → PresetRangeDateInput-CYXkpgts.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-BK9PG5Us.js → PresetRangeDateInput.stories-CTML1dIg.js} +1 -1
- package/storybook-static/assets/{PresetSelect-Bo_urWXj.js → PresetSelect-4PvR0s4U.js} +1 -1
- package/storybook-static/assets/{README-CsYvQc-H.js → README--I7LDhOP.js} +1 -1
- package/storybook-static/assets/{README-DQzhOQJs.js → README-1Ks0ldtQ.js} +1 -1
- package/storybook-static/assets/{README-BCXhBI3h.js → README-44qHXI_X.js} +1 -1
- package/storybook-static/assets/{README-oTjX8jJr.js → README-B3Q9ZlQz.js} +1 -1
- package/storybook-static/assets/{README-C1EYYUCN.js → README-B5MLKvrO.js} +1 -1
- package/storybook-static/assets/{README-CvomZuv4.js → README-B5vVbHbw.js} +1 -1
- package/storybook-static/assets/{README-CiRdh2G1.js → README-BJsszjH8.js} +1 -1
- package/storybook-static/assets/{README-CAYUX5Nb.js → README-BK-2_7T4.js} +1 -1
- package/storybook-static/assets/{README-qyGL-RQj.js → README-BKGcgtnD.js} +1 -1
- package/storybook-static/assets/{README-DJeVd42x.js → README-BNUdkNxv.js} +1 -1
- package/storybook-static/assets/{README-CUw7AGFv.js → README-BSSrY3Ri.js} +1 -1
- package/storybook-static/assets/{README-Bccm-jZn.js → README-BVOzG1wf.js} +1 -1
- package/storybook-static/assets/{README-BatM3k6o.js → README-BZbDJrol.js} +1 -1
- package/storybook-static/assets/{README-BrnWLQ7I.js → README-BcReoeGQ.js} +1 -1
- package/storybook-static/assets/{README-C9LAWG5A.js → README-BdgUDdVT.js} +1 -1
- package/storybook-static/assets/{README-DnE0W6xN.js → README-BpSdRy6R.js} +1 -1
- package/storybook-static/assets/{README-CHOXjCGT.js → README-BrduLUi1.js} +1 -1
- package/storybook-static/assets/{README-WDknu02X.js → README-Bt44WdOn.js} +1 -1
- package/storybook-static/assets/{README-DXV0j4Y9.js → README-Bta2DZoW.js} +1 -1
- package/storybook-static/assets/{README-BbwNWG_A.js → README-Bwa8ai1X.js} +1 -1
- package/storybook-static/assets/{README-DRTv3qN5.js → README-C1TqCBPf.js} +1 -1
- package/storybook-static/assets/{README-B2NTIwVC.js → README-C5Cq8Lo7.js} +1 -1
- package/storybook-static/assets/{README-BOY9oCZ5.js → README-CE0sa_3S.js} +1 -1
- package/storybook-static/assets/{README-DENkRq75.js → README-COnopkzM.js} +1 -1
- package/storybook-static/assets/{README-BRxnSb_H.js → README-CUEwtG21.js} +1 -1
- package/storybook-static/assets/{README-DOqinQqt.js → README-CVEiXGCU.js} +1 -1
- package/storybook-static/assets/{README-CSkB_qWo.js → README-CWxf5v2C.js} +1 -1
- package/storybook-static/assets/{README-DNkooR8C.js → README-CjbqfpYX.js} +1 -1
- package/storybook-static/assets/{README-XlmyqVIs.js → README-CnE5ZG98.js} +1 -1
- package/storybook-static/assets/{README-CLfxQA5V.js → README-Co-LXT0Y.js} +1 -1
- package/storybook-static/assets/{README-BPDYLPfh.js → README-CoJlt7mW.js} +1 -1
- package/storybook-static/assets/{README-G5BEMzLO.js → README-DFiFAUAq.js} +1 -1
- package/storybook-static/assets/{README-cmKi-NfO.js → README-DMCaXjMn.js} +1 -1
- package/storybook-static/assets/{README-ChyNimpn.js → README-DecmlELk.js} +3 -3
- package/storybook-static/assets/{README-Bsm0nJfv.js → README-Diow36TX.js} +1 -1
- package/storybook-static/assets/{README-BO0pPMhH.js → README-DlE5gepf.js} +1 -1
- package/storybook-static/assets/{README-DLL_V1qq.js → README-Dl_id19k.js} +1 -1
- package/storybook-static/assets/{README-D7IkoGLE.js → README-DpxWpc-I.js} +1 -1
- package/storybook-static/assets/{README-DI6PuVn_.js → README-Dqpnap9b.js} +1 -1
- package/storybook-static/assets/{README-DSx__uJY.js → README-DrSuJ2Ll.js} +1 -1
- package/storybook-static/assets/{README-CIy0Pj6l.js → README-Dtb7kJXX.js} +1 -1
- package/storybook-static/assets/{README-CgvojwYv.js → README-Ib9AxEso.js} +1 -1
- package/storybook-static/assets/{README-5MsrC0tc.js → README-NCp7adRE.js} +1 -1
- package/storybook-static/assets/{README-CDXBNJlU.js → README-SHZwgJhZ.js} +1 -1
- package/storybook-static/assets/{README-Bzz8tDjY.js → README-VY7CL7vi.js} +1 -1
- package/storybook-static/assets/{README-BIYrg5Jw.js → README-Ve2RJTbZ.js} +1 -1
- package/storybook-static/assets/{README-BTCDTs4l.js → README-bU5ZgdrN.js} +1 -1
- package/storybook-static/assets/{README-DqTSHU_3.js → README-kpAlQZLM.js} +1 -1
- package/storybook-static/assets/{README-iy7SbqPS.js → README-l0W43XHl.js} +1 -1
- package/storybook-static/assets/{README-BxY8B5jC.js → README-tetbJraG.js} +1 -1
- package/storybook-static/assets/{README-DnjCb77l.js → README-vUJFU3Tw.js} +1 -1
- package/storybook-static/assets/{README-lyLRoc9A.js → README-vjP8Z9fC.js} +1 -1
- package/storybook-static/assets/{README-DCitesDJ.js → README-ypHLhhny.js} +1 -1
- package/storybook-static/assets/{RadioButton-C5lYvVIl.js → RadioButton-ByRN6fXm.js} +1 -1
- package/storybook-static/assets/{RadioButton-_-grgF60.js → RadioButton-DRIJvobR.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-BNifE29D.js → RadioButton.stories-C6lOZsje.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DWfHyBaQ.js → RadioGroup-5P3FMqFW.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BU95Hbl0.css → RadioGroup-DHnDIEgi.css} +1 -1
- package/storybook-static/assets/{RadioGroup-CmDrRqLi.js → RadioGroup-Dskh-JZM.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-1PW9Krj9.js → RadioGroup.stories-BDbOjwVa.js} +1 -1
- package/storybook-static/assets/{Scrollable-CWkMU4wH.js → Scrollable-Cat0ixOK.js} +1 -1
- package/storybook-static/assets/{Select-BCGnO525.js → Select-BiIixkSk.js} +1 -1
- package/storybook-static/assets/{Select-DYtEG5uI.js → Select-ImY9WR7I.js} +1 -1
- package/storybook-static/assets/{Select.stories-CgldXYRU.js → Select.stories-DR8qQrXW.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-MmvKHZiv.js → SerializableSelect-C2swvXju.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-Di0iM37P.js → SerializableSelect.stories-CvoyFECC.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-Ds5YsLHg.js → SingleDateTimeInput-CjixqW_K.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-Cz2Y7KEq.js → SingleDateTimeInput-hV5Om2LV.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BnuERNSZ.js → SingleDateTimeInput.stories-CPDP-M6P.js} +1 -1
- package/storybook-static/assets/Slider-DxdPx1Pb.css +1 -0
- package/storybook-static/assets/{Slider-Csaz4BeY.js → Slider-FbV_mr1Y.js} +1 -1
- package/storybook-static/assets/{Slider-CiZ7R_NX.js → Slider-PcbxPCWE.js} +1 -1
- package/storybook-static/assets/{Slider.stories-7Heg0Pgz.js → Slider.stories-CH9grPep.js} +1 -1
- package/storybook-static/assets/{SliderInput-bTh2JTHG.js → SliderInput-DPYcLCwD.js} +1 -1
- package/storybook-static/assets/{SliderInput-qWpLFzxj.js → SliderInput-iqnLqNiU.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-DR_zyE-u.js → SliderInput.stories-qVDa0KhJ.js} +1 -1
- package/storybook-static/assets/{Sortable-P86Ancoa.js → Sortable-DzJSN0MG.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-iiOkIM-G.js → Sortable.stories-BaQ2T15L.js} +1 -1
- package/storybook-static/assets/{Splitter-mG3bB-U4.js → Splitter-Ka7c1ZDV.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-WhQOQVRq.js → Splitter.stories-BbjjUT39.js} +1 -1
- package/storybook-static/assets/{StateSelect-De2PQDzp.js → StateSelect-CfyyDUiq.js} +1 -1
- package/storybook-static/assets/{StateSelect-u1kaZwdD.js → StateSelect-DSzDU5Jy.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-BO-C9UTF.js → StateSelect.stories-0c32Rlr2.js} +1 -1
- package/storybook-static/assets/{StatusIndicator-BiTbPB5o.js → StatusIndicator-CcCdDffH.js} +1 -1
- package/storybook-static/assets/StatusIndicator-CpCGmnO7.css +1 -0
- package/storybook-static/assets/StatusIndicator.stories-Bazi6rxF.js +31 -0
- package/storybook-static/assets/{StringToggle.stories-CBt8bXzz.js → StringToggle.stories-Bl6HAr4o.js} +1 -1
- package/storybook-static/assets/{Switch-BRKFbtp4.js → Switch-BqAkQzIJ.js} +1 -1
- package/storybook-static/assets/{Switch-BC2KYLX2.js → Switch-Vl7s55bO.js} +1 -1
- package/storybook-static/assets/{Switch.stories-BAmX4W8J.js → Switch.stories-Cq2n8Vr4.js} +1 -1
- package/storybook-static/assets/{Table-D1OJnVmO.js → Table-BgxoZKJs.js} +1 -1
- package/storybook-static/assets/Table-j_3ID7Xq.css +1 -0
- package/storybook-static/assets/{Table.stories-C_JSdhJl.js → Table.stories-DxnnXMZX.js} +3 -3
- package/storybook-static/assets/TableEditor-CaZCZgKf.css +1 -0
- package/storybook-static/assets/TableEditor.stories-D5Ke41-O.js +61 -0
- package/storybook-static/assets/{Tabs-DiUKiz-h.js → Tabs-BPJG7wBI.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-DGys1vSD.js → Tabs.stories-cQ4RTo0w.js} +1 -1
- package/storybook-static/assets/{TabsBox-D-bkJX9j.css → TabsBox-B3REnb6D.css} +1 -1
- package/storybook-static/assets/{TabsBox-D4yfPiDY.js → TabsBox-CGgEovb9.js} +1 -1
- package/storybook-static/assets/{TagInput-ZyC-89b3.js → TagInput-CGHC-7Rv.js} +1 -1
- package/storybook-static/assets/{TagInput-ChmW4s9O.css → TagInput-RJbbcfoR.css} +1 -1
- package/storybook-static/assets/{TagInput.stories-hVoLW5qr.js → TagInput.stories-BSy_dJ5n.js} +1 -1
- package/storybook-static/assets/{Text-CMJA_7QZ.js → Text-D5fn4NbN.js} +1 -1
- package/storybook-static/assets/{Textarea-Du012ObX.js → Textarea-CbWAz4J8.js} +1 -1
- package/storybook-static/assets/{Textarea-DjKw5r4e.js → Textarea-pXxz-925.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-ShFda4o7.js → Textarea.stories-BkPejDdf.js} +1 -1
- package/storybook-static/assets/{TimePanel-Bfkpbjrx.js → TimePanel-BJulRHL2.js} +1 -1
- package/storybook-static/assets/{TimePanel-Bh98qsCo.css → TimePanel-D9_hb7w4.css} +1 -1
- package/storybook-static/assets/{TimePanel.stories-4pV3fQVB.js → TimePanel.stories-CJmuKdfu.js} +1 -1
- package/storybook-static/assets/{Toggle-CPohFihI.js → Toggle-B2S8eW_z.js} +1 -1
- package/storybook-static/assets/Toggle-ClE8Zovo.css +1 -0
- package/storybook-static/assets/{Toggle-ChC8G1Et.js → Toggle-DjqQBHtJ.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-B3H1M8Ra.js → Toggle.stories-7KRSUGU9.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-CbNz09Jk.js → TreeMultiSelect-B7Dd0sH5.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-BpuHCHgJ.js → TreeMultiSelect-DfvInPvn.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-Cmt05HgT.js → TreeMultiSelect.stories-DrokeiS6.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-DGvBAQiy.js → TreePickerBase-CN9UeNWV.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-B6DED6Hz.css → TreePickerBase-CmFF9pWE.css} +1 -1
- package/storybook-static/assets/{TreeSelect-DvAlRur3.js → TreeSelect-D3s-_McF.js} +1 -1
- package/storybook-static/assets/{TreeSelect-C_GCYsA3.js → TreeSelect-DPX2Q1Sv.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-Cch2A2z5.js → TreeSelect.stories-DvUGVU34.js} +1 -1
- package/storybook-static/assets/TreeTable-BvB3kj4h.css +1 -0
- package/storybook-static/assets/{TreeTable-CmVxMvld.js → TreeTable-By3223dp.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-B46N8o8E.js → TreeTable.stories-DKAKV_e2.js} +2 -2
- package/storybook-static/assets/{array-D-_yMMUK-DYqn1Ozn.js → array-D-_yMMUK-DnJ_b27D.js} +1 -1
- package/storybook-static/assets/{blocks-Bu5I-6jJ.js → blocks-C4R1QC9R.js} +3 -3
- package/storybook-static/assets/{check-BdRTIK6S.js → check-DkXl--jW.js} +1 -1
- package/storybook-static/assets/{chevron-down-EtmpBUf8.js → chevron-down-DnX0I3Pg.js} +1 -1
- package/storybook-static/assets/{chevron-left-CTLa8HIb.js → chevron-left-18ya0d2d.js} +1 -1
- package/storybook-static/assets/{chevron-right-D_c_Cvi0.js → chevron-right-DilGYzJ6.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-B7ERYz6B.js → chunk-W22LQPXL-WTP7vHyr.js} +1 -1
- package/storybook-static/assets/{circle-alert-Dj1kZNNX.js → circle-alert-DVNv_dVS.js} +1 -1
- package/storybook-static/assets/{circle-check-B1w7Ls8y.js → circle-check-vIdCi5Zq.js} +1 -1
- package/storybook-static/assets/{components-DqRn1i2k.js → components-BtEbmBZQ.js} +3 -3
- package/storybook-static/assets/{contextMenu-ylNgC9hS.js → contextMenu-1dx6rzYN.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-CyUQG_f-.js → defaultRenderers-UxEpV_2H.js} +1 -1
- package/storybook-static/assets/{download-dw_WzNlC.js → download-37V1rEcU.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-C9sdi3nv.js → floating-ui.react-DT-xu5am.js} +1 -1
- package/storybook-static/assets/{formatters-DVE1YVNQ-CMsbb5-m.js → formatters-DVE1YVNQ-YIdRxgw-.js} +1 -1
- package/storybook-static/assets/{foundationApi-BJETphYp.js → foundationApi-FaYaPMaR.js} +1 -1
- package/storybook-static/assets/{foundationLib-DfRlYoD7.js → foundationLib-DLCLUXOF.js} +1 -1
- package/storybook-static/assets/{hooks-B-ZW7F36.js → hooks-BuU9-pEZ.js} +1 -1
- package/storybook-static/assets/{iframe-D0R9pFj7.js → iframe-0M2vpakb.js} +4 -4
- package/storybook-static/assets/iframe-BMXB4CtM.js +1 -0
- package/storybook-static/assets/iframe-BT_jngkf.css +1 -0
- package/storybook-static/assets/{info-B0qzF0Mr.js → info-2PUHH67D.js} +1 -1
- package/storybook-static/assets/odata-DIkxH78d.js +1 -0
- package/storybook-static/assets/odataStoryFixtures-BDQiSxyk.js +25 -0
- package/storybook-static/assets/{react-ClkCNz5L.js → react-CfjIdTfH.js} +1 -1
- package/storybook-static/assets/{refresh-cw-K68D1zRy.js → refresh-cw-CHFG8NIc.js} +1 -1
- package/storybook-static/assets/{settings-2-D0jFfhpt.js → settings-2-CYde2-4U.js} +1 -1
- package/storybook-static/assets/{sortable-fWu4d9fl.js → sortable-Cy9ZqA3f.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-Cs3Bxe3I.js → syntaxhighlighter-QEQV7K2Y-C2U-3XXV.js} +1 -1
- package/storybook-static/assets/tableFeatures-Dx3U-F9E.js +1 -0
- package/storybook-static/assets/{trash-2-Bj60L0sq.js → trash-2-7-oMZEr8.js} +1 -1
- package/storybook-static/assets/{triangle-alert-CmzQ-r9i.js → triangle-alert-BSmuthen.js} +1 -1
- package/storybook-static/assets/ui-DSS1yTEO.css +1 -0
- package/storybook-static/assets/ui.module-SH8ehXul.js +1 -0
- package/storybook-static/assets/uiClasses-e9OQfdw2.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-CC4MnYeK.js → useODataSelectBase-C3B3Xw87.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DsQmGQij.js → useODataTreeData-deUW5mSv.js} +1 -1
- package/storybook-static/assets/{usePickerDefaultFilter-BMBLqfz8.js → usePickerDefaultFilter-ien2ZY7g.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-Qg7qGfmP.js → usePickerQuery-DdE3I7AV.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-D-mhhmpS.js → usePickerTriggerController-ZRvj4FHy.js} +1 -1
- package/storybook-static/assets/useTable-CK68Q4S4.js +1 -0
- package/storybook-static/assets/{x-DU3Tpzms.js → x-NXcyLtyX.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/CalendarView-Bhaov_XE.js.map +0 -1
- package/dist/chunks/TextEditorLexicalClient-CSXZQOYo.js.map +0 -1
- package/dist/chunks/badge-DUI2ET6q.js.map +0 -1
- package/dist/chunks/context-menu-Dj6MXgv6.js.map +0 -1
- package/dist/chunks/input-D1jOxm0t.js.map +0 -1
- package/dist/chunks/input-files-CDGpJaUm.js.map +0 -1
- package/dist/chunks/picker-DZ4-1BvK.js.map +0 -1
- package/dist/chunks/radio-group-DhpP7JSJ.js.map +0 -1
- package/dist/chunks/table-DMLFUBlb.js.map +0 -1
- package/dist/chunks/ui.module-BsDio9A3.js.map +0 -1
- package/dist/chunks/uiClasses-BVwFzzsr.js.map +0 -1
- package/dist/dialog/index.js.map +0 -1
- package/storybook-static/assets/Button.stories-CLMnxj3w.js +0 -93
- package/storybook-static/assets/CalendarView-DKvrkS40.css +0 -1
- package/storybook-static/assets/ContextMenu-CFPrlO2u.css +0 -1
- package/storybook-static/assets/DisclosureGroup-CVFMwx22.css +0 -1
- package/storybook-static/assets/FloatingPopover-jwILx9b0.css +0 -1
- package/storybook-static/assets/FormattedTableCell-AZc2IHfK.css +0 -1
- package/storybook-static/assets/FormattedTableCell-CXyG4Yj2.js +0 -15
- package/storybook-static/assets/ImageViewerRuntime-CRmlrtpL.css +0 -1
- package/storybook-static/assets/NotificationsHost-D5Pvn4eu.css +0 -1
- package/storybook-static/assets/Option-DXh7BISz.css +0 -1
- package/storybook-static/assets/Slider-CK-W2ZTO.css +0 -1
- package/storybook-static/assets/StatusIndicator-CU9ICMrC.css +0 -1
- package/storybook-static/assets/StatusIndicator.stories-COaZnrFa.js +0 -31
- package/storybook-static/assets/Table-BGvRn9y0.css +0 -1
- package/storybook-static/assets/Toggle-fKG2dFY0.css +0 -1
- package/storybook-static/assets/TreeTable--ZoksUiw.css +0 -1
- package/storybook-static/assets/iframe-COgZ5GwG.js +0 -1
- package/storybook-static/assets/iframe-IhWQT6NX.css +0 -1
- package/storybook-static/assets/odata-tqjAk19x.js +0 -1
- package/storybook-static/assets/odataStoryFixtures-D2yHs_jK.js +0 -25
- package/storybook-static/assets/ui-C3BskXT9.css +0 -1
- package/storybook-static/assets/ui.module-31LPbZGK.js +0 -1
- package/storybook-static/assets/uiClasses-Bz6cvlDQ.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/tree-table/TreeTable.module.scss","../../src/tree-table/TreeTable.tsx"],"sourcesContent":[".treeColumnCell {\n\tpadding-inline-start: var(--space-sm);\n}\n\n.selectedIndicatorCell {\n\tbox-shadow: inset 0.1875rem 0 0 var(--content-accent);\n}\n\n.treeCell {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tmin-width: 0;\n}\n\n.treeCellContent {\n\tmin-width: 0;\n\tflex: 1 1 auto;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.expanderButton {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex: 0 0 1.5rem;\n\twidth: 1.5rem;\n\theight: 1.5rem;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: var(--radius-xs);\n\tbackground: transparent;\n\tcolor: var(--content-0);\n\tcursor: pointer;\n\n\t&:hover,\n\t&:focus-visible {\n\t\tbackground-color: var(--surface-2);\n\t}\n}\n\n.expanderSpacer {\n\tflex: 0 0 1.5rem;\n\twidth: 1.5rem;\n\theight: 1.5rem;\n}\n\n.sentinel {\n\theight: 1px;\n}\n","import { useEffect, useEffectEvent, useMemo, useRef, useState, type ReactNode } from \"react\";\n\nimport { formatPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport {\n\ttype FoundationTableRow,\n\tfoundationTableFeatures,\n\tresolveTableLength,\n\tTableColumnDef,\n\ttype TableColumnOrderState,\n\ttype TableColumnSizingState,\n\ttype TableColumnVisibilityState,\n\tTableSelectionMode,\n\tuseTableRowSelection\n} from \"@ryuzaki13/react-foundation-lib/table\";\nimport { buildTreeTableRows, type TreeTableFlatHierarchy, type TreeTableRowNode } from \"@ryuzaki13/react-foundation-lib/tree-table\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { useTable, type ExpandedState } from \"@tanstack/react-table\";\nimport { ChevronDownIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport {\n\tBaseTable,\n\tbuildBaseTableMergedCellsLayout,\n\tbuildTableFormattingSnapshot,\n\tFormattedTableCell,\n\tgetOrderedVisibleLeafColumns,\n\tshouldUseTableFormatting,\n\tuseTableColumnOrder,\n\tuseTableColumnPinning,\n\tuseTableColumnSizing,\n\tuseTableColumnVisibility,\n\ttype BaseTableCellRenderArgs,\n\ttype BaseTableColumnState,\n\ttype BaseTableProps,\n\ttype TableColumnPinningState\n} from \"../base-table\";\n\nimport styles from \"./TreeTable.module.scss\";\n\nimport type { TableFormulaRowData } from \"@ryuzaki13/react-foundation-lib/formulas\";\n\n/**\n * Внутренний тип строки TreeTable после преобразования в иерархию.\n */\ntype TreeTableRuntimeRow<TData extends object> = TreeTableRowNode<TData>;\n\n/**\n * Пропсы компонента TreeTable.\n *\n * Компонент принимает плоский OData-список и сам строит иерархию,\n * оставляя управление раскрытием и выбором во внутреннем состоянии.\n */\nexport interface TreeTableProps<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\thierarchy: TreeTableFlatHierarchy<TData>;\n\t/**\n\t * Режим выбора строк.\n\t */\n\tselectionMode?: TableSelectionMode;\n\t/**\n\t * Если `true`, при первом появлении данных раскрывает корневой уровень.\n\t */\n\texpandFirstLevel?: boolean;\n\t/**\n\t * Дополнительные строки, которые должны быть раскрыты при первой инициализации.\n\t */\n\tdefaultExpandedRowIds?: readonly string[];\n\t/**\n\t * Идентификатор колонки, в которой нужно рисовать tree-toggle и отступы.\n\t *\n\t * Если не указан, используется первая видимая колонка.\n\t */\n\ttreeColumnId?: string;\n\t/**\n\t * Отступ на один уровень вложенности.\n\t *\n\t * Числовое значение трактуется как `em`.\n\t */\n\tindentSize?: string | number;\n\t/**\n\t * Дополнительный CSS-класс корневого контейнера.\n\t */\n\tclassName?: string;\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 * Вызывается после изменения раскрытых узлов.\n\t */\n\tonExpandedRowIdsChange?: (rowIds: string[]) => 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 * потому что BaseTable работает уже после сборки flat hierarchy.\n\t */\n\trenderHeaderContextMenu?: BaseTableProps<TreeTableRuntimeRow<TData>>[\"renderHeaderContextMenu\"];\n\t/**\n\t * Точка расширения содержимого ячейки после общего форматирования.\n\t *\n\t * Для tree-column в `defaultContent` передается только содержимое ячейки:\n\t * TreeTable сам добавит expander и отступ после выполнения слота.\n\t */\n\trenderCellContent?: BaseTableProps<TreeTableRuntimeRow<TData>>[\"renderCellContent\"];\n}\n\n/**\n * Преобразует массив идентификаторов в формат состояния раскрытия TanStack.\n */\nfunction toExpandedState(rowIds: readonly string[]): ExpandedState {\n\treturn Object.fromEntries(rowIds.map((rowId) => [rowId, true]));\n}\n\n/**\n * Извлекает из состояния раскрытия только активные идентификаторы.\n */\nfunction extractExpandedRowIds(expanded: ExpandedState): string[] {\n\tif (typeof expanded === \"boolean\") {\n\t\treturn [];\n\t}\n\n\treturn Object.keys(expanded).filter((rowId) => expanded[rowId]);\n}\n\n/**\n * Нормализует исходную строку, убирая зависимость от внутреннего поля `children`.\n */\nfunction resolveOriginalRow<TData extends object>(row: FoundationTableRow<TreeTableRuntimeRow<TData>>, rowById: Map<string, TData>): TData {\n\treturn rowById.get(row.id) ?? (row.original as TData);\n}\n\n/**\n * Рендерит содержимое древовидной ячейки.\n */\nfunction renderTreeCellContent<TData extends object>(\n\targs: BaseTableCellRenderArgs<TreeTableRuntimeRow<TData>>,\n\tcontent: ReactNode,\n\ttreeColumnId: string | undefined,\n\tindentSize: string | number\n): ReactNode {\n\tif (args.cell.column.id !== treeColumnId) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={styles.treeCell}\n\t\t\tstyle={{\n\t\t\t\tpaddingInlineStart: `calc(${args.row.depth} * ${resolveTableLength(indentSize) ?? \"0em\"})`\n\t\t\t}}>\n\t\t\t{args.row.getCanExpand() ? (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName={styles.expanderButton}\n\t\t\t\t\taria-label={args.row.getIsExpanded() ? \"Свернуть строку\" : \"Развернуть строку\"}\n\t\t\t\t\tdata-tree-table-interactive=\"true\"\n\t\t\t\t\tdata-ui=\"tree-table-expander\"\n\t\t\t\t\tdata-action={args.row.getIsExpanded() ? \"collapse-tree-table-row\" : \"expand-tree-table-row\"}\n\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\targs.row.toggleExpanded();\n\t\t\t\t\t}}>\n\t\t\t\t\t{args.row.getIsExpanded() ? <ChevronDownIcon size={16} /> : <ChevronRightIcon size={16} />}\n\t\t\t\t</button>\n\t\t\t) : (\n\t\t\t\t<span className={styles.expanderSpacer} aria-hidden=\"true\" />\n\t\t\t)}\n\n\t\t\t<div className={styles.treeCellContent}>{content}</div>\n\t\t</div>\n\t);\n}\n\n/**\n * Древовидная таблица на базе TanStack Table для плоских OData-данных.\n */\nexport function TreeTable<TData extends object>({\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tdata,\n\tcolumns,\n\thierarchy,\n\tselectionMode = \"none\",\n\texpandFirstLevel = false,\n\tdefaultExpandedRowIds,\n\ttreeColumnId,\n\tindentSize = 1,\n\tclassName,\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\tonExpandedRowIdsChange,\n\tonReachEnd,\n\tgetRowCanSelect,\n\tgetRowClassName,\n\trenderHeaderContextMenu,\n\trenderCellContent\n}: TreeTableProps<TData>) {\n\tconst treeData = useMemo(() => buildTreeTableRows(data ?? [], hierarchy), [data, hierarchy]);\n\tconst formattingSnapshot = useMemo(() => buildTableFormattingSnapshot(columns), [columns]);\n\tconst initialExpandedRowIds = useMemo(() => {\n\t\tconst nextExpandedRowIds = new Set(defaultExpandedRowIds ?? []);\n\n\t\tif (expandFirstLevel) {\n\t\t\tfor (const rootRowId of treeData.rootRowIds) {\n\t\t\t\tnextExpandedRowIds.add(rootRowId);\n\t\t\t}\n\t\t}\n\n\t\treturn Array.from(nextExpandedRowIds);\n\t}, [defaultExpandedRowIds, expandFirstLevel, treeData.rootRowIds]);\n\n\tconst [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst hasInitializedExpansionRef = useRef(false);\n\tconst scrollableRef = useRef<HTMLDivElement | null>(null);\n\tconst sentinelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst { rowSelection, activateRowSelection } = useTableRowSelection({\n\t\tavailableRowIds: treeData.allRowIds,\n\t\trowById: treeData.rowById,\n\t\tselectionMode,\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\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 syncExpandedState = useEffectEvent((availableRowIds: readonly string[], nextInitialExpandedRowIds: readonly string[]) => {\n\t\tif (availableRowIds.length === 0) {\n\t\t\thasInitializedExpansionRef.current = false;\n\t\t\tsetExpanded({});\n\t\t\treturn;\n\t\t}\n\n\t\tconst availableRowIdSet = new Set(availableRowIds);\n\n\t\tsetExpanded((currentExpanded) => {\n\t\t\tconst persistedRowIds = extractExpandedRowIds(currentExpanded).filter((rowId) => availableRowIdSet.has(rowId));\n\n\t\t\tif (!hasInitializedExpansionRef.current) {\n\t\t\t\thasInitializedExpansionRef.current = true;\n\n\t\t\t\tconst seededRowIds = Array.from(\n\t\t\t\t\tnew Set([...persistedRowIds, ...nextInitialExpandedRowIds.filter((rowId) => availableRowIdSet.has(rowId))])\n\t\t\t\t);\n\n\t\t\t\treturn toExpandedState(seededRowIds);\n\t\t\t}\n\n\t\t\treturn toExpandedState(persistedRowIds);\n\t\t});\n\t});\n\n\tconst emitExpandedRowIdsChange = useEffectEvent((currentExpanded: ExpandedState) => {\n\t\tonExpandedRowIdsChange?.(extractExpandedRowIds(currentExpanded));\n\t});\n\n\tconst emitReachEnd = useEffectEvent(() => {\n\t\tonReachEnd?.();\n\t});\n\n\tuseEffect(() => {\n\t\tsyncExpandedState(treeData.allRowIds, initialExpandedRowIds);\n\t}, [initialExpandedRowIds, treeData.allRowIds]);\n\n\tuseEffect(() => {\n\t\temitExpandedRowIdsChange(expanded);\n\t}, [expanded]);\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, treeData.rows.length]);\n\n\tconst table = useTable({\n\t\tfeatures: foundationTableFeatures,\n\t\tdata: treeData.rows as TreeTableRuntimeRow<TData>[],\n\t\tcolumns: columns as TableColumnDef<TreeTableRuntimeRow<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\texpanded,\n\t\t\trowSelection\n\t\t},\n\t\tgetRowId: (row) => hierarchy.getRowId(row as TData),\n\t\tgetSubRows: (row) => row.children,\n\t\tonColumnOrderChange: handleColumnOrderChange,\n\t\tonColumnPinningChange: handleColumnPinningChange,\n\t\tonColumnSizingChange: handleColumnSizingChange,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tonExpandedChange: setExpanded,\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\tconst originalRow = resolveOriginalRow(row, treeData.rowById);\n\n\t\t\treturn getRowCanSelect ? getRowCanSelect(originalRow) : true;\n\t\t}\n\t});\n\n\tconst visibleLeafColumns = getOrderedVisibleLeafColumns(table, baseTableColumnState);\n\tconst resolvedTreeColumnId = treeColumnId ?? visibleLeafColumns[0]?.id;\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\tresolveRowBoundaryKey: (row) => row.depth,\n\t\t\t\texcludeColumnIds: resolvedTreeColumnId ? new Set([resolvedTreeColumnId]) : undefined\n\t\t\t}),\n\t\t[rowModelRows, visibleLeafColumns, resolvedTreeColumnId]\n\t);\n\n\t/**\n\t * Активирует строку: обновляет выбор в соответствии с режимом и вызывает внешний callback.\n\t */\n\tconst activateRow = (row: FoundationTableRow<TreeTableRuntimeRow<TData>>) => {\n\t\tconst originalRow = resolveOriginalRow(row, treeData.rowById);\n\n\t\tactivateRowSelection(row.id, row.getCanSelect());\n\t\tonRowClick?.(originalRow);\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\ttableClassName={tableClassName}\n\t\t\tselectionMode={selectionMode}\n\t\t\tscrollableRef={scrollableRef}\n\t\t\tinteractiveElementSelector='[data-tree-table-interactive=\"true\"]'\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) => {\n\t\t\t\tconst originalRow = resolveOriginalRow(row, treeData.rowById);\n\n\t\t\t\treturn getRowClassName?.(originalRow);\n\t\t\t}}\n\t\t\tgetCellClassName={({ row, cell }) =>\n\t\t\t\tcn(\n\t\t\t\t\tcell.column.id === resolvedTreeColumnId && styles.treeColumnCell,\n\t\t\t\t\tcell.column.id === resolvedTreeColumnId && row.getIsSelected() && styles.selectedIndicatorCell\n\t\t\t\t)\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 originalRow = resolveOriginalRow(args.row, treeData.rowById);\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: originalRow as TableFormulaRowData,\n\t\t\t\t\trowKind: \"tree\"\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\t<FormattedTableCell displayValue={displayValue} align={args.columnMeta?.align} />\n\t\t\t\t) : (\n\t\t\t\t\targs.defaultContent\n\t\t\t\t);\n\t\t\t\tconst content = renderCellContent\n\t\t\t\t\t? renderCellContent({\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\t\tdisplayValue\n\t\t\t\t\t\t})\n\t\t\t\t\t: defaultContent;\n\n\t\t\t\treturn renderTreeCellContent(args, content, resolvedTreeColumnId, indentSize);\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":";;;;;;;;;;;;;;;;;;;;ACiNA,SAAS,EAAgB,GAA0C;CAClE,OAAO,OAAO,YAAY,EAAO,KAAK,MAAU,CAAC,GAAO,EAAI,CAAC,CAAC;AAC/D;AAKA,SAAS,EAAsB,GAAmC;CAKjE,OAJI,OAAO,KAAa,YAChB,CAAC,IAGF,OAAO,KAAK,CAAQ,CAAC,CAAC,QAAQ,MAAU,EAAS,EAAM;AAC/D;AAKA,SAAS,EAAyC,GAAqD,GAAoC;CAC1I,OAAO,EAAQ,IAAI,EAAI,EAAE,KAAM,EAAI;AACpC;AAKA,SAAS,GACR,GACA,GACA,GACA,GACY;CAKZ,OAJI,EAAK,KAAK,OAAO,OAAO,IAK3B,kBAAC,OAAD;EACC,WAAW,EAAO;EAClB,OAAO,EACN,oBAAoB,QAAQ,EAAK,IAAI,MAAM,KAAK,EAAmB,CAAU,KAAK,MAAM,GACzF;EAJD,UAAA,CAKE,EAAK,IAAI,aAAa,IACtB,kBAAC,UAAD;GACC,MAAK;GACL,WAAW,EAAO;GAClB,cAAY,EAAK,IAAI,cAAc,IAAI,oBAAoB;GAC3D,+BAA4B;GAC5B,WAAQ;GACR,eAAa,EAAK,IAAI,cAAc,IAAI,4BAA4B;GACpE,UAAU,MAAU;IAEnB,AADA,EAAM,gBAAgB,GACtB,EAAK,IAAI,eAAe;GACzB;GACC,UAAA,EAAK,IAAI,cAAc,IAAI,kBAAC,GAAD,EAAiB,MAAM,GAAK,CAAA,IAAI,kBAAC,GAAD,EAAkB,MAAM,GAAK,CAAA;EAClF,CAAA,IAER,kBAAC,QAAD;GAAM,WAAW,EAAO;GAAgB,eAAY;EAAQ,CAAA,GAG7D,kBAAC,OAAD;GAAK,WAAW,EAAO;GAAkB,UAAA;EAAa,CAAA,CAClD;MA5BE;AA8BT;AAKA,SAAgB,EAAgC,EAC/C,UACA,cACA,eACA,SACA,YACA,cACA,mBAAgB,QAChB,sBAAmB,IACnB,0BACA,iBACA,iBAAa,GACb,eACA,oBACA,sBACA,4BACA,iBACA,wBACA,kBACA,yBACA,mBACA,yBACA,0BAAuB,IACvB,4BAAyB,IACzB,yBACA,6BACA,wBACA,yBACA,0BACA,eACA,0BACA,4BACA,eACA,oBACA,qBACA,6BACA,wBACyB;CACzB,IAAM,IAAW,QAAc,GAAmB,KAAQ,CAAC,GAAG,CAAS,GAAG,CAAC,GAAM,CAAS,CAAC,GACrF,IAAqB,QAAc,EAA6B,CAAO,GAAG,CAAC,CAAO,CAAC,GACnF,IAAwB,QAAc;EAC3C,IAAM,IAAqB,IAAI,IAAI,KAAyB,CAAC,CAAC;EAE9D,IAAI,GACH,KAAK,IAAM,KAAa,EAAS,YAChC,EAAmB,IAAI,CAAS;EAIlC,OAAO,MAAM,KAAK,CAAkB;CACrC,GAAG;EAAC;EAAuB;EAAkB,EAAS;CAAU,CAAC,GAE3D,CAAC,GAAU,KAAe,GAAwB,CAAC,CAAC,GACpD,IAA6B,EAAO,EAAK,GACzC,IAAgB,EAA8B,IAAI,GAClD,IAAc,EAA8B,IAAI,GAEhD,EAAE,kBAAc,6BAAyB,GAAqB;EACnE,iBAAiB,EAAS;EAC1B,SAAS,EAAS;EAClB;EACA;CACD,CAAC,GACK,EAAE,kBAAkB,GAA0B,0BAA0B,OAAiC,GAC9G;EACC;EACA;EACA;CACD,CACD,GACM,EAAE,aAAa,GAAqB,qBAAqB,OAA4B,GAAoB;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,GAEK,IAAuB,SACrB;EACN,aAAa;EACb,eAAe;EACf,cAAc;EACd,kBAAkB;CACnB,IACA;EAAC;EAAqB;EAAuB;EAAsB;CAAwB,CAC5F,GAEM,KAAoB,GAAgB,GAAoC,MAAiD;EAC9H,IAAI,EAAgB,WAAW,GAAG;GAEjC,AADA,EAA2B,UAAU,IACrC,EAAY,CAAC,CAAC;GACd;EACD;EAEA,IAAM,IAAoB,IAAI,IAAI,CAAe;EAEjD,GAAa,MAAoB;GAChC,IAAM,IAAkB,EAAsB,CAAe,CAAC,CAAC,QAAQ,MAAU,EAAkB,IAAI,CAAK,CAAC;GAY7G,OAVK,EAA2B,UAUzB,EAAgB,CAAe,KATrC,EAA2B,UAAU,IAM9B,EAJc,MAAM,qBAC1B,IAAI,IAAI,CAAC,GAAG,GAAiB,GAAG,EAA0B,QAAQ,MAAU,EAAkB,IAAI,CAAK,CAAC,CAAC,CAAC,CAGpF,CAAY;EAIrC,CAAC;CACF,CAAC,GAEK,KAA2B,GAAgB,MAAmC;EACnF,KAAyB,EAAsB,CAAe,CAAC;CAChE,CAAC,GAEK,KAAe,QAAqB;EACzC,IAAa;CACd,CAAC;CAUD,AARA,QAAgB;EACf,GAAkB,EAAS,WAAW,CAAqB;CAC5D,GAAG,CAAC,GAAuB,EAAS,SAAS,CAAC,GAE9C,QAAgB;EACf,GAAyB,CAAQ;CAClC,GAAG,CAAC,CAAQ,CAAC,GAEb,QAAgB;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,EAAS,KAAK;CAAM,CAAC;CAEhD,IAAM,IAAQ,GAAS;EACtB,UAAU;EACV,MAAM,EAAS;EACN;EACT,OAAO;GACN,aAAa;GACb,eAAe;GACf,cAAc;GACd,kBAAkB;GAClB;GACA;EACD;EACA,WAAW,MAAQ,EAAU,SAAS,CAAY;EAClD,aAAa,MAAQ,EAAI;EACzB,qBAAqB;EACrB,uBAAuB;EACvB,sBAAsB;EACtB,0BAA0B;EAC1B,kBAAkB;EAClB,yBAAyB,MAAkB;EAC3C,qBAAqB,MAAQ;GAC5B,IAAI,MAAkB,QACrB,OAAO;GAGR,IAAM,IAAc,EAAmB,GAAK,EAAS,OAAO;GAE5D,OAAO,MAAkB,EAAgB,CAAW;EACrD;CACD,CAAC,GAEK,IAAqB,GAA6B,GAAO,CAAoB,GAC7E,IAAuB,KAAgB,EAAmB,EAAE,EAAE,IAC9D,IAAe,EAAM,YAAY,CAAC,CAAC,MACnC,KAAmB,QAEvB,GAAgC;EAC/B,MAAM;EACN,SAAS;EACT,wBAAwB,MAAQ,EAAI;EACpC,kBAAkB,oBAAuB,IAAI,IAAI,CAAC,CAAoB,CAAC,IAAI,KAAA;CAC5E,CAAC,GACF;EAAC;EAAc;EAAoB;CAAoB,CACxD;CAYA,OACC,kBAAC,GAAD;EACQ;EACP,aAAa;EACN;EACI;EACC;EACD;EACK;EACD;EACA;EACf,4BAA2B;EAC3B,eAAe,MAAkB,UAAU,KAnBxB,MAAwD;GAC5E,IAAM,IAAc,EAAmB,GAAK,EAAS,OAAO;GAG5D,AADA,GAAqB,EAAI,IAAI,EAAI,aAAa,CAAC,GAC/C,IAAa,CAAW;EACzB,IAcwE,KAAA;EACtE,mBAAmB,MAAQ,GAAQ,KAAe,MAAkB,UAAU,EAAI,aAAa;EAC/F,kBAAkB,MAAQ;GACzB,IAAM,IAAc,EAAmB,GAAK,EAAS,OAAO;GAE5D,OAAO,KAAkB,CAAW;EACrC;EACA,mBAAmB,EAAE,QAAK,cACzB,GACC,EAAK,OAAO,OAAO,KAAwB,EAAO,gBAClD,EAAK,OAAO,OAAO,KAAwB,EAAI,cAAc,KAAK,EAAO,qBAC1E;EAED,gBAAgB,EAAE,cAAW,GAAiB,IAAI,EAAK,EAAE;EAChC;EACH;EACE;EACF;EACtB,oBAAoB,MAAS;GAC5B,IAAM,IAAc,EAAmB,EAAK,KAAK,EAAS,OAAO,GAC3D,IAAe,GAA2B;IAC/C,OAAO,EAAmB,kBAAkB,EAAK,KAAK,OAAO;IAC7D,UAAU,EAAK,KAAK,SAAS;IAC7B,SAAS;IACT,SAAS;GACV,CAAC,GACK,IAAiB,EAAyB;IAC/C,UAAU,EAAK,KAAK,OAAO;IAC3B,mBAAmB,EAAmB;IACtC,qBAAqB,EAAmB;GACzC,CAAC,IACA,kBAAC,IAAD;IAAkC;IAAc,OAAO,EAAK,YAAY;GAAQ,CAAA,IAEhF,EAAK;GAUN,OAAO,GAAsB,GARb,IACb,EAAkB;IAClB,GAAG;IACH;IACA;GACD,CAAC,IACA,GAEyC,GAAsB,EAAU;EAC7E;EACA,mBAAmB,IAAa,kBAAC,OAAD;GAAK,KAAK;GAAa,WAAW,EAAO;GAAU,eAAY;EAAQ,CAAA,IAAI;CAC3G,CAAA;AAEH"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/tree-table/TreeTable.module.scss","../../src/tree-table/TreeTable.tsx"],"sourcesContent":[".treeColumnCell {\n\tpadding-inline-start: var(--space-sm);\n}\n\n.selectedIndicatorCell {\n\tbox-shadow: inset 0.1875rem 0 0 var(--accent-text);\n}\n\n.treeCell {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tmin-width: 0;\n}\n\n.treeCellContent {\n\tmin-width: 0;\n\tflex: 1 1 auto;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.expanderButton {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex: 0 0 1.5rem;\n\twidth: 1.5rem;\n\theight: 1.5rem;\n\tpadding: 0;\n\tborder: 0;\n\tborder-radius: var(--radius-xs);\n\tbackground: transparent;\n\tcolor: var(--content-0);\n\tcursor: pointer;\n\n\t&:hover,\n\t&:focus-visible {\n\t\tbackground-color: var(--surface-2);\n\t}\n}\n\n.expanderSpacer {\n\tflex: 0 0 1.5rem;\n\twidth: 1.5rem;\n\theight: 1.5rem;\n}\n\n.sentinel {\n\theight: 1px;\n}\n","import { useEffect, useEffectEvent, useMemo, useRef, useState, type ReactNode } from \"react\";\n\nimport { formatPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport {\n\ttype FoundationTableRow,\n\tfoundationTableFeatures,\n\tresolveTableLength,\n\tTableColumnDef,\n\ttype TableColumnOrderState,\n\ttype TableColumnSizingState,\n\ttype TableColumnVisibilityState,\n\tTableSelectionMode,\n\tuseTableRowSelection\n} from \"@ryuzaki13/react-foundation-lib/table\";\nimport { buildTreeTableRows, type TreeTableFlatHierarchy, type TreeTableRowNode } from \"@ryuzaki13/react-foundation-lib/tree-table\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { useTable, type ExpandedState } from \"@tanstack/react-table\";\nimport { ChevronDownIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport {\n\tBaseTable,\n\tbuildBaseTableMergedCellsLayout,\n\tbuildTableFormattingSnapshot,\n\tFormattedTableCell,\n\tgetOrderedVisibleLeafColumns,\n\tshouldUseTableFormatting,\n\tuseTableColumnOrder,\n\tuseTableColumnPinning,\n\tuseTableColumnSizing,\n\tuseTableColumnVisibility,\n\ttype BaseTableCellRenderArgs,\n\ttype BaseTableColumnState,\n\ttype BaseTableProps,\n\ttype TableColumnPinningState\n} from \"../base-table\";\n\nimport styles from \"./TreeTable.module.scss\";\n\nimport type { TableFormulaRowData } from \"@ryuzaki13/react-foundation-lib/formulas\";\n\n/**\n * Внутренний тип строки TreeTable после преобразования в иерархию.\n */\ntype TreeTableRuntimeRow<TData extends object> = TreeTableRowNode<TData>;\n\n/**\n * Пропсы компонента TreeTable.\n *\n * Компонент принимает плоский OData-список и сам строит иерархию,\n * оставляя управление раскрытием и выбором во внутреннем состоянии.\n */\nexport interface TreeTableProps<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\thierarchy: TreeTableFlatHierarchy<TData>;\n\t/**\n\t * Режим выбора строк.\n\t */\n\tselectionMode?: TableSelectionMode;\n\t/**\n\t * Если `true`, при первом появлении данных раскрывает корневой уровень.\n\t */\n\texpandFirstLevel?: boolean;\n\t/**\n\t * Дополнительные строки, которые должны быть раскрыты при первой инициализации.\n\t */\n\tdefaultExpandedRowIds?: readonly string[];\n\t/**\n\t * Идентификатор колонки, в которой нужно рисовать tree-toggle и отступы.\n\t *\n\t * Если не указан, используется первая видимая колонка.\n\t */\n\ttreeColumnId?: string;\n\t/**\n\t * Отступ на один уровень вложенности.\n\t *\n\t * Числовое значение трактуется как `em`.\n\t */\n\tindentSize?: string | number;\n\t/**\n\t * Дополнительный CSS-класс корневого контейнера.\n\t */\n\tclassName?: string;\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 * Вызывается после изменения раскрытых узлов.\n\t */\n\tonExpandedRowIdsChange?: (rowIds: string[]) => 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 * потому что BaseTable работает уже после сборки flat hierarchy.\n\t */\n\trenderHeaderContextMenu?: BaseTableProps<TreeTableRuntimeRow<TData>>[\"renderHeaderContextMenu\"];\n\t/**\n\t * Точка расширения содержимого ячейки после общего форматирования.\n\t *\n\t * Для tree-column в `defaultContent` передается только содержимое ячейки:\n\t * TreeTable сам добавит expander и отступ после выполнения слота.\n\t */\n\trenderCellContent?: BaseTableProps<TreeTableRuntimeRow<TData>>[\"renderCellContent\"];\n}\n\n/**\n * Преобразует массив идентификаторов в формат состояния раскрытия TanStack.\n */\nfunction toExpandedState(rowIds: readonly string[]): ExpandedState {\n\treturn Object.fromEntries(rowIds.map((rowId) => [rowId, true]));\n}\n\n/**\n * Извлекает из состояния раскрытия только активные идентификаторы.\n */\nfunction extractExpandedRowIds(expanded: ExpandedState): string[] {\n\tif (typeof expanded === \"boolean\") {\n\t\treturn [];\n\t}\n\n\treturn Object.keys(expanded).filter((rowId) => expanded[rowId]);\n}\n\n/**\n * Нормализует исходную строку, убирая зависимость от внутреннего поля `children`.\n */\nfunction resolveOriginalRow<TData extends object>(row: FoundationTableRow<TreeTableRuntimeRow<TData>>, rowById: Map<string, TData>): TData {\n\treturn rowById.get(row.id) ?? (row.original as TData);\n}\n\n/**\n * Рендерит содержимое древовидной ячейки.\n */\nfunction renderTreeCellContent<TData extends object>(\n\targs: BaseTableCellRenderArgs<TreeTableRuntimeRow<TData>>,\n\tcontent: ReactNode,\n\ttreeColumnId: string | undefined,\n\tindentSize: string | number\n): ReactNode {\n\tif (args.cell.column.id !== treeColumnId) {\n\t\treturn content;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={styles.treeCell}\n\t\t\tstyle={{\n\t\t\t\tpaddingInlineStart: `calc(${args.row.depth} * ${resolveTableLength(indentSize) ?? \"0em\"})`\n\t\t\t}}>\n\t\t\t{args.row.getCanExpand() ? (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName={styles.expanderButton}\n\t\t\t\t\taria-label={args.row.getIsExpanded() ? \"Свернуть строку\" : \"Развернуть строку\"}\n\t\t\t\t\tdata-tree-table-interactive=\"true\"\n\t\t\t\t\tdata-ui=\"tree-table-expander\"\n\t\t\t\t\tdata-action={args.row.getIsExpanded() ? \"collapse-tree-table-row\" : \"expand-tree-table-row\"}\n\t\t\t\t\tonClick={(event) => {\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\targs.row.toggleExpanded();\n\t\t\t\t\t}}>\n\t\t\t\t\t{args.row.getIsExpanded() ? <ChevronDownIcon size={16} /> : <ChevronRightIcon size={16} />}\n\t\t\t\t</button>\n\t\t\t) : (\n\t\t\t\t<span className={styles.expanderSpacer} aria-hidden=\"true\" />\n\t\t\t)}\n\n\t\t\t<div className={styles.treeCellContent}>{content}</div>\n\t\t</div>\n\t);\n}\n\n/**\n * Древовидная таблица на базе TanStack Table для плоских OData-данных.\n */\nexport function TreeTable<TData extends object>({\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tdata,\n\tcolumns,\n\thierarchy,\n\tselectionMode = \"none\",\n\texpandFirstLevel = false,\n\tdefaultExpandedRowIds,\n\ttreeColumnId,\n\tindentSize = 1,\n\tclassName,\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\tonExpandedRowIdsChange,\n\tonReachEnd,\n\tgetRowCanSelect,\n\tgetRowClassName,\n\trenderHeaderContextMenu,\n\trenderCellContent\n}: TreeTableProps<TData>) {\n\tconst treeData = useMemo(() => buildTreeTableRows(data ?? [], hierarchy), [data, hierarchy]);\n\tconst formattingSnapshot = useMemo(() => buildTableFormattingSnapshot(columns), [columns]);\n\tconst initialExpandedRowIds = useMemo(() => {\n\t\tconst nextExpandedRowIds = new Set(defaultExpandedRowIds ?? []);\n\n\t\tif (expandFirstLevel) {\n\t\t\tfor (const rootRowId of treeData.rootRowIds) {\n\t\t\t\tnextExpandedRowIds.add(rootRowId);\n\t\t\t}\n\t\t}\n\n\t\treturn Array.from(nextExpandedRowIds);\n\t}, [defaultExpandedRowIds, expandFirstLevel, treeData.rootRowIds]);\n\n\tconst [expanded, setExpanded] = useState<ExpandedState>({});\n\tconst hasInitializedExpansionRef = useRef(false);\n\tconst scrollableRef = useRef<HTMLDivElement | null>(null);\n\tconst sentinelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst { rowSelection, activateRowSelection } = useTableRowSelection({\n\t\tavailableRowIds: treeData.allRowIds,\n\t\trowById: treeData.rowById,\n\t\tselectionMode,\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\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 syncExpandedState = useEffectEvent((availableRowIds: readonly string[], nextInitialExpandedRowIds: readonly string[]) => {\n\t\tif (availableRowIds.length === 0) {\n\t\t\thasInitializedExpansionRef.current = false;\n\t\t\tsetExpanded({});\n\t\t\treturn;\n\t\t}\n\n\t\tconst availableRowIdSet = new Set(availableRowIds);\n\n\t\tsetExpanded((currentExpanded) => {\n\t\t\tconst persistedRowIds = extractExpandedRowIds(currentExpanded).filter((rowId) => availableRowIdSet.has(rowId));\n\n\t\t\tif (!hasInitializedExpansionRef.current) {\n\t\t\t\thasInitializedExpansionRef.current = true;\n\n\t\t\t\tconst seededRowIds = Array.from(\n\t\t\t\t\tnew Set([...persistedRowIds, ...nextInitialExpandedRowIds.filter((rowId) => availableRowIdSet.has(rowId))])\n\t\t\t\t);\n\n\t\t\t\treturn toExpandedState(seededRowIds);\n\t\t\t}\n\n\t\t\treturn toExpandedState(persistedRowIds);\n\t\t});\n\t});\n\n\tconst emitExpandedRowIdsChange = useEffectEvent((currentExpanded: ExpandedState) => {\n\t\tonExpandedRowIdsChange?.(extractExpandedRowIds(currentExpanded));\n\t});\n\n\tconst emitReachEnd = useEffectEvent(() => {\n\t\tonReachEnd?.();\n\t});\n\n\tuseEffect(() => {\n\t\tsyncExpandedState(treeData.allRowIds, initialExpandedRowIds);\n\t}, [initialExpandedRowIds, treeData.allRowIds]);\n\n\tuseEffect(() => {\n\t\temitExpandedRowIdsChange(expanded);\n\t}, [expanded]);\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, treeData.rows.length]);\n\n\tconst table = useTable({\n\t\tfeatures: foundationTableFeatures,\n\t\tdata: treeData.rows as TreeTableRuntimeRow<TData>[],\n\t\tcolumns: columns as TableColumnDef<TreeTableRuntimeRow<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\texpanded,\n\t\t\trowSelection\n\t\t},\n\t\tgetRowId: (row) => hierarchy.getRowId(row as TData),\n\t\tgetSubRows: (row) => row.children,\n\t\tonColumnOrderChange: handleColumnOrderChange,\n\t\tonColumnPinningChange: handleColumnPinningChange,\n\t\tonColumnSizingChange: handleColumnSizingChange,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tonExpandedChange: setExpanded,\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\tconst originalRow = resolveOriginalRow(row, treeData.rowById);\n\n\t\t\treturn getRowCanSelect ? getRowCanSelect(originalRow) : true;\n\t\t}\n\t});\n\n\tconst visibleLeafColumns = getOrderedVisibleLeafColumns(table, baseTableColumnState);\n\tconst resolvedTreeColumnId = treeColumnId ?? visibleLeafColumns[0]?.id;\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\tresolveRowBoundaryKey: (row) => row.depth,\n\t\t\t\texcludeColumnIds: resolvedTreeColumnId ? new Set([resolvedTreeColumnId]) : undefined\n\t\t\t}),\n\t\t[rowModelRows, visibleLeafColumns, resolvedTreeColumnId]\n\t);\n\n\t/**\n\t * Активирует строку: обновляет выбор в соответствии с режимом и вызывает внешний callback.\n\t */\n\tconst activateRow = (row: FoundationTableRow<TreeTableRuntimeRow<TData>>) => {\n\t\tconst originalRow = resolveOriginalRow(row, treeData.rowById);\n\n\t\tactivateRowSelection(row.id, row.getCanSelect());\n\t\tonRowClick?.(originalRow);\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\ttableClassName={tableClassName}\n\t\t\tselectionMode={selectionMode}\n\t\t\tscrollableRef={scrollableRef}\n\t\t\tinteractiveElementSelector='[data-tree-table-interactive=\"true\"]'\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) => {\n\t\t\t\tconst originalRow = resolveOriginalRow(row, treeData.rowById);\n\n\t\t\t\treturn getRowClassName?.(originalRow);\n\t\t\t}}\n\t\t\tgetCellClassName={({ row, cell }) =>\n\t\t\t\tcn(\n\t\t\t\t\tcell.column.id === resolvedTreeColumnId && styles.treeColumnCell,\n\t\t\t\t\tcell.column.id === resolvedTreeColumnId && row.getIsSelected() && styles.selectedIndicatorCell\n\t\t\t\t)\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 originalRow = resolveOriginalRow(args.row, treeData.rowById);\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: originalRow as TableFormulaRowData,\n\t\t\t\t\trowKind: \"tree\"\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\t<FormattedTableCell displayValue={displayValue} align={args.columnMeta?.align} />\n\t\t\t\t) : (\n\t\t\t\t\targs.defaultContent\n\t\t\t\t);\n\t\t\t\tconst content = renderCellContent\n\t\t\t\t\t? renderCellContent({\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\t\tdisplayValue\n\t\t\t\t\t\t})\n\t\t\t\t\t: defaultContent;\n\n\t\t\t\treturn renderTreeCellContent(args, content, resolvedTreeColumnId, indentSize);\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":";;;;;;;;;;;;;;;;;;;;ACiNA,SAAS,EAAgB,GAA0C;CAClE,OAAO,OAAO,YAAY,EAAO,KAAK,MAAU,CAAC,GAAO,EAAI,CAAC,CAAC;AAC/D;AAKA,SAAS,EAAsB,GAAmC;CAKjE,OAJI,OAAO,KAAa,YAChB,CAAC,IAGF,OAAO,KAAK,CAAQ,CAAC,CAAC,QAAQ,MAAU,EAAS,EAAM;AAC/D;AAKA,SAAS,EAAyC,GAAqD,GAAoC;CAC1I,OAAO,EAAQ,IAAI,EAAI,EAAE,KAAM,EAAI;AACpC;AAKA,SAAS,GACR,GACA,GACA,GACA,GACY;CAKZ,OAJI,EAAK,KAAK,OAAO,OAAO,IAK3B,kBAAC,OAAD;EACC,WAAW,EAAO;EAClB,OAAO,EACN,oBAAoB,QAAQ,EAAK,IAAI,MAAM,KAAK,EAAmB,CAAU,KAAK,MAAM,GACzF;EAJD,UAAA,CAKE,EAAK,IAAI,aAAa,IACtB,kBAAC,UAAD;GACC,MAAK;GACL,WAAW,EAAO;GAClB,cAAY,EAAK,IAAI,cAAc,IAAI,oBAAoB;GAC3D,+BAA4B;GAC5B,WAAQ;GACR,eAAa,EAAK,IAAI,cAAc,IAAI,4BAA4B;GACpE,UAAU,MAAU;IAEnB,AADA,EAAM,gBAAgB,GACtB,EAAK,IAAI,eAAe;GACzB;GACC,UAAA,EAAK,IAAI,cAAc,IAAI,kBAAC,GAAD,EAAiB,MAAM,GAAK,CAAA,IAAI,kBAAC,GAAD,EAAkB,MAAM,GAAK,CAAA;EAClF,CAAA,IAER,kBAAC,QAAD;GAAM,WAAW,EAAO;GAAgB,eAAY;EAAQ,CAAA,GAG7D,kBAAC,OAAD;GAAK,WAAW,EAAO;GAAkB,UAAA;EAAa,CAAA,CAClD;MA5BE;AA8BT;AAKA,SAAgB,EAAgC,EAC/C,UACA,cACA,eACA,SACA,YACA,cACA,mBAAgB,QAChB,sBAAmB,IACnB,0BACA,iBACA,iBAAa,GACb,eACA,oBACA,sBACA,4BACA,iBACA,wBACA,kBACA,yBACA,mBACA,yBACA,0BAAuB,IACvB,4BAAyB,IACzB,yBACA,6BACA,wBACA,yBACA,0BACA,eACA,0BACA,4BACA,eACA,oBACA,qBACA,6BACA,wBACyB;CACzB,IAAM,IAAW,QAAc,GAAmB,KAAQ,CAAC,GAAG,CAAS,GAAG,CAAC,GAAM,CAAS,CAAC,GACrF,IAAqB,QAAc,EAA6B,CAAO,GAAG,CAAC,CAAO,CAAC,GACnF,IAAwB,QAAc;EAC3C,IAAM,IAAqB,IAAI,IAAI,KAAyB,CAAC,CAAC;EAE9D,IAAI,GACH,KAAK,IAAM,KAAa,EAAS,YAChC,EAAmB,IAAI,CAAS;EAIlC,OAAO,MAAM,KAAK,CAAkB;CACrC,GAAG;EAAC;EAAuB;EAAkB,EAAS;CAAU,CAAC,GAE3D,CAAC,GAAU,KAAe,GAAwB,CAAC,CAAC,GACpD,IAA6B,EAAO,EAAK,GACzC,IAAgB,EAA8B,IAAI,GAClD,IAAc,EAA8B,IAAI,GAEhD,EAAE,kBAAc,6BAAyB,GAAqB;EACnE,iBAAiB,EAAS;EAC1B,SAAS,EAAS;EAClB;EACA;CACD,CAAC,GACK,EAAE,kBAAkB,GAA0B,0BAA0B,OAAiC,GAC9G;EACC;EACA;EACA;CACD,CACD,GACM,EAAE,aAAa,GAAqB,qBAAqB,OAA4B,GAAoB;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,GAEK,IAAuB,SACrB;EACN,aAAa;EACb,eAAe;EACf,cAAc;EACd,kBAAkB;CACnB,IACA;EAAC;EAAqB;EAAuB;EAAsB;CAAwB,CAC5F,GAEM,KAAoB,GAAgB,GAAoC,MAAiD;EAC9H,IAAI,EAAgB,WAAW,GAAG;GAEjC,AADA,EAA2B,UAAU,IACrC,EAAY,CAAC,CAAC;GACd;EACD;EAEA,IAAM,IAAoB,IAAI,IAAI,CAAe;EAEjD,GAAa,MAAoB;GAChC,IAAM,IAAkB,EAAsB,CAAe,CAAC,CAAC,QAAQ,MAAU,EAAkB,IAAI,CAAK,CAAC;GAY7G,OAVK,EAA2B,UAUzB,EAAgB,CAAe,KATrC,EAA2B,UAAU,IAM9B,EAJc,MAAM,qBAC1B,IAAI,IAAI,CAAC,GAAG,GAAiB,GAAG,EAA0B,QAAQ,MAAU,EAAkB,IAAI,CAAK,CAAC,CAAC,CAAC,CAGpF,CAAY;EAIrC,CAAC;CACF,CAAC,GAEK,KAA2B,GAAgB,MAAmC;EACnF,KAAyB,EAAsB,CAAe,CAAC;CAChE,CAAC,GAEK,KAAe,QAAqB;EACzC,IAAa;CACd,CAAC;CAUD,AARA,QAAgB;EACf,GAAkB,EAAS,WAAW,CAAqB;CAC5D,GAAG,CAAC,GAAuB,EAAS,SAAS,CAAC,GAE9C,QAAgB;EACf,GAAyB,CAAQ;CAClC,GAAG,CAAC,CAAQ,CAAC,GAEb,QAAgB;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,EAAS,KAAK;CAAM,CAAC;CAEhD,IAAM,IAAQ,GAAS;EACtB,UAAU;EACV,MAAM,EAAS;EACN;EACT,OAAO;GACN,aAAa;GACb,eAAe;GACf,cAAc;GACd,kBAAkB;GAClB;GACA;EACD;EACA,WAAW,MAAQ,EAAU,SAAS,CAAY;EAClD,aAAa,MAAQ,EAAI;EACzB,qBAAqB;EACrB,uBAAuB;EACvB,sBAAsB;EACtB,0BAA0B;EAC1B,kBAAkB;EAClB,yBAAyB,MAAkB;EAC3C,qBAAqB,MAAQ;GAC5B,IAAI,MAAkB,QACrB,OAAO;GAGR,IAAM,IAAc,EAAmB,GAAK,EAAS,OAAO;GAE5D,OAAO,MAAkB,EAAgB,CAAW;EACrD;CACD,CAAC,GAEK,IAAqB,GAA6B,GAAO,CAAoB,GAC7E,IAAuB,KAAgB,EAAmB,EAAE,EAAE,IAC9D,IAAe,EAAM,YAAY,CAAC,CAAC,MACnC,KAAmB,QAEvB,GAAgC;EAC/B,MAAM;EACN,SAAS;EACT,wBAAwB,MAAQ,EAAI;EACpC,kBAAkB,oBAAuB,IAAI,IAAI,CAAC,CAAoB,CAAC,IAAI,KAAA;CAC5E,CAAC,GACF;EAAC;EAAc;EAAoB;CAAoB,CACxD;CAYA,OACC,kBAAC,GAAD;EACQ;EACP,aAAa;EACN;EACI;EACC;EACD;EACK;EACD;EACA;EACf,4BAA2B;EAC3B,eAAe,MAAkB,UAAU,KAnBxB,MAAwD;GAC5E,IAAM,IAAc,EAAmB,GAAK,EAAS,OAAO;GAG5D,AADA,GAAqB,EAAI,IAAI,EAAI,aAAa,CAAC,GAC/C,IAAa,CAAW;EACzB,IAcwE,KAAA;EACtE,mBAAmB,MAAQ,GAAQ,KAAe,MAAkB,UAAU,EAAI,aAAa;EAC/F,kBAAkB,MAAQ;GACzB,IAAM,IAAc,EAAmB,GAAK,EAAS,OAAO;GAE5D,OAAO,KAAkB,CAAW;EACrC;EACA,mBAAmB,EAAE,QAAK,cACzB,GACC,EAAK,OAAO,OAAO,KAAwB,EAAO,gBAClD,EAAK,OAAO,OAAO,KAAwB,EAAI,cAAc,KAAK,EAAO,qBAC1E;EAED,gBAAgB,EAAE,cAAW,GAAiB,IAAI,EAAK,EAAE;EAChC;EACH;EACE;EACF;EACtB,oBAAoB,MAAS;GAC5B,IAAM,IAAc,EAAmB,EAAK,KAAK,EAAS,OAAO,GAC3D,IAAe,GAA2B;IAC/C,OAAO,EAAmB,kBAAkB,EAAK,KAAK,OAAO;IAC7D,UAAU,EAAK,KAAK,SAAS;IAC7B,SAAS;IACT,SAAS;GACV,CAAC,GACK,IAAiB,EAAyB;IAC/C,UAAU,EAAK,KAAK,OAAO;IAC3B,mBAAmB,EAAmB;IACtC,qBAAqB,EAAmB;GACzC,CAAC,IACA,kBAAC,IAAD;IAAkC;IAAc,OAAO,EAAK,YAAY;GAAQ,CAAA,IAEhF,EAAK;GAUN,OAAO,GAAsB,GARb,IACb,EAAkB;IAClB,GAAG;IACH;IACA;GACD,CAAC,IACA,GAEyC,GAAsB,EAAU;EAC7E;EACA,mBAAmB,IAAa,kBAAC,OAAD;GAAK,KAAK;GAAa,WAAW,EAAO;GAAU,eAAY;EAAQ,CAAA,IAAI;CAC3G,CAAA;AAEH"}
|
package/dist/types.d.ts
CHANGED
|
@@ -17,10 +17,10 @@ export type UiBaseProps<C, V = C> = {
|
|
|
17
17
|
};
|
|
18
18
|
/**
|
|
19
19
|
* Цветовой тон задаёт смысл цвета, а `UiAppearance` — визуальную иерархию действия.
|
|
20
|
-
* `
|
|
20
|
+
* `accent` отмечает текущий или выбранный элемент, а `brand` — фирменное действие.
|
|
21
21
|
*/
|
|
22
|
-
export type UiTone = "neutral" | "brand" | "error" | "warning" | "success" | "info";
|
|
22
|
+
export type UiTone = "accent" | "neutral" | "brand" | "error" | "warning" | "success" | "info";
|
|
23
23
|
export type UiAppearance = "solid" | "outline" | "ghost" | "transparent";
|
|
24
|
-
export type UiVariant = "transparent" | "ghost" | "neutral" | "brand" | "error" | "warning" | "success" | "info" | "neutralOutline" | "brandOutline" | "errorOutline" | "warningOutline" | "successOutline" | "infoOutline";
|
|
24
|
+
export type UiVariant = "transparent" | "ghost" | "neutral" | "accent" | "brand" | "error" | "warning" | "success" | "info" | "neutralOutline" | "accentOutline" | "brandOutline" | "errorOutline" | "warningOutline" | "successOutline" | "infoOutline";
|
|
25
25
|
export type UiPanelTone = "primary" | "secondary" | "tertiary";
|
|
26
26
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAElD,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAElD,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAE/F,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE,MAAM,MAAM,SAAS,GAClB,aAAa,GACb,OAAO,GACP,SAAS,GACT,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,SAAS,GACT,MAAM,GACN,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC"}
|
package/dist/uiClasses.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uiClasses.d.ts","sourceRoot":"","sources":["../src/uiClasses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE5E,MAAM,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"uiClasses.d.ts","sourceRoot":"","sources":["../src/uiClasses.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE5E,MAAM,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC;AA4C/E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,YAAY,GAAG,MAAM,CAEzE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEjE;AAED,wBAAgB,eAAe,CAAC,EAC/B,OAAO,EACP,IAAI,EACJ,UAAU,EACV,YAAwB,EACxB,kBAA8B,EAC9B,EAAE;IACF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,YAAY,CAAC;CAClC,GAAG,QAAQ,CAgBX"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryuzaki13/react-foundation-ui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Reusable React foundation UI primitives and Storybook stories.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ryuzaki13",
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"styles",
|
|
34
34
|
"styles.scss",
|
|
35
35
|
"src/styles",
|
|
36
|
+
"COLOR_TOKENS_MIGRATION.md",
|
|
36
37
|
"README.md",
|
|
37
38
|
"LICENSE"
|
|
38
39
|
],
|
|
@@ -290,6 +291,10 @@
|
|
|
290
291
|
"types": "./dist/table/index.d.ts",
|
|
291
292
|
"import": "./dist/table/index.js"
|
|
292
293
|
},
|
|
294
|
+
"./table-editor": {
|
|
295
|
+
"types": "./dist/table-editor/index.d.ts",
|
|
296
|
+
"import": "./dist/table-editor/index.js"
|
|
297
|
+
},
|
|
293
298
|
"./table-column-interactions": {
|
|
294
299
|
"types": "./dist/table-column-interactions/index.d.ts",
|
|
295
300
|
"import": "./dist/table-column-interactions/index.js"
|
|
@@ -389,7 +394,7 @@
|
|
|
389
394
|
"@lexical/selection": ">=0.46.0 <1.0.0",
|
|
390
395
|
"@lexical/utils": ">=0.46.0 <1.0.0",
|
|
391
396
|
"@ryuzaki13/react-foundation-api": ">=2.0.0 <3.0.0",
|
|
392
|
-
"@ryuzaki13/react-foundation-lib": ">=2.
|
|
397
|
+
"@ryuzaki13/react-foundation-lib": ">=2.3.0 <3.0.0",
|
|
393
398
|
"@tanstack/react-query": ">=5.101.4 <6.0.0",
|
|
394
399
|
"@tanstack/react-router": ">=1.170.23 <2.0.0",
|
|
395
400
|
"@tanstack/react-table": ">=9.1.0 <10.0.0",
|
|
@@ -486,7 +491,7 @@
|
|
|
486
491
|
"@lexical/selection": "^0.49.0",
|
|
487
492
|
"@lexical/utils": "^0.49.0",
|
|
488
493
|
"@ryuzaki13/react-foundation-api": "^2.0.0",
|
|
489
|
-
"@ryuzaki13/react-foundation-lib": "^2.
|
|
494
|
+
"@ryuzaki13/react-foundation-lib": "^2.3.0",
|
|
490
495
|
"@storybook/addon-a11y": "^10.5.5",
|
|
491
496
|
"@storybook/addon-docs": "^10.5.5",
|
|
492
497
|
"@storybook/addon-vitest": "^10.5.5",
|
package/src/styles/_border.scss
CHANGED
|
@@ -70,13 +70,13 @@
|
|
|
70
70
|
|
|
71
71
|
// TODO: unused
|
|
72
72
|
.outlineSolid {
|
|
73
|
-
outline: var(--border-width) solid var(--
|
|
73
|
+
outline: var(--border-width) solid var(--accent-text);
|
|
74
74
|
outline-offset: var(--focus-offset);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
// TODO: unused
|
|
78
78
|
.outlineDashed {
|
|
79
|
-
outline: var(--border-width) dashed var(--
|
|
79
|
+
outline: var(--border-width) dashed var(--accent-text);
|
|
80
80
|
outline-offset: var(--focus-offset);
|
|
81
81
|
}
|
|
82
82
|
|
package/src/styles/_color.scss
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
// TODO: unused
|
|
35
35
|
.surfaceAccent {
|
|
36
|
-
background-color: var(--
|
|
36
|
+
background-color: var(--accent-fill);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
.surfaceBackdrop {
|
|
@@ -62,31 +62,31 @@
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
.contentAccent {
|
|
65
|
-
color: var(--
|
|
65
|
+
color: var(--accent-text);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
.statusSuccess {
|
|
69
|
-
color: var(--
|
|
69
|
+
color: var(--success-text);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
.statusError {
|
|
73
|
-
color: var(--
|
|
73
|
+
color: var(--error-text);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
.textColorDanger {
|
|
77
|
-
color: var(--
|
|
77
|
+
color: var(--error-text);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
.statusWarning {
|
|
81
|
-
color: var(--
|
|
81
|
+
color: var(--warning-text);
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
.statusInfo {
|
|
85
|
-
color: var(--
|
|
85
|
+
color: var(--info-text);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
.statusBrand {
|
|
89
|
-
color: var(--
|
|
89
|
+
color: var(--brand-text);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
.statusNone {
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
|
|
4
4
|
&:hover:not(.selected) {
|
|
5
5
|
// filter: contrast(0.9);
|
|
6
|
-
background-color: var(--
|
|
6
|
+
background-color: var(--accent-fill);
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
&.selected {
|
|
10
10
|
cursor: default;
|
|
11
|
-
// color: var(--
|
|
11
|
+
// color: var(--accent-text);
|
|
12
12
|
background-color: var(--surface-1);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -133,18 +133,18 @@ html,
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
.link {
|
|
136
|
-
color: var(--
|
|
136
|
+
color: var(--accent-text);
|
|
137
137
|
|
|
138
138
|
&:visited {
|
|
139
|
-
color: var(--
|
|
139
|
+
color: var(--accent-text);
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
&:hover {
|
|
143
|
-
color: var(--
|
|
143
|
+
color: var(--info-fill);
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
&:active {
|
|
147
|
-
color: var(--
|
|
147
|
+
color: var(--error-fill);
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
@use "sass:map";
|
|
2
2
|
@use "sass:meta";
|
|
3
|
+
@use "sass:string";
|
|
3
4
|
|
|
4
5
|
$root-token-defaults: (
|
|
5
6
|
"--font-family": (
|
|
@@ -72,8 +73,8 @@ $root-token-defaults: (
|
|
|
72
73
|
"--z-tooltip": 200,
|
|
73
74
|
"--z-image-viewer": 300,
|
|
74
75
|
"--z-notify": 400,
|
|
75
|
-
"--white":
|
|
76
|
-
"--black":
|
|
76
|
+
"--white": #ffffff,
|
|
77
|
+
"--black": #000000
|
|
77
78
|
);
|
|
78
79
|
|
|
79
80
|
$retina-token-defaults: (
|
|
@@ -191,110 +192,62 @@ $paragraph-spacing-preset-defaults: (
|
|
|
191
192
|
|
|
192
193
|
$light-theme-defaults: (
|
|
193
194
|
tokens: (
|
|
194
|
-
"--surface-0":
|
|
195
|
-
"--surface-1":
|
|
196
|
-
"--surface-2":
|
|
197
|
-
"--content-0":
|
|
198
|
-
"--content-1":
|
|
199
|
-
"--content-2":
|
|
200
|
-
"--focus-ring":
|
|
201
|
-
"--overlay-backdrop": var(--hc-overlay-backdrop,
|
|
202
|
-
"--overlay-glass": var(--hc-overlay-glass,
|
|
203
|
-
"--shadow-xs":
|
|
204
|
-
"--shadow-sm":
|
|
205
|
-
"--shadow-md":
|
|
206
|
-
"--shadow-lg":
|
|
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)
|
|
219
|
-
),
|
|
220
|
-
accent: (
|
|
221
|
-
l: 0.55,
|
|
222
|
-
c: 0.22,
|
|
223
|
-
h: 245
|
|
195
|
+
"--surface-0": #ffffff,
|
|
196
|
+
"--surface-1": #f8f8f9,
|
|
197
|
+
"--surface-2": #f1f1f3,
|
|
198
|
+
"--content-0": #202529,
|
|
199
|
+
"--content-1": #646975,
|
|
200
|
+
"--content-2": #8e9298,
|
|
201
|
+
"--focus-ring": #3429ff,
|
|
202
|
+
"--overlay-backdrop": string.unquote("var(--hc-overlay-backdrop, #0000001a)"),
|
|
203
|
+
"--overlay-glass": string.unquote("var(--hc-overlay-glass, #ffffffcc)"),
|
|
204
|
+
"--shadow-xs": string.unquote("var(--hc-shadow-xs, 0 0 0.25em #00000026)"),
|
|
205
|
+
"--shadow-sm": string.unquote("var(--hc-shadow-sm, 0 0 0.25em #00000040)"),
|
|
206
|
+
"--shadow-md": string.unquote("var(--hc-shadow-md, 0 0 0.5em #00000040)"),
|
|
207
|
+
"--shadow-lg": string.unquote("var(--hc-shadow-lg, 0 0 1em #00000040)")
|
|
224
208
|
),
|
|
225
209
|
status: (
|
|
226
|
-
|
|
210
|
+
accent: (
|
|
211
|
+
text: #0073e6,
|
|
212
|
+
border: #006eb3,
|
|
213
|
+
fill: #e2f1fa,
|
|
214
|
+
on-fill: #202529
|
|
215
|
+
),
|
|
227
216
|
brand: (
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
border: (
|
|
234
|
-
l: 0.5,
|
|
235
|
-
c: 0.2,
|
|
236
|
-
h: 262
|
|
237
|
-
)
|
|
238
|
-
),
|
|
217
|
+
text: #0036b0,
|
|
218
|
+
border: #1957d2,
|
|
219
|
+
fill: #1842d2,
|
|
220
|
+
on-fill: #ffffff
|
|
221
|
+
),
|
|
239
222
|
neutral: (
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
),
|
|
245
|
-
border: (
|
|
246
|
-
l: 0.86,
|
|
247
|
-
c: 0.016,
|
|
248
|
-
h: 245
|
|
249
|
-
)
|
|
223
|
+
text: #202529,
|
|
224
|
+
border: #c9d2db,
|
|
225
|
+
fill: #2e3338,
|
|
226
|
+
on-fill: #ffffff
|
|
250
227
|
),
|
|
251
228
|
error: (
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
),
|
|
257
|
-
border: (
|
|
258
|
-
l: 0.52,
|
|
259
|
-
c: 0.19,
|
|
260
|
-
h: 15
|
|
261
|
-
)
|
|
229
|
+
text: #bd1f44,
|
|
230
|
+
border: #bd1f44,
|
|
231
|
+
fill: #dc2447,
|
|
232
|
+
on-fill: #ffffff
|
|
262
233
|
),
|
|
263
234
|
warning: (
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
),
|
|
269
|
-
border: (
|
|
270
|
-
l: 0.55,
|
|
271
|
-
c: 0.16,
|
|
272
|
-
h: 80
|
|
273
|
-
)
|
|
235
|
+
text: #a16200,
|
|
236
|
+
border: #a16200,
|
|
237
|
+
fill: #b67400,
|
|
238
|
+
on-fill: #ffffff
|
|
274
239
|
),
|
|
275
240
|
success: (
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
),
|
|
281
|
-
border: (
|
|
282
|
-
l: 0.5,
|
|
283
|
-
c: 0.14,
|
|
284
|
-
h: 170
|
|
285
|
-
)
|
|
241
|
+
text: #007b57,
|
|
242
|
+
border: #007b57,
|
|
243
|
+
fill: #00906b,
|
|
244
|
+
on-fill: #ffffff
|
|
286
245
|
),
|
|
287
246
|
info: (
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
),
|
|
293
|
-
border: (
|
|
294
|
-
l: 0.52,
|
|
295
|
-
c: 0.15,
|
|
296
|
-
h: 245
|
|
297
|
-
)
|
|
247
|
+
text: #006eb8,
|
|
248
|
+
border: #006eb8,
|
|
249
|
+
fill: #007ed8,
|
|
250
|
+
on-fill: #ffffff
|
|
298
251
|
)
|
|
299
252
|
)
|
|
300
253
|
);
|
|
@@ -304,106 +257,59 @@ $dark-theme-defaults: (
|
|
|
304
257
|
"--surface-0": #222a35,
|
|
305
258
|
"--surface-1": #27313f,
|
|
306
259
|
"--surface-2": #2d3646,
|
|
307
|
-
"--content-0":
|
|
308
|
-
"--content-1":
|
|
309
|
-
"--content-2":
|
|
310
|
-
"--focus-ring":
|
|
311
|
-
"--overlay-backdrop":
|
|
312
|
-
"--overlay-glass":
|
|
313
|
-
"--shadow-xs":
|
|
314
|
-
"--shadow-sm":
|
|
315
|
-
"--shadow-md":
|
|
316
|
-
"--shadow-lg":
|
|
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)
|
|
329
|
-
),
|
|
330
|
-
accent: (
|
|
331
|
-
l: 0.7,
|
|
332
|
-
c: 0.2,
|
|
333
|
-
h: 245
|
|
260
|
+
"--content-0": #dadee5,
|
|
261
|
+
"--content-1": #b6bfcb,
|
|
262
|
+
"--content-2": #969fab,
|
|
263
|
+
"--focus-ring": #ffd300,
|
|
264
|
+
"--overlay-backdrop": string.unquote("var(--hc-overlay-backdrop, #1e252f2e)"),
|
|
265
|
+
"--overlay-glass": string.unquote("var(--hc-overlay-glass, #1e252fcc)"),
|
|
266
|
+
"--shadow-xs": string.unquote("var(--hc-shadow-xs, 0 0 0.25em #00000026)"),
|
|
267
|
+
"--shadow-sm": string.unquote("var(--hc-shadow-sm, 0 0 0.25em #00000040)"),
|
|
268
|
+
"--shadow-md": string.unquote("var(--hc-shadow-md, 0 0 0.5em #00000040)"),
|
|
269
|
+
"--shadow-lg": string.unquote("var(--hc-shadow-lg, 0 0 1em #00000040)")
|
|
334
270
|
),
|
|
335
271
|
status: (
|
|
272
|
+
accent: (
|
|
273
|
+
text: #00a5ff,
|
|
274
|
+
border: #4e8cbe,
|
|
275
|
+
fill: #103243,
|
|
276
|
+
on-fill: #dadee5
|
|
277
|
+
),
|
|
336
278
|
brand: (
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
),
|
|
342
|
-
border: (
|
|
343
|
-
l: 0.7,
|
|
344
|
-
c: 0.18,
|
|
345
|
-
h: 266
|
|
346
|
-
)
|
|
279
|
+
text: #84a0ff,
|
|
280
|
+
border: #6997ff,
|
|
281
|
+
fill: #97b5ff,
|
|
282
|
+
on-fill: #192045
|
|
347
283
|
),
|
|
348
284
|
neutral: (
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
),
|
|
354
|
-
border: (
|
|
355
|
-
l: 0.45,
|
|
356
|
-
c: 0.02,
|
|
357
|
-
h: 256
|
|
358
|
-
)
|
|
285
|
+
text: #a6afbb,
|
|
286
|
+
border: #4e5661,
|
|
287
|
+
fill: #b9c2cd,
|
|
288
|
+
on-fill: #222427
|
|
359
289
|
),
|
|
360
290
|
error: (
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
),
|
|
366
|
-
border: (
|
|
367
|
-
l: 0.75,
|
|
368
|
-
c: 0.18,
|
|
369
|
-
h: 22
|
|
370
|
-
)
|
|
291
|
+
text: #ff7879,
|
|
292
|
+
border: #ff7879,
|
|
293
|
+
fill: #ff8f8e,
|
|
294
|
+
on-fill: #3d1516
|
|
371
295
|
),
|
|
372
296
|
warning: (
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
),
|
|
378
|
-
border: (
|
|
379
|
-
l: 0.77,
|
|
380
|
-
c: 0.14,
|
|
381
|
-
h: 75
|
|
382
|
-
)
|
|
297
|
+
text: #e8a63d,
|
|
298
|
+
border: #e8a63d,
|
|
299
|
+
fill: #faba5b,
|
|
300
|
+
on-fill: #322004
|
|
383
301
|
),
|
|
384
302
|
success: (
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
),
|
|
390
|
-
border: (
|
|
391
|
-
l: 0.75,
|
|
392
|
-
c: 0.14,
|
|
393
|
-
h: 165
|
|
394
|
-
)
|
|
303
|
+
text: #3cc998,
|
|
304
|
+
border: #3cc998,
|
|
305
|
+
fill: #5edcab,
|
|
306
|
+
on-fill: #062b1e
|
|
395
307
|
),
|
|
396
308
|
info: (
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
),
|
|
402
|
-
border: (
|
|
403
|
-
l: 0.75,
|
|
404
|
-
c: 0.16,
|
|
405
|
-
h: 258
|
|
406
|
-
)
|
|
309
|
+
text: #6baeff,
|
|
310
|
+
border: #6baeff,
|
|
311
|
+
fill: #81c2ff,
|
|
312
|
+
on-fill: #12243f
|
|
407
313
|
)
|
|
408
314
|
)
|
|
409
315
|
);
|
|
@@ -430,7 +336,14 @@ $dark-theme: map.deep-merge($dark-theme-defaults, $dark-theme-overrides);
|
|
|
430
336
|
|
|
431
337
|
@mixin emit-declarations($tokens) {
|
|
432
338
|
@each $name, $value in $tokens {
|
|
433
|
-
|
|
339
|
+
@if string.slice($name, 1, 2) == "--" and meta.type-of($value) == color {
|
|
340
|
+
$high-contrast-name: --hc-#{string.slice($name, 3)};
|
|
341
|
+
|
|
342
|
+
// Цвет остаётся fallback, а одноимённый --hc-* можно включить runtime-режимом контрастности.
|
|
343
|
+
#{$name}: var(#{$high-contrast-name}, #{meta.inspect($value)});
|
|
344
|
+
} @else {
|
|
345
|
+
#{$name}: #{meta.inspect($value)};
|
|
346
|
+
}
|
|
434
347
|
}
|
|
435
348
|
}
|
|
436
349
|
|