@heyramzi/ui 2.11.0 → 2.11.2

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 (267) hide show
  1. package/dist/agents/helpers.js +38 -38
  2. package/dist/agents/page-state.js +49 -50
  3. package/dist/agents/vendor/color.js +146 -127
  4. package/dist/agents/vendor/draw.js +617 -508
  5. package/dist/agents/vendor/engine.js +698 -599
  6. package/dist/agents/vendor/mesh.js +653 -683
  7. package/dist/agents/vendor/plastic.js +3913 -3112
  8. package/dist/agents/vendor/presets.js +163 -164
  9. package/dist/agents/vendor/shapes.js +21 -20
  10. package/dist/agents/vendor/ticker.js +41 -42
  11. package/dist/agents/vendor/types.js +1 -0
  12. package/dist/agents/vendor/wear.js +1421 -1448
  13. package/dist/ai/confirmation/confirmation-context.svelte.js +6 -6
  14. package/dist/ai/confirmation/index.js +3 -1
  15. package/dist/ai/index.js +33 -0
  16. package/dist/ai/prompt-input/index.js +3 -1
  17. package/dist/ai/reasoning/index.js +3 -1
  18. package/dist/ai/reasoning/reasoning-context.svelte.js +6 -6
  19. package/dist/ai/suggestion/index.js +3 -1
  20. package/dist/ai/typing-dots/index.js +3 -1
  21. package/dist/animations/text-swap.js +24 -24
  22. package/dist/brand/index.js +54 -48
  23. package/dist/canvas/card/resize.js +5 -3
  24. package/dist/canvas/edges/edge-path.js +255 -242
  25. package/dist/canvas/editor/context-menu.js +39 -36
  26. package/dist/canvas/editor/dispatch.svelte.js +154 -151
  27. package/dist/canvas/editor/editor-context.js +7 -2
  28. package/dist/canvas/editor/editor-mode.js +1 -0
  29. package/dist/canvas/editor/frame.js +73 -76
  30. package/dist/canvas/editor/hand-context.js +5 -2
  31. package/dist/canvas/editor/history-core.js +163 -191
  32. package/dist/canvas/editor/keymap.js +95 -169
  33. package/dist/canvas/editor/layout-actions.js +143 -144
  34. package/dist/canvas/editor/lock.js +52 -51
  35. package/dist/canvas/editor/rebase.js +217 -240
  36. package/dist/canvas/editor/style.js +132 -137
  37. package/dist/canvas/editor/text-field-context.js +7 -2
  38. package/dist/canvas/editor/z-order.js +65 -70
  39. package/dist/canvas/headless/alignment.js +22 -16
  40. package/dist/canvas/headless/break-apart-find.js +286 -279
  41. package/dist/canvas/headless/break-apart-pieces.js +62 -58
  42. package/dist/canvas/headless/break-apart-plan.js +299 -325
  43. package/dist/canvas/headless/break-apart-style.js +75 -70
  44. package/dist/canvas/headless/break-apart.js +188 -181
  45. package/dist/canvas/headless/canvas-cleanup.js +78 -58
  46. package/dist/canvas/headless/edge-anchors.js +115 -116
  47. package/dist/canvas/headless/edge-memo.js +24 -22
  48. package/dist/canvas/headless/edge-serialization.js +17 -27
  49. package/dist/canvas/headless/figure-geometry.js +232 -264
  50. package/dist/canvas/headless/fit-viewport.js +84 -67
  51. package/dist/canvas/headless/grid.js +88 -86
  52. package/dist/canvas/headless/icon-node.js +44 -36
  53. package/dist/canvas/headless/index.js +1 -0
  54. package/dist/canvas/headless/linkify.js +17 -19
  55. package/dist/canvas/headless/pen-marks.js +101 -95
  56. package/dist/canvas/headless/sketch.js +231 -209
  57. package/dist/canvas/headless/snap-guides.js +99 -83
  58. package/dist/canvas/headless/svg-figure.js +133 -117
  59. package/dist/canvas/headless/table-layout.js +146 -107
  60. package/dist/canvas/index.js +2 -0
  61. package/dist/canvas/lod/lod-mode.svelte.js +20 -18
  62. package/dist/canvas/lod/render-all.svelte.js +36 -39
  63. package/dist/canvas/ops/arrange.js +78 -71
  64. package/dist/canvas/ops/ops.js +260 -255
  65. package/dist/canvas/pen/colors.js +37 -35
  66. package/dist/canvas/pen/eraser.js +28 -27
  67. package/dist/canvas/pen/geometry.js +120 -130
  68. package/dist/canvas/pen/index.js +1 -0
  69. package/dist/canvas/pen/ops.js +11 -11
  70. package/dist/canvas/pen/pen-session.js +150 -159
  71. package/dist/canvas/pen/plugin.js +107 -104
  72. package/dist/canvas/pen/shapes.js +73 -68
  73. package/dist/canvas/pen/stroke-path.js +32 -30
  74. package/dist/canvas/pen/types.js +21 -21
  75. package/dist/canvas/pen/ui.js +10 -8
  76. package/dist/canvas/plugin.js +46 -46
  77. package/dist/canvas/screen/glyphs.js +12 -11
  78. package/dist/canvas/screen/labels.js +22 -22
  79. package/dist/canvas/screen/parts.js +98 -111
  80. package/dist/canvas/screen/plugin.js +47 -56
  81. package/dist/canvas/screen/types.js +30 -35
  82. package/dist/canvas/screen/ui.js +7 -7
  83. package/dist/canvas/test-utils.js +14 -14
  84. package/dist/canvas/types.js +1 -0
  85. package/dist/canvas/ui/forward-wheel.js +24 -25
  86. package/dist/canvas/ui/icons.js +64 -131
  87. package/dist/canvas/ui/place-panel.js +58 -49
  88. package/dist/canvas/ui/shortcut-tip.js +14 -12
  89. package/dist/canvas/ui/tools.js +300 -385
  90. package/dist/charts/dashboard/chart.js +4 -0
  91. package/dist/charts/dashboard/data-table.js +11 -0
  92. package/dist/charts/dashboard/windows.js +8 -3
  93. package/dist/charts/edge-fade.js +10 -5
  94. package/dist/charts/hover-band.js +16 -11
  95. package/dist/charts/index.js +0 -1
  96. package/dist/charts/motion.js +11 -7
  97. package/dist/charts/primitives/chart-utils.js +12 -12
  98. package/dist/components/copy/clipboard.js +32 -32
  99. package/dist/components/copy/copied.svelte.js +31 -23
  100. package/dist/components/data-table/data-table.js +39 -39
  101. package/dist/components/docs/index.js +4 -0
  102. package/dist/components/docs/scroll-spy.svelte.js +73 -68
  103. package/dist/components/list-page/filter-section.js +4 -1
  104. package/dist/components/list-page/index.js +2 -0
  105. package/dist/components/list-page/list-table.js +7 -2
  106. package/dist/components/list-page/queue-rail.js +14 -0
  107. package/dist/components/list-page/section-host.js +4 -2
  108. package/dist/components/list-page/step.js +4 -3
  109. package/dist/components/list-page/types.js +1 -0
  110. package/dist/components/picker/trigger.js +48 -30
  111. package/dist/components/picker/types.js +1 -0
  112. package/dist/components/segmented/collapse.js +38 -27
  113. package/dist/components/segmented/index.js +8 -0
  114. package/dist/components/segmented/segmented.js +67 -42
  115. package/dist/components/star-rating-input/index.js +3 -1
  116. package/dist/components/table-view/types.js +1 -0
  117. package/dist/components/tags-input/tags.js +81 -69
  118. package/dist/components/theme/index.js +4 -0
  119. package/dist/components/toolbar/index.js +4 -0
  120. package/dist/components/toolbar/toolbar-trigger.js +14 -1
  121. package/dist/editor/anchors.js +17 -13
  122. package/dist/editor/block-id.js +52 -51
  123. package/dist/editor/block-ops.js +108 -80
  124. package/dist/editor/doc-blocks.js +155 -166
  125. package/dist/editor/extensions.js +139 -180
  126. package/dist/editor/index.js +4 -0
  127. package/dist/editor/markdown-test-helpers.js +4 -2
  128. package/dist/editor/markdown.js +420 -408
  129. package/dist/editor/serializer.js +204 -200
  130. package/dist/editor/slash-items.js +89 -101
  131. package/dist/editor/youtube-url.js +25 -20
  132. package/dist/effects/animated-beam/path-calculator.svelte.js +43 -38
  133. package/dist/effects/animated-beam/types.js +1 -0
  134. package/dist/effects/border-beam/css.js +92 -78
  135. package/dist/effects/border-beam/presets.js +1705 -1720
  136. package/dist/effects/border-beam/register-properties.js +43 -33
  137. package/dist/effects/border-beam/types.js +1 -0
  138. package/dist/effects/image-comparison/compare.js +3 -2
  139. package/dist/effects/image-reveal/types.js +1 -0
  140. package/dist/effects/magnetic/magnetic.js +58 -52
  141. package/dist/effects/reveal/observe.js +50 -40
  142. package/dist/effects/reveal/types.js +1 -0
  143. package/dist/effects/shader-gradient/color.js +36 -29
  144. package/dist/effects/shader-gradient/renderer.js +384 -295
  145. package/dist/effects/shader-gradient/shaders.js +31 -0
  146. package/dist/effects/shader-gradient/types.js +1 -0
  147. package/dist/icons/apple-symbol-exports.js +99 -124
  148. package/dist/icons/sf-symbols.js +357 -461
  149. package/dist/icons/trades.js +43 -28
  150. package/dist/inbox/index.js +1 -0
  151. package/dist/inbox/logic.js +126 -122
  152. package/dist/inbox/types.js +43 -43
  153. package/dist/lib/arrive.js +19 -12
  154. package/dist/lib/icon-types.js +1 -0
  155. package/dist/lib/initials.js +16 -10
  156. package/dist/lib/layout.js +5 -0
  157. package/dist/lib/panel.js +13 -0
  158. package/dist/lib/result.js +22 -22
  159. package/dist/lib/sliding-pill.js +59 -44
  160. package/dist/lib/theme-transition.js +43 -43
  161. package/dist/lib/tone.js +31 -24
  162. package/dist/lib/utils.js +3 -1
  163. package/dist/onboarding/define-tours.js +24 -23
  164. package/dist/onboarding/onboarding.svelte.js +16 -12
  165. package/dist/onboarding/pick.js +10 -6
  166. package/dist/onboarding/stores.js +40 -41
  167. package/dist/onboarding/wait.js +24 -23
  168. package/dist/panel/side-panel-types.js +1 -0
  169. package/dist/record/demo-data.js +459 -486
  170. package/dist/record/fields.js +129 -131
  171. package/dist/record/format.js +70 -82
  172. package/dist/record/gutter.js +1 -0
  173. package/dist/record/kinds.js +95 -105
  174. package/dist/record/logic.js +238 -219
  175. package/dist/record/types.js +49 -48
  176. package/dist/shadcn/accordion/index.js +3 -1
  177. package/dist/shadcn/alert/index.js +3 -1
  178. package/dist/shadcn/alert-dialog/index.js +3 -1
  179. package/dist/shadcn/attachment/index.js +3 -1
  180. package/dist/shadcn/avatar/index.js +3 -1
  181. package/dist/shadcn/breadcrumb/index.js +3 -1
  182. package/dist/shadcn/bubble/index.js +3 -1
  183. package/dist/shadcn/button/index.js +3 -1
  184. package/dist/shadcn/calendar/index.js +3 -1
  185. package/dist/shadcn/card/index.js +3 -1
  186. package/dist/shadcn/checkbox/index.js +3 -1
  187. package/dist/shadcn/code-block/index.js +3 -1
  188. package/dist/shadcn/collapsible/index.js +3 -1
  189. package/dist/shadcn/command/index.js +4 -1
  190. package/dist/shadcn/context-menu/index.js +3 -1
  191. package/dist/shadcn/dialog/index.js +3 -1
  192. package/dist/shadcn/dropdown-menu/menu-item.js +40 -20
  193. package/dist/shadcn/empty/index.js +3 -1
  194. package/dist/shadcn/field/index.js +3 -1
  195. package/dist/shadcn/hooks/highlighter.js +77 -75
  196. package/dist/shadcn/hooks/is-mobile.svelte.js +3 -3
  197. package/dist/shadcn/hooks/use-highlighted-code.svelte.js +62 -62
  198. package/dist/shadcn/input/index.js +3 -1
  199. package/dist/shadcn/kbd/index.js +3 -1
  200. package/dist/shadcn/label/index.js +3 -1
  201. package/dist/shadcn/marker/index.js +3 -1
  202. package/dist/shadcn/message/index.js +3 -1
  203. package/dist/shadcn/message-scroller/index.js +3 -1
  204. package/dist/shadcn/popover/index.js +3 -1
  205. package/dist/shadcn/progress/index.js +3 -1
  206. package/dist/shadcn/progress/tone.js +8 -7
  207. package/dist/shadcn/radio-group/index.js +3 -1
  208. package/dist/shadcn/scroll-area/index.js +3 -1
  209. package/dist/shadcn/select/index.js +3 -1
  210. package/dist/shadcn/separator/index.js +3 -1
  211. package/dist/shadcn/sheet/index.js +3 -1
  212. package/dist/shadcn/sidebar/context.svelte.js +42 -28
  213. package/dist/shadcn/sidebar/index.js +3 -1
  214. package/dist/shadcn/skeleton/index.js +3 -1
  215. package/dist/shadcn/slider/index.js +3 -1
  216. package/dist/shadcn/switch/index.js +3 -1
  217. package/dist/shadcn/table/index.js +3 -1
  218. package/dist/shadcn/tabs/index.js +3 -1
  219. package/dist/shadcn/textarea/index.js +3 -1
  220. package/dist/shadcn/toggle/index.js +3 -1
  221. package/dist/shadcn/toggle-group/index.js +3 -1
  222. package/dist/shadcn/tooltip/context.js +7 -2
  223. package/dist/shadcn/tooltip/index.js +3 -1
  224. package/dist/shadcn/trace/index.js +3 -1
  225. package/dist/slides/bridges.js +65 -59
  226. package/dist/slides/deck-controller.svelte.js +210 -207
  227. package/dist/slides/export/capture.js +66 -71
  228. package/dist/slides/export/ffmpeg.js +76 -72
  229. package/dist/slides/export/index.js +3 -0
  230. package/dist/slides/export/launch.js +9 -6
  231. package/dist/slides/export/pdf.js +60 -54
  232. package/dist/slides/export/types.js +1 -0
  233. package/dist/slides/labels.js +24 -24
  234. package/dist/slides/layout.js +39 -41
  235. package/dist/slides/model.js +9 -7
  236. package/dist/slides/navigation.js +78 -73
  237. package/dist/slides/types.js +2 -2
  238. package/dist/status/define-statuses.js +18 -14
  239. package/dist/status/status-types.js +1 -0
  240. package/dist/test-setup.js +24 -20
  241. package/dist/thread/logic.js +73 -77
  242. package/dist/thread/types.js +21 -21
  243. package/dist/work/board-order.js +94 -90
  244. package/dist/work/dates.js +16 -9
  245. package/dist/work/detail/detail-types.js +18 -18
  246. package/dist/work/docs/edited.js +32 -29
  247. package/dist/work/docs/index.js +4 -0
  248. package/dist/work/docs/labels.js +34 -34
  249. package/dist/work/docs/menu.js +113 -106
  250. package/dist/work/docs/outline.js +39 -29
  251. package/dist/work/gantt/logic.js +211 -235
  252. package/dist/work/inbox/inbox-logic.js +71 -75
  253. package/dist/work/inbox/inbox-statuses.js +75 -72
  254. package/dist/work/inbox/inbox-types.js +1 -0
  255. package/dist/work/kanban-drag.js +27 -22
  256. package/dist/work/kanban-types.js +1 -0
  257. package/dist/work/presets/sales.js +36 -32
  258. package/dist/work/reorder.js +9 -8
  259. package/dist/work/task-types.js +1 -0
  260. package/dist/work/time/duration.js +51 -46
  261. package/dist/work/time/time-types.js +23 -23
  262. package/dist/work/use-kanban-dnd.svelte.js +126 -125
  263. package/package.json +3 -1
  264. package/src/components/list-page/master-detail.svelte +3 -1
  265. package/src/components/list-page/rail-row.svelte +4 -4
  266. package/src/components/tags-input/tags-input.svelte +2 -0
  267. package/src/editor/markdown.ts +30 -35
