@deck.gl/widgets 9.2.10 → 9.3.0-alpha.1

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 (111) hide show
  1. package/dist/compass-widget.js +5 -5
  2. package/dist/compass-widget.js.map +1 -1
  3. package/dist/context-menu-widget.d.ts +23 -18
  4. package/dist/context-menu-widget.d.ts.map +1 -1
  5. package/dist/context-menu-widget.js +44 -48
  6. package/dist/context-menu-widget.js.map +1 -1
  7. package/dist/dist.dev.js +2533 -420
  8. package/dist/fullscreen-widget.js +1 -1
  9. package/dist/fullscreen-widget.js.map +1 -1
  10. package/dist/geocoder-widget.d.ts +2 -4
  11. package/dist/geocoder-widget.d.ts.map +1 -1
  12. package/dist/geocoder-widget.js +16 -20
  13. package/dist/geocoder-widget.js.map +1 -1
  14. package/dist/gimbal-widget.d.ts +0 -3
  15. package/dist/gimbal-widget.d.ts.map +1 -1
  16. package/dist/gimbal-widget.js +4 -22
  17. package/dist/gimbal-widget.js.map +1 -1
  18. package/dist/index.cjs +921 -370
  19. package/dist/index.cjs.map +4 -4
  20. package/dist/index.d.ts +5 -3
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +4 -3
  23. package/dist/index.js.map +1 -1
  24. package/dist/info-widget.d.ts +38 -17
  25. package/dist/info-widget.d.ts.map +1 -1
  26. package/dist/info-widget.js +40 -130
  27. package/dist/info-widget.js.map +1 -1
  28. package/dist/lib/components/dropdown-menu.d.ts +10 -4
  29. package/dist/lib/components/dropdown-menu.d.ts.map +1 -1
  30. package/dist/lib/components/dropdown-menu.js +12 -7
  31. package/dist/lib/components/dropdown-menu.js.map +1 -1
  32. package/dist/lib/components/icon-menu.d.ts.map +1 -1
  33. package/dist/lib/components/icon-menu.js +2 -3
  34. package/dist/lib/components/icon-menu.js.map +1 -1
  35. package/dist/lib/components/popover.d.ts +30 -0
  36. package/dist/lib/components/popover.d.ts.map +1 -0
  37. package/dist/lib/components/popover.js +93 -0
  38. package/dist/lib/components/popover.js.map +1 -0
  39. package/dist/lib/components/range-input.d.ts +26 -0
  40. package/dist/lib/components/range-input.d.ts.map +1 -0
  41. package/dist/lib/components/range-input.js +261 -0
  42. package/dist/lib/components/range-input.js.map +1 -0
  43. package/dist/lib/components/user-content.d.ts +8 -0
  44. package/dist/lib/components/user-content.d.ts.map +1 -0
  45. package/dist/lib/components/user-content.js +15 -0
  46. package/dist/lib/components/user-content.js.map +1 -0
  47. package/dist/popup-widget.d.ts +63 -0
  48. package/dist/popup-widget.d.ts.map +1 -0
  49. package/dist/popup-widget.js +70 -0
  50. package/dist/popup-widget.js.map +1 -0
  51. package/dist/reset-view-widget.d.ts +1 -1
  52. package/dist/reset-view-widget.d.ts.map +1 -1
  53. package/dist/reset-view-widget.js +12 -11
  54. package/dist/reset-view-widget.js.map +1 -1
  55. package/dist/scrollbar-widget.d.ts +68 -0
  56. package/dist/scrollbar-widget.d.ts.map +1 -0
  57. package/dist/scrollbar-widget.js +181 -0
  58. package/dist/scrollbar-widget.js.map +1 -0
  59. package/dist/stats-widget.d.ts +4 -0
  60. package/dist/stats-widget.d.ts.map +1 -1
  61. package/dist/stats-widget.js +3 -3
  62. package/dist/stats-widget.js.map +1 -1
  63. package/dist/stylesheet.css +244 -29
  64. package/dist/theme-widget.d.ts.map +1 -1
  65. package/dist/theme-widget.js +7 -5
  66. package/dist/theme-widget.js.map +1 -1
  67. package/dist/themes.d.ts +30 -0
  68. package/dist/themes.d.ts.map +1 -1
  69. package/dist/themes.js +28 -4
  70. package/dist/themes.js.map +1 -1
  71. package/dist/timeline-widget.d.ts +25 -6
  72. package/dist/timeline-widget.d.ts.map +1 -1
  73. package/dist/timeline-widget.js +46 -18
  74. package/dist/timeline-widget.js.map +1 -1
  75. package/dist/zoom-widget.d.ts +2 -8
  76. package/dist/zoom-widget.d.ts.map +1 -1
  77. package/dist/zoom-widget.js +23 -18
  78. package/dist/zoom-widget.js.map +1 -1
  79. package/dist.min.js +2 -2
  80. package/package.json +4 -3
  81. package/src/compass-widget.tsx +5 -5
  82. package/src/context-menu-widget.tsx +86 -76
  83. package/src/fullscreen-widget.tsx +1 -1
  84. package/src/geocoder-widget.tsx +17 -24
  85. package/src/gimbal-widget.tsx +4 -26
  86. package/src/index.ts +11 -6
  87. package/src/info-widget.tsx +93 -157
  88. package/src/lib/components/dropdown-menu.tsx +42 -20
  89. package/src/lib/components/icon-menu.tsx +3 -4
  90. package/src/lib/components/popover.tsx +167 -0
  91. package/src/lib/components/range-input.tsx +432 -0
  92. package/src/lib/components/user-content.tsx +30 -0
  93. package/src/popup-widget.tsx +163 -0
  94. package/src/reset-view-widget.tsx +12 -11
  95. package/src/scrollbar-widget.tsx +288 -0
  96. package/src/stats-widget.tsx +10 -4
  97. package/src/stylesheet.css +244 -29
  98. package/src/theme-widget.tsx +7 -5
  99. package/src/themes.ts +35 -4
  100. package/src/timeline-widget.tsx +96 -33
  101. package/src/zoom-widget.tsx +25 -21
  102. package/dist/lib/components/grouped-icon-button.d.ts +0 -10
  103. package/dist/lib/components/grouped-icon-button.d.ts.map +0 -1
  104. package/dist/lib/components/grouped-icon-button.js +0 -7
  105. package/dist/lib/components/grouped-icon-button.js.map +0 -1
  106. package/dist/lib/components/simple-menu.d.ts +0 -16
  107. package/dist/lib/components/simple-menu.d.ts.map +0 -1
  108. package/dist/lib/components/simple-menu.js +0 -30
  109. package/dist/lib/components/simple-menu.js.map +0 -1
  110. package/src/lib/components/grouped-icon-button.tsx +0 -27
  111. package/src/lib/components/simple-menu.tsx +0 -52
