xv-webcomponents 1.21.1-dev.0 → 1.22.1-qa.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.
Files changed (135) hide show
  1. package/dist/cjs/index-DpLAFt0R.js +3728 -0
  2. package/dist/cjs/loader.cjs.js +2 -2
  3. package/dist/cjs/maplibre-gl-CCZS3Rg5.js +900 -0
  4. package/dist/cjs/{xv-accordion-v2_48.cjs.entry.js → xv-accordion-v2_49.cjs.entry.js} +722 -116
  5. package/dist/cjs/xv-header-next.cjs.entry.js +3 -3
  6. package/dist/cjs/xv-mega-menu-next.cjs.entry.js +4 -4
  7. package/dist/cjs/xv-webcomponents.cjs.js +2 -2
  8. package/dist/collection/collection-manifest.json +1 -0
  9. package/dist/collection/components/xv-accordion/xv-accordion.css +0 -127
  10. package/dist/collection/components/xv-accordion/xv-accordion.js +24 -4
  11. package/dist/collection/components/xv-accordion-item/xv-accordion-item.css +0 -127
  12. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js +11 -5
  13. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.css +0 -127
  14. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js +1 -1
  15. package/dist/collection/components/xv-button/xv-button-v2.css +3 -130
  16. package/dist/collection/components/xv-button/xv-button.js +4 -4
  17. package/dist/collection/components/xv-button-group/xv-button-group.css +0 -127
  18. package/dist/collection/components/xv-button-group/xv-button-group.js +1 -1
  19. package/dist/collection/components/xv-card/xv-card.css +0 -127
  20. package/dist/collection/components/xv-card/xv-card.js +1 -1
  21. package/dist/collection/components/xv-checkbox/xv-checkbox.css +0 -127
  22. package/dist/collection/components/xv-checkbox/xv-checkbox.js +2 -2
  23. package/dist/collection/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.css +0 -127
  24. package/dist/collection/components/xv-content-switcher/xv-content-switcher-item/xv-content-switcher-item.js +1 -1
  25. package/dist/collection/components/xv-content-switcher/xv-content-switcher.css +0 -127
  26. package/dist/collection/components/xv-content-switcher/xv-content-switcher.js +2 -2
  27. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.css +0 -127
  28. package/dist/collection/components/xv-data-table/xv-data-table-cell/xv-data-table-cell.js +1 -1
  29. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.css +0 -127
  30. package/dist/collection/components/xv-data-table/xv-data-table-collapse/xv-data-table-collapse.js +1 -1
  31. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.css +0 -127
  32. package/dist/collection/components/xv-data-table/xv-data-table-row/xv-data-table-row.js +2 -2
  33. package/dist/collection/components/xv-data-table/xv-data-table.css +0 -127
  34. package/dist/collection/components/xv-data-table/xv-data-table.js +1 -1
  35. package/dist/collection/components/xv-datepicker/xv-datepicker.css +0 -127
  36. package/dist/collection/components/xv-datepicker/xv-datepicker.js +63 -5
  37. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.css +0 -127
  38. package/dist/collection/components/xv-dropdown/xv-dropdown-item/xv-dropdown-item.js +1 -1
  39. package/dist/collection/components/xv-dropdown/xv-dropdown.css +0 -127
  40. package/dist/collection/components/xv-dropdown/xv-dropdown.js +1 -1
  41. package/dist/collection/components/xv-file-uploader/xv-file-uploader.css +0 -127
  42. package/dist/collection/components/xv-file-uploader/xv-file-uploader.js +1 -1
  43. package/dist/collection/components/xv-footer/xv-footer.css +0 -222
  44. package/dist/collection/components/xv-footer/xv-footer.js +1 -1
  45. package/dist/collection/components/xv-geo-map/xv-geo-map.css +907 -0
  46. package/dist/collection/components/xv-geo-map/xv-geo-map.js +984 -0
  47. package/dist/collection/components/xv-header/xv-header.css +0 -222
  48. package/dist/collection/components/xv-header/xv-header.js +1 -1
  49. package/dist/collection/components/xv-header-next/xv-header-next.css +0 -222
  50. package/dist/collection/components/xv-header-next/xv-header-next.js +1 -1
  51. package/dist/collection/components/xv-image-viewer/xv-image-viewer.css +0 -127
  52. package/dist/collection/components/xv-image-viewer/xv-image-viewer.js +1 -1
  53. package/dist/collection/components/xv-link/xv-link.css +0 -127
  54. package/dist/collection/components/xv-link/xv-link.js +1 -1
  55. package/dist/collection/components/xv-loader/xv-loader.css +0 -127
  56. package/dist/collection/components/xv-login-modal/xv-login-modal.css +0 -127
  57. package/dist/collection/components/xv-mega-menu/xv-mega-menu.css +0 -254
  58. package/dist/collection/components/xv-mega-menu/xv-mega-menu.js +2 -2
  59. package/dist/collection/components/xv-mega-menu-next/xv-mega-menu-next.css +0 -254
  60. package/dist/collection/components/xv-mega-menu-next/xv-mega-menu-next.js +2 -2
  61. package/dist/collection/components/xv-modal/xv-modal.css +0 -127
  62. package/dist/collection/components/xv-modal/xv-modal.js +1 -1
  63. package/dist/collection/components/xv-notification/xv-notification.css +0 -127
  64. package/dist/collection/components/xv-notification/xv-notification.js +1 -1
  65. package/dist/collection/components/xv-number-input/xv-number-input.css +0 -127
  66. package/dist/collection/components/xv-number-input/xv-number-input.js +2 -2
  67. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu-item/xv-overflow-menu-item.css +0 -127
  68. package/dist/collection/components/xv-overflow-menu/xv-overflow-menu.css +0 -127
  69. package/dist/collection/components/xv-pagination/xv-pagination.css +0 -127
  70. package/dist/collection/components/xv-pagination/xv-pagination.js +59 -3
  71. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.css +0 -127
  72. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator-item/xv-progress-indicator-item.js +1 -1
  73. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.css +0 -127
  74. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +1 -1
  75. package/dist/collection/components/xv-radio/xv-radio.css +0 -127
  76. package/dist/collection/components/xv-radio/xv-radio.js +2 -2
  77. package/dist/collection/components/xv-slider/xv-slider.css +0 -127
  78. package/dist/collection/components/xv-slider/xv-slider.js +1 -1
  79. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.css +0 -127
  80. package/dist/collection/components/xv-table/xv-table-cell/xv-table-cell.js +1 -1
  81. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.css +0 -127
  82. package/dist/collection/components/xv-table/xv-table-expand/xv-table-expand.js +1 -1
  83. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.css +0 -127
  84. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +1 -1
  85. package/dist/collection/components/xv-table/xv-table.css +0 -127
  86. package/dist/collection/components/xv-table/xv-table.js +1 -1
  87. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.css +0 -127
  88. package/dist/collection/components/xv-tabs/xv-tab/xv-tab.js +1 -1
  89. package/dist/collection/components/xv-tabs/xv-tabs.css +0 -127
  90. package/dist/collection/components/xv-tag/xv-tag.css +0 -127
  91. package/dist/collection/components/xv-tag/xv-tag.js +1 -1
  92. package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.css +0 -127
  93. package/dist/collection/components/xv-tag-combobox/xv-tag-combobox.js +2 -2
  94. package/dist/collection/components/xv-text-input/xv-text-input.css +0 -127
  95. package/dist/collection/components/xv-text-input/xv-text-input.js +2 -2
  96. package/dist/collection/components/xv-textarea/xv-textarea.css +0 -127
  97. package/dist/collection/components/xv-textarea/xv-textarea.js +2 -2
  98. package/dist/collection/components/xv-tile/xv-tile.css +0 -127
  99. package/dist/collection/components/xv-tile/xv-tile.js +2 -2
  100. package/dist/collection/components/xv-toggle/xv-toggle.css +0 -127
  101. package/dist/collection/components/xv-toggle/xv-toggle.js +1 -1
  102. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.css +0 -127
  103. package/dist/collection/components/xv-toggle-tip/xv-toggle-tip.js +1 -1
  104. package/dist/collection/components/xv-tooltip/xv-tooltip.css +0 -32
  105. package/dist/collection/components/xv-tooltip/xv-tooltip.js +2 -2
  106. package/dist/esm/index-DmxA2ysB.js +3717 -0
  107. package/dist/esm/loader.js +3 -3
  108. package/dist/esm/maplibre-gl-CS4Eagm9.js +813 -0
  109. package/dist/esm/maplibre-gl-shared.mjs +6 -0
  110. package/dist/esm/maplibre-gl-worker.mjs +6 -0
  111. package/dist/esm/{xv-accordion-v2_48.entry.js → xv-accordion-v2_49.entry.js} +722 -117
  112. package/dist/esm/xv-header-next.entry.js +3 -3
  113. package/dist/esm/xv-mega-menu-next.entry.js +4 -4
  114. package/dist/esm/xv-webcomponents.js +3 -3
  115. package/dist/types/components/xv-accordion/xv-accordion.d.ts +5 -4
  116. package/dist/types/components/xv-accordion-item/xv-accordion-item.d.ts +3 -0
  117. package/dist/types/components/xv-button/xv-button.d.ts +1 -1
  118. package/dist/types/components/xv-datepicker/xv-datepicker.d.ts +12 -0
  119. package/dist/types/components/xv-geo-map/xv-geo-map.d.ts +115 -0
  120. package/dist/types/components/xv-pagination/xv-pagination.d.ts +3 -1
  121. package/dist/types/components.d.ts +235 -2
  122. package/dist/xv-webcomponents/p-77bd6e1f.entry.js +8 -0
  123. package/dist/xv-webcomponents/p-93bd2dca.entry.js +1 -0
  124. package/dist/xv-webcomponents/p-9e3130ff.entry.js +1 -0
  125. package/dist/xv-webcomponents/p-CS4Eagm9.js +10 -0
  126. package/dist/xv-webcomponents/p-DmxA2ysB.js +2 -0
  127. package/dist/xv-webcomponents/xv-webcomponents.css +2 -17
  128. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  129. package/package.json +2 -1
  130. package/dist/cjs/index-C4fJ70r4.js +0 -3728
  131. package/dist/esm/index-Cv2gugMt.js +0 -3717
  132. package/dist/xv-webcomponents/p-4ad13642.entry.js +0 -1
  133. package/dist/xv-webcomponents/p-8eca98c5.entry.js +0 -1
  134. package/dist/xv-webcomponents/p-Cv2gugMt.js +0 -2
  135. package/dist/xv-webcomponents/p-d485057e.entry.js +0 -8