@@ -1,411 +1,326 @@
1
+ // The tool bar's tools, their keys and the shortcut list the help panel renders.
2
+ // Pure data and two lookups, so the keyboard, the bar and the panel can't disagree.
1
3
  import { PEN_DEFAULTS } from "../pen/types.js";
4
+ /** Every tool with its single-letter key. Shapes share one bar button but keep a key each. */
2
5
  export const TOOLS = [
3
- {
4
- id: "select",
5
- key: "V"
6
- },
7
- {
8
- id: "hand",
9
- key: "H"
10
- },
11
- {
12
- id: "connect",
13
- key: "L"
14
- },
15
- {
16
- id: "pen",
17
- key: "P"
18
- },
19
- {
20
- id: "highlighter",
21
- key: "M"
22
- },
23
- {
24
- id: "eraser",
25
- key: "E"
26
- },
27
- {
28
- id: "text",
29
- key: "T"
30
- },
31
- {
32
- id: "rectangle",
33
- key: "R"
34
- },
35
- {
36
- id: "ellipse",
37
- key: "O"
38
- },
39
- {
40
- id: "diamond",
41
- key: "D"
42
- },
43
- {
44
- id: "frame",
45
- key: "F"
46
- }
6
+ {
7
+ id: "select",
8
+ key: "V"
9
+ },
10
+ {
11
+ id: "hand",
12
+ key: "H"
13
+ },
14
+ {
15
+ id: "connect",
16
+ key: "L"
17
+ },
18
+ {
19
+ id: "pen",
20
+ key: "P"
21
+ },
22
+ {
23
+ id: "highlighter",
24
+ key: "M"
25
+ },
26
+ {
27
+ id: "eraser",
28
+ key: "E"
29
+ },
30
+ {
31
+ id: "text",
32
+ key: "T"
33
+ },
34
+ {
35
+ id: "rectangle",
36
+ key: "R"
37
+ },
38
+ {
39
+ id: "ellipse",
40
+ key: "O"
41
+ },
42
+ {
43
+ id: "diamond",
44
+ key: "D"
45
+ },
46
+ {
47
+ id: "frame",
48
+ key: "F"
49
+ }
47
50
  ];