package/dist/index.d.ts CHANGED
@@ -8,7 +8,9 @@ export { FullscreenWidget } from "./fullscreen-widget.js";
8
8
  export { SplitterWidget as _SplitterWidget } from "./splitter-widget.js";
9
9
  export { ViewSelectorWidget as _ViewSelectorWidget } from "./view-selector-widget.js";
10
10
  export { InfoWidget as _InfoWidget } from "./info-widget.js";
11
+ export { PopupWidget } from "./popup-widget.js";
11
12
  export { ContextMenuWidget as _ContextMenuWidget } from "./context-menu-widget.js";
13
+ export { ScrollbarWidget } from "./scrollbar-widget.js";
12
14
  export { TimelineWidget as _TimelineWidget } from "./timeline-widget.js";
13
15
  export { ScreenshotWidget } from "./screenshot-widget.js";
14
16
  export { ThemeWidget as _ThemeWidget } from "./theme-widget.js";
@@ -32,14 +34,14 @@ export type { SplitterWidgetProps } from "./splitter-widget.js";
32
34
  export type { TimelineWidgetProps } from "./timeline-widget.js";
33
35
  export type { ViewSelectorWidgetProps } from "./view-selector-widget.js";
34
36
  export type { GimbalWidgetProps } from "./gimbal-widget.js";
37
+ export type { ContentBounds, ScrollbarWidgetProps, ScrollbarDecoration } from "./scrollbar-widget.js";
35
38
  export { LightTheme, DarkTheme, LightGlassTheme, DarkGlassTheme } from "./themes.js";
36
39
  export type { DeckWidgetTheme } from "./themes.js";
37
40
  export { ButtonGroup as _ButtonGroup, type ButtonGroupProps } from "./lib/components/button-group.js";
38
41
  export { IconButton as _IconButton, type IconButtonProps } from "./lib/components/icon-button.js";
39
- export { GroupedIconButton as _GroupedIconButton, type GroupedIconButtonProps } from "./lib/components/grouped-icon-button.js";
40
- export { DropdownMenu as _DropdownMenu, type DropdownMenuProps } from "./lib/components/dropdown-menu.js";
41
- export { SimpleMenu as _SimpleMenu, type SimpleMenuProps } from "./lib/components/simple-menu.js";
42
+ export { DropdownMenu as _DropdownMenu, type DropdownMenuProps, SimpleMenu as _SimpleMenu, type SimpleMenuProps } from "./lib/components/dropdown-menu.js";
42
43
  export { IconMenu as _IconMenu, type IconMenuProps } from "./lib/components/icon-menu.js";
44
+ export { RangeInput as _RangeInput, type RangeInputProps, type RangeInputDecoration } from "./lib/components/range-input.js";
43
45
  export { type Geocoder } from "./lib/geocode/geocoder.js";
44
46
  export { GoogleGeocoder as _GoogleGeocoder, MapboxGeocoder as _MapboxGeocoder, OpenCageGeocoder as _OpenCageGeocoder, CoordinatesGeocoder as _CoordinatesGeocoder, CurrentLocationGeocoder as _CurrentLocationGeocoder } from "./lib/geocode/geocoders.js";