@@ -9,6 +9,7 @@ import { SIZE_VAR_STR, XV_SORT_DIR } from "./types/enum";
9
9
  import { XvDataTableCheck, XvDataTableReorder } from "./components/xv-data-table/_vars";
10
10
  import { DropdownItemData } from "./components/xv-dropdown/_vars";
11
11
  import { XvFileUploaderVariants } from "./components/xv-file-uploader/_vars";
12
+ import { GeoMapSelection } from "./components/xv-geo-map/xv-geo-map";
12
13
  import { MenuItem } from "./components/xv-mega-menu-next/xv-mega-menu-next.model";
13
14
  import { NOTIFICATION_VARIANTS_STR } from "./components/xv-notification/_vars";
14
15
  import { OverflowMenuEvent, OverflowMenuVariant } from "./components/xv-overflow-menu/_vars";
@@ -22,6 +23,7 @@ export { SIZE_VAR_STR, XV_SORT_DIR } from "./types/enum";
22
23
  export { XvDataTableCheck, XvDataTableReorder } from "./components/xv-data-table/_vars";
23
24
  export { DropdownItemData } from "./components/xv-dropdown/_vars";
24
25
  export { XvFileUploaderVariants } from "./components/xv-file-uploader/_vars";
26
+ export { GeoMapSelection } from "./components/xv-geo-map/xv-geo-map";
25
27
  export { MenuItem } from "./components/xv-mega-menu-next/xv-mega-menu-next.model";