48
- const TOOL_BY_KEY = new Map(TOOLS.map((tool)=>[
49
- tool.key.toLowerCase(),
50
- tool.id
51
- ]));
51
+ const TOOL_BY_KEY = new Map(TOOLS.map((tool) => [tool.key.toLowerCase(), tool.id]));
52
+ /** The tool a bare letter selects. Callers rule out modifiers and typing targets first. */
52
53
  export function toolForKey(key) {
53
- return TOOL_BY_KEY.get(key.toLowerCase()) ?? null;
54
+ return TOOL_BY_KEY.get(key.toLowerCase()) ?? null;
54
55
  }
55
56
  export function keyForTool(tool) {
56
- return TOOLS.find((entry)=>entry.id === tool)?.key ?? "";
57
+ return TOOLS.find((entry) => entry.id === tool)?.key ?? "";
57
58
  }
59
+ /** True for every tool the pen overlay handles. Select, hand and connect leave the pointer to xyflow, and frame has its own layer. */
58
60
  export function isDrawingTool(tool) {
59
- return tool !== "select" && tool !== "hand" && tool !== "connect" && tool !== "frame";
61
+ return tool !== "select" && tool !== "hand" && tool !== "connect" && tool !== "frame";
60
62
  }
63
+ /** The frame tool drags out a box rather than a mark, so it has its own layer. */
61
64
  export function isFrameTool(tool) {
62
- return tool === "frame";
65
+ return tool === "frame";
63
66
  }