45
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,UAAU,EAAC,yBAAsB;AACzC,OAAO,EAAC,eAAe,EAAC,+BAA4B;AACpD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAG7C,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAC3D,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AAGpE,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AACpE,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,kCAA+B;AAGjF,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,yBAAsB;AACxD,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,iCAA8B;AAG9E,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AAGpE,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAC3D,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,4BAAyB;AACjE,OAAO,EAAC,SAAS,IAAI,UAAU,EAAC,wBAAqB;AACrD,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAE3D,YAAY,EAAC,qBAAqB,EAAC,+BAA4B;AAC/D,YAAY,EAAC,kBAAkB,EAAC,4BAAyB;AACzD,YAAY,EAAC,eAAe,EAAC,yBAAsB;AACnD,YAAY,EAAC,qBAAqB,EAAC,+BAA4B;AAC/D,YAAY,EAAC,oBAAoB,EAAC,+BAA4B;AAC9D,YAAY,EAAC,mBAAmB,EAAC,6BAA0B;AAC3D,YAAY,EAAC,kBAAkB,EAAC,4BAAyB;AACzD,YAAY,EAAC,cAAc,EAAC,wBAAqB;AACjD,YAAY,EAAC,gBAAgB,EAAC,0BAAuB;AACrD,YAAY,EAAC,gBAAgB,EAAC,0BAAuB;AACrD,YAAY,EAAC,eAAe,EAAC,yBAAsB;AACnD,YAAY,EAAC,gBAAgB,EAAC,0BAAuB;AACrD,YAAY,EAAC,sBAAsB,EAAC,iCAA8B;AAClE,YAAY,EAAC,mBAAmB,EAAC,6BAA0B;AAC3D,YAAY,EAAC,mBAAmB,EAAC,6BAA0B;AAC3D,YAAY,EAAC,uBAAuB,EAAC,kCAA+B;AACpE,YAAY,EAAC,iBAAiB,EAAC,2BAAwB;AAEvD,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAC,oBAAiB;AAChF,YAAY,EAAC,eAAe,EAAC,oBAAiB;AAG9C,OAAO,EAAC,WAAW,IAAI,YAAY,EAAE,KAAK,gBAAgB,EAAC,yCAAsC;AACjG,OAAO,EAAC,UAAU,IAAI,WAAW,EAAE,KAAK,eAAe,EAAC,wCAAqC;AAC7F,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,KAAK,sBAAsB,EAC5B,gDAA6C;AAC9C,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,KAAK,iBAAiB,EACvB,0CAAuC;AACxC,OAAO,EAAC,UAAU,IAAI,WAAW,EAAE,KAAK,eAAe,EAAC,wCAAqC;AAC7F,OAAO,EAAC,QAAQ,IAAI,SAAS,EAAE,KAAK,aAAa,EAAC,sCAAmC;AAGrF,OAAO,EAAC,KAAK,QAAQ,EAAC,kCAA+B;AACrD,OAAO,EACL,cAAc,IAAI,eAAe,EACjC,cAAc,IAAI,eAAe,EACjC,gBAAgB,IAAI,iBAAiB,EACrC,mBAAmB,IAAI,oBAAoB,EAC3C,uBAAuB,IAAI,wBAAwB,EACpD,mCAAgC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,7 +15,9 @@ export { SplitterWidget as _SplitterWidget } from "./splitter-widget.js";
15
15
  export { ViewSelectorWidget as _ViewSelectorWidget } from "./view-selector-widget.js";
16
16
  // Information widgets
17
17
  export { InfoWidget as _InfoWidget } from "./info-widget.js";
18
+ export { PopupWidget } from "./popup-widget.js";
18
19
  export { ContextMenuWidget as _ContextMenuWidget } from "./context-menu-widget.js";
20
+ export { ScrollbarWidget } from "./scrollbar-widget.js";
19
21
  // Control widgets
20
22
  export { TimelineWidget as _TimelineWidget } from "./timeline-widget.js";
21
23
  // Utility widgets
@@ -28,9 +30,8 @@ export { LightTheme, DarkTheme, LightGlassTheme, DarkGlassTheme } from "./themes
28
30
  // Experimental preact components
29
31
  export { ButtonGroup as _ButtonGroup } from "./lib/components/button-group.js";
30
32
  export { IconButton as _IconButton } from "./lib/components/icon-button.js";
31
- export { GroupedIconButton as _GroupedIconButton } from "./lib/components/grouped-icon-button.js";
32
- export { DropdownMenu as _DropdownMenu } from "./lib/components/dropdown-menu.js";
33
- export { SimpleMenu as _SimpleMenu } from "./lib/components/simple-menu.js";
33
+ export { DropdownMenu as _DropdownMenu, SimpleMenu as _SimpleMenu } from "./lib/components/dropdown-menu.js";
34
34
  export { IconMenu as _IconMenu } from "./lib/components/icon-menu.js";
35
+ export { RangeInput as _RangeInput } from "./lib/components/range-input.js";
35
36
  export { GoogleGeocoder as _GoogleGeocoder, MapboxGeocoder as _MapboxGeocoder, OpenCageGeocoder as _OpenCageGeocoder, CoordinatesGeocoder as _CoordinatesGeocoder, CurrentLocationGeocoder as _CurrentLocationGeocoder } from "./lib/geocode/geocoders.js";
36
37
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,qBAAqB;AACrB,OAAO,EAAC,UAAU,EAAC,yBAAsB;AACzC,OAAO,EAAC,eAAe,EAAC,+BAA4B;AACpD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAE7C,qBAAqB;AACrB,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAC3D,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AAEpE,eAAe;AACf,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AACpE,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,kCAA+B;AAEjF,sBAAsB;AACtB,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,yBAAsB;AACxD,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,iCAA8B;AAE9E,kBAAkB;AAClB,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AAEpE,kBAAkB;AAClB,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAC3D,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,4BAAyB;AACjE,OAAO,EAAC,SAAS,IAAI,UAAU,EAAC,wBAAqB;AACrD,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAoB3D,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAC,oBAAiB;AAGhF,iCAAiC;AACjC,OAAO,EAAC,WAAW,IAAI,YAAY,EAAwB,yCAAsC;AACjG,OAAO,EAAC,UAAU,IAAI,WAAW,EAAuB,wCAAqC;AAC7F,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EAExC,gDAA6C;AAC9C,OAAO,EACL,YAAY,IAAI,aAAa,EAE9B,0CAAuC;AACxC,OAAO,EAAC,UAAU,IAAI,WAAW,EAAuB,wCAAqC;AAC7F,OAAO,EAAC,QAAQ,IAAI,SAAS,EAAqB,sCAAmC;AAIrF,OAAO,EACL,cAAc,IAAI,eAAe,EACjC,cAAc,IAAI,eAAe,EACjC,gBAAgB,IAAI,iBAAiB,EACrC,mBAAmB,IAAI,oBAAoB,EAC3C,uBAAuB,IAAI,wBAAwB,EACpD,mCAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,qBAAqB;AACrB,OAAO,EAAC,UAAU,EAAC,yBAAsB;AACzC,OAAO,EAAC,eAAe,EAAC,+BAA4B;AACpD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAE7C,qBAAqB;AACrB,OAAO,EAAC,aAAa,EAAC,4BAAyB;AAC/C,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAC3D,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AAEpE,eAAe;AACf,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AACpE,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,kCAA+B;AAEjF,sBAAsB;AACtB,OAAO,EAAC,UAAU,IAAI,WAAW,EAAC,yBAAsB;AACxD,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,iBAAiB,IAAI,kBAAkB,EAAC,iCAA8B;AAC9E,OAAO,EAAC,eAAe,EAAC,8BAA2B;AAEnD,kBAAkB;AAClB,OAAO,EAAC,cAAc,IAAI,eAAe,EAAC,6BAA0B;AAEpE,kBAAkB;AAClB,OAAO,EAAC,gBAAgB,EAAC,+BAA4B;AACrD,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAC3D,OAAO,EAAC,aAAa,IAAI,cAAc,EAAC,4BAAyB;AACjE,OAAO,EAAC,SAAS,IAAI,UAAU,EAAC,wBAAqB;AACrD,OAAO,EAAC,WAAW,IAAI,YAAY,EAAC,0BAAuB;AAqB3D,OAAO,EAAC,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAC,oBAAiB;AAGhF,iCAAiC;AACjC,OAAO,EAAC,WAAW,IAAI,YAAY,EAAwB,yCAAsC;AACjG,OAAO,EAAC,UAAU,IAAI,WAAW,EAAuB,wCAAqC;AAC7F,OAAO,EACL,YAAY,IAAI,aAAa,EAE7B,UAAU,IAAI,WAAW,EAE1B,0CAAuC;AACxC,OAAO,EAAC,QAAQ,IAAI,SAAS,EAAqB,sCAAmC;AACrF,OAAO,EACL,UAAU,IAAI,WAAW,EAG1B,wCAAqC;AAItC,OAAO,EACL,cAAc,IAAI,eAAe,EACjC,cAAc,IAAI,eAAe,EACjC,gBAAgB,IAAI,iBAAiB,EACrC,mBAAmB,IAAI,oBAAoB,EAC3C,uBAAuB,IAAI,wBAAwB,EACpD,mCAAgC"}
@@ -1,38 +1,59 @@
1
1
  import { Widget } from '@deck.gl/core';