26
28
  export { NOTIFICATION_VARIANTS_STR } from "./components/xv-notification/_vars";
27
29
  export { OverflowMenuEvent, OverflowMenuVariant } from "./components/xv-overflow-menu/_vars";
@@ -123,7 +125,7 @@ export namespace Components {
123
125
  */
124
126
  "type": 'button' | 'submit' | 'reset';
125
127
  /**
126
- * Button value is optional
128
+ * Button value is optional. Reflected — xv-button-group-v2 keys its children by the attribute.
127
129
  */
128
130
  "value"?: string;
129
131
  /**
@@ -362,6 +364,10 @@ export namespace Components {
362
364
  interface XvDatepicker {
363
365
  "block"?: boolean;
364
366
  "disabled"?: boolean;
367
+ /**
368
+ * Individual dates to disable within the min/max range. Each entry may be a `Date`, a bare 'yyyy-MM-dd' string, or a full ISO string — all normalised to a local 'yyyy-MM-dd' key that matches the calendar grid. Composes with min/max: a day is selectable only when it is inside the range AND not listed here (e.g. to allow only certain weekdays / block holidays).
369
+ */
370
+ "disabledDates"?: (Date | string)[];
365
371
  /**
366
372
  * Error status. Can be boolean or string
367
373
  */
@@ -509,6 +515,96 @@ export namespace Components {
509
515
  }
510
516
  interface XvFooter {
511
517
  }
518
+ /**
519
+ * Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
520
+ * Click a PLZ to (de)select it. No further UI — selection state and reach
521
+ * data are emitted via `changeSelection` for the host page to display.
522
+ * MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
523
+ * the viewport, so the host page's initial load stays untouched.
524
+ */
525
+ interface XvGeoMapV2 {
526
+ /**
527
+ * Base URL of the geo API (Xv.Api v1/geo — contract-compatible with the XvGeoTool API). Default is the same-origin Front Door route, so no CORS is involved on crossvertise pages.
528
+ * @default '/api-fd/v1/geo'
529
+ */
530
+ "apiBase": string;
531
+ /**
532
+ * @default '© CARTO, © OpenStreetMap contributors'
533
+ */
534
+ "attribution": string;
535
+ /**
536
+ * @default 51.16
537
+ */
538
+ "centerLat": number;
539
+ /**
540
+ * Initial map center
541
+ * @default 10.45
542
+ */
543
+ "centerLng": number;
544
+ /**
545
+ * Remove the optimizer proposal highlight.
546
+ */
547
+ "clearPreview": () => Promise<void>;
548
+ /**
549
+ * Clear the whole selection.
550
+ */
551
+ "clearSelection": () => Promise<void>;
552
+ /**
553
+ * Indicator whose per-unit values feed the tooltips and the emitted population sum (e.g. ATV_DEVICES)
554
+ * @default 'MBI_P_T_2025'
555
+ */
556
+ "indicator": string;
557
+ /**
558
+ * Unit label shown behind the indicator value in the tooltip
559
+ * @default 'Einwohner'
560
+ */
561
+ "indicatorLabel": string;
562
+ /**
563
+ * Load the map bundle only when scrolled near the viewport (default: true)
564
+ * @default true
565
+ */
566
+ "lazy": boolean;
567
+ /**
568
+ * Geo level to display and select: plz5, gemeinde, kreis, regbez, bundesland
569
+ * @default 'plz5'
570
+ */
571
+ "level": string;
572
+ /**
573
+ * Highlight what a radius extension would ADD (optimizer proposal): the units within `km` that are not part of the selection render in the preview color. Visual only — the selection and its change events stay untouched. Returns the number of added units.
574
+ */
575
+ "previewByRadius": (startPlz: string, km: number) => Promise<number>;
576
+ /**
577
+ * Shape resolution: medium = simplified geometry (snappy), high = originals
578
+ * @default 'medium'
579
+ */
580
+ "resolution": 'medium' | 'high';
581
+ /**
582
+ * Select all PLZs within `km` around a start PLZ ("Umkreis"). Replaces the selection unless `add` is true.
583
+ */
584
+ "selectByRadius": (startPlz: string, km: number, add?: boolean) => Promise<GeoMapSelection | null>;
585
+ /**
586
+ * Select an explicit list of PLZs ("PLZ-Liste" paste, query-param restore). Replaces the selection unless `add` is true.
587
+ */
588
+ "selectPostalCodes": (codes: string[], add?: boolean) => Promise<GeoMapSelection | null>;
589
+ /**
590
+ * Minimum zoom before boundaries are loaded and selectable (use ~5 for bundesland, 9 for plz5)
591
+ * @default 9
592
+ */
593
+ "selectZoom": number;
594
+ /**
595
+ * Raster tile URL template. Default: CARTO Positron — light, minimal, made for data overlays; fits the crossvertise design. For production traffic, license a tile plan (CARTO/MapTiler/Geofabrik) and set the keyed URL here.
596
+ * @default 'https://basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}@2x.png'
597
+ */
598
+ "tiles": string;
599
+ /**
600
+ * Explicit URL of maplibre-gl-worker.mjs (maplibre-gl-shared.mjs must sit next to it). Needed when the host bundler relocates the maplibre chunk so import.meta.url-relative worker resolution breaks (e.g. Angular/Vite dev server).
601
+ */
602
+ "workerUrl"?: string;
603
+ /**
604
+ * @default 5.5
605
+ */
606
+ "zoom": number;
607
+ }
512
608
  interface XvHeader {
513
609
  }
514
610
  /**
@@ -740,6 +836,14 @@ export namespace Components {
740
836
  }
741
837
  interface XvPagination {
742
838
  "block"?: boolean;
839
+ /**
840
+ * @default 10
841
+ */
842
+ "itemsPerPage": number;
843
+ /**
844
+ * @default [10, 20, 30, 40, 50, 100]
845
+ */
846
+ "itemsPerPageOptions": number[] | string;
743
847
  /**
744
848
  * @default 1
745
849
  */
@@ -1205,6 +1309,10 @@ export interface XvFileUploaderCustomEvent<T> extends CustomEvent<T> {
1205
1309
  detail: T;
1206
1310
  target: HTMLXvFileUploaderElement;
1207
1311
  }
1312
+ export interface XvGeoMapV2CustomEvent<T> extends CustomEvent<T> {
1313
+ detail: T;
1314
+ target: HTMLXvGeoMapV2Element;
1315
+ }
1208
1316
  export interface XvHeaderCustomEvent<T> extends CustomEvent<T> {
1209
1317
  detail: T;
1210
1318
  target: HTMLXvHeaderElement;
@@ -1600,6 +1708,31 @@ declare global {
1600
1708
  prototype: HTMLXvFooterElement;
1601
1709
  new (): HTMLXvFooterElement;
1602
1710
  };
1711
+ interface HTMLXvGeoMapV2ElementEventMap {
1712
+ "changeSelection": GeoMapSelection;
1713
+ "mapReady": void;
1714
+ }
1715
+ /**
1716
+ * Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
1717
+ * Click a PLZ to (de)select it. No further UI — selection state and reach
1718
+ * data are emitted via `changeSelection` for the host page to display.
1719
+ * MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
1720
+ * the viewport, so the host page's initial load stays untouched.
1721
+ */
1722
+ interface HTMLXvGeoMapV2Element extends Components.XvGeoMapV2, HTMLStencilElement {
1723
+ addEventListener<K extends keyof HTMLXvGeoMapV2ElementEventMap>(type: K, listener: (this: HTMLXvGeoMapV2Element, ev: XvGeoMapV2CustomEvent<HTMLXvGeoMapV2ElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1724
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1725
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1726
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1727
+ removeEventListener<K extends keyof HTMLXvGeoMapV2ElementEventMap>(type: K, listener: (this: HTMLXvGeoMapV2Element, ev: XvGeoMapV2CustomEvent<HTMLXvGeoMapV2ElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1728
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1729
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1730
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1731
+ }
1732
+ var HTMLXvGeoMapV2Element: {
1733
+ prototype: HTMLXvGeoMapV2Element;
1734
+ new (): HTMLXvGeoMapV2Element;
1735
+ };
1603
1736
  interface HTMLXvHeaderElementEventMap {
1604
1737
  "xvMetaNavUpdate": any;
1605
1738
  }
@@ -2092,6 +2225,7 @@ declare global {
2092
2225
  "xv-dropdown-v2-item": HTMLXvDropdownV2ItemElement;
2093
2226
  "xv-file-uploader": HTMLXvFileUploaderElement;
2094
2227
  "xv-footer": HTMLXvFooterElement;
2228
+ "xv-geo-map-v2": HTMLXvGeoMapV2Element;
2095
2229
  "xv-header": HTMLXvHeaderElement;
2096
2230
  "xv-header-next": HTMLXvHeaderNextElement;
2097
2231
  "xv-image-viewer": HTMLXvImageViewerElement;
@@ -2223,7 +2357,7 @@ declare namespace LocalJSX {
2223
2357
  */
2224
2358
  "type"?: 'button' | 'submit' | 'reset';
2225
2359
  /**
2226
- * Button value is optional
2360
+ * Button value is optional. Reflected — xv-button-group-v2 keys its children by the attribute.
2227
2361
  */
2228
2362
  "value"?: string;
2229
2363
  /**
@@ -2484,6 +2618,10 @@ declare namespace LocalJSX {
2484
2618
  interface XvDatepicker {
2485
2619
  "block"?: boolean;
2486
2620
  "disabled"?: boolean;
2621
+ /**
2622
+ * Individual dates to disable within the min/max range. Each entry may be a `Date`, a bare 'yyyy-MM-dd' string, or a full ISO string — all normalised to a local 'yyyy-MM-dd' key that matches the calendar grid. Composes with min/max: a day is selectable only when it is inside the range AND not listed here (e.g. to allow only certain weekdays / block holidays).
2623
+ */
2624
+ "disabledDates"?: (Date | string)[];
2487
2625
  /**
2488
2626
  * Error status. Can be boolean or string
2489
2627
  */
@@ -2637,6 +2775,84 @@ declare namespace LocalJSX {
2637
2775
  }
2638
2776
  interface XvFooter {
2639
2777
  }
2778
+ /**
2779
+ * Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
2780
+ * Click a PLZ to (de)select it. No further UI — selection state and reach
2781
+ * data are emitted via `changeSelection` for the host page to display.
2782
+ * MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
2783
+ * the viewport, so the host page's initial load stays untouched.
2784
+ */
2785
+ interface XvGeoMapV2 {
2786
+ /**
2787
+ * Base URL of the geo API (Xv.Api v1/geo — contract-compatible with the XvGeoTool API). Default is the same-origin Front Door route, so no CORS is involved on crossvertise pages.
2788
+ * @default '/api-fd/v1/geo'
2789
+ */
2790
+ "apiBase"?: string;
2791
+ /**
2792
+ * @default '© CARTO, © OpenStreetMap contributors'
2793
+ */
2794
+ "attribution"?: string;
2795
+ /**
2796
+ * @default 51.16
2797
+ */
2798
+ "centerLat"?: number;
2799
+ /**
2800
+ * Initial map center
2801
+ * @default 10.45
2802
+ */
2803
+ "centerLng"?: number;
2804
+ /**
2805
+ * Indicator whose per-unit values feed the tooltips and the emitted population sum (e.g. ATV_DEVICES)
2806
+ * @default 'MBI_P_T_2025'
2807
+ */
2808
+ "indicator"?: string;
2809
+ /**
2810
+ * Unit label shown behind the indicator value in the tooltip
2811
+ * @default 'Einwohner'
2812
+ */
2813
+ "indicatorLabel"?: string;
2814
+ /**
2815
+ * Load the map bundle only when scrolled near the viewport (default: true)
2816
+ * @default true
2817
+ */
2818
+ "lazy"?: boolean;
2819
+ /**
2820
+ * Geo level to display and select: plz5, gemeinde, kreis, regbez, bundesland
2821
+ * @default 'plz5'
2822
+ */
2823
+ "level"?: string;
2824
+ /**
2825
+ * Selection changed: selected PLZs + population sum of the selection
2826
+ */
2827
+ "onChangeSelection"?: (event: XvGeoMapV2CustomEvent<GeoMapSelection>) => void;
2828
+ /**
2829
+ * Map finished initializing
2830
+ */
2831
+ "onMapReady"?: (event: XvGeoMapV2CustomEvent<void>) => void;
2832
+ /**
2833
+ * Shape resolution: medium = simplified geometry (snappy), high = originals
2834
+ * @default 'medium'
2835
+ */
2836
+ "resolution"?: 'medium' | 'high';
2837
+ /**
2838
+ * Minimum zoom before boundaries are loaded and selectable (use ~5 for bundesland, 9 for plz5)
2839
+ * @default 9
2840
+ */
2841
+ "selectZoom"?: number;
2842
+ /**
2843
+ * Raster tile URL template. Default: CARTO Positron — light, minimal, made for data overlays; fits the crossvertise design. For production traffic, license a tile plan (CARTO/MapTiler/Geofabrik) and set the keyed URL here.
2844
+ * @default 'https://basemaps.cartocdn.com/rastertiles/light_all/{z}/{x}/{y}@2x.png'
2845
+ */
2846
+ "tiles"?: string;
2847
+ /**
2848
+ * Explicit URL of maplibre-gl-worker.mjs (maplibre-gl-shared.mjs must sit next to it). Needed when the host bundler relocates the maplibre chunk so import.meta.url-relative worker resolution breaks (e.g. Angular/Vite dev server).
2849
+ */
2850
+ "workerUrl"?: string;
2851
+ /**
2852
+ * @default 5.5
2853
+ */
2854
+ "zoom"?: number;
2855
+ }
2640
2856
  interface XvHeader {
2641
2857
  "onXvMetaNavUpdate"?: (event: XvHeaderCustomEvent<any>) => void;
2642
2858
  }
@@ -2878,6 +3094,14 @@ declare namespace LocalJSX {
2878
3094
  }
2879
3095
  interface XvPagination {
2880
3096
  "block"?: boolean;
3097
+ /**
3098
+ * @default 10
3099
+ */
3100
+ "itemsPerPage"?: number;
3101
+ /**
3102
+ * @default [10, 20, 30, 40, 50, 100]
3103
+ */
3104
+ "itemsPerPageOptions"?: number[] | string;
2881
3105
  "onPageChange"?: (event: XvPaginationCustomEvent<{ page: number, itemsPerPage: number; }>) => void;
2882
3106
  /**
2883
3107
  * @default 1
@@ -3323,6 +3547,7 @@ declare namespace LocalJSX {
3323
3547
  "xv-dropdown-v2-item": XvDropdownV2Item;
3324
3548
  "xv-file-uploader": XvFileUploader;
3325
3549
  "xv-footer": XvFooter;
3550
+ "xv-geo-map-v2": XvGeoMapV2;
3326
3551
  "xv-header": XvHeader;
3327
3552
  "xv-header-next": XvHeaderNext;
3328
3553
  "xv-image-viewer": XvImageViewer;
@@ -3424,6 +3649,14 @@ declare module "@stencil/core" {
3424
3649
  "xv-dropdown-v2-item": LocalJSX.XvDropdownV2Item & JSXBase.HTMLAttributes<HTMLXvDropdownV2ItemElement>;
3425
3650
  "xv-file-uploader": LocalJSX.XvFileUploader & JSXBase.HTMLAttributes<HTMLXvFileUploaderElement>;
3426
3651
  "xv-footer": LocalJSX.XvFooter & JSXBase.HTMLAttributes<HTMLXvFooterElement>;
3652
+ /**
3653
+ * Minimal ATV planner map: MapLibre + PLZ boundaries from the XvGeoTool API.
3654
+ * Click a PLZ to (de)select it. No further UI — selection state and reach
3655
+ * data are emitted via `changeSelection` for the host page to display.
3656
+ * MapLibre (~250 KB gzip) is loaded lazily when the component scrolls near
3657
+ * the viewport, so the host page's initial load stays untouched.
3658
+ */
3659
+ "xv-geo-map-v2": LocalJSX.XvGeoMapV2 & JSXBase.HTMLAttributes<HTMLXvGeoMapV2Element>;
3427
3660
  "xv-header": LocalJSX.XvHeader & JSXBase.HTMLAttributes<HTMLXvHeaderElement>;
3428
3661
  /**
3429
3662
  * Drop-in successor of `xv-header` for the new headless CMS.