64
67
  export function isShapeTool(tool) {
65
- return tool === "rectangle" || tool === "ellipse" || tool === "diamond";
68
+ return tool === "rectangle" || tool === "ellipse" || tool === "diamond";
66
69
  }
67
70
  const BRUSH_SIZES = {
68
- pen: [
69
- 2,
70
- PEN_DEFAULTS.pen.size,
71
- 8
72
- ],
73
- highlighter: [
74
- 12,
75
- PEN_DEFAULTS.highlighter.size,
76
- 32
77
- ]
71
+ pen: [
72
+ 2,
73
+ PEN_DEFAULTS.pen.size,
74
+ 8
75
+ ],
76
+ highlighter: [
77
+ 12,
78
+ PEN_DEFAULTS.highlighter.size,
79
+ 32
80
+ ]
78
81
  };
79
82
  export const DEFAULT_BRUSH_LEVEL = 1;
83
+ /** Flow-unit width for a tool at a level. Tools with no brush return undefined and take their default. */
80
84
  export function brushSize(tool, level) {
81
- if (tool === "pen" || tool === "highlighter") return BRUSH_SIZES[tool][level];
82
- return undefined;
85
+ if (tool === "pen" || tool === "highlighter") return BRUSH_SIZES[tool][level];
86
+ return undefined;
83
87
  }
