{
  "version": 3,
  "sources": ["../../../../src/lib/ui/components/InputModeMenu.tsx"],
  "sourcesContent": ["import { defineMessages, useEditor, useValue } from '@tldraw/editor'\nimport { useUiEvents } from '../context/events'\nimport { ToggleInvertZoomItem } from './menu-items'\nimport { TldrawUiMenuCheckboxItem } from './primitives/menus/TldrawUiMenuCheckboxItem'\nimport { TldrawUiMenuGroup } from './primitives/menus/TldrawUiMenuGroup'\nimport { TldrawUiMenuSubmenu } from './primitives/menus/TldrawUiMenuSubmenu'\n\nconst messages = defineMessages({\n\tactionToggleAutoNone: { id: 'action.toggle-auto-none', defaultMessage: 'Auto' },\n\tactionToggleAutoPan: { id: 'action.toggle-auto-pan', defaultMessage: 'Auto (trackpad)' },\n\tactionToggleAutoZoom: { id: 'action.toggle-auto-zoom', defaultMessage: 'Auto (mouse)' },\n\tactionToggleMouse: { id: 'action.toggle-mouse', defaultMessage: 'Mouse' },\n\tactionToggleTrackpad: { id: 'action.toggle-trackpad', defaultMessage: 'Trackpad' },\n\tmenuInputDevice: { id: 'menu.input-device', defaultMessage: 'Input device' },\n})\n\nconst MODES = ['auto', 'trackpad', 'mouse'] as const\n\nconst AUTO_LABELS = {\n\tnone: messages.actionToggleAutoNone,\n\tpan: messages.actionToggleAutoPan,\n\tzoom: messages.actionToggleAutoZoom,\n}\n\n/** @public @react */\nexport function InputModeMenu() {\n\tconst editor = useEditor()\n\tconst trackEvent = useUiEvents()\n\n\tconst inputMode = useValue('inputMode', () => editor.user.getUserPreferences().inputMode, [\n\t\teditor,\n\t])\n\tconst wheelBehavior = useValue('wheelBehavior', () => editor.getCameraOptions().wheelBehavior, [\n\t\teditor,\n\t])\n\n\tconst getLabel = (mode: (typeof MODES)[number]) => {\n\t\tif (mode === 'auto') {\n\t\t\treturn AUTO_LABELS[wheelBehavior].id\n\t\t}\n\n\t\treturn mode === 'trackpad' ? messages.actionToggleTrackpad.id : messages.actionToggleMouse.id\n\t}\n\n\treturn (\n\t\t<TldrawUiMenuSubmenu id=\"help menu input-mode\" label={messages.menuInputDevice.id}>\n\t\t\t<TldrawUiMenuGroup id=\"peripheral-mode\">\n\t\t\t\t{MODES.map((mode) => {\n\t\t\t\t\tconst preference = mode === 'auto' ? null : mode\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TldrawUiMenuCheckboxItem\n\t\t\t\t\t\t\tid={`peripheral-mode-${mode}`}\n\t\t\t\t\t\t\tkey={mode}\n\t\t\t\t\t\t\tlabel={getLabel(mode)}\n\t\t\t\t\t\t\tchecked={inputMode === preference}\n\t\t\t\t\t\t\treadonlyOk\n\t\t\t\t\t\t\tonSelect={() => {\n\t\t\t\t\t\t\t\ttrackEvent('input-mode', { source: 'menu', value: mode })\n\t\t\t\t\t\t\t\teditor.user.updateUserPreferences({ inputMode: preference })\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t})}\n\t\t\t</TldrawUiMenuGroup>\n\t\t\t<TldrawUiMenuGroup id=\"invert-zoom-group\">\n\t\t\t\t<ToggleInvertZoomItem />\n\t\t\t</TldrawUiMenuGroup>\n\t\t</TldrawUiMenuSubmenu>\n\t)\n}\n"],
  "mappings": "AA6CE,SAKI,KALJ;AA7CF,SAAS,gBAAgB,WAAW,gBAAgB;AACpD,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,SAAS,gCAAgC;AACzC,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AAEpC,MAAM,WAAW,eAAe;AAAA,EAC/B,sBAAsB,EAAE,IAAI,2BAA2B,gBAAgB,OAAO;AAAA,EAC9E,qBAAqB,EAAE,IAAI,0BAA0B,gBAAgB,kBAAkB;AAAA,EACvF,sBAAsB,EAAE,IAAI,2BAA2B,gBAAgB,eAAe;AAAA,EACtF,mBAAmB,EAAE,IAAI,uBAAuB,gBAAgB,QAAQ;AAAA,EACxE,sBAAsB,EAAE,IAAI,0BAA0B,gBAAgB,WAAW;AAAA,EACjF,iBAAiB,EAAE,IAAI,qBAAqB,gBAAgB,eAAe;AAC5E,CAAC;AAED,MAAM,QAAQ,CAAC,QAAQ,YAAY,OAAO;AAE1C,MAAM,cAAc;AAAA,EACnB,MAAM,SAAS;AAAA,EACf,KAAK,SAAS;AAAA,EACd,MAAM,SAAS;AAChB;AAGO,SAAS,gBAAgB;AAC/B,QAAM,SAAS,UAAU;AACzB,QAAM,aAAa,YAAY;AAE/B,QAAM,YAAY,SAAS,aAAa,MAAM,OAAO,KAAK,mBAAmB,EAAE,WAAW;AAAA,IACzF;AAAA,EACD,CAAC;AACD,QAAM,gBAAgB,SAAS,iBAAiB,MAAM,OAAO,iBAAiB,EAAE,eAAe;AAAA,IAC9F;AAAA,EACD,CAAC;AAED,QAAM,WAAW,CAAC,SAAiC;AAClD,QAAI,SAAS,QAAQ;AACpB,aAAO,YAAY,aAAa,EAAE;AAAA,IACnC;AAEA,WAAO,SAAS,aAAa,SAAS,qBAAqB,KAAK,SAAS,kBAAkB;AAAA,EAC5F;AAEA,SACC,qBAAC,uBAAoB,IAAG,wBAAuB,OAAO,SAAS,gBAAgB,IAC9E;AAAA,wBAAC,qBAAkB,IAAG,mBACpB,gBAAM,IAAI,CAAC,SAAS;AACpB,YAAM,aAAa,SAAS,SAAS,OAAO;AAC5C,aACC;AAAA,QAAC;AAAA;AAAA,UACA,IAAI,mBAAmB,IAAI;AAAA,UAE3B,OAAO,SAAS,IAAI;AAAA,UACpB,SAAS,cAAc;AAAA,UACvB,YAAU;AAAA,UACV,UAAU,MAAM;AACf,uBAAW,cAAc,EAAE,QAAQ,QAAQ,OAAO,KAAK,CAAC;AACxD,mBAAO,KAAK,sBAAsB,EAAE,WAAW,WAAW,CAAC;AAAA,UAC5D;AAAA;AAAA,QAPK;AAAA,MAQN;AAAA,IAEF,CAAC,GACF;AAAA,IACA,oBAAC,qBAAkB,IAAG,qBACrB,8BAAC,wBAAqB,GACvB;AAAA,KACD;AAEF;",
  "names": []
}
