@omnitron-dev/prism 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +216 -2
- package/THIRD-PARTY-NOTICES.txt +26 -0
- package/dist/accessibility/index.js +2 -0
- package/dist/accessibility/index.js.map +1 -1
- package/dist/auth/index.d.ts +4 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +4 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/blocks/auth-block/guards.d.ts +3 -2
- package/dist/blocks/auth-block/guards.d.ts.map +1 -1
- package/dist/blocks/dashboard-block/dashboard-block.d.ts.map +1 -1
- package/dist/blocks/dashboard-block/types.d.ts +4 -2
- package/dist/blocks/dashboard-block/types.d.ts.map +1 -1
- package/dist/blocks/dashboard-block/use-dashboard-block.d.ts +2 -2
- package/dist/blocks/dashboard-block/use-dashboard-block.d.ts.map +1 -1
- package/dist/blocks/data-grid-block/data-grid-block.d.ts.map +1 -1
- package/dist/blocks/data-grid-block/types.d.ts +3 -0
- package/dist/blocks/data-grid-block/types.d.ts.map +1 -1
- package/dist/blocks/index.js +80 -253
- package/dist/blocks/index.js.map +1 -1
- package/dist/chunk-2AB7VGPW.js +447 -0
- package/dist/chunk-2AB7VGPW.js.map +1 -0
- package/dist/{chunk-WFD54GQQ.js → chunk-2E67PQ4T.js} +14 -573
- package/dist/chunk-2E67PQ4T.js.map +1 -0
- package/dist/chunk-2KG2NI73.js +84 -0
- package/dist/chunk-2KG2NI73.js.map +1 -0
- package/dist/chunk-2UYRW6X3.js +44 -0
- package/dist/chunk-2UYRW6X3.js.map +1 -0
- package/dist/chunk-36C5H56C.js +208 -0
- package/dist/chunk-36C5H56C.js.map +1 -0
- package/dist/chunk-36FOXX25.js +73 -0
- package/dist/chunk-36FOXX25.js.map +1 -0
- package/dist/chunk-3VSM7NZG.js +562 -0
- package/dist/chunk-3VSM7NZG.js.map +1 -0
- package/dist/chunk-4B2LTPK2.js +826 -0
- package/dist/chunk-4B2LTPK2.js.map +1 -0
- package/dist/chunk-4HUGZJKU.js +108 -0
- package/dist/chunk-4HUGZJKU.js.map +1 -0
- package/dist/chunk-4Q5L7LDG.js +74 -0
- package/dist/chunk-4Q5L7LDG.js.map +1 -0
- package/dist/{chunk-BRDWQVRT.js → chunk-4R7EZ7GQ.js} +3 -2
- package/dist/chunk-4R7EZ7GQ.js.map +1 -0
- package/dist/chunk-6IANOSMD.js +185 -0
- package/dist/chunk-6IANOSMD.js.map +1 -0
- package/dist/chunk-7ATBURW2.js +206 -0
- package/dist/chunk-7ATBURW2.js.map +1 -0
- package/dist/{chunk-6AHI4GSV.js → chunk-AATAOOSF.js} +4 -3
- package/dist/chunk-AATAOOSF.js.map +1 -0
- package/dist/chunk-AKLRKCYH.js +128 -0
- package/dist/chunk-AKLRKCYH.js.map +1 -0
- package/dist/chunk-CT46KJOR.js +133 -0
- package/dist/chunk-CT46KJOR.js.map +1 -0
- package/dist/{chunk-YQW43BDH.js → chunk-D4GFAJAZ.js} +1168 -6354
- package/dist/chunk-D4GFAJAZ.js.map +1 -0
- package/dist/chunk-D5J3KW6Q.js +106 -0
- package/dist/chunk-D5J3KW6Q.js.map +1 -0
- package/dist/chunk-DEPJRTVT.js +3 -0
- package/dist/{chunk-FU52GL2E.js.map → chunk-DEPJRTVT.js.map} +1 -1
- package/dist/{chunk-S6SEGBX6.js → chunk-DHTYHUYI.js} +85 -107
- package/dist/chunk-DHTYHUYI.js.map +1 -0
- package/dist/chunk-E7WM2RXA.js +249 -0
- package/dist/chunk-E7WM2RXA.js.map +1 -0
- package/dist/chunk-F6RZ7LW6.js +1271 -0
- package/dist/chunk-F6RZ7LW6.js.map +1 -0
- package/dist/chunk-FOGY3HA4.js +217 -0
- package/dist/chunk-FOGY3HA4.js.map +1 -0
- package/dist/chunk-G2GANYMW.js +139 -0
- package/dist/chunk-G2GANYMW.js.map +1 -0
- package/dist/chunk-I6DILPFE.js +293 -0
- package/dist/chunk-I6DILPFE.js.map +1 -0
- package/dist/chunk-IRYU3NTG.js +573 -0
- package/dist/chunk-IRYU3NTG.js.map +1 -0
- package/dist/chunk-JTIUGPW5.js +284 -0
- package/dist/chunk-JTIUGPW5.js.map +1 -0
- package/dist/{chunk-GUFHFEPZ.js → chunk-JZBSPDED.js} +2 -2
- package/dist/{chunk-GUFHFEPZ.js.map → chunk-JZBSPDED.js.map} +1 -1
- package/dist/chunk-KPY7TA4D.js +191 -0
- package/dist/chunk-KPY7TA4D.js.map +1 -0
- package/dist/{chunk-OBJ244BO.js → chunk-LFWKGNCX.js} +50 -656
- package/dist/chunk-LFWKGNCX.js.map +1 -0
- package/dist/chunk-LH4ZZZYB.js +37 -0
- package/dist/chunk-LH4ZZZYB.js.map +1 -0
- package/dist/chunk-NFJ7CPG3.js +13 -0
- package/dist/chunk-NFJ7CPG3.js.map +1 -0
- package/dist/chunk-NFPOIHD4.js +3 -0
- package/dist/{chunk-AYYFMTMI.js.map → chunk-NFPOIHD4.js.map} +1 -1
- package/dist/{chunk-XIXSSI3B.js → chunk-NJM5AVBM.js} +3 -2
- package/dist/chunk-NJM5AVBM.js.map +1 -0
- package/dist/{chunk-Z5OSPAOC.js → chunk-NSNM53WI.js} +196 -175
- package/dist/chunk-NSNM53WI.js.map +1 -0
- package/dist/chunk-NTREGTG7.js +31 -0
- package/dist/chunk-NTREGTG7.js.map +1 -0
- package/dist/{chunk-ADG4HZEP.js → chunk-OKJA6SJM.js} +4 -4
- package/dist/chunk-OKJA6SJM.js.map +1 -0
- package/dist/chunk-Q6JDNFSG.js +303 -0
- package/dist/chunk-Q6JDNFSG.js.map +1 -0
- package/dist/chunk-RPOGINR5.js +115 -0
- package/dist/chunk-RPOGINR5.js.map +1 -0
- package/dist/{chunk-ZTATTUH7.js → chunk-RSWVYIXK.js} +282 -683
- package/dist/chunk-RSWVYIXK.js.map +1 -0
- package/dist/chunk-SSEHL5VP.js +110 -0
- package/dist/chunk-SSEHL5VP.js.map +1 -0
- package/dist/chunk-TEIGUOWN.js +523 -0
- package/dist/chunk-TEIGUOWN.js.map +1 -0
- package/dist/{chunk-AYYFMTMI.js → chunk-TJ7DHXUX.js} +2 -2
- package/dist/chunk-TJ7DHXUX.js.map +1 -0
- package/dist/chunk-TZHWYT34.js +590 -0
- package/dist/chunk-TZHWYT34.js.map +1 -0
- package/dist/chunk-TZWHELY4.js +45 -0
- package/dist/chunk-TZWHELY4.js.map +1 -0
- package/dist/{chunk-BZOL7GMU.js → chunk-UEINJFLS.js} +7 -7
- package/dist/chunk-UEINJFLS.js.map +1 -0
- package/dist/chunk-URFQX3I6.js +129 -0
- package/dist/chunk-URFQX3I6.js.map +1 -0
- package/dist/chunk-VG6FOMOH.js +187 -0
- package/dist/chunk-VG6FOMOH.js.map +1 -0
- package/dist/chunk-VQVVHMPG.js +106 -0
- package/dist/chunk-VQVVHMPG.js.map +1 -0
- package/dist/{chunk-DRFNMZLG.js → chunk-VUKOT432.js} +3 -2
- package/dist/chunk-VUKOT432.js.map +1 -0
- package/dist/chunk-WD4N72DL.js +315 -0
- package/dist/chunk-WD4N72DL.js.map +1 -0
- package/dist/chunk-XBYMG4QK.js +119 -0
- package/dist/chunk-XBYMG4QK.js.map +1 -0
- package/dist/chunk-YHM6GIHV.js +3 -0
- package/dist/chunk-YHM6GIHV.js.map +1 -0
- package/dist/{chunk-SNZK5X6F.js → chunk-Z2AN43YU.js} +4 -2
- package/dist/chunk-Z2AN43YU.js.map +1 -0
- package/dist/chunk-ZNWHMQRM.js +171 -0
- package/dist/chunk-ZNWHMQRM.js.map +1 -0
- package/dist/{chunk-YSIG2XYH.js → chunk-ZRJYQN6Y.js} +2 -2
- package/dist/{chunk-YSIG2XYH.js.map → chunk-ZRJYQN6Y.js.map} +1 -1
- package/dist/{chunk-AD4W7HYC.js → chunk-ZYI3MHLE.js} +3 -2
- package/dist/chunk-ZYI3MHLE.js.map +1 -0
- package/dist/cli/index.js +66 -423
- package/dist/cli/index.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts.map +1 -1
- package/dist/components/admin-filters/admin-data-table.d.ts +7 -1
- package/dist/components/admin-filters/admin-data-table.d.ts.map +1 -1
- package/dist/components/admin-filters/filter-toolbar.d.ts.map +1 -1
- package/dist/components/admin-filters/index.js +8 -0
- package/dist/components/admin-filters/index.js.map +1 -0
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/index.js +5 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/animate/index.js +5 -0
- package/dist/components/animate/index.js.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/components/breadcrumbs/index.js +4 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/card/index.js +4 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/chart/chart.d.ts.map +1 -1
- package/dist/components/chart/index.css +52 -0
- package/dist/components/chart/index.css.map +1 -0
- package/dist/components/chart/index.js +5 -0
- package/dist/components/chart/index.js.map +1 -0
- package/dist/components/chart/types.d.ts +3 -1
- package/dist/components/chart/types.d.ts.map +1 -1
- package/dist/components/chart/use-chart.d.ts.map +1 -1
- package/dist/components/command-palette/command-palette.d.ts +3 -1
- package/dist/components/command-palette/command-palette.d.ts.map +1 -1
- package/dist/components/command-palette/index.js +4 -0
- package/dist/components/command-palette/index.js.map +1 -0
- package/dist/components/confirm-dialog/index.js +4 -0
- package/dist/components/confirm-dialog/index.js.map +1 -0
- package/dist/components/date-input/date-input.d.ts +28 -0
- package/dist/components/date-input/date-input.d.ts.map +1 -0
- package/dist/components/date-input/index.d.ts +3 -0
- package/dist/components/date-input/index.d.ts.map +1 -0
- package/dist/components/date-input/value.d.ts +9 -0
- package/dist/components/date-input/value.d.ts.map +1 -0
- package/dist/components/doc-layout/doc-sidebar.d.ts +4 -1
- package/dist/components/doc-layout/doc-sidebar.d.ts.map +1 -1
- package/dist/components/doc-layout/index.js +7 -0
- package/dist/components/doc-layout/index.js.map +1 -0
- package/dist/components/editor/editor.d.ts.map +1 -1
- package/dist/components/editor/icons/index.d.ts +32 -40
- package/dist/components/editor/icons/index.d.ts.map +1 -1
- package/dist/components/editor/index.js +4 -1
- package/dist/components/editor/index.js.map +1 -1
- package/dist/components/emoji-picker/index.js +2 -1
- package/dist/components/emoji-picker/index.js.map +1 -1
- package/dist/components/empty-content/empty-content.d.ts.map +1 -1
- package/dist/components/empty-content/index.js +4 -0
- package/dist/components/empty-content/index.js.map +1 -0
- package/dist/components/error-boundary/error-boundary.d.ts.map +1 -1
- package/dist/components/error-boundary/index.js +6 -0
- package/dist/components/error-boundary/index.js.map +1 -0
- package/dist/components/index.css +17 -10
- package/dist/components/index.css.map +1 -1
- package/dist/components/index.d.ts +5 -4
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +47 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/knowledge-graph/edge-labels.d.ts +14 -0
- package/dist/components/knowledge-graph/edge-labels.d.ts.map +1 -0
- package/dist/components/knowledge-graph/graph.d.ts +56 -0
- package/dist/components/knowledge-graph/graph.d.ts.map +1 -0
- package/dist/components/knowledge-graph/index.css +176 -0
- package/dist/components/knowledge-graph/index.css.map +1 -0
- package/dist/components/knowledge-graph/index.d.ts +3 -0
- package/dist/components/knowledge-graph/index.d.ts.map +1 -0
- package/dist/components/knowledge-graph/index.js +797 -0
- package/dist/components/knowledge-graph/index.js.map +1 -0
- package/dist/components/knowledge-graph/label-layout.d.ts +28 -0
- package/dist/components/knowledge-graph/label-layout.d.ts.map +1 -0
- package/dist/components/knowledge-graph/label-store.d.ts +15 -0
- package/dist/components/knowledge-graph/label-store.d.ts.map +1 -0
- package/dist/components/knowledge-graph/model.d.ts +92 -0
- package/dist/components/knowledge-graph/model.d.ts.map +1 -0
- package/dist/components/label/index.js +5 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.d.ts.map +1 -1
- package/dist/components/lightbox/lightbox.d.ts.map +1 -1
- package/dist/components/loading-screen/index.js +4 -0
- package/dist/components/loading-screen/index.js.map +1 -0
- package/dist/components/map/Map.d.ts +19 -43
- package/dist/components/map/Map.d.ts.map +1 -1
- package/dist/components/map/MapCoverageLayer.d.ts +1 -1
- package/dist/components/map/MapCoverageLayer.d.ts.map +1 -1
- package/dist/components/map/MapMarker.d.ts +1 -1
- package/dist/components/map/MapMarker.d.ts.map +1 -1
- package/dist/components/map/MapPlaceSearch.d.ts +33 -0
- package/dist/components/map/MapPlaceSearch.d.ts.map +1 -0
- package/dist/components/map/MapPointPicker.d.ts +21 -12
- package/dist/components/map/MapPointPicker.d.ts.map +1 -1
- package/dist/components/map/coordinates.d.ts +10 -0
- package/dist/components/map/coordinates.d.ts.map +1 -0
- package/dist/components/map/index.css +4 -0
- package/dist/components/map/index.css.map +1 -0
- package/dist/components/map/index.d.ts +7 -2
- package/dist/components/map/index.d.ts.map +1 -1
- package/dist/components/map/index.js +4 -0
- package/dist/components/map/index.js.map +1 -0
- package/dist/components/nav-card/nav-card.d.ts.map +1 -1
- package/dist/components/navigation-progress/index.js +4 -0
- package/dist/components/navigation-progress/index.js.map +1 -0
- package/dist/components/page-content/index.js +4 -0
- package/dist/components/page-content/index.js.map +1 -0
- package/dist/components/popover/index.js +4 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/rail/rail.d.ts.map +1 -1
- package/dist/components/research/diagram-image.d.ts +11 -0
- package/dist/components/research/diagram-image.d.ts.map +1 -0
- package/dist/components/research/diagram.d.ts +8 -0
- package/dist/components/research/diagram.d.ts.map +1 -0
- package/dist/components/research/document.d.ts +33 -0
- package/dist/components/research/document.d.ts.map +1 -0
- package/dist/components/research/frontmatter.d.ts +15 -0
- package/dist/components/research/frontmatter.d.ts.map +1 -0
- package/dist/components/research/index.css +51 -0
- package/dist/components/research/index.css.map +1 -0
- package/dist/components/research/index.d.ts +3 -0
- package/dist/components/research/index.d.ts.map +1 -0
- package/dist/components/research/index.js +8 -0
- package/dist/components/research/index.js.map +1 -0
- package/dist/components/research/parse.d.ts +29 -0
- package/dist/components/research/parse.d.ts.map +1 -0
- package/dist/components/research-editor/block-commands.d.ts +20 -0
- package/dist/components/research-editor/block-commands.d.ts.map +1 -0
- package/dist/components/research-editor/block-controls.d.ts +13 -0
- package/dist/components/research-editor/block-controls.d.ts.map +1 -0
- package/dist/components/research-editor/editor.d.ts +75 -0
- package/dist/components/research-editor/editor.d.ts.map +1 -0
- package/dist/components/research-editor/extensions.d.ts +14 -0
- package/dist/components/research-editor/extensions.d.ts.map +1 -0
- package/dist/components/research-editor/index.css +332 -0
- package/dist/components/research-editor/index.css.map +1 -0
- package/dist/components/research-editor/index.d.ts +5 -0
- package/dist/components/research-editor/index.d.ts.map +1 -0
- package/dist/components/research-editor/index.js +1593 -0
- package/dist/components/research-editor/index.js.map +1 -0
- package/dist/components/research-editor/math-input.d.ts +32 -0
- package/dist/components/research-editor/math-input.d.ts.map +1 -0
- package/dist/components/research-editor/math-markup.d.ts +4 -0
- package/dist/components/research-editor/math-markup.d.ts.map +1 -0
- package/dist/components/research-editor/math-navigation.d.ts +6 -0
- package/dist/components/research-editor/math-navigation.d.ts.map +1 -0
- package/dist/components/research-editor/math-node.d.ts +11 -0
- package/dist/components/research-editor/math-node.d.ts.map +1 -0
- package/dist/components/research-editor/source.d.ts +19 -0
- package/dist/components/research-editor/source.d.ts.map +1 -0
- package/dist/components/scroll-to-top/index.js +4 -0
- package/dist/components/scroll-to-top/index.js.map +1 -0
- package/dist/components/scrollbar/scrollbar.d.ts +4 -2
- package/dist/components/scrollbar/scrollbar.d.ts.map +1 -1
- package/dist/components/search-input/index.js +7 -0
- package/dist/components/search-input/index.js.map +1 -0
- package/dist/components/search-input/search-input.d.ts +3 -11
- package/dist/components/search-input/search-input.d.ts.map +1 -1
- package/dist/components/skeleton/index.js +4 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/snackbar/index.js +6 -0
- package/dist/components/snackbar/index.js.map +1 -0
- package/dist/components/stepper/index.js +4 -0
- package/dist/components/stepper/index.js.map +1 -0
- package/dist/components/table/index.d.ts +1 -0
- package/dist/components/table/index.d.ts.map +1 -1
- package/dist/components/table/index.js +5 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table-viewport.d.ts +13 -0
- package/dist/components/table/table-viewport.d.ts.map +1 -0
- package/dist/components/table/table.d.ts +3 -1
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/tabs/index.js +6 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.d.ts +12 -1
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tiptap-renderer/tiptap-renderer.d.ts +4 -3
- package/dist/components/tiptap-renderer/tiptap-renderer.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12 -6
- package/dist/core/index.js.map +1 -1
- package/dist/core/provider.d.ts +7 -2
- package/dist/core/provider.d.ts.map +1 -1
- package/dist/forms/index.js +2 -0
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/schema-provider.d.ts +3 -3
- package/dist/forms/schema-utils.d.ts +3 -3
- package/dist/hooks/index.js +14 -8
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-config-from-query.d.ts +2 -0
- package/dist/hooks/use-config-from-query.d.ts.map +1 -1
- package/dist/hooks/use-image-dimensions.d.ts.map +1 -1
- package/dist/hooks/use-keyboard-shortcut.d.ts.map +1 -1
- package/dist/hooks/use-scroll-position.d.ts.map +1 -1
- package/dist/hooks/use-window-size.d.ts.map +1 -1
- package/dist/icons/context.d.ts +17 -0
- package/dist/icons/context.d.ts.map +1 -0
- package/dist/icons/controls.d.ts +51 -0
- package/dist/icons/controls.d.ts.map +1 -0
- package/dist/icons/index.d.ts +3 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +5 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/icons/theme.d.ts +4 -0
- package/dist/icons/theme.d.ts.map +1 -0
- package/dist/index.css +17 -10
- package/dist/index.css.map +1 -1
- package/dist/index.js +57 -20
- package/dist/index.js.map +1 -1
- package/dist/internal/research-parser.js +3 -0
- package/dist/internal/research-parser.js.map +1 -0
- package/dist/layouts/core/header-section.d.ts +1 -0
- package/dist/layouts/core/header-section.d.ts.map +1 -1
- package/dist/layouts/dashboard/labels.d.ts +12 -0
- package/dist/layouts/dashboard/labels.d.ts.map +1 -0
- package/dist/layouts/dashboard/layout.d.ts +9 -1
- package/dist/layouts/dashboard/layout.d.ts.map +1 -1
- package/dist/layouts/dashboard/sidenav.d.ts +7 -3
- package/dist/layouts/dashboard/sidenav.d.ts.map +1 -1
- package/dist/layouts/index.d.ts +5 -0
- package/dist/layouts/index.d.ts.map +1 -1
- package/dist/layouts/index.js +9 -3
- package/dist/layouts/index.js.map +1 -1
- package/dist/layouts/panel-layout.d.ts +35 -0
- package/dist/layouts/panel-layout.d.ts.map +1 -0
- package/dist/layouts/sidebar-toggle.d.ts +11 -0
- package/dist/layouts/sidebar-toggle.d.ts.map +1 -0
- package/dist/netron/index.js +2 -1
- package/dist/netron/index.js.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/state/create-store.d.ts.map +1 -1
- package/dist/state/index.js +3 -2
- package/dist/state/index.js.map +1 -1
- package/dist/state/settings-version.d.ts.map +1 -1
- package/dist/state/stores/auth.d.ts +4 -16
- package/dist/state/stores/auth.d.ts.map +1 -1
- package/dist/state/stores/ui.d.ts +7 -105
- package/dist/state/stores/ui.d.ts.map +1 -1
- package/dist/theme/components/Button.d.ts.map +1 -1
- package/dist/theme/components/Chip.d.ts.map +1 -1
- package/dist/theme/components/Dialog.d.ts.map +1 -1
- package/dist/theme/components/FormControls.d.ts +3 -12
- package/dist/theme/components/FormControls.d.ts.map +1 -1
- package/dist/theme/components/TextField.d.ts.map +1 -1
- package/dist/theme/components/index.d.ts.map +1 -1
- package/dist/theme/components/theme-utils.d.ts +2 -2
- package/dist/theme/components/theme-utils.d.ts.map +1 -1
- package/dist/theme/create-theme.d.ts +5 -17
- package/dist/theme/create-theme.d.ts.map +1 -1
- package/dist/theme/index.js +8 -2
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/mixins.d.ts +3 -1
- package/dist/theme/mixins.d.ts.map +1 -1
- package/dist/theme/palette/overrides.d.ts +24 -0
- package/dist/theme/palette/overrides.d.ts.map +1 -0
- package/dist/theme/semantic-surface.d.ts +8 -0
- package/dist/theme/semantic-surface.d.ts.map +1 -0
- package/dist/types/index.js +2 -2
- package/dist/ui/index.d.ts +18 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +149 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/utils/async-lock.d.ts.map +1 -1
- package/package.json +200 -47
- package/dist/chunk-6AHI4GSV.js.map +0 -1
- package/dist/chunk-AD4W7HYC.js.map +0 -1
- package/dist/chunk-ADG4HZEP.js.map +0 -1
- package/dist/chunk-BRDWQVRT.js.map +0 -1
- package/dist/chunk-BZOL7GMU.js.map +0 -1
- package/dist/chunk-DRFNMZLG.js.map +0 -1
- package/dist/chunk-FU52GL2E.js +0 -3
- package/dist/chunk-OBJ244BO.js.map +0 -1
- package/dist/chunk-S6SEGBX6.js.map +0 -1
- package/dist/chunk-SNZK5X6F.js.map +0 -1
- package/dist/chunk-WFD54GQQ.js.map +0 -1
- package/dist/chunk-XIXSSI3B.js.map +0 -1
- package/dist/chunk-YQW43BDH.js.map +0 -1
- package/dist/chunk-Z5OSPAOC.js.map +0 -1
- package/dist/chunk-ZTATTUH7.js.map +0 -1
|
@@ -0,0 +1,447 @@
|
|
|
1
|
+
import { createClasses } from './chunk-LH4ZZZYB.js';
|
|
2
|
+
import { lazy, useState, useEffect, Suspense } from 'react';
|
|
3
|
+
import { styled, useTheme } from '@mui/material/styles';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import Box from '@mui/material/Box';
|
|
6
|
+
import Skeleton from '@mui/material/Skeleton';
|
|
7
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
|
+
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
9
|
+
|
|
10
|
+
function cn(...inputs) {
|
|
11
|
+
return clsx(inputs);
|
|
12
|
+
}
|
|
13
|
+
function mergeClasses(className, state) {
|
|
14
|
+
const classList = className ? Array.isArray(className) ? className.filter(Boolean) : [className] : [];
|
|
15
|
+
if (!state) {
|
|
16
|
+
return classList.join(" ");
|
|
17
|
+
}
|
|
18
|
+
const stateClasses = Object.entries(state).filter(([, value]) => value !== void 0 && value !== false).map(([key, value]) => {
|
|
19
|
+
if (Array.isArray(value)) {
|
|
20
|
+
return value[0] ? value[1] : "";
|
|
21
|
+
}
|
|
22
|
+
return value ? key : "";
|
|
23
|
+
}).filter(Boolean);
|
|
24
|
+
return [...classList, ...stateClasses].join(" ");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/components/chart/classes.ts
|
|
28
|
+
var chartClasses = {
|
|
29
|
+
root: createClasses("chart__root"),
|
|
30
|
+
loading: createClasses("chart__loading"),
|
|
31
|
+
legends: {
|
|
32
|
+
root: createClasses("chart__legends__root"),
|
|
33
|
+
item: {
|
|
34
|
+
wrap: createClasses("chart__legends__item__wrap"),
|
|
35
|
+
root: createClasses("chart__legends__item__root"),
|
|
36
|
+
dot: createClasses("chart__legends__item__dot"),
|
|
37
|
+
icon: createClasses("chart__legends__item__icon"),
|
|
38
|
+
label: createClasses("chart__legends__item__label"),
|
|
39
|
+
value: createClasses("chart__legends__item__value")
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
var CIRCULAR_TYPES = ["donut", "radialBar", "pie", "polarArea"];
|
|
44
|
+
function ChartLoading({ sx, className, type, ...other }) {
|
|
45
|
+
const isCircular = type && CIRCULAR_TYPES.includes(type);
|
|
46
|
+
return /* @__PURE__ */ jsx(
|
|
47
|
+
Box,
|
|
48
|
+
{
|
|
49
|
+
className: cn(chartClasses.loading, className),
|
|
50
|
+
sx: [
|
|
51
|
+
{
|
|
52
|
+
top: 0,
|
|
53
|
+
left: 0,
|
|
54
|
+
width: 1,
|
|
55
|
+
zIndex: 9,
|
|
56
|
+
height: 1,
|
|
57
|
+
p: "inherit",
|
|
58
|
+
overflow: "hidden",
|
|
59
|
+
alignItems: "center",
|
|
60
|
+
position: "absolute",
|
|
61
|
+
borderRadius: "inherit",
|
|
62
|
+
justifyContent: "center",
|
|
63
|
+
display: "flex"
|
|
64
|
+
},
|
|
65
|
+
...Array.isArray(sx) ? sx : [sx]
|
|
66
|
+
],
|
|
67
|
+
...other,
|
|
68
|
+
children: /* @__PURE__ */ jsx(
|
|
69
|
+
Skeleton,
|
|
70
|
+
{
|
|
71
|
+
variant: "circular",
|
|
72
|
+
sx: {
|
|
73
|
+
width: 1,
|
|
74
|
+
height: 1,
|
|
75
|
+
borderRadius: "inherit",
|
|
76
|
+
...isCircular && { borderRadius: "50%" }
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
function ChartLegends({
|
|
84
|
+
sx,
|
|
85
|
+
className,
|
|
86
|
+
slotProps,
|
|
87
|
+
icons = [],
|
|
88
|
+
values = [],
|
|
89
|
+
labels = [],
|
|
90
|
+
colors = [],
|
|
91
|
+
sublabels = [],
|
|
92
|
+
...other
|
|
93
|
+
}) {
|
|
94
|
+
return /* @__PURE__ */ jsx(ListRoot, { className: cn(chartClasses.legends.root, className), sx, ...other, children: labels.map((series, index) => /* @__PURE__ */ jsxs(
|
|
95
|
+
ItemWrap,
|
|
96
|
+
{
|
|
97
|
+
className: chartClasses.legends.item.wrap,
|
|
98
|
+
sx: [
|
|
99
|
+
{
|
|
100
|
+
"--icon-color": colors[index]
|
|
101
|
+
},
|
|
102
|
+
...Array.isArray(slotProps?.wrapper?.sx) ? slotProps.wrapper.sx : [slotProps?.wrapper?.sx]
|
|
103
|
+
],
|
|
104
|
+
...slotProps?.wrapper,
|
|
105
|
+
children: [
|
|
106
|
+
/* @__PURE__ */ jsxs(ItemRoot, { className: chartClasses.legends.item.root, ...slotProps?.root, children: [
|
|
107
|
+
icons.length ? /* @__PURE__ */ jsx(ItemIcon, { className: chartClasses.legends.item.icon, ...slotProps?.icon, children: icons[index] }) : /* @__PURE__ */ jsx(ItemDot, { className: chartClasses.legends.item.dot, ...slotProps?.dot }),
|
|
108
|
+
/* @__PURE__ */ jsxs(ItemLabel, { className: chartClasses.legends.item.label, ...slotProps?.label, children: [
|
|
109
|
+
series,
|
|
110
|
+
!!sublabels.length && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
111
|
+
" ",
|
|
112
|
+
` (${sublabels[index]})`
|
|
113
|
+
] })
|
|
114
|
+
] })
|
|
115
|
+
] }),
|
|
116
|
+
values.length > 0 && /* @__PURE__ */ jsx(ItemValue, { className: chartClasses.legends.item.value, ...slotProps?.value, children: values[index] })
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
series
|
|
120
|
+
)) });
|
|
121
|
+
}
|
|
122
|
+
var ListRoot = styled("ul")(({ theme }) => ({
|
|
123
|
+
display: "flex",
|
|
124
|
+
flexWrap: "wrap",
|
|
125
|
+
gap: theme.spacing(2),
|
|
126
|
+
margin: 0,
|
|
127
|
+
padding: 0,
|
|
128
|
+
listStyle: "none"
|
|
129
|
+
}));
|
|
130
|
+
var ItemWrap = styled("li")({
|
|
131
|
+
minWidth: 0,
|
|
132
|
+
maxWidth: "100%",
|
|
133
|
+
display: "inline-flex",
|
|
134
|
+
flexDirection: "column"
|
|
135
|
+
});
|
|
136
|
+
var ItemRoot = styled("div")(({ theme }) => ({
|
|
137
|
+
gap: 6,
|
|
138
|
+
alignItems: "center",
|
|
139
|
+
display: "inline-flex",
|
|
140
|
+
justifyContent: "flex-start",
|
|
141
|
+
fontSize: theme.typography.pxToRem(13),
|
|
142
|
+
fontWeight: theme.typography.fontWeightMedium
|
|
143
|
+
}));
|
|
144
|
+
var ItemIcon = styled("span")({
|
|
145
|
+
display: "inline-flex",
|
|
146
|
+
color: "var(--icon-color)",
|
|
147
|
+
"& > svg": {
|
|
148
|
+
width: 20,
|
|
149
|
+
height: 20
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
var ItemDot = styled("span")({
|
|
153
|
+
width: 12,
|
|
154
|
+
height: 12,
|
|
155
|
+
flexShrink: 0,
|
|
156
|
+
display: "flex",
|
|
157
|
+
borderRadius: "50%",
|
|
158
|
+
position: "relative",
|
|
159
|
+
alignItems: "center",
|
|
160
|
+
justifyContent: "center",
|
|
161
|
+
color: "var(--icon-color)",
|
|
162
|
+
backgroundColor: "currentColor"
|
|
163
|
+
});
|
|
164
|
+
var ItemLabel = styled("span")({
|
|
165
|
+
minWidth: 0,
|
|
166
|
+
overflowWrap: "anywhere"
|
|
167
|
+
});
|
|
168
|
+
var ItemValue = styled("span")(({ theme }) => ({
|
|
169
|
+
...theme.typography.h6,
|
|
170
|
+
marginTop: theme.spacing(1)
|
|
171
|
+
}));
|
|
172
|
+
var LazyApexChart = lazy(
|
|
173
|
+
() => import('react-apexcharts').then((module) => ({
|
|
174
|
+
default: module.default
|
|
175
|
+
}))
|
|
176
|
+
);
|
|
177
|
+
function Chart({
|
|
178
|
+
type,
|
|
179
|
+
series,
|
|
180
|
+
options,
|
|
181
|
+
width = "100%",
|
|
182
|
+
height = "100%",
|
|
183
|
+
slotProps,
|
|
184
|
+
className,
|
|
185
|
+
sx,
|
|
186
|
+
...other
|
|
187
|
+
}) {
|
|
188
|
+
const [isClient, setIsClient] = useState(false);
|
|
189
|
+
useEffect(() => {
|
|
190
|
+
setIsClient(true);
|
|
191
|
+
}, []);
|
|
192
|
+
const renderFallback = () => /* @__PURE__ */ jsx(ChartLoading, { type, sx: slotProps?.loading });
|
|
193
|
+
return /* @__PURE__ */ jsx(
|
|
194
|
+
ChartRoot,
|
|
195
|
+
{
|
|
196
|
+
dir: "ltr",
|
|
197
|
+
className: cn(chartClasses.root, className),
|
|
198
|
+
sx: [{ minHeight: typeof height === "number" ? height : void 0 }, ...Array.isArray(sx) ? sx : [sx]],
|
|
199
|
+
...other,
|
|
200
|
+
children: isClient ? /* @__PURE__ */ jsx(Suspense, { fallback: renderFallback(), children: /* @__PURE__ */ jsx(LazyApexChart, { type, series, options, width, height }) }) : renderFallback()
|
|
201
|
+
}
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
var ChartRoot = styled("div")(({ theme }) => ({
|
|
205
|
+
"--prism-chart-text": theme.vars?.palette.text.primary ?? theme.palette.text.primary,
|
|
206
|
+
"--prism-chart-muted": theme.vars?.palette.text.secondary ?? theme.palette.text.secondary,
|
|
207
|
+
"--prism-chart-background": theme.vars?.palette.background.paper ?? theme.palette.background.paper,
|
|
208
|
+
"--prism-chart-neutral": theme.vars?.palette.background.default ?? theme.palette.background.default,
|
|
209
|
+
"--prism-chart-divider": theme.vars?.palette.divider ?? theme.palette.divider,
|
|
210
|
+
"--prism-chart-shadow": theme.shadows[8],
|
|
211
|
+
width: "100%",
|
|
212
|
+
minWidth: 0,
|
|
213
|
+
maxWidth: "100%",
|
|
214
|
+
flexShrink: 0,
|
|
215
|
+
position: "relative",
|
|
216
|
+
borderRadius: Number(theme.shape.borderRadius) * 1.5
|
|
217
|
+
}));
|
|
218
|
+
function useChart(updatedOptions) {
|
|
219
|
+
const theme = useTheme();
|
|
220
|
+
const reducedMotion = useMediaQuery("(prefers-reduced-motion: reduce)");
|
|
221
|
+
const baseOptions = baseChartOptions(theme) ?? {};
|
|
222
|
+
const options = deepMerge(baseOptions, updatedOptions ?? {});
|
|
223
|
+
if (reducedMotion) {
|
|
224
|
+
options.chart = { ...options.chart, animations: { ...options.chart?.animations, enabled: false } };
|
|
225
|
+
}
|
|
226
|
+
return options;
|
|
227
|
+
}
|
|
228
|
+
function baseChartOptions(theme) {
|
|
229
|
+
const vars = theme.vars?.palette;
|
|
230
|
+
const palette = theme.palette;
|
|
231
|
+
const LABEL_TOTAL = {
|
|
232
|
+
show: true,
|
|
233
|
+
label: "Total",
|
|
234
|
+
color: vars?.text.secondary ?? palette.text.secondary,
|
|
235
|
+
fontSize: theme.typography.subtitle2.fontSize,
|
|
236
|
+
fontWeight: theme.typography.subtitle2.fontWeight
|
|
237
|
+
};
|
|
238
|
+
const LABEL_VALUE = {
|
|
239
|
+
offsetY: 8,
|
|
240
|
+
color: vars?.text.primary ?? palette.text.primary,
|
|
241
|
+
fontSize: theme.typography.h4.fontSize,
|
|
242
|
+
fontWeight: theme.typography.h4.fontWeight
|
|
243
|
+
};
|
|
244
|
+
const greyChannel = getColorChannel(theme, "grey", "500");
|
|
245
|
+
const dividerColor = vars?.divider ?? palette.divider;
|
|
246
|
+
const paperColor = vars?.background.paper ?? palette.background.paper;
|
|
247
|
+
return {
|
|
248
|
+
theme: { mode: palette.mode },
|
|
249
|
+
// =========================================================================
|
|
250
|
+
// Chart
|
|
251
|
+
// https://apexcharts.com/docs/options/chart/animations/
|
|
252
|
+
// =========================================================================
|
|
253
|
+
chart: {
|
|
254
|
+
background: "transparent",
|
|
255
|
+
toolbar: { show: false },
|
|
256
|
+
zoom: { enabled: false },
|
|
257
|
+
parentHeightOffset: 0,
|
|
258
|
+
fontFamily: theme.typography.fontFamily,
|
|
259
|
+
foreColor: vars?.text.secondary ?? palette.text.secondary,
|
|
260
|
+
animations: {
|
|
261
|
+
enabled: true,
|
|
262
|
+
speed: 360,
|
|
263
|
+
animateGradually: { enabled: true, delay: 120 },
|
|
264
|
+
dynamicAnimation: { enabled: true, speed: 360 }
|
|
265
|
+
}
|
|
266
|
+
},
|
|
267
|
+
// =========================================================================
|
|
268
|
+
// Colors
|
|
269
|
+
// https://apexcharts.com/docs/options/colors/
|
|
270
|
+
// =========================================================================
|
|
271
|
+
colors: [
|
|
272
|
+
palette.primary.main,
|
|
273
|
+
palette.warning.main,
|
|
274
|
+
palette.info.main,
|
|
275
|
+
palette.error.main,
|
|
276
|
+
palette.success.main,
|
|
277
|
+
palette.warning.dark,
|
|
278
|
+
palette.success.dark,
|
|
279
|
+
palette.info.dark,
|
|
280
|
+
palette.primary.dark
|
|
281
|
+
],
|
|
282
|
+
// =========================================================================
|
|
283
|
+
// States
|
|
284
|
+
// https://apexcharts.com/docs/options/states/
|
|
285
|
+
// =========================================================================
|
|
286
|
+
states: {
|
|
287
|
+
hover: { filter: { type: "darken" } },
|
|
288
|
+
active: { filter: { type: "darken" } }
|
|
289
|
+
},
|
|
290
|
+
// =========================================================================
|
|
291
|
+
// Fill
|
|
292
|
+
// https://apexcharts.com/docs/options/fill/
|
|
293
|
+
// =========================================================================
|
|
294
|
+
fill: {
|
|
295
|
+
opacity: 1,
|
|
296
|
+
gradient: {
|
|
297
|
+
type: "vertical",
|
|
298
|
+
shadeIntensity: 0,
|
|
299
|
+
opacityFrom: 0.4,
|
|
300
|
+
opacityTo: 0,
|
|
301
|
+
stops: [0, 100]
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
// =========================================================================
|
|
305
|
+
// Data Labels
|
|
306
|
+
// https://apexcharts.com/docs/options/datalabels/
|
|
307
|
+
// =========================================================================
|
|
308
|
+
dataLabels: { enabled: false },
|
|
309
|
+
// =========================================================================
|
|
310
|
+
// Stroke
|
|
311
|
+
// https://apexcharts.com/docs/options/stroke/
|
|
312
|
+
// =========================================================================
|
|
313
|
+
stroke: { width: 2.5, curve: "smooth", lineCap: "round" },
|
|
314
|
+
// =========================================================================
|
|
315
|
+
// Grid
|
|
316
|
+
// https://apexcharts.com/docs/options/grid/
|
|
317
|
+
// =========================================================================
|
|
318
|
+
grid: {
|
|
319
|
+
strokeDashArray: 3,
|
|
320
|
+
borderColor: dividerColor,
|
|
321
|
+
padding: { top: 0, right: 0, bottom: 0 },
|
|
322
|
+
xaxis: { lines: { show: false } }
|
|
323
|
+
},
|
|
324
|
+
// =========================================================================
|
|
325
|
+
// Axis
|
|
326
|
+
// https://apexcharts.com/docs/options/xaxis/
|
|
327
|
+
// https://apexcharts.com/docs/options/yaxis/
|
|
328
|
+
// =========================================================================
|
|
329
|
+
xaxis: { axisBorder: { show: false }, axisTicks: { show: false } },
|
|
330
|
+
yaxis: { tickAmount: 5 },
|
|
331
|
+
// =========================================================================
|
|
332
|
+
// Markers
|
|
333
|
+
// https://apexcharts.com/docs/options/markers/
|
|
334
|
+
// =========================================================================
|
|
335
|
+
markers: {
|
|
336
|
+
size: 0,
|
|
337
|
+
strokeColors: paperColor
|
|
338
|
+
},
|
|
339
|
+
// =========================================================================
|
|
340
|
+
// Tooltip
|
|
341
|
+
// =========================================================================
|
|
342
|
+
tooltip: { theme: palette.mode, fillSeriesColor: false, x: { show: true } },
|
|
343
|
+
// =========================================================================
|
|
344
|
+
// Legend
|
|
345
|
+
// https://apexcharts.com/docs/options/legend/
|
|
346
|
+
// =========================================================================
|
|
347
|
+
legend: {
|
|
348
|
+
show: false,
|
|
349
|
+
position: "top",
|
|
350
|
+
fontWeight: 500,
|
|
351
|
+
fontSize: "13px",
|
|
352
|
+
horizontalAlign: "right",
|
|
353
|
+
markers: { shape: "circle" },
|
|
354
|
+
labels: { colors: vars?.text.primary ?? palette.text.primary },
|
|
355
|
+
itemMargin: { horizontal: 8, vertical: 8 }
|
|
356
|
+
},
|
|
357
|
+
// =========================================================================
|
|
358
|
+
// Plot Options
|
|
359
|
+
// =========================================================================
|
|
360
|
+
plotOptions: {
|
|
361
|
+
// Bar charts
|
|
362
|
+
// https://apexcharts.com/docs/options/plotoptions/bar/
|
|
363
|
+
bar: { borderRadius: 4, columnWidth: "48%", borderRadiusApplication: "end" },
|
|
364
|
+
// Pie & Donut charts
|
|
365
|
+
// https://apexcharts.com/docs/options/plotoptions/pie/
|
|
366
|
+
pie: {
|
|
367
|
+
donut: {
|
|
368
|
+
labels: {
|
|
369
|
+
show: true,
|
|
370
|
+
value: { ...LABEL_VALUE },
|
|
371
|
+
total: { ...LABEL_TOTAL }
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
// RadialBar charts
|
|
376
|
+
// https://apexcharts.com/docs/options/plotoptions/radialbar/
|
|
377
|
+
radialBar: {
|
|
378
|
+
hollow: { margin: -8, size: "100%" },
|
|
379
|
+
track: {
|
|
380
|
+
margin: -8,
|
|
381
|
+
strokeWidth: "50%",
|
|
382
|
+
background: `rgba(${greyChannel} / 0.16)`
|
|
383
|
+
},
|
|
384
|
+
dataLabels: { value: { ...LABEL_VALUE }, total: { ...LABEL_TOTAL } }
|
|
385
|
+
},
|
|
386
|
+
// Radar charts
|
|
387
|
+
// https://apexcharts.com/docs/options/plotoptions/radar/
|
|
388
|
+
radar: {
|
|
389
|
+
polygons: {
|
|
390
|
+
fill: { colors: ["transparent"] },
|
|
391
|
+
strokeColors: dividerColor,
|
|
392
|
+
connectorColors: dividerColor
|
|
393
|
+
}
|
|
394
|
+
},
|
|
395
|
+
// Polar Area charts
|
|
396
|
+
// https://apexcharts.com/docs/options/plotoptions/polararea/
|
|
397
|
+
polarArea: {
|
|
398
|
+
rings: { strokeColor: dividerColor },
|
|
399
|
+
spokes: { connectorColors: dividerColor }
|
|
400
|
+
},
|
|
401
|
+
// Heatmap charts
|
|
402
|
+
// https://apexcharts.com/docs/options/plotoptions/heatmap/
|
|
403
|
+
heatmap: { distributed: true }
|
|
404
|
+
},
|
|
405
|
+
// =========================================================================
|
|
406
|
+
// Responsive
|
|
407
|
+
// https://apexcharts.com/docs/options/responsive/
|
|
408
|
+
// =========================================================================
|
|
409
|
+
responsive: [
|
|
410
|
+
{
|
|
411
|
+
breakpoint: theme.breakpoints.values.sm,
|
|
412
|
+
options: { plotOptions: { bar: { borderRadius: 3, columnWidth: "80%" } } }
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
breakpoint: theme.breakpoints.values.md,
|
|
416
|
+
options: { plotOptions: { bar: { columnWidth: "60%" } } }
|
|
417
|
+
}
|
|
418
|
+
]
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
function getColorChannel(theme, color, shade) {
|
|
422
|
+
const channelKey = `${shade}Channel` ;
|
|
423
|
+
const vars = theme.vars?.palette[color];
|
|
424
|
+
const fallbacks = {
|
|
425
|
+
"500Channel": "145 158 171",
|
|
426
|
+
"900Channel": "0 0 0",
|
|
427
|
+
mainChannel: "51 133 240"
|
|
428
|
+
};
|
|
429
|
+
return vars?.[channelKey] ?? fallbacks[channelKey] ?? "145 158 171";
|
|
430
|
+
}
|
|
431
|
+
function deepMerge(target, source) {
|
|
432
|
+
const output = { ...target };
|
|
433
|
+
for (const key of Object.keys(source)) {
|
|
434
|
+
const sourceValue = source[key];
|
|
435
|
+
const targetValue = target[key];
|
|
436
|
+
if (sourceValue !== null && typeof sourceValue === "object" && !Array.isArray(sourceValue) && targetValue !== null && typeof targetValue === "object" && !Array.isArray(targetValue)) {
|
|
437
|
+
output[key] = deepMerge(targetValue, sourceValue);
|
|
438
|
+
} else if (sourceValue !== void 0) {
|
|
439
|
+
output[key] = sourceValue;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
return output;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
export { Chart, ChartLegends, ChartLoading, chartClasses, cn, mergeClasses, useChart };
|
|
446
|
+
//# sourceMappingURL=chunk-2AB7VGPW.js.map
|
|
447
|
+
//# sourceMappingURL=chunk-2AB7VGPW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts","../src/components/chart/classes.ts","../src/components/chart/components/chart-loading.tsx","../src/components/chart/components/chart-legends.tsx","../src/components/chart/chart.tsx","../src/components/chart/use-chart.ts"],"names":["jsx","styled"],"mappings":"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","file":"chunk-2AB7VGPW.js","sourcesContent":["/**\n * Class Name Utility\n *\n * Combines clsx for conditional classes with optional Tailwind merge.\n * Inspired by shadcn/ui's cn() utility and minimal-shared's mergeClasses.\n *\n * @module utils/cn\n */\n\nimport { clsx, type ClassValue } from 'clsx';\n\n/**\n * Combines class names using clsx.\n *\n * This is a simplified version without tailwind-merge since Prism\n * primarily uses MUI's sx prop for styling. For Tailwind projects,\n * consider adding tailwind-merge.\n *\n * @example\n * ```tsx\n * // Basic usage\n * cn('px-4 py-2', 'bg-blue-500')\n *\n * // Conditional classes\n * cn('base-class', isActive && 'active', isDisabled && 'disabled')\n *\n * // With objects\n * cn('base', { active: isActive, disabled: isDisabled })\n *\n * // With arrays\n * cn(['class1', 'class2'], condition && 'class3')\n * ```\n */\nexport function cn(...inputs: ClassValue[]): string {\n return clsx(inputs);\n}\n\n/**\n * Type for class value inputs.\n * Re-exported for convenience.\n */\nexport type { ClassValue };\n\n// =============================================================================\n// STATE-BASED CLASS MERGING (minimal-shared pattern)\n// =============================================================================\n\n/**\n * State props for mergeClasses.\n * Values can be:\n * - boolean: includes key as class name if true\n * - undefined: excluded\n * - [boolean, string]: includes string as class name if boolean is true\n */\nexport type StateProps = {\n [key: string]: boolean | undefined | [boolean, string];\n};\n\n/**\n * Merges class names with state-based class names.\n *\n * This utility provides an alternative API for state-based class toggling,\n * particularly useful when class names differ from state keys.\n *\n * @param className - Base class name(s)\n * @param state - State object with boolean or [boolean, className] values\n * @returns Merged class names string\n *\n * @example\n * ```tsx\n * // Basic state-based merging\n * mergeClasses('item', {\n * 'item--active': isActive,\n * 'item--disabled': isDisabled,\n * });\n * // Output: 'item item--active' (if isActive is true)\n *\n * // With tuple format for different class names\n * mergeClasses('btn', {\n * primary: [isPrimary, 'btn-primary'],\n * secondary: [isSecondary, 'btn-secondary'],\n * });\n *\n * // With array of base classes\n * mergeClasses(['nav', 'nav--main'], {\n * 'nav--open': isOpen,\n * });\n * ```\n */\nexport function mergeClasses(className?: string | (string | undefined)[] | null, state?: StateProps): string {\n const classList = className ? (Array.isArray(className) ? className.filter(Boolean) : [className]) : [];\n\n if (!state) {\n return classList.join(' ');\n }\n\n const stateClasses = Object.entries(state)\n .filter(([, value]) => value !== undefined && value !== false)\n .map(([key, value]) => {\n if (Array.isArray(value)) {\n return value[0] ? value[1] : '';\n }\n return value ? key : '';\n })\n .filter(Boolean);\n\n return [...classList, ...stateClasses].join(' ');\n}\n","/**\n * Chart Component CSS Classes\n *\n * @module components/chart\n */\n\nimport { createClasses } from '../../utils/create-classes.js';\n\n// =============================================================================\n// CHART CLASSES\n// =============================================================================\n\n/**\n * CSS class names for the Chart component.\n */\nexport const chartClasses = {\n root: createClasses('chart__root'),\n loading: createClasses('chart__loading'),\n legends: {\n root: createClasses('chart__legends__root'),\n item: {\n wrap: createClasses('chart__legends__item__wrap'),\n root: createClasses('chart__legends__item__root'),\n dot: createClasses('chart__legends__item__dot'),\n icon: createClasses('chart__legends__item__icon'),\n label: createClasses('chart__legends__item__label'),\n value: createClasses('chart__legends__item__value'),\n },\n },\n};\n","'use client';\n\n/**\n * Chart Loading Component\n *\n * Skeleton placeholder shown while chart is loading.\n *\n * @module components/chart\n */\n\nimport type { ChartLoadingProps, ChartType } from '../types.js';\n\nimport Box from '@mui/material/Box';\nimport Skeleton from '@mui/material/Skeleton';\n\nimport { cn } from '../../../utils/cn.js';\nimport { chartClasses } from '../classes.js';\n\n// =============================================================================\n// CIRCULAR CHART TYPES\n// =============================================================================\n\nconst CIRCULAR_TYPES: ChartType[] = ['donut', 'radialBar', 'pie', 'polarArea'];\n\n// =============================================================================\n// CHART LOADING\n// =============================================================================\n\n/**\n * Loading skeleton for charts.\n *\n * Displays a skeleton placeholder with shape appropriate for the chart type.\n *\n * @example\n * ```tsx\n * <ChartLoading type=\"pie\" />\n * <ChartLoading type=\"bar\" />\n * ```\n */\nexport function ChartLoading({ sx, className, type, ...other }: ChartLoadingProps) {\n const isCircular = type && CIRCULAR_TYPES.includes(type);\n\n return (\n <Box\n className={cn(chartClasses.loading, className)}\n sx={[\n {\n top: 0,\n left: 0,\n width: 1,\n zIndex: 9,\n height: 1,\n p: 'inherit',\n overflow: 'hidden',\n alignItems: 'center',\n position: 'absolute',\n borderRadius: 'inherit',\n justifyContent: 'center',\n display: 'flex',\n },\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n {...other}\n >\n <Skeleton\n variant=\"circular\"\n sx={{\n width: 1,\n height: 1,\n borderRadius: 'inherit',\n ...(isCircular && { borderRadius: '50%' }),\n }}\n />\n </Box>\n );\n}\n","'use client';\n\n/**\n * Chart Legends Component\n *\n * Custom legend display for charts.\n *\n * @module components/chart\n */\n\nimport type { ChartLegendsProps } from '../types.js';\n\nimport { styled } from '@mui/material/styles';\n\nimport { cn } from '../../../utils/cn.js';\nimport { chartClasses } from '../classes.js';\n\n// =============================================================================\n// CHART LEGENDS\n// =============================================================================\n\n/**\n * Custom chart legends component.\n *\n * Displays chart legends with support for colors, icons, values, and sublabels.\n *\n * @example\n * ```tsx\n * <ChartLegends\n * labels={['Series A', 'Series B']}\n * colors={['#ff0000', '#00ff00']}\n * values={['100', '200']}\n * />\n * ```\n */\nexport function ChartLegends({\n sx,\n className,\n slotProps,\n icons = [],\n values = [],\n labels = [],\n colors = [],\n sublabels = [],\n ...other\n}: ChartLegendsProps) {\n return (\n <ListRoot className={cn(chartClasses.legends.root, className)} sx={sx} {...other}>\n {labels.map((series, index) => (\n <ItemWrap\n key={series}\n className={chartClasses.legends.item.wrap}\n sx={[\n {\n '--icon-color': colors[index],\n },\n ...(Array.isArray(slotProps?.wrapper?.sx) ? slotProps.wrapper.sx : [slotProps?.wrapper?.sx]),\n ]}\n {...slotProps?.wrapper}\n >\n <ItemRoot className={chartClasses.legends.item.root} {...slotProps?.root}>\n {icons.length ? (\n <ItemIcon className={chartClasses.legends.item.icon} {...slotProps?.icon}>\n {icons[index]}\n </ItemIcon>\n ) : (\n <ItemDot className={chartClasses.legends.item.dot} {...slotProps?.dot} />\n )}\n\n <ItemLabel className={chartClasses.legends.item.label} {...slotProps?.label}>\n {series}\n {!!sublabels.length && <> {` (${sublabels[index]})`}</>}\n </ItemLabel>\n </ItemRoot>\n\n {values.length > 0 && (\n <ItemValue className={chartClasses.legends.item.value} {...slotProps?.value}>\n {values[index]}\n </ItemValue>\n )}\n </ItemWrap>\n ))}\n </ListRoot>\n );\n}\n\n// =============================================================================\n// STYLED COMPONENTS\n// =============================================================================\n\nconst ListRoot = styled('ul')(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n gap: theme.spacing(2),\n margin: 0,\n padding: 0,\n listStyle: 'none',\n}));\n\nconst ItemWrap = styled('li')({\n minWidth: 0,\n maxWidth: '100%',\n display: 'inline-flex',\n flexDirection: 'column',\n});\n\nconst ItemRoot = styled('div')(({ theme }) => ({\n gap: 6,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'flex-start',\n fontSize: theme.typography.pxToRem(13),\n fontWeight: theme.typography.fontWeightMedium,\n}));\n\nconst ItemIcon = styled('span')({\n display: 'inline-flex',\n color: 'var(--icon-color)',\n '& > svg': {\n width: 20,\n height: 20,\n },\n});\n\nconst ItemDot = styled('span')({\n width: 12,\n height: 12,\n flexShrink: 0,\n display: 'flex',\n borderRadius: '50%',\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'var(--icon-color)',\n backgroundColor: 'currentColor',\n});\n\nconst ItemLabel = styled('span')({\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n\nconst ItemValue = styled('span')(({ theme }) => ({\n ...theme.typography.h6,\n marginTop: theme.spacing(1),\n}));\n","'use client';\n\n/**\n * Chart Component\n *\n * Lazy-loaded ApexCharts wrapper with theme integration and SSR support.\n *\n * @module components/chart\n */\n\nimport type { ChartProps } from './types.js';\n\nimport { lazy, Suspense, useState, useEffect, type ComponentType } from 'react';\n\nimport { styled } from '@mui/material/styles';\n\nimport { cn } from '../../utils/cn.js';\nimport { chartClasses } from './classes.js';\nimport { ChartLoading } from './components/index.js';\n\n// =============================================================================\n// LAZY LOADED APEX CHARTS\n// =============================================================================\n\n/**\n * ApexChart component props (minimal type for lazy loading).\n */\ninterface ApexChartProps {\n type?: string;\n series?: unknown;\n options?: unknown;\n width?: string | number;\n height?: string | number;\n}\n\nconst LazyApexChart = lazy(() =>\n import('react-apexcharts').then((module) => ({\n default: module.default as ComponentType<ApexChartProps>,\n }))\n);\n\n// =============================================================================\n// CHART COMPONENT\n// =============================================================================\n\n/**\n * Theme-aware chart component using ApexCharts.\n *\n * Features:\n * - Lazy loading with Suspense\n * - SSR-safe (only renders on client)\n * - Theme-integrated styles\n * - Loading skeleton placeholder\n *\n * @example\n * ```tsx\n * import { Chart, useChart } from '@omnitron-dev/prism/components';\n *\n * function MyChart() {\n * const chartOptions = useChart({\n * xaxis: { categories: ['Jan', 'Feb', 'Mar'] },\n * });\n *\n * return (\n * <Chart\n * type=\"line\"\n * series={[{ name: 'Sales', data: [10, 20, 30] }]}\n * options={chartOptions}\n * height={320}\n * />\n * );\n * }\n * ```\n */\nexport function Chart({\n type,\n series,\n options,\n width = '100%',\n height = '100%',\n slotProps,\n className,\n sx,\n ...other\n}: ChartProps) {\n const [isClient, setIsClient] = useState(false);\n\n // SSR safety: only render chart on client\n useEffect(() => {\n setIsClient(true);\n }, []);\n\n const renderFallback = () => <ChartLoading type={type} sx={slotProps?.loading} />;\n\n return (\n <ChartRoot\n dir=\"ltr\"\n className={cn(chartClasses.root, className)}\n sx={[{ minHeight: typeof height === 'number' ? height : undefined }, ...(Array.isArray(sx) ? sx : [sx])]}\n {...other}\n >\n {isClient ? (\n <Suspense fallback={renderFallback()}>\n <LazyApexChart type={type} series={series} options={options} width={width} height={height} />\n </Suspense>\n ) : (\n renderFallback()\n )}\n </ChartRoot>\n );\n}\n\n// =============================================================================\n// STYLED COMPONENTS\n// =============================================================================\n\nconst ChartRoot = styled('div')(({ theme }) => ({\n '--prism-chart-text': theme.vars?.palette.text.primary ?? theme.palette.text.primary,\n '--prism-chart-muted': theme.vars?.palette.text.secondary ?? theme.palette.text.secondary,\n '--prism-chart-background': theme.vars?.palette.background.paper ?? theme.palette.background.paper,\n '--prism-chart-neutral': theme.vars?.palette.background.default ?? theme.palette.background.default,\n '--prism-chart-divider': theme.vars?.palette.divider ?? theme.palette.divider,\n '--prism-chart-shadow': theme.shadows[8],\n width: '100%',\n minWidth: 0,\n maxWidth: '100%',\n flexShrink: 0,\n position: 'relative',\n borderRadius: Number(theme.shape.borderRadius) * 1.5,\n}));\n","/**\n * useChart Hook\n *\n * Creates theme-aware ApexCharts options with sensible defaults.\n * Merges custom options with base theme-integrated options.\n *\n * @module components/chart\n */\n\nimport type { Theme } from '@mui/material/styles';\nimport type { ChartOptions } from './types.js';\n\nimport { useTheme } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\n\n// =============================================================================\n// USE CHART HOOK\n// =============================================================================\n\n/**\n * Create theme-aware chart options.\n *\n * @param updatedOptions - Custom options to merge with base options\n * @returns Merged chart options with theme integration\n *\n * @example\n * ```tsx\n * function MyChart() {\n * const chartOptions = useChart({\n * xaxis: { categories: ['Jan', 'Feb', 'Mar'] },\n * });\n *\n * return (\n * <Chart\n * type=\"line\"\n * series={[{ name: 'Sales', data: [10, 20, 30] }]}\n * options={chartOptions}\n * />\n * );\n * }\n * ```\n */\nexport function useChart(updatedOptions?: ChartOptions): ChartOptions {\n const theme = useTheme();\n const reducedMotion = useMediaQuery('(prefers-reduced-motion: reduce)');\n\n const baseOptions = baseChartOptions(theme) ?? {};\n\n const options = deepMerge(baseOptions, updatedOptions ?? {});\n if (reducedMotion) {\n options.chart = { ...options.chart, animations: { ...options.chart?.animations, enabled: false } };\n }\n return options;\n}\n\n// =============================================================================\n// BASE CHART OPTIONS\n// =============================================================================\n\n/**\n * Generate base chart options from theme.\n */\nfunction baseChartOptions(theme: Theme): ChartOptions {\n // Access CSS variables safely\n const vars = theme.vars?.palette;\n const palette = theme.palette;\n\n // Label styles for donut/radialBar charts\n const LABEL_TOTAL = {\n show: true,\n label: 'Total',\n color: vars?.text.secondary ?? palette.text.secondary,\n fontSize: theme.typography.subtitle2.fontSize as string,\n fontWeight: theme.typography.subtitle2.fontWeight,\n };\n\n const LABEL_VALUE = {\n offsetY: 8,\n color: vars?.text.primary ?? palette.text.primary,\n fontSize: theme.typography.h4.fontSize as string,\n fontWeight: theme.typography.h4.fontWeight,\n };\n\n // Get grey channel for opacity calculations\n const greyChannel = getColorChannel(theme, 'grey', '500');\n const dividerColor = vars?.divider ?? palette.divider;\n const paperColor = vars?.background.paper ?? palette.background.paper;\n\n return {\n theme: { mode: palette.mode },\n // =========================================================================\n // Chart\n // https://apexcharts.com/docs/options/chart/animations/\n // =========================================================================\n chart: {\n background: 'transparent',\n toolbar: { show: false },\n zoom: { enabled: false },\n parentHeightOffset: 0,\n fontFamily: theme.typography.fontFamily,\n foreColor: vars?.text.secondary ?? palette.text.secondary,\n animations: {\n enabled: true,\n speed: 360,\n animateGradually: { enabled: true, delay: 120 },\n dynamicAnimation: { enabled: true, speed: 360 },\n },\n },\n\n // =========================================================================\n // Colors\n // https://apexcharts.com/docs/options/colors/\n // =========================================================================\n colors: [\n palette.primary.main,\n palette.warning.main,\n palette.info.main,\n palette.error.main,\n palette.success.main,\n palette.warning.dark,\n palette.success.dark,\n palette.info.dark,\n palette.primary.dark,\n ],\n\n // =========================================================================\n // States\n // https://apexcharts.com/docs/options/states/\n // =========================================================================\n states: {\n hover: { filter: { type: 'darken' } },\n active: { filter: { type: 'darken' } },\n },\n\n // =========================================================================\n // Fill\n // https://apexcharts.com/docs/options/fill/\n // =========================================================================\n fill: {\n opacity: 1,\n gradient: {\n type: 'vertical',\n shadeIntensity: 0,\n opacityFrom: 0.4,\n opacityTo: 0,\n stops: [0, 100],\n },\n },\n\n // =========================================================================\n // Data Labels\n // https://apexcharts.com/docs/options/datalabels/\n // =========================================================================\n dataLabels: { enabled: false },\n\n // =========================================================================\n // Stroke\n // https://apexcharts.com/docs/options/stroke/\n // =========================================================================\n stroke: { width: 2.5, curve: 'smooth', lineCap: 'round' },\n\n // =========================================================================\n // Grid\n // https://apexcharts.com/docs/options/grid/\n // =========================================================================\n grid: {\n strokeDashArray: 3,\n borderColor: dividerColor,\n padding: { top: 0, right: 0, bottom: 0 },\n xaxis: { lines: { show: false } },\n },\n\n // =========================================================================\n // Axis\n // https://apexcharts.com/docs/options/xaxis/\n // https://apexcharts.com/docs/options/yaxis/\n // =========================================================================\n xaxis: { axisBorder: { show: false }, axisTicks: { show: false } },\n yaxis: { tickAmount: 5 },\n\n // =========================================================================\n // Markers\n // https://apexcharts.com/docs/options/markers/\n // =========================================================================\n markers: {\n size: 0,\n strokeColors: paperColor,\n },\n\n // =========================================================================\n // Tooltip\n // =========================================================================\n tooltip: { theme: palette.mode, fillSeriesColor: false, x: { show: true } },\n\n // =========================================================================\n // Legend\n // https://apexcharts.com/docs/options/legend/\n // =========================================================================\n legend: {\n show: false,\n position: 'top',\n fontWeight: 500,\n fontSize: '13px',\n horizontalAlign: 'right',\n markers: { shape: 'circle' },\n labels: { colors: vars?.text.primary ?? palette.text.primary },\n itemMargin: { horizontal: 8, vertical: 8 },\n },\n\n // =========================================================================\n // Plot Options\n // =========================================================================\n plotOptions: {\n // Bar charts\n // https://apexcharts.com/docs/options/plotoptions/bar/\n bar: { borderRadius: 4, columnWidth: '48%', borderRadiusApplication: 'end' },\n\n // Pie & Donut charts\n // https://apexcharts.com/docs/options/plotoptions/pie/\n pie: {\n donut: {\n labels: {\n show: true,\n value: { ...LABEL_VALUE },\n total: { ...LABEL_TOTAL },\n },\n },\n },\n\n // RadialBar charts\n // https://apexcharts.com/docs/options/plotoptions/radialbar/\n radialBar: {\n hollow: { margin: -8, size: '100%' },\n track: {\n margin: -8,\n strokeWidth: '50%',\n background: `rgba(${greyChannel} / 0.16)`,\n },\n dataLabels: { value: { ...LABEL_VALUE }, total: { ...LABEL_TOTAL } },\n },\n\n // Radar charts\n // https://apexcharts.com/docs/options/plotoptions/radar/\n radar: {\n polygons: {\n fill: { colors: ['transparent'] },\n strokeColors: dividerColor,\n connectorColors: dividerColor,\n },\n },\n\n // Polar Area charts\n // https://apexcharts.com/docs/options/plotoptions/polararea/\n polarArea: {\n rings: { strokeColor: dividerColor },\n spokes: { connectorColors: dividerColor },\n },\n\n // Heatmap charts\n // https://apexcharts.com/docs/options/plotoptions/heatmap/\n heatmap: { distributed: true },\n },\n\n // =========================================================================\n // Responsive\n // https://apexcharts.com/docs/options/responsive/\n // =========================================================================\n responsive: [\n {\n breakpoint: theme.breakpoints.values.sm,\n options: { plotOptions: { bar: { borderRadius: 3, columnWidth: '80%' } } },\n },\n {\n breakpoint: theme.breakpoints.values.md,\n options: { plotOptions: { bar: { columnWidth: '60%' } } },\n },\n ],\n };\n}\n\n// =============================================================================\n// HELPERS\n// =============================================================================\n\n/**\n * Get color channel from theme safely.\n */\nfunction getColorChannel(theme: Theme, color: 'grey' | 'primary' | 'secondary', shade?: string): string {\n const channelKey = shade ? `${shade}Channel` : 'mainChannel';\n const vars = theme.vars?.palette[color] as Record<string, string> | undefined;\n\n const fallbacks: Record<string, string> = {\n '500Channel': '145 158 171',\n '900Channel': '0 0 0',\n mainChannel: '51 133 240',\n };\n\n return vars?.[channelKey] ?? fallbacks[channelKey] ?? '145 158 171';\n}\n\n/**\n * Deep merge two objects.\n */\nfunction deepMerge<T extends object>(target: T, source: Partial<T>): T {\n const output = { ...target };\n\n for (const key of Object.keys(source) as Array<keyof T>) {\n const sourceValue = source[key];\n const targetValue = target[key];\n\n if (\n sourceValue !== null &&\n typeof sourceValue === 'object' &&\n !Array.isArray(sourceValue) &&\n targetValue !== null &&\n typeof targetValue === 'object' &&\n !Array.isArray(targetValue)\n ) {\n output[key] = deepMerge(targetValue as object, sourceValue as object) as T[keyof T];\n } else if (sourceValue !== undefined) {\n output[key] = sourceValue as T[keyof T];\n }\n }\n\n return output;\n}\n"]}
|