84
88
  export function hasBrush(tool) {
85
- return tool === "pen" || tool === "highlighter";
89
+ return tool === "pen" || tool === "highlighter";
86
90
  }
87
91
  export function isBrushTool(tool) {
88
- return tool === "pen" || tool === "highlighter" || tool === "eraser";
92
+ return tool === "pen" || tool === "highlighter" || tool === "eraser";
89
93
  }
94
+ /** Colour applies to every drawing tool except the eraser. */
90
95
  export function hasColor(tool) {
91
- return isDrawingTool(tool) && tool !== "eraser";
96
+ return isDrawingTool(tool) && tool !== "eraser";
92
97
  }
98
+ /** One row per key the canvas owns. The panel is built from this list and nothing else. */
93
99
  export const SHORTCUTS = [
94
- {
95
- id: "select",
96
- group: "tools",
97
- keys: [
98
- "V"
99
- ]
100
- },
101
- {
102
- id: "hand",
103
- group: "tools",
104
- keys: [
105
- "H"
106
- ]
107
- },
108
- {
109
- id: "connect",
110
- group: "tools",
111
- keys: [
112
- "L"
113
- ]
114
- },
115
- {
116
- id: "pen",
117
- group: "tools",
118
- keys: [
119
- "P"
120
- ]
121
- },
122
- {
123
- id: "highlighter",
124
- group: "tools",
125
- keys: [
126
- "M"
127
- ]
128
- },
129
- {
130
- id: "eraser",
131
- group: "tools",
132
- keys: [
133
- "E"
134
- ]
135
- },
136
- {
137
- id: "text",
138
- group: "tools",
139
- keys: [
140
- "T"
141
- ]
142
- },
143
- {
144
- id: "rectangle",
145
- group: "tools",
146
- keys: [
147
- "R"
148
- ]
149
- },
150
- {
151
- id: "ellipse",
152
- group: "tools",
153
- keys: [
154
- "O"
155
- ]
156
- },
157
- {
158
- id: "diamond",
159
- group: "tools",
160
- keys: [
161
- "D"
162
- ]
163
- },
164
- {
165
- id: "frame",
166
- group: "tools",
167
- keys: [
168
- "F"
169
- ]
170
- },
171
- {
172
- id: "note",
173
- group: "tools",
174
- keys: [
175
- "N"
176
- ]
177
- },
178
- {
179
- id: "cards",
180
- group: "tools",
181
- keys: [
182
- "C"
183
- ]
184
- },
185
- {
186
- id: "comment",
187
- group: "tools",
188
- keys: [
189
- "B"
190
- ]
191
- },
192
- {
193
- id: "panTemporarily",
194
- group: "tools",
195
- keys: [
196
- "Space"
197
- ]
198
- },
199
- {
200
- id: "undo",
201
- group: "edit",
202
- keys: [
203
- "mod",
204
- "Z"
205
- ]
206
- },
207
- {
208
- id: "redo",
209
- group: "edit",
210
- keys: [
211
- "mod",
212
- "shift",
213
- "Z"
214
- ]
215
- },
216
- {
217
- id: "copy",
218
- group: "edit",
219
- keys: [
220
- "mod",
221
- "C"
222
- ]
223
- },
224
- {
225
- id: "paste",
226
- group: "edit",
227
- keys: [
228
- "mod",
229
- "V"
230
- ]
231
- },
232
- {
233
- id: "selectAll",
234
- group: "edit",
235
- keys: [
236
- "mod",
237
- "A"
238
- ]
239
- },
240
- {
241
- id: "multiSelect",
242
- group: "edit",
243
- keys: [
244
- "shift",
245
- "Click"
246
- ]
247
- },
248
- {
249
- id: "duplicate",
250
- group: "edit",
251
- keys: [
252
- "mod",
253
- "D"
254
- ]
255
- },
256
- {
257
- id: "group",
258
- group: "edit",
259
- keys: [
260
- "mod",
261
- "G"
262
- ]
263
- },
264
- {
265
- id: "ungroup",
266
- group: "edit",
267
- keys: [
268
- "mod",
269
- "shift",
270
- "G"
271
- ]
272
- },
273
- {
274
- id: "bringForward",
275
- group: "edit",
276
- keys: [
277
- "]"
278
- ]
279
- },
280
- {
281
- id: "sendBackward",
282
- group: "edit",
283
- keys: [
284
- "["
285
- ]
286
- },
287
- {
288
- id: "bringToFront",
289
- group: "edit",
290
- keys: [
291
- "mod",
292
- "]"
293
- ]
294
- },
295
- {
296
- id: "sendToBack",
297
- group: "edit",
298
- keys: [
299
- "mod",
300
- "["
301
- ]
302
- },
303
- {
304
- id: "lock",
305
- group: "edit",
306
- keys: [
307
- "mod",
308
- "shift",
309
- "L"
310
- ]
311
- },
312
- {
313
- id: "copyAsPng",
314
- group: "edit",
315
- keys: [
316
- "mod",
317
- "shift",
318
- "C"
319
- ]
320
- },
321
- {
322
- id: "nudge",
323
- group: "edit",
324
- keys: [
325
- "Arrows"
326
- ]
327
- },
328
- {
329
- id: "nudgeFar",
330
- group: "edit",
331
- keys: [
332
- "shift",
333
- "Arrows"
334
- ]
335
- },
336
- {
337
- id: "delete",
338
- group: "edit",
339
- keys: [
340
- "Del"
341
- ]
342
- },
343
- {
344
- id: "save",
345
- group: "edit",
346
- keys: [
347
- "mod",
348
- "S"
349
- ]
350
- },
351
- {
352
- id: "zoomIn",
353
- group: "view",
354
- keys: [
355
- "+"
356
- ]
357
- },
358
- {
359
- id: "zoomOut",
360
- group: "view",
361
- keys: [
362
- "-"
363
- ]
364
- },
365
- {
366
- id: "zoom100",
367
- group: "view",
368
- keys: [
369
- "shift",
370
- "0"
371
- ]
372
- },
373
- {
374
- id: "zoomFit",
375
- group: "view",
376
- keys: [
377
- "shift",
378
- "1"
379
- ]
380
- },
381
- {
382
- id: "zoomSelection",
383
- group: "view",
384
- keys: [
385
- "shift",
386
- "2"
387
- ]
388
- },
389
- {
390
- id: "present",
391
- group: "view",
392
- keys: [
393
- "mod",
394
- "Enter"
395
- ]
396
- },
397
- {
398
- id: "shortcuts",
399
- group: "view",
400
- keys: [
401
- "?"
402
- ]
403
- },
404
- {
405
- id: "escape",
406
- group: "view",
407
- keys: [
408
- "Esc"
409
- ]
410
- }
100
+ {
101
+ id: "select",
102
+ group: "tools",
103
+ keys: ["V"]
104
+ },
105
+ {
106
+ id: "hand",
107
+ group: "tools",
108
+ keys: ["H"]
109
+ },
110
+ {
111
+ id: "connect",
112
+ group: "tools",
113
+ keys: ["L"]
114
+ },
115
+ {
116
+ id: "pen",
117
+ group: "tools",
118
+ keys: ["P"]
119
+ },
120
+ {
121
+ id: "highlighter",
122
+ group: "tools",
123
+ keys: ["M"]
124
+ },
125
+ {
126
+ id: "eraser",
127
+ group: "tools",
128
+ keys: ["E"]
129
+ },
130
+ {
131
+ id: "text",
132
+ group: "tools",
133
+ keys: ["T"]
134
+ },
135
+ {
136
+ id: "rectangle",
137
+ group: "tools",
138
+ keys: ["R"]
139
+ },
140
+ {
141
+ id: "ellipse",
142
+ group: "tools",
143
+ keys: ["O"]
144
+ },
145
+ {
146
+ id: "diamond",
147
+ group: "tools",
148
+ keys: ["D"]
149
+ },
150
+ {
151
+ id: "frame",
152
+ group: "tools",
153
+ keys: ["F"]
154
+ },
155
+ {
156
+ id: "note",
157
+ group: "tools",
158
+ keys: ["N"]
159
+ },
160
+ {
161
+ id: "cards",
162
+ group: "tools",
163
+ keys: ["C"]
164
+ },
165
+ {
166
+ id: "comment",
167
+ group: "tools",
168
+ keys: ["B"]
169
+ },
170
+ {
171
+ id: "panTemporarily",
172
+ group: "tools",
173
+ keys: ["Space"]
174
+ },
175
+ {
176
+ id: "undo",
177
+ group: "edit",
178
+ keys: ["mod", "Z"]
179
+ },
180
+ {
181
+ id: "redo",
182
+ group: "edit",
183
+ keys: [
184
+ "mod",
185
+ "shift",
186
+ "Z"
187
+ ]
188
+ },
189
+ {
190
+ id: "copy",
191
+ group: "edit",
192
+ keys: ["mod", "C"]
193
+ },
194
+ {
195
+ id: "paste",
196
+ group: "edit",
197
+ keys: ["mod", "V"]
198
+ },
199
+ {
200
+ id: "selectAll",
201
+ group: "edit",
202
+ keys: ["mod", "A"]
203
+ },
204
+ {
205
+ id: "multiSelect",
206
+ group: "edit",
207
+ keys: ["shift", "Click"]
208
+ },
209
+ {
210
+ id: "duplicate",
211
+ group: "edit",
212
+ keys: ["mod", "D"]
213
+ },
214
+ {
215
+ id: "group",
216
+ group: "edit",
217
+ keys: ["mod", "G"]
218
+ },
219
+ {
220
+ id: "ungroup",
221
+ group: "edit",
222
+ keys: [
223
+ "mod",
224
+ "shift",
225
+ "G"
226
+ ]
227
+ },
228
+ {
229
+ id: "bringForward",
230
+ group: "edit",
231
+ keys: ["]"]
232
+ },
233
+ {
234
+ id: "sendBackward",
235
+ group: "edit",
236
+ keys: ["["]
237
+ },
238
+ {
239
+ id: "bringToFront",
240
+ group: "edit",
241
+ keys: ["mod", "]"]
242
+ },
243
+ {
244
+ id: "sendToBack",
245
+ group: "edit",
246
+ keys: ["mod", "["]
247
+ },
248
+ {
249
+ id: "lock",
250
+ group: "edit",
251
+ keys: [
252
+ "mod",
253
+ "shift",
254
+ "L"
255
+ ]
256
+ },
257
+ {
258
+ id: "copyAsPng",
259
+ group: "edit",
260
+ keys: [
261
+ "mod",
262
+ "shift",
263
+ "C"
264
+ ]
265
+ },
266
+ {
267
+ id: "nudge",
268
+ group: "edit",
269
+ keys: ["Arrows"]
270
+ },
271
+ {
272
+ id: "nudgeFar",
273
+ group: "edit",
274
+ keys: ["shift", "Arrows"]
275
+ },
276
+ {
277
+ id: "delete",
278
+ group: "edit",
279
+ keys: ["Del"]
280
+ },
281
+ {
282
+ id: "save",
283
+ group: "edit",
284
+ keys: ["mod", "S"]
285
+ },
286
+ {
287
+ id: "zoomIn",
288
+ group: "view",
289
+ keys: ["+"]
290
+ },
291
+ {
292
+ id: "zoomOut",
293
+ group: "view",
294
+ keys: ["-"]
295
+ },
296
+ {
297
+ id: "zoom100",
298
+ group: "view",
299
+ keys: ["shift", "0"]
300
+ },
301
+ {
302
+ id: "zoomFit",
303
+ group: "view",
304
+ keys: ["shift", "1"]
305
+ },
306
+ {
307
+ id: "zoomSelection",
308
+ group: "view",
309
+ keys: ["shift", "2"]
310
+ },
311
+ {
312
+ id: "present",
313
+ group: "view",
314
+ keys: ["mod", "Enter"]
315
+ },
316
+ {
317
+ id: "shortcuts",
318
+ group: "view",
319
+ keys: ["?"]
320
+ },
321
+ {
322
+ id: "escape",
323
+ group: "view",
324
+ keys: ["Esc"]
325
+ }
411
326
  ];