@mapvx/web-components 0.9.0-dev.4 → 0.9.0-dev.5

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 (32) hide show
  1. package/dist/cjs/{base-floor-selector-DCe13Fwr.cjs → base-floor-selector-C7uLaZEQ.cjs} +3 -3
  2. package/dist/cjs/{class-map-4EVzKJFA.cjs → class-map-BmxfuHe-.cjs} +3 -3
  3. package/dist/cjs/{compact-floor-selector-f3Vg-Mw8.cjs → compact-floor-selector-BC-kRiSf.cjs} +3 -3
  4. package/dist/cjs/{consume-DRfK7CRo.cjs → consume-D0KB6NRa.cjs} +3 -3
  5. package/dist/cjs/{custom-map-C6m88MK0.cjs → custom-map-CWj4Pliu.cjs} +3 -3
  6. package/dist/cjs/{enable-3d-attribute-BVi1YNhn.cjs → enable-3d-attribute-BfcFrDUP.cjs} +4 -4
  7. package/dist/cjs/{floor-selector-Bwt2wOIx.cjs → floor-selector-CQOa_c2I.cjs} +3 -3
  8. package/dist/cjs/index.cjs +3 -3
  9. package/dist/cjs/map-view-with-modal.cjs +3 -3
  10. package/dist/cjs/{qr-modal-YzX5h37X.cjs → qr-modal-Cdoa94GI.cjs} +5 -5
  11. package/dist/cjs/route-options-B8ee_2Hh.cjs +138 -0
  12. package/dist/cjs/route-view-totems.cjs +3 -3
  13. package/dist/cjs/{state-DPsEt4mp.cjs → state-lK9NebZE.cjs} +3 -3
  14. package/dist/es/assets/{base-floor-selector-DiAO1Sh5.js → base-floor-selector-9K_Zgc4Q.js} +3 -3
  15. package/dist/es/assets/{class-map-9gMciWNt.js → class-map-Cl_HZqif.js} +3 -3
  16. package/dist/es/assets/{compact-floor-selector-QyZe43Wr.js → compact-floor-selector-xdBCEZMp.js} +3 -3
  17. package/dist/es/assets/{consume-CZ6vRJK9.js → consume-BVCy2F1c.js} +3 -3
  18. package/dist/es/assets/{custom-map-KHVZBnO_.js → custom-map-BCAiVSzB.js} +3 -3
  19. package/dist/es/assets/{enable-3d-attribute-btpETT7S.js → enable-3d-attribute-BivvMWbS.js} +3 -3
  20. package/dist/es/assets/{floor-selector-LRSMd5xX.js → floor-selector-Hc-nAszb.js} +3 -3
  21. package/dist/es/assets/{qr-modal-Ckb-gpRO.js → qr-modal-DQO-8Zni.js} +5 -5
  22. package/dist/es/assets/{route-options-CRN8ecbF.js → route-options-DN6SQx_f.js} +9 -9
  23. package/dist/es/assets/{state-Dn5MwTcA.js → state-BB7jYDVb.js} +3 -3
  24. package/dist/es/index.js +3 -3
  25. package/dist/es/map-view-with-modal.js +3 -3
  26. package/dist/es/route-view-totems.js +3 -3
  27. package/dist/iife/map-view-with-modal.js +3 -3
  28. package/dist/iife/route-view-totems.js +9 -9
  29. package/dist/types/utils/qr-card-size.d.cts +78 -0
  30. package/dist/types/utils/qr-card-size.d.ts +78 -0
  31. package/package.json +1 -1
  32. package/dist/cjs/route-options-cUf4NVxm.cjs +0 -138
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Sizing contract of the QR card that `<route-view-totems>` renders under the route panel
3
+ * (`<qr-modal>`, MFE-520).
4
+ *
5
+ * The two custom properties are the integrator's handle on the card: custom properties inherit
6
+ * across shadow roots, so setting them on `<route-view-totems>` or on `:root` reaches the card two
7
+ * shadow roots down without any attribute forwarding. `src/styles/qr-modal.css` reads both by name,
8
+ * with these defaults as fallbacks. A stylesheet cannot import a constant, so the spellings are kept
9
+ * in step by hand and the `qr-modal` unit test checks the stylesheet still consumes each name with
10
+ * its default; a mismatch would not fail loudly, the host's value would simply be ignored.
11
+ *
12
+ * Kept apart from the component so the Playwright spec can import it: the component module pulls in
13
+ * Vite-only imports (`?raw`, `?inline`) that the Playwright runner cannot resolve.
14
+ */
15
+ /**
16
+ * @description Caps the card's width. With the full panel the card is as wide as the panel and
17
+ * this is unset by default; with `panel-variant="compact"` the card fills the panel column up to
18
+ * this value ({@link DEFAULT_QR_CARD_MAX_WIDTH_PX}), and up to the ceiling `route-options.css`
19
+ * gives it: the compact panel's 480px, or the room left of the vertical floor bar in narrow
20
+ * containers.
21
+ *
22
+ * @example
23
+ * ```html
24
+ * <route-view-totems style="--mvx-qr-card-max-width: 320px;"></route-view-totems>
25
+ * ```
26
+ */
27
+ export declare const QR_CARD_MAX_WIDTH_PROPERTY = "--mvx-qr-card-max-width";
28
+ /**
29
+ * @description Rendered size of the QR code itself. The bitmap is generated at
30
+ * {@link QR_BITMAP_SIZE_PX}, so values up to that stay sharp on 2x displays. The code keeps this
31
+ * size while the card is at least 40px wider (its 4px frame and the card's 16px padding, both
32
+ * sides); in a narrower card it shrinks to the card.
33
+ *
34
+ * @example
35
+ * ```html
36
+ * <route-view-totems style="--mvx-qr-code-size: 120px;"></route-view-totems>
37
+ * ```
38
+ */
39
+ export declare const QR_CODE_SIZE_PROPERTY = "--mvx-qr-code-size";
40
+ /**
41
+ * @description Default of {@link QR_CARD_MAX_WIDTH_PROPERTY} under the compact panel, in px. Room
42
+ * for the 40px icon, five lines of the invitation text and the 158px code box in one row, and well
43
+ * under the 415px minimum the card used to force on a portrait totem. Under the full panel there is
44
+ * no default cap: the card is as wide as the panel. `qr-modal.css` spells it as the variable's
45
+ * fallback.
46
+ *
47
+ * @example
48
+ * ```css
49
+ * :host(.compact) .card {
50
+ * max-width: var(--mvx-qr-card-max-width, 360px);
51
+ * }
52
+ * ```
53
+ */
54
+ export declare const DEFAULT_QR_CARD_MAX_WIDTH_PX = 360;
55
+ /**
56
+ * @description Default of {@link QR_CODE_SIZE_PROPERTY}, in px: the size the code has always
57
+ * rendered at. `qr-modal.css` spells it as the variable's fallback.
58
+ *
59
+ * @example
60
+ * ```css
61
+ * .qr-code img {
62
+ * width: var(--mvx-qr-code-size, 150px);
63
+ * }
64
+ * ```
65
+ */
66
+ export declare const DEFAULT_QR_CODE_SIZE_PX = 150;
67
+ /**
68
+ * @description Width of the generated bitmap, in px: twice the rendered default, so the code stays
69
+ * crisp on DPR 2 totems and when a host enlarges it through {@link QR_CODE_SIZE_PROPERTY}. At the
70
+ * default size it renders at the same 150 CSS px as before.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * // How qr-modal generates the code; its stylesheet scales the image to --mvx-qr-code-size.
75
+ * const dataUrl = await toDataURL(url, { type: 'image/webp', width: QR_BITMAP_SIZE_PX });
76
+ * ```
77
+ */
78
+ export declare const QR_BITMAP_SIZE_PX: number;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Sizing contract of the QR card that `<route-view-totems>` renders under the route panel
3
+ * (`<qr-modal>`, MFE-520).
4
+ *
5
+ * The two custom properties are the integrator's handle on the card: custom properties inherit
6
+ * across shadow roots, so setting them on `<route-view-totems>` or on `:root` reaches the card two
7
+ * shadow roots down without any attribute forwarding. `src/styles/qr-modal.css` reads both by name,
8
+ * with these defaults as fallbacks. A stylesheet cannot import a constant, so the spellings are kept
9
+ * in step by hand and the `qr-modal` unit test checks the stylesheet still consumes each name with
10
+ * its default; a mismatch would not fail loudly, the host's value would simply be ignored.
11
+ *
12
+ * Kept apart from the component so the Playwright spec can import it: the component module pulls in
13
+ * Vite-only imports (`?raw`, `?inline`) that the Playwright runner cannot resolve.
14
+ */
15
+ /**
16
+ * @description Caps the card's width. With the full panel the card is as wide as the panel and
17
+ * this is unset by default; with `panel-variant="compact"` the card fills the panel column up to
18
+ * this value ({@link DEFAULT_QR_CARD_MAX_WIDTH_PX}), and up to the ceiling `route-options.css`
19
+ * gives it: the compact panel's 480px, or the room left of the vertical floor bar in narrow
20
+ * containers.
21
+ *
22
+ * @example
23
+ * ```html
24
+ * <route-view-totems style="--mvx-qr-card-max-width: 320px;"></route-view-totems>
25
+ * ```
26
+ */
27
+ export declare const QR_CARD_MAX_WIDTH_PROPERTY = "--mvx-qr-card-max-width";
28
+ /**
29
+ * @description Rendered size of the QR code itself. The bitmap is generated at
30
+ * {@link QR_BITMAP_SIZE_PX}, so values up to that stay sharp on 2x displays. The code keeps this
31
+ * size while the card is at least 40px wider (its 4px frame and the card's 16px padding, both
32
+ * sides); in a narrower card it shrinks to the card.
33
+ *
34
+ * @example
35
+ * ```html
36
+ * <route-view-totems style="--mvx-qr-code-size: 120px;"></route-view-totems>
37
+ * ```
38
+ */
39
+ export declare const QR_CODE_SIZE_PROPERTY = "--mvx-qr-code-size";
40
+ /**
41
+ * @description Default of {@link QR_CARD_MAX_WIDTH_PROPERTY} under the compact panel, in px. Room
42
+ * for the 40px icon, five lines of the invitation text and the 158px code box in one row, and well
43
+ * under the 415px minimum the card used to force on a portrait totem. Under the full panel there is
44
+ * no default cap: the card is as wide as the panel. `qr-modal.css` spells it as the variable's
45
+ * fallback.
46
+ *
47
+ * @example
48
+ * ```css
49
+ * :host(.compact) .card {
50
+ * max-width: var(--mvx-qr-card-max-width, 360px);
51
+ * }
52
+ * ```
53
+ */
54
+ export declare const DEFAULT_QR_CARD_MAX_WIDTH_PX = 360;
55
+ /**
56
+ * @description Default of {@link QR_CODE_SIZE_PROPERTY}, in px: the size the code has always
57
+ * rendered at. `qr-modal.css` spells it as the variable's fallback.
58
+ *
59
+ * @example
60
+ * ```css
61
+ * .qr-code img {
62
+ * width: var(--mvx-qr-code-size, 150px);
63
+ * }
64
+ * ```
65
+ */
66
+ export declare const DEFAULT_QR_CODE_SIZE_PX = 150;
67
+ /**
68
+ * @description Width of the generated bitmap, in px: twice the rendered default, so the code stays
69
+ * crisp on DPR 2 totems and when a host enlarges it through {@link QR_CODE_SIZE_PROPERTY}. At the
70
+ * default size it renders at the same 150 CSS px as before.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * // How qr-modal generates the code; its stylesheet scales the image to --mvx-qr-code-size.
75
+ * const dataUrl = await toDataURL(url, { type: 'image/webp', width: QR_BITMAP_SIZE_PX });
76
+ * ```
77
+ */
78
+ export declare const QR_BITMAP_SIZE_PX: number;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mapvx/web-components",
3
3
  "description": "MapVX Web Components is a web components library that provides interactive and accessible mapping solutions. Built with Lit, it offers a modern, lightweight, and framework-agnostic way to integrate maps into any web application.",
