impact-nova 2.6.2 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/data/ag-grid-react/ag-grid-cell-components.d.ts +9 -0
- package/dist/components/data/ag-grid-react/ag-grid-list.d.ts +16 -0
- package/dist/components/data/ag-grid-react/ag-grid-list.js +23 -0
- package/dist/components/data/ag-grid-react/ag-grid.types.d.ts +21 -9
- package/dist/components/data/ag-grid-react/cell-renderers/editors/list-select-cell-editor.d.ts +14 -0
- package/dist/components/data/ag-grid-react/cell-renderers/editors/list-select-cell-editor.js +70 -0
- package/dist/components/data/ag-grid-react/cell-renderers/editors/select-cell-editor.d.ts +10 -5
- package/dist/components/data/ag-grid-react/cell-renderers/editors/select-cell-editor.js +73 -41
- package/dist/components/data/ag-grid-react/cell-renderers/index.d.ts +7 -0
- package/dist/components/data/ag-grid-react/cell-renderers/index.js +42 -36
- package/dist/components/data/ag-grid-react/cell-renderers/list-select-display-renderer.d.ts +19 -0
- package/dist/components/data/ag-grid-react/cell-renderers/list-select-display-renderer.js +89 -0
- package/dist/components/data/ag-grid-react/cell-renderers/select-ai-insight-affordance.d.ts +28 -0
- package/dist/components/data/ag-grid-react/cell-renderers/select-ai-insight-affordance.js +96 -0
- package/dist/components/data/ag-grid-react/cell-renderers/select-display-renderer.d.ts +30 -10
- package/dist/components/data/ag-grid-react/cell-renderers/select-display-renderer.js +72 -24
- package/dist/components/data/ag-grid-react/cell-renderers/style-description-display-renderer.d.ts +42 -0
- package/dist/components/data/ag-grid-react/cell-renderers/style-description-display-renderer.js +86 -0
- package/dist/components/data/ag-grid-react/headers/components/date-filter-picker.d.ts +2 -12
- package/dist/components/data/ag-grid-react/headers/header-search-input.js +200 -207
- package/dist/components/data/ag-grid-react/index.d.ts +1 -1
- package/dist/components/data/ag-grid-react/index.js +263 -244
- package/dist/components/data/data-table/data-table.js +85 -82
- package/dist/components/data/data-table/data-table.types.d.ts +5 -0
- package/dist/components/data/expandable-list-item/expandable-list-item-attributes.js +2 -3
- package/dist/components/data/expandable-list-item/expandable-list-item-metrics.js +2 -3
- package/dist/components/data/expandable-list-item/sku-next-page-coordinator.d.ts +14 -0
- package/dist/components/data/expandable-list-item/sku-strip-lookahead.d.ts +26 -0
- package/dist/components/data/expandable-list-item/useServerSkuInfinitePages.d.ts +10 -0
- package/dist/components/data/expandable-list-item/useSkuStripVirtualizer.d.ts +30 -0
- package/dist/components/data/expandable-list-item/virtualized-responsive-grid.catalog.d.ts +81 -0
- package/dist/components/data/expandable-list-item/virtualized-responsive-grid.item-grid.d.ts +1 -0
- package/dist/components/data/expandable-list-item/virtualized-responsive-grid.product-card.d.ts +7 -0
- package/dist/components/data/expandable-list-item/virtualized-responsive-grid.sku-picker.d.ts +2 -0
- package/dist/components/data-display/chart/chart-heatmap-demos.d.ts +3 -0
- package/dist/components/data-display/chart/chart-heatmap-play.d.ts +9 -0
- package/dist/components/data-display/chart/chart.category-cluster-heatmap.stories-data.d.ts +22 -0
- package/dist/components/data-display/chart/chart.diverging-heatmap.stories-data.d.ts +43 -0
- package/dist/components/data-display/chart/chart.js +100 -93
- package/dist/components/data-display/chart/chart.types.d.ts +10 -0
- package/dist/components/data-display/chart/chart.utils.d.ts +14 -2
- package/dist/components/data-display/chart/chart.utils.js +132 -35
- package/dist/components/data-display/chart/index.js +15 -13
- package/dist/components/data-display/chart/resolve-highcharts-options.js +19 -14
- package/dist/components/data-display/globe-map/globe-map.d.ts +8 -0
- package/dist/components/data-display/globe-map/globe-map.js +161 -0
- package/dist/components/data-display/globe-map/globe-map.stories-data.d.ts +12 -0
- package/dist/components/data-display/globe-map/globe-map.types.d.ts +83 -0
- package/dist/components/data-display/globe-map/globe-map.utils.d.ts +115 -0
- package/dist/components/data-display/globe-map/globe-map.utils.js +259 -0
- package/dist/components/data-display/globe-map/globe-map.variants.d.ts +19 -0
- package/dist/components/data-display/globe-map/globe-map.variants.js +80 -0
- package/dist/components/data-display/globe-map/index.d.ts +2 -0
- package/dist/components/data-display/globe-map/index.js +10 -0
- package/dist/components/data-display/globe-map/internals/globe-countries-110m.json.d.ts +4 -0
- package/dist/components/data-display/globe-map/internals/globe-countries-110m.json.js +7 -0
- package/dist/components/data-display/globe-map/internals/globe-map-context.d.ts +25 -0
- package/dist/components/data-display/globe-map/internals/globe-map-context.js +19 -0
- package/dist/components/data-display/globe-map/internals/globe-map-legend.d.ts +2 -0
- package/dist/components/data-display/globe-map/internals/globe-map-legend.js +51 -0
- package/dist/components/data-display/globe-map/internals/globe-map-point-card-carousel.d.ts +6 -0
- package/dist/components/data-display/globe-map/internals/globe-map-point-card-carousel.js +119 -0
- package/dist/components/data-display/globe-map/internals/globe-map-point-card.d.ts +2 -0
- package/dist/components/data-display/globe-map/internals/globe-map-point-card.js +106 -0
- package/dist/components/data-display/globe-map/internals/globe-map-scene.d.ts +17 -0
- package/dist/components/data-display/globe-map/internals/globe-map-scene.js +218 -0
- package/dist/components/data-display/globe-map/internals/globe-map-tooltip.d.ts +2 -0
- package/dist/components/data-display/globe-map/internals/globe-map-tooltip.js +33 -0
- package/dist/components/data-display/globe-map/internals/use-globe-map-scene.d.ts +45 -0
- package/dist/components/data-display/globe-map/internals/use-globe-map-scene.js +270 -0
- package/dist/components/data-display/hex-tilemap/hex-tilemap.d.ts +9 -0
- package/dist/components/data-display/hex-tilemap/hex-tilemap.js +94 -0
- package/dist/components/data-display/hex-tilemap/hex-tilemap.stories-data.d.ts +7 -0
- package/dist/components/data-display/hex-tilemap/hex-tilemap.types.d.ts +43 -0
- package/dist/components/data-display/hex-tilemap/hex-tilemap.variants.d.ts +11 -0
- package/dist/components/data-display/hex-tilemap/hex-tilemap.variants.js +47 -0
- package/dist/components/data-display/hex-tilemap/index.d.ts +2 -0
- package/dist/components/data-display/hex-tilemap/index.js +12 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-camera.d.ts +40 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-camera.js +103 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-country-lattices.d.ts +9 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-country-lattices.js +1387 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-geometry.d.ts +21 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-geometry.js +82 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-lattice.d.ts +18 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-lattice.js +47 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-layout.d.ts +10 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-layout.js +35 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-new-zealand-grid.d.ts +31 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-new-zealand-grid.js +138 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-regions.d.ts +6 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-regions.js +18 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-context.d.ts +24 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-context.js +19 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-legend.d.ts +2 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-legend.js +51 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-tooltip.d.ts +2 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-tooltip.js +36 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-viewport.d.ts +3 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-viewport.js +147 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-zoom.d.ts +13 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-tilemap-zoom.js +99 -0
- package/dist/components/data-display/hex-tilemap/internals/hex-world-grid.d.ts +8 -0
- package/dist/components/data-display/hex-tilemap/internals/use-hex-camera.d.ts +27 -0
- package/dist/components/data-display/hex-tilemap/internals/use-hex-camera.js +137 -0
- package/dist/components/data-display/notch-card/index.d.ts +2 -0
- package/dist/components/data-display/notch-card/index.js +6 -0
- package/dist/components/data-display/notch-card/notch-card.d.ts +7 -0
- package/dist/components/data-display/notch-card/notch-card.js +151 -0
- package/dist/components/data-display/notch-card/notch-card.path.d.ts +19 -0
- package/dist/components/data-display/notch-card/notch-card.path.js +118 -0
- package/dist/components/data-display/notch-card/notch-card.types.d.ts +15 -0
- package/dist/components/data-display/notch-card/notch-card.variants.d.ts +15 -0
- package/dist/components/data-display/notch-card/notch-card.variants.js +86 -0
- package/dist/components/feedback/hover-card/hover-card.d.ts +3 -1
- package/dist/components/feedback/hover-card/hover-card.js +28 -24
- package/dist/components/feedback/tooltip/overflow-tooltip.d.ts +1 -1
- package/dist/components/feedback/tooltip/overflow-tooltip.js +63 -57
- package/dist/components/feedback/tooltip/overflow-tooltip.types.d.ts +4 -0
- package/dist/components/feedback/tooltip/tab-tooltip-render.js +2 -3
- package/dist/components/flows/command-palette/shortcut-settings.js +10 -10
- package/dist/components/flows/filter-panel/filter-panel.js +4 -4
- package/dist/components/flows/filter-strip/index.d.ts +1 -0
- package/dist/components/flows/filter-strip/index.js +4 -2
- package/dist/components/flows/guidance/renderers/guidance-tour-overlay.js +48 -46
- package/dist/components/flows/iris-chat/index.d.ts +10 -0
- package/dist/components/flows/iris-chat/index.js +55 -0
- package/dist/components/flows/iris-chat/iris-chat-artifact.d.ts +4 -0
- package/dist/components/flows/iris-chat/iris-chat-artifact.js +125 -0
- package/dist/components/flows/iris-chat/iris-chat-composer.d.ts +3 -0
- package/dist/components/flows/iris-chat/iris-chat-composer.js +297 -0
- package/dist/components/flows/iris-chat/iris-chat-context.d.ts +14 -0
- package/dist/components/flows/iris-chat/iris-chat-context.js +23 -0
- package/dist/components/flows/iris-chat/iris-chat-icons.d.ts +18 -0
- package/dist/components/flows/iris-chat/iris-chat-icons.js +176 -0
- package/dist/components/flows/iris-chat/iris-chat-markdown.d.ts +3 -0
- package/dist/components/flows/iris-chat/iris-chat-markdown.js +62 -0
- package/dist/components/flows/iris-chat/iris-chat-menu.d.ts +15 -0
- package/dist/components/flows/iris-chat/iris-chat-menu.js +259 -0
- package/dist/components/flows/iris-chat/iris-chat-prompt.d.ts +3 -0
- package/dist/components/flows/iris-chat/iris-chat-prompt.js +46 -0
- package/dist/components/flows/iris-chat/iris-chat-thinking.d.ts +12 -0
- package/dist/components/flows/iris-chat/iris-chat-thinking.js +202 -0
- package/dist/components/flows/iris-chat/iris-chat-thread.d.ts +37 -0
- package/dist/components/flows/iris-chat/iris-chat-thread.js +493 -0
- package/dist/components/flows/iris-chat/iris-chat.d.ts +43 -0
- package/dist/components/flows/iris-chat/iris-chat.js +336 -0
- package/dist/components/flows/iris-chat/iris-chat.types.d.ts +208 -0
- package/dist/components/flows/iris-chat/iris-chat.variants.d.ts +14 -0
- package/dist/components/flows/iris-chat/iris-chat.variants.js +78 -0
- package/dist/components/flows/iris-chat/read-iris-greeting-period.d.ts +4 -0
- package/dist/components/flows/iris-chat/read-iris-greeting-period.js +16 -0
- package/dist/components/flows/wizard/index.d.ts +2 -2
- package/dist/components/flows/wizard/index.js +17 -13
- package/dist/components/flows/wizard/wizard-context.d.ts +6 -1
- package/dist/components/flows/wizard/wizard-context.js +15 -7
- package/dist/components/flows/wizard/wizard.d.ts +22 -4
- package/dist/components/flows/wizard/wizard.js +278 -174
- package/dist/components/flows/wizard/wizard.types.d.ts +40 -0
- package/dist/components/forms/choice-card/assets/featured-backdrop-baked.webp.js +4 -0
- package/dist/components/forms/choice-card/assets/featured-noise.webp.js +4 -0
- package/dist/components/forms/choice-card/choice-card-featured-arcs.d.ts +4 -0
- package/dist/components/forms/choice-card/choice-card-featured-arcs.js +42 -0
- package/dist/components/forms/choice-card/choice-card-featured-backdrop.d.ts +4 -0
- package/dist/components/forms/choice-card/choice-card-featured-backdrop.js +45 -0
- package/dist/components/forms/choice-card/choice-card-indicator.variants.d.ts +8 -0
- package/dist/components/forms/choice-card/choice-card-indicator.variants.js +5 -0
- package/dist/components/forms/choice-card/choice-card-percent.d.ts +11 -0
- package/dist/components/forms/choice-card/choice-card-percent.js +80 -0
- package/dist/components/forms/choice-card/choice-card.d.ts +40 -3
- package/dist/components/forms/choice-card/choice-card.js +651 -170
- package/dist/components/forms/choice-card/choice-card.types.d.ts +40 -0
- package/dist/components/forms/choice-card/choice-card.variants.d.ts +7 -0
- package/dist/components/forms/choice-card/choice-card.variants.js +100 -0
- package/dist/components/forms/choice-card/index.d.ts +2 -1
- package/dist/components/forms/choice-card/index.js +27 -10
- package/dist/components/forms/select/components/SelectTriggerValue.js +2 -3
- package/dist/components/forms/select/components/Submenu.js +2 -3
- package/dist/components/layout/header/header.d.ts +3 -2
- package/dist/components/layout/header/header.js +67 -47
- package/dist/components/layout/header/header.types.d.ts +1 -0
- package/dist/components/primitives/iris/iris-agent-cursor.d.ts +3 -0
- package/dist/components/primitives/iris/iris-agent-cursor.js +89 -0
- package/dist/components/primitives/iris/iris-alan-gradient-icon.d.ts +5 -0
- package/dist/components/primitives/iris/iris-alan-gradient-icon.js +69 -0
- package/dist/components/primitives/iris/iris-control-context.d.ts +15 -0
- package/dist/components/primitives/iris/iris-control-context.js +44 -0
- package/dist/components/primitives/iris/iris-control-region.d.ts +10 -0
- package/dist/components/primitives/iris/iris-control-region.js +102 -0
- package/dist/components/primitives/iris/iris-control.types.d.ts +24 -0
- package/dist/components/primitives/iris/iris-control.variants.d.ts +4 -0
- package/dist/components/primitives/iris/iris-control.variants.js +20 -0
- package/dist/components/primitives/iris/iris.d.ts +24 -0
- package/dist/components/primitives/iris/iris.js +232 -0
- package/dist/components/primitives/iris/iris.types.d.ts +35 -0
- package/dist/components/primitives/iris/iris.variants.d.ts +30 -0
- package/dist/components/primitives/iris/iris.variants.js +120 -0
- package/dist/components/primitives/stepper/internals/pipeline-current-mark.d.ts +6 -0
- package/dist/components/primitives/stepper/internals/pipeline-current-mark.js +35 -0
- package/dist/components/primitives/stepper/internals/rail-status-dot.d.ts +13 -0
- package/dist/components/primitives/stepper/internals/rail-status-dot.js +70 -0
- package/dist/components/primitives/stepper/internals/step-hit-target.d.ts +15 -0
- package/dist/components/primitives/stepper/internals/step-hit-target.js +51 -0
- package/dist/components/primitives/stepper/internals/step-model.d.ts +3 -0
- package/dist/components/primitives/stepper/internals/step-model.js +10 -0
- package/dist/components/primitives/stepper/internals/stepper-compact.d.ts +5 -0
- package/dist/components/primitives/stepper/internals/stepper-compact.js +68 -0
- package/dist/components/primitives/stepper/internals/stepper-pipeline.d.ts +7 -0
- package/dist/components/primitives/stepper/internals/stepper-pipeline.js +87 -0
- package/dist/components/primitives/stepper/internals/stepper-rail.d.ts +5 -0
- package/dist/components/primitives/stepper/internals/stepper-rail.js +105 -0
- package/dist/components/primitives/stepper/internals/stepper-summary.d.ts +5 -0
- package/dist/components/primitives/stepper/internals/stepper-summary.js +103 -0
- package/dist/components/primitives/stepper/internals/stepper-track.d.ts +8 -0
- package/dist/components/primitives/stepper/internals/stepper-track.js +170 -0
- package/dist/components/primitives/stepper/stepper.d.ts +1 -0
- package/dist/components/primitives/stepper/stepper.js +134 -52
- package/dist/components/primitives/stepper/stepper.types.d.ts +17 -0
- package/dist/components/primitives/stepper/stepper.variants.d.ts +26 -0
- package/dist/components/primitives/stepper/stepper.variants.js +165 -5
- package/dist/components/primitives/tabs/tabs.d.ts +4 -1
- package/dist/components/primitives/tabs/tabs.js +131 -59
- package/dist/components/primitives/tabs/tabs.types.d.ts +5 -1
- package/dist/form-react/Fields/DateRangeField.js +20 -19
- package/dist/form-react/Fields/WeekRangePicker.js +36 -36
- package/dist/i18n/defaultMessages.d.ts +100 -0
- package/dist/i18n/defaultMessages.js +118 -21
- package/dist/i18n/index.d.ts +1 -1
- package/dist/i18n/locales/de.js +99 -2
- package/dist/i18n/locales/es.js +99 -2
- package/dist/i18n/locales/hi.js +99 -2
- package/dist/i18n/locales/kn.js +99 -2
- package/dist/impact-nova-components.css +972 -2
- package/dist/impact-nova-tokens.scss +109 -1
- package/dist/impact-nova.css +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +585 -551
- package/dist/lib/virtualized/directional-range-extractor.d.ts +26 -0
- package/dist/lib/virtualized/directional-range-extractor.js +39 -0
- package/dist/lib/virtualized/index.d.ts +3 -0
- package/dist/lib/virtualized/index.js +35 -27
- package/dist/lib/virtualized/scroll-seek.d.ts +61 -0
- package/dist/lib/virtualized/scroll-seek.js +61 -0
- package/dist/lib/virtualized/usePaintedRangeVirtualizer.d.ts +19 -0
- package/dist/lib/virtualized/usePaintedRangeVirtualizer.js +30 -0
- package/dist/lib/virtualized/useResponsiveColumnCount.d.ts +35 -0
- package/dist/lib/virtualized/useResponsiveColumnCount.js +51 -0
- package/dist/lib/virtualized/useScrollSeekPaintedRange.d.ts +13 -0
- package/dist/lib/virtualized/useScrollSeekPaintedRange.js +45 -0
- package/dist/lib/virtualized/useVirtualizedList.d.ts +7 -0
- package/dist/lib/virtualized/useVirtualizedList.js +89 -87
- package/dist/lib/virtualized/useVirtualizedRows.d.ts +9 -2
- package/dist/lib/virtualized/useVirtualizedRows.js +15 -13
- package/dist/lib/virtualized/virtualized.types.d.ts +2 -0
- package/dist/llms/rules/installation.js +1 -1
- package/dist/llms/rules/requirements.js +1 -1
- package/dist/tailwind.config.js +3 -1
- package/dist/theme/tailwind-colors.js +2 -1
- package/package.json +39 -4
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { HexGridTile } from './hex-world-grid';
|
|
2
|
+
export declare const HEX_CELL_WIDTH = 12;
|
|
3
|
+
export declare const HEX_CELL_HEIGHT = 10.72;
|
|
4
|
+
export declare const HEX_COLUMN_STEP = 11.5;
|
|
5
|
+
export declare const HEX_ROW_STEP = 13.28;
|
|
6
|
+
export declare const HEX_ODD_COLUMN_OFFSET = 6.64;
|
|
7
|
+
export interface HexPixelPoint {
|
|
8
|
+
pixelX: number;
|
|
9
|
+
pixelY: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function hexTileToPixel(column: number, row: number): HexPixelPoint;
|
|
12
|
+
export interface HexMapExtents {
|
|
13
|
+
originColumn: number;
|
|
14
|
+
originRow: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function extentsFromTiles(tiles: readonly HexGridTile[]): HexMapExtents;
|
|
19
|
+
export declare function buildLandPath(tiles: readonly HexGridTile[], originColumn: number, originRow: number): string;
|
|
20
|
+
export declare function tileKey(tile: HexGridTile): string;
|
|
21
|
+
export declare function hexNeighbors(column: number, row: number): HexGridTile[];
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const r = 12, _ = 10.72, s = 11.5, H = 13.28, C = 6.64, E = [
|
|
2
|
+
{ command: "M", coordinates: [9.56148, 9.69087] },
|
|
3
|
+
{ command: "C", coordinates: [9.20834, 10.3244, 8.53986, 10.7171, 7.81452, 10.7171] },
|
|
4
|
+
{ command: "H", coordinates: [3.94774] },
|
|
5
|
+
{ command: "C", coordinates: [3.23129, 10.7171, 2.56957, 10.3339, 2.21301, 9.71249] },
|
|
6
|
+
{ command: "L", coordinates: [0.265298, 6.3179] },
|
|
7
|
+
{ command: "C", coordinates: [-0.090937, 5.69704, -0.0882008, 4.93312, 0.272474, 4.31482] },
|
|
8
|
+
{ command: "L", coordinates: [2.21064, 0.992257] },
|
|
9
|
+
{ command: "C", coordinates: [2.56906, 0.377822, 3.22686, 0, 3.93819, 0] },
|
|
10
|
+
{ command: "H", coordinates: [7.824] },
|
|
11
|
+
{ command: "C", coordinates: [8.54428, 0, 9.20893, 0.387309, 9.56404, 1.01397] },
|
|
12
|
+
{ command: "L", coordinates: [11.4467, 4.33636] },
|
|
13
|
+
{ command: "C", coordinates: [11.7909, 4.94364, 11.7935, 5.6864, 11.4536, 6.2961] },
|
|
14
|
+
{ command: "L", coordinates: [9.56148, 9.69087] },
|
|
15
|
+
{ command: "Z", coordinates: [] }
|
|
16
|
+
];
|
|
17
|
+
function d(o, n) {
|
|
18
|
+
return {
|
|
19
|
+
pixelX: o * 11.5,
|
|
20
|
+
pixelY: n * 13.28 + (o % 2 === 1 ? 6.64 : 0)
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function m(o, n) {
|
|
24
|
+
return E.map((t) => {
|
|
25
|
+
if (t.command === "Z") return "Z";
|
|
26
|
+
if (t.command === "H")
|
|
27
|
+
return `H${(t.coordinates[0] ?? 0) + o}`;
|
|
28
|
+
const i = [];
|
|
29
|
+
for (let c = 0; c < t.coordinates.length; c += 2) {
|
|
30
|
+
const e = (t.coordinates[c] ?? 0) + o, a = (t.coordinates[c + 1] ?? 0) + n;
|
|
31
|
+
i.push(`${e} ${a}`);
|
|
32
|
+
}
|
|
33
|
+
return `${t.command}${i.join(" ")}`;
|
|
34
|
+
}).join("");
|
|
35
|
+
}
|
|
36
|
+
function T(o) {
|
|
37
|
+
if (o.length === 0)
|
|
38
|
+
return { originColumn: 0, originRow: 0, width: 12, height: 10.72 };
|
|
39
|
+
let n = Number.POSITIVE_INFINITY, t = Number.NEGATIVE_INFINITY, i = Number.POSITIVE_INFINITY, c = Number.NEGATIVE_INFINITY;
|
|
40
|
+
for (const e of o)
|
|
41
|
+
e.x < n && (n = e.x), e.x > t && (t = e.x), e.y < i && (i = e.y), e.y > c && (c = e.y);
|
|
42
|
+
return {
|
|
43
|
+
originColumn: n,
|
|
44
|
+
originRow: i,
|
|
45
|
+
width: (t - n + 1) * 11.5 + 12 + 11.5,
|
|
46
|
+
height: (c - i + 1) * 13.28 + 10.72 + 6.64 + 13.28
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function x(o, n, t) {
|
|
50
|
+
const i = [];
|
|
51
|
+
for (const c of o) {
|
|
52
|
+
const { pixelX: e, pixelY: a } = d(c.x - n, c.y - t);
|
|
53
|
+
i.push(m(e, a));
|
|
54
|
+
}
|
|
55
|
+
return i.join("");
|
|
56
|
+
}
|
|
57
|
+
function L(o) {
|
|
58
|
+
return `${o.x}:${o.y}`;
|
|
59
|
+
}
|
|
60
|
+
function I(o, n) {
|
|
61
|
+
const i = o % 2 !== 0 ? 1 : -1;
|
|
62
|
+
return [
|
|
63
|
+
{ x: o - 1, y: n },
|
|
64
|
+
{ x: o + 1, y: n },
|
|
65
|
+
{ x: o, y: n - 1 },
|
|
66
|
+
{ x: o, y: n + 1 },
|
|
67
|
+
{ x: o - 1, y: n + i },
|
|
68
|
+
{ x: o + 1, y: n + i }
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
_ as HEX_CELL_HEIGHT,
|
|
73
|
+
r as HEX_CELL_WIDTH,
|
|
74
|
+
s as HEX_COLUMN_STEP,
|
|
75
|
+
C as HEX_ODD_COLUMN_OFFSET,
|
|
76
|
+
H as HEX_ROW_STEP,
|
|
77
|
+
x as buildLandPath,
|
|
78
|
+
T as extentsFromTiles,
|
|
79
|
+
I as hexNeighbors,
|
|
80
|
+
d as hexTileToPixel,
|
|
81
|
+
L as tileKey
|
|
82
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HexGridTile } from './hex-world-grid';
|
|
2
|
+
export interface HexRegionLattice {
|
|
3
|
+
columns: number;
|
|
4
|
+
rows: number;
|
|
5
|
+
minLongitude: number;
|
|
6
|
+
maxLongitude: number;
|
|
7
|
+
minLatitude: number;
|
|
8
|
+
maxLatitude: number;
|
|
9
|
+
land: readonly HexGridTile[];
|
|
10
|
+
}
|
|
11
|
+
export declare function expandHexRuns(runs: readonly number[]): HexGridTile[];
|
|
12
|
+
export declare function latticeLandKeys(lattice: HexRegionLattice): ReadonlySet<string>;
|
|
13
|
+
export declare function isWithinLattice(latitude: number, longitude: number, lattice: HexRegionLattice): boolean;
|
|
14
|
+
export declare function projectOntoLattice(latitude: number, longitude: number, lattice: HexRegionLattice): HexGridTile;
|
|
15
|
+
export declare function snapToLatticeLand(tile: HexGridTile, landKeys: ReadonlySet<string>, fallback: HexGridTile): {
|
|
16
|
+
tile: HexGridTile;
|
|
17
|
+
hops: number;
|
|
18
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { tileKey as h, hexNeighbors as c } from "./hex-geometry.js";
|
|
2
|
+
function x(o) {
|
|
3
|
+
const t = [];
|
|
4
|
+
for (let n = 0; n + 2 < o.length; n += 3) {
|
|
5
|
+
const r = o[n] ?? 0, s = o[n + 1] ?? 0, u = o[n + 2] ?? s;
|
|
6
|
+
for (let e = s; e <= u; e += 1)
|
|
7
|
+
t.push({ x: r, y: e });
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
}
|
|
11
|
+
function p(o) {
|
|
12
|
+
return new Set(o.land.map(h));
|
|
13
|
+
}
|
|
14
|
+
function L(o, t, n) {
|
|
15
|
+
return o >= n.minLatitude && o <= n.maxLatitude && t >= n.minLongitude && t <= n.maxLongitude;
|
|
16
|
+
}
|
|
17
|
+
function f(o, t, n) {
|
|
18
|
+
const r = Math.max(1, n.columns - 1), s = Math.max(1, n.rows - 1), u = (t - n.minLongitude) / (n.maxLongitude - n.minLongitude) * r, e = (n.maxLatitude - o) / (n.maxLatitude - n.minLatitude) * s;
|
|
19
|
+
return {
|
|
20
|
+
x: Math.min(n.columns - 1, Math.max(0, Math.round(u))),
|
|
21
|
+
y: Math.min(n.rows - 1, Math.max(0, Math.round(e)))
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function w(o, t, n) {
|
|
25
|
+
const r = h(o);
|
|
26
|
+
if (t.has(r)) return { tile: o, hops: 0 };
|
|
27
|
+
const s = [{ tile: o, hops: 0 }], u = /* @__PURE__ */ new Set([r]);
|
|
28
|
+
for (; s.length > 0; ) {
|
|
29
|
+
const e = s.shift();
|
|
30
|
+
for (const i of c(e.tile.x, e.tile.y)) {
|
|
31
|
+
const a = h(i);
|
|
32
|
+
if (u.has(a)) continue;
|
|
33
|
+
u.add(a);
|
|
34
|
+
const m = e.hops + 1;
|
|
35
|
+
if (t.has(a)) return { tile: i, hops: m };
|
|
36
|
+
s.push({ tile: i, hops: m });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return { tile: n, hops: Number.POSITIVE_INFINITY };
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
x as expandHexRuns,
|
|
43
|
+
L as isWithinLattice,
|
|
44
|
+
p as latticeLandKeys,
|
|
45
|
+
f as projectOntoLattice,
|
|
46
|
+
w as snapToLatticeLand
|
|
47
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HexTilemapPoint, HexTilemapRegion } from '../hex-tilemap.types';
|
|
2
|
+
import { HexGridTile } from './hex-world-grid';
|
|
3
|
+
export interface PlacedHexPoint extends HexTilemapPoint {
|
|
4
|
+
tile: HexGridTile;
|
|
5
|
+
}
|
|
6
|
+
export interface HexTilemapLayout {
|
|
7
|
+
land: readonly HexGridTile[];
|
|
8
|
+
points: PlacedHexPoint[];
|
|
9
|
+
}
|
|
10
|
+
export declare function layoutHexTilemap(region: HexTilemapRegion, points: readonly HexTilemapPoint[]): HexTilemapLayout;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { tileKey as r, hexNeighbors as f } from "./hex-geometry.js";
|
|
2
|
+
import { latticeLandKeys as p, isWithinLattice as h, projectOntoLattice as m, snapToLatticeLand as y } from "./hex-lattice.js";
|
|
3
|
+
import { latticeForRegion as g } from "./hex-regions.js";
|
|
4
|
+
function L(c, n, u) {
|
|
5
|
+
const o = [c], e = /* @__PURE__ */ new Set();
|
|
6
|
+
for (; o.length > 0; ) {
|
|
7
|
+
const i = o.shift(), s = r(i);
|
|
8
|
+
if (!e.has(s)) {
|
|
9
|
+
if (e.add(s), u.has(s) && !n.has(s))
|
|
10
|
+
return i;
|
|
11
|
+
for (const t of f(i.x, i.y))
|
|
12
|
+
e.has(r(t)) || o.push(t);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
function x(c, n) {
|
|
18
|
+
const u = /* @__PURE__ */ new Set(), o = [], e = p(n), i = n.land[0] ?? { x: 0, y: 0 }, s = [...c].sort(
|
|
19
|
+
(t, l) => l.latitude - t.latitude || t.longitude - l.longitude
|
|
20
|
+
);
|
|
21
|
+
for (const t of s) {
|
|
22
|
+
if (!h(t.latitude, t.longitude, n)) continue;
|
|
23
|
+
const l = m(t.latitude, t.longitude, n), d = y(l, e, i);
|
|
24
|
+
if (!Number.isFinite(d.hops)) continue;
|
|
25
|
+
const a = L(d.tile, u, e);
|
|
26
|
+
a !== null && (u.add(r(a)), o.push({ ...t, tile: a }));
|
|
27
|
+
}
|
|
28
|
+
return { land: n.land, points: o };
|
|
29
|
+
}
|
|
30
|
+
function K(c, n) {
|
|
31
|
+
return x(n, g(c));
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
K as layoutHexTilemap
|
|
35
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { HexGridTile } from './hex-world-grid';
|
|
2
|
+
/**
|
|
3
|
+
* New Zealand hex land mask.
|
|
4
|
+
*
|
|
5
|
+
* Source: Natural Earth 1:50m Cultural Vectors, country polygons, via the `world-atlas@2`
|
|
6
|
+
* package (`countries-50m.json`, ISO 3166-1 numeric id 554). The MultiPolygon (North Island,
|
|
7
|
+
* South Island, and small inshore islands) is rasterised onto a fixed equirectangular hex
|
|
8
|
+
* lattice with `d3.geoContains`. Ocean cells are omitted. This is not a hand-drawn silhouette.
|
|
9
|
+
*
|
|
10
|
+
* The same `lon/lat → (x, y)` mapping is used to project stores, so a store can only resolve
|
|
11
|
+
* to a cell that exists on this mask (after snapping to the nearest land cell).
|
|
12
|
+
*/
|
|
13
|
+
export declare const NZ_HEX_COLS = 24;
|
|
14
|
+
export declare const NZ_HEX_ROWS = 32;
|
|
15
|
+
export declare const NZ_LON_MIN = 166.2;
|
|
16
|
+
export declare const NZ_LON_MAX = 178.9;
|
|
17
|
+
export declare const NZ_LAT_MIN = -47.3;
|
|
18
|
+
export declare const NZ_LAT_MAX = -34.1;
|
|
19
|
+
export declare const NZ_HEX_LAND: readonly HexGridTile[];
|
|
20
|
+
export declare const NZ_HEX_LAND_KEYS: ReadonlySet<string>;
|
|
21
|
+
export declare function isWithinNzHexExtent(lat: number, lon: number): boolean;
|
|
22
|
+
/** Same equirectangular mapping used to rasterise the Natural Earth polygons. */
|
|
23
|
+
export declare function projectOntoNzHexGrid(lat: number, lon: number): HexGridTile;
|
|
24
|
+
/**
|
|
25
|
+
* Walk from a projected cell to the nearest mask cell. Returns the hop count so callers can
|
|
26
|
+
* log stores that were not on land at the raw projection.
|
|
27
|
+
*/
|
|
28
|
+
export declare function snapToNzLand(tile: HexGridTile): {
|
|
29
|
+
tile: HexGridTile;
|
|
30
|
+
hops: number;
|
|
31
|
+
};
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
const _ = 24, N = 32, t = 166.2, c = 178.9, n = -47.3, o = -34.1, y = Object.freeze([
|
|
2
|
+
{ x: 12, y: 1 },
|
|
3
|
+
{ x: 13, y: 2 },
|
|
4
|
+
{ x: 13, y: 3 },
|
|
5
|
+
{ x: 14, y: 3 },
|
|
6
|
+
{ x: 14, y: 4 },
|
|
7
|
+
{ x: 15, y: 5 },
|
|
8
|
+
{ x: 15, y: 6 },
|
|
9
|
+
{ x: 17, y: 6 },
|
|
10
|
+
{ x: 16, y: 7 },
|
|
11
|
+
{ x: 17, y: 7 },
|
|
12
|
+
{ x: 16, y: 8 },
|
|
13
|
+
{ x: 17, y: 8 },
|
|
14
|
+
{ x: 16, y: 9 },
|
|
15
|
+
{ x: 17, y: 9 },
|
|
16
|
+
{ x: 18, y: 9 },
|
|
17
|
+
{ x: 19, y: 9 },
|
|
18
|
+
{ x: 21, y: 9 },
|
|
19
|
+
{ x: 22, y: 9 },
|
|
20
|
+
{ x: 16, y: 10 },
|
|
21
|
+
{ x: 17, y: 10 },
|
|
22
|
+
{ x: 18, y: 10 },
|
|
23
|
+
{ x: 19, y: 10 },
|
|
24
|
+
{ x: 20, y: 10 },
|
|
25
|
+
{ x: 21, y: 10 },
|
|
26
|
+
{ x: 16, y: 11 },
|
|
27
|
+
{ x: 17, y: 11 },
|
|
28
|
+
{ x: 18, y: 11 },
|
|
29
|
+
{ x: 19, y: 11 },
|
|
30
|
+
{ x: 20, y: 11 },
|
|
31
|
+
{ x: 21, y: 11 },
|
|
32
|
+
{ x: 14, y: 12 },
|
|
33
|
+
{ x: 15, y: 12 },
|
|
34
|
+
{ x: 16, y: 12 },
|
|
35
|
+
{ x: 17, y: 12 },
|
|
36
|
+
{ x: 18, y: 12 },
|
|
37
|
+
{ x: 19, y: 12 },
|
|
38
|
+
{ x: 15, y: 13 },
|
|
39
|
+
{ x: 16, y: 13 },
|
|
40
|
+
{ x: 17, y: 13 },
|
|
41
|
+
{ x: 18, y: 13 },
|
|
42
|
+
{ x: 19, y: 13 },
|
|
43
|
+
{ x: 17, y: 14 },
|
|
44
|
+
{ x: 18, y: 14 },
|
|
45
|
+
{ x: 19, y: 14 },
|
|
46
|
+
{ x: 17, y: 15 },
|
|
47
|
+
{ x: 18, y: 15 },
|
|
48
|
+
{ x: 11, y: 16 },
|
|
49
|
+
{ x: 12, y: 16 },
|
|
50
|
+
{ x: 16, y: 16 },
|
|
51
|
+
{ x: 17, y: 16 },
|
|
52
|
+
{ x: 18, y: 16 },
|
|
53
|
+
{ x: 11, y: 17 },
|
|
54
|
+
{ x: 12, y: 17 },
|
|
55
|
+
{ x: 13, y: 17 },
|
|
56
|
+
{ x: 14, y: 17 },
|
|
57
|
+
{ x: 16, y: 17 },
|
|
58
|
+
{ x: 17, y: 17 },
|
|
59
|
+
{ x: 10, y: 18 },
|
|
60
|
+
{ x: 11, y: 18 },
|
|
61
|
+
{ x: 12, y: 18 },
|
|
62
|
+
{ x: 13, y: 18 },
|
|
63
|
+
{ x: 14, y: 18 },
|
|
64
|
+
{ x: 10, y: 19 },
|
|
65
|
+
{ x: 11, y: 19 },
|
|
66
|
+
{ x: 12, y: 19 },
|
|
67
|
+
{ x: 13, y: 19 },
|
|
68
|
+
{ x: 9, y: 20 },
|
|
69
|
+
{ x: 10, y: 20 },
|
|
70
|
+
{ x: 11, y: 20 },
|
|
71
|
+
{ x: 12, y: 20 },
|
|
72
|
+
{ x: 13, y: 20 },
|
|
73
|
+
{ x: 8, y: 21 },
|
|
74
|
+
{ x: 9, y: 21 },
|
|
75
|
+
{ x: 10, y: 21 },
|
|
76
|
+
{ x: 11, y: 21 },
|
|
77
|
+
{ x: 12, y: 21 },
|
|
78
|
+
{ x: 7, y: 22 },
|
|
79
|
+
{ x: 8, y: 22 },
|
|
80
|
+
{ x: 9, y: 22 },
|
|
81
|
+
{ x: 10, y: 22 },
|
|
82
|
+
{ x: 11, y: 22 },
|
|
83
|
+
{ x: 6, y: 23 },
|
|
84
|
+
{ x: 7, y: 23 },
|
|
85
|
+
{ x: 8, y: 23 },
|
|
86
|
+
{ x: 9, y: 23 },
|
|
87
|
+
{ x: 10, y: 23 },
|
|
88
|
+
{ x: 4, y: 24 },
|
|
89
|
+
{ x: 5, y: 24 },
|
|
90
|
+
{ x: 6, y: 24 },
|
|
91
|
+
{ x: 7, y: 24 },
|
|
92
|
+
{ x: 8, y: 24 },
|
|
93
|
+
{ x: 9, y: 24 },
|
|
94
|
+
{ x: 3, y: 25 },
|
|
95
|
+
{ x: 4, y: 25 },
|
|
96
|
+
{ x: 5, y: 25 },
|
|
97
|
+
{ x: 6, y: 25 },
|
|
98
|
+
{ x: 7, y: 25 },
|
|
99
|
+
{ x: 8, y: 25 },
|
|
100
|
+
{ x: 9, y: 25 },
|
|
101
|
+
{ x: 2, y: 26 },
|
|
102
|
+
{ x: 3, y: 26 },
|
|
103
|
+
{ x: 4, y: 26 },
|
|
104
|
+
{ x: 5, y: 26 },
|
|
105
|
+
{ x: 6, y: 26 },
|
|
106
|
+
{ x: 7, y: 26 },
|
|
107
|
+
{ x: 8, y: 26 },
|
|
108
|
+
{ x: 2, y: 27 },
|
|
109
|
+
{ x: 3, y: 27 },
|
|
110
|
+
{ x: 4, y: 27 },
|
|
111
|
+
{ x: 5, y: 27 },
|
|
112
|
+
{ x: 6, y: 27 },
|
|
113
|
+
{ x: 7, y: 27 },
|
|
114
|
+
{ x: 8, y: 27 },
|
|
115
|
+
{ x: 1, y: 28 },
|
|
116
|
+
{ x: 2, y: 28 },
|
|
117
|
+
{ x: 3, y: 28 },
|
|
118
|
+
{ x: 4, y: 28 },
|
|
119
|
+
{ x: 5, y: 28 },
|
|
120
|
+
{ x: 6, y: 28 },
|
|
121
|
+
{ x: 7, y: 28 },
|
|
122
|
+
{ x: 4, y: 29 },
|
|
123
|
+
{ x: 5, y: 29 },
|
|
124
|
+
{ x: 6, y: 29 },
|
|
125
|
+
{ x: 3, y: 30 }
|
|
126
|
+
]);
|
|
127
|
+
new Set(
|
|
128
|
+
y.map((x) => `${x.x}:${x.y}`)
|
|
129
|
+
);
|
|
130
|
+
export {
|
|
131
|
+
_ as NZ_HEX_COLS,
|
|
132
|
+
y as NZ_HEX_LAND,
|
|
133
|
+
N as NZ_HEX_ROWS,
|
|
134
|
+
o as NZ_LAT_MAX,
|
|
135
|
+
n as NZ_LAT_MIN,
|
|
136
|
+
c as NZ_LON_MAX,
|
|
137
|
+
t as NZ_LON_MIN
|
|
138
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { HexTilemapRegion } from '../hex-tilemap.types';
|
|
2
|
+
import { HexRegionLattice } from './hex-lattice';
|
|
3
|
+
import { HexGridTile } from './hex-world-grid';
|
|
4
|
+
export declare const NEW_ZEALAND_HEX_LATTICE: HexRegionLattice;
|
|
5
|
+
export declare function latticeForRegion(region: HexTilemapRegion): HexRegionLattice;
|
|
6
|
+
export declare function landTilesForRegion(region: HexTilemapRegion): readonly HexGridTile[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { UNITED_STATES_HEX_LATTICE as t, UNITED_STATES_AND_EUROPE_HEX_LATTICE as E, WORLD_HEX_LATTICE as e } from "./hex-country-lattices.js";
|
|
2
|
+
import { NZ_HEX_LAND as n, NZ_LAT_MAX as N, NZ_LAT_MIN as L, NZ_LON_MAX as T, NZ_LON_MIN as i, NZ_HEX_ROWS as r, NZ_HEX_COLS as A } from "./hex-new-zealand-grid.js";
|
|
3
|
+
const u = {
|
|
4
|
+
columns: A,
|
|
5
|
+
rows: r,
|
|
6
|
+
minLongitude: i,
|
|
7
|
+
maxLongitude: T,
|
|
8
|
+
minLatitude: L,
|
|
9
|
+
maxLatitude: N,
|
|
10
|
+
land: n
|
|
11
|
+
};
|
|
12
|
+
function d(_) {
|
|
13
|
+
return _ === "new-zealand" ? u : _ === "united-states" ? t : _ === "united-states-and-europe" ? E : e;
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
u as NEW_ZEALAND_HEX_LATTICE,
|
|
17
|
+
d as latticeForRegion
|
|
18
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { HexTilemapHoverPoint, HexTilemapPoint, HexTilemapRegion, HexTilemapSeries } from '../hex-tilemap.types';
|
|
2
|
+
import { HexTilemapLayout } from './hex-layout';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
export interface HexTilemapContextValue {
|
|
5
|
+
region: HexTilemapRegion;
|
|
6
|
+
points: HexTilemapPoint[];
|
|
7
|
+
series: HexTilemapSeries[];
|
|
8
|
+
layout: HexTilemapLayout;
|
|
9
|
+
visiblePoints: HexTilemapLayout["points"];
|
|
10
|
+
metricLabel: string;
|
|
11
|
+
formatValue: (value: number) => string;
|
|
12
|
+
zoom: number;
|
|
13
|
+
setZoom: (zoom: number) => void;
|
|
14
|
+
hiddenSeriesIds: string[];
|
|
15
|
+
toggleSeries: (seriesId: string) => void;
|
|
16
|
+
hoverPoint: HexTilemapHoverPoint | null;
|
|
17
|
+
setHoverPoint: (point: HexTilemapHoverPoint | null) => void;
|
|
18
|
+
mapLabel: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function HexTilemapProvider({ value, children, }: {
|
|
21
|
+
value: HexTilemapContextValue;
|
|
22
|
+
children: React.ReactNode;
|
|
23
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare function useHexTilemapContext(): HexTilemapContextValue;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import * as t from "react";
|
|
3
|
+
const o = t.createContext(null);
|
|
4
|
+
function x({
|
|
5
|
+
value: e,
|
|
6
|
+
children: n
|
|
7
|
+
}) {
|
|
8
|
+
return /* @__PURE__ */ r(o.Provider, { value: e, children: n });
|
|
9
|
+
}
|
|
10
|
+
function m() {
|
|
11
|
+
const e = t.useContext(o);
|
|
12
|
+
if (!e)
|
|
13
|
+
throw new Error("HexTilemap components must be used within HexTilemap");
|
|
14
|
+
return e;
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
x as HexTilemapProvider,
|
|
18
|
+
m as useHexTilemapContext
|
|
19
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as l, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import { createComponent as m } from "../../../../lib/primitives/create-component.js";
|
|
3
|
+
import { cn as c } from "../../../../lib/utils.js";
|
|
4
|
+
import { useImpactNovaI18n as h } from "../../../../i18n/use-impact-nova-i18n.js";
|
|
5
|
+
import { hexTilemapLegendItemVariants as x, hexTilemapLegendVariants as u } from "../hex-tilemap.variants.js";
|
|
6
|
+
import { useHexTilemapContext as b } from "./hex-tilemap-context.js";
|
|
7
|
+
const N = m(
|
|
8
|
+
"HexTilemapLegend",
|
|
9
|
+
({ className: n, ...o }, i) => {
|
|
10
|
+
const { t: a } = h(), { series: s, hiddenSeriesIds: d, toggleSeries: t } = b();
|
|
11
|
+
return /* @__PURE__ */ l(
|
|
12
|
+
"div",
|
|
13
|
+
{
|
|
14
|
+
ref: i,
|
|
15
|
+
"data-component": "hex-tilemap-legend",
|
|
16
|
+
role: "group",
|
|
17
|
+
"aria-label": a("hexTilemap.legend"),
|
|
18
|
+
className: c(u(), n),
|
|
19
|
+
...o,
|
|
20
|
+
children: s.map((e) => {
|
|
21
|
+
const r = d.includes(e.id);
|
|
22
|
+
return /* @__PURE__ */ p(
|
|
23
|
+
"button",
|
|
24
|
+
{
|
|
25
|
+
type: "button",
|
|
26
|
+
"aria-pressed": !r,
|
|
27
|
+
"aria-label": r ? a("hexTilemap.showSeries", { label: e.label }) : a("hexTilemap.hideSeries", { label: e.label }),
|
|
28
|
+
className: x({ hidden: r }),
|
|
29
|
+
onClick: () => t(e.id),
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ l(
|
|
32
|
+
"span",
|
|
33
|
+
{
|
|
34
|
+
className: "size-2 shrink-0 rounded-sm",
|
|
35
|
+
style: { backgroundColor: e.color },
|
|
36
|
+
"aria-hidden": !0
|
|
37
|
+
}
|
|
38
|
+
),
|
|
39
|
+
/* @__PURE__ */ l("span", { children: e.label })
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
e.id
|
|
43
|
+
);
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
export {
|
|
50
|
+
N as HexTilemapLegend
|
|
51
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsxs as e, jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { createComponent as p } from "../../../../lib/primitives/create-component.js";
|
|
3
|
+
import { cn as c } from "../../../../lib/utils.js";
|
|
4
|
+
import { hexTilemapTooltipVariants as x } from "../hex-tilemap.variants.js";
|
|
5
|
+
import { useHexTilemapContext as f } from "./hex-tilemap-context.js";
|
|
6
|
+
const T = 12, d = 72, P = p("HexTilemapTooltip", ({ className: o, ...l }, n) => {
|
|
7
|
+
const { hoverPoint: t, metricLabel: a, formatValue: i } = f();
|
|
8
|
+
if (!t) return null;
|
|
9
|
+
const r = t.clientY < d, s = Math.max(T, t.clientX);
|
|
10
|
+
return /* @__PURE__ */ e(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
ref: n,
|
|
14
|
+
"data-component": "hex-tilemap-tooltip",
|
|
15
|
+
role: "tooltip",
|
|
16
|
+
className: c(x(), o),
|
|
17
|
+
style: {
|
|
18
|
+
left: s,
|
|
19
|
+
top: t.clientY,
|
|
20
|
+
transform: r ? "translate(-50%, 12px)" : "translate(-50%, calc(-100% - 8px))"
|
|
21
|
+
},
|
|
22
|
+
...l,
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ m("span", { className: "text-xs font-semibold leading-4 text-content", children: t.label }),
|
|
25
|
+
/* @__PURE__ */ e("span", { className: "text-xs font-semibold leading-4 text-content", children: [
|
|
26
|
+
a,
|
|
27
|
+
" - ",
|
|
28
|
+
i(t.value)
|
|
29
|
+
] })
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
});
|
|
34
|
+
export {
|
|
35
|
+
P as HexTilemapTooltip
|
|
36
|
+
};
|