@deck.gl-community/widgets 9.2.8 → 9.3.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/README.md +9 -1
  2. package/dist/graph-widgets/_deprecate/long-press-button.d.ts.map +1 -0
  3. package/dist/graph-widgets/_deprecate/long-press-button.js.map +1 -0
  4. package/dist/graph-widgets/_deprecate/view-control-widget.d.ts.map +1 -0
  5. package/dist/graph-widgets/_deprecate/view-control-widget.js.map +1 -0
  6. package/dist/{widgets → graph-widgets}/long-press-button.d.ts +1 -0
  7. package/dist/graph-widgets/long-press-button.d.ts.map +1 -0
  8. package/dist/{widgets → graph-widgets}/long-press-button.js +1 -0
  9. package/dist/graph-widgets/long-press-button.js.map +1 -0
  10. package/dist/graph-widgets/long-press-controller.d.ts.map +1 -0
  11. package/dist/graph-widgets/long-press-controller.js.map +1 -0
  12. package/dist/{widgets → graph-widgets}/pan-widget.d.ts +3 -2
  13. package/dist/graph-widgets/pan-widget.d.ts.map +1 -0
  14. package/dist/{widgets → graph-widgets}/pan-widget.js +19 -15
  15. package/dist/graph-widgets/pan-widget.js.map +1 -0
  16. package/dist/{widgets → graph-widgets}/zoom-range-widget.d.ts +3 -3
  17. package/dist/graph-widgets/zoom-range-widget.d.ts.map +1 -0
  18. package/dist/{widgets → graph-widgets}/zoom-range-widget.js +24 -23
  19. package/dist/graph-widgets/zoom-range-widget.js.map +1 -0
  20. package/dist/html-overlay-widgets/html-cluster-widget.d.ts.map +1 -0
  21. package/dist/html-overlay-widgets/html-cluster-widget.js.map +1 -0
  22. package/dist/{widgets → html-overlay-widgets}/html-overlay-item.d.ts +1 -0
  23. package/dist/html-overlay-widgets/html-overlay-item.d.ts.map +1 -0
  24. package/dist/html-overlay-widgets/html-overlay-item.js.map +1 -0
  25. package/dist/{widgets → html-overlay-widgets}/html-overlay-widget.d.ts +1 -1
  26. package/dist/html-overlay-widgets/html-overlay-widget.d.ts.map +1 -0
  27. package/dist/{widgets → html-overlay-widgets}/html-overlay-widget.js +2 -2
  28. package/dist/html-overlay-widgets/html-overlay-widget.js.map +1 -0
  29. package/dist/{widgets → html-overlay-widgets}/html-tooltip-widget.d.ts +1 -0
  30. package/dist/html-overlay-widgets/html-tooltip-widget.d.ts.map +1 -0
  31. package/dist/html-overlay-widgets/html-tooltip-widget.js.map +1 -0
  32. package/dist/index.cjs +5102 -82
  33. package/dist/index.cjs.map +4 -4
  34. package/dist/index.d.ts +33 -12
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +27 -6
  37. package/dist/index.js.map +1 -1
  38. package/dist/keyboard-shortcuts/keyboard-shortcuts-manager.d.ts +18 -0
  39. package/dist/keyboard-shortcuts/keyboard-shortcuts-manager.d.ts.map +1 -0
  40. package/dist/keyboard-shortcuts/keyboard-shortcuts-manager.js +47 -0
  41. package/dist/keyboard-shortcuts/keyboard-shortcuts-manager.js.map +1 -0
  42. package/dist/keyboard-shortcuts/keyboard-shortcuts.d.ts +22 -0
  43. package/dist/keyboard-shortcuts/keyboard-shortcuts.d.ts.map +1 -0
  44. package/dist/keyboard-shortcuts/keyboard-shortcuts.js +83 -0
  45. package/dist/keyboard-shortcuts/keyboard-shortcuts.js.map +1 -0
  46. package/dist/lib/settings/settings.d.ts +17 -0
  47. package/dist/lib/settings/settings.d.ts.map +1 -0
  48. package/dist/lib/settings/settings.js +140 -0
  49. package/dist/lib/settings/settings.js.map +1 -0
  50. package/dist/ready-to-upstream-widgets/reset-view-widget.d.ts +21 -0
  51. package/dist/ready-to-upstream-widgets/reset-view-widget.d.ts.map +1 -0
  52. package/dist/ready-to-upstream-widgets/reset-view-widget.js +29 -0
  53. package/dist/ready-to-upstream-widgets/reset-view-widget.js.map +1 -0
  54. package/dist/widget-components/icon-button.d.ts +12 -0
  55. package/dist/widget-components/icon-button.d.ts.map +1 -0
  56. package/dist/widget-components/icon-button.js +12 -0
  57. package/dist/widget-components/icon-button.js.map +1 -0
  58. package/dist/widget-components/select-widget-component.d.ts +15 -0
  59. package/dist/widget-components/select-widget-component.d.ts.map +1 -0
  60. package/dist/widget-components/select-widget-component.js +229 -0
  61. package/dist/widget-components/select-widget-component.js.map +1 -0
  62. package/dist/widget-panels/box-widget.d.ts +43 -0
  63. package/dist/widget-panels/box-widget.d.ts.map +1 -0
  64. package/dist/widget-panels/box-widget.js +191 -0
  65. package/dist/widget-panels/box-widget.js.map +1 -0
  66. package/dist/widget-panels/box-widget.test.d.ts +2 -0
  67. package/dist/widget-panels/box-widget.test.d.ts.map +1 -0
  68. package/dist/widget-panels/box-widget.test.js +41 -0
  69. package/dist/widget-panels/box-widget.test.js.map +1 -0
  70. package/dist/widget-panels/full-screen-panel-widget.d.ts +33 -0
  71. package/dist/widget-panels/full-screen-panel-widget.d.ts.map +1 -0
  72. package/dist/widget-panels/full-screen-panel-widget.js +153 -0
  73. package/dist/widget-panels/full-screen-panel-widget.js.map +1 -0
  74. package/dist/widget-panels/full-screen-panel-widget.test.d.ts +2 -0
  75. package/dist/widget-panels/full-screen-panel-widget.test.d.ts.map +1 -0
  76. package/dist/widget-panels/full-screen-panel-widget.test.js +40 -0
  77. package/dist/widget-panels/full-screen-panel-widget.test.js.map +1 -0
  78. package/dist/widget-panels/heap-memory-widget.d.ts +26 -0
  79. package/dist/widget-panels/heap-memory-widget.d.ts.map +1 -0
  80. package/dist/widget-panels/heap-memory-widget.js +156 -0
  81. package/dist/widget-panels/heap-memory-widget.js.map +1 -0
  82. package/dist/widget-panels/keyboard-shortcuts-widget.d.ts +46 -0
  83. package/dist/widget-panels/keyboard-shortcuts-widget.d.ts.map +1 -0
  84. package/dist/widget-panels/keyboard-shortcuts-widget.js +301 -0
  85. package/dist/widget-panels/keyboard-shortcuts-widget.js.map +1 -0
  86. package/dist/widget-panels/modal-widget.d.ts +62 -0
  87. package/dist/widget-panels/modal-widget.d.ts.map +1 -0
  88. package/dist/widget-panels/modal-widget.js +309 -0
  89. package/dist/widget-panels/modal-widget.js.map +1 -0
  90. package/dist/widget-panels/modal-widget.test.d.ts +2 -0
  91. package/dist/widget-panels/modal-widget.test.d.ts.map +1 -0
  92. package/dist/widget-panels/modal-widget.test.js +103 -0
  93. package/dist/widget-panels/modal-widget.test.js.map +1 -0
  94. package/dist/widget-panels/omni-box-widget.d.ts +59 -0
  95. package/dist/widget-panels/omni-box-widget.d.ts.map +1 -0
  96. package/dist/widget-panels/omni-box-widget.js +562 -0
  97. package/dist/widget-panels/omni-box-widget.js.map +1 -0
  98. package/dist/widget-panels/omni-box-widget.test.d.ts +2 -0
  99. package/dist/widget-panels/omni-box-widget.test.d.ts.map +1 -0
  100. package/dist/widget-panels/omni-box-widget.test.js +49 -0
  101. package/dist/widget-panels/omni-box-widget.test.js.map +1 -0
  102. package/dist/widget-panels/reset-view-widget.d.ts +20 -0
  103. package/dist/widget-panels/reset-view-widget.d.ts.map +1 -0
  104. package/dist/widget-panels/reset-view-widget.js +28 -0
  105. package/dist/widget-panels/reset-view-widget.js.map +1 -0
  106. package/dist/widget-panels/settings-panel.d.ts +49 -0
  107. package/dist/widget-panels/settings-panel.d.ts.map +1 -0
  108. package/dist/widget-panels/settings-panel.js +263 -0
  109. package/dist/widget-panels/settings-panel.js.map +1 -0
  110. package/dist/widget-panels/settings-panel.test.d.ts +2 -0
  111. package/dist/widget-panels/settings-panel.test.d.ts.map +1 -0
  112. package/dist/widget-panels/settings-panel.test.js +217 -0
  113. package/dist/widget-panels/settings-panel.test.js.map +1 -0
  114. package/dist/widget-panels/sidebar-widget.d.ts +65 -0
  115. package/dist/widget-panels/sidebar-widget.d.ts.map +1 -0
  116. package/dist/widget-panels/sidebar-widget.js +339 -0
  117. package/dist/widget-panels/sidebar-widget.js.map +1 -0
  118. package/dist/widget-panels/sidebar-widget.test.d.ts +2 -0
  119. package/dist/widget-panels/sidebar-widget.test.d.ts.map +1 -0
  120. package/dist/widget-panels/sidebar-widget.test.js +175 -0
  121. package/dist/widget-panels/sidebar-widget.test.js.map +1 -0
  122. package/dist/widget-panels/stats-panel.d.ts +34 -0
  123. package/dist/widget-panels/stats-panel.d.ts.map +1 -0
  124. package/dist/widget-panels/stats-panel.js +61 -0
  125. package/dist/widget-panels/stats-panel.js.map +1 -0
  126. package/dist/widget-panels/stats-panel.test.d.ts +2 -0
  127. package/dist/widget-panels/stats-panel.test.d.ts.map +1 -0
  128. package/dist/widget-panels/stats-panel.test.js +36 -0
  129. package/dist/widget-panels/stats-panel.test.js.map +1 -0
  130. package/dist/widget-panels/text-editor-panel-monaco-runtime.d.ts +17 -0
  131. package/dist/widget-panels/text-editor-panel-monaco-runtime.d.ts.map +1 -0
  132. package/dist/widget-panels/text-editor-panel-monaco-runtime.js +69 -0
  133. package/dist/widget-panels/text-editor-panel-monaco-runtime.js.map +1 -0
  134. package/dist/widget-panels/text-editor-panel.d.ts +42 -0
  135. package/dist/widget-panels/text-editor-panel.d.ts.map +1 -0
  136. package/dist/widget-panels/text-editor-panel.js +249 -0
  137. package/dist/widget-panels/text-editor-panel.js.map +1 -0
  138. package/dist/widget-panels/text-editor-panel.test.d.ts +2 -0
  139. package/dist/widget-panels/text-editor-panel.test.d.ts.map +1 -0
  140. package/dist/widget-panels/text-editor-panel.test.js +393 -0
  141. package/dist/widget-panels/text-editor-panel.test.js.map +1 -0
  142. package/dist/widget-panels/time-measure-widget.d.ts +49 -0
  143. package/dist/widget-panels/time-measure-widget.d.ts.map +1 -0
  144. package/dist/widget-panels/time-measure-widget.js +351 -0
  145. package/dist/widget-panels/time-measure-widget.js.map +1 -0
  146. package/dist/widget-panels/toast-manager.d.ts +24 -0
  147. package/dist/widget-panels/toast-manager.d.ts.map +1 -0
  148. package/dist/widget-panels/toast-manager.js +96 -0
  149. package/dist/widget-panels/toast-manager.js.map +1 -0
  150. package/dist/widget-panels/toast-manager.test.d.ts +2 -0
  151. package/dist/widget-panels/toast-manager.test.d.ts.map +1 -0
  152. package/dist/widget-panels/toast-manager.test.js +75 -0
  153. package/dist/widget-panels/toast-manager.test.js.map +1 -0
  154. package/dist/widget-panels/toast-widget.d.ts +20 -0
  155. package/dist/widget-panels/toast-widget.d.ts.map +1 -0
  156. package/dist/widget-panels/toast-widget.js +207 -0
  157. package/dist/widget-panels/toast-widget.js.map +1 -0
  158. package/dist/widget-panels/toast-widget.test.d.ts +2 -0
  159. package/dist/widget-panels/toast-widget.test.d.ts.map +1 -0
  160. package/dist/widget-panels/toast-widget.test.js +81 -0
  161. package/dist/widget-panels/toast-widget.test.js.map +1 -0
  162. package/dist/widget-panels/toggle-widget.d.ts +34 -0
  163. package/dist/widget-panels/toggle-widget.d.ts.map +1 -0
  164. package/dist/widget-panels/toggle-widget.js +46 -0
  165. package/dist/widget-panels/toggle-widget.js.map +1 -0
  166. package/dist/widget-panels/toolbar-widget.d.ts +53 -0
  167. package/dist/widget-panels/toolbar-widget.d.ts.map +1 -0
  168. package/dist/widget-panels/toolbar-widget.js +160 -0
  169. package/dist/widget-panels/toolbar-widget.js.map +1 -0
  170. package/dist/widget-panels/toolbar-widget.test.d.ts +2 -0
  171. package/dist/widget-panels/toolbar-widget.test.d.ts.map +1 -0
  172. package/dist/widget-panels/toolbar-widget.test.js +105 -0
  173. package/dist/widget-panels/toolbar-widget.test.js.map +1 -0
  174. package/dist/widget-panels/widget-containers.d.ts +275 -0
  175. package/dist/widget-panels/widget-containers.d.ts.map +1 -0
  176. package/dist/widget-panels/widget-containers.js +761 -0
  177. package/dist/widget-panels/widget-containers.js.map +1 -0
  178. package/dist/widget-panels/widget-containers.test.d.ts +2 -0
  179. package/dist/widget-panels/widget-containers.test.d.ts.map +1 -0
  180. package/dist/widget-panels/widget-containers.test.js +337 -0
  181. package/dist/widget-panels/widget-containers.test.js.map +1 -0
  182. package/dist/widget-panels/y-zoom-widget.d.ts +66 -0
  183. package/dist/widget-panels/y-zoom-widget.d.ts.map +1 -0
  184. package/dist/widget-panels/y-zoom-widget.js +264 -0
  185. package/dist/widget-panels/y-zoom-widget.js.map +1 -0
  186. package/dist/widget-panels/y-zoom-widget.test.d.ts +2 -0
  187. package/dist/widget-panels/y-zoom-widget.test.d.ts.map +1 -0
  188. package/dist/widget-panels/y-zoom-widget.test.js +71 -0
  189. package/dist/widget-panels/y-zoom-widget.test.js.map +1 -0
  190. package/dist/widgets/heap-memory-widget.d.ts +26 -0
  191. package/dist/widgets/heap-memory-widget.d.ts.map +1 -0
  192. package/dist/widgets/heap-memory-widget.js +158 -0
  193. package/dist/widgets/heap-memory-widget.js.map +1 -0
  194. package/dist/widgets/keyboard-shortcuts-widget.d.ts +28 -0
  195. package/dist/widgets/keyboard-shortcuts-widget.d.ts.map +1 -0
  196. package/dist/widgets/keyboard-shortcuts-widget.js +125 -0
  197. package/dist/widgets/keyboard-shortcuts-widget.js.map +1 -0
  198. package/dist/widgets/omni-box-widget.d.ts +59 -0
  199. package/dist/widgets/omni-box-widget.d.ts.map +1 -0
  200. package/dist/widgets/omni-box-widget.js +493 -0
  201. package/dist/widgets/omni-box-widget.js.map +1 -0
  202. package/dist/widgets/settings-widget.d.ts +64 -0
  203. package/dist/widgets/settings-widget.d.ts.map +1 -0
  204. package/dist/widgets/settings-widget.js +148 -0
  205. package/dist/widgets/settings-widget.js.map +1 -0
  206. package/dist/widgets/view-manager-utils.d.ts +1 -1
  207. package/dist/widgets/view-manager-utils.d.ts.map +1 -1
  208. package/dist/widgets/view-manager-utils.js.map +1 -1
  209. package/package.json +4 -3
  210. package/src/{widgets → graph-widgets}/long-press-button.tsx +1 -0
  211. package/src/{widgets → graph-widgets}/pan-widget.tsx +30 -23
  212. package/src/{widgets → graph-widgets}/zoom-range-widget.tsx +36 -34
  213. package/src/{widgets → html-overlay-widgets}/html-overlay-item.tsx +1 -0
  214. package/src/{widgets → html-overlay-widgets}/html-overlay-widget.tsx +2 -2
  215. package/src/{widgets → html-overlay-widgets}/html-tooltip-widget.tsx +1 -0
  216. package/src/index.ts +109 -12
  217. package/src/keyboard-shortcuts/keyboard-shortcuts-manager.ts +58 -0
  218. package/src/keyboard-shortcuts/keyboard-shortcuts.ts +113 -0
  219. package/src/keyboard-shortcuts/keyboard-shortcuts.ts.disabled +107 -0
  220. package/src/lib/settings/settings.ts +203 -0
  221. package/src/ready-to-upstream-widgets/reset-view-widget.tsx +57 -0
  222. package/src/widget-components/icon-button.tsx +38 -0
  223. package/src/widget-components/select-widget-component.tsx +354 -0
  224. package/src/widget-panels/box-widget.test.tsx +50 -0
  225. package/src/widget-panels/box-widget.tsx +284 -0
  226. package/src/widget-panels/full-screen-panel-widget.test.tsx +49 -0
  227. package/src/widget-panels/full-screen-panel-widget.tsx +223 -0
  228. package/src/widget-panels/heap-memory-widget.tsx +221 -0
  229. package/src/widget-panels/keyboard-shortcuts-widget.tsx +511 -0
  230. package/src/widget-panels/modal-widget.test.tsx +124 -0
  231. package/src/widget-panels/modal-widget.tsx +464 -0
  232. package/src/widget-panels/omni-box-widget.test.tsx +59 -0
  233. package/src/widget-panels/omni-box-widget.tsx +849 -0
  234. package/src/widget-panels/reset-view-widget.tsx +56 -0
  235. package/src/widget-panels/settings-panel.test.tsx +286 -0
  236. package/src/widget-panels/settings-panel.tsx +619 -0
  237. package/src/widget-panels/sidebar-widget.test.tsx +215 -0
  238. package/src/widget-panels/sidebar-widget.tsx +525 -0
  239. package/src/widget-panels/stats-panel.test.tsx +41 -0
  240. package/src/widget-panels/stats-panel.tsx +108 -0
  241. package/src/widget-panels/text-editor-panel-monaco-runtime.ts +97 -0
  242. package/src/widget-panels/text-editor-panel.test.tsx +618 -0
  243. package/src/widget-panels/text-editor-panel.tsx +375 -0
  244. package/src/widget-panels/time-measure-widget.tsx +445 -0
  245. package/src/widget-panels/toast-manager.test.ts +98 -0
  246. package/src/widget-panels/toast-manager.ts +134 -0
  247. package/src/widget-panels/toast-widget.test.tsx +105 -0
  248. package/src/widget-panels/toast-widget.tsx +293 -0
  249. package/src/widget-panels/toggle-widget.tsx +93 -0
  250. package/src/widget-panels/toolbar-widget.test.ts +129 -0
  251. package/src/widget-panels/toolbar-widget.tsx +293 -0
  252. package/src/widget-panels/widget-containers.test.tsx +453 -0
  253. package/src/widget-panels/widget-containers.tsx +1330 -0
  254. package/src/widget-panels/worker-modules.d.ts +7 -0
  255. package/src/widget-panels/y-zoom-widget.test.tsx +101 -0
  256. package/src/widget-panels/y-zoom-widget.tsx +376 -0
  257. package/src/widgets/heap-memory-widget.tsx +223 -0
  258. package/src/widgets/keyboard-shortcuts-widget.tsx +245 -0
  259. package/src/widgets/omni-box-widget.tsx +768 -0
  260. package/src/widgets/settings-widget.tsx +277 -0
  261. package/src/widgets/view-manager-utils.ts +1 -1
  262. package/dist/_deprecate/long-press-button.d.ts.map +0 -1
  263. package/dist/_deprecate/long-press-button.js.map +0 -1
  264. package/dist/_deprecate/view-control-widget.d.ts.map +0 -1
  265. package/dist/_deprecate/view-control-widget.js.map +0 -1
  266. package/dist/widgets/html-cluster-widget.d.ts.map +0 -1
  267. package/dist/widgets/html-cluster-widget.js.map +0 -1
  268. package/dist/widgets/html-overlay-item.d.ts.map +0 -1
  269. package/dist/widgets/html-overlay-item.js.map +0 -1
  270. package/dist/widgets/html-overlay-widget.d.ts.map +0 -1
  271. package/dist/widgets/html-overlay-widget.js.map +0 -1
  272. package/dist/widgets/html-tooltip-widget.d.ts.map +0 -1
  273. package/dist/widgets/html-tooltip-widget.js.map +0 -1
  274. package/dist/widgets/long-press-button.d.ts.map +0 -1
  275. package/dist/widgets/long-press-button.js.map +0 -1
  276. package/dist/widgets/long-press-controller.d.ts.map +0 -1
  277. package/dist/widgets/long-press-controller.js.map +0 -1
  278. package/dist/widgets/pan-widget.d.ts.map +0 -1
  279. package/dist/widgets/pan-widget.js.map +0 -1
  280. package/dist/widgets/zoom-range-widget.d.ts.map +0 -1
  281. package/dist/widgets/zoom-range-widget.js.map +0 -1
  282. /package/dist/{_deprecate → graph-widgets/_deprecate}/long-press-button.d.ts +0 -0
  283. /package/dist/{_deprecate → graph-widgets/_deprecate}/long-press-button.js +0 -0
  284. /package/dist/{_deprecate → graph-widgets/_deprecate}/view-control-widget.d.ts +0 -0
  285. /package/dist/{_deprecate → graph-widgets/_deprecate}/view-control-widget.js +0 -0
  286. /package/dist/{widgets → graph-widgets}/long-press-controller.d.ts +0 -0
  287. /package/dist/{widgets → graph-widgets}/long-press-controller.js +0 -0
  288. /package/dist/{widgets → html-overlay-widgets}/html-cluster-widget.d.ts +0 -0
  289. /package/dist/{widgets → html-overlay-widgets}/html-cluster-widget.js +0 -0
  290. /package/dist/{widgets → html-overlay-widgets}/html-overlay-item.js +0 -0
  291. /package/dist/{widgets → html-overlay-widgets}/html-tooltip-widget.js +0 -0
  292. /package/src/{_deprecate → graph-widgets/_deprecate}/long-press-button.tsx +0 -0
  293. /package/src/{_deprecate → graph-widgets/_deprecate}/view-control-widget.tsx +0 -0
  294. /package/src/{widgets → graph-widgets}/long-press-controller.ts +0 -0
  295. /package/src/{widgets → html-overlay-widgets}/html-cluster-widget.ts +0 -0
