tldraw 4.1.0-next.542f014c3fac → 4.1.0-next.58b63dd1ac80

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 (149) hide show
  1. package/dist-cjs/index.d.ts +32 -2
  2. package/dist-cjs/index.js +4 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/canvas/TldrawCropHandles.js +1 -1
  5. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
  6. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js +1 -1
  7. package/dist-cjs/lib/defaultEmbedDefinitions.js +24 -6
  8. package/dist-cjs/lib/defaultEmbedDefinitions.js.map +2 -2
  9. package/dist-cjs/lib/defaultExternalContentHandlers.js +2 -2
  10. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  11. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +3 -0
  12. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  13. package/dist-cjs/lib/shapes/arrow/curved-arrow.js +8 -2
  14. package/dist-cjs/lib/shapes/arrow/curved-arrow.js.map +2 -2
  15. package/dist-cjs/lib/shapes/arrow/straight-arrow.js +4 -1
  16. package/dist-cjs/lib/shapes/arrow/straight-arrow.js.map +2 -2
  17. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js +14 -2
  18. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js.map +2 -2
  19. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +1 -1
  20. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +1 -1
  21. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +3 -0
  22. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  23. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js +1 -1
  24. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +1 -1
  25. package/dist-cjs/lib/shapes/shared/RichTextLabel.js +2 -2
  26. package/dist-cjs/lib/shapes/shared/RichTextLabel.js.map +2 -2
  27. package/dist-cjs/lib/shapes/shared/ShapeFill.js +1 -1
  28. package/dist-cjs/lib/shapes/text/PlainTextArea.js +1 -1
  29. package/dist-cjs/lib/shapes/text/RichTextArea.js +1 -1
  30. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +1 -1
  31. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js +1 -1
  32. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js.map +2 -2
  33. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +9 -1
  34. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
  35. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +1 -1
  36. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +2 -2
  37. package/dist-cjs/lib/ui/TldrawUi.js +2 -2
  38. package/dist-cjs/lib/ui/components/DebugMenu/DefaultDebugMenuContent.js +1 -1
  39. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialog.js +1 -1
  40. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +1 -1
  41. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +1 -1
  42. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js +1 -1
  43. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +5 -0
  44. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  45. package/dist-cjs/lib/ui/components/OfflineIndicator/OfflineIndicator.js +1 -1
  46. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenu.js +6 -2
  47. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenu.js.map +2 -2
  48. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +1 -1
  49. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +1 -1
  50. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +64 -56
  51. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  52. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js +54 -47
  53. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +3 -3
  54. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js +63 -56
  55. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js.map +2 -2
  56. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js +13 -6
  57. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js.map +2 -2
  58. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +1 -1
  59. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +1 -1
  60. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +1 -1
  61. package/dist-cjs/lib/ui/components/primitives/Button/TldrawUiButton.js +2 -2
  62. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +1 -1
  63. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js +1 -1
  64. package/dist-cjs/lib/ui/components/primitives/TldrawUiDropdownMenu.js +1 -1
  65. package/dist-cjs/lib/ui/components/primitives/TldrawUiIcon.js +1 -1
  66. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js +2 -2
  67. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +2 -2
  68. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +1 -1
  69. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +2 -2
  70. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +1 -1
  71. package/dist-cjs/lib/ui/components/primitives/layout.js +1 -1
  72. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +1 -1
  73. package/dist-cjs/lib/ui/context/actions.js +1 -1
  74. package/dist-cjs/lib/ui/context/breakpoints.js +1 -1
  75. package/dist-cjs/lib/ui/context/events.js +1 -1
  76. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +1 -1
  77. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +1 -1
  78. package/dist-cjs/lib/ui/hooks/useLocalStorageState.js +1 -1
  79. package/dist-cjs/lib/ui/hooks/useTools.js +1 -1
  80. package/dist-cjs/lib/ui/hooks/useTranslation/useTranslation.js +1 -1
  81. package/dist-cjs/lib/ui/version.js +4 -4
  82. package/dist-cjs/lib/ui/version.js.map +1 -1
  83. package/dist-cjs/lib/utils/text/richText.js +4 -4
  84. package/dist-esm/index.d.mts +32 -2
  85. package/dist-esm/index.mjs +10 -4
  86. package/dist-esm/index.mjs.map +2 -2
  87. package/dist-esm/lib/defaultEmbedDefinitions.mjs +24 -6
  88. package/dist-esm/lib/defaultEmbedDefinitions.mjs.map +2 -2
  89. package/dist-esm/lib/defaultExternalContentHandlers.mjs +2 -2
  90. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  91. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +3 -0
  92. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  93. package/dist-esm/lib/shapes/arrow/curved-arrow.mjs +8 -2
  94. package/dist-esm/lib/shapes/arrow/curved-arrow.mjs.map +2 -2
  95. package/dist-esm/lib/shapes/arrow/straight-arrow.mjs +4 -1
  96. package/dist-esm/lib/shapes/arrow/straight-arrow.mjs.map +2 -2
  97. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs +13 -1
  98. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs.map +2 -2
  99. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +3 -0
  100. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  101. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs +1 -1
  102. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs.map +2 -2
  103. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs +1 -1
  104. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs.map +2 -2
  105. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +11 -2
  106. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
  107. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +1 -1
  108. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +2 -2
  109. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +1 -1
  110. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +1 -1
  111. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +5 -0
  112. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  113. package/dist-esm/lib/ui/components/SharePanel/PeopleMenu.mjs +6 -2
  114. package/dist-esm/lib/ui/components/SharePanel/PeopleMenu.mjs.map +2 -2
  115. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +68 -57
  116. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  117. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +54 -47
  118. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +3 -3
  119. package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs +63 -56
  120. package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs.map +2 -2
  121. package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs +12 -5
  122. package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs.map +2 -2
  123. package/dist-esm/lib/ui/version.mjs +4 -4
  124. package/dist-esm/lib/ui/version.mjs.map +1 -1
  125. package/package.json +11 -11
  126. package/src/index.ts +3 -0
  127. package/src/lib/defaultEmbedDefinitions.ts +19 -0
  128. package/src/lib/defaultExternalContentHandlers.ts +2 -2
  129. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +211 -1
  130. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +3 -0
  131. package/src/lib/shapes/arrow/curved-arrow.ts +8 -2
  132. package/src/lib/shapes/arrow/straight-arrow.ts +5 -1
  133. package/src/lib/shapes/bookmark/BookmarkShapeUtil.tsx +13 -3
  134. package/src/lib/shapes/line/LineShapeUtil.tsx +3 -0
  135. package/src/lib/shapes/shared/RichTextLabel.tsx +1 -1
  136. package/src/lib/shapes/text/TextShapeTool.test.ts +74 -0
  137. package/src/lib/tools/SelectTool/childStates/Crop/children/Idle.ts +1 -1
  138. package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +13 -1
  139. package/src/lib/tools/SelectTool/childStates/Idle.ts +1 -1
  140. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +1 -1
  141. package/src/lib/ui/components/Minimap/MinimapManager.ts +6 -0
  142. package/src/lib/ui/components/SharePanel/PeopleMenu.tsx +6 -2
  143. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +60 -49
  144. package/src/lib/ui/components/StylePanel/StylePanelButtonPicker.tsx +70 -53
  145. package/src/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.tsx +105 -90
  146. package/src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx +72 -51
  147. package/src/lib/ui/version.ts +4 -4
  148. package/src/test/customSnapping.test.tsx +55 -11
  149. package/tldraw.css +7 -2
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.tsx"],
4
- "sourcesContent": ["import { SharedStyle, StyleProp, tlmenus, useEditor } from '@tldraw/editor'\nimport * as React from 'react'\nimport { StyleValuesForUi } from '../../../styles'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TldrawUiButtonIcon } from '../primitives/Button/TldrawUiButtonIcon'\nimport {\n\tTldrawUiPopover,\n\tTldrawUiPopoverContent,\n\tTldrawUiPopoverTrigger,\n} from '../primitives/TldrawUiPopover'\nimport { TldrawUiToolbar, TldrawUiToolbarButton } from '../primitives/TldrawUiToolbar'\nimport { TldrawUiMenuContextProvider } from '../primitives/menus/TldrawUiMenuContext'\nimport { useStylePanelContext } from './StylePanelContext'\n\n/** @public */\nexport interface StylePanelDoubleDropdownPickerProps<T extends string> {\n\tuiTypeA: string\n\tuiTypeB: string\n\tlabel: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\tlabelA: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\tlabelB: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\titemsA: StyleValuesForUi<T>\n\titemsB: StyleValuesForUi<T>\n\tstyleA: StyleProp<T>\n\tstyleB: StyleProp<T>\n\tvalueA: SharedStyle<T>\n\tvalueB: SharedStyle<T>\n\tonValueChange?(style: StyleProp<T>, value: T): void\n}\n\nfunction DoubleDropdownPickerInner<T extends string>(\n\tprops: StylePanelDoubleDropdownPickerProps<T>\n) {\n\tconst ctx = useStylePanelContext()\n\tconst {\n\t\tlabel,\n\t\tuiTypeA,\n\t\tuiTypeB,\n\t\tlabelA,\n\t\tlabelB,\n\t\titemsA,\n\t\titemsB,\n\t\tstyleA,\n\t\tstyleB,\n\t\tvalueA,\n\t\tvalueB,\n\t\tonValueChange = ctx.onValueChange,\n\t} = props\n\tconst editor = useEditor()\n\tconst msg = useTranslation()\n\tconst [isOpenA, setIsOpenA] = React.useState(false)\n\tconst [isOpenB, setIsOpenB] = React.useState(false)\n\n\tconst iconA = React.useMemo(\n\t\t() =>\n\t\t\titemsA.find((item) => valueA.type === 'shared' && valueA.value === item.value)?.icon ??\n\t\t\t'mixed',\n\t\t[itemsA, valueA]\n\t)\n\tconst iconB = React.useMemo(\n\t\t() =>\n\t\t\titemsB.find((item) => valueB.type === 'shared' && valueB.value === item.value)?.icon ??\n\t\t\t'mixed',\n\t\t[itemsB, valueB]\n\t)\n\n\tif (valueA === undefined && valueB === undefined) return null\n\n\tconst idA = `style panel ${uiTypeA} A`\n\tconst idB = `style panel ${uiTypeB} B`\n\treturn (\n\t\t<div className=\"tlui-style-panel__double-select-picker\">\n\t\t\t<div title={msg(label)} className=\"tlui-style-panel__double-select-picker-label\">\n\t\t\t\t{msg(label)}\n\t\t\t</div>\n\t\t\t<TldrawUiToolbar orientation=\"horizontal\" label={msg(label)}>\n\t\t\t\t<TldrawUiPopover id={idA} open={isOpenA} onOpenChange={setIsOpenA}>\n\t\t\t\t\t<TldrawUiPopoverTrigger>\n\t\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\tdata-testid={`style.${uiTypeA}`}\n\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\tmsg(labelA) +\n\t\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t\t(valueA === null || valueA.type === 'mixed'\n\t\t\t\t\t\t\t\t\t? msg('style-panel.mixed')\n\t\t\t\t\t\t\t\t\t: msg(`${uiTypeA}-style.${valueA.value}` as TLUiTranslationKey))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TldrawUiButtonIcon icon={iconA} small invertIcon />\n\t\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t\t</TldrawUiPopoverTrigger>\n\t\t\t\t\t<TldrawUiPopoverContent side=\"left\" align=\"center\" sideOffset={80} alignOffset={0}>\n\t\t\t\t\t\t<TldrawUiToolbar orientation=\"grid\" label={msg(labelA)}>\n\t\t\t\t\t\t\t<TldrawUiMenuContextProvider type=\"icons\" sourceId=\"style-panel\">\n\t\t\t\t\t\t\t\t{itemsA.map((item) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\t\t\t\t\t\tdata-testid={`style.${uiTypeA}.${item.value}`}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tonValueChange(styleA, item.value)\n\t\t\t\t\t\t\t\t\t\t\t\ttlmenus.deleteOpenMenu(idA, editor.contextId)\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsOpenA(false)\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\ttitle={`${msg(labelA)} \u2014 ${msg(`${uiTypeA}-style.${item.value}`)}`}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<TldrawUiButtonIcon icon={item.icon} invertIcon />\n\t\t\t\t\t\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</TldrawUiMenuContextProvider>\n\t\t\t\t\t\t</TldrawUiToolbar>\n\t\t\t\t\t</TldrawUiPopoverContent>\n\t\t\t\t</TldrawUiPopover>\n\t\t\t\t<TldrawUiPopover id={idB} open={isOpenB} onOpenChange={setIsOpenB}>\n\t\t\t\t\t<TldrawUiPopoverTrigger>\n\t\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\tdata-testid={`style.${uiTypeB}`}\n\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\tmsg(labelB) +\n\t\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t\t(valueB === null || valueB.type === 'mixed'\n\t\t\t\t\t\t\t\t\t? msg('style-panel.mixed')\n\t\t\t\t\t\t\t\t\t: msg(`${uiTypeB}-style.${valueB.value}` as TLUiTranslationKey))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<TldrawUiButtonIcon icon={iconB} small />\n\t\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t\t</TldrawUiPopoverTrigger>\n\t\t\t\t\t<TldrawUiPopoverContent side=\"left\" align=\"center\" sideOffset={116} alignOffset={0}>\n\t\t\t\t\t\t<TldrawUiToolbar orientation=\"grid\" label={msg(labelB)}>\n\t\t\t\t\t\t\t<TldrawUiMenuContextProvider type=\"icons\" sourceId=\"style-panel\">\n\t\t\t\t\t\t\t\t{itemsB.map((item) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\t\ttitle={`${msg(labelB)} \u2014 ${msg(`${uiTypeB}-style.${item.value}` as TLUiTranslationKey)}`}\n\t\t\t\t\t\t\t\t\t\t\tdata-testid={`style.${uiTypeB}.${item.value}`}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\t\tonValueChange(styleB, item.value)\n\t\t\t\t\t\t\t\t\t\t\t\ttlmenus.deleteOpenMenu(idB, editor.contextId)\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsOpenB(false)\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<TldrawUiButtonIcon icon={item.icon} />\n\t\t\t\t\t\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</TldrawUiMenuContextProvider>\n\t\t\t\t\t\t</TldrawUiToolbar>\n\t\t\t\t\t</TldrawUiPopoverContent>\n\t\t\t\t</TldrawUiPopover>\n\t\t\t</TldrawUiToolbar>\n\t\t</div>\n\t)\n}\n\n// need to memo like this to get generics\n/** @public @react */\nexport const StylePanelDoubleDropdownPicker = React.memo(DoubleDropdownPickerInner) as <\n\tT extends string,\n>(\n\tprops: StylePanelDoubleDropdownPickerProps<T>\n) => React.JSX.Element\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { SharedStyle, StyleProp, tlmenus, useEditor } from '@tldraw/editor'\nimport * as React from 'react'\nimport { StyleValuesForUi } from '../../../styles'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TldrawUiButtonIcon } from '../primitives/Button/TldrawUiButtonIcon'\nimport {\n\tTldrawUiPopover,\n\tTldrawUiPopoverContent,\n\tTldrawUiPopoverTrigger,\n} from '../primitives/TldrawUiPopover'\nimport { TldrawUiToolbar, TldrawUiToolbarButton } from '../primitives/TldrawUiToolbar'\nimport { TldrawUiMenuContextProvider } from '../primitives/menus/TldrawUiMenuContext'\nimport { useStylePanelContext } from './StylePanelContext'\n\n/** @public */\nexport interface StylePanelDoubleDropdownPickerProps<T extends string> {\n\tuiTypeA: string\n\tuiTypeB: string\n\tlabel: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\tlabelA: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\tlabelB: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\titemsA: StyleValuesForUi<T>\n\titemsB: StyleValuesForUi<T>\n\tstyleA: StyleProp<T>\n\tstyleB: StyleProp<T>\n\tvalueA: SharedStyle<T>\n\tvalueB: SharedStyle<T>\n\tonValueChange?(style: StyleProp<T>, value: T): void\n}\n\nfunction StylePanelDoubleDropdownPickerInner<T extends string>(\n\tprops: StylePanelDoubleDropdownPickerProps<T>\n) {\n\tconst msg = useTranslation()\n\treturn (\n\t\t<div className=\"tlui-style-panel__double-select-picker\">\n\t\t\t<div title={msg(props.label)} className=\"tlui-style-panel__double-select-picker-label\">\n\t\t\t\t{msg(props.label)}\n\t\t\t</div>\n\t\t\t<TldrawUiToolbar orientation=\"horizontal\" label={msg(props.label)}>\n\t\t\t\t<StylePanelDoubleDropdownPickerInline {...props} />\n\t\t\t</TldrawUiToolbar>\n\t\t</div>\n\t)\n}\n\nfunction StylePanelDoubleDropdownPickerInlineInner<T extends string>(\n\tprops: StylePanelDoubleDropdownPickerProps<T>\n) {\n\tconst ctx = useStylePanelContext()\n\tconst {\n\t\tuiTypeA,\n\t\tuiTypeB,\n\t\tlabelA,\n\t\tlabelB,\n\t\titemsA,\n\t\titemsB,\n\t\tstyleA,\n\t\tstyleB,\n\t\tvalueA,\n\t\tvalueB,\n\t\tonValueChange = ctx.onValueChange,\n\t} = props\n\tconst editor = useEditor()\n\tconst msg = useTranslation()\n\tconst [isOpenA, setIsOpenA] = React.useState(false)\n\tconst [isOpenB, setIsOpenB] = React.useState(false)\n\n\tconst iconA = React.useMemo(\n\t\t() =>\n\t\t\titemsA.find((item) => valueA.type === 'shared' && valueA.value === item.value)?.icon ??\n\t\t\t'mixed',\n\t\t[itemsA, valueA]\n\t)\n\tconst iconB = React.useMemo(\n\t\t() =>\n\t\t\titemsB.find((item) => valueB.type === 'shared' && valueB.value === item.value)?.icon ??\n\t\t\t'mixed',\n\t\t[itemsB, valueB]\n\t)\n\n\tif (valueA === undefined && valueB === undefined) return null\n\n\tconst idA = `style panel ${uiTypeA} A`\n\tconst idB = `style panel ${uiTypeB} B`\n\treturn (\n\t\t<>\n\t\t\t<TldrawUiPopover id={idA} open={isOpenA} onOpenChange={setIsOpenA}>\n\t\t\t\t<TldrawUiPopoverTrigger>\n\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\tdata-testid={`style.${uiTypeA}`}\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tmsg(labelA) +\n\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t(valueA === null || valueA.type === 'mixed'\n\t\t\t\t\t\t\t\t? msg('style-panel.mixed')\n\t\t\t\t\t\t\t\t: msg(`${uiTypeA}-style.${valueA.value}` as TLUiTranslationKey))\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TldrawUiButtonIcon icon={iconA} small invertIcon />\n\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t</TldrawUiPopoverTrigger>\n\t\t\t\t<TldrawUiPopoverContent side=\"left\" align=\"center\" sideOffset={80} alignOffset={0}>\n\t\t\t\t\t<TldrawUiToolbar orientation=\"grid\" label={msg(labelA)}>\n\t\t\t\t\t\t<TldrawUiMenuContextProvider type=\"icons\" sourceId=\"style-panel\">\n\t\t\t\t\t\t\t{itemsA.map((item) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\t\t\t\t\tdata-testid={`style.${uiTypeA}.${item.value}`}\n\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\tonValueChange(styleA, item.value)\n\t\t\t\t\t\t\t\t\t\t\ttlmenus.deleteOpenMenu(idA, editor.contextId)\n\t\t\t\t\t\t\t\t\t\t\tsetIsOpenA(false)\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\ttitle={`${msg(labelA)} \u2014 ${msg(`${uiTypeA}-style.${item.value}`)}`}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<TldrawUiButtonIcon icon={item.icon} invertIcon />\n\t\t\t\t\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</TldrawUiMenuContextProvider>\n\t\t\t\t\t</TldrawUiToolbar>\n\t\t\t\t</TldrawUiPopoverContent>\n\t\t\t</TldrawUiPopover>\n\t\t\t<TldrawUiPopover id={idB} open={isOpenB} onOpenChange={setIsOpenB}>\n\t\t\t\t<TldrawUiPopoverTrigger>\n\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\tdata-testid={`style.${uiTypeB}`}\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tmsg(labelB) +\n\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t(valueB === null || valueB.type === 'mixed'\n\t\t\t\t\t\t\t\t? msg('style-panel.mixed')\n\t\t\t\t\t\t\t\t: msg(`${uiTypeB}-style.${valueB.value}` as TLUiTranslationKey))\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TldrawUiButtonIcon icon={iconB} small />\n\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t</TldrawUiPopoverTrigger>\n\t\t\t\t<TldrawUiPopoverContent side=\"left\" align=\"center\" sideOffset={116} alignOffset={0}>\n\t\t\t\t\t<TldrawUiToolbar orientation=\"grid\" label={msg(labelB)}>\n\t\t\t\t\t\t<TldrawUiMenuContextProvider type=\"icons\" sourceId=\"style-panel\">\n\t\t\t\t\t\t\t{itemsB.map((item) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\ttitle={`${msg(labelB)} \u2014 ${msg(`${uiTypeB}-style.${item.value}` as TLUiTranslationKey)}`}\n\t\t\t\t\t\t\t\t\t\tdata-testid={`style.${uiTypeB}.${item.value}`}\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\tonValueChange(styleB, item.value)\n\t\t\t\t\t\t\t\t\t\t\ttlmenus.deleteOpenMenu(idB, editor.contextId)\n\t\t\t\t\t\t\t\t\t\t\tsetIsOpenB(false)\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<TldrawUiButtonIcon icon={item.icon} />\n\t\t\t\t\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</TldrawUiMenuContextProvider>\n\t\t\t\t\t</TldrawUiToolbar>\n\t\t\t\t</TldrawUiPopoverContent>\n\t\t\t</TldrawUiPopover>\n\t\t</>\n\t)\n}\n\n// need to memo like this to get generics\n/** @public @react */\nexport const StylePanelDoubleDropdownPicker = React.memo(StylePanelDoubleDropdownPickerInner) as <\n\tT extends string,\n>(\n\tprops: StylePanelDoubleDropdownPickerProps<T>\n) => React.JSX.Element\n\n/** @public @react */\nexport const StylePanelDoubleDropdownPickerInline = React.memo(\n\tStylePanelDoubleDropdownPickerInlineInner\n) as <T extends string>(props: StylePanelDoubleDropdownPickerProps<T>) => React.JSX.Element\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -28,12 +28,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var StylePanelDropdownPicker_exports = {};
30
30
  __export(StylePanelDropdownPicker_exports, {
31
- StylePanelDropdownPicker: () => StylePanelDropdownPicker
31
+ StylePanelDropdownPicker: () => StylePanelDropdownPicker,
32
+ StylePanelDropdownPickerInline: () => StylePanelDropdownPickerInline
32
33
  });
33
34
  module.exports = __toCommonJS(StylePanelDropdownPicker_exports);
34
35
  var import_jsx_runtime = require("react/jsx-runtime");
35
36
  var import_editor = require("@tldraw/editor");
36
- var React = __toESM(require("react"));
37
+ var React = __toESM(require("react"), 1);
37
38
  var import_useTranslation = require("../../hooks/useTranslation/useTranslation");
38
39
  var import_TldrawUiButtonIcon = require("../primitives/Button/TldrawUiButtonIcon");
39
40
  var import_TldrawUiButtonLabel = require("../primitives/Button/TldrawUiButtonLabel");
@@ -41,7 +42,12 @@ var import_TldrawUiPopover = require("../primitives/TldrawUiPopover");
41
42
  var import_TldrawUiToolbar = require("../primitives/TldrawUiToolbar");
42
43
  var import_TldrawUiMenuContext = require("../primitives/menus/TldrawUiMenuContext");
43
44
  var import_StylePanelContext = require("./StylePanelContext");
44
- function DropdownPickerInner(props) {
45
+ function StylePanelDropdownPickerInner(props) {
46
+ const msg = (0, import_useTranslation.useTranslation)();
47
+ const toolbarLabel = props.label ? msg(props.label) : msg(`style-panel.${props.stylePanelType}`);
48
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TldrawUiToolbar.TldrawUiToolbar, { label: toolbarLabel, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StylePanelDropdownPickerInline, { ...props }) });
49
+ }
50
+ function StylePanelDropdownPickerInlineInner(props) {
45
51
  const ctx = (0, import_StylePanelContext.useStylePanelContext)();
46
52
  const {
47
53
  id,
@@ -65,7 +71,7 @@ function DropdownPickerInner(props) {
65
71
  const titleStr = value.type === "mixed" ? msg("style-panel.mixed") : stylePanelName + " \u2014 " + msg(`${uiType}-style.${value.value}`);
66
72
  const labelStr = label ? msg(label) : "";
67
73
  const popoverId = `style panel ${id}`;
68
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_TldrawUiToolbar.TldrawUiToolbar, { label: stylePanelName, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
74
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
69
75
  import_TldrawUiPopover.TldrawUiPopover,
70
76
  {
71
77
  id: popoverId,
@@ -107,7 +113,8 @@ function DropdownPickerInner(props) {
107
113
  }) }) }) })
