@expofp/floorplan 3.3.6 → 3.3.8

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 (181) hide show
  1. package/dist/browser/CookieConsent-DhAS93Nm.js +38 -0
  2. package/dist/browser/{Debug-B6QDpJxx.js → Debug-DciNEVl6.js} +7 -7
  3. package/dist/browser/{Demo-CmoCmv3_.js → Demo-Dh3K6IRU.js} +11 -11
  4. package/dist/browser/{Free-6d3Z-hZo.js → Free-BHUzZwj9.js} +11 -11
  5. package/dist/browser/{Gallery-CqA_47ba.js → Gallery-C0nPxxJB.js} +11 -11
  6. package/dist/browser/{GpsLoader-Cy-uOINH.js → GpsLoader-De8VPIEW.js} +32 -33
  7. package/dist/browser/{KioskStore-CtP1ygLF.js → KioskStore-D1jnGTbv.js} +17 -17
  8. package/dist/browser/{Mapbox-yT1ns7Om.js → Mapbox-CzVyYzjj.js} +11 -11
  9. package/dist/browser/{Modal-DEpSL45b.js → Modal-D8kuOldj.js} +10 -10
  10. package/dist/browser/PermissionNotice-v9vhrWnr.js +54 -0
  11. package/dist/browser/{SetKioskMode-bDu8HF9D.js → SetKioskMode-D2cDGv9V.js} +17 -17
  12. package/dist/browser/ShowKiosk-DjrDUQUM.js +26 -0
  13. package/dist/browser/{ThreeComponent-Dhwt6SDZ.js → ThreeComponent-CUKVDY94.js} +176 -176
  14. package/dist/browser/{TouchHand-Bw0vu74f.js → TouchHand-hrkQyTE4.js} +4 -4
  15. package/dist/browser/{ViewerMenuPanel-BBaD08Ti.js → ViewerMenuPanel-BVfEToAO.js} +17 -17
  16. package/dist/browser/{add-debug-secret-listener-C2pzNRB7.js → add-debug-secret-listener-CdWQ5IqR.js} +1 -1
  17. package/dist/browser/{boolean-editor-oIJWPAIC.js → boolean-editor-D24_ATfB.js} +12 -12
  18. package/dist/browser/{bootIntercom-DJ1Wsw-t.js → bootIntercom-DSRi4yws.js} +2 -2
  19. package/dist/browser/{box-D9WeJqJ4.js → box-BXDPYk7M.js} +16 -16
  20. package/dist/browser/{browser-tRBhScov.js → browser-Dk-lVBqy.js} +2 -2
  21. package/dist/browser/bundle.json +61 -58
  22. package/dist/browser/{classnames-Dd3Clkxo.js → classnames-DNY5NR54.js} +2 -2
  23. package/dist/browser/{client-BCjTE6Oe.js → client-CWN096Nx.js} +9 -9
  24. package/dist/browser/{components-CIDKN5H0.js → components-D9o158HA.js} +872 -887
  25. package/dist/browser/{data-DWKRaUiq.js → data-ZH4_sxkL.js} +44 -44
  26. package/dist/browser/{debug-overlay-C9zmB-NE.js → debug-overlay-DQG-UfZv.js} +27 -27
  27. package/dist/browser/{debug-ui-CWf5qkyG.js → debug-ui-yYN-_8G_.js} +6 -6
  28. package/dist/browser/{dist-BtTsP6ro.js → dist-7_sOACbd.js} +7 -7
  29. package/dist/browser/{dist-DiA3okaC.js → dist-CAs4SFEJ.js} +5 -5
  30. package/dist/browser/{dist-RhfKrh69.js → dist-uPMox8hh.js} +11 -11
  31. package/dist/browser/{efp-debug-init-Oz6z8V0O.js → efp-debug-init-Dwp-psKk.js} +2 -2
  32. package/dist/browser/{enum-editor-D_P2He0X.js → enum-editor-PV_iv0tr.js} +14 -14
  33. package/dist/browser/{event-not-found-CJZjC71b.js → event-not-found-BjBg31r7.js} +1 -1
  34. package/dist/browser/{exports-BHT2PwbT.js → exports-lMrT2XbM.js} +238 -234
  35. package/dist/browser/{favicon-BhEzU7xm.js → favicon-qwrv2N2K.js} +1 -1
  36. package/dist/browser/{fetch-retry.umd-9oI2sMtE.js → fetch-retry.umd-D_06P7tx.js} +2 -2
  37. package/dist/browser/{flex-C82CsX0h.js → flex-DMyWG2k5.js} +8 -8
  38. package/dist/browser/{flex.props-BUgwoS24.js → flex.props-DJYmgUbO.js} +4 -4
  39. package/dist/browser/{floorplan.loader-ZO27mgIv.js → floorplan.loader-CkEu28br.js} +82 -80
  40. package/dist/browser/{floorplan.ready-ChOsbZoq.js → floorplan.ready-CL42thhp.js} +251 -251
  41. package/dist/browser/{fuse-glosmX9A.js → fuse-BrJpK9Lv.js} +2 -2
  42. package/dist/browser/{i18n-DzBoUseq.js → i18n-ST-5I_Xd.js} +3 -3
  43. package/dist/browser/index.js +12 -12
  44. package/dist/browser/{jsx-runtime-DvVsGWXH.js → jsx-runtime-z-VgZsNI.js} +4 -4
  45. package/dist/browser/{lib-CjvNZqhE.js → lib-resthkmx.js} +5 -5
  46. package/dist/browser/{main-JYV2VtSZ.js → main-BOaUt8eX.js} +1 -1
  47. package/dist/browser/{mobx-ByoyhaK0.js → mobx-BGVJo_6r.js} +4 -4
  48. package/dist/browser/{particles.min-Cgx-yqV-.js → particles.min-D3-LD_RC.js} +2 -2
  49. package/dist/browser/{prop-types-DzKB60lx.js → prop-types-xS5Y65WT.js} +2 -2
  50. package/dist/browser/{react-C7hZG5Nz.js → react-CDDaD-I1.js} +5 -5
  51. package/dist/browser/{react-dom-C3yLDDYs.js → react-dom-B1aPQ40g.js} +6 -6
  52. package/dist/browser/{reset-all-settings-CCCs7lcd.js → reset-all-settings-DHgz1Ud7.js} +7 -7
  53. package/dist/browser/{rolldown-runtime-BmCOYztJ.js → rolldown-runtime-Bb8iYlSJ.js} +1 -1
  54. package/dist/browser/{settings-CWpivpyF.js → settings-BD9hHBVE.js} +2 -2
  55. package/dist/browser/{settings-item-DMU2itsx.js → settings-item-BMJ0aBEh.js} +8 -8
  56. package/dist/browser/{storage-CctEhEsx.js → storage-B0mOBJql.js} +2 -2
  57. package/dist/browser/{store-UEcKlmzw.js → store-Dyrv6nnP.js} +686 -697
  58. package/dist/browser/{string-editor-DJ6T44VF.js → string-editor-DoAiUhFX.js} +10 -10
  59. package/dist/browser/{theme-BmYr43FR.js → theme-7rduvM4D.js} +29 -29
  60. package/dist/browser/{ui-BHiesqpT.js → ui-CgRQk7e0.js} +8 -8
  61. package/dist/browser/{useRenderTarget-C1SrYFsM.js → useRenderTarget-rq9Hu7Z3.js} +4 -4
  62. package/dist/esm/components/AlertContainer.d.ts +1 -1
  63. package/dist/esm/components/Category.d.ts +2 -1
  64. package/dist/esm/components/Controls.d.ts +2 -1
  65. package/dist/esm/components/CookieConsent.d.ts +3 -3
  66. package/dist/esm/components/CookieConsent.js +1 -1
  67. package/dist/esm/components/Debug.d.ts +2 -1
  68. package/dist/esm/components/Demo.d.ts +2 -1
  69. package/dist/esm/components/EntityItemContainer.d.ts +1 -1
  70. package/dist/esm/components/Exhibitor.d.ts +2 -1
  71. package/dist/esm/components/Filter.d.ts +2 -1
  72. package/dist/esm/components/Free.d.ts +2 -1
  73. package/dist/esm/components/GpsLoader.d.ts +2 -1
  74. package/dist/esm/components/HeatmapLegendContainer.d.ts +6 -0
  75. package/dist/esm/components/HeatmapLegendContainer.js +1 -0
  76. package/dist/esm/components/HighlightTextContainer.d.ts +1 -1
  77. package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.d.ts +2 -1
  78. package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.d.ts +2 -1
  79. package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.d.ts +2 -1
  80. package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.d.ts +2 -1
  81. package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.js +1 -1
  82. package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.d.ts +2 -1
  83. package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.d.ts +2 -1
  84. package/dist/esm/components/LargeMessage.d.ts +2 -1
  85. package/dist/esm/components/Layout.js +1 -1
  86. package/dist/esm/components/LevelBadgeContainer.d.ts +6 -0
  87. package/dist/esm/components/LevelBadgeContainer.js +1 -0
  88. package/dist/esm/components/LevelSelector.d.ts +2 -1
  89. package/dist/esm/components/List.d.ts +2 -2
  90. package/dist/esm/components/LogoOverlay.d.ts +2 -1
  91. package/dist/esm/components/Map/Map.d.ts +2 -1
  92. package/dist/esm/components/Map/Map.js +1 -1
  93. package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +3 -2
  94. package/dist/esm/components/Mapbox/MapLoader.d.ts +2 -1
  95. package/dist/esm/components/Mapbox/Mapbox.d.ts +2 -1
  96. package/dist/esm/components/Menu.d.ts +2 -1
  97. package/dist/esm/components/MobileToggleButton.d.ts +2 -1
  98. package/dist/esm/components/OverlayContainer.d.ts +1 -1
  99. package/dist/esm/components/OverlayGripContainer.d.ts +4 -0
  100. package/dist/esm/components/OverlayGripContainer.js +1 -0
  101. package/dist/esm/components/RoutePlanner/RoutePlanner.d.ts +2 -1
  102. package/dist/esm/components/ScrollableRowContainer.d.ts +6 -0
  103. package/dist/esm/components/ScrollableRowContainer.js +1 -0
  104. package/dist/esm/components/Search.d.ts +2 -1
  105. package/dist/esm/components/SearchBox.d.ts +2 -1
  106. package/dist/esm/components/SearchButtons/SearchButtons.d.ts +1 -1
  107. package/dist/esm/components/SearchButtons/SearchButtons.js +1 -1
  108. package/dist/esm/components/Shortcuts/ShortcutsToolbar.d.ts +1 -1
  109. package/dist/esm/components/Shortcuts/ShortcutsToolbar.js +1 -1
  110. package/dist/esm/components/Threejs/ThreeComponent.d.ts +2 -1
  111. package/dist/esm/components/Toast/ToastContainer.d.ts +2 -1
  112. package/dist/esm/components/Toast/ToastProvider.d.ts +2 -1
  113. package/dist/esm/components/Wayfinding.d.ts +2 -1
  114. package/dist/esm/components/WayfindingFloorSelectorContainer.d.ts +1 -1
  115. package/dist/esm/components/Ws.d.ts +2 -1
  116. package/dist/esm/components/gps/GpsManager.d.ts +2 -1
  117. package/dist/esm/components/gps/GpsPermissionRequest.js +1 -1
  118. package/dist/esm/components/index.d.ts +9 -8
  119. package/dist/esm/components/index.js +1 -1
  120. package/dist/esm/store/HeatmapStore.js +1 -1
  121. package/dist/esm/storybook/decorators/WithResize.d.ts +2 -1
  122. package/dist/esm/ui/Alert/Alert.d.ts +2 -1
  123. package/dist/esm/ui/Badge/Badge.d.ts +2 -1
  124. package/dist/esm/ui/Button/Button.d.ts +1 -1
  125. package/dist/esm/ui/Checkbox/Checkbox.d.ts +2 -1
  126. package/dist/esm/ui/CheckboxButton/CheckboxButton.d.ts +2 -1
  127. package/dist/esm/ui/Draggable/Draggable.d.ts +9 -0
  128. package/dist/esm/ui/Draggable/Draggable.js +1 -0
  129. package/dist/esm/ui/Draggable/index.d.ts +3 -0
  130. package/dist/esm/ui/Draggable/index.js +1 -0
  131. package/dist/esm/ui/HeatmapLegend/HeatmapLegend.d.ts +13 -0
  132. package/dist/esm/ui/HeatmapLegend/HeatmapLegend.js +1 -0
  133. package/dist/esm/ui/HeatmapLegend/index.d.ts +3 -0
  134. package/dist/esm/ui/HeatmapLegend/index.js +1 -0
  135. package/dist/esm/ui/HighlightText/HighlightText.d.ts +2 -1
  136. package/dist/esm/ui/LevelBadge/LevelBadge.d.ts +9 -0
  137. package/dist/esm/ui/LevelBadge/LevelBadge.js +1 -0
  138. package/dist/esm/ui/LevelBadge/index.d.ts +3 -0
  139. package/dist/esm/ui/LevelBadge/index.js +1 -0
  140. package/dist/esm/ui/OverlayGrip/OverlayGrip.d.ts +11 -0
  141. package/dist/esm/ui/OverlayGrip/OverlayGrip.js +1 -0
  142. package/dist/esm/ui/OverlayGrip/index.d.ts +3 -0
  143. package/dist/esm/ui/OverlayGrip/index.js +1 -0
  144. package/dist/esm/ui/PermissionNotice/PermissionNotice.d.ts +16 -0
  145. package/dist/esm/ui/PermissionNotice/PermissionNotice.js +1 -0
  146. package/dist/esm/ui/PermissionNotice/index.d.ts +3 -0
  147. package/dist/esm/ui/PermissionNotice/index.js +1 -0
  148. package/dist/esm/ui/Radio/Radio.d.ts +2 -1
  149. package/dist/esm/{components → ui/ScrollableRow}/ScrollableRow.d.ts +5 -4
  150. package/dist/esm/ui/ScrollableRow/ScrollableRow.js +1 -0
  151. package/dist/esm/ui/ScrollableRow/index.d.ts +3 -0
  152. package/dist/esm/ui/ScrollableRow/index.js +1 -0
  153. package/dist/esm/ui/Spinner/Spinner.d.ts +2 -1
  154. package/dist/esm/ui/ToggleButton/ToggleButton.d.ts +2 -1
  155. package/dist/esm/ui/ToggleSwitch/ToggleSwitch.d.ts +5 -10
  156. package/dist/esm/ui/ToggleSwitch/ToggleSwitch.js +1 -1
  157. package/dist/esm/ui/TouchHand/TouchHand.d.ts +2 -1
  158. package/dist/esm/ui/WayfindingFloorSelector/WayfindingFloorSelector.d.ts +2 -1
  159. package/dist/esm/ui/shared/interactive.d.ts +2 -0
  160. package/dist/esm/ui/shared/interactive.js +1 -0
  161. package/dist/esm/utils/color-gradient.d.ts +2 -0
  162. package/dist/esm/utils/color-gradient.js +1 -0
  163. package/dist/esm/utils/useHeatmapOverlay.d.ts +2 -1
  164. package/package.json +13 -13
  165. package/dist/browser/CookieConsent-DdzoxBfo.js +0 -71
  166. package/dist/browser/ShowKiosk-Bk-53zPJ.js +0 -26
  167. package/dist/esm/components/BookmarkSvg.d.ts +0 -3
  168. package/dist/esm/components/BookmarkSvg.js +0 -1
  169. package/dist/esm/components/Draggable.d.ts +0 -10
  170. package/dist/esm/components/Draggable.js +0 -1
  171. package/dist/esm/components/HeatmapLegend.d.ts +0 -12
  172. package/dist/esm/components/HeatmapLegend.js +0 -1
  173. package/dist/esm/components/LevelBadge.d.ts +0 -8
  174. package/dist/esm/components/LevelBadge.js +0 -1
  175. package/dist/esm/components/OverlayGrip.d.ts +0 -5
  176. package/dist/esm/components/OverlayGrip.js +0 -1
  177. package/dist/esm/components/PermissionNotice/PermissionNotice.d.ts +0 -14
  178. package/dist/esm/components/PermissionNotice/PermissionNotice.js +0 -1
  179. package/dist/esm/components/ScrollableRow.js +0 -1
  180. package/dist/esm/tools/Color.d.ts +0 -2
  181. package/dist/esm/tools/Color.js +0 -1
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import "./Radio.scss";
2
3
  export interface RadioProps {
3
4
  name: string;
@@ -9,6 +10,6 @@ export interface RadioProps {
9
10
  ariaLabel?: string;
10
11
  onChange?: () => void;
11
12
  }
12
- declare const Radio: ({ name, label, value, checked, disabled, className, ariaLabel, onChange }: RadioProps) => import("react/jsx-runtime").JSX.Element;
13
+ declare const Radio: ({ name, label, value, checked, disabled, className, ariaLabel, onChange }: RadioProps) => React.JSX.Element;
13
14
  export default Radio;
14
15
  //# sourceMappingURL=Radio.d.ts.map
@@ -2,19 +2,20 @@ import React, { ReactNode } from "react";
2
2
  import "./ScrollableRow.scss";
3
3
  export interface ScrollableRowProps {
4
4
  children: ReactNode;
5
+ ariaLabel: string;
6
+ leftAriaLabel: string;
7
+ rightAriaLabel: string;
5
8
  className?: string;
6
9
  scrollAmount?: number;
7
10
  mobileBreakpoint?: number;
8
11
  showArrowsOnMobile?: boolean;
9
12
  arrowPosition?: "inside" | "outside";
10
13
  scrollBehavior?: "smooth" | "auto";
11
- variant?: "default" | "shortcuts" | "search-buttons";
12
- resetScroll?: boolean | number;
14
+ isRtl?: boolean;
13
15
  enableDragScroll?: boolean;
14
16
  dragScrollSensitivity?: number;
15
17
  onScroll?: (scrollLeft: number) => void;
16
- onScrollReset?: () => void;
17
18
  }
18
- declare const ScrollableRow: React.FC<ScrollableRowProps>;
19
+ declare const ScrollableRow: ({ children, ariaLabel, leftAriaLabel, rightAriaLabel, className, scrollAmount, mobileBreakpoint, showArrowsOnMobile, arrowPosition, scrollBehavior, isRtl, enableDragScroll, dragScrollSensitivity, onScroll, }: ScrollableRowProps) => React.JSX.Element;
19
20
  export default ScrollableRow;
20
21
  //# sourceMappingURL=ScrollableRow.d.ts.map
@@ -0,0 +1 @@
1
+ import{jsx as c,jsxs as V}from"react/jsx-runtime";import{useRef as D,useState as m,useEffect as X,useCallback as s}from"react";import h from"classnames";import{ResizeObserver as Y}from"resize-observer";import{isInteractiveTarget as Z}from"../shared/interactive";import"./ScrollableRow.scss";const b=5,B=768,ee=({children:k,ariaLabel:y,leftAriaLabel:A,rightAriaLabel:H,className:F,scrollAmount:d=150,mobileBreakpoint:v=B,showArrowsOnMobile:M=!1,arrowPosition:N="inside",scrollBehavior:R="smooth",isRtl:a=!1,enableDragScroll:g=!0,dragScrollSensitivity:z=1,onScroll:L})=>{const S=D(null),t=D(null),i=D(null),[K,p]=m(!1),[P,_]=m(!1),[l,O]=m(!1),[T,U]=m(0),[C,$]=m(0),E=s(()=>window.innerWidth>v&&!("ontouchstart"in window||navigator.maxTouchPoints>0),[v]),W=s((e,n,r)=>{const o=n-r;return e<0?Math.abs(e):e>o/2?o-e:e},[]),f=s(()=>{const e=t.current;if(!e)return;if(window.innerWidth<=v&&!M){p(!1),_(!1);return}const{scrollLeft:r,scrollWidth:o,clientWidth:u}=e;if(!(o>u)){p(!1),_(!1);return}if(a){const Q=o-u,I=W(r,o,u);p(I>b),_(I<Q-b)}else p(r>b),_(r<o-u-b)},[v,M,W,a]),q=s(()=>{f(),L&&t.current&&L(t.current.scrollLeft)},[f,L]),j=s(e=>{const n=t.current;if(!n)return;const r=n.scrollLeft;let o;if(a){const u=-(n.scrollWidth-n.clientWidth);o=e==="left"?Math.min(0,r+d):Math.max(u,r-d)}else o=e==="left"?Math.max(0,r-d):r+d;n.scrollTo({left:o,behavior:R})},[d,R,a]),G=s(e=>{!g||!E()||!t.current||Z(e.target)||(O(!0),U(e.pageX-t.current.offsetLeft),$(t.current.scrollLeft),e.preventDefault())},[g,E]),x=s(e=>{if(!l||!t.current)return;e.preventDefault();const r=(e.pageX-t.current.offsetLeft-T)*z;t.current.scrollLeft=C-r},[l,T,C,z]),w=s(()=>{O(!1)},[]);X(()=>{if(l)return document.addEventListener("mousemove",x),document.addEventListener("mouseup",w),document.addEventListener("mouseleave",w),()=>{document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",w),document.removeEventListener("mouseleave",w)}},[l,x,w]),X(()=>{f();const e=()=>f();return window.addEventListener("resize",e),S.current&&!i.current&&(i.current=new Y(f),i.current.observe(S.current)),()=>{window.removeEventListener("resize",e),i.current&&(i.current.disconnect(),i.current=null)}},[f]);const J=g&&E()?l?"grabbing":"grab":void 0;return c("div",{ref:S,className:h("efp-scrollable-row",F),role:"group","aria-label":y,children:V("div",{className:h("efp-scrollable-row__container",{[`efp-scrollable-row__container--${N}`]:N}),children:[K&&c("button",{type:"button",className:h("efp-scrollable-row__arrow","efp-scrollable-row__arrow--left",{"efp-scrollable-row__arrow--rtl":a}),onClick:()=>j("left"),"aria-label":A,children:c("i",{className:"icon-chevron-left"})}),c("div",{ref:t,className:h("efp-scrollable-row__scroll-wrapper",{"efp-scrollable-row__scroll-wrapper--dragging":l}),onScroll:q,onMouseDown:G,style:{cursor:J,userSelect:l?"none":void 0},children:c("div",{className:"efp-scrollable-row__content",children:k})}),P&&c("button",{type:"button",className:h("efp-scrollable-row__arrow","efp-scrollable-row__arrow--right",{"efp-scrollable-row__arrow--rtl":a}),onClick:()=>j("right"),"aria-label":H,children:c("i",{className:"icon-chevron-right"})})]})})};export default ee;
@@ -0,0 +1,3 @@
1
+ export { default } from "./ScrollableRow";
2
+ export type { ScrollableRowProps } from "./ScrollableRow";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ export{default}from"./ScrollableRow";
@@ -1,8 +1,9 @@
1
+ import React from "react";
1
2
  import "./Spinner.scss";
2
3
  export interface SpinnerProps {
3
4
  active: boolean;
4
5
  isCenter?: boolean;
5
6
  }
6
- declare const Spinner: ({ active, isCenter }: SpinnerProps) => import("react/jsx-runtime").JSX.Element;
7
+ declare const Spinner: ({ active, isCenter }: SpinnerProps) => React.JSX.Element;
7
8
  export default Spinner;
8
9
  //# sourceMappingURL=Spinner.d.ts.map
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import "./ToggleButton.scss";
2
3
  type ToggleButtonBase = {
3
4
  toggled: boolean;
@@ -11,6 +12,6 @@ export type ToggleButtonProps = (ToggleButtonBase & {
11
12
  label?: undefined;
12
13
  ariaLabel: string;
13
14
  });
14
- declare const ToggleButton: ({ toggled, label, ariaLabel, className, onClick }: ToggleButtonProps) => import("react/jsx-runtime").JSX.Element;
15
+ declare const ToggleButton: ({ toggled, label, ariaLabel, className, onClick }: ToggleButtonProps) => React.JSX.Element;
15
16
  export default ToggleButton;
16
17
  //# sourceMappingURL=ToggleButton.d.ts.map
@@ -1,17 +1,12 @@
1
+ import React from "react";
1
2
  import "./ToggleSwitch.scss";
2
- type ToggleSwitchBase = {
3
+ export interface ToggleSwitchProps {
3
4
  name?: string;
4
5
  value: boolean;
6
+ label: string;
5
7
  className?: string;
6
8
  onChange: (value: boolean) => void;
7
- };
8
- export type ToggleSwitchProps = (ToggleSwitchBase & {
9
- label: string;
10
- ariaLabel?: string;
11
- }) | (ToggleSwitchBase & {
12
- label?: undefined;
13
- ariaLabel: string;
14
- });
15
- declare const ToggleSwitch: ({ name, value, label, ariaLabel, className, onChange }: ToggleSwitchProps) => import("react/jsx-runtime").JSX.Element;
9
+ }
10
+ declare const ToggleSwitch: ({ name, value, label, className, onChange }: ToggleSwitchProps) => React.JSX.Element;
16
11
  export default ToggleSwitch;
17
12
  //# sourceMappingURL=ToggleSwitch.d.ts.map
@@ -1 +1 @@
1
- import{jsx as s,jsxs as h}from"react/jsx-runtime";import{useId as m}from"react";import"./ToggleSwitch.scss";import n from"classnames";const d=({name:i,value:e,label:r,ariaLabel:o,className:t,onChange:a})=>{const c=m();return h("div",{className:n("efp-toggle-switch",t),children:[s("input",{type:"checkbox",role:"switch","aria-checked":e,"aria-label":o,id:c,name:i,checked:e,onChange:()=>a(!e)}),s("label",{htmlFor:c,children:r&&s("span",{children:r})})]})};export default d;
1
+ import{jsx as s,jsxs as a}from"react/jsx-runtime";import{useId as h}from"react";import"./ToggleSwitch.scss";import m from"classnames";const n=({name:o,value:e,label:r,className:t,onChange:i})=>{const c=h();return a("div",{className:m("efp-toggle-switch",t),children:[s("input",{type:"checkbox",role:"switch","aria-checked":e,id:c,name:o,checked:e,onChange:()=>i(!e)}),s("label",{htmlFor:c,children:s("span",{children:r})})]})};export default n;
@@ -1,4 +1,5 @@
1
+ import React from "react";
1
2
  import "./TouchHand.scss";
2
- declare const TouchHand: () => import("react/jsx-runtime").JSX.Element;
3
+ declare const TouchHand: () => React.JSX.Element;
3
4
  export default TouchHand;
4
5
  //# sourceMappingURL=TouchHand.d.ts.map
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import "./WayfindingFloorSelector.scss";
2
3
  export interface WayfindingFloorSelectorFloor {
3
4
  id: number;
@@ -18,6 +19,6 @@ export interface WayfindingFloorSelectorProps {
18
19
  name: string;
19
20
  }) => void;
20
21
  }
21
- declare const WayfindingFloorSelector: ({ floors, value, floorSelectionLabel, onSelect }: WayfindingFloorSelectorProps) => import("react/jsx-runtime").JSX.Element;
22
+ declare const WayfindingFloorSelector: ({ floors, value, floorSelectionLabel, onSelect }: WayfindingFloorSelectorProps) => React.JSX.Element;
22
23
  export default WayfindingFloorSelector;
23
24
  //# sourceMappingURL=WayfindingFloorSelector.d.ts.map
@@ -0,0 +1,2 @@
1
+ export declare function isInteractiveTarget(target: Element | null): boolean;
2
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ const e='button, input, select, textarea, a, [contenteditable="true"], [draggable="false"]';export function isInteractiveTarget(t){return!!t?.closest(e)}
@@ -0,0 +1,2 @@
1
+ export declare function getColorFromGradient(clickCount: number, min: number, max: number, palette: string[]): string;
2
+ //# sourceMappingURL=color-gradient.d.ts.map
@@ -0,0 +1 @@
1
+ import M from"color";export function getColorFromGradient(e,n,l,r){if(r.length===0)return"transparent";const t=r.map(m=>M(m)),c=Math.max(0,Math.min((e-n)/(l-n)||0,1)),a=Math.sqrt(c)*(t.length-1),o=Math.min(Math.floor(a),t.length-1),h=t[o],i=t[Math.min(o+1,t.length-1)],s=a-o;return h.mix(i,s).hex()}
@@ -1,8 +1,9 @@
1
+ import React from "react";
1
2
  import type { Exhibitor } from "../store/ExhibitorStore";
2
3
  import type { BoothBase } from "../store/BoothStore";
3
4
  import type { HeatmapYah } from "../store/HeatmapStore";
4
5
  declare const useHeatmapOverlay: (entity: Exhibitor | BoothBase | HeatmapYah) => {
5
- heatmapBar: import("react/jsx-runtime").JSX.Element | null;
6
+ heatmapBar: React.JSX.Element | null;
6
7
  };
7
8
  export default useHeatmapOverlay;
8
9
  //# sourceMappingURL=useHeatmapOverlay.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expofp/floorplan",
3
- "version": "3.3.6",
3
+ "version": "3.3.8",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/expofp/efp-app.git",
@@ -36,8 +36,8 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "@expofp/renderer": "3.1.6",
39
- "@sentry/core": "^10.55.0",
40
- "@sentry/react": "^10.55.0",
39
+ "@sentry/core": "^10.56.0",
40
+ "@sentry/react": "^10.56.0",
41
41
  "bowser": "^2.7.0",
42
42
  "classnames": "^2.2.6",
43
43
  "color": "^3.1.2",
@@ -75,16 +75,16 @@
75
75
  "twgl.js": "^4.14.0",
76
76
  "uuid": "^9.0.1",
77
77
  "zod": "4.3.5",
78
- "@expofp/resolve": "3.3.6",
79
- "@expofp/debug": "3.3.6"
78
+ "@expofp/resolve": "3.3.8",
79
+ "@expofp/debug": "3.3.8"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@babel/plugin-proposal-decorators": "^7.29.7",
83
83
  "@babel/plugin-transform-class-properties": "^7.29.7",
84
84
  "@sentry/vite-plugin": "^5.3.0",
85
- "@storybook/addon-vitest": "10.4.0",
86
- "@storybook/react": "10.4.0",
87
- "@storybook/react-vite": "10.4.0",
85
+ "@storybook/addon-vitest": "10.4.2",
86
+ "@storybook/react": "10.4.2",
87
+ "@storybook/react-vite": "10.4.2",
88
88
  "@types/d3": "^7.1.0",
89
89
  "@types/lz-string": "1.3.32",
90
90
  "@types/mapbox-gl": "^2.6.3",
@@ -93,15 +93,15 @@
93
93
  "@vitest/browser": "^4.1.7",
94
94
  "@vitest/browser-playwright": "^4.1.7",
95
95
  "playwright": "^1.60.0",
96
- "react": "^19.2.6",
97
- "react-dom": "^19.2.6",
96
+ "react": "^19.2.7",
97
+ "react-dom": "^19.2.7",
98
98
  "rollup-plugin-visualizer": "^7.0.1",
99
99
  "sass-embedded": "^1.100.0",
100
- "storybook": "10.4.0"
100
+ "storybook": "10.4.2"
101
101
  },
102
102
  "peerDependencies": {
103
- "react": "^19.2.6",
104
- "react-dom": "^19.2.6"
103
+ "react": "^19.2.7",
104
+ "react-dom": "^19.2.7"
105
105
  },
106
106
  "nx": {
107
107
  "targets": {
@@ -1,71 +0,0 @@
1
- function __vite_inject_css__(css, id, forceLightDom){ if (typeof document==='undefined') return; var shadow=!forceLightDom&&typeof window!=='undefined'&&window.__efpShadowDOMStyleParent; var parent=shadow||document.head; var s=document.createElement('style'); s.setAttribute('data-chunk-style', id); s.appendChild(document.createTextNode(css)); parent.appendChild(s);}
2
- (function() {
3
- try {
4
- var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
5
- e.SENTRY_RELEASE = { id: "3.3.6" };
6
- var t = new e.Error().stack;
7
- t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "79d023b8-9937-4d9b-aaaf-730bf425d309", e._sentryDebugIdIdentifier = "sentry-dbid-79d023b8-9937-4d9b-aaaf-730bf425d309");
8
- } catch {}
9
- })();
10
- import { n as e, r as t } from "./rolldown-runtime-BmCOYztJ.js";
11
- import { t as n } from "./react-C7hZG5Nz.js";
12
- import { t as r } from "./jsx-runtime-DvVsGWXH.js";
13
- import { s as i } from "./i18n-DzBoUseq.js";
14
- import { t as a } from "./classnames-Dd3Clkxo.js";
15
- import { Xn as o, Zn as s } from "./store-UEcKlmzw.js";
16
- n();
17
- var c = /* @__PURE__ */ t(a(), 1), l = r(), u = ({ onClickAccept: e, onClickReject: t, rejectText: n, children: r, acceptText: i, title: a, className: s }) => /* @__PURE__ */ (0, l.jsxs)("div", {
18
- className: (0, c.default)("permission-notice", s),
19
- role: "dialog",
20
- "aria-modal": "true",
21
- "aria-labelledby": "permission-notice-title",
22
- "aria-describedby": "permission-notice-description",
23
- children: [
24
- /* @__PURE__ */ (0, l.jsx)("div", {
25
- className: "permission-notice__title",
26
- id: "permission-notice-title",
27
- children: a
28
- }),
29
- /* @__PURE__ */ (0, l.jsx)("div", {
30
- className: "permission-notice__text",
31
- id: "permission-notice-description",
32
- children: r
33
- }),
34
- /* @__PURE__ */ (0, l.jsxs)("div", {
35
- className: "permission-notice__bottom",
36
- children: [/* @__PURE__ */ (0, l.jsx)(o, {
37
- size: "md",
38
- onClick: e,
39
- children: i
40
- }), /* @__PURE__ */ (0, l.jsx)(o, {
41
- size: "md",
42
- variant: "gray",
43
- onClick: t,
44
- children: n
45
- })]
46
- })
47
- ]
48
- }), d = /* @__PURE__ */ e({ default: () => f }), f = s(({ link: e, onClickAccept: t, onClickReject: n }) => /* @__PURE__ */ (0, l.jsxs)(u, {
49
- className: "permission-notice--cookie",
50
- title: i("Cookie Consent"),
51
- acceptText: i("Accept cookies"),
52
- rejectText: i("Reject"),
53
- onClickAccept: t,
54
- onClickReject: n,
55
- children: [
56
- i("We use cookies for analytics only"),
57
- "\xA0",
58
- e && /* @__PURE__ */ (0, l.jsx)("a", {
59
- href: e,
60
- target: "_blank",
61
- rel: "noopener noreferrer",
62
- "aria-label": i("Read more about cookie usage in a new tab"),
63
- children: i("Read More")
64
- })
65
- ]
66
- }));
67
- //#endregion
68
- export { u as n, d as t };
69
-
70
- ;/* vite-per-chunk-css */
71
- __vite_inject_css__(".permission-notice{right:calc(.5rem * var(--ui-scale));margin:auto;bottom:calc(.5rem * var(--ui-scale));z-index:9999;gap:calc(.5rem * var(--ui-scale));max-width:370px;padding:calc(.75rem * var(--ui-scale)) calc(1rem * var(--ui-scale)) calc(.875rem * var(--ui-scale));background:var(--color-white);border-radius:var(--border-radius-2xl);box-shadow:var(--shadow-sm);font-size:var(--font-size-xxl);letter-spacing:.01em;grid-template-rows:auto 1fr;grid-template-columns:1fr;width:100%;margin-left:auto;margin-right:auto;display:grid;position:absolute}.permission-notice__title{font-weight:var(--font-weight-medium);color:var(--color-black);letter-spacing:.01em}.permission-notice__text{font-size:var(--font-size-lg)}.permission-notice__bottom{gap:calc(.625rem * var(--ui-scale));padding-top:calc(.5rem * var(--ui-scale));display:flex}.permission-notice__bottom button.efp-button{min-width:unset}.permission-notice__bottom button.efp-button--primary{flex:2}.permission-notice__bottom button.efp-button--gray{flex:1}.permission-notice a{border-bottom:1px solid var(--color-black);color:var(--color-black);text-decoration:none}.permission-notice a:hover{border-color:var(--color-primary);color:var(--color-primary)}@media (max-width:768px){.permission-notice{width:95%;max-width:unset;left:0;right:0}}@media (min-width:768px){.permission-notice--cookie{right:unset;left:calc(.5rem * var(--ui-scale))}}.layout[dir=rtl] .permission-notice{right:unset;left:calc(.5rem * var(--ui-scale))}@media (min-width:768px){.layout[dir=rtl] .permission-notice--cookie{right:calc(.5rem * var(--ui-scale));left:unset}}\n/*$vite$:1*/", "CookieConsent.css", false);
@@ -1,26 +0,0 @@
1
- (function() {
2
- try {
3
- var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
4
- e.SENTRY_RELEASE = { id: "3.3.6" };
5
- var t = new e.Error().stack;
6
- t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "8987dbe1-a64c-459f-97ab-ba22371cd612", e._sentryDebugIdIdentifier = "sentry-dbid-8987dbe1-a64c-459f-97ab-ba22371cd612");
7
- } catch {}
8
- })();
9
- import "./rolldown-runtime-BmCOYztJ.js";
10
- import { t as e } from "./react-C7hZG5Nz.js";
11
- import { t } from "./jsx-runtime-DvVsGWXH.js";
12
- import "./i18n-DzBoUseq.js";
13
- import { T as n, Zn as r, o as i, w as a } from "./store-UEcKlmzw.js";
14
- import { n as o } from "./mobx-ByoyhaK0.js";
15
- import { t as s } from "./TouchHand-Bw0vu74f.js";
16
- import { t as c } from "./KioskStore-CtP1ygLF.js";
17
- e();
18
- var l = t(), u = r(() => (o(() => {
19
- if (localStorage.getItem("kiosk") === "0") return;
20
- let e = c.restoreData();
21
- if (e) return a(e, !0), n(e), i.setResetCameraFn(() => c.resetCamera()), () => {
22
- i.uiState.setKioskData(null), i.uiState.resetMapSettings(), c.resetCamera();
23
- };
24
- }), i.uiState.kiosk && i.uiState.inIdle ? /* @__PURE__ */ (0, l.jsx)(s, {}) : null));
25
- //#endregion
26
- export { u as default };
@@ -1,3 +0,0 @@
1
- import "./BookmarkSvg.scss";
2
- export default function BookmarkSvg(): import("react/jsx-runtime").JSX.Element;
3
- //# sourceMappingURL=BookmarkSvg.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as t}from"react/jsx-runtime";import"./BookmarkSvg.scss";export default function o(){return t("svg",{width:"12",height:"18",className:"bookmark-svg",xmlns:"http://www.w3.org/2000/svg",children:t("path",{d:"M0 0 H12 V18 L6 12 L0 18 H0"})})}
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- export declare const Draggable: ({ children, className, translate, }: {
3
- children: React.ReactNode;
4
- className?: string;
5
- translate?: {
6
- x: number;
7
- y: number;
8
- };
9
- }) => import("react/jsx-runtime").JSX.Element;
10
- //# sourceMappingURL=Draggable.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as C}from"react/jsx-runtime";import{useEffect as L,useState as g,useRef as H,useCallback as I}from"react";export const Draggable=({children:b,className:M,translate:o})=>{const[s,a]=g({x:0,y:0}),[r,d]=g(!1),[c,f]=g({x:0,y:0}),i=H(null),x='button, input, select, textarea, a, [contenteditable="true"], [draggable="false"]',p=e=>{const t=e.target;return t?t.matches(x)?!0:!!t.closest(x):!1},D=e=>{p(e)||(d(!0),f({x:e.clientX-s.x,y:e.clientY-s.y}),e.preventDefault())},m=e=>{if(!r)return;const t=e.clientX-c.x,n=e.clientY-c.y;a({x:t,y:n})},h=()=>{E()},S=e=>{if(p(e))return;const t=e.touches[0];d(!0),f({x:t.clientX-s.x,y:t.clientY-s.y})},l=e=>{if(!r)return;const t=e.touches[0],n=t.clientX-c.x,u=t.clientY-c.y;a({x:n,y:u})},v=()=>{E()},y=I(()=>{if(!o||!i.current)return;const e=i.current.getBoundingClientRect(),t=o.x?o.x-e.width/2:0,n=o.y?o.y-e.height/2:0;a({x:t,y:n})},[o]),E=()=>{if(!i.current)return;const e=i.current.getBoundingClientRect(),t=window.innerWidth,n=window.innerHeight,u=e.width/4,w=e.height/4,X=Math.max(0,0-e.left),Y=Math.max(0,e.right-t),R=Math.max(0,0-e.top),T=Math.max(0,e.bottom-n),P=X>u||Y>u,B=R>w||T>w;(P||B)&&y(),d(!1)};return L(()=>y(),[]),L(()=>(r?(document.addEventListener("mousemove",m),document.addEventListener("mouseup",h),document.addEventListener("touchmove",l,{passive:!1}),document.addEventListener("touchend",v)):(document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",h),document.removeEventListener("touchmove",l),document.removeEventListener("touchend",v)),()=>{document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",h),document.removeEventListener("touchmove",l),document.removeEventListener("touchend",v)}),[r,c]),C("div",{ref:i,className:M,style:{transform:`translate(${s.x}px, ${s.y}px)`,cursor:r?"grabbing":"grab"},onMouseDown:D,onTouchStart:S,children:b})};
@@ -1,12 +0,0 @@
1
- import React from "react";
2
- import "./HeatmapLegend.scss";
3
- interface HeatmapLegendProps {
4
- colors: string[];
5
- min: number;
6
- max: number;
7
- className?: string;
8
- style?: React.CSSProperties;
9
- }
10
- declare const HeatmapLegend: React.FC<HeatmapLegendProps>;
11
- export default HeatmapLegend;
12
- //# sourceMappingURL=HeatmapLegend.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as l,jsxs as c}from"react/jsx-runtime";import{useMemo as n}from"react";import"./HeatmapLegend.scss";import{getColorFromGradient as p}from"../tools/Color";import h from"classnames";import{t as g}from"../utils/i18n";const _=({min:e,max:a,className:i,style:d})=>{const t=n(()=>{const r=a-e;return r<=0?2:Math.min(r+1,5)},[e,a]),s=n(()=>Array.from({length:t},(r,o)=>{const u=o/(t-1);return Math.round(e+(a-e)*u)}),[e,a,t]),m=n(()=>s.map(r=>p(r,e,a)),[s,e,a]);return c("div",{className:h("heatmap-legend",i),style:d,role:"img","aria-label":g("Heatmap intensity scale"),children:[l("div",{className:"heatmap-legend__colors",style:{background:`linear-gradient(to right, ${m.join(", ")})`},"aria-hidden":"true"}),l("div",{className:"heatmap-legend__values",children:s.map((r,o)=>l("span",{className:"heatmap-legend__value","aria-hidden":"true",children:r},o))})]})};export default _;
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import "./LevelBadge.scss";
3
- interface LevelBadgeProps {
4
- level: string;
5
- }
6
- export declare const LevelBadge: React.FC<LevelBadgeProps>;
7
- export default LevelBadge;
8
- //# sourceMappingURL=LevelBadge.d.ts.map
@@ -1 +0,0 @@
1
- import{jsxs as r,jsx as s}from"react/jsx-runtime";import"./LevelBadge.scss";import{t}from"../utils/i18n";const n=e=>/^\d+$/.test(e);export const LevelBadge=({level:e})=>e?s("div",{className:"efp-level-badge",children:r("span",{children:[n(e)&&r("span",{children:[t("Level"),"\xA0"]}),s("span",{children:e})]})}):null;export default LevelBadge;
@@ -1,5 +0,0 @@
1
- import React from "react";
2
- import "./OverlayGrip.scss";
3
- declare const _default: React.FunctionComponent<object>;
4
- export default _default;
5
- //# sourceMappingURL=OverlayGrip.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as r,jsxs as o}from"react/jsx-runtime";import i from"classnames";import{observer as l}from"mobx-react-lite";import{uiState as e}from"../store";import"./OverlayGrip.scss";function p(){function t(){return i({"overlay-grip":!0,arr:e.overlaySize==="full"})}function s(a){a.preventDefault(),e.toggleMapOverlay()}return r("a",{href:"/#",className:t(),onClick:s,children:o("svg",{viewBox:"0 0 1200 200",preserveAspectRatio:"xMidYMid meet",xmlns:"http://www.w3.org/2000/svg",children:[r("path",{d:"M100,100 l 500 100 L 1100 100"}),r("path",{d:"M100,150 l 500 0 L 1100 150"})]})})}export default l(p);
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import "./PermissionNotice.scss";
3
- export interface PermissionNoticeProps {
4
- title: string;
5
- acceptText: string;
6
- rejectText: string;
7
- children: React.ReactNode;
8
- onClickAccept?: () => void;
9
- onClickReject?: () => void;
10
- className?: string;
11
- }
12
- declare const PermissionNotice: React.FC<PermissionNoticeProps>;
13
- export default PermissionNotice;
14
- //# sourceMappingURL=PermissionNotice.d.ts.map
@@ -1 +0,0 @@
1
- import{jsx as i,jsxs as e}from"react/jsx-runtime";import d from"classnames";import s from"../../ui/Button";import"./PermissionNotice.scss";const l=({onClickAccept:o,onClickReject:r,rejectText:t,children:n,acceptText:c,title:m,className:a})=>e("div",{className:d("permission-notice",a),role:"dialog","aria-modal":"true","aria-labelledby":"permission-notice-title","aria-describedby":"permission-notice-description",children:[i("div",{className:"permission-notice__title",id:"permission-notice-title",children:m}),i("div",{className:"permission-notice__text",id:"permission-notice-description",children:n}),e("div",{className:"permission-notice__bottom",children:[i(s,{size:"md",onClick:o,children:c}),i(s,{size:"md",variant:"gray",onClick:r,children:t})]})]});export default l;
@@ -1 +0,0 @@
1
- import{jsx as i,jsxs as ne}from"react/jsx-runtime";import{useRef as L,useState as m,useEffect as M,useCallback as o}from"react";import h from"classnames";import{observer as oe}from"mobx-react-lite";import{ResizeObserver as se}from"resize-observer";import{MOBILE_BREAKPOINT as le}from"../constants";import{uiState as N}from"../store";import"./ScrollableRow.scss";const p=5,ce=200,ae=300,ie=50,ue=oe(({children:P,className:q,scrollAmount:d=150,mobileBreakpoint:_=le,showArrowsOnMobile:z=!1,arrowPosition:C="inside",scrollBehavior:w="smooth",variant:F="default",resetScroll:u,enableDragScroll:R=!0,dragScrollSensitivity:y=1,onScroll:g,onScrollReset:A})=>{const E=L(null),r=L(null),f=L(null),W=L(0),[J,b]=m(!1),[Q,v]=m(!1),[l,S]=m(!1),[H,V]=m(0),[I,Z]=m(0),D=o(()=>window.innerWidth>_&&!("ontouchstart"in window||navigator.maxTouchPoints>0),[_]),j=o((e,t,s)=>{const n=t-s;return e<0?Math.abs(e):e>n/2?n-e:e},[]),c=o(()=>{const e=r.current;if(!e)return;if(window.innerWidth<=_&&!z){b(!1),v(!1);return}const{scrollLeft:s,scrollWidth:n,clientWidth:a}=e;if(!(n>a)){b(!1),v(!1);return}if(N.rtl){const te=n-a,K=j(s,n,a);b(K>p),v(K<te-p)}else b(s>p),v(s<n-a-p)},[_,z,j]),B=o(()=>{c(),g&&r.current&&g(r.current.scrollLeft)},[c,g]),X=o(e=>{const t=r.current;if(!t)return;const s=N.rtl,n=t.scrollLeft;let a;if(s){const G=-(t.scrollWidth-t.clientWidth);a=e==="left"?Math.min(0,n+d):Math.max(G,n-d)}else a=e==="left"?Math.max(0,n-d):n+d;t.scrollTo({left:a,behavior:w})},[d,w]),k=o((e=0)=>{const t=r.current;if(!t)return;t.scrollTo({left:e,behavior:w}),setTimeout(()=>{c(),A?.()},w==="smooth"?ae:ie)},[w,A,c]),U=o(e=>e.closest("button")||e.closest("a")||e.closest("input"),[]),ee=o(e=>{!R||!D()||!r.current||U(e.target)||(S(!0),V(e.pageX-r.current.offsetLeft),Z(r.current.scrollLeft),W.current=Date.now(),e.preventDefault())},[R,D,U]),O=o(e=>{if(!l||!r.current)return;e.preventDefault();const s=(e.pageX-r.current.offsetLeft-H)*y;r.current.scrollLeft=I-s},[l,H,I,y]),T=o(()=>{if(!l)return;Date.now()-W.current>=ce&&S(!1)},[l]),x=o(()=>{S(!1)},[]);M(()=>{if(u==null)return;u!==!1&&k(typeof u=="number"?u:0)},[u,k]),M(()=>{if(l)return document.addEventListener("mousemove",O),document.addEventListener("mouseup",T),document.addEventListener("mouseleave",x),()=>{document.removeEventListener("mousemove",O),document.removeEventListener("mouseup",T),document.removeEventListener("mouseleave",x)}},[l,O,T,x]),M(()=>{c();const e=()=>c();return window.addEventListener("resize",e),E.current&&!f.current&&(f.current=new se(c),f.current.observe(E.current)),()=>{window.removeEventListener("resize",e),f.current&&(f.current.disconnect(),f.current=null)}},[c]);const Y=N.rtl,$=R&&D(),re=$?l?"grabbing":"grab":void 0;return i("div",{ref:E,className:h("scrollable-row",`scrollable-row--${F}`,q),children:ne("div",{className:h("scrollable-row__container",{[`scrollable-row__container--${C}`]:C}),children:[J&&i("button",{type:"button",className:h("scrollable-row__arrow","scrollable-row__arrow--left",{"scrollable-row__arrow--rtl":Y}),onClick:()=>X("left"),"aria-label":"Scroll left",children:i("i",{className:"icon-chevron-left"})}),i("div",{ref:r,className:h("scrollable-row__scroll-wrapper",{"scrollable-row__scroll-wrapper--dragging":l,"scrollable-row__scroll-wrapper--draggable":$}),onScroll:B,onMouseDown:ee,style:{cursor:re,userSelect:l?"none":void 0},children:i("div",{className:"scrollable-row__content",children:P})}),Q&&i("button",{type:"button",className:h("scrollable-row__arrow","scrollable-row__arrow--right",{"scrollable-row__arrow--rtl":Y}),onClick:()=>X("right"),"aria-label":"Scroll right",children:i("i",{className:"icon-chevron-right"})})]})})});export default ue;
@@ -1,2 +0,0 @@
1
- export declare function getColorFromGradient(clickCount: number, min: number, max: number): string;
2
- //# sourceMappingURL=Color.d.ts.map
@@ -1 +0,0 @@
1
- import n from"color";import s from"./settings";n.prototype.vec4=function(){const t=this.rgb().object(),r=t.alpha||1;return[t.r/255,t.g/255,t.b/255,r]};export function getColorFromGradient(t,r,h){const o=s.heatmapColors.map(p=>n(p));let l=(t-r)/(h-r)||0;l=Math.max(0,Math.min(l,1));let a=Math.sqrt(l),e=Math.floor(a*(o.length-1));e=Math.max(0,Math.min(e,o.length-1));let i=o[e],c=o[Math.min(e+1,o.length-1)],m=a*(o.length-1)-e;return i.mix(c,m).hex()}