2
2
  import type { Deck, PickingInfo, Viewport, WidgetProps } from '@deck.gl/core';
3
+ import { type PopoverProps } from "./lib/components/popover.js";
4
+ export type TooltipContent = {
5
+ /** Anchor of the popup in world coordinates, e.g. [longitude, latitude].
6
+ * If not supplied, default to the mouse position where the popup was triggered.
7
+ */
8
+ position?: number[];
9
+ /** Text content to display in the popup */
10
+ text?: string;
11
+ /** HTML content to display in the popup. If supplied, `text` is ignored. */
12
+ html?: string;
13
+ /** HTML element to attach inside the popup. */
14
+ element?: HTMLElement | null;
15
+ /** Custom class name to add to the popup */
16
+ className?: string;
17
+ /** CSS style overrides of the popup */
18
+ style?: Partial<CSSStyleDeclaration>;
19
+ };
3
20
  export type InfoWidgetProps = WidgetProps & {
4
21
  /** View to attach to and interact with. Required when using multiple views */
5
22
  viewId?: string | null;
6
23
  /** Determines the interaction mode of the widget */
7
- mode: 'click' | 'hover' | 'static';
24
+ mode: 'click' | 'hover';
8
25
  /** Function to generate the popup contents from the selected element */
9
- getTooltip?: (info: PickingInfo, widget: InfoWidget) => InfoWidgetProps | null;
10
- /** Position at which to place popup (clicked point: [longitude, latitude]) */
11
- position: [number, number];
12
- /** Text content of popup */
13
- text?: string;
14
- /** Visibility of info widget */
15
- visible?: boolean;
16
- /** Minimum offset (in pixels) to keep the popup away from the canvas edges. */
17
- minOffset?: number;
18
- /** Callback triggered when the widget is clicked. */
19
- onClick?: (widget: InfoWidget, info: PickingInfo) => boolean;
26
+ getTooltip?: (info: PickingInfo, widget: InfoWidget) => TooltipContent | string | null | undefined;
27
+ /** Position popup relative to the anchor.
28
+ * @default 'right'
29
+ */
30
+ placement?: PopoverProps['placement'];
31
+ /** Pixel offset
32
+ * @default 10
33
+ */
34
+ offset?: PopoverProps['offset'];
35
+ /**
36
+ * Show an arrow pointing at the anchor. Optionally accepts a pixel size.
37
+ * @default 10
38
+ */
39
+ arrow?: PopoverProps['arrow'];
20
40
  };
