@sqlrooms/kepler 0.29.0-rc.1 → 0.29.0-rc.10

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.
Files changed (90) hide show
  1. package/LICENSE.md +2 -1
  2. package/README.md +133 -6
  3. package/dist/KeplerSlice.d.ts +85 -11
  4. package/dist/KeplerSlice.d.ts.map +1 -1
  5. package/dist/KeplerSlice.js +391 -123
  6. package/dist/KeplerSlice.js.map +1 -1
  7. package/dist/components/CustomDndContext.d.ts.map +1 -1
  8. package/dist/components/CustomDndContext.js +5 -2
  9. package/dist/components/CustomDndContext.js.map +1 -1
  10. package/dist/components/CustomFilterManager.d.ts.map +1 -1
  11. package/dist/components/CustomFilterManager.js +20 -5
  12. package/dist/components/CustomFilterManager.js.map +1 -1
  13. package/dist/components/CustomFilterPanelHeader.d.ts.map +1 -1
  14. package/dist/components/CustomFilterPanelHeader.js +5 -5
  15. package/dist/components/CustomFilterPanelHeader.js.map +1 -1
  16. package/dist/components/CustomInteractionManager.d.ts.map +1 -1
  17. package/dist/components/CustomInteractionManager.js +4 -1
  18. package/dist/components/CustomInteractionManager.js.map +1 -1
  19. package/dist/components/CustomLayerManager.d.ts.map +1 -1
  20. package/dist/components/CustomLayerManager.js +51 -17
  21. package/dist/components/CustomLayerManager.js.map +1 -1
  22. package/dist/components/CustomMapDrawPanel.d.ts +8 -0
  23. package/dist/components/CustomMapDrawPanel.d.ts.map +1 -0
  24. package/dist/components/CustomMapDrawPanel.js +28 -0
  25. package/dist/components/CustomMapDrawPanel.js.map +1 -0
  26. package/dist/components/CustomMapLegend.d.ts +4 -1
  27. package/dist/components/CustomMapLegend.d.ts.map +1 -1
  28. package/dist/components/CustomMapLegend.js +39 -12
  29. package/dist/components/CustomMapLegend.js.map +1 -1
  30. package/dist/components/CustomMapLegendPanel.d.ts +3 -3
  31. package/dist/components/CustomMapLegendPanel.d.ts.map +1 -1
  32. package/dist/components/CustomMapLegendPanel.js +27 -4
  33. package/dist/components/CustomMapLegendPanel.js.map +1 -1
  34. package/dist/components/CustomSourceDataSelector.d.ts +18 -0
  35. package/dist/components/CustomSourceDataSelector.d.ts.map +1 -0
  36. package/dist/components/CustomSourceDataSelector.js +130 -0
  37. package/dist/components/CustomSourceDataSelector.js.map +1 -0
  38. package/dist/components/KeplerAddDataDialog.d.ts +2 -3
  39. package/dist/components/KeplerAddDataDialog.d.ts.map +1 -1
  40. package/dist/components/KeplerAddDataDialog.js +19 -8
  41. package/dist/components/KeplerAddDataDialog.js.map +1 -1
  42. package/dist/components/KeplerImageExport.d.ts.map +1 -1
  43. package/dist/components/KeplerImageExport.js +26 -8
  44. package/dist/components/KeplerImageExport.js.map +1 -1
  45. package/dist/components/KeplerInjector.d.ts.map +1 -1
  46. package/dist/components/KeplerInjector.js +5 -1
  47. package/dist/components/KeplerInjector.js.map +1 -1
  48. package/dist/components/KeplerMapContainer.d.ts.map +1 -1
  49. package/dist/components/KeplerMapContainer.js +45 -6
  50. package/dist/components/KeplerMapContainer.js.map +1 -1
  51. package/dist/components/KeplerPlotContainer.d.ts +1 -1
  52. package/dist/components/KeplerPlotContainer.d.ts.map +1 -1
  53. package/dist/components/KeplerPlotContainer.js +3 -1
  54. package/dist/components/KeplerPlotContainer.js.map +1 -1
  55. package/dist/components/KeplerProvider.d.ts.map +1 -1
  56. package/dist/components/KeplerProvider.js +3 -1
  57. package/dist/components/KeplerProvider.js.map +1 -1
  58. package/dist/components/KeplerTableSourceSelector.d.ts +20 -0
  59. package/dist/components/KeplerTableSourceSelector.d.ts.map +1 -0
  60. package/dist/components/KeplerTableSourceSelector.js +21 -0
  61. package/dist/components/KeplerTableSourceSelector.js.map +1 -0
  62. package/dist/components/SplitMapIndexContext.d.ts +2 -0
  63. package/dist/components/SplitMapIndexContext.d.ts.map +1 -0
  64. package/dist/components/SplitMapIndexContext.js +3 -0
  65. package/dist/components/SplitMapIndexContext.js.map +1 -0
  66. package/dist/hooks/useDndEffects.d.ts +1 -1
  67. package/dist/hooks/useDndEffects.d.ts.map +1 -1
  68. package/dist/hooks/useDndEffects.js +4 -0
  69. package/dist/hooks/useDndEffects.js.map +1 -1
  70. package/dist/hooks/useDndLayers.d.ts +1 -1
  71. package/dist/hooks/useDndLayers.d.ts.map +1 -1
  72. package/dist/hooks/useDndLayers.js +4 -0
  73. package/dist/hooks/useDndLayers.js.map +1 -1
  74. package/dist/hooks/useKeplerStateActions.d.ts +7 -6
  75. package/dist/hooks/useKeplerStateActions.d.ts.map +1 -1
  76. package/dist/hooks/useKeplerStateActions.js +1 -1
  77. package/dist/hooks/useKeplerStateActions.js.map +1 -1
  78. package/dist/index.d.ts +10 -3
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +5 -2
  81. package/dist/index.js.map +1 -1
  82. package/dist/keplerTableSelection.d.ts +142 -0
  83. package/dist/keplerTableSelection.d.ts.map +1 -0
  84. package/dist/keplerTableSelection.js +232 -0
  85. package/dist/keplerTableSelection.js.map +1 -0
  86. package/dist/styles/theme.d.ts +12 -0
  87. package/dist/styles/theme.d.ts.map +1 -1
  88. package/dist/styles/theme.js +12 -0
  89. package/dist/styles/theme.js.map +1 -1
  90. package/package.json +43 -37