4
- "version": "0.9.0-dev.4",
4
+ "version": "0.9.0-dev.5",
5
5
  "type": "module",
6
6
  "author": "Mapvx",
7
7
  "homepage": "https://docs.mapvx.app/web-components/",
@@ -1,138 +0,0 @@
1
- "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="95247f94-8aaf-5c10-86e3-4087fdd9f974")}catch(e){}}();
3
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./consume-DRfK7CRo.cjs"),t=require("./enable-3d-attribute-BVi1YNhn.cjs"),i=require("./route-panel-variant-BfIrlzjD.cjs");var o,s,n,r,a,c,l,p=Object.defineProperty,d=Object.getOwnPropertyDescriptor,u=e=>{throw TypeError(e)},h=(e,t,i,o)=>{for(var s,n=o>1?void 0:o?d(t,i):t,r=e.length-1;r>=0;r--)(s=e[r])&&(n=(o?s(t,i,n):s(n))||n);return o&&n&&p(t,i,n),n},g=(e,t,i)=>t.has(e)||u("Cannot "+i),f=(e,t,i)=>(g(e,t,"read from private field"),i?i.call(e):t.get(e)),b=(e,t,i)=>t.has(e)?u("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,i),m=(e,t,i,o)=>(g(e,t,"write to private field"),t.set(e,i),i);exports.RouteOptions=class extends t.i$1{constructor(){super(),b(this,o,!1),b(this,s,!1),b(this,n,!1),b(this,r,!1),b(this,a,!1),b(this,c,!1),b(this,l,i.DEFAULT_ROUTE_PANEL_VARIANT),this.assets=null,this._loadAssets()}get hideBack(){return f(this,o)}set hideBack(e){m(this,o,e)}get hideRepeatRoute(){return f(this,s)}set hideRepeatRoute(e){m(this,s,e)}get hideRouteInputs(){return f(this,n)}set hideRouteInputs(e){m(this,n,e)}get hideAccessibilitySwitch(){return f(this,r)}set hideAccessibilitySwitch(e){m(this,r,e)}get hideGenerateRoute(){return f(this,a)}set hideGenerateRoute(e){m(this,a,e)}get autoGenerateRoute(){return f(this,c)}set autoGenerateRoute(e){m(this,c,e)}get panelVariant(){return f(this,l)}set panelVariant(e){m(this,l,e)}async _loadAssets(){this.assets=await(async()=>{const[e,t,i,o,s,n]=await Promise.all([Promise.resolve().then(()=>require("./accessibility-DWoi6we_.cjs")),Promise.resolve().then(()=>require("./back_arrow-DNrh84z6.cjs")),Promise.resolve().then(()=>require("./icon-destination-point-C8Bl9rvO.cjs")),Promise.resolve().then(()=>require("./icon-origin-point-B0FLE42C.cjs")),Promise.resolve().then(()=>require("./repeat_icon-DBYc7GBB.cjs")),Promise.resolve().then(()=>require("./walking-CDbgxjU4.cjs"))]);return{accessibilityIcon:e.default,backIcon:t.default,destinationPoint:i.default,originPoint:o.default,repeatIcon:s.default,walkingIcon:n.default}})(),this.requestUpdate()}handleBack(){this.dispatchEvent(new CustomEvent("back",{detail:{},bubbles:!0,composed:!0}))}handleAccessibility(){this.dispatchEvent(new CustomEvent("accessibilityChange",{detail:!this.sdkData?.accessibleRoute,bubbles:!0,composed:!0}))}handleRepeatRoute(){this.dispatchEvent(new CustomEvent("repeatRoute",{detail:!0,bubbles:!0,composed:!0}))}handleGenerateRoute(){this.dispatchEvent(new CustomEvent("generateRoute",{detail:{accessible:!!this.sdkData?.accessibleRoute},bubbles:!0,composed:!0}))}_dismissError(){t.AnalyticsController.getInstance().trackEvent("error_modal_dismissed",{error_message:this.sdkData?.routeError,origin_id:this.sdkData?.originId,destination_id:this.sdkData?.destinationId}),this.dispatchEvent(new CustomEvent("dismissRouteError",{bubbles:!0,composed:!0}))}render(){if(!this.sdkData)return t.b``;const{destination:e,accessibleRoute:o,parentPlace:s,origin:n,route:r,isRouteAnimating:a,isLoading:c,loadingRoute:l,isNetworkError:p}=this.sdkData,d=(o?this.assets?.accessibilityIcon:this.assets?.walkingIcon)??"",u=e?.title??"",h=s?.innerFloors??[],g=(n&&"function"==typeof n.inFloor?n.inFloor(h):void 0)?.name??"",f=(e&&"function"==typeof e.inFloor?e.inFloor(h):void 0)?.name??"",b=a??!1;let m="";r&&r.legs&&r.legs.length>0&&r.legs[0].distance&&(m=`• ${r.legs[0].distance.toFixed(0)} mts`);const x="compact"===i.toRoutePanelVariant(this.panelVariant)?this._renderCompactPanel(u,f,m,d):this._renderFullPanel({destinationName:u,destinationFloor:f,originFloor:g,distance:m,defaultIcon:d,hasRoute:!!r,isAnimating:b});return t.b`
4
- ${x}
5
- <qr-modal></qr-modal>
6
- ${c||l?t.b`
7
- <div class="loading-overlay">
8
- <div class="loading-spinner"></div>
9
- <p class="loading-text">${l?"Generando ruta...":"Cargando..."}</p>
10
- </div>
11
- `:""}
12
- ${this.sdkData?.routeError?this._renderErrorModal(this.sdkData.routeError,!!p):""}
13
- `}_showGenerateRoute(){const{route:e,loadingRoute:t,isLoading:i,routeFailed:o,placesFailed:s,origin:n,destination:r}=this.sdkData??{};return!e&&(!this.autoGenerateRoute&&!this.hideGenerateRoute||!t&&!i&&(!(!o&&!s)||!this.hideGenerateRoute&&!(!n||!r)))}_renderFullPanel(e){const{destinationName:i,destinationFloor:o,originFloor:s,distance:n,defaultIcon:r,hasRoute:a,isAnimating:c}=e,l=!this.hideRouteInputs||!this.hideAccessibilitySwitch;return t.b`
14
- <div class="route-panel">
15
- <div class="flex flex-col h-full">
16
- ${this.hideBack?t.A:t.b`
17
- <div class="back-panel" @click=${this.handleBack}>
18
- <div class="back-content">
19
- <span .innerHTML=${this.assets?.backIcon??""}></span>
20
- <span class="back-text">Volver</span>
21
- </div>
22
- </div>
23
- `}
24
-
25
- <div class="route-modal">
26
- <div class="entrance-name d-flex align-items-center">
27
- <div class="icon_switcher_user_type">
28
- <span .innerHTML=${r}></span>
29
- </div>
30
- <span class="justify-content-center place-name"> ${i} </span>
31
- ${a&&!this.hideRepeatRoute?t.b`
32
- <button class="repeat-route-btn" @click=${this.handleRepeatRoute} ?disabled=${c}>
33
- <span .innerHTML=${this.assets?.repeatIcon??""}></span>
34
- <span>Repetir ruta</span>
35
- </button>
36
- `:t.A}
37
- </div>
38
- <div class="floor-specs">
39
- <span class="floor-name">${o}</span>
40
- <span class="route-distance">${n}</span>
41
- </div>
42
- ${l?t.b`
43
- <div class="d-flex flex-wrap container-controls">
44
- ${this.hideRouteInputs?t.A:t.b`
45
- <div class="flex-fill route-input-wrapper">
46
- <div class="c-route-input c-route-input-from">
47
- <div class="c-route-input-icon">
48
- <img src=${t.o(this.assets?.originPoint)} alt="" class="icon-point" />
49
- </div>
50
- Desde mi ubicación
51
- <span>${s}</span>
52
- </div>
53
- <div class="c-route-input" @click=${this.hideBack?t.A:this.handleBack}>
54
- <div class="c-route-input-icon">
55
- <img src=${t.o(this.assets?.destinationPoint)} alt="" class="icon-point" />
56
- </div>
57
- ${i}
58
- <span>${o}</span>
59
- </div>
60
- </div>
61
- `}
62
- ${this._renderAccessibilitySwitch()}
63
- </div>
64
- `:t.A}
65
- ${this._showGenerateRoute()?this._renderGenerateRoute():t.A}
66
- </div>
67
- </div>
68
- </div>
69
- `}_renderCompactPanel(e,i,o,s){return t.b`
70
- <div class="route-panel compact" data-testid="route-panel-compact">
71
- <div class="route-modal compact-modal">
72
- <div class="compact-info">
73
- <div class="entrance-name d-flex align-items-center">
74
- <div class="icon_switcher_user_type">
75
- <span .innerHTML=${s}></span>
76
- </div>
77
- <span class="place-name" title=${e}>${e}</span>
78
- </div>
79
- <div class="floor-specs">
80
- <span class="floor-name">${i}</span>
81
- <span class="route-distance">${o}</span>
82
- </div>
83
- </div>
84
- ${this._renderAccessibilitySwitch()}
85
- </div>
86
- ${this._showGenerateRoute()?t.b`<div class="compact-generate-route">${this._renderGenerateRoute()}</div>`:t.A}
87
- </div>
88
- `}_renderAccessibilitySwitch(){if(this.hideAccessibilitySwitch)return t.A;const e=!!this.sdkData?.accessibleRoute;return t.b`
89
- <div
90
- class="accessibility-switch ${e?"accessible":""}"
91
- data-testid="accessibility-switch"
92
- @click=${this.handleAccessibility}
93
- >
94
- <div class="accessibility-switch-icon ${e?"":"active"}">
95
- <span .innerHTML=${this.assets?.walkingIcon??""}></span>
96
- </div>
97
- <div class="accessibility-switch-icon ${e?"active":""}">
98
- <span .innerHTML=${this.assets?.accessibilityIcon??""}></span>
99
- </div>
100
- </div>
101
- `}_renderGenerateRoute(){return t.b`
102
- <div class="generate-route-container d-flex justify-content-center align-items-center mt-3">
103
- <button class="generate-route-btn" @click=${this.handleGenerateRoute}>
104
- <span> Generar ruta</span>
105
- </button>
106
- </div>
107
- `}_renderErrorModal(e,i){return t.b`
108
- <div class="error-modal-overlay">
109
- <div class="error-modal">
110
- <div class="error-icon ${i?"network-error":""}">
111
- ${i?t.b`
112
- <svg width="48" height="48" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
113
- <path
114
- d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z"
115
- stroke="currentColor"
116
- stroke-width="2"
117
- />
118
- <path d="M8 8L16 16M16 8L8 16" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
119
- </svg>
120
- `:t.b`
121
- <svg width="48" height="48" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
122
- <path
123
- d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z"
124
- stroke="currentColor"
125
- stroke-width="2"
126
- />
127
- <path d="M12 8V12" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
128
- <circle cx="12" cy="16" r="1" fill="currentColor" />
129
- </svg>
130
- `}
131
- </div>
132
- <p class="error-message">${e}</p>
133
- <button class="error-btn" @click=${this._dismissError}>Aceptar</button>
134
- </div>
135
- </div>
136
- `}},o=new WeakMap,s=new WeakMap,n=new WeakMap,r=new WeakMap,a=new WeakMap,c=new WeakMap,l=new WeakMap,exports.RouteOptions.styles=[t.r(":host{position:absolute;top:0;left:0;padding:1rem;z-index:10;font-family:Poppins!important;user-select:none}svg{vertical-align:middle}.back-panel{background-color:#11032b;color:#fff;margin-bottom:5px;padding-left:1.2rem;align-items:center;height:55px;position:relative}.back-content{margin:0;position:relative;top:50%;transform:translateY(-50%);font-size:22px;color:#fff;display:flex;align-items:center;gap:8px;cursor:pointer}.route-panel{width:29.79vw;min-width:415px;max-height:75vh;overflow-y:auto;overflow-x:hidden;border-radius:24px;background:#fff;box-shadow:0 0 24px #00000026}.back-text{font-size:24px;font-weight:600}.back-content img{vertical-align:middle}.route-modal{padding:19px 13px 22px 32px}.icon_switcher_user_type{position:relative;color:#000}.d-flex{display:flex!important}.flex-fill{flex:1 1 auto!important}.place-name{font-weight:700;font-size:32px;line-height:1;letter-spacing:-1.6px;color:#333;margin-left:2px}.repeat-route-btn{display:flex;gap:10px;justify-content:center;align-items:center;text-align:center;background-color:#fff;border:2px solid #000000;border-radius:999px;margin-left:auto;margin-right:0;padding:12px 20px;font-size:20px;font-weight:700;line-height:20px;letter-spacing:-1px;color:#000;transition:background-color .3s ease,color .3s ease;cursor:pointer}.repeat-route-btn[disabled]{color:gray;border-color:gray;cursor:not-allowed;pointer-events:none}.floor-name{font-size:1rem;color:#427553}.floor-specs{font-family:Poppins;font-weight:600;line-height:14px;size:18px}.route-distance{color:#666}.container-controls{margin-top:16px;align-items:end;gap:11px}.c-route-input{color:#000;display:flex;padding:15px;font-size:16px;font-style:normal;font-weight:600;line-height:16px;letter-spacing:-.8px;align-items:center;gap:9px;border-radius:30px;background:#fff;box-shadow:0 0 10px #0000001a;position:relative;margin-top:12px}.c-route-input .c-route-input-icon svg{width:22px;height:22px}.c-route-input-from{margin-top:0}.c-route-input-from:after{content:\"\";position:absolute;bottom:-50%;left:24px;width:3.998px;height:34.5px;z-index:1;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='38' viewBox='0 0 4 38' fill='none'%3E%3Cpath d='M-0.00028944 18.9386C-0.00028944 17.8347 0.894666 16.9397 1.99864 16.9397C3.10259 16.9397 3.99756 17.8347 3.99756 18.9386C3.99756 20.0426 3.10259 20.9375 1.99864 20.9375C0.894666 20.9375 -0.00028944 20.0426 -0.00028944 18.9386ZM-0.00028944 27.2198C-0.00028944 26.1159 0.894666 25.2209 1.99864 25.2209C3.10259 25.2209 3.99756 26.1159 3.99756 27.2198C3.99756 28.3238 3.10259 29.2188 1.99864 29.2188C0.894666 29.2188 -0.00028944 28.3238 -0.00028944 27.2198ZM-0.00028944 35.5011C-0.00028944 34.3971 0.894666 33.5021 1.99864 33.5021C3.10259 33.5021 3.99756 34.3971 3.99756 35.5011C3.99756 36.605 3.10259 37.5 1.99864 37.5C0.894666 37.5 -0.00028944 36.605 -0.00028944 35.5011Z' fill='%23D0D0D0'/%3E%3Cpath d='M1.99864 8.49999C0.894666 8.49999 -0.00028944 9.39496 -0.00028944 10.4989C-0.00028944 11.6029 0.894666 12.4978 1.99864 12.4978C3.10259 12.4978 3.99756 11.6029 3.99756 10.4989C3.99756 9.39496 3.10259 8.49999 1.99864 8.49999Z' fill='%23D0D0D0'/%3E%3Cpath d='M1.99864 0C0.894666 0 -0.00028944 0.894973 -0.00028944 1.99892C-0.00028944 3.10289 0.894666 3.99784 1.99864 3.99784C3.10259 3.99784 3.99756 3.10289 3.99756 1.99892C3.99756 0.894973 3.10259 0 1.99864 0Z' fill='%23D0D0D0'/%3E%3C/svg%3E\")}.c-route-input span{padding:0 6px;border-radius:15px;color:#454545;background:#f2f2f2;font-size:10px;font-style:normal;font-weight:600;line-height:14px;letter-spacing:-.5px}.accessibility-switch{display:flex;align-items:center;justify-content:center;min-width:100px;height:50px;border-radius:48px;background-color:#fff;box-shadow:0 0 15px #0003;position:relative}.accessibility-switch:before,.accessibility-switch:after{content:\"\";border-radius:50%;width:50%;height:100%;background:#000;position:absolute;bottom:0;left:0;background:linear-gradient(45.8deg,#f5a 10.03%,#b850c9 25.23%,#6572d6 48.67%,#4eaeb8 72.74%);z-index:0;transition:transform .5s ease}.accessibility-switch:after{background:var(--mvx-accessibility-switch-active-color, #000);clip-path:circle(22px);z-index:1}.accessibility-switch.accessible:before,.accessibility-switch.accessible:after{transform:translate(100%)}.accessibility-switch-icon{width:50px;height:100%;display:grid;place-items:center;cursor:pointer;z-index:2;transition:color .5s ease;color:#000}.accessibility-switch-icon.active{color:#fff}.generate-route-btn{border-style:solid;width:100%;border-radius:30px;height:58px;background-color:#11032b;cursor:pointer}.generate-route-btn span{font-family:Poppins;font-size:1rem;line-height:16px;font-weight:600;text-align:center;color:#fff}.generate-route-container{width:100%}.route-panel.compact{width:auto;min-width:0;max-width:480px}@container (max-width: 1100px){.route-panel.compact{max-width:min(calc(100cqw - var(--floor-selector-inline-size, 102px) - 1rem),480px)}}.compact-modal{display:flex;align-items:center;gap:16px;padding:16px 16px 16px 24px}.compact-info{flex:1 1 auto;min-width:0}.compact .place-name{font-size:26px;letter-spacing:-1.2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact .floor-specs{margin-top:6px;font-size:14px}.compact .accessibility-switch{flex:0 0 auto;min-width:88px;height:44px}.compact .accessibility-switch:after{clip-path:circle(19px)}.compact .accessibility-switch-icon{width:44px}.compact-generate-route{padding:0 16px 16px}.compact-generate-route .generate-route-container{margin-top:0!important}.compact-generate-route .generate-route-btn{height:48px}.mt-3{margin-top:1rem!important}.align-items-center{align-items:center!important}.justify-content-center{justify-content:center!important}.error-modal-overlay{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000}.error-modal{background:#fff;color:#11032b;border-radius:24px;padding:32px;text-align:center;max-width:350px;box-shadow:0 0 24px #0000004d;animation:fadeInScale .2s ease-out}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.error-icon{margin-bottom:16px;color:#11032b}.error-message{font-size:18px;margin:0 0 24px;line-height:1.4;font-weight:500}.error-btn{background:#11032b;color:#fff;border:none;border-radius:30px;padding:12px 40px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .2s ease}.error-btn:hover{background:#1a0540}.loading-overlay{position:fixed;inset:0;background:#ffffffd9;backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999}.loading-spinner{width:60px;height:60px;border:4px solid #f3f3f3;border-top:4px solid #11032b;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{margin-top:16px;font-size:18px;font-weight:600;color:#11032b}.error-icon.network-error{color:#e74c3c}")],h([e.c({context:t.sdkContext,subscribe:!0})],exports.RouteOptions.prototype,"sdkData",2),h([t.n({type:Boolean,attribute:"hide-back"})],exports.RouteOptions.prototype,"hideBack",1),h([t.n({type:Boolean,attribute:"hide-repeat-route"})],exports.RouteOptions.prototype,"hideRepeatRoute",1),h([t.n({type:Boolean,attribute:"hide-route-inputs"})],exports.RouteOptions.prototype,"hideRouteInputs",1),h([t.n({type:Boolean,attribute:"hide-accessibility-switch"})],exports.RouteOptions.prototype,"hideAccessibilitySwitch",1),h([t.n({type:Boolean,attribute:"hide-generate-route"})],exports.RouteOptions.prototype,"hideGenerateRoute",1),h([t.n({type:Boolean,attribute:"auto-generate-route"})],exports.RouteOptions.prototype,"autoGenerateRoute",1),h([t.n({type:String,attribute:"panel-variant"})],exports.RouteOptions.prototype,"panelVariant",1),exports.RouteOptions=h([t.t("route-options")],exports.RouteOptions);
137
-
138
- //# debugId=95247f94-8aaf-5c10-86e3-4087fdd9f974