@@ -0,0 +1,301 @@
1
+ var _a;
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "preact/jsx-runtime";
3
+ /** @jsxImportSource preact */
4
+ import { Widget } from '@deck.gl/core';
5
+ import { render } from 'preact';
6
+ import { DEFAULT_SHORTCUTS, formatKey } from "../keyboard-shortcuts/keyboard-shortcuts.js";
7
+ import { KeyboardShortcutsManager } from "../keyboard-shortcuts/keyboard-shortcuts-manager.js";
8
+ /**
9
+ * A panel definition representing keyboard shortcut details for a modal/tab container.
10
+ */
11
+ export class KeyboardShortcutsPanel {
12
+ id = 'keyboard-shortcuts';
13
+ title = 'Keyboard Shortcuts';
14
+ theme;
15
+ content;
16
+ constructor({ keyboardShortcuts = [], theme = 'inherit' } = {}) {
17
+ this.theme = theme;
18
+ this.content = _jsx(KeyboardSettingsPanelContent, { keyboardShortcuts: keyboardShortcuts });
19
+ }
20
+ }
21
+ export class KeyboardShortcutsWidget extends Widget {
22
+ static defaultProps = {
23
+ ...Widget.defaultProps,
24
+ id: 'keyboard-bindings',
25
+ placement: 'top-left',
26
+ keyboardShortcuts: []
27
+ };
28
+ className = 'deck-widget-keyboard-bindings';
29
+ placement = _a.defaultProps.placement;
30
+ #isOpen = false;
31
+ #rootElement = null;
32
+ #keyboardShortcuts = _a.defaultProps.keyboardShortcuts;
33
+ #keyboardShortcutsManager = null;
34
+ constructor(props) {
35
+ super({ ..._a.defaultProps, ...props });
36
+ this.#keyboardShortcuts = props.keyboardShortcuts;
37
+ if (props.placement !== undefined) {
38
+ this.placement = props.placement;
39
+ }
40
+ }
41
+ setProps(props) {
42
+ if (props.keyboardShortcuts !== undefined) {
43
+ this.#keyboardShortcuts = props.keyboardShortcuts;
44
+ this.#restartKeyboardShortcutsManager();
45
+ this.#renderRootElement();
46
+ }
47
+ if (props.installShortcuts !== undefined) {
48
+ this.#restartKeyboardShortcutsManager();
49
+ }
50
+ if (props.placement !== undefined) {
51
+ this.placement = props.placement;
52
+ }
53
+ super.setProps(props);
54
+ }
55
+ onAdd() {
56
+ this.#restartKeyboardShortcutsManager();
57
+ }
58
+ onRenderHTML(rootElement) {
59
+ this.#rootElement = rootElement;
60
+ const className = ['deck-widget', this.className, this.props.className]
61
+ .filter(Boolean)
62
+ .join(' ');
63
+ rootElement.className = className;
64
+ this.#renderRootElement();
65
+ }
66
+ onRemove() {
67
+ if (this.#rootElement) {
68
+ render(null, this.#rootElement);
69
+ }
70
+ if (this.#keyboardShortcutsManager) {
71
+ this.#keyboardShortcutsManager.stop();
72
+ this.#keyboardShortcutsManager = null;
73
+ }
74
+ }
75
+ #restartKeyboardShortcutsManager() {
76
+ if (this.#keyboardShortcutsManager) {
77
+ this.#keyboardShortcutsManager.stop();
78
+ this.#keyboardShortcutsManager = null;
79
+ }
80
+ // @ts-expect-error Accessing protected member 'eventManager'.
81
+ const eventManager = this.deck?.eventManager;
82
+ if (eventManager && this.props.installShortcuts) {
83
+ this.#keyboardShortcutsManager = new KeyboardShortcutsManager(eventManager, this.#getEffectiveKeyboardShortcuts());
84
+ this.#keyboardShortcutsManager.start();
85
+ }
86
+ }
87
+ #renderRootElement() {
88
+ if (!this.#rootElement) {
89
+ return;
90
+ }
91
+ render(_jsx(KeyboardShortcutsWidgetView, { isOpen: this.#isOpen, keyboardShortcuts: this.#getEffectiveKeyboardShortcuts(), onClose: this.#handleClose, onOpen: this.#handleOpen }), this.#rootElement);
92
+ }
93
+ #getEffectiveKeyboardShortcuts() {
94
+ return [
95
+ ...DEFAULT_SHORTCUTS.map((shortcut) => ({
96
+ ...shortcut,
97
+ onKeyPress: this.#handleOpen
98
+ })),
99
+ ...this.#keyboardShortcuts
100
+ ];
101
+ }
102
+ #handleOpen = () => {
103
+ if (this.#isOpen) {
104
+ return;
105
+ }
106
+ this.#isOpen = true;
107
+ this.#renderRootElement();
108
+ };
109
+ #handleClose = () => {
110
+ if (!this.#isOpen) {
111
+ return;
112
+ }
113
+ this.#isOpen = false;
114
+ this.#renderRootElement();
115
+ };
116
+ }
117
+ _a = KeyboardShortcutsWidget;
118
+ const MODAL_BACKDROP_STYLE = {
119
+ position: 'fixed',
120
+ inset: 0,
121
+ display: 'flex',
122
+ alignItems: 'center',
123
+ justifyContent: 'center',
124
+ backgroundColor: 'rgba(15, 23, 42, 0.28)',
125
+ pointerEvents: 'auto',
126
+ zIndex: 1000
127
+ };
128
+ const MODAL_STYLE = {
129
+ width: 'min(640px, calc(100vw - 24px))',
130
+ maxHeight: 'min(520px, calc(100vh - 24px))',
131
+ borderRadius: '14px',
132
+ border: '1px solid rgba(148, 163, 184, 0.75)',
133
+ backgroundColor: 'rgba(255, 255, 255, 0.98)',
134
+ boxShadow: '0 14px 40px rgba(15, 23, 42, 0.28)',
135
+ display: 'flex',
136
+ flexDirection: 'column',
137
+ overflow: 'hidden'
138
+ };
139
+ const KEY_STYLE = {
140
+ borderRadius: '6px',
141
+ border: '1px solid rgba(148, 163, 184, 0.85)',
142
+ backgroundColor: 'rgba(248, 250, 252, 1)',
143
+ padding: '2px 8px',
144
+ fontSize: '11px',
145
+ color: 'var(--button-text, #0f172a)',
146
+ whiteSpace: 'nowrap'
147
+ };
148
+ const ICON_COLOR = 'var(--button-icon-idle, var(--button-text, currentColor))';
149
+ const SHORTCUT_BADGE_STYLE = {
150
+ display: 'inline-flex',
151
+ alignItems: 'center',
152
+ borderRadius: '999px',
153
+ border: '1px solid rgba(148, 163, 184, 0.75)',
154
+ backgroundColor: 'rgba(248, 250, 252, 1)',
155
+ padding: '1px 6px',
156
+ fontSize: '10px',
157
+ lineHeight: '12px',
158
+ color: 'rgb(71, 85, 105)',
159
+ whiteSpace: 'nowrap'
160
+ };
161
+ const SHORTCUT_ROW_STYLE = {
162
+ display: 'grid',
163
+ gridTemplateColumns: 'minmax(104px, 148px) minmax(0, 1fr) auto',
164
+ gap: '10px 14px',
165
+ alignItems: 'start',
166
+ padding: '10px 0',
167
+ borderBottom: '1px solid rgba(226, 232, 240, 0.8)'
168
+ };
169
+ const SHORTCUT_KEYS_STYLE = {
170
+ display: 'flex',
171
+ alignItems: 'flex-start',
172
+ flexWrap: 'wrap',
173
+ gap: '10px',
174
+ minWidth: 0
175
+ };
176
+ const SHORTCUT_DESCRIPTION_STYLE = {
177
+ fontSize: '13px',
178
+ lineHeight: '18px',
179
+ fontWeight: 500,
180
+ color: 'rgb(71, 85, 105)',
181
+ textAlign: 'left',
182
+ minWidth: 0,
183
+ width: '100%'
184
+ };
185
+ const SHORTCUT_BADGES_STYLE = {
186
+ display: 'flex',
187
+ alignItems: 'flex-start',
188
+ gap: '6px',
189
+ flexWrap: 'wrap',
190
+ justifySelf: 'end'
191
+ };
192
+ const SHORTCUT_CHORD_STYLE = {
193
+ display: 'inline-flex',
194
+ alignItems: 'center',
195
+ gap: '2px',
196
+ color: 'rgb(51, 65, 85)',
197
+ fontSize: '11px',
198
+ whiteSpace: 'nowrap'
199
+ };
200
+ function KeyboardShortcutsWidgetView({ isOpen, keyboardShortcuts, onClose, onOpen }) {
201
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "deck-widget-button", children: _jsx("button", { className: "deck-widget-icon-button", style: { color: 'var(--button-text, currentColor)' }, type: "button", title: "Keyboard shortcuts", "aria-label": "Keyboard shortcuts", onClick: onOpen, children: _jsx("span", { style: {
202
+ fontSize: '12px',
203
+ fontWeight: 700,
204
+ color: ICON_COLOR
205
+ }, children: _jsx("kbd", { style: {
206
+ color: ICON_COLOR
207
+ }, children: "?" }) }) }) }), isOpen && (_jsx("div", { style: MODAL_BACKDROP_STYLE, onClick: onClose, children: _jsxs("div", { style: MODAL_STYLE, role: "dialog", "aria-label": "Keyboard Shortcuts", onClick: (event) => event.stopPropagation(), children: [_jsxs("div", { style: {
208
+ display: 'flex',
209
+ alignItems: 'center',
210
+ justifyContent: 'space-between',
211
+ borderBottom: '1px solid rgba(226, 232, 240, 1)',
212
+ padding: '10px 12px'
213
+ }, children: [_jsx("div", { style: { fontSize: '14px', fontWeight: 700, color: 'rgb(30, 41, 59)' }, children: "Keyboard Shortcuts" }), _jsx("button", { type: "button", onClick: onClose, style: {
214
+ border: 0,
215
+ background: 'transparent',
216
+ color: 'rgb(71, 85, 105)',
217
+ cursor: 'pointer',
218
+ fontSize: '18px',
219
+ lineHeight: '18px'
220
+ }, "aria-label": "Close keyboard shortcuts", title: "Close", children: "\u00D7" })] }), _jsx(KeyboardSettingsPanelContent, { keyboardShortcuts: keyboardShortcuts })] }) }))] }));
221
+ }
222
+ function KeyboardSettingsPanelContent({ keyboardShortcuts }) {
223
+ const shortcutRows = buildKeyboardShortcutRows(keyboardShortcuts);
224
+ return (_jsx("div", { style: { overflowY: 'auto', padding: '10px 12px', flex: 1, minHeight: 0 }, children: _jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: shortcutRows.map((row) => (_jsxs("div", { style: SHORTCUT_ROW_STYLE, children: [_jsx("div", { "data-shortcut-row-kind": row.shortcuts.length === 2 ? 'pair' : 'single', style: SHORTCUT_KEYS_STYLE, children: row.shortcuts.map((shortcut, index) => (_jsx("div", { style: { display: 'inline-flex', alignItems: 'center' }, children: _jsx("div", { "data-shortcut-key-group": "true", children: _jsx(ShortcutKey, { shortcut: shortcut }) }, `${row.key}-${index}`) }, `${row.key}-${index}`))) }), _jsx("span", { "data-shortcut-description": "true", style: SHORTCUT_DESCRIPTION_STYLE, children: row.description }), row.badges.length > 0 ? (_jsx("span", { "data-shortcut-badges": "true", style: SHORTCUT_BADGES_STYLE, children: row.badges.map((badge) => (_jsx("span", { style: SHORTCUT_BADGE_STYLE, children: badge }, `${row.key}-${badge}`))) })) : null] }, row.key))) }) }));
225
+ }
226
+ function ShortcutKey({ shortcut }) {
227
+ const parts = [];
228
+ if (shortcut.commandKey) {
229
+ parts.push(_jsx("kbd", { style: KEY_STYLE, children: "\u2318" }, "command"));
230
+ }
231
+ if (shortcut.ctrlKey) {
232
+ parts.push(_jsx("kbd", { style: KEY_STYLE, children: "^" }, "ctrl"));
233
+ }
234
+ if (shortcut.shiftKey) {
235
+ parts.push(_jsx("kbd", { style: KEY_STYLE, children: "Shift" }, "shift"));
236
+ }
237
+ if (shortcut.key) {
238
+ parts.push(_jsx("kbd", { style: KEY_STYLE, children: formatKey(shortcut.key) }, "key"));
239
+ }
240
+ if (shortcut.dragMouse) {
241
+ parts.push(_jsx("span", { style: { whiteSpace: 'nowrap' }, children: "drag mouse" }, "drag"));
242
+ }
243
+ return (_jsx("div", { style: SHORTCUT_CHORD_STYLE, children: parts.map((part, index) => (_jsx("span", { style: { display: 'inline-flex', alignItems: 'center' }, children: part }, `shortcut-part-${index}`))) }));
244
+ }
245
+ function buildKeyboardShortcutRows(shortcuts) {
246
+ const rows = [];
247
+ for (let index = 0; index < shortcuts.length; index += 1) {
248
+ const shortcut = shortcuts[index];
249
+ const nextShortcut = shortcuts[index + 1];
250
+ const shortcutDisplayPair = shortcut?.displayPair;
251
+ if (shortcut &&
252
+ shortcutDisplayPair &&
253
+ nextShortcut &&
254
+ canPairShortcuts(shortcut, nextShortcut)) {
255
+ rows.push({
256
+ badges: mergeShortcutBadges(shortcut, nextShortcut),
257
+ description: shortcutDisplayPair.description,
258
+ key: `${shortcutDisplayPair.id}-${index}`,
259
+ shortcuts: [shortcut, nextShortcut]
260
+ });
261
+ index += 1;
262
+ }
263
+ else if (shortcut) {
264
+ rows.push({
265
+ badges: [...(shortcut.badges ?? [])],
266
+ description: shortcut.description,
267
+ key: `${shortcut.name}-${shortcut.key}-${index}`,
268
+ shortcuts: [shortcut]
269
+ });
270
+ }
271
+ }
272
+ return rows;
273
+ }
274
+ function canPairShortcuts(shortcut, nextShortcut) {
275
+ if (!nextShortcut) {
276
+ return false;
277
+ }
278
+ const shortcutPair = shortcut.displayPair;
279
+ const nextShortcutPair = nextShortcut.displayPair;
280
+ if (!shortcutPair || !nextShortcutPair) {
281
+ return false;
282
+ }
283
+ return (shortcutPair.position === 'primary' &&
284
+ nextShortcutPair.position === 'secondary' &&
285
+ shortcutPair.id === nextShortcutPair.id &&
286
+ shortcutPair.description === nextShortcutPair.description);
287
+ }
288
+ function mergeShortcutBadges(...shortcuts) {
289
+ const seenBadges = new Set();
290
+ const mergedBadges = [];
291
+ for (const shortcut of shortcuts) {
292
+ for (const badge of shortcut.badges ?? []) {
293
+ if (!seenBadges.has(badge)) {
294
+ seenBadges.add(badge);
295
+ mergedBadges.push(badge);
296
+ }
297
+ }
298
+ }
299
+ return mergedBadges;
300
+ }
301
+ //# sourceMappingURL=keyboard-shortcuts-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-shortcuts-widget.js","sourceRoot":"","sources":["../../src/widget-panels/keyboard-shortcuts-widget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /** @jsxImportSource preact */
2
+ import { Widget } from '@deck.gl/core';
3
+ import type { WidgetContainer, WidgetPanel } from "./widget-containers.js";
4
+ import type { WidgetPlacement, WidgetProps } from '@deck.gl/core';
5
+ /** Trigger and panel configuration for a modal-style widget. */
6
+ export type ModalWidgetProps = WidgetProps & {
7
+ /** Trigger icon alias for legacy compatibility. */
8
+ icon?: string;
9
+ /** The content container to show when the modal is open. */
10
+ container?: WidgetContainer;
11
+ /** Optional shorthand panel. When supplied, shown directly in the modal body. */
12
+ panel?: WidgetPanel;
13
+ /** Button and panel placement anchor. */
14
+ placement?: WidgetPlacement;
15
+ /** Optional modal title shown in the header. */
16
+ title?: string;
17
+ /** Optional trigger button label visible in the UI. */
18
+ triggerLabel?: string;
19
+ /** Optional trigger icon. Defaults to a menu-like glyph. */
20
+ triggerIcon?: string;
21
+ /**
22
+ * Hides the trigger. Useful when trigger is implemented externally.
23
+ */
24
+ hideTrigger?: boolean;
25
+ /**
26
+ * Whether to render the built-in trigger button.
27
+ * If false, no built-in trigger is rendered.
28
+ */
29
+ button?: boolean;
30
+ /**
31
+ * Uncontrolled default open state.
32
+ */
33
+ defaultOpen?: boolean;
34
+ /**
35
+ * Controlled open state. If supplied, callers own open/closed state.
36
+ */
37
+ open?: boolean;
38
+ /**
39
+ * Called when user intent changes open/closed state.
40
+ */
41
+ onOpenChange?: (open: boolean) => void;
42
+ };
43
+ /**
44
+ * A reusable deck widget that renders a trigger + modal panel assembled from widget containers.
45
+ */
46
+ export declare class ModalWidget extends Widget<ModalWidgetProps> {
47
+ #private;
48
+ static defaultProps: Required<ModalWidgetProps>;
49
+ className: string;
50
+ placement: WidgetPlacement;
51
+ triggerLabel: string;
52
+ triggerIcon: string;
53
+ hideTrigger: boolean;
54
+ title: string;
55
+ isOpen: boolean;
56
+ constructor(props?: Partial<ModalWidgetProps>);
57
+ setProps(props: Partial<ModalWidgetProps>): void;
58
+ onAdd(): void;
59
+ onRemove(): void;
60
+ onRenderHTML(rootElement: HTMLElement): void;
61
+ }
62
+ //# sourceMappingURL=modal-widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-widget.d.ts","sourceRoot":"","sources":["../../src/widget-panels/modal-widget.tsx"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAMrC,OAAO,KAAK,EAAC,eAAe,EAAE,WAAW,EAAC,+BAA4B;AACtE,OAAO,KAAK,EAAC,eAAe,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAGhE,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,iFAAiF;IACjF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,yCAAyC;IACzC,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CAAC;AA8HF;;GAEG;AACH,qBAAa,WAAY,SAAQ,MAAM,CAAC,gBAAgB,CAAC;;IACvD,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAwB7C;IAEF,SAAS,SAAsB;IAC/B,SAAS,EAAE,eAAe,CAAsC;IAChE,YAAY,EAAE,MAAM,CAAyC;IAC7D,WAAW,EAAE,MAAM,CAAwC;IAC3D,WAAW,UAAwC;IACnD,KAAK,SAAkC;IACvC,MAAM,UAAS;gBAUH,KAAK,GAAE,OAAO,CAAC,gBAAgB,CAAM;IAUjD,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQhD,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI,IAAI;IAQhB,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;CAgJ7C"}