@@ -1 +1 @@
1
- {"version":3,"file":"KeplerMapContainer.js","sourceRoot":"","sources":["../../src/components/KeplerMapContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {FC, useMemo, useRef, useEffect, useState} from 'react';\n\nimport {\n MapContainerFactory,\n BottomWidgetFactory,\n GeocoderPanelFactory,\n mapFieldsSelector,\n bottomWidgetSelector,\n geoCoderPanelSelector,\n modalContainerSelector,\n MapViewStateContextProvider,\n RootContext,\n ModalContainerFactory,\n} from '@kepler.gl/components';\nimport {useDimensions, getAnimatableVisibleLayers} from '@kepler.gl/utils';\nimport styled, {useTheme} from 'styled-components';\n\nimport {getKeplerFactory} from './KeplerInjector';\nimport {KeplerProvider} from './KeplerProvider';\nimport {useKeplerStateActions} from '../hooks/useKeplerStateActions';\nimport {useStoreWithKepler} from '../KeplerSlice';\n\nconst MapContainer = getKeplerFactory(MapContainerFactory);\nconst BottomWidget = getKeplerFactory(BottomWidgetFactory);\nconst GeoCoderPanel = getKeplerFactory(GeocoderPanelFactory);\nconst ModalContainer = getKeplerFactory(ModalContainerFactory);\n\nconst DEFAULT_DIMENSIONS = {\n width: 0,\n height: 0,\n};\nconst KEPLER_PROPS = {\n mapboxApiUrl: 'https://api.mapbox.com',\n appName: 'kepler.gl',\n sidePanelWidth: 0,\n};\n// overide kepler default style\nconst CustomWidgetcontainer = styled.div`\n .bottom-widget--inner {\n margin-top: 0;\n }\n\n .map-popover {\n z-index: 50;\n }\n\n /* Remove top margin from Trip layer timeline */\n .kepler-gl .bottom-widget--container .animation-control-container,\n .bottom-widget--container .animation-control-container {\n margin-top: 0 !important;\n }\n`;\n\ntype KeplerGLProps = Parameters<typeof geoCoderPanelSelector>[0];\n\nconst KeplerGl: FC<{\n mapId: string;\n}> = ({mapId}) => {\n const bottomWidgetRef = useRef(null);\n const [containerRef, size] = useDimensions<HTMLDivElement>();\n const [containerNode, setContainerNode] = useState<HTMLElement | null>(null);\n const theme = useTheme();\n const basicKeplerProps = useStoreWithKepler(\n (state) => state.kepler.basicKeplerProps,\n );\n\n const {keplerActions, keplerState} = useKeplerStateActions({mapId});\n const interactionConfig = keplerState?.visState?.interactionConfig;\n\n // Capture the current container DOM node outside of render logic\n useEffect(() => {\n setContainerNode(containerRef.current);\n }, [containerRef]);\n\n // Update export image settings when size changes\n useEffect(() => {\n if (size?.width && size?.height) {\n keplerActions.uiStateActions.setExportImageSetting({\n mapW: size.width,\n mapH: size.height,\n });\n }\n }, [size?.width, size?.height, keplerActions.uiStateActions]);\n\n const mergedKeplerProps = useMemo(() => {\n return {\n ...KEPLER_PROPS,\n ...keplerState,\n ...keplerActions,\n id: mapId,\n } as KeplerGLProps;\n }, [keplerState, keplerActions, mapId]);\n const geoCoderPanelFields = keplerState?.visState\n ? geoCoderPanelSelector(\n mergedKeplerProps,\n // dont need height\n size || DEFAULT_DIMENSIONS,\n )\n : null;\n const mapFields = useMemo(\n () => (keplerState?.visState ? mapFieldsSelector(mergedKeplerProps) : null),\n [keplerState, mergedKeplerProps],\n );\n\n // Check if there are filters or animatable layers (e.g., Trip layers)\n const hasFilters = Boolean(keplerState?.visState.filters?.length);\n const hasAnimatableLayers = useMemo(() => {\n const layers = keplerState?.visState?.layers || [];\n return getAnimatableVisibleLayers(layers).length > 0;\n }, [keplerState?.visState?.layers]);\n\n const bottomWidgetFields =\n hasFilters || hasAnimatableLayers\n ? bottomWidgetSelector(mergedKeplerProps, theme)\n : null;\n\n const modalContainerFields = keplerState?.visState\n ? modalContainerSelector(mergedKeplerProps, containerNode)\n : null;\n\n const mapboxApiAccessToken =\n mapFields?.mapStyle?.mapboxApiAccessToken ||\n basicKeplerProps?.mapboxApiAccessToken;\n return (\n <RootContext.Provider value={containerRef}>\n <CustomWidgetcontainer\n ref={containerRef}\n className=\"kepler-gl relative flex h-full w-full flex-col justify-between\"\n >\n {mapFields?.mapState ? (\n <MapViewStateContextProvider mapState={mapFields.mapState}>\n <MapContainer\n primary={true}\n containerId={0}\n key={0}\n index={0}\n {...mapFields}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n </MapViewStateContextProvider>\n ) : null}\n {geoCoderPanelFields && interactionConfig?.geocoder?.enabled ? (\n <GeoCoderPanel\n {...geoCoderPanelFields}\n index={0}\n unsyncedViewports={false}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n ) : null}\n {size && bottomWidgetFields ? (\n <BottomWidget\n rootRef={bottomWidgetRef}\n {...bottomWidgetFields}\n theme={theme}\n containerW={size?.width}\n />\n ) : null}\n {size && size.width && size.height && modalContainerFields ? (\n <ModalContainer\n {...modalContainerFields}\n containerW={size?.width}\n containerH={size?.height}\n />\n ) : null}\n </CustomWidgetcontainer>\n </RootContext.Provider>\n );\n};\n\nexport const KeplerMapContainer: FC<{\n mapId: string;\n}> = ({mapId}) => {\n return (\n <KeplerProvider mapId={mapId}>\n <KeplerGl mapId={mapId} />\n </KeplerProvider>\n );\n};\n"]}
1
+ {"version":3,"file":"KeplerMapContainer.js","sourceRoot":"","sources":["../../src/components/KeplerMapContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["import {FC, useMemo, useRef, useEffect, useState} from 'react';\n\nimport {\n MapContainerFactory,\n BottomWidgetFactory,\n GeocoderPanelFactory,\n mapFieldsSelector,\n bottomWidgetSelector,\n geoCoderPanelSelector,\n modalContainerSelector,\n MapViewStateContextProvider,\n RootContext,\n ModalContainerFactory,\n} from '@kepler.gl/components';\nimport {useDimensions, getAnimatableVisibleLayers} from '@kepler.gl/utils';\nimport styled, {useTheme} from 'styled-components';\n\nimport {getKeplerFactory} from './KeplerInjector';\nimport {KeplerProvider} from './KeplerProvider';\nimport {useKeplerStateActions} from '../hooks/useKeplerStateActions';\nimport {useStoreWithKepler} from '../KeplerSlice';\nimport {SplitMapIndexContext} from './SplitMapIndexContext';\n\nconst MapContainer = getKeplerFactory(MapContainerFactory);\nconst BottomWidget = getKeplerFactory(BottomWidgetFactory);\nconst GeoCoderPanel = getKeplerFactory(GeocoderPanelFactory);\nconst ModalContainer = getKeplerFactory(ModalContainerFactory);\n\nconst DEFAULT_DIMENSIONS = {\n width: 0,\n height: 0,\n};\nconst KEPLER_PROPS = {\n mapboxApiUrl: 'https://api.mapbox.com',\n appName: 'kepler.gl',\n sidePanelWidth: 0,\n};\n// overide kepler default style\nconst CustomWidgetcontainer = styled.div`\n .bottom-widget--inner {\n margin-top: 0;\n }\n\n .map-popover {\n z-index: 50;\n }\n\n /* Remove top margin from Trip layer timeline */\n .kepler-gl .bottom-widget--container .animation-control-container,\n .bottom-widget--container .animation-control-container {\n margin-top: 0 !important;\n }\n`;\n\nconst SplitMapsContainer = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n position: relative;\n`;\n\ntype KeplerGLProps = Parameters<typeof geoCoderPanelSelector>[0];\n\nconst KeplerGl: FC<{\n mapId: string;\n}> = ({mapId}) => {\n const bottomWidgetRef = useRef(null);\n const [containerRef, size] = useDimensions<HTMLDivElement>();\n const [containerNode, setContainerNode] = useState<HTMLElement | null>(null);\n const theme = useTheme();\n const basicKeplerProps = useStoreWithKepler(\n (state) => state.kepler.basicKeplerProps,\n );\n const modalPortalTarget = useStoreWithKepler(\n (state) => state.kepler.modalPortalTarget,\n );\n\n const {keplerActions, keplerState} = useKeplerStateActions({mapId});\n const interactionConfig = keplerState?.visState?.interactionConfig;\n\n // Capture container DOM node outside of render for portal use\n useEffect(() => {\n setContainerNode(containerRef.current);\n }, [containerRef]);\n\n // Update export image settings when size changes\n useEffect(() => {\n if (size?.width && size?.height) {\n keplerActions.uiStateActions.setExportImageSetting({\n mapW: size.width,\n mapH: size.height,\n });\n }\n }, [size?.width, size?.height, keplerActions.uiStateActions]);\n\n const mergedKeplerProps = useMemo(() => {\n return {\n ...KEPLER_PROPS,\n ...keplerState,\n ...keplerActions,\n id: mapId,\n } as KeplerGLProps;\n }, [keplerState, keplerActions, mapId]);\n const geoCoderPanelFields = keplerState?.visState\n ? geoCoderPanelSelector(\n mergedKeplerProps,\n // dont need height\n size || DEFAULT_DIMENSIONS,\n )\n : null;\n\n const splitMaps = keplerState?.visState?.splitMaps;\n const isSplit = splitMaps && splitMaps.length > 1;\n\n const mapFields = useMemo(\n () => (keplerState?.visState ? mapFieldsSelector(mergedKeplerProps) : null),\n [keplerState, mergedKeplerProps],\n );\n const mapFieldsSplit = useMemo(\n () =>\n isSplit && keplerState?.visState\n ? splitMaps.map((_, index) =>\n mapFieldsSelector(mergedKeplerProps, index),\n )\n : null,\n [keplerState, mergedKeplerProps, isSplit, splitMaps],\n );\n\n // Check if there are filters or animatable layers (e.g., Trip layers)\n const hasFilters = Boolean(keplerState?.visState.filters?.length);\n const hasAnimatableLayers = useMemo(() => {\n const layers = keplerState?.visState?.layers || [];\n return getAnimatableVisibleLayers(layers).length > 0;\n }, [keplerState?.visState?.layers]);\n\n const bottomWidgetFields = useMemo(() => {\n if (!hasFilters && !hasAnimatableLayers) return null;\n const fields = bottomWidgetSelector(mergedKeplerProps, theme);\n // The legend is rendered as a draggable, portaled overlay so the\n // BottomWidget should not shrink to reserve space for it. Mask\n // mapLegend.active so the upstream spaceForLegendWidth stays 0.\n return {\n ...fields,\n uiState: {\n ...fields.uiState,\n mapControls: {\n ...fields.uiState.mapControls,\n mapLegend: {\n ...fields.uiState.mapControls?.mapLegend,\n show: fields.uiState.mapControls?.mapLegend?.show ?? false,\n active: false,\n },\n },\n },\n };\n }, [hasFilters, hasAnimatableLayers, mergedKeplerProps, theme]);\n\n const modalPortalNode = useMemo(() => {\n if (modalPortalTarget === 'body') {\n return typeof document !== 'undefined' ? document.body : null;\n }\n return containerNode;\n }, [modalPortalTarget, containerNode]);\n\n const modalContainerFields = keplerState?.visState\n ? modalContainerSelector(mergedKeplerProps, modalPortalNode)\n : null;\n\n const mapboxApiAccessToken =\n mapFields?.mapStyle?.mapboxApiAccessToken ||\n basicKeplerProps?.mapboxApiAccessToken;\n return (\n <RootContext.Provider value={containerRef}>\n <CustomWidgetcontainer\n ref={containerRef}\n className=\"kepler-gl relative flex h-full w-full flex-col justify-between\"\n >\n {isSplit && mapFieldsSplit ? (\n <SplitMapsContainer>\n <MapViewStateContextProvider\n mapState={\n (mapFieldsSplit[0]?.mapState ??\n mapFields?.mapState) as NonNullable<\n typeof mapFields\n >['mapState']\n }\n >\n {mapFieldsSplit.map((fields, index) => (\n <SplitMapIndexContext.Provider key={index} value={index}>\n <MapContainer\n index={index}\n primary={index === 1}\n containerId={index}\n {...fields}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n </SplitMapIndexContext.Provider>\n ))}\n </MapViewStateContextProvider>\n </SplitMapsContainer>\n ) : mapFields?.mapState ? (\n <MapViewStateContextProvider mapState={mapFields.mapState}>\n <MapContainer\n primary={true}\n containerId={0}\n key={0}\n index={0}\n {...mapFields}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n </MapViewStateContextProvider>\n ) : null}\n {geoCoderPanelFields && interactionConfig?.geocoder?.enabled ? (\n <GeoCoderPanel\n {...geoCoderPanelFields}\n index={0}\n unsyncedViewports={false}\n mapboxApiAccessToken={mapboxApiAccessToken || ''}\n />\n ) : null}\n {size && bottomWidgetFields ? (\n <BottomWidget\n rootRef={bottomWidgetRef}\n {...bottomWidgetFields}\n theme={theme}\n containerW={size?.width}\n />\n ) : null}\n {size && size.width && size.height && modalContainerFields ? (\n <ModalContainer\n {...modalContainerFields}\n containerW={size?.width}\n containerH={size?.height}\n />\n ) : null}\n </CustomWidgetcontainer>\n </RootContext.Provider>\n );\n};\n\nexport const KeplerMapContainer: FC<{\n mapId: string;\n}> = ({mapId}) => {\n return (\n <KeplerProvider mapId={mapId}>\n <KeplerGl mapId={mapId} />\n </KeplerProvider>\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { FC, ReactNode } from 'react';
1
+ import type { FC, ReactNode } from 'react';
2
2
  export declare const KeplerPlotContainer: FC<{
3
3
  mapId: string;
4
4
  logoComponent?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"KeplerPlotContainer.d.ts","sourceRoot":"","sources":["../../src/components/KeplerPlotContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAE,SAAS,EAAU,MAAM,OAAO,CAAC;AAmB7C,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B,CAmCA,CAAC"}
1
+ {"version":3,"file":"KeplerPlotContainer.d.ts","sourceRoot":"","sources":["../../src/components/KeplerPlotContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,EAAE,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAsBxD,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,SAAS,CAAC;CAC3B,CAqCA,CAAC"}
@@ -28,6 +28,8 @@ export const KeplerPlotContainer = ({ mapId, logoComponent }) => {
28
28
  const plotContainerFields = useMemo(() => (mergedKeplerProps ? plotContainerSelector(mergedKeplerProps) : null),
29
29
  // mergedKeplerProps already changes when filters change via keplerState
30
30
  [mergedKeplerProps]);
31
- return isExportingImage && plotContainerFields ? (_jsx(KeplerProvider, { mapId: mapId, children: _jsx(PlotContainer, { ...plotContainerFields, logoComponent: logoComponent ?? null }) })) : null;
31
+ const logo = logoComponent ?? null;
32
+ const keplerLogoComponent = logo;
33
+ return isExportingImage && plotContainerFields ? (_jsx(KeplerProvider, { mapId: mapId, children: _jsx(PlotContainer, { ...plotContainerFields, logoComponent: keplerLogoComponent }) })) : null;
32
34
  };
33
35
  //# sourceMappingURL=KeplerPlotContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeplerPlotContainer.js","sourceRoot":"","sources":["../../src/components/KeplerPlotContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAgB,OAAO,EAAC,MAAM,OAAO,CAAC;AAE7C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,MAAM,aAAa,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAE7D,MAAM,YAAY,GAAG;IACnB,YAAY,EAAE,wBAAwB;IACtC,OAAO,EAAE,WAAW;IACpB,cAAc,EAAE,CAAC;IACjB,oBAAoB,EAAE,EAAE;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAG3B,CAAC,EAAC,KAAK,EAAE,aAAa,EAAC,EAAE,EAAE;IAC9B,MAAM,EAAC,WAAW,EAAE,aAAa,EAAC,GAAG,qBAAqB,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC;IAEpE,MAAM,gBAAgB,GAAG,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;IACtE,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CACH,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC;YACE,GAAG,YAAY;YACf,oBAAoB,EAClB,YAAY,CAAC,oBAAoB;gBACjC,WAAW,EAAE,QAAQ,EAAE,oBAAoB;gBAC3C,EAAE;YACJ,GAAG,WAAW;YACd,GAAG,aAAa;YAChB,EAAE,EAAE,KAAK;SACV;QACH,CAAC,CAAC,IAAI,EACV,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,CACpC,CAAC;IAEF,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,wEAAwE;IACxE,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,OAAO,gBAAgB,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAC/C,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,YAC1B,KAAC,aAAa,OACR,mBAAmB,EACvB,aAAa,EAAE,aAAa,IAAI,IAAI,GACpC,GACa,CAClB,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC","sourcesContent":["import {FC, ReactNode, useMemo} from 'react';\n\nimport {\n PlotContainerFactory,\n plotContainerSelector,\n} from '@kepler.gl/components';\nimport {useKeplerStateActions} from '../hooks/useKeplerStateActions';\nimport {getKeplerFactory} from './KeplerInjector';\nimport {KeplerProvider} from './KeplerProvider';\n\nconst PlotContainer = getKeplerFactory(PlotContainerFactory);\n\nconst KEPLER_PROPS = {\n mapboxApiUrl: 'https://api.mapbox.com',\n appName: 'kepler.gl',\n sidePanelWidth: 0,\n mapboxApiAccessToken: '',\n};\n\nexport const KeplerPlotContainer: FC<{\n mapId: string;\n logoComponent?: ReactNode;\n}> = ({mapId, logoComponent}) => {\n const {keplerState, keplerActions} = useKeplerStateActions({mapId});\n\n const isExportingImage = keplerState?.uiState?.exportImage?.exporting;\n const mergedKeplerProps = useMemo(\n () =>\n keplerState !== undefined\n ? {\n ...KEPLER_PROPS,\n mapboxApiAccessToken:\n KEPLER_PROPS.mapboxApiAccessToken ||\n keplerState?.mapStyle?.mapboxApiAccessToken ||\n '',\n ...keplerState,\n ...keplerActions,\n id: mapId,\n }\n : null,\n [keplerState, keplerActions, mapId],\n );\n\n const plotContainerFields = useMemo(\n () => (mergedKeplerProps ? plotContainerSelector(mergedKeplerProps) : null),\n // mergedKeplerProps already changes when filters change via keplerState\n [mergedKeplerProps],\n );\n\n return isExportingImage && plotContainerFields ? (\n <KeplerProvider mapId={mapId}>\n <PlotContainer\n {...plotContainerFields}\n logoComponent={logoComponent ?? null}\n />\n </KeplerProvider>\n ) : null;\n};\n"]}
1
+ {"version":3,"file":"KeplerPlotContainer.js","sourceRoot":"","sources":["../../src/components/KeplerPlotContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAG9B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,MAAM,aAAa,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAK7D,MAAM,YAAY,GAAG;IACnB,YAAY,EAAE,wBAAwB;IACtC,OAAO,EAAE,WAAW;IACpB,cAAc,EAAE,CAAC;IACjB,oBAAoB,EAAE,EAAE;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAG3B,CAAC,EAAC,KAAK,EAAE,aAAa,EAAC,EAAE,EAAE;IAC9B,MAAM,EAAC,WAAW,EAAE,aAAa,EAAC,GAAG,qBAAqB,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC;IAEpE,MAAM,gBAAgB,GAAG,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;IACtE,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CACH,WAAW,KAAK,SAAS;QACvB,CAAC,CAAC;YACE,GAAG,YAAY;YACf,oBAAoB,EAClB,YAAY,CAAC,oBAAoB;gBACjC,WAAW,EAAE,QAAQ,EAAE,oBAAoB;gBAC3C,EAAE;YACJ,GAAG,WAAW;YACd,GAAG,aAAa;YAChB,EAAE,EAAE,KAAK;SACV;QACH,CAAC,CAAC,IAAI,EACV,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,CACpC,CAAC;IAEF,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,wEAAwE;IACxE,CAAC,iBAAiB,CAAC,CACpB,CAAC;IACF,MAAM,IAAI,GAAG,aAAa,IAAI,IAAI,CAAC;IACnC,MAAM,mBAAmB,GAAG,IAA6C,CAAC;IAE1E,OAAO,gBAAgB,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAC/C,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,YAC1B,KAAC,aAAa,OACR,mBAAmB,EACvB,aAAa,EAAE,mBAAmB,GAClC,GACa,CAClB,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC","sourcesContent":["import {useMemo} from 'react';\nimport type {ComponentType, FC, ReactNode} from 'react';\n\nimport {\n PlotContainerFactory,\n plotContainerSelector,\n} from '@kepler.gl/components';\nimport {useKeplerStateActions} from '../hooks/useKeplerStateActions';\nimport {getKeplerFactory} from './KeplerInjector';\nimport {KeplerProvider} from './KeplerProvider';\n\nconst PlotContainer = getKeplerFactory(PlotContainerFactory);\ntype PlotContainerProps =\n typeof PlotContainer extends ComponentType<infer Props> ? Props : never;\ntype PlotContainerLogoComponent = PlotContainerProps['logoComponent'];\n\nconst KEPLER_PROPS = {\n mapboxApiUrl: 'https://api.mapbox.com',\n appName: 'kepler.gl',\n sidePanelWidth: 0,\n mapboxApiAccessToken: '',\n};\n\nexport const KeplerPlotContainer: FC<{\n mapId: string;\n logoComponent?: ReactNode;\n}> = ({mapId, logoComponent}) => {\n const {keplerState, keplerActions} = useKeplerStateActions({mapId});\n\n const isExportingImage = keplerState?.uiState?.exportImage?.exporting;\n const mergedKeplerProps = useMemo(\n () =>\n keplerState !== undefined\n ? {\n ...KEPLER_PROPS,\n mapboxApiAccessToken:\n KEPLER_PROPS.mapboxApiAccessToken ||\n keplerState?.mapStyle?.mapboxApiAccessToken ||\n '',\n ...keplerState,\n ...keplerActions,\n id: mapId,\n }\n : null,\n [keplerState, keplerActions, mapId],\n );\n\n const plotContainerFields = useMemo(\n () => (mergedKeplerProps ? plotContainerSelector(mergedKeplerProps) : null),\n // mergedKeplerProps already changes when filters change via keplerState\n [mergedKeplerProps],\n );\n const logo = logoComponent ?? null;\n const keplerLogoComponent = logo as unknown as PlotContainerLogoComponent;\n\n return isExportingImage && plotContainerFields ? (\n <KeplerProvider mapId={mapId}>\n <PlotContainer\n {...plotContainerFields}\n logoComponent={keplerLogoComponent}\n />\n </KeplerProvider>\n ) : null;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"KeplerProvider.d.ts","sourceRoot":"","sources":["../../src/components/KeplerProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAU,MAAM,OAAO,CAAC;AASjD,KAAK,mBAAmB,GAAG,iBAAiB,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAGH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA+BxD,CAAC"}
1
+ {"version":3,"file":"KeplerProvider.d.ts","sourceRoot":"","sources":["../../src/components/KeplerProvider.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAU,MAAM,OAAO,CAAC;AASjD,KAAK,mBAAmB,GAAG,iBAAiB,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAGH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiCxD,CAAC"}
@@ -10,6 +10,8 @@ import { Provider } from 'react-redux';
10
10
  // Provide intl, theme, context, and redux store to the kepler
11
11
  export const KeplerProvider = ({ children, mapId, }) => {
12
12
  const reduxProviderStore = useStoreWithKepler((state) => state.kepler.__reduxProviderStore);
13
+ const keplerTheme = useStoreWithKepler((state) => state.kepler.keplerTheme);
14
+ const resolvedTheme = useMemo(() => keplerTheme ?? darkTheme, [keplerTheme]);
13
15
  const keplerContext = useMemo(() => ({
14
16
  selector: (state) => state[mapId],
15
17
  id: mapId,
@@ -17,6 +19,6 @@ export const KeplerProvider = ({ children, mapId, }) => {
17
19
  if (!reduxProviderStore) {
18
20
  return null;
19
21
  }
20
- return (_jsx(IntlProvider, { locale: "en", messages: messages['en'], children: _jsx(Provider, { store: reduxProviderStore, children: _jsx(StyleSheetManager, { shouldForwardProp: shouldForwardProp, children: _jsx(ThemeProvider, { theme: darkTheme, children: _jsx(KeplerGlContext.Provider, { value: keplerContext, children: _jsx(_Fragment, { children: children }) }) }) }) }) }));
22
+ return (_jsx(IntlProvider, { locale: "en", messages: messages['en'], children: _jsx(Provider, { store: reduxProviderStore, children: _jsx(StyleSheetManager, { shouldForwardProp: shouldForwardProp, children: _jsx(ThemeProvider, { theme: resolvedTheme, children: _jsx(KeplerGlContext.Provider, { value: keplerContext, children: _jsx(_Fragment, { children: children }) }) }) }) }) }));
21
23
  };
22
24
  //# sourceMappingURL=KeplerProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeplerProvider.js","sourceRoot":"","sources":["../../src/components/KeplerProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAoB,OAAO,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAqB,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAMrC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,QAAQ,EACR,KAAK,GACN,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,kBAAkB,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAC7C,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC,KAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;QACrD,EAAE,EAAE,KAAK;KACV,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;IACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,KAAC,YAAY,IAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,YAChD,KAAC,QAAQ,IAAC,KAAK,EAAE,kBAAkB,YACjC,KAAC,iBAAiB,IAAC,iBAAiB,EAAE,iBAAiB,YACrD,KAAC,aAAa,IAAC,KAAK,EAAE,SAAS,YAC7B,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa,YAC5C,4BAAG,QAAQ,GAAI,GACU,GACb,GACE,GACX,GACE,CAChB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {messages} from '@kepler.gl/localization';\nimport {PropsWithChildren, useMemo} from 'react';\nimport {IntlProvider} from 'react-intl';\nimport {ThemeProvider, StyleSheetManager} from 'styled-components';\nimport {KeplerGlReduxState, useStoreWithKepler} from '../KeplerSlice';\n\nimport {KeplerGlContext, shouldForwardProp} from '@kepler.gl/components';\nimport {darkTheme} from '../styles/theme';\nimport {Provider} from 'react-redux';\n\ntype KeplerProviderProps = PropsWithChildren<{\n mapId: string;\n}>;\n\n// Provide intl, theme, context, and redux store to the kepler\nexport const KeplerProvider: React.FC<KeplerProviderProps> = ({\n children,\n mapId,\n}) => {\n const reduxProviderStore = useStoreWithKepler(\n (state) => state.kepler.__reduxProviderStore,\n );\n\n const keplerContext = useMemo(\n () => ({\n selector: (state: KeplerGlReduxState) => state[mapId],\n id: mapId,\n }),\n [mapId],\n );\n if (!reduxProviderStore) {\n return null;\n }\n return (\n <IntlProvider locale=\"en\" messages={messages['en']}>\n <Provider store={reduxProviderStore}>\n <StyleSheetManager shouldForwardProp={shouldForwardProp}>\n <ThemeProvider theme={darkTheme}>\n <KeplerGlContext.Provider value={keplerContext}>\n <>{children}</>\n </KeplerGlContext.Provider>\n </ThemeProvider>\n </StyleSheetManager>\n </Provider>\n </IntlProvider>\n );\n};\n"]}
1
+ {"version":3,"file":"KeplerProvider.js","sourceRoot":"","sources":["../../src/components/KeplerProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAoB,OAAO,EAAC,MAAM,OAAO,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAqB,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAMrC,8DAA8D;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC5D,QAAQ,EACR,KAAK,GACN,EAAE,EAAE;IACH,MAAM,kBAAkB,GAAG,kBAAkB,CAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAC7C,CAAC;IACF,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7E,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,CAAC,KAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;QACrD,EAAE,EAAE,KAAK;KACV,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;IACF,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,KAAC,YAAY,IAAC,MAAM,EAAC,IAAI,EAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,YAChD,KAAC,QAAQ,IAAC,KAAK,EAAE,kBAAkB,YACjC,KAAC,iBAAiB,IAAC,iBAAiB,EAAE,iBAAiB,YACrD,KAAC,aAAa,IAAC,KAAK,EAAE,aAAa,YACjC,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,aAAa,YAC5C,4BAAG,QAAQ,GAAI,GACU,GACb,GACE,GACX,GACE,CAChB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {messages} from '@kepler.gl/localization';\nimport {PropsWithChildren, useMemo} from 'react';\nimport {IntlProvider} from 'react-intl';\nimport {ThemeProvider, StyleSheetManager} from 'styled-components';\nimport {KeplerGlReduxState, useStoreWithKepler} from '../KeplerSlice';\n\nimport {KeplerGlContext, shouldForwardProp} from '@kepler.gl/components';\nimport {darkTheme} from '../styles/theme';\nimport {Provider} from 'react-redux';\n\ntype KeplerProviderProps = PropsWithChildren<{\n mapId: string;\n}>;\n\n// Provide intl, theme, context, and redux store to the kepler\nexport const KeplerProvider: React.FC<KeplerProviderProps> = ({\n children,\n mapId,\n}) => {\n const reduxProviderStore = useStoreWithKepler(\n (state) => state.kepler.__reduxProviderStore,\n );\n const keplerTheme = useStoreWithKepler((state) => state.kepler.keplerTheme);\n const resolvedTheme = useMemo(() => keplerTheme ?? darkTheme, [keplerTheme]);\n\n const keplerContext = useMemo(\n () => ({\n selector: (state: KeplerGlReduxState) => state[mapId],\n id: mapId,\n }),\n [mapId],\n );\n if (!reduxProviderStore) {\n return null;\n }\n return (\n <IntlProvider locale=\"en\" messages={messages['en']}>\n <Provider store={reduxProviderStore}>\n <StyleSheetManager shouldForwardProp={shouldForwardProp}>\n <ThemeProvider theme={resolvedTheme}>\n <KeplerGlContext.Provider value={keplerContext}>\n <>{children}</>\n </KeplerGlContext.Provider>\n </ThemeProvider>\n </StyleSheetManager>\n </Provider>\n </IntlProvider>\n );\n};\n"]}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import type { KeplerTableSourceOption } from '../keplerTableSelection';
3
+ export type KeplerTableSourceSelectorProps = {
4
+ disabled?: boolean;
5
+ emptyMessage?: string;
6
+ options: KeplerTableSourceOption[];
7
+ popoverAlign?: 'start' | 'center' | 'end';
8
+ popoverClassName?: string;
9
+ searchPlaceholder?: string;
10
+ selectedValue?: string;
11
+ triggerClassName?: string;
12
+ onSelect: (option: KeplerTableSourceOption) => void;
13
+ renderTrigger?: (props: {
14
+ disabled: boolean;
15
+ open: boolean;
16
+ selectedOption?: KeplerTableSourceOption;
17
+ }) => React.ReactNode;
18
+ };
19
+ export declare const KeplerTableSourceSelector: React.FC<KeplerTableSourceSelectorProps>;
20
+ //# sourceMappingURL=KeplerTableSourceSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeplerTableSourceSelector.d.ts","sourceRoot":"","sources":["../../src/components/KeplerTableSourceSelector.tsx"],"names":[],"mappings":"AAcA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,yBAAyB,CAAC;AAErE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACpD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,QAAQ,EAAE,OAAO,CAAC;QAClB,IAAI,EAAE,OAAO,CAAC;QACd,cAAc,CAAC,EAAE,uBAAuB,CAAC;KAC1C,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB,CAAC;AAmBF,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C,8BAA8B,CAqF/B,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, cn, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, Popover, PopoverContent, PopoverTrigger, } from '@sqlrooms/ui';
3
+ import { Check, ChevronsUpDown } from 'lucide-react';
4
+ import { useMemo, useState } from 'react';
5
+ const DefaultTrigger = ({ disabled, selectedOption }) => (_jsxs(Button, { type: "button", variant: "outline", className: "h-8 w-full justify-between px-2 text-xs", disabled: disabled, children: [_jsx("span", { className: "min-w-0 truncate", children: selectedOption?.label ?? 'Select data source' }), _jsx(ChevronsUpDown, { className: "ml-2 h-3.5 w-3.5 shrink-0 opacity-60" })] }));
6
+ export const KeplerTableSourceSelector = ({ disabled = false, emptyMessage = 'No tables found.', options, popoverAlign = 'start', popoverClassName, searchPlaceholder = 'Search tables...', selectedValue, triggerClassName, onSelect, renderTrigger, }) => {
7
+ const [open, setOpen] = useState(false);
8
+ const selectedOption = useMemo(() => options.find((option) => option.value === selectedValue), [options, selectedValue]);
9
+ const handleSelect = (option) => {
10
+ onSelect(option);
11
+ setOpen(false);
12
+ };
13
+ return (_jsxs(Popover, { open: open, onOpenChange: (nextOpen) => {
14
+ if (!disabled) {
15
+ setOpen(nextOpen);
16
+ }
17
+ }, modal: false, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx("div", { className: triggerClassName, children: renderTrigger ? (renderTrigger({ disabled, open, selectedOption })) : (_jsx(DefaultTrigger, { disabled: disabled, selectedOption: selectedOption })) }) }), _jsx(PopoverContent, { align: popoverAlign, className: cn('w-[320px] p-0 text-xs', popoverClassName), children: _jsxs(Command, { children: [_jsx(CommandInput, { placeholder: searchPlaceholder, className: "text-xs" }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { className: "text-xs", children: emptyMessage }), _jsx(CommandGroup, { children: options.map((option) => (_jsxs(CommandItem, { value: `${option.label} ${option.value}`, className: "text-xs", onSelect: () => handleSelect(option), children: [_jsx(Check, { className: cn('mr-1 h-3.5 w-3.5 shrink-0', option.value === selectedValue
18
+ ? 'opacity-100'
19
+ : 'opacity-0') }), _jsx("span", { className: "h-3 w-3 shrink-0", style: { backgroundColor: `rgb(${option.color.join(',')})` } }), _jsx("span", { className: "min-w-0 flex-1 truncate font-semibold", children: option.label })] }, option.value))) })] })] }) })] }));
20
+ };
21
+ //# sourceMappingURL=KeplerTableSourceSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KeplerTableSourceSelector.js","sourceRoot":"","sources":["../../src/components/KeplerTableSourceSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Button,\n cn,\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@sqlrooms/ui';\nimport {Check, ChevronsUpDown} from 'lucide-react';\nimport React, {useMemo, useState} from 'react';\nimport type {KeplerTableSourceOption} from '../keplerTableSelection';\n\nexport type KeplerTableSourceSelectorProps = {\n disabled?: boolean;\n emptyMessage?: string;\n options: KeplerTableSourceOption[];\n popoverAlign?: 'start' | 'center' | 'end';\n popoverClassName?: string;\n searchPlaceholder?: string;\n selectedValue?: string;\n triggerClassName?: string;\n onSelect: (option: KeplerTableSourceOption) => void;\n renderTrigger?: (props: {\n disabled: boolean;\n open: boolean;\n selectedOption?: KeplerTableSourceOption;\n }) => React.ReactNode;\n};\n\nconst DefaultTrigger: React.FC<{\n disabled: boolean;\n selectedOption?: KeplerTableSourceOption;\n}> = ({disabled, selectedOption}) => (\n <Button\n type=\"button\"\n variant=\"outline\"\n className=\"h-8 w-full justify-between px-2 text-xs\"\n disabled={disabled}\n >\n <span className=\"min-w-0 truncate\">\n {selectedOption?.label ?? 'Select data source'}\n </span>\n <ChevronsUpDown className=\"ml-2 h-3.5 w-3.5 shrink-0 opacity-60\" />\n </Button>\n);\n\nexport const KeplerTableSourceSelector: React.FC<\n KeplerTableSourceSelectorProps\n> = ({\n disabled = false,\n emptyMessage = 'No tables found.',\n options,\n popoverAlign = 'start',\n popoverClassName,\n searchPlaceholder = 'Search tables...',\n selectedValue,\n triggerClassName,\n onSelect,\n renderTrigger,\n}) => {\n const [open, setOpen] = useState(false);\n const selectedOption = useMemo(\n () => options.find((option) => option.value === selectedValue),\n [options, selectedValue],\n );\n\n const handleSelect = (option: KeplerTableSourceOption) => {\n onSelect(option);\n setOpen(false);\n };\n\n return (\n <Popover\n open={open}\n onOpenChange={(nextOpen) => {\n if (!disabled) {\n setOpen(nextOpen);\n }\n }}\n modal={false}\n >\n <PopoverTrigger asChild>\n <div className={triggerClassName}>\n {renderTrigger ? (\n renderTrigger({disabled, open, selectedOption})\n ) : (\n <DefaultTrigger\n disabled={disabled}\n selectedOption={selectedOption}\n />\n )}\n </div>\n </PopoverTrigger>\n <PopoverContent\n align={popoverAlign}\n className={cn('w-[320px] p-0 text-xs', popoverClassName)}\n >\n <Command>\n <CommandInput placeholder={searchPlaceholder} className=\"text-xs\" />\n <CommandList>\n <CommandEmpty className=\"text-xs\">{emptyMessage}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => (\n <CommandItem\n key={option.value}\n value={`${option.label} ${option.value}`}\n className=\"text-xs\"\n onSelect={() => handleSelect(option)}\n >\n <Check\n className={cn(\n 'mr-1 h-3.5 w-3.5 shrink-0',\n option.value === selectedValue\n ? 'opacity-100'\n : 'opacity-0',\n )}\n />\n <span\n className=\"h-3 w-3 shrink-0\"\n style={{backgroundColor: `rgb(${option.color.join(',')})`}}\n />\n <span className=\"min-w-0 flex-1 truncate font-semibold\">\n {option.label}\n </span>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const SplitMapIndexContext: import("react").Context<number | undefined>;
2
+ //# sourceMappingURL=SplitMapIndexContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitMapIndexContext.d.ts","sourceRoot":"","sources":["../../src/components/SplitMapIndexContext.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,6CAEhC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ export const SplitMapIndexContext = createContext(undefined);
3
+ //# sourceMappingURL=SplitMapIndexContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitMapIndexContext.js","sourceRoot":"","sources":["../../src/components/SplitMapIndexContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAEpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAC/C,SAAS,CACV,CAAC","sourcesContent":["import {createContext} from 'react';\n\nexport const SplitMapIndexContext = createContext<number | undefined>(\n undefined,\n);\n"]}
@@ -5,6 +5,6 @@ type DndEffectsHook = {
5
5
  onDragStart: (event: DragStartEvent) => void;
6
6
  onDragEnd: (event: DragEndEvent) => void;
7
7
  };
8
- declare const useDndEffects: (mapId: string, effects: Effect[], effectOrder: string[]) => DndEffectsHook;
8
+ declare const useDndEffects: (mapId: string | undefined, effects: Effect[], effectOrder: string[]) => DndEffectsHook;
9
9
  export default useDndEffects;
10
10
  //# sourceMappingURL=useDndEffects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDndEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useDndEffects.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAQxC,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,CACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,EAAE,MAAM,EAAE,KAClB,cAgFJ,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"useDndEffects.d.ts","sourceRoot":"","sources":["../../src/hooks/useDndEffects.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAC,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAQxC,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,CACnB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,EAAE,MAAM,EAAE,EACjB,WAAW,EAAE,MAAM,EAAE,KAClB,cAkFJ,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -11,6 +11,8 @@ const useDndEffects = (mapId, effects, effectOrder) => {
11
11
  const [activeEffect, setActiveEffect] = useState();
12
12
  const onEffectDragStart = useCallback((event) => {
13
13
  const { active } = event;
14
+ if (!mapId)
15
+ return;
14
16
  const newActiveEffect = effects.find((effect) => effect.id === active.id);
15
17
  if (newActiveEffect) {
16
18
  setActiveEffect(newActiveEffect);
@@ -21,6 +23,8 @@ const useDndEffects = (mapId, effects, effectOrder) => {
21
23
  }, [dispatch, effects, mapId]);
22
24
  const onEffectDragEnd = useCallback((event) => {
23
25
  const { active, over } = event;
26
+ if (!mapId)
27
+ return;
24
28
  const { id: activeEffectId } = active;
25
29
  const overType = over?.data?.current?.type;
26
30
  if (!overType) {
@@ -1 +1 @@
1
- {"version":3,"file":"useDndEffects.js","sourceRoot":"","sources":["../../src/hooks/useDndEffects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAElD,yEAAyE;AACzE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAQ1C,MAAM,aAAa,GAIG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IACpD,oEAAoE;IACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE5E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAGjC,QAAQ,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAqB,EAAE,EAAE;QACxB,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC;QACvB,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,eAAe,CAAC,CAAC;YACjC,IAAK,eAAuB,CAAC,cAAc,EAAE,CAAC;gBAC5C,QAAQ,CACN,KAAK,EACL,YAAY,CAAC,eAAe,CAAC,EAAE,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAC3B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAmB,EAAE,EAAE;QACtB,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;QAE7B,MAAM,EAAC,EAAE,EAAE,cAAc,EAAC,GAAG,MAAM,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;QAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,kBAAkB;YAClB,KAAK,oBAAoB;gBACvB,QAAQ,CACN,KAAK,EACL,aAAa,CACX,kBAAkB,CAChB,WAAW,EACX,cAAc,CAAC,QAAQ,EAAE,EACzB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CACnB,CACF,CACF,CAAC;gBACF,MAAM;YACR,oCAAoC;YACpC,KAAK,0BAA0B;gBAC7B,qCAAqC;gBACrC,QAAQ,CACN,KAAK,EACL,aAAa,CACX,kBAAkB,CAChB,WAAW,EACX,cAAc,CAAC,QAAQ,EAAE,EACzB,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAC1C,CACF,CACF,CAAC;gBACF,MAAM;YACR;gBACE,MAAM;QACV,CAAC;QAED,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC,EACD,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAC/B,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,WAAW,EAAE,iBAAiB;QAC9B,SAAS,EAAE,eAAe;KAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import {useCallback, useState} from 'react';\nimport {DragEndEvent, DragStartEvent} from '@dnd-kit/core';\nimport {reorderEffect, updateEffect} from '@kepler.gl/actions';\nimport {reorderEffectOrder} from '@kepler.gl/utils';\nimport {Effect} from '@kepler.gl/types';\nimport {SORTABLE_EFFECT_TYPE} from '@kepler.gl/components';\n\nimport {useStoreWithKepler} from '../KeplerSlice';\n\n// TODO import from @kepler.gl/components once 3.2.1 release is available\nconst SORTABLE_EFFECT_PANEL_TYPE = 'root';\n\ntype DndEffectsHook = {\n activeEffect: Effect | undefined;\n onDragStart: (event: DragStartEvent) => void;\n onDragEnd: (event: DragEndEvent) => void;\n};\n\nconst useDndEffects: (\n mapId: string,\n effects: Effect[],\n effectOrder: string[],\n) => DndEffectsHook = (mapId, effects, effectOrder) => {\n // Use the proper sqlrooms dispatch mechanism instead of useDispatch\n const dispatch = useStoreWithKepler((state) => state.kepler.dispatchAction);\n\n const [activeEffect, setActiveEffect]: [\n Effect | undefined,\n (effect: Effect | undefined) => void,\n ] = useState();\n\n const onEffectDragStart = useCallback(\n (event: DragStartEvent) => {\n const {active} = event;\n const newActiveEffect = effects.find((effect) => effect.id === active.id);\n if (newActiveEffect) {\n setActiveEffect(newActiveEffect);\n if ((newActiveEffect as any).isConfigActive) {\n dispatch(\n mapId,\n updateEffect(newActiveEffect.id, {isConfigActive: false}),\n );\n }\n }\n },\n [dispatch, effects, mapId],\n );\n\n const onEffectDragEnd = useCallback(\n (event: DragEndEvent) => {\n const {active, over} = event;\n\n const {id: activeEffectId} = active;\n const overType = over?.data?.current?.type;\n\n if (!overType) {\n setActiveEffect(undefined);\n return;\n }\n\n switch (overType) {\n // swaping effects\n case SORTABLE_EFFECT_TYPE:\n dispatch(\n mapId,\n reorderEffect(\n reorderEffectOrder(\n effectOrder,\n activeEffectId.toString(),\n over.id.toString(),\n ),\n ),\n );\n break;\n // moving effects within side panel\n case SORTABLE_EFFECT_PANEL_TYPE:\n // move effect to the end of the list\n dispatch(\n mapId,\n reorderEffect(\n reorderEffectOrder(\n effectOrder,\n activeEffectId.toString(),\n effectOrder[effectOrder.length - 1] || '',\n ),\n ),\n );\n break;\n default:\n break;\n }\n\n setActiveEffect(undefined);\n },\n [dispatch, effectOrder, mapId],\n );\n\n return {\n activeEffect,\n onDragStart: onEffectDragStart,\n onDragEnd: onEffectDragEnd,\n };\n};\n\nexport default useDndEffects;\n"]}
1
+ {"version":3,"file":"useDndEffects.js","sourceRoot":"","sources":["../../src/hooks/useDndEffects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAElD,yEAAyE;AACzE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAQ1C,MAAM,aAAa,GAIG,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;IACpD,oEAAoE;IACpE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAE5E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAGjC,QAAQ,EAAE,CAAC;IAEf,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAqB,EAAE,EAAE;QACxB,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,eAAe,CAAC,CAAC;YACjC,IAAK,eAAuB,CAAC,cAAc,EAAE,CAAC;gBAC5C,QAAQ,CACN,KAAK,EACL,YAAY,CAAC,eAAe,CAAC,EAAE,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAC1D,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAC3B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAmB,EAAE,EAAE;QACtB,MAAM,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,EAAC,EAAE,EAAE,cAAc,EAAC,GAAG,MAAM,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC;QAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,kBAAkB;YAClB,KAAK,oBAAoB;gBACvB,QAAQ,CACN,KAAK,EACL,aAAa,CACX,kBAAkB,CAChB,WAAW,EACX,cAAc,CAAC,QAAQ,EAAE,EACzB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CACnB,CACF,CACF,CAAC;gBACF,MAAM;YACR,oCAAoC;YACpC,KAAK,0BAA0B;gBAC7B,qCAAqC;gBACrC,QAAQ,CACN,KAAK,EACL,aAAa,CACX,kBAAkB,CAChB,WAAW,EACX,cAAc,CAAC,QAAQ,EAAE,EACzB,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAC1C,CACF,CACF,CAAC;gBACF,MAAM;YACR;gBACE,MAAM;QACV,CAAC;QAED,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC,EACD,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAC/B,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,WAAW,EAAE,iBAAiB;QAC9B,SAAS,EAAE,eAAe;KAC3B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","sourcesContent":["import {useCallback, useState} from 'react';\nimport {DragEndEvent, DragStartEvent} from '@dnd-kit/core';\nimport {reorderEffect, updateEffect} from '@kepler.gl/actions';\nimport {reorderEffectOrder} from '@kepler.gl/utils';\nimport {Effect} from '@kepler.gl/types';\nimport {SORTABLE_EFFECT_TYPE} from '@kepler.gl/components';\n\nimport {useStoreWithKepler} from '../KeplerSlice';\n\n// TODO import from @kepler.gl/components once 3.2.1 release is available\nconst SORTABLE_EFFECT_PANEL_TYPE = 'root';\n\ntype DndEffectsHook = {\n activeEffect: Effect | undefined;\n onDragStart: (event: DragStartEvent) => void;\n onDragEnd: (event: DragEndEvent) => void;\n};\n\nconst useDndEffects: (\n mapId: string | undefined,\n effects: Effect[],\n effectOrder: string[],\n) => DndEffectsHook = (mapId, effects, effectOrder) => {\n // Use the proper sqlrooms dispatch mechanism instead of useDispatch\n const dispatch = useStoreWithKepler((state) => state.kepler.dispatchAction);\n\n const [activeEffect, setActiveEffect]: [\n Effect | undefined,\n (effect: Effect | undefined) => void,\n ] = useState();\n\n const onEffectDragStart = useCallback(\n (event: DragStartEvent) => {\n const {active} = event;\n if (!mapId) return;\n const newActiveEffect = effects.find((effect) => effect.id === active.id);\n if (newActiveEffect) {\n setActiveEffect(newActiveEffect);\n if ((newActiveEffect as any).isConfigActive) {\n dispatch(\n mapId,\n updateEffect(newActiveEffect.id, {isConfigActive: false}),\n );\n }\n }\n },\n [dispatch, effects, mapId],\n );\n\n const onEffectDragEnd = useCallback(\n (event: DragEndEvent) => {\n const {active, over} = event;\n if (!mapId) return;\n\n const {id: activeEffectId} = active;\n const overType = over?.data?.current?.type;\n\n if (!overType) {\n setActiveEffect(undefined);\n return;\n }\n\n switch (overType) {\n // swaping effects\n case SORTABLE_EFFECT_TYPE:\n dispatch(\n mapId,\n reorderEffect(\n reorderEffectOrder(\n effectOrder,\n activeEffectId.toString(),\n over.id.toString(),\n ),\n ),\n );\n break;\n // moving effects within side panel\n case SORTABLE_EFFECT_PANEL_TYPE:\n // move effect to the end of the list\n dispatch(\n mapId,\n reorderEffect(\n reorderEffectOrder(\n effectOrder,\n activeEffectId.toString(),\n effectOrder[effectOrder.length - 1] || '',\n ),\n ),\n );\n break;\n default:\n break;\n }\n\n setActiveEffect(undefined);\n },\n [dispatch, effectOrder, mapId],\n );\n\n return {\n activeEffect,\n onDragStart: onEffectDragStart,\n onDragEnd: onEffectDragEnd,\n };\n};\n\nexport default useDndEffects;\n"]}
@@ -5,6 +5,6 @@ type DndEffectsHook = {
5
5
  onDragStart: (event: DragStartEvent) => void;
6
6
  onDragEnd: (event: DragEndEvent) => void;
7
7
  };
8
- declare const useDndLayers: (mapId: string, layers: Layer[], layerOrder: string[]) => DndEffectsHook;
8
+ declare const useDndLayers: (mapId: string | undefined, layers: Layer[], layerOrder: string[]) => DndEffectsHook;
9
9
  export default useDndLayers;
10
10
  //# sourceMappingURL=useDndLayers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDndLayers.d.ts","sourceRoot":"","sources":["../../src/hooks/useDndLayers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAO3D,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAQxC,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,KAAK,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,MAAM,EAAE,KACjB,cA8EJ,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"useDndLayers.d.ts","sourceRoot":"","sources":["../../src/hooks/useDndLayers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAO3D,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAQxC,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,KAAK,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,QAAA,MAAM,YAAY,EAAE,CAClB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,MAAM,EAAE,KAAK,EAAE,EACf,UAAU,EAAE,MAAM,EAAE,KACjB,cAgFJ,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -8,6 +8,8 @@ const useDndLayers = (mapId, layers, layerOrder) => {
8
8
  const [activeLayer, setActiveLayer] = useState();
9
9
  const onDragStart = useCallback((event) => {
10
10
  const { active } = event;
11
+ if (!mapId)
12
+ return;
11
13
  const newActiveLayer = layers.find((layer) => layer.id === active.id);
12
14
  if (newActiveLayer) {
13
15
  setActiveLayer(newActiveLayer);
@@ -18,6 +20,8 @@ const useDndLayers = (mapId, layers, layerOrder) => {
18
20
  }, [dispatch, layers, mapId]);
19
21
  const onDragEnd = useCallback((event) => {
20
22
  const { active, over } = event;
23
+ if (!mapId)
24
+ return;
21
25
  const { id: activeLayerId } = active;
22
26
  const overType = over?.data?.current?.type;
23
27
  if (!overType) {
@@ -1 +1 @@
1
- {"version":3,"file":"useDndLayers.js","sourceRoot":"","sources":["../../src/hooks/useDndLayers.ts"],"names":[],"mappings":"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","sourcesContent":["import {useCallback, useState} from 'react';\nimport {DragEndEvent, DragStartEvent} from '@dnd-kit/core';\nimport {\n layerConfigChange,\n reorderLayer,\n toggleLayerForMap,\n} from '@kepler.gl/actions';\nimport {reorderLayerOrder} from '@kepler.gl/reducers';\nimport {Layer} from '@kepler.gl/layers';\nimport {\n DROPPABLE_MAP_CONTAINER_TYPE,\n SORTABLE_LAYER_TYPE,\n SORTABLE_SIDE_PANEL_TYPE,\n} from '@kepler.gl/components';\nimport {useStoreWithKepler} from '../KeplerSlice';\n\ntype DndEffectsHook = {\n activeLayer: Layer | undefined;\n onDragStart: (event: DragStartEvent) => void;\n onDragEnd: (event: DragEndEvent) => void;\n};\n\nconst useDndLayers: (\n mapId: string,\n layers: Layer[],\n layerOrder: string[],\n) => DndEffectsHook = (mapId, layers, layerOrder) => {\n const dispatch = useStoreWithKepler((state) => state.kepler.dispatchAction);\n\n const [activeLayer, setActiveLayer]: [\n activeEffect: Layer | undefined,\n setActiveEffect: (effect: Layer | undefined) => void,\n ] = useState();\n\n const onDragStart = useCallback(\n (event: any) => {\n const {active} = event;\n const newActiveLayer = layers.find((layer) => layer.id === active.id);\n if (newActiveLayer) {\n setActiveLayer(newActiveLayer);\n if (newActiveLayer?.config.isConfigActive) {\n dispatch(\n mapId,\n layerConfigChange(newActiveLayer, {isConfigActive: false}),\n );\n }\n }\n },\n [dispatch, layers, mapId],\n );\n\n const onDragEnd = useCallback(\n (event: any) => {\n const {active, over} = event;\n\n const {id: activeLayerId} = active;\n const overType = over?.data?.current?.type;\n\n if (!overType) {\n setActiveLayer(undefined);\n return;\n }\n\n switch (overType) {\n // moving layers into maps\n case DROPPABLE_MAP_CONTAINER_TYPE: {\n const mapIndex = over.data.current?.index ?? 0;\n dispatch(mapId, toggleLayerForMap(mapIndex, activeLayerId));\n break;\n }\n // swaping layers\n case SORTABLE_LAYER_TYPE: {\n const newLayerOrder = reorderLayerOrder(\n layerOrder,\n activeLayerId,\n over.id,\n );\n dispatch(mapId, reorderLayer(newLayerOrder));\n break;\n }\n // moving layers within side panel\n case SORTABLE_SIDE_PANEL_TYPE:\n // move layer to the end of the list\n dispatch(\n mapId,\n reorderLayer(\n reorderLayerOrder(\n layerOrder,\n activeLayerId,\n layerOrder[layerOrder.length - 1] || '',\n ),\n ),\n );\n break;\n default:\n break;\n }\n\n setActiveLayer(undefined);\n },\n [dispatch, layerOrder, mapId],\n );\n\n return {activeLayer, onDragStart, onDragEnd};\n};\n\nexport default useDndLayers;\n"]}
1
+ {"version":3,"file":"useDndLayers.js","sourceRoot":"","sources":["../../src/hooks/useDndLayers.ts"],"names":[],"mappings":"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","sourcesContent":["import {useCallback, useState} from 'react';\nimport {DragEndEvent, DragStartEvent} from '@dnd-kit/core';\nimport {\n layerConfigChange,\n reorderLayer,\n toggleLayerForMap,\n} from '@kepler.gl/actions';\nimport {reorderLayerOrder} from '@kepler.gl/reducers';\nimport {Layer} from '@kepler.gl/layers';\nimport {\n DROPPABLE_MAP_CONTAINER_TYPE,\n SORTABLE_LAYER_TYPE,\n SORTABLE_SIDE_PANEL_TYPE,\n} from '@kepler.gl/components';\nimport {useStoreWithKepler} from '../KeplerSlice';\n\ntype DndEffectsHook = {\n activeLayer: Layer | undefined;\n onDragStart: (event: DragStartEvent) => void;\n onDragEnd: (event: DragEndEvent) => void;\n};\n\nconst useDndLayers: (\n mapId: string | undefined,\n layers: Layer[],\n layerOrder: string[],\n) => DndEffectsHook = (mapId, layers, layerOrder) => {\n const dispatch = useStoreWithKepler((state) => state.kepler.dispatchAction);\n\n const [activeLayer, setActiveLayer]: [\n activeEffect: Layer | undefined,\n setActiveEffect: (effect: Layer | undefined) => void,\n ] = useState();\n\n const onDragStart = useCallback(\n (event: any) => {\n const {active} = event;\n if (!mapId) return;\n const newActiveLayer = layers.find((layer) => layer.id === active.id);\n if (newActiveLayer) {\n setActiveLayer(newActiveLayer);\n if (newActiveLayer?.config.isConfigActive) {\n dispatch(\n mapId,\n layerConfigChange(newActiveLayer, {isConfigActive: false}),\n );\n }\n }\n },\n [dispatch, layers, mapId],\n );\n\n const onDragEnd = useCallback(\n (event: any) => {\n const {active, over} = event;\n if (!mapId) return;\n\n const {id: activeLayerId} = active;\n const overType = over?.data?.current?.type;\n\n if (!overType) {\n setActiveLayer(undefined);\n return;\n }\n\n switch (overType) {\n // moving layers into maps\n case DROPPABLE_MAP_CONTAINER_TYPE: {\n const mapIndex = over.data.current?.index ?? 0;\n dispatch(mapId, toggleLayerForMap(mapIndex, activeLayerId));\n break;\n }\n // swaping layers\n case SORTABLE_LAYER_TYPE: {\n const newLayerOrder = reorderLayerOrder(\n layerOrder,\n activeLayerId,\n over.id,\n );\n dispatch(mapId, reorderLayer(newLayerOrder));\n break;\n }\n // moving layers within side panel\n case SORTABLE_SIDE_PANEL_TYPE:\n // move layer to the end of the list\n dispatch(\n mapId,\n reorderLayer(\n reorderLayerOrder(\n layerOrder,\n activeLayerId,\n layerOrder[layerOrder.length - 1] || '',\n ),\n ),\n );\n break;\n default:\n break;\n }\n\n setActiveLayer(undefined);\n },\n [dispatch, layerOrder, mapId],\n );\n\n return {activeLayer, onDragStart, onDragEnd};\n};\n\nexport default useDndLayers;\n"]}
@@ -1,11 +1,12 @@
1
- import { KeplerAction } from '../KeplerSlice';
1
+ import { MapStateActions, MapStyleActions, ProviderActions, UIStateActions, VisStateActions } from '@kepler.gl/actions';
2
2
  import { KeplerGlState } from '@kepler.gl/reducers';
3
+ import { KeplerAction } from '../KeplerSlice';
3
4
  export type KeplerActions = {
4
- visStateActions: any;
5
- mapStateActions: any;
6
- mapStyleActions: any;
7
- uiStateActions: any;
8
- providerActions: any;
5
+ uiStateActions: typeof UIStateActions;
6
+ visStateActions: typeof VisStateActions;
7
+ mapStateActions: typeof MapStateActions;
8
+ mapStyleActions: typeof MapStyleActions;
9
+ providerActions: typeof ProviderActions;
9
10
  dispatch: (action: KeplerAction) => void;
10
11
  };
11
12
  export declare function useKeplerStateActions({ mapId }: {
@@ -1 +1 @@
1
- {"version":3,"file":"useKeplerStateActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeplerStateActions.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAqB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAGlD,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,EAAE,GAAG,CAAC;IACrB,cAAc,EAAE,GAAG,CAAC;IACpB,eAAe,EAAE,GAAG,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AACF,wBAAgB,qBAAqB,CAAC,EAAC,KAAK,EAAC,EAAE;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GAAG;IAC/D,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;CACxC,CAoBA"}
1
+ {"version":3,"file":"useKeplerStateActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeplerStateActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAC,YAAY,EAAqB,MAAM,gBAAgB,CAAC;AAGhE,MAAM,MAAM,aAAa,GAAG;IAC1B,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C,CAAC;AACF,wBAAgB,qBAAqB,CAAC,EAAC,KAAK,EAAC,EAAE;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GAAG;IAC/D,aAAa,EAAE,aAAa,CAAC;IAC7B,WAAW,EAAE,aAAa,GAAG,SAAS,CAAC;CACxC,CAoBA"}
@@ -1,6 +1,6 @@
1
+ import { makeGetActionCreators } from '@kepler.gl/components';
1
2
  import { useMemo } from 'react';
2
3
  import { useStoreWithKepler } from '../KeplerSlice';
3
- import { makeGetActionCreators } from '@kepler.gl/components';
4
4
  const keplerActionSelector = makeGetActionCreators();
5
5
  export function useKeplerStateActions({ mapId }) {
6
6
  const dispatchAction = useStoreWithKepler((state) => state.kepler.dispatchAction);
@@ -1 +1 @@
1
- {"version":3,"file":"useKeplerStateActions.js","sourceRoot":"","sources":["../../src/hooks/useKeplerStateActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAe,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAG5D,MAAM,oBAAoB,GAAG,qBAAqB,EAAE,CAAC;AASrD,MAAM,UAAU,qBAAqB,CAAC,EAAC,KAAK,EAAkB;IAI5D,MAAM,cAAc,GAAG,kBAAkB,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CACvC,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,CAAC,MAAoB,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAC7D,CAAC,KAAK,EAAE,cAAc,CAAC,CACxB,CAAC;IAEF,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,EAAE,CAAC,EACjD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,CAAC;AACtC,CAAC","sourcesContent":["import {useMemo} from 'react';\nimport {KeplerAction, useStoreWithKepler} from '../KeplerSlice';\nimport {makeGetActionCreators} from '@kepler.gl/components';\nimport {KeplerGlState} from '@kepler.gl/reducers';\n\nconst keplerActionSelector = makeGetActionCreators();\nexport type KeplerActions = {\n visStateActions: any;\n mapStateActions: any;\n mapStyleActions: any;\n uiStateActions: any;\n providerActions: any;\n dispatch: (action: KeplerAction) => void;\n};\nexport function useKeplerStateActions({mapId}: {mapId: string}): {\n keplerActions: KeplerActions;\n keplerState: KeplerGlState | undefined;\n} {\n const dispatchAction = useStoreWithKepler(\n (state) => state.kepler.dispatchAction,\n );\n\n const forwardToDispatch = useMemo(\n () => (action: KeplerAction) => dispatchAction(mapId, action),\n [mapId, dispatchAction],\n );\n\n const keplerState = useStoreWithKepler((state) => {\n return state.kepler.map[mapId];\n });\n\n const keplerActions = useMemo(\n () => keplerActionSelector(forwardToDispatch, {}),\n [forwardToDispatch],\n );\n\n return {keplerActions, keplerState};\n}\n"]}
1
+ {"version":3,"file":"useKeplerStateActions.js","sourceRoot":"","sources":["../../src/hooks/useKeplerStateActions.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAe,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAEhE,MAAM,oBAAoB,GAAG,qBAAqB,EAAE,CAAC;AASrD,MAAM,UAAU,qBAAqB,CAAC,EAAC,KAAK,EAAkB;IAI5D,MAAM,cAAc,GAAG,kBAAkB,CACvC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CACvC,CAAC;IAEF,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,CAAC,MAAoB,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAC7D,CAAC,KAAK,EAAE,cAAc,CAAC,CACxB,CAAC;IAEF,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,EAAE,CAAC,EACjD,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,OAAO,EAAC,aAAa,EAAE,WAAW,EAAC,CAAC;AACtC,CAAC","sourcesContent":["import {\n MapStateActions,\n MapStyleActions,\n ProviderActions,\n UIStateActions,\n VisStateActions,\n} from '@kepler.gl/actions';\nimport {makeGetActionCreators} from '@kepler.gl/components';\nimport {KeplerGlState} from '@kepler.gl/reducers';\nimport {useMemo} from 'react';\nimport {KeplerAction, useStoreWithKepler} from '../KeplerSlice';\n\nconst keplerActionSelector = makeGetActionCreators();\nexport type KeplerActions = {\n uiStateActions: typeof UIStateActions;\n visStateActions: typeof VisStateActions;\n mapStateActions: typeof MapStateActions;\n mapStyleActions: typeof MapStyleActions;\n providerActions: typeof ProviderActions;\n dispatch: (action: KeplerAction) => void;\n};\nexport function useKeplerStateActions({mapId}: {mapId: string}): {\n keplerActions: KeplerActions;\n keplerState: KeplerGlState | undefined;\n} {\n const dispatchAction = useStoreWithKepler(\n (state) => state.kepler.dispatchAction,\n );\n\n const forwardToDispatch = useMemo(\n () => (action: KeplerAction) => dispatchAction(mapId, action),\n [mapId, dispatchAction],\n );\n\n const keplerState = useStoreWithKepler((state) => {\n return state.kepler.map[mapId];\n });\n\n const keplerActions = useMemo(\n () => keplerActionSelector(forwardToDispatch, {}),\n [forwardToDispatch],\n );\n\n return {keplerActions, keplerState};\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -3,27 +3,34 @@
3
3
  * @packageDocumentation
4
4
  */
5
5
  export { createDefaultKeplerConfig, createKeplerSlice, useStoreWithKepler, } from './KeplerSlice';
6
- export type { KeplerSliceState } from './KeplerSlice';
6
+ export type { AddTableToMapFn, AddTableToMapLoadOptions, AddTableToMapParams, CreateInitialMapKeplerStateContext, CreateKeplerSliceOptions, KeplerModalPortalTarget, KeplerSliceState, } from './KeplerSlice';
7
+ export { buildKeplerTableLayerOptions, findKeplerTableForDatasetId, getKeplerDatasetIdForTable, getKeplerTableLabel, shouldIncludeKeplerTable, } from './keplerTableSelection';
8
+ export type { KeplerDbSchemaReference, KeplerTableLayerOption, KeplerTableSelectionOptions, } from './keplerTableSelection';
7
9
  export { FileDropInput } from './components/FileDropInput';
8
10
  export { KeplerAddDataDialog } from './components/KeplerAddDataDialog';
9
11
  export type { AddDataMethods, KeplerAddDataDialogProps, } from './components/KeplerAddDataDialog';
10
12
  export { KeplerAddTileSetDialog } from './components/KeplerAddTileSetDialog';
11
13
  export type { LoadTileSet } from './components/KeplerAddTileSetDialog';
12
14
  export { KeplerImageExport } from './components/KeplerImageExport';
13
- export { configureKeplerInjector, KeplerInjector, getKeplerFactory, getKeplerInjector, resetKeplerInjectorRecipes, } from './components/KeplerInjector';
15
+ export { configureKeplerInjector, getKeplerFactory, getKeplerInjector, KeplerInjector, resetKeplerInjectorRecipes, } from './components/KeplerInjector';
14
16
  export type { KeplerFactoryRecipe, KeplerFactoryRecipeMode, } from './components/KeplerInjector';
15
17
  export { KeplerMapContainer } from './components/KeplerMapContainer';
18
+ export { SplitMapIndexContext } from './components/SplitMapIndexContext';
16
19
  export { KeplerPlotContainer } from './components/KeplerPlotContainer';
17
20
  export { KeplerProvider } from './components/KeplerProvider';
18
21
  export { KeplerS3Browser } from './components/KeplerS3Browser';
19
22
  export type { KeplerS3BrowserProps } from './components/KeplerS3Browser';
20
23
  export { KeplerSidePanels } from './components/KeplerSidePanels';
21
24
  export { useKeplerStateActions } from './hooks/useKeplerStateActions';
22
- export { KeplerMapSchema, KeplerSliceConfig } from '@sqlrooms/kepler-config';
25
+ export { KeplerMapSchema, KeplerSliceConfig, migrateKeplerTabsToArtifacts, } from '@sqlrooms/kepler-config';
26
+ export type { KeplerTabsArtifactsMigrationOptions } from '@sqlrooms/kepler-config';
23
27
  export { CustomDndContextFactory } from './components/CustomDndContext';
24
28
  export { CustomFilterPanelHeaderFactory } from './components/CustomFilterPanelHeader';
25
29
  export { CustomMapControlTooltipFactory } from './components/CustomMapControlTooltipFactory';
26
30
  export { CustomMapLegendFactory } from './components/CustomMapLegend';
27
31
  export { CustomMapLegendPanelFactory } from './components/CustomMapLegendPanel';
28
32
  export { CustomAddDataButtonFactory, CustomPanelTitleFactory, } from './components/KeplerInjector';
33
+ export { createKeplerTheme, darkTheme } from './styles/theme';
34
+ export type { KeplerThemeOverrides } from './styles/theme';
35
+ export type { KeplerGLBasicProps } from './KeplerSlice';
29
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAC,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,YAAY,EACV,cAAc,EACd,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,YAAY,EAAC,WAAW,EAAC,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAIpE,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,8BAA8B,EAAC,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,kCAAkC,EAClC,wBAAwB,EACxB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,YAAY,EACV,cAAc,EACd,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAC3E,YAAY,EAAC,WAAW,EAAC,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,oBAAoB,EAAC,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAIpE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAC,mCAAmC,EAAC,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,8BAA8B,EAAC,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,iBAAiB,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAC,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AACzD,YAAY,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -3,12 +3,14 @@
3
3
  * @packageDocumentation
4
4
  */
5
5
  export { createDefaultKeplerConfig, createKeplerSlice, useStoreWithKepler, } from './KeplerSlice';
6
+ export { buildKeplerTableLayerOptions, findKeplerTableForDatasetId, getKeplerDatasetIdForTable, getKeplerTableLabel, shouldIncludeKeplerTable, } from './keplerTableSelection';
6
7
  export { FileDropInput } from './components/FileDropInput';
7
8
  export { KeplerAddDataDialog } from './components/KeplerAddDataDialog';
8
9
  export { KeplerAddTileSetDialog } from './components/KeplerAddTileSetDialog';
9
10
  export { KeplerImageExport } from './components/KeplerImageExport';
10
- export { configureKeplerInjector, KeplerInjector, getKeplerFactory, getKeplerInjector, resetKeplerInjectorRecipes, } from './components/KeplerInjector';
11
+ export { configureKeplerInjector, getKeplerFactory, getKeplerInjector, KeplerInjector, resetKeplerInjectorRecipes, } from './components/KeplerInjector';
11
12
  export { KeplerMapContainer } from './components/KeplerMapContainer';
13
+ export { SplitMapIndexContext } from './components/SplitMapIndexContext';
12
14
  export { KeplerPlotContainer } from './components/KeplerPlotContainer';
13
15
  export { KeplerProvider } from './components/KeplerProvider';
14
16
  export { KeplerS3Browser } from './components/KeplerS3Browser';
@@ -16,11 +18,12 @@ export { KeplerSidePanels } from './components/KeplerSidePanels';
16
18
  export { useKeplerStateActions } from './hooks/useKeplerStateActions';
17
19
  // Re-export from @sqlrooms/kepler-config
18
20
  // Values also export their corresponding types automatically (Zod pattern)
19
- export { KeplerMapSchema, KeplerSliceConfig } from '@sqlrooms/kepler-config';
21
+ export { KeplerMapSchema, KeplerSliceConfig, migrateKeplerTabsToArtifacts, } from '@sqlrooms/kepler-config';
20
22
  export { CustomDndContextFactory } from './components/CustomDndContext';
21
23
  export { CustomFilterPanelHeaderFactory } from './components/CustomFilterPanelHeader';
22
24
  export { CustomMapControlTooltipFactory } from './components/CustomMapControlTooltipFactory';
23
25
  export { CustomMapLegendFactory } from './components/CustomMapLegend';
24
26
  export { CustomMapLegendPanelFactory } from './components/CustomMapLegendPanel';
25
27
  export { CustomAddDataButtonFactory, CustomPanelTitleFactory, } from './components/KeplerInjector';
28
+ export { createKeplerTheme, darkTheme } from './styles/theme';
26
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAKrE,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,yCAAyC;AACzC,2EAA2E;AAC3E,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,8BAA8B,EAAC,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC","sourcesContent":["/**\n * {@include ../README.md}\n * @packageDocumentation\n */\n\nexport {\n createDefaultKeplerConfig,\n createKeplerSlice,\n useStoreWithKepler,\n} from './KeplerSlice';\nexport type {KeplerSliceState} from './KeplerSlice';\n\nexport {FileDropInput} from './components/FileDropInput';\nexport {KeplerAddDataDialog} from './components/KeplerAddDataDialog';\nexport type {\n AddDataMethods,\n KeplerAddDataDialogProps,\n} from './components/KeplerAddDataDialog';\nexport {KeplerAddTileSetDialog} from './components/KeplerAddTileSetDialog';\nexport type {LoadTileSet} from './components/KeplerAddTileSetDialog';\nexport {KeplerImageExport} from './components/KeplerImageExport';\nexport {\n configureKeplerInjector,\n KeplerInjector,\n getKeplerFactory,\n getKeplerInjector,\n resetKeplerInjectorRecipes,\n} from './components/KeplerInjector';\nexport type {\n KeplerFactoryRecipe,\n KeplerFactoryRecipeMode,\n} from './components/KeplerInjector';\nexport {KeplerMapContainer} from './components/KeplerMapContainer';\nexport {KeplerPlotContainer} from './components/KeplerPlotContainer';\nexport {KeplerProvider} from './components/KeplerProvider';\nexport {KeplerS3Browser} from './components/KeplerS3Browser';\nexport type {KeplerS3BrowserProps} from './components/KeplerS3Browser';\nexport {KeplerSidePanels} from './components/KeplerSidePanels';\nexport {useKeplerStateActions} from './hooks/useKeplerStateActions';\n\n// Re-export from @sqlrooms/kepler-config\n// Values also export their corresponding types automatically (Zod pattern)\nexport {KeplerMapSchema, KeplerSliceConfig} from '@sqlrooms/kepler-config';\n\nexport {CustomDndContextFactory} from './components/CustomDndContext';\nexport {CustomFilterPanelHeaderFactory} from './components/CustomFilterPanelHeader';\nexport {CustomMapControlTooltipFactory} from './components/CustomMapControlTooltipFactory';\nexport {CustomMapLegendFactory} from './components/CustomMapLegend';\nexport {CustomMapLegendPanelFactory} from './components/CustomMapLegendPanel';\nexport {\n CustomAddDataButtonFactory,\n CustomPanelTitleFactory,\n} from './components/KeplerInjector';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAUvB,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAKrE,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,qBAAqB,EAAC,MAAM,+BAA+B,CAAC;AAEpE,yCAAyC;AACzC,2EAA2E;AAC3E,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,uBAAuB,EAAC,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAC,8BAA8B,EAAC,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAC,8BAA8B,EAAC,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,2BAA2B,EAAC,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,iBAAiB,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC","sourcesContent":["/**\n * {@include ../README.md}\n * @packageDocumentation\n */\n\nexport {\n createDefaultKeplerConfig,\n createKeplerSlice,\n useStoreWithKepler,\n} from './KeplerSlice';\nexport type {\n AddTableToMapFn,\n AddTableToMapLoadOptions,\n AddTableToMapParams,\n CreateInitialMapKeplerStateContext,\n CreateKeplerSliceOptions,\n KeplerModalPortalTarget,\n KeplerSliceState,\n} from './KeplerSlice';\nexport {\n buildKeplerTableLayerOptions,\n findKeplerTableForDatasetId,\n getKeplerDatasetIdForTable,\n getKeplerTableLabel,\n shouldIncludeKeplerTable,\n} from './keplerTableSelection';\nexport type {\n KeplerDbSchemaReference,\n KeplerTableLayerOption,\n KeplerTableSelectionOptions,\n} from './keplerTableSelection';\n\nexport {FileDropInput} from './components/FileDropInput';\nexport {KeplerAddDataDialog} from './components/KeplerAddDataDialog';\nexport type {\n AddDataMethods,\n KeplerAddDataDialogProps,\n} from './components/KeplerAddDataDialog';\nexport {KeplerAddTileSetDialog} from './components/KeplerAddTileSetDialog';\nexport type {LoadTileSet} from './components/KeplerAddTileSetDialog';\nexport {KeplerImageExport} from './components/KeplerImageExport';\nexport {\n configureKeplerInjector,\n getKeplerFactory,\n getKeplerInjector,\n KeplerInjector,\n resetKeplerInjectorRecipes,\n} from './components/KeplerInjector';\nexport type {\n KeplerFactoryRecipe,\n KeplerFactoryRecipeMode,\n} from './components/KeplerInjector';\nexport {KeplerMapContainer} from './components/KeplerMapContainer';\nexport {SplitMapIndexContext} from './components/SplitMapIndexContext';\nexport {KeplerPlotContainer} from './components/KeplerPlotContainer';\nexport {KeplerProvider} from './components/KeplerProvider';\nexport {KeplerS3Browser} from './components/KeplerS3Browser';\nexport type {KeplerS3BrowserProps} from './components/KeplerS3Browser';\nexport {KeplerSidePanels} from './components/KeplerSidePanels';\nexport {useKeplerStateActions} from './hooks/useKeplerStateActions';\n\n// Re-export from @sqlrooms/kepler-config\n// Values also export their corresponding types automatically (Zod pattern)\nexport {\n KeplerMapSchema,\n KeplerSliceConfig,\n migrateKeplerTabsToArtifacts,\n} from '@sqlrooms/kepler-config';\nexport type {KeplerTabsArtifactsMigrationOptions} from '@sqlrooms/kepler-config';\n\nexport {CustomDndContextFactory} from './components/CustomDndContext';\nexport {CustomFilterPanelHeaderFactory} from './components/CustomFilterPanelHeader';\nexport {CustomMapControlTooltipFactory} from './components/CustomMapControlTooltipFactory';\nexport {CustomMapLegendFactory} from './components/CustomMapLegend';\nexport {CustomMapLegendPanelFactory} from './components/CustomMapLegendPanel';\nexport {\n CustomAddDataButtonFactory,\n CustomPanelTitleFactory,\n} from './components/KeplerInjector';\n\nexport {createKeplerTheme, darkTheme} from './styles/theme';\nexport type {KeplerThemeOverrides} from './styles/theme';\nexport type {KeplerGLBasicProps} from './KeplerSlice';\n"]}