108
114
  ]
109
115
  }
110
- ) });
116
+ );
111
117
  }
112
- const StylePanelDropdownPicker = React.memo(DropdownPickerInner);
118
+ const StylePanelDropdownPicker = React.memo(StylePanelDropdownPickerInner);
119
+ const StylePanelDropdownPickerInline = React.memo(StylePanelDropdownPickerInlineInner);
113
120
  //# sourceMappingURL=StylePanelDropdownPicker.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx"],
4
- "sourcesContent": ["import { SharedStyle, StyleProp, tlmenus, useEditor } from '@tldraw/editor'\nimport * as React from 'react'\nimport { StyleValuesForUi } from '../../../styles'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TLUiIconType } from '../../icon-types'\nimport { TldrawUiButtonIcon } from '../primitives/Button/TldrawUiButtonIcon'\nimport { TldrawUiButtonLabel } from '../primitives/Button/TldrawUiButtonLabel'\nimport {\n\tTldrawUiPopover,\n\tTldrawUiPopoverContent,\n\tTldrawUiPopoverTrigger,\n} from '../primitives/TldrawUiPopover'\nimport { TldrawUiToolbar, TldrawUiToolbarButton } from '../primitives/TldrawUiToolbar'\nimport { TldrawUiMenuContextProvider } from '../primitives/menus/TldrawUiMenuContext'\nimport { useStylePanelContext } from './StylePanelContext'\n\n/** @public */\nexport interface StylePanelDropdownPickerProps<T extends string> {\n\tid: string\n\tlabel?: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\tuiType: string\n\tstylePanelType: string\n\tstyle: StyleProp<T>\n\tvalue: SharedStyle<T>\n\titems: StyleValuesForUi<T>\n\ttype: 'icon' | 'tool' | 'menu'\n\tonValueChange?(style: StyleProp<T>, value: T): void\n}\n\nfunction DropdownPickerInner<T extends string>(props: StylePanelDropdownPickerProps<T>) {\n\tconst ctx = useStylePanelContext()\n\tconst {\n\t\tid,\n\t\tlabel,\n\t\tuiType,\n\t\tstylePanelType,\n\t\tstyle,\n\t\titems,\n\t\ttype,\n\t\tvalue,\n\t\tonValueChange = ctx.onValueChange,\n\t} = props\n\tconst msg = useTranslation()\n\tconst editor = useEditor()\n\tconst [isOpen, setIsOpen] = React.useState(false)\n\n\tconst icon = React.useMemo(\n\t\t() => items.find((item) => value.type === 'shared' && item.value === value.value)?.icon,\n\t\t[items, value]\n\t)\n\n\tconst stylePanelName = msg(`style-panel.${stylePanelType}` as TLUiTranslationKey)\n\n\tconst titleStr =\n\t\tvalue.type === 'mixed'\n\t\t\t? msg('style-panel.mixed')\n\t\t\t: stylePanelName + ' \u2014 ' + msg(`${uiType}-style.${value.value}` as TLUiTranslationKey)\n\tconst labelStr = label ? msg(label) : ''\n\n\tconst popoverId = `style panel ${id}`\n\treturn (\n\t\t<TldrawUiToolbar label={stylePanelName}>\n\t\t\t<TldrawUiPopover\n\t\t\t\tid={popoverId}\n\t\t\t\topen={isOpen}\n\t\t\t\tonOpenChange={setIsOpen}\n\t\t\t\tclassName=\"tlui-style-panel__dropdown-picker\"\n\t\t\t>\n\t\t\t\t<TldrawUiPopoverTrigger>\n\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\tdata-testid={`style.${uiType}`}\n\t\t\t\t\t\tdata-direction=\"left\"\n\t\t\t\t\t\ttitle={titleStr}\n\t\t\t\t\t>\n\t\t\t\t\t\t{labelStr && <TldrawUiButtonLabel>{labelStr}</TldrawUiButtonLabel>}\n\t\t\t\t\t\t<TldrawUiButtonIcon icon={(icon as TLUiIconType) ?? 'mixed'} />\n\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t</TldrawUiPopoverTrigger>\n\t\t\t\t<TldrawUiPopoverContent side=\"left\" align=\"center\">\n\t\t\t\t\t<TldrawUiToolbar orientation={items.length > 4 ? 'grid' : 'horizontal'} label={labelStr}>\n\t\t\t\t\t\t<TldrawUiMenuContextProvider type=\"icons\" sourceId=\"style-panel\">\n\t\t\t\t\t\t\t{items.map((item) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\t\tdata-testid={`style.${uiType}.${item.value}`}\n\t\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\t\tstylePanelName +\n\t\t\t\t\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t\t\t\t\tmsg(`${uiType}-style.${item.value}` as TLUiTranslationKey)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisActive={icon === item.icon}\n\t\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t\tctx.onHistoryMark('select style dropdown item')\n\t\t\t\t\t\t\t\t\t\t\tonValueChange(style, item.value)\n\t\t\t\t\t\t\t\t\t\t\ttlmenus.deleteOpenMenu(popoverId, editor.contextId)\n\t\t\t\t\t\t\t\t\t\t\tsetIsOpen(false)\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<TldrawUiButtonIcon icon={item.icon} />\n\t\t\t\t\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</TldrawUiMenuContextProvider>\n\t\t\t\t\t</TldrawUiToolbar>\n\t\t\t\t</TldrawUiPopoverContent>\n\t\t\t</TldrawUiPopover>\n\t\t</TldrawUiToolbar>\n\t)\n}\n\n// need to export like this to get generics\n/** @public @react */\nexport const StylePanelDropdownPicker = React.memo(DropdownPickerInner) as <T extends string>(\n\tprops: StylePanelDropdownPickerProps<T>\n) => React.JSX.Element\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsEK;AAtEL,oBAA2D;AAC3D,YAAuB;AAGvB,4BAA+B;AAE/B,gCAAmC;AACnC,iCAAoC;AACpC,6BAIO;AACP,6BAAuD;AACvD,iCAA4C;AAC5C,+BAAqC;AAerC,SAAS,oBAAsC,OAAyC;AACvF,QAAM,UAAM,+CAAqB;AACjC,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,IAAI;AAAA,EACrB,IAAI;AACJ,QAAM,UAAM,sCAAe;AAC3B,QAAM,aAAS,yBAAU;AACzB,QAAM,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAS,KAAK;AAEhD,QAAM,OAAO,MAAM;AAAA,IAClB,MAAM,MAAM,KAAK,CAAC,SAAS,MAAM,SAAS,YAAY,KAAK,UAAU,MAAM,KAAK,GAAG;AAAA,IACnF,CAAC,OAAO,KAAK;AAAA,EACd;AAEA,QAAM,iBAAiB,IAAI,eAAe,cAAc,EAAwB;AAEhF,QAAM,WACL,MAAM,SAAS,UACZ,IAAI,mBAAmB,IACvB,iBAAiB,aAAQ,IAAI,GAAG,MAAM,UAAU,MAAM,KAAK,EAAwB;AACvF,QAAM,WAAW,QAAQ,IAAI,KAAK,IAAI;AAEtC,QAAM,YAAY,eAAe,EAAE;AACnC,SACC,4CAAC,0CAAgB,OAAO,gBACvB;AAAA,IAAC;AAAA;AAAA,MACA,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,cAAc;AAAA,MACd,WAAU;AAAA,MAEV;AAAA,oDAAC,iDACA;AAAA,UAAC;AAAA;AAAA,YACA;AAAA,YACA,eAAa,SAAS,MAAM;AAAA,YAC5B,kBAAe;AAAA,YACf,OAAO;AAAA,YAEN;AAAA,0BAAY,4CAAC,kDAAqB,oBAAS;AAAA,cAC5C,4CAAC,gDAAmB,MAAO,QAAyB,SAAS;AAAA;AAAA;AAAA,QAC9D,GACD;AAAA,QACA,4CAAC,iDAAuB,MAAK,QAAO,OAAM,UACzC,sDAAC,0CAAgB,aAAa,MAAM,SAAS,IAAI,SAAS,cAAc,OAAO,UAC9E,sDAAC,0DAA4B,MAAK,SAAQ,UAAS,eACjD,gBAAM,IAAI,CAAC,SAAS;AACpB,iBACC;AAAA,YAAC;AAAA;AAAA,cAEA,MAAK;AAAA,cACL,eAAa,SAAS,MAAM,IAAI,KAAK,KAAK;AAAA,cAC1C,OACC,iBACA,aACA,IAAI,GAAG,MAAM,UAAU,KAAK,KAAK,EAAwB;AAAA,cAE1D,UAAU,SAAS,KAAK;AAAA,cACxB,SAAS,MAAM;AACd,oBAAI,cAAc,4BAA4B;AAC9C,8BAAc,OAAO,KAAK,KAAK;AAC/B,sCAAQ,eAAe,WAAW,OAAO,SAAS;AAClD,0BAAU,KAAK;AAAA,cAChB;AAAA,cAEA,sDAAC,gDAAmB,MAAM,KAAK,MAAM;AAAA;AAAA,YAhBhC,KAAK;AAAA,UAiBX;AAAA,QAEF,CAAC,GACF,GACD,GACD;AAAA;AAAA;AAAA,EACD,GACD;AAEF;AAIO,MAAM,2BAA2B,MAAM,KAAK,mBAAmB;",
4
+ "sourcesContent": ["import { SharedStyle, StyleProp, tlmenus, useEditor } from '@tldraw/editor'\nimport * as React from 'react'\nimport { StyleValuesForUi } from '../../../styles'\nimport { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TLUiIconType } from '../../icon-types'\nimport { TldrawUiButtonIcon } from '../primitives/Button/TldrawUiButtonIcon'\nimport { TldrawUiButtonLabel } from '../primitives/Button/TldrawUiButtonLabel'\nimport {\n\tTldrawUiPopover,\n\tTldrawUiPopoverContent,\n\tTldrawUiPopoverTrigger,\n} from '../primitives/TldrawUiPopover'\nimport { TldrawUiToolbar, TldrawUiToolbarButton } from '../primitives/TldrawUiToolbar'\nimport { TldrawUiMenuContextProvider } from '../primitives/menus/TldrawUiMenuContext'\nimport { useStylePanelContext } from './StylePanelContext'\n\n/** @public */\nexport interface StylePanelDropdownPickerProps<T extends string> {\n\tid: string\n\tlabel?: TLUiTranslationKey | Exclude<string, TLUiTranslationKey>\n\tuiType: string\n\tstylePanelType: string\n\tstyle: StyleProp<T>\n\tvalue: SharedStyle<T>\n\titems: StyleValuesForUi<T>\n\ttype: 'icon' | 'tool' | 'menu'\n\tonValueChange?(style: StyleProp<T>, value: T): void\n}\n\nfunction StylePanelDropdownPickerInner<T extends string>(props: StylePanelDropdownPickerProps<T>) {\n\tconst msg = useTranslation()\n\tconst toolbarLabel = props.label\n\t\t? msg(props.label)\n\t\t: msg(`style-panel.${props.stylePanelType}` as TLUiTranslationKey)\n\treturn (\n\t\t<TldrawUiToolbar label={toolbarLabel}>\n\t\t\t<StylePanelDropdownPickerInline {...props} />\n\t\t</TldrawUiToolbar>\n\t)\n}\n\nfunction StylePanelDropdownPickerInlineInner<T extends string>(\n\tprops: StylePanelDropdownPickerProps<T>\n) {\n\tconst ctx = useStylePanelContext()\n\tconst {\n\t\tid,\n\t\tlabel,\n\t\tuiType,\n\t\tstylePanelType,\n\t\tstyle,\n\t\titems,\n\t\ttype,\n\t\tvalue,\n\t\tonValueChange = ctx.onValueChange,\n\t} = props\n\tconst msg = useTranslation()\n\tconst editor = useEditor()\n\tconst [isOpen, setIsOpen] = React.useState(false)\n\n\tconst icon = React.useMemo(\n\t\t() => items.find((item) => value.type === 'shared' && item.value === value.value)?.icon,\n\t\t[items, value]\n\t)\n\n\tconst stylePanelName = msg(`style-panel.${stylePanelType}` as TLUiTranslationKey)\n\n\tconst titleStr =\n\t\tvalue.type === 'mixed'\n\t\t\t? msg('style-panel.mixed')\n\t\t\t: stylePanelName + ' \u2014 ' + msg(`${uiType}-style.${value.value}` as TLUiTranslationKey)\n\tconst labelStr = label ? msg(label) : ''\n\n\tconst popoverId = `style panel ${id}`\n\treturn (\n\t\t<TldrawUiPopover\n\t\t\tid={popoverId}\n\t\t\topen={isOpen}\n\t\t\tonOpenChange={setIsOpen}\n\t\t\tclassName=\"tlui-style-panel__dropdown-picker\"\n\t\t>\n\t\t\t<TldrawUiPopoverTrigger>\n\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\ttype={type}\n\t\t\t\t\tdata-testid={`style.${uiType}`}\n\t\t\t\t\tdata-direction=\"left\"\n\t\t\t\t\ttitle={titleStr}\n\t\t\t\t>\n\t\t\t\t\t{labelStr && <TldrawUiButtonLabel>{labelStr}</TldrawUiButtonLabel>}\n\t\t\t\t\t<TldrawUiButtonIcon icon={(icon as TLUiIconType) ?? 'mixed'} />\n\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t</TldrawUiPopoverTrigger>\n\t\t\t<TldrawUiPopoverContent side=\"left\" align=\"center\">\n\t\t\t\t<TldrawUiToolbar orientation={items.length > 4 ? 'grid' : 'horizontal'} label={labelStr}>\n\t\t\t\t\t<TldrawUiMenuContextProvider type=\"icons\" sourceId=\"style-panel\">\n\t\t\t\t\t\t{items.map((item) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<TldrawUiToolbarButton\n\t\t\t\t\t\t\t\t\tkey={item.value}\n\t\t\t\t\t\t\t\t\ttype=\"icon\"\n\t\t\t\t\t\t\t\t\tdata-testid={`style.${uiType}.${item.value}`}\n\t\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\t\tstylePanelName +\n\t\t\t\t\t\t\t\t\t\t' \u2014 ' +\n\t\t\t\t\t\t\t\t\t\tmsg(`${uiType}-style.${item.value}` as TLUiTranslationKey)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tisActive={icon === item.icon}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tctx.onHistoryMark('select style dropdown item')\n\t\t\t\t\t\t\t\t\t\tonValueChange(style, item.value)\n\t\t\t\t\t\t\t\t\t\ttlmenus.deleteOpenMenu(popoverId, editor.contextId)\n\t\t\t\t\t\t\t\t\t\tsetIsOpen(false)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<TldrawUiButtonIcon icon={item.icon} />\n\t\t\t\t\t\t\t\t</TldrawUiToolbarButton>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t})}\n\t\t\t\t\t</TldrawUiMenuContextProvider>\n\t\t\t\t</TldrawUiToolbar>\n\t\t\t</TldrawUiPopoverContent>\n\t\t</TldrawUiPopover>\n\t)\n}\n\n// need to export like this to get generics\n/** @public @react */\nexport const StylePanelDropdownPicker = React.memo(StylePanelDropdownPickerInner) as <\n\tT extends string,\n>(\n\tprops: StylePanelDropdownPickerProps<T>\n) => React.JSX.Element\n\n/** @public @react */\nexport const StylePanelDropdownPickerInline = React.memo(StylePanelDropdownPickerInlineInner) as <\n\tT extends string,\n>(\n\tprops: StylePanelDropdownPickerProps<T>\n) => React.JSX.Element\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCG;AArCH,oBAA2D;AAC3D,YAAuB;AAGvB,4BAA+B;AAE/B,gCAAmC;AACnC,iCAAoC;AACpC,6BAIO;AACP,6BAAuD;AACvD,iCAA4C;AAC5C,+BAAqC;AAerC,SAAS,8BAAgD,OAAyC;AACjG,QAAM,UAAM,sCAAe;AAC3B,QAAM,eAAe,MAAM,QACxB,IAAI,MAAM,KAAK,IACf,IAAI,eAAe,MAAM,cAAc,EAAwB;AAClE,SACC,4CAAC,0CAAgB,OAAO,cACvB,sDAAC,kCAAgC,GAAG,OAAO,GAC5C;AAEF;AAEA,SAAS,oCACR,OACC;AACD,QAAM,UAAM,+CAAqB;AACjC,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,IAAI;AAAA,EACrB,IAAI;AACJ,QAAM,UAAM,sCAAe;AAC3B,QAAM,aAAS,yBAAU;AACzB,QAAM,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAS,KAAK;AAEhD,QAAM,OAAO,MAAM;AAAA,IAClB,MAAM,MAAM,KAAK,CAAC,SAAS,MAAM,SAAS,YAAY,KAAK,UAAU,MAAM,KAAK,GAAG;AAAA,IACnF,CAAC,OAAO,KAAK;AAAA,EACd;AAEA,QAAM,iBAAiB,IAAI,eAAe,cAAc,EAAwB;AAEhF,QAAM,WACL,MAAM,SAAS,UACZ,IAAI,mBAAmB,IACvB,iBAAiB,aAAQ,IAAI,GAAG,MAAM,UAAU,MAAM,KAAK,EAAwB;AACvF,QAAM,WAAW,QAAQ,IAAI,KAAK,IAAI;AAEtC,QAAM,YAAY,eAAe,EAAE;AACnC,SACC;AAAA,IAAC;AAAA;AAAA,MACA,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,cAAc;AAAA,MACd,WAAU;AAAA,MAEV;AAAA,oDAAC,iDACA;AAAA,UAAC;AAAA;AAAA,YACA;AAAA,YACA,eAAa,SAAS,MAAM;AAAA,YAC5B,kBAAe;AAAA,YACf,OAAO;AAAA,YAEN;AAAA,0BAAY,4CAAC,kDAAqB,oBAAS;AAAA,cAC5C,4CAAC,gDAAmB,MAAO,QAAyB,SAAS;AAAA;AAAA;AAAA,QAC9D,GACD;AAAA,QACA,4CAAC,iDAAuB,MAAK,QAAO,OAAM,UACzC,sDAAC,0CAAgB,aAAa,MAAM,SAAS,IAAI,SAAS,cAAc,OAAO,UAC9E,sDAAC,0DAA4B,MAAK,SAAQ,UAAS,eACjD,gBAAM,IAAI,CAAC,SAAS;AACpB,iBACC;AAAA,YAAC;AAAA;AAAA,cAEA,MAAK;AAAA,cACL,eAAa,SAAS,MAAM,IAAI,KAAK,KAAK;AAAA,cAC1C,OACC,iBACA,aACA,IAAI,GAAG,MAAM,UAAU,KAAK,KAAK,EAAwB;AAAA,cAE1D,UAAU,SAAS,KAAK;AAAA,cACxB,SAAS,MAAM;AACd,oBAAI,cAAc,4BAA4B;AAC9C,8BAAc,OAAO,KAAK,KAAK;AAC/B,sCAAQ,eAAe,WAAW,OAAO,SAAS;AAClD,0BAAU,KAAK;AAAA,cAChB;AAAA,cAEA,sDAAC,gDAAmB,MAAM,KAAK,MAAM;AAAA;AAAA,YAhBhC,KAAK;AAAA,UAiBX;AAAA,QAEF,CAAC,GACF,GACD,GACD;AAAA;AAAA;AAAA,EACD;AAEF;AAIO,MAAM,2BAA2B,MAAM,KAAK,6BAA6B;AAOzE,MAAM,iCAAiC,MAAM,KAAK,mCAAmC;",
6
6
  "names": []
7
7
  }
@@ -33,7 +33,7 @@ __export(DefaultToolbar_exports, {
33
33
  module.exports = __toCommonJS(DefaultToolbar_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
35
  var import_editor = require("@tldraw/editor");
36
- var import_classnames = __toESM(require("classnames"));
36
+ var import_classnames = __toESM(require("classnames"), 1);
37
37
  var import_react = require("react");
38
38
  var import_constants = require("../../constants");
39
39
  var import_breakpoints = require("../../context/breakpoints");
@@ -35,7 +35,7 @@ __export(OverflowingToolbar_exports, {
35
35
  module.exports = __toCommonJS(OverflowingToolbar_exports);
36
36
  var import_jsx_runtime = require("react/jsx-runtime");
37
37
  var import_editor = require("@tldraw/editor");
38
- var import_classnames = __toESM(require("classnames"));
38
+ var import_classnames = __toESM(require("classnames"), 1);
39
39
  var import_react = require("react");
40
40
  var import_constants = require("../../constants");
41
41
  var import_breakpoints = require("../../context/breakpoints");
@@ -33,7 +33,7 @@ __export(ToggleToolLockedButton_exports, {
33
33
  module.exports = __toCommonJS(ToggleToolLockedButton_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
35
  var import_editor = require("@tldraw/editor");
36
- var import_classnames = __toESM(require("classnames"));
36
+ var import_classnames = __toESM(require("classnames"), 1);
37
37
  var import_constants = require("../../constants");
38
38
  var import_actions = require("../../context/actions");
39
39
  var import_breakpoints = require("../../context/breakpoints");
@@ -32,8 +32,8 @@ __export(TldrawUiButton_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(TldrawUiButton_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
- var import_classnames = __toESM(require("classnames"));
36
- var React = __toESM(require("react"));
35
+ var import_classnames = __toESM(require("classnames"), 1);
36
+ var React = __toESM(require("react"), 1);
37
37
  const namedClassNamesSoThatICanGrepForThis = {
38
38
  normal: "tlui-button__normal",
39
39
  primary: "tlui-button__primary",
@@ -36,7 +36,7 @@ __export(TldrawUiContextualToolbar_exports, {
36
36
  module.exports = __toCommonJS(TldrawUiContextualToolbar_exports);
37
37
  var import_jsx_runtime = require("react/jsx-runtime");
38
38
  var import_editor = require("@tldraw/editor");
39
- var import_classnames = __toESM(require("classnames"));
39
+ var import_classnames = __toESM(require("classnames"), 1);
40
40
  var import_react = require("react");
41
41
  var import_react_dom = require("react-dom");
42
42
  var import_TldrawUiToolbar = require("./TldrawUiToolbar");
@@ -36,7 +36,7 @@ __export(TldrawUiDialog_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(TldrawUiDialog_exports);
38
38
  var import_jsx_runtime = require("react/jsx-runtime");
39
- var import_classnames = __toESM(require("classnames"));
39
+ var import_classnames = __toESM(require("classnames"), 1);
40
40
  var import_radix_ui = require("radix-ui");
41
41
  var import_useTranslation = require("../../hooks/useTranslation/useTranslation");
42
42
  var import_TldrawUiButton = require("./Button/TldrawUiButton");
@@ -42,7 +42,7 @@ __export(TldrawUiDropdownMenu_exports, {
42
42
  module.exports = __toCommonJS(TldrawUiDropdownMenu_exports);
43
43
  var import_jsx_runtime = require("react/jsx-runtime");
44
44
  var import_editor = require("@tldraw/editor");
45
- var import_classnames = __toESM(require("classnames"));
45
+ var import_classnames = __toESM(require("classnames"), 1);
46
46
  var import_radix_ui = require("radix-ui");
47
47
  var import_useMenuIsOpen = require("../../hooks/useMenuIsOpen");
48
48
  var import_useTranslation = require("../../hooks/useTranslation/useTranslation");
@@ -32,7 +32,7 @@ __export(TldrawUiIcon_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(TldrawUiIcon_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
- var import_classnames = __toESM(require("classnames"));
35
+ var import_classnames = __toESM(require("classnames"), 1);
36
36
  var import_react = require("react");
37
37
  var import_asset_urls = require("../../context/asset-urls");
38
38
  const TldrawUiIcon = (0, import_react.memo)(function TldrawUiIcon2({
@@ -33,8 +33,8 @@ __export(TldrawUiInput_exports, {
33
33
  module.exports = __toCommonJS(TldrawUiInput_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
35
  var import_editor = require("@tldraw/editor");
36
- var import_classnames = __toESM(require("classnames"));
37
- var React = __toESM(require("react"));
36
+ var import_classnames = __toESM(require("classnames"), 1);
37
+ var React = __toESM(require("react"), 1);
38
38
  var import_useTranslation = require("../../hooks/useTranslation/useTranslation");
39
39
  var import_TldrawUiIcon = require("./TldrawUiIcon");
40
40
  const TldrawUiInput = React.forwardRef(
@@ -35,9 +35,9 @@ __export(TldrawUiPopover_exports, {
35
35
  module.exports = __toCommonJS(TldrawUiPopover_exports);
36
36
  var import_jsx_runtime = require("react/jsx-runtime");
37
37
  var import_editor = require("@tldraw/editor");
38
- var import_classnames = __toESM(require("classnames"));
38
+ var import_classnames = __toESM(require("classnames"), 1);
39
39
  var import_radix_ui = require("radix-ui");
40
- var import_react = __toESM(require("react"));
40
+ var import_react = __toESM(require("react"), 1);
41
41
  var import_useMenuIsOpen = require("../../hooks/useMenuIsOpen");
42
42
  function TldrawUiPopover({ id, children, onOpenChange, open, className }) {
43
43
  const [isOpen, handleOpenChange] = (0, import_useMenuIsOpen.useMenuIsOpen)(id, onOpenChange);
@@ -34,7 +34,7 @@ module.exports = __toCommonJS(TldrawUiSlider_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
35
  var import_editor = require("@tldraw/editor");
36
36
  var import_radix_ui = require("radix-ui");
37
- var import_react = __toESM(require("react"));
37
+ var import_react = __toESM(require("react"), 1);
38
38
  var import_useTranslation = require("../../hooks/useTranslation/useTranslation");
39
39
  var import_TldrawUiTooltip = require("./TldrawUiTooltip");
40
40
  const TldrawUiSlider = import_react.default.forwardRef(function Slider({
@@ -35,9 +35,9 @@ __export(TldrawUiToolbar_exports, {
35
35
  });
36
36
  module.exports = __toCommonJS(TldrawUiToolbar_exports);
37
37
  var import_jsx_runtime = require("react/jsx-runtime");
38
- var import_classnames = __toESM(require("classnames"));
38
+ var import_classnames = __toESM(require("classnames"), 1);
39
39
  var import_radix_ui = require("radix-ui");
40
- var import_react = __toESM(require("react"));
40
+ var import_react = __toESM(require("react"), 1);
41
41
  var import_layout = require("./layout");
42
42
  var import_TldrawUiTooltip = require("./TldrawUiTooltip");
43
43
  const LayoutByOrientation = {
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(TldrawUiTooltip_exports);
36
36
  var import_jsx_runtime = require("react/jsx-runtime");
37
37
  var import_editor = require("@tldraw/editor");
38
38
  var import_radix_ui = require("radix-ui");
39
- var import_react = __toESM(require("react"));
39
+ var import_react = __toESM(require("react"), 1);
40
40
  var import_layout = require("./layout");
41
41
  const DEFAULT_TOOLTIP_DELAY_MS = 700;
42
42
  class TooltipManager {
@@ -36,7 +36,7 @@ __export(layout_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(layout_exports);
38
38
  var import_jsx_runtime = require("react/jsx-runtime");
39
- var import_classnames = __toESM(require("classnames"));
39
+ var import_classnames = __toESM(require("classnames"), 1);
40
40
  var import_radix_ui = require("radix-ui");
41
41
  var import_react = require("react");
42
42
  const TldrawUiOrientationContext = (0, import_react.createContext)({
@@ -32,7 +32,7 @@ __export(TldrawUiMenuGroup_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(TldrawUiMenuGroup_exports);
34
34
  var import_jsx_runtime = require("react/jsx-runtime");
35
- var import_classnames = __toESM(require("classnames"));
35
+ var import_classnames = __toESM(require("classnames"), 1);
36
36
  var import_actions = require("../../../context/actions");
37
37
  var import_useTranslation = require("../../../hooks/useTranslation/useTranslation");
38
38
  var import_layout = require("../layout");
@@ -37,7 +37,7 @@ __export(actions_exports, {
37
37
  module.exports = __toCommonJS(actions_exports);
38
38
  var import_jsx_runtime = require("react/jsx-runtime");
39
39
  var import_editor = require("@tldraw/editor");
40
- var React = __toESM(require("react"));
40
+ var React = __toESM(require("react"), 1);
41
41
  var import_frames = require("../../utils/frames/frames");
42
42
  var import_A11y = require("../components/A11y");
43
43
  var import_EditLinkDialog = require("../components/EditLinkDialog");
@@ -34,7 +34,7 @@ __export(breakpoints_exports, {
34
34
  module.exports = __toCommonJS(breakpoints_exports);
35
35
  var import_jsx_runtime = require("react/jsx-runtime");
36
36
  var import_editor = require("@tldraw/editor");
37
- var import_react = __toESM(require("react"));
37
+ var import_react = __toESM(require("react"), 1);
38
38
  var import_constants = require("../constants");
39
39
  const BreakpointContext = import_react.default.createContext(null);
40
40
  function BreakPointProvider({ forceMobile = false, children }) {
@@ -34,7 +34,7 @@ __export(events_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(events_exports);
36
36
  var import_jsx_runtime = require("react/jsx-runtime");
37
- var React = __toESM(require("react"));
37
+ var React = __toESM(require("react"), 1);
38
38
  const defaultEventHandler = () => void 0;
39
39
  const EventsContext = React.createContext(null);
40
40
  function TldrawUiEventsProvider({ onEvent, children }) {
@@ -34,7 +34,7 @@ __export(useClipboardEvents_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(useClipboardEvents_exports);
36
36
  var import_editor = require("@tldraw/editor");
37
- var import_lz_string = __toESM(require("lz-string"));
37
+ var import_lz_string = __toESM(require("lz-string"), 1);
38
38
  var import_react = require("react");
39
39
  var import_clipboard = require("../../utils/clipboard");
40
40
  var import_events = require("../context/events");
@@ -33,7 +33,7 @@ __export(useKeyboardShortcuts_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(useKeyboardShortcuts_exports);
35
35
  var import_editor = require("@tldraw/editor");
36
- var import_hotkeys_js = __toESM(require("hotkeys-js"));
36
+ var import_hotkeys_js = __toESM(require("hotkeys-js"), 1);
37
37
  var import_react = require("react");
38
38
  var import_actions = require("../context/actions");
39
39
  var import_useReadonly = require("./useReadonly");
@@ -32,7 +32,7 @@ __export(useLocalStorageState_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(useLocalStorageState_exports);
34
34
  var import_editor = require("@tldraw/editor");
35
- var import_react = __toESM(require("react"));
35
+ var import_react = __toESM(require("react"), 1);
36
36
  function useLocalStorageState(key, defaultValue) {
37
37
  const [state, setState] = import_react.default.useState(defaultValue);
38
38
  import_react.default.useLayoutEffect(() => {
@@ -36,7 +36,7 @@ __export(useTools_exports, {
36
36
  module.exports = __toCommonJS(useTools_exports);
37
37
  var import_jsx_runtime = require("react/jsx-runtime");
38
38
  var import_editor = require("@tldraw/editor");
39
- var React = __toESM(require("react"));
39
+ var React = __toESM(require("react"), 1);
40
40
  var import_EmbedDialog = require("../components/EmbedDialog");
41
41
  var import_a11y = require("../context/a11y");
42
42
  var import_events = require("../context/events");
@@ -35,7 +35,7 @@ __export(useTranslation_exports, {
35
35
  });
36
36
  module.exports = __toCommonJS(useTranslation_exports);
37
37
  var import_jsx_runtime = require("react/jsx-runtime");
38
- var React = __toESM(require("react"));
38
+ var React = __toESM(require("react"), 1);
39
39
  var import_asset_urls = require("../../context/asset-urls");
40
40
  var import_defaultTranslation = require("./defaultTranslation");
41
41
  var import_translations = require("./translations");
@@ -22,10 +22,10 @@ __export(version_exports, {
22
22
  version: () => version
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- const version = "4.1.0-next.542f014c3fac";
25
+ const version = "4.1.0-next.58b63dd1ac80";
26
26
  const publishDates = {
27
- major: "2025-09-19T10:02:40.633Z",
28
- minor: "2025-09-19T10:02:40.633Z",
29
- patch: "2025-09-19T10:02:40.633Z"
27
+ major: "2025-09-18T14:39:22.803Z",
28
+ minor: "2025-10-15T11:02:19.723Z",
29
+ patch: "2025-10-15T11:02:19.723Z"
30
30
  };
31
31
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/lib/ui/version.ts"],
4
- "sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '4.1.0-next.542f014c3fac'\nexport const publishDates = {\n\tmajor: '2025-09-19T10:02:40.633Z',\n\tminor: '2025-09-19T10:02:40.633Z',\n\tpatch: '2025-09-19T10:02:40.633Z',\n}\n"],
4
+ "sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '4.1.0-next.58b63dd1ac80'\nexport const publishDates = {\n\tmajor: '2025-09-18T14:39:22.803Z',\n\tminor: '2025-10-15T11:02:19.723Z',\n\tpatch: '2025-10-15T11:02:19.723Z',\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,UAAU;AAChB,MAAM,eAAe;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACR;",
6
6
  "names": []
7
7
  }
@@ -39,10 +39,10 @@ __export(richText_exports, {
39
39
  });
40
40
  module.exports = __toCommonJS(richText_exports);
41
41
  var import_core = require("@tiptap/core");
42
- var import_extension_code = __toESM(require("@tiptap/extension-code"));
43
- var import_extension_highlight = __toESM(require("@tiptap/extension-highlight"));
44
- var import_extension_link = __toESM(require("@tiptap/extension-link"));
45
- var import_starter_kit = __toESM(require("@tiptap/starter-kit"));
42
+ var import_extension_code = __toESM(require("@tiptap/extension-code"), 1);
43
+ var import_extension_highlight = __toESM(require("@tiptap/extension-highlight"), 1);
44
+ var import_extension_link = __toESM(require("@tiptap/extension-link"), 1);
45
+ var import_starter_kit = __toESM(require("@tiptap/starter-kit"), 1);
46
46
  var import_editor = require("@tldraw/editor");
47
47
  var import_defaultFonts = require("../../shapes/shared/defaultFonts");
48
48
  var import_textDirection = require("./textDirection");