21
41
  export declare class InfoWidget extends Widget<InfoWidgetProps> {
22
42
  static defaultProps: Required<InfoWidgetProps>;
23
43
  className: string;
24
44
  placement: "fill";
25
45
  viewport?: Viewport;
46
+ tooltip: Required<TooltipContent> | null;
26
47
  constructor(props: InfoWidgetProps);
27
48
  setProps(props: Partial<InfoWidgetProps>): void;
28
- onCreateRootElement(): HTMLDivElement;
29
- onViewportChange(viewport: any): void;
30
- onHover(info: PickingInfo): void;
31
- onClick(info: PickingInfo): boolean;
32
- onAdd({ deck, viewId }: {
49
+ onAdd({ deck }: {
33
50
  deck: Deck<any>;
34
51
  viewId: string | null;
35
52
  }): void;
53
+ onViewportChange(viewport: any): void;
54
+ onHover(info: PickingInfo): void;
55
+ onClick(info: PickingInfo): void;
56
+ protected _getTooltip(info: PickingInfo): Required<TooltipContent> | null;
36
57
  onRenderHTML(rootElement: HTMLElement): void;
37
58
  }
38
59
  //# sourceMappingURL=info-widget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"info-widget.d.ts","sourceRoot":"","sources":["../src/info-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAG5E,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oDAAoD;IACpD,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnC,wEAAwE;IACxE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,KAAK,eAAe,GAAG,IAAI,CAAC;IAC/E,8EAA8E;IAC9E,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;CAC9D,CAAC;AAEF,qBAAa,UAAW,SAAQ,MAAM,CAAC,eAAe,CAAC;IACrD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAW5C;IAEF,SAAS,SAAsB;IAC/B,SAAS,SAAmB;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBAER,KAAK,EAAE,eAAe;IAKlC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;IAKxC,mBAAmB,IAAI,cAAc;IAOrC,gBAAgB,CAAC,QAAQ,KAAA;IAKzB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAYhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAcnC,KAAK,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,EAAE;QAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC;IAS9D,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAsH7C"}
1
+ {"version":3,"file":"info-widget.d.ts","sourceRoot":"","sources":["../src/info-widget.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAE5E,OAAO,EAAU,KAAK,YAAY,EAAC,oCAAiC;AAGpE,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oDAAoD;IACpD,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC;IACxB,wEAAwE;IACxE,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,UAAU,KACf,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD;;OAEG;IACH,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/B,CAAC;AAEF,qBAAa,UAAW,SAAQ,MAAM,CAAC,eAAe,CAAC;IACrD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAS5C;IAEF,SAAS,SAAsB;IAC/B,SAAS,SAAmB;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,CAAQ;gBAEpC,KAAK,EAAE,eAAe;IAKlC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC;IAKxC,KAAK,CAAC,EAAC,IAAI,EAAC,EAAE;QAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAC;IAItD,gBAAgB,CAAC,QAAQ,KAAA;IAKzB,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAMhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAMhC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI;IAsBzE,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAkC7C"}
@@ -1,175 +1,85 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
1
+ import { jsx as _jsx } from "preact/jsx-runtime";
2
2
  // deck.gl
3
3
  // SPDX-License-Identifier: MIT
4
4
  // Copyright (c) vis.gl contributors
5
5
  import { Widget } from '@deck.gl/core';
6
6
  import { render } from 'preact';
7
+ import { Popover } from "./lib/components/popover.js";
8
+ import { UserContent } from "./lib/components/user-content.js";
7
9
  export class InfoWidget extends Widget {
8
10
  constructor(props) {
9
11
  super(props);
10
12
  this.className = 'deck-widget-info';
11
13
  this.placement = 'fill';
14
+ this.tooltip = null;
12
15
  this.setProps(this.props);
13
16
  }
14
17
  setProps(props) {
15
18
  this.viewId = props.viewId ?? this.viewId;
16
19
  super.setProps(props);
17
20
  }
18
- onCreateRootElement() {
19
- const element = super.onCreateRootElement();
20
- const style = { margin: '0px', top: '0px', left: '0px', position: 'absolute' };
21
- Object.entries(style).forEach(([key, value]) => element.style.setProperty(key, value));
22
- return element;
21
+ onAdd({ deck }) {
22
+ this.deck = deck;
23
23
  }
24
24
  onViewportChange(viewport) {
25
25
  this.viewport = viewport;
26
26
  this.updateHTML();
27
27
  }
28
28
  onHover(info) {
29
- if (this.props.mode === 'hover' && this.props.getTooltip) {
30
- const tooltip = this.props.getTooltip(info, this);
31
- // hover tooltips should show over static and click infos
32
- this.setProps({
33
- visible: tooltip !== null,
34
- ...tooltip,
35
- style: { zIndex: '1', ...tooltip?.style }
36
- });
29
+ if (this.props.mode === 'hover') {
30
+ this.tooltip = this._getTooltip(info);
37
31
  }
38
32
  }
39
33
  onClick(info) {
40
- if (this.props.mode === 'click' && this.props.getTooltip) {
41
- const tooltip = this.props.getTooltip(info, this);
42
- this.setProps({
43
- visible: tooltip !== null,
44
- ...tooltip
45
- });
46
- return tooltip !== null;
34
+ if (this.props.mode === 'click') {
35
+ this.tooltip = this._getTooltip(info);
47
36
  }
48
- // Original behavior
49
- return this.props.onClick?.(this, info) || false;
50
37
  }
51
- onAdd({ deck, viewId }) {
52
- this.deck = deck;
53
- if (!viewId) {
54
- this.viewport = deck.getViewports()[0];
55
- }
56
- else {
57
- this.viewport = deck.getViewports().find(viewport => viewport.id === viewId);
58
- }
38
+ _getTooltip(info) {
39
+ if (!this.props.getTooltip)
40
+ return null;
41
+ const content = this.props.getTooltip(info, this) ?? null;
42
+ if (content === null)
43
+ return null;
44
+ const normalizedTooltip = typeof content === 'string' ? { text: content } : content;
45
+ const position = normalizedTooltip.position || info.coordinate;
46
+ if (!position)
47
+ return null;
48
+ return {
49
+ position,
50
+ text: '',
51
+ html: '',
52
+ element: null,
53
+ className: '',
54
+ style: {},
55
+ ...normalizedTooltip
56
+ };
59
57
  }
60
58
  onRenderHTML(rootElement) {
61
- if (!this.viewport) {
59
+ if (!this.viewport || this.tooltip === null) {
60
+ render(null, rootElement);
62
61
  return;
63
62
  }
64
- const [longitude, latitude] = this.props.position;
63
+ const style = {
64
+ ...this.props.style,
65
+ ...this.tooltip.style
66
+ };
65
67
  // Project the clicked geographic coordinate to canvas (x, y)
66
- const [x, y] = this.viewport.project([longitude, latitude]);
67
- const minOffset = this.props.minOffset || 0;
68
- const gap = 10; // gap between clicked point and popup box
69
- const arrowHeight = 8; // height of the triangle arrow
70
- const arrowWidth = 16; // full width of the arrow
71
- // Decide vertical orientation.
72
- // If the clicked point is in the bottom half, place the popup above the point.
73
- const isAbove = y > this.viewport.height / 2;
74
- const background = (this.props.style && this.props.style.background) || 'rgba(255,255,255,0.9)';
68
+ const [x, y] = this.viewport.project(this.tooltip.position);
75
69
  // Render the popup container with a content box and a placeholder for the arrow.
76
70
  // The container is positioned absolutely (initially at 0,0) and will be repositioned after measuring.
77
- const ui = this.props.visible ? (_jsxs("div", { className: "popup-container", style: { position: 'absolute', left: 0, top: 0 }, children: [_jsx("div", { className: "popup-content", style: {
78
- background,
79
- padding: '10px',
80
- position: 'relative',
81
- // Include any additional styles
82
- ...this.props.style
83
- }, children: this.props.text }), _jsx("div", { className: "popup-arrow", style: { position: 'absolute', width: '0px', height: '0px' } })] })) : null;
71
+ const ui = (_jsx(Popover, { x: x, y: y, placement: this.props.placement, arrow: this.props.arrow, arrowColor: "var(--menu-background, #fff)", offset: this.props.offset, children: _jsx(UserContent, { className: `deck-widget-popup-content ${this.tooltip.className} ${this.props.className}`, style: style, html: this.tooltip.html, text: this.tooltip.text, element: this.tooltip.element }) }));
84
72
  render(ui, rootElement);
85
- // After rendering, measure the content and adjust positioning so that:
86
- // - The popup (with its arrow) does not cover the clicked point.
87
- // - The arrow's tip points to the clicked point.
88
- // - The popup remains within the canvas bounds, with minOffset.
89
- // eslint-disable-next-line max-statements, complexity
90
- requestAnimationFrame(() => {
91
- if (!this.props.visible || !rootElement.firstChild || !this.viewport)
92
- return;
93
- const container = rootElement.firstChild;
94
- const contentEl = container.querySelector('.popup-content');
95
- const arrowEl = container.querySelector('.popup-arrow');
96
- if (!contentEl || !arrowEl)
97
- return;
98
- const contentRect = contentEl.getBoundingClientRect();
99
- const popupWidth = contentRect.width;
100
- const popupHeight = contentRect.height;
101
- // Compute ideal horizontal position: center the popup on the clicked x
102
- let computedLeft = x - popupWidth / 2;
103
- // Compute vertical position based on orientation:
104
- // If the popup is above, position its bottom edge (minus arrow & gap) at the clicked y.
105
- // Otherwise, position its top edge (plus arrow & gap) at the clicked y.
106
- let computedTop;
107
- if (isAbove) {
108
- computedTop = y - gap - arrowHeight - popupHeight;
109
- }
110
- else {
111
- computedTop = y + gap + arrowHeight;
112
- }
113
- // Ensure the popup (content) stays within horizontal bounds of the canvas
114
- if (computedLeft < minOffset) {
115
- computedLeft = minOffset;
116
- }
117
- if (computedLeft + popupWidth > this.viewport.width - minOffset) {
118
- computedLeft = this.viewport.width - minOffset - popupWidth;
119
- }
120
- // Ensure the vertical position (including the arrow) stays within canvas bounds.
121
- if (isAbove) {
122
- if (computedTop < minOffset) {
123
- computedTop = minOffset;
124
- }
125
- }
126
- else if (computedTop + popupHeight + arrowHeight > this.viewport.height - minOffset) {
127
- computedTop = this.viewport.height - minOffset - popupHeight - arrowHeight;
128
- }
129
- // Update container position (remove any transform and set left/top explicitly)
130
- container.style.left = `${computedLeft}px`;
131
- container.style.top = `${computedTop}px`;
132
- container.style.transform = '';
133
- // Compute arrow's horizontal offset relative to the container.
134
- // We want the arrow's tip to align with the clicked point.
135
- let arrowLeft = x - computedLeft - arrowWidth / 2;
136
- // Optionally constrain arrowLeft so it stays within the popup's width.
137
- arrowLeft = Math.max(arrowLeft, 0);
138
- arrowLeft = Math.min(arrowLeft, popupWidth - arrowWidth);
139
- // Update arrow element's style based on orientation.
140
- if (isAbove) {
141
- // Popup is above the clicked point so arrow appears at the bottom of the popup.
142
- arrowEl.style.left = `${arrowLeft}px`;
143
- arrowEl.style.bottom = `-${arrowHeight}px`;
144
- arrowEl.style.top = '';
145
- arrowEl.style.borderLeft = `${arrowWidth / 2}px solid transparent`;
146
- arrowEl.style.borderRight = `${arrowWidth / 2}px solid transparent`;
147
- arrowEl.style.borderTop = `${arrowHeight}px solid ${background}`;
148
- arrowEl.style.borderBottom = '';
149
- }
150
- else {
151
- // Popup is below the clicked point so arrow appears at the top.
152
- arrowEl.style.left = `${arrowLeft}px`;
153
- arrowEl.style.top = `-${arrowHeight}px`;
154
- arrowEl.style.bottom = '';
155
- arrowEl.style.borderLeft = `${arrowWidth / 2}px solid transparent`;
156
- arrowEl.style.borderRight = `${arrowWidth / 2}px solid transparent`;
157
- arrowEl.style.borderBottom = `${arrowHeight}px solid ${background}`;
158
- arrowEl.style.borderTop = '';
159
- }
160
- });
161
73
  }
162
74
  }
163
75
  InfoWidget.defaultProps = {
164
76
  ...Widget.defaultProps,
165
77
  id: 'info',
166
- position: [0, 0],
167
- text: '',
168
- visible: false,
169
- minOffset: 0,
170
78
  viewId: null,
171
79
  mode: 'hover',
172
80
  getTooltip: undefined,
173
- onClick: undefined
81
+ placement: 'right',
82
+ offset: 10,
83
+ arrow: 10
174
84
  };
175
85
  //# sourceMappingURL=info-widget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"info-widget.js","sourceRoot":"","sources":["../src/info-widget.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"info-widget.js","sourceRoot":"","sources":["../src/info-widget.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,19 @@
1
- import { type JSX } from 'preact';
1
+ import { type JSX, type ComponentChild } from 'preact';
2
2
  export type MenuItem = string | {
3
3
  label: string;
4
- value: string;
4
+ value?: string;
5
5
  icon?: string;
6
6
  };
7
7
  export type DropdownMenuProps = {
8
8
  menuItems: MenuItem[];
9
9
  onSelect: (value: string) => void;
10
- style?: JSX.CSSProperties;
10
+ style?: Partial<CSSStyleDeclaration>;
11
11
  };
12
- export declare const DropdownMenu: (props: DropdownMenuProps) => JSX.Element | null;
12
+ export declare const DropdownMenu: (props: DropdownMenuProps) => JSX.Element;
13
+ export type SimpleMenuProps = DropdownMenuProps & {
14
+ trigger?: ComponentChild;
15
+ isOpen: boolean;
16
+ onClose: () => void;
17
+ };
18
+ export declare const SimpleMenu: (props: SimpleMenuProps) => JSX.Element | null;
13
19
  //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../src/lib/components/dropdown-menu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,GAAG,EAAC,MAAM,QAAQ,CAAC;AAGhC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAE9E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;CAC3B,CAAC;AAcF,eAAO,MAAM,YAAY,UAAW,iBAAiB,uBA0DpD,CAAC"}
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../src/lib/components/dropdown-menu.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,GAAG,EAAE,KAAK,cAAc,EAAC,MAAM,QAAQ,CAAC;AAGrD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtC,CAAC;AAcF,eAAO,MAAM,YAAY,UAAW,iBAAiB,gBAgBpD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG;IAChD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,eAAe,uBAwDhD,CAAC"}
@@ -11,11 +11,13 @@ function getMenuItemIcon(item) {
11
11
  }
12
12
  export const DropdownMenu = (props) => {
13
13
  const [isOpen, setIsOpen] = useState(false);
14
+ return (_jsx(SimpleMenu, { ...props, style: { ...props.style, position: 'absolute' }, isOpen: isOpen, onClose: () => setIsOpen(false), trigger: _jsx("button", { className: "deck-widget-dropdown-button", onClick: () => setIsOpen(!isOpen), children: _jsx("span", { className: `deck-widget-dropdown-icon ${isOpen ? 'open' : ''}` }) }) }));
15
+ };
16
+ export const SimpleMenu = (props) => {
14
17
  const dropdownRef = useRef(null);
15
- const toggleDropdown = () => setIsOpen(!isOpen);
16
18
  const handleClickOutside = (event) => {
17
19
  if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
18
- setIsOpen(false);
20
+ props.onClose();
19
21
  }
20
22
  };
21
23
  useEffect(() => {
@@ -24,17 +26,20 @@ export const DropdownMenu = (props) => {
24
26
  document.removeEventListener('mousedown', handleClickOutside);
25
27
  };
26
28
  }, []);
27
- const handleSelect = (item) => {
28
- props.onSelect(getMenuItemValue(item));
29
- setIsOpen(false);
29
+ const handleSelect = (value) => {
30
+ if (value) {
31
+ props.onSelect(value);
32
+ props.onClose();
33
+ }
30
34
  };
31
35
  // Don't render anything if there are no menu items
32
36
  if (props.menuItems.length === 0) {
33
37
  return null;
34
38
  }
35
- return (_jsxs("div", { className: "deck-widget-dropdown-container", ref: dropdownRef, style: props.style, children: [_jsx("button", { className: "deck-widget-dropdown-button", onClick: toggleDropdown, children: _jsx("span", { className: `deck-widget-dropdown-icon ${isOpen ? 'open' : ''}` }) }), isOpen && (_jsx("ul", { className: "deck-widget-dropdown-menu", children: props.menuItems.map(item => {
39
+ return (_jsxs("div", { className: "deck-widget-dropdown-container", ref: dropdownRef, children: [props.trigger, props.isOpen && (_jsx("ul", { className: "deck-widget-dropdown-menu", style: props.style, children: props.menuItems.map((item, i) => {
40
+ const value = getMenuItemValue(item);
36
41
  const icon = getMenuItemIcon(item);
37
- return (_jsxs("li", { className: "deck-widget-dropdown-item", onClick: () => handleSelect(item), children: [icon && (_jsx("span", { className: "deck-widget-dropdown-item-icon", style: { maskImage: `url("${icon}")`, WebkitMaskImage: `url("${icon}")` } })), getMenuItemLabel(item)] }, getMenuItemValue(item)));
42
+ return (_jsxs("li", { className: `deck-widget-dropdown-item ${value ? '' : 'disabled'}`, onClick: () => handleSelect(value), children: [icon && (_jsx("span", { className: "deck-widget-dropdown-item-icon", style: { maskImage: `url("${icon}")`, WebkitMaskImage: `url("${icon}")` } })), getMenuItemLabel(item)] }, i));
38
43
  }) }))] }));
39
44
  };
40
45
  //# sourceMappingURL=dropdown-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-menu.js","sourceRoot":"","sources":["../../../src/lib/components/dropdown-menu.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-menu.js","sourceRoot":"","sources":["../../../src/lib/components/dropdown-menu.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon-menu.d.ts","sourceRoot":"","sources":["../../../src/lib/components/icon-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,QAAQ,CAAC;AAMhC,MAAM,MAAM,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAChE,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,QAAQ,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,eAsD7E"}
1
+ {"version":3,"file":"icon-menu.d.ts","sourceRoot":"","sources":["../../../src/lib/components/icon-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,QAAQ,CAAC;AAKhC,MAAM,MAAM,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAChE,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,QAAQ,CAAC,OAAO,SAAS,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,eAsD7E"}
@@ -1,8 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
2
2
  import { useState, useRef, useEffect } from 'preact/hooks';
3
- import { IconButton } from "./icon-button.js";
4
3
  import { ButtonGroup } from "./button-group.js";
5
- import { GroupedIconButton } from "./grouped-icon-button.js";
4
+ import { IconButton } from "./icon-button.js";
6
5
  /** A component that renders an icon popup menu */
7
6
  export function IconMenu(props) {
8
7
  const [menuOpen, setMenuOpen] = useState(false);
@@ -29,6 +28,6 @@ export function IconMenu(props) {
29
28
  const selectedMenuItem = props.menuItems.find(item => item.value === selectedItem);
30
29
  const label = props.label || selectedMenuItem?.label || '';
31
30
  const icon = (props.icon || selectedMenuItem?.icon);
32
- return (_jsxs("div", { style: { position: 'relative', display: 'inline-block' }, ref: containerRef, children: [_jsx(IconButton, { className: props.className, label: label, onClick: handleButtonClick, children: icon }), menuOpen && (_jsx("div", { className: "deck-widget-icon-menu", children: _jsx(ButtonGroup, { orientation: "vertical", children: props.menuItems.map(item => (_jsx(GroupedIconButton, { label: item.label, onClick: () => handleSelectItem(item.value), children: item.icon }, item.value))) }) }))] }));
31
+ return (_jsxs("div", { style: { position: 'relative', display: 'inline-block' }, ref: containerRef, children: [_jsx(IconButton, { className: props.className, label: label, onClick: handleButtonClick, children: icon }), menuOpen && (_jsx("div", { className: "deck-widget-icon-menu", children: _jsx(ButtonGroup, { orientation: "vertical", children: props.menuItems.map(item => (_jsx(IconButton, { label: item.label, onClick: () => handleSelectItem(item.value), children: item.icon }, item.value))) }) }))] }));
33
32
  }
34
33
  //# sourceMappingURL=icon-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-menu.js","sourceRoot":"","sources":["../../../src/lib/components/icon-menu.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AACzD,OAAO,EAAC,UAAU,EAAC,yBAAsB;AACzC,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AAWxD,kDAAkD;AAClD,MAAM,UAAU,QAAQ,CAAyB,KAA6B;IAC5E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAElD,wCAAwC;IACxC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;QAC/C,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;YACjF,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAChE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,WAAW,CAAC,CAAC;IAE7E,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAAE,EAAE;QACzC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,gBAAgB,EAAE,IAAI,CAAE,CAAC;IAErD,OAAO,CACL,eAAK,KAAK,EAAE,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAC,EAAE,GAAG,EAAE,YAAY,aAC5E,KAAC,UAAU,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,YAC7E,IAAI,GACM,EACZ,QAAQ,IAAI,CACX,cAAK,SAAS,EAAC,uBAAuB,YACpC,KAAC,WAAW,IAAC,WAAW,EAAC,UAAU,YAChC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC3B,KAAC,iBAAiB,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,YAE1C,IAAI,CAAC,IAAI,IAJL,IAAI,CAAC,KAAK,CAKG,CACrB,CAAC,GACU,GACV,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"icon-menu.js","sourceRoot":"","sources":["../../../src/lib/components/icon-menu.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AACzD,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,UAAU,EAAC,yBAAsB;AAWzC,kDAAkD;AAClD,MAAM,UAAU,QAAQ,CAAyB,KAA6B;IAC5E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAElD,wCAAwC;IACxC,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;QAC/C,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;YACjF,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAChE,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,WAAW,CAAC,CAAC;IAE7E,MAAM,gBAAgB,GAAG,CAAC,IAAa,EAAE,EAAE;QACzC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC;IACnF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,gBAAgB,EAAE,IAAI,CAAE,CAAC;IAErD,OAAO,CACL,eAAK,KAAK,EAAE,EAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAC,EAAE,GAAG,EAAE,YAAY,aAC5E,KAAC,UAAU,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,YAC7E,IAAI,GACM,EACZ,QAAQ,IAAI,CACX,cAAK,SAAS,EAAC,uBAAuB,YACpC,KAAC,WAAW,IAAC,WAAW,EAAC,UAAU,YAChC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAC3B,KAAC,UAAU,IAET,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,YAE1C,IAAI,CAAC,IAAI,IAJL,IAAI,CAAC,KAAK,CAKJ,CACd,CAAC,GACU,GACV,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { JSX, ComponentChildren } from 'preact';
2
+ import { type Placement } from '@floating-ui/dom';
3
+ export type PopoverProps = {
4
+ /** Anchor x */
5
+ x: number;
6
+ /** Anchor y */
7
+ y: number;
8
+ /** Position content relative to the anchor.
9
+ * @default 'right'
10
+ */
11
+ placement?: Placement;
12
+ /** Pixel offset
13
+ * @default 0
14
+ */
15
+ offset?: number;
16
+ /**
17
+ * Show an arrow pointing at the anchor. Optionally accepts a pixel size.
18
+ * @default false
19
+ */
20
+ arrow?: false | number | [width: number, height: number];
21
+ /**
22
+ * CSS color of the arrow
23
+ * @default 'white'
24
+ */
25
+ arrowColor?: string;
26
+ /** Content of the popover */
27
+ children: ComponentChildren;
28
+ };
29
+ export declare const Popover: ({ x, y, placement, offset: pixelOffset, arrow: arrowSize, arrowColor, children }: PopoverProps) => JSX.Element;
30
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/lib/components/popover.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,GAAG,EAAE,iBAAiB,EAAC,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAOL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,eAAe;IACf,CAAC,EAAE,MAAM,CAAC;IACV,eAAe;IACf,CAAC,EAAE,MAAM,CAAC;IACV;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,OAAO,qFAQjB,YAAY,gBAyEd,CAAC"}