@cuemath/leap 2.8.50 → 2.8.51-beta-0.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 (147) hide show
  1. package/dist/assets/illustrations/illustrations.js +10 -0
  2. package/dist/assets/illustrations/illustrations.js.map +1 -1
  3. package/dist/assets/line-icons/icons/alarm.js +41 -0
  4. package/dist/assets/line-icons/icons/alarm.js.map +1 -0
  5. package/dist/assets/line-icons/icons/clear-all.js +53 -0
  6. package/dist/assets/line-icons/icons/clear-all.js.map +1 -0
  7. package/dist/assets/line-icons/icons/dart.js +23 -0
  8. package/dist/assets/line-icons/icons/dart.js.map +1 -0
  9. package/dist/assets/line-icons/icons/download.js +48 -0
  10. package/dist/assets/line-icons/icons/download.js.map +1 -0
  11. package/dist/assets/line-icons/icons/equation.js +48 -0
  12. package/dist/assets/line-icons/icons/equation.js.map +1 -0
  13. package/dist/assets/line-icons/icons/exclamation.js +26 -0
  14. package/dist/assets/line-icons/icons/exclamation.js.map +1 -0
  15. package/dist/assets/line-icons/icons/grid-icon.js +42 -0
  16. package/dist/assets/line-icons/icons/grid-icon.js.map +1 -0
  17. package/dist/assets/line-icons/icons/home2.js +25 -0
  18. package/dist/assets/line-icons/icons/home2.js.map +1 -0
  19. package/dist/assets/line-icons/icons/important.js +23 -0
  20. package/dist/assets/line-icons/icons/important.js.map +1 -0
  21. package/dist/assets/line-icons/icons/pan.js +98 -0
  22. package/dist/assets/line-icons/icons/pan.js.map +1 -0
  23. package/dist/assets/line-icons/icons/puzzle.js +25 -0
  24. package/dist/assets/line-icons/icons/puzzle.js.map +1 -0
  25. package/dist/assets/line-icons/icons/recap.js +32 -0
  26. package/dist/assets/line-icons/icons/recap.js.map +1 -0
  27. package/dist/assets/line-icons/icons/square-checked-grid.js +25 -0
  28. package/dist/assets/line-icons/icons/square-checked-grid.js.map +1 -0
  29. package/dist/assets/line-icons/icons/square-dots.js +32 -0
  30. package/dist/assets/line-icons/icons/square-dots.js.map +1 -0
  31. package/dist/assets/line-icons/icons/square-grid.js +17 -0
  32. package/dist/assets/line-icons/icons/square-grid.js.map +1 -0
  33. package/dist/assets/line-icons/icons/square2-grid.js +13 -0
  34. package/dist/assets/line-icons/icons/square2-grid.js.map +1 -0
  35. package/dist/assets/line-icons/icons/status.js +41 -0
  36. package/dist/assets/line-icons/icons/status.js.map +1 -0
  37. package/dist/assets/line-icons/icons/testtube.js +33 -0
  38. package/dist/assets/line-icons/icons/testtube.js.map +1 -0
  39. package/dist/assets/line-icons/icons/text-icon.js +48 -0
  40. package/dist/assets/line-icons/icons/text-icon.js.map +1 -0
  41. package/dist/assets/line-icons/icons/tri-dots.js +27 -0
  42. package/dist/assets/line-icons/icons/tri-dots.js.map +1 -0
  43. package/dist/assets/line-icons/icons/tri-grid.js +27 -0
  44. package/dist/assets/line-icons/icons/tri-grid.js.map +1 -0
  45. package/dist/assets/line-icons/icons/tri2-dots.js +27 -0
  46. package/dist/assets/line-icons/icons/tri2-dots.js.map +1 -0
  47. package/dist/assets/line-icons/icons/tri2-grid.js +27 -0
  48. package/dist/assets/line-icons/icons/tri2-grid.js.map +1 -0
  49. package/dist/assets/line-icons/icons/upload.js +48 -0
  50. package/dist/assets/line-icons/icons/upload.js.map +1 -0
  51. package/dist/assets/line-icons/icons/zoom-in.js +58 -0
  52. package/dist/assets/line-icons/icons/zoom-in.js.map +1 -0
  53. package/dist/assets/line-icons/icons/zoom-out.js +48 -0
  54. package/dist/assets/line-icons/icons/zoom-out.js.map +1 -0
  55. package/dist/features/chapters-v2/api/chapter.js +10 -0
  56. package/dist/features/chapters-v2/api/chapter.js.map +1 -0
  57. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js +116 -0
  58. package/dist/features/chapters-v2/chapter-details/block-sections/block-section-view.js.map +1 -0
  59. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js +26 -0
  60. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections-styled.js.map +1 -0
  61. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js +68 -0
  62. package/dist/features/chapters-v2/chapter-details/block-sections/block-sections.js.map +1 -0
  63. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js +90 -0
  64. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner-styled.js.map +1 -0
  65. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js +95 -0
  66. package/dist/features/chapters-v2/chapter-details/chapter-banner/chapter-banner.js.map +1 -0
  67. package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js +38 -0
  68. package/dist/features/chapters-v2/chapter-details/chapter-details-styled.js.map +1 -0
  69. package/dist/features/chapters-v2/chapter-details/chapter-details.js +89 -0
  70. package/dist/features/chapters-v2/chapter-details/chapter-details.js.map +1 -0
  71. package/dist/features/chapters-v2/comps/node-card/border-path-animation.js +13 -0
  72. package/dist/features/chapters-v2/comps/node-card/border-path-animation.js.map +1 -0
  73. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js +134 -0
  74. package/dist/features/chapters-v2/comps/node-card/node-card-styled.js.map +1 -0
  75. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js +12 -0
  76. package/dist/features/chapters-v2/comps/node-card/node-card-tags.js.map +1 -0
  77. package/dist/features/chapters-v2/comps/node-card/node-card.js +12 -0
  78. package/dist/features/chapters-v2/comps/node-card/node-card.js.map +1 -0
  79. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js +32 -0
  80. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options-styled.js.map +1 -0
  81. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js +31 -0
  82. package/dist/features/chapters-v2/comps/node-card/node-menu-options/node-menu-options.js.map +1 -0
  83. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js +154 -0
  84. package/dist/features/chapters-v2/comps/node-card/student-actions/student-actions.js.map +1 -0
  85. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js +178 -0
  86. package/dist/features/chapters-v2/comps/node-card/teacher-actions/teacher-actions.js.map +1 -0
  87. package/dist/features/chapters-v2/comps/tag/tag-styled.js +13 -0
  88. package/dist/features/chapters-v2/comps/tag/tag-styled.js.map +1 -0
  89. package/dist/features/chapters-v2/comps/tag/tag.js +28 -0
  90. package/dist/features/chapters-v2/comps/tag/tag.js.map +1 -0
  91. package/dist/features/chapters-v2/constants/block-constants.js +18 -0
  92. package/dist/features/chapters-v2/constants/block-constants.js.map +1 -0
  93. package/dist/features/chapters-v2/utils/index.js +11 -0
  94. package/dist/features/chapters-v2/utils/index.js.map +1 -0
  95. package/dist/features/chapters-v2/utils/node-card-utils.js +72 -0
  96. package/dist/features/chapters-v2/utils/node-card-utils.js.map +1 -0
  97. package/dist/features/cue-canvas/cue-canvas-core.js +138 -49
  98. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  99. package/dist/features/cue-canvas/cue-canvas-helpers.js +88 -29
  100. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  101. package/dist/features/cue-canvas/cue-canvas.js +57 -49
  102. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  103. package/dist/features/cue-canvas/cue-cavas-styled.js +127 -92
  104. package/dist/features/cue-canvas/cue-cavas-styled.js.map +1 -1
  105. package/dist/features/cue-canvas/toolbar/color-palette.js +49 -0
  106. package/dist/features/cue-canvas/toolbar/color-palette.js.map +1 -0
  107. package/dist/features/cue-canvas/toolbar/color-picker-menu.js +62 -0
  108. package/dist/features/cue-canvas/toolbar/color-picker-menu.js.map +1 -0
  109. package/dist/features/cue-canvas/toolbar/grid-menu.js +62 -0
  110. package/dist/features/cue-canvas/toolbar/grid-menu.js.map +1 -0
  111. package/dist/features/cue-canvas/toolbar/icon-map.js +58 -0
  112. package/dist/features/cue-canvas/toolbar/icon-map.js.map +1 -0
  113. package/dist/features/cue-canvas/toolbar/pen-tool-menu.js +56 -0
  114. package/dist/features/cue-canvas/toolbar/pen-tool-menu.js.map +1 -0
  115. package/dist/features/cue-canvas/toolbar/tool.js +34 -0
  116. package/dist/features/cue-canvas/toolbar/tool.js.map +1 -0
  117. package/dist/features/cue-canvas/toolbar/toolbar.js +18 -87
  118. package/dist/features/cue-canvas/toolbar/toolbar.js.map +1 -1
  119. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js +16 -0
  120. package/dist/features/cue-canvas/toolbar/whiteboard-toolbar.js.map +1 -0
  121. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js +30 -29
  122. package/dist/features/ui/arrow-tooltip/arrow-tooltip.js.map +1 -1
  123. package/dist/features/ui/context-menu/context-menu-styled.js +28 -14
  124. package/dist/features/ui/context-menu/context-menu-styled.js.map +1 -1
  125. package/dist/features/ui/context-menu/context-menu.js +30 -15
  126. package/dist/features/ui/context-menu/context-menu.js.map +1 -1
  127. package/dist/features/ui/theme/button.js +17 -102
  128. package/dist/features/ui/theme/button.js.map +1 -1
  129. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js +7 -7
  130. package/dist/features/worksheet/worksheet/worksheet-action-bar/worksheet-action-bar.js.map +1 -1
  131. package/dist/features/worksheet/worksheet/worksheet-questions-controller/scribble-switch.js.map +1 -1
  132. package/dist/index.d.ts +177 -3
  133. package/dist/index.js +485 -471
  134. package/dist/index.js.map +1 -1
  135. package/dist/static/chapter-header-bg-2.c8d96894.svg +1 -0
  136. package/dist/static/chapter-header-bg.4ed173c2.svg +1 -0
  137. package/dist/static/node-custom-test-bg.d3b757be.svg +1 -0
  138. package/dist/static/node-learn-bg.b61f815c.svg +1 -0
  139. package/dist/static/node-practice-bg.16cbaf2a.svg +1 -0
  140. package/dist/static/node-project-bg.e6a33e28.svg +1 -0
  141. package/dist/static/node-puzzle-bg.3422135c.svg +1 -0
  142. package/dist/static/node-recap-bg.546154e4.svg +1 -0
  143. package/dist/static/node-test-prep-bg.42c0b9c4.svg +1 -0
  144. package/dist/static/node-video-bg.3df3f73a.svg +1 -0
  145. package/package.json +3 -2
  146. package/dist/features/cue-canvas/toolbar/color-pallete.js +0 -49
  147. package/dist/features/cue-canvas/toolbar/color-pallete.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-map.js","sources":["../../../../src/features/cue-canvas/toolbar/icon-map.ts"],"sourcesContent":["import type { IToolsToCompMap, IGridToCompMap, TToolComponentType } from '../types/toolbar';\n\nimport ClearAllIcon from '../../../assets/line-icons/icons/clear-all';\nimport CursorIcon from '../../../assets/line-icons/icons/cursor';\nimport DownloadIcon from '../../../assets/line-icons/icons/download';\nimport EquationIcon from '../../../assets/line-icons/icons/equation';\nimport EraserIcon from '../../../assets/line-icons/icons/eraser';\nimport GridIcon from '../../../assets/line-icons/icons/grid-icon';\nimport HomeIcon from '../../../assets/line-icons/icons/home';\nimport PanIcon from '../../../assets/line-icons/icons/pan';\nimport SquareCheckedGridSvg from '../../../assets/line-icons/icons/square-checked-grid';\nimport SquareDotSvg from '../../../assets/line-icons/icons/square-dots';\nimport SquareGridSvg from '../../../assets/line-icons/icons/square-grid';\nimport Square2GridSvg from '../../../assets/line-icons/icons/square2-grid';\nimport TextIcon from '../../../assets/line-icons/icons/text-icon';\nimport TriDotSvg from '../../../assets/line-icons/icons/tri-dots';\nimport TriGridSvg from '../../../assets/line-icons/icons/tri-grid';\nimport Tri2DotSvg from '../../../assets/line-icons/icons/tri2-dots';\nimport Tri2GridSvg from '../../../assets/line-icons/icons/tri2-grid';\nimport UndoIcon from '../../../assets/line-icons/icons/undo';\nimport UploadIcon from '../../../assets/line-icons/icons/upload';\nimport ZoomInIcon from '../../../assets/line-icons/icons/zoom-in';\nimport ZoomOutIcon from '../../../assets/line-icons/icons/zoom-out';\nimport FlexView from '../../ui/layout/flex-view';\nimport {\n RedoIcon,\n StyledHighlighterWrapper,\n StyledPencilIcon,\n StyledRulerIcon,\n StyledSketchWrapper,\n} from '../cue-cavas-styled';\n\nexport const TOOLS_TO_COMP: IToolsToCompMap = {\n pen: StyledPencilIcon,\n ruler: StyledRulerIcon,\n marker: StyledSketchWrapper,\n highlighter: StyledHighlighterWrapper,\n eraser: EraserIcon,\n move: CursorIcon,\n undo: UndoIcon,\n redo: RedoIcon,\n pan: PanIcon,\n clearAll: ClearAllIcon,\n text: TextIcon,\n equation: EquationIcon,\n grid: GridIcon,\n home: HomeIcon,\n zoomIn: ZoomInIcon,\n zoomOut: ZoomOutIcon,\n upload: UploadIcon,\n download: DownloadIcon,\n};\n\nexport const GRID_TO_COMP: IGridToCompMap = {\n 'none': FlexView as unknown as TToolComponentType,\n 'square2-grid': Square2GridSvg,\n 'square-checked': SquareCheckedGridSvg,\n 'square-dots': SquareDotSvg,\n 'tri-dots': TriDotSvg,\n 'tri2-dots': Tri2DotSvg,\n 'square-grid': SquareGridSvg,\n 'tri-grid': TriGridSvg,\n 'tri2-grid': Tri2GridSvg,\n};\n"],"names":["TOOLS_TO_COMP","StyledPencilIcon","StyledRulerIcon","StyledSketchWrapper","StyledHighlighterWrapper","EraserIcon","CursorIcon","UndoIcon","RedoIcon","PanIcon","ClearAllIcon","TextIcon","EquationIcon","GridIcon","HomeIcon","ZoomInIcon","ZoomOutIcon","UploadIcon","DownloadIcon","GRID_TO_COMP","FlexView","Square2GridSvg","SquareCheckedGridSvg","SquareDotSvg","TriDotSvg","Tri2DotSvg","SquareGridSvg","TriGridSvg","Tri2GridSvg"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgCO,MAAMA,IAAiC;AAAA,EAC5C,KAAKC;AAAA,EACL,OAAOC;AAAA,EACP,QAAQC;AAAA,EACR,aAAaC;AAAA,EACb,QAAQC;AAAA,EACR,MAAMC;AAAA,EACN,MAAMC;AAAA,EACN,MAAMC;AAAA,EACN,KAAKC;AAAA,EACL,UAAUC;AAAA,EACV,MAAMC;AAAA,EACN,UAAUC;AAAAA,EACV,MAAMC;AAAA,EACN,MAAMC;AAAA,EACN,QAAQC;AAAA,EACR,SAASC;AAAA,EACT,QAAQC;AAAA,EACR,UAAUC;AACZ,GAEaC,IAA+B;AAAA,EAC1C,MAAQC;AAAA,EACR,gBAAgBC;AAAA,EAChB,kBAAkBC;AAAA,EAClB,eAAeC;AAAA,EACf,YAAYC;AAAA,EACZ,aAAaC;AAAA,EACb,eAAeC;AAAA,EACf,YAAYC;AAAA,EACZ,aAAaC;AACf;"}
@@ -0,0 +1,56 @@
1
+ import { jsxs as r, jsx as o } from "react/jsx-runtime";
2
+ import { memo as d, useRef as C } from "react";
3
+ import $ from "../../ui/buttons/clickable/clickable.js";
4
+ import v from "../../ui/hooks/use-context-menu-click-handler.js";
5
+ import m from "../../ui/layout/flex-view.js";
6
+ import { getIsWritingTool as c } from "../cue-canvas-helpers.js";
7
+ import { PenIconWrapper as T, StyledDownIcon as h, MenuWrapper as b } from "../cue-cavas-styled.js";
8
+ import { useCueCanvasActions as g } from "../hooks/use-cue-canvas-actions.js";
9
+ import x from "./color-palette.js";
10
+ import { TOOLS_TO_COMP as A } from "./icon-map.js";
11
+ import I from "./tool.js";
12
+ const _ = d(({ writingTools: s, userType: a }) => {
13
+ const { activeTool: e, activeColor: t, setActiveColor: u } = g(), i = C(null), { menuVisible: n, onMenuClick: f } = v(
14
+ i,
15
+ void 0,
16
+ !0,
17
+ void 0
18
+ ), p = A[c(e) ? e : "pen"];
19
+ return /* @__PURE__ */ r(m, { $borderRadius: 16, $background: "WHITE", ref: i, children: [
20
+ /* @__PURE__ */ o(T, { children: /* @__PURE__ */ o($, { onClick: f, label: "Active Tool", children: /* @__PURE__ */ r(m, { $flexDirection: "row", $justifyContent: "center", $alignItems: "center", children: [
21
+ /* @__PURE__ */ o(
22
+ p,
23
+ {
24
+ $active: c(e),
25
+ $activeColor: t,
26
+ $shouldAnimate: !1
27
+ }
28
+ ),
29
+ /* @__PURE__ */ o(h, { $isAnimating: n })
30
+ ] }) }) }),
31
+ n && /* @__PURE__ */ r(
32
+ b,
33
+ {
34
+ $flexDirection: "row",
35
+ $alignItems: "center",
36
+ $borderColor: "GREY_1",
37
+ $background: "WHITE",
38
+ children: [
39
+ s.map((l) => /* @__PURE__ */ o(I, { tool: l, shouldAnimate: !1, withGutter: !0 }, l)),
40
+ /* @__PURE__ */ o(
41
+ x,
42
+ {
43
+ setActiveColor: u,
44
+ activeColor: t,
45
+ userType: a
46
+ }
47
+ )
48
+ ]
49
+ }
50
+ )
51
+ ] });
52
+ });
53
+ export {
54
+ _ as default
55
+ };
56
+ //# sourceMappingURL=pen-tool-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pen-tool-menu.js","sources":["../../../../src/features/cue-canvas/toolbar/pen-tool-menu.tsx"],"sourcesContent":["import type { IPenToolMenu, TToolComponentType } from '../types/toolbar';\nimport type { FC } from 'react';\n\nimport { memo, useRef } from 'react';\n\nimport Clickable from '../../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../../ui/layout/flex-view';\nimport { getIsWritingTool } from '../cue-canvas-helpers';\nimport { MenuWrapper, PenIconWrapper, StyledDownIcon } from '../cue-cavas-styled';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport ColorPalette from './color-palette';\nimport { TOOLS_TO_COMP } from './icon-map';\nimport Tool from './tool';\n\nconst PenToolMenu: FC<IPenToolMenu> = memo(({ writingTools, userType }) => {\n const { activeTool, activeColor, setActiveColor } = useCueCanvasActions();\n\n const penMenuRef = useRef(null);\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(\n penMenuRef,\n undefined,\n true,\n undefined,\n );\n\n const ActiveToolComponent = TOOLS_TO_COMP[\n getIsWritingTool(activeTool) ? activeTool : 'pen'\n ] as TToolComponentType;\n\n return (\n <FlexView $borderRadius={16} $background=\"WHITE\" ref={penMenuRef}>\n <PenIconWrapper>\n <Clickable onClick={onMenuClick} label=\"Active Tool\">\n <FlexView $flexDirection=\"row\" $justifyContent=\"center\" $alignItems=\"center\">\n <ActiveToolComponent\n $active={getIsWritingTool(activeTool)}\n $activeColor={activeColor}\n $shouldAnimate={false}\n />\n <StyledDownIcon $isAnimating={menuVisible} />\n </FlexView>\n </Clickable>\n </PenIconWrapper>\n {menuVisible && (\n <MenuWrapper\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $borderColor=\"GREY_1\"\n $background=\"WHITE\"\n >\n {writingTools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate={false} withGutter />\n ))}\n\n <ColorPalette\n setActiveColor={setActiveColor}\n activeColor={activeColor}\n userType={userType}\n />\n </MenuWrapper>\n )}\n </FlexView>\n );\n});\n\nexport default PenToolMenu;\n"],"names":["PenToolMenu","memo","writingTools","userType","activeTool","activeColor","setActiveColor","useCueCanvasActions","penMenuRef","useRef","menuVisible","onMenuClick","useContextMenuClickHandler","ActiveToolComponent","TOOLS_TO_COMP","getIsWritingTool","FlexView","jsx","PenIconWrapper","Clickable","jsxs","StyledDownIcon","MenuWrapper","tool","Tool","ColorPalette"],"mappings":";;;;;;;;;;;AAeA,MAAMA,IAAgCC,EAAK,CAAC,EAAE,cAAAC,GAAc,UAAAC,QAAe;AACzE,QAAM,EAAE,YAAAC,GAAY,aAAAC,GAAa,gBAAAC,MAAmBC,EAAoB,GAElEC,IAAaC,EAAO,IAAI,GACxB,EAAE,aAAAC,GAAa,aAAAC,EAAA,IAAgBC;AAAA,IACnCJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAGIK,IAAsBC,EAC1BC,EAAiBX,CAAU,IAAIA,IAAa,KAC9C;AAEA,2BACGY,GAAS,EAAA,eAAe,IAAI,aAAY,SAAQ,KAAKR,GACpD,UAAA;AAAA,IAAA,gBAAAS,EAACC,GACC,EAAA,UAAA,gBAAAD,EAACE,GAAU,EAAA,SAASR,GAAa,OAAM,eACrC,UAAC,gBAAAS,EAAAJ,GAAA,EAAS,gBAAe,OAAM,iBAAgB,UAAS,aAAY,UAClE,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACJ;AAAA,QAAA;AAAA,UACC,SAASE,EAAiBX,CAAU;AAAA,UACpC,cAAcC;AAAA,UACd,gBAAgB;AAAA,QAAA;AAAA,MAClB;AAAA,MACA,gBAAAY,EAACI,GAAe,EAAA,cAAcX,EAAa,CAAA;AAAA,IAAA,EAC7C,CAAA,EACF,CAAA,GACF;AAAA,IACCA,KACC,gBAAAU;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,gBAAe;AAAA,QACf,aAAY;AAAA,QACZ,cAAa;AAAA,QACb,aAAY;AAAA,QAEX,UAAA;AAAA,UAAapB,EAAA,IAAI,CAChBqB,MAAA,gBAAAN,EAACO,GAAK,EAAA,MAAAD,GAAuB,eAAe,IAAO,YAAU,GAAtC,GAAAA,CAAuC,CAC/D;AAAA,UAED,gBAAAN;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,gBAAAnB;AAAA,cACA,aAAAD;AAAA,cACA,UAAAF;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ,EAAA,CAAA;AAEJ,CAAC;"}
@@ -0,0 +1,34 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { memo as p, useCallback as T } from "react";
3
+ import f from "../../ui/buttons/clickable/clickable.js";
4
+ import d from "../../ui/layout/flex-view.js";
5
+ import { STATELESS_TOOLS as C, getIsWritingTool as u } from "../cue-canvas-helpers.js";
6
+ import { StyledWrapper as v } from "../cue-cavas-styled.js";
7
+ import { useCueCanvasActions as O } from "../hooks/use-cue-canvas-actions.js";
8
+ import S from "./grid-menu.js";
9
+ import { TOOLS_TO_COMP as $ } from "./icon-map.js";
10
+ const h = ({ tool: o, withGutter: n, shouldAnimate: l }) => {
11
+ const e = $[o], {
12
+ activeInstance: i,
13
+ setActiveTool: m,
14
+ activeTool: c,
15
+ activeColor: a
16
+ } = O(), s = T(
17
+ (t) => {
18
+ i == null || i.setTool(t), C.has(t) || m(t);
19
+ },
20
+ [i, m]
21
+ );
22
+ return o === "grid" ? /* @__PURE__ */ r(S, { GridIcon: e }) : /* @__PURE__ */ r(d, { $gutterX: n ? 0.25 : 0, children: /* @__PURE__ */ r(f, { onClick: () => s(o), label: o, children: u(o) ? /* @__PURE__ */ r(
23
+ e,
24
+ {
25
+ $active: c === o,
26
+ $activeColor: a,
27
+ $shouldAnimate: l
28
+ }
29
+ ) : /* @__PURE__ */ r(v, { $active: c === o, children: /* @__PURE__ */ r(e, {}) }) }) });
30
+ }, G = p(h);
31
+ export {
32
+ G as default
33
+ };
34
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sources":["../../../../src/features/cue-canvas/toolbar/tool.tsx"],"sourcesContent":["import type { TCueCanvasTool } from '../types/cue-canvas';\nimport type { TToolComponentType } from '../types/toolbar';\nimport type { FC } from 'react';\n\nimport { memo, useCallback } from 'react';\n\nimport Clickable from '../../ui/buttons/clickable/clickable';\nimport FlexView from '../../ui/layout/flex-view';\nimport { getIsWritingTool, STATELESS_TOOLS } from '../cue-canvas-helpers';\nimport { StyledWrapper } from '../cue-cavas-styled';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport GridMenu from './grid-menu';\nimport { TOOLS_TO_COMP } from './icon-map';\n\ninterface IToolProps {\n tool: TCueCanvasTool;\n withGutter?: boolean;\n shouldAnimate?: boolean;\n}\n\nconst Tool: FC<IToolProps> = ({ tool, withGutter, shouldAnimate }) => {\n const ToolComponent = TOOLS_TO_COMP[tool] as TToolComponentType;\n const {\n activeInstance: cueCanvas,\n setActiveTool,\n activeTool,\n activeColor,\n } = useCueCanvasActions();\n\n const onToolClick = useCallback(\n (t: TCueCanvasTool) => {\n cueCanvas?.setTool(t);\n\n if (!STATELESS_TOOLS.has(t)) {\n setActiveTool(t);\n }\n },\n [cueCanvas, setActiveTool],\n );\n\n if (tool === 'grid') {\n return <GridMenu GridIcon={ToolComponent} />;\n }\n\n return (\n <FlexView $gutterX={withGutter ? 0.25 : 0}>\n <Clickable onClick={() => onToolClick(tool)} label={tool}>\n {getIsWritingTool(tool) ? (\n <ToolComponent\n $active={activeTool === tool}\n $activeColor={activeColor}\n $shouldAnimate={shouldAnimate}\n />\n ) : (\n <StyledWrapper $active={activeTool === tool}>\n <ToolComponent />\n </StyledWrapper>\n )}\n </Clickable>\n </FlexView>\n );\n};\n\nexport default memo(Tool);\n"],"names":["Tool","tool","withGutter","shouldAnimate","ToolComponent","TOOLS_TO_COMP","cueCanvas","setActiveTool","activeTool","activeColor","useCueCanvasActions","onToolClick","useCallback","STATELESS_TOOLS","jsx","GridMenu","FlexView","Clickable","getIsWritingTool","StyledWrapper","Tool$1","memo"],"mappings":";;;;;;;;;AAoBA,MAAMA,IAAuB,CAAC,EAAE,MAAAC,GAAM,YAAAC,GAAY,eAAAC,QAAoB;AAC9D,QAAAC,IAAgBC,EAAcJ,CAAI,GAClC;AAAA,IACJ,gBAAgBK;AAAA,IAChB,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,MACEC,EAAoB,GAElBC,IAAcC;AAAA,IAClB,CAAC,MAAsB;AACrB,MAAAN,KAAA,QAAAA,EAAW,QAAQ,IAEdO,EAAgB,IAAI,CAAC,KACxBN,EAAc,CAAC;AAAA,IAEnB;AAAA,IACA,CAACD,GAAWC,CAAa;AAAA,EAAA;AAG3B,SAAIN,MAAS,SACJ,gBAAAa,EAACC,GAAS,EAAA,UAAUX,EAAe,CAAA,sBAIzCY,GAAS,EAAA,UAAUd,IAAa,OAAO,GACtC,UAAC,gBAAAY,EAAAG,GAAA,EAAU,SAAS,MAAMN,EAAYV,CAAI,GAAG,OAAOA,GACjD,UAAAiB,EAAiBjB,CAAI,IACpB,gBAAAa;AAAA,IAACV;AAAA,IAAA;AAAA,MACC,SAASI,MAAeP;AAAA,MACxB,cAAcQ;AAAA,MACd,gBAAgBN;AAAA,IAAA;AAAA,EAClB,IAEC,gBAAAW,EAAAK,GAAA,EAAc,SAASX,MAAeP,GACrC,UAAC,gBAAAa,EAAAV,GAAA,CAAc,CAAA,EACjB,CAAA,EAEJ,CAAA,EACF,CAAA;AAEJ,GAEegB,IAAAC,EAAKrB,CAAI;"}
@@ -1,91 +1,22 @@
1
- import { jsxs as d, jsx as r } from "react/jsx-runtime";
2
- import { memo as T, useRef as b, useEffect as v, useCallback as I } from "react";
3
- import S, { useTheme as y } from "styled-components";
4
- import R from "../../../assets/line-icons/icons/cursor.js";
5
- import x from "../../../assets/line-icons/icons/eraser.js";
6
- import p from "../../../assets/line-icons/icons/undo.js";
7
- import f from "../../ui/buttons/clickable/clickable.js";
8
- import A from "../../ui/hooks/use-context-menu-click-handler.js";
9
- import l from "../../ui/layout/flex-view.js";
10
- import { CANVAS_COLORS as O } from "../constants/constants.js";
11
- import { getUserTools as P } from "../cue-canvas-helpers.js";
12
- import { StyledWrapper as W, ColorPicker as j, StyledPencilIcon as w, StyledRulerIcon as E, StyledSketchWrapper as H, StyledHighlighterWrapper as M } from "../cue-cavas-styled.js";
13
- import { useCueCanvasActions as V } from "../hooks/use-cue-canvas-actions.js";
14
- import _ from "./color-pallete.js";
15
- const L = S(p)`
16
- transform: scaleX(-1);
17
- `, U = {
18
- pen: w,
19
- ruler: E,
20
- marker: H,
21
- highlighter: M,
22
- eraser: x,
23
- move: R,
24
- undo: p,
25
- redo: L
26
- }, X = T(({ userType: n }) => {
27
- const {
28
- activeInstance: o,
29
- activeTool: i,
30
- setActiveTool: c,
31
- setActiveColor: u,
32
- activeColor: t,
33
- isWritingToolActive: s
34
- } = V(), { colors: h } = y(), m = b(null), C = P(n);
35
- v(() => {
36
- o && (t && o.setColor(O[t]), i && (o == null || o.setTool(i)));
37
- }, [t, i, h, o]);
38
- const $ = I(
39
- (e) => {
40
- o == null || o.setTool(e), e !== "undo" && e !== "redo" && c(e);
41
- },
42
- [o, c]
43
- ), { menuVisible: g, onMenuClick: k } = A(
44
- m,
45
- void 0,
46
- !0,
47
- void 0
48
- );
49
- return /* @__PURE__ */ d(l, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", children: [
50
- C.map((e) => {
51
- const a = U[e];
52
- return /* @__PURE__ */ r(l, { $gutterX: 0.25, children: /* @__PURE__ */ r(f, { onClick: () => $(e), label: e, children: ["pen", "ruler", "marker", "highlighter"].includes(e) ? /* @__PURE__ */ r(a, { $active: i === e, $activeColor: t }) : /* @__PURE__ */ r(W, { $active: i === e, children: /* @__PURE__ */ r(a, {}) }) }) }, e);
53
- }),
54
- /* @__PURE__ */ d(
55
- l,
56
- {
57
- $width: 32,
58
- $height: 32,
59
- $alignItems: "center",
60
- $justifyContent: "center",
61
- $borderRadius: 16,
62
- $background: "WHITE",
63
- children: [
64
- /* @__PURE__ */ r(f, { onClick: k, label: "Color Picker", disabled: !s, children: /* @__PURE__ */ r(
65
- j,
66
- {
67
- $width: 22,
68
- $height: 22,
69
- $borderRadius: 11,
70
- $color: t,
71
- $opacity: s ? 1 : 0.5,
72
- ref: m
73
- }
74
- ) }),
75
- g && /* @__PURE__ */ r(
76
- _,
77
- {
78
- setActiveColor: u,
79
- activeColor: t,
80
- userType: n
81
- }
82
- )
83
- ]
84
- }
85
- )
1
+ import { jsx as m, jsxs as n } from "react/jsx-runtime";
2
+ import { memo as s, useEffect as a } from "react";
3
+ import c from "../../ui/layout/flex-view.js";
4
+ import { CANVAS_COLORS as p } from "../constants/constants.js";
5
+ import { getUserTools as u } from "../cue-canvas-helpers.js";
6
+ import { useCueCanvasActions as C } from "../hooks/use-cue-canvas-actions.js";
7
+ import x from "./color-picker-menu.js";
8
+ import b from "./tool.js";
9
+ import T from "./whiteboard-toolbar.js";
10
+ const $ = s(({ userType: t, renderAs: r }) => {
11
+ const f = u(t, r), { activeInstance: o, activeTool: i, activeColor: e } = C();
12
+ return a(() => {
13
+ o && (e && o.setColor(p[e]), i && (o == null || o.setTool(i)));
14
+ }, [e, i, o, r]), r === "whiteboard" ? /* @__PURE__ */ m(T, { tools: f, userType: t }) : /* @__PURE__ */ n(c, { $flexDirection: "row", $alignItems: "center", $justifyContent: "center", $flexGapX: 0.5, children: [
15
+ f.map((l) => /* @__PURE__ */ m(b, { tool: l, shouldAnimate: !0 }, l)),
16
+ /* @__PURE__ */ m(x, { userType: t })
86
17
  ] });
87
- }), re = X;
18
+ }), S = $;
88
19
  export {
89
- re as default
20
+ S as default
90
21
  };
91
22
  //# sourceMappingURL=toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/toolbar.tsx"],"sourcesContent":["import type { TCueCanvasTool } from '../types/cue-canvas';\nimport type { IToolsToCompMap, IToolbarProps, TToolComponentType } from '../types/toolbar';\n\nimport React, { memo, useCallback, useEffect, useRef } from 'react';\nimport styled from 'styled-components';\nimport { useTheme } from 'styled-components';\n\nimport CursorIcon from '../../../assets/line-icons/icons/cursor';\nimport EraserIcon from '../../../assets/line-icons/icons/eraser';\nimport UndoIcon from '../../../assets/line-icons/icons/undo';\nimport Clickable from '../../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../../ui/layout/flex-view';\nimport { CANVAS_COLORS } from '../constants/constants';\nimport { getUserTools } from '../cue-canvas-helpers';\nimport {\n StyledPencilIcon,\n StyledRulerIcon,\n StyledWrapper,\n StyledSketchWrapper,\n StyledHighlighterWrapper,\n ColorPicker,\n} from '../cue-cavas-styled';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport ColorPallete from './color-pallete';\n\nconst RedoIcon = styled(UndoIcon)`\n transform: scaleX(-1);\n`;\n\nconst TOOLS_TO_COMP: IToolsToCompMap = {\n pen: StyledPencilIcon,\n ruler: StyledRulerIcon,\n marker: StyledSketchWrapper,\n highlighter: StyledHighlighterWrapper,\n eraser: EraserIcon,\n move: CursorIcon,\n undo: UndoIcon,\n redo: RedoIcon,\n};\n\nconst Toolbar: React.FC<IToolbarProps> = memo(({ userType }) => {\n const {\n activeInstance: cueCanvas,\n activeTool,\n setActiveTool,\n setActiveColor,\n activeColor,\n isWritingToolActive,\n } = useCueCanvasActions();\n const { colors } = useTheme();\n\n const colorPalleteRef = useRef<HTMLDivElement>(null);\n\n const tools = getUserTools(userType);\n\n useEffect(() => {\n if (cueCanvas) {\n if (activeColor) {\n cueCanvas.setColor(CANVAS_COLORS[activeColor]);\n }\n\n if (activeTool) {\n cueCanvas?.setTool(activeTool);\n }\n }\n }, [activeColor, activeTool, colors, cueCanvas]);\n\n const onToolClick = useCallback(\n (tool: TCueCanvasTool) => {\n cueCanvas?.setTool(tool);\n if (tool !== 'undo' && tool !== 'redo') {\n setActiveTool(tool);\n }\n },\n [cueCanvas, setActiveTool],\n );\n\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(\n colorPalleteRef,\n undefined,\n true,\n undefined,\n );\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\">\n {tools.map(tool => {\n const ToolComponent = TOOLS_TO_COMP[tool] as TToolComponentType;\n\n return (\n <FlexView $gutterX={0.25} key={tool}>\n <Clickable onClick={() => onToolClick(tool)} label={tool}>\n {['pen', 'ruler', 'marker', 'highlighter'].includes(tool) ? (\n <ToolComponent $active={activeTool === tool} $activeColor={activeColor} />\n ) : (\n <StyledWrapper $active={activeTool === tool}>\n <ToolComponent />\n </StyledWrapper>\n )}\n </Clickable>\n </FlexView>\n );\n })}\n <FlexView\n $width={32}\n $height={32}\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $borderRadius={16}\n $background=\"WHITE\"\n >\n <Clickable onClick={onMenuClick} label=\"Color Picker\" disabled={!isWritingToolActive}>\n <ColorPicker\n $width={22}\n $height={22}\n $borderRadius={11}\n $color={activeColor}\n $opacity={isWritingToolActive ? 1 : 0.5}\n ref={colorPalleteRef}\n />\n </Clickable>\n {menuVisible && (\n <ColorPallete\n setActiveColor={setActiveColor}\n activeColor={activeColor}\n userType={userType}\n />\n )}\n </FlexView>\n </FlexView>\n );\n});\n\nexport default Toolbar;\n"],"names":["RedoIcon","styled","UndoIcon","TOOLS_TO_COMP","StyledPencilIcon","StyledRulerIcon","StyledSketchWrapper","StyledHighlighterWrapper","EraserIcon","CursorIcon","Toolbar","memo","userType","cueCanvas","activeTool","setActiveTool","setActiveColor","activeColor","isWritingToolActive","useCueCanvasActions","colors","useTheme","colorPalleteRef","useRef","tools","getUserTools","useEffect","CANVAS_COLORS","onToolClick","useCallback","tool","menuVisible","onMenuClick","useContextMenuClickHandler","FlexView","ToolComponent","jsx","Clickable","StyledWrapper","jsxs","ColorPicker","ColorPallete","Toolbar$1"],"mappings":";;;;;;;;;;;;;;AA0BA,MAAMA,IAAWC,EAAOC,CAAQ;AAAA;AAAA,GAI1BC,IAAiC;AAAA,EACrC,KAAKC;AAAA,EACL,OAAOC;AAAA,EACP,QAAQC;AAAA,EACR,aAAaC;AAAA,EACb,QAAQC;AAAA,EACR,MAAMC;AAAA,EACN,MAAMP;AAAA,EACN,MAAMF;AACR,GAEMU,IAAmCC,EAAK,CAAC,EAAE,UAAAC,QAAe;AACxD,QAAA;AAAA,IACJ,gBAAgBC;AAAA,IAChB,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,qBAAAC;AAAA,MACEC,EAAoB,GAClB,EAAE,QAAAC,MAAWC,KAEbC,IAAkBC,EAAuB,IAAI,GAE7CC,IAAQC,EAAab,CAAQ;AAEnC,EAAAc,EAAU,MAAM;AACd,IAAIb,MACEI,KACQJ,EAAA,SAASc,EAAcV,CAAW,CAAC,GAG3CH,MACFD,KAAA,QAAAA,EAAW,QAAQC;AAAA,KAGtB,CAACG,GAAaH,GAAYM,GAAQP,CAAS,CAAC;AAE/C,QAAMe,IAAcC;AAAA,IAClB,CAACC,MAAyB;AACxB,MAAAjB,KAAA,QAAAA,EAAW,QAAQiB,IACfA,MAAS,UAAUA,MAAS,UAC9Bf,EAAce,CAAI;AAAA,IAEtB;AAAA,IACA,CAACjB,GAAWE,CAAa;AAAA,EAAA,GAGrB,EAAE,aAAAgB,GAAa,aAAAC,EAAA,IAAgBC;AAAA,IACnCX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,2BACGY,GAAS,EAAA,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UACjE,UAAA;AAAA,IAAAV,EAAM,IAAI,CAAQM,MAAA;AACX,YAAAK,IAAgBhC,EAAc2B,CAAI;AAExC,+BACGI,GAAS,EAAA,UAAU,MAClB,UAAC,gBAAAE,EAAAC,GAAA,EAAU,SAAS,MAAMT,EAAYE,CAAI,GAAG,OAAOA,GACjD,UAAA,CAAC,OAAO,SAAS,UAAU,aAAa,EAAE,SAASA,CAAI,sBACrDK,GAAc,EAAA,SAASrB,MAAegB,GAAM,cAAcb,EAAa,CAAA,IAExE,gBAAAmB,EAACE,GAAc,EAAA,SAASxB,MAAegB,GACrC,UAAA,gBAAAM,EAACD,KAAc,EACjB,CAAA,EAEJ,CAAA,KAT6BL,CAU/B;AAAA,IAAA,CAEH;AAAA,IACD,gBAAAS;AAAA,MAACL;AAAA,MAAA;AAAA,QACC,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,aAAY;AAAA,QACZ,iBAAgB;AAAA,QAChB,eAAe;AAAA,QACf,aAAY;AAAA,QAEZ,UAAA;AAAA,UAAA,gBAAAE,EAACC,KAAU,SAASL,GAAa,OAAM,gBAAe,UAAU,CAACd,GAC/D,UAAA,gBAAAkB;AAAA,YAACI;AAAA,YAAA;AAAA,cACC,QAAQ;AAAA,cACR,SAAS;AAAA,cACT,eAAe;AAAA,cACf,QAAQvB;AAAA,cACR,UAAUC,IAAsB,IAAI;AAAA,cACpC,KAAKI;AAAA,YAAA;AAAA,UAAA,GAET;AAAA,UACCS,KACC,gBAAAK;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,gBAAAzB;AAAA,cACA,aAAAC;AAAA,cACA,UAAAL;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF,EAAA,CAAA;AAEJ,CAAC,GAED8B,KAAehC;"}
1
+ {"version":3,"file":"toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/toolbar.tsx"],"sourcesContent":["import type { IToolbarProps } from '../types/toolbar';\n\nimport React, { memo, useEffect } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport { CANVAS_COLORS } from '../constants/constants';\nimport { getUserTools } from '../cue-canvas-helpers';\nimport { useCueCanvasActions } from '../hooks/use-cue-canvas-actions';\nimport ColorPickerMenu from './color-picker-menu';\nimport Tool from './tool';\nimport WhiteboardToolbar from './whiteboard-toolbar';\n\nconst Toolbar: React.FC<IToolbarProps> = memo(({ userType, renderAs }) => {\n const tools = getUserTools(userType, renderAs);\n const { activeInstance: cueCanvas, activeTool, activeColor } = useCueCanvasActions();\n\n useEffect(() => {\n if (cueCanvas) {\n if (activeColor) {\n cueCanvas.setColor(CANVAS_COLORS[activeColor]);\n }\n\n if (activeTool) {\n cueCanvas?.setTool(activeTool);\n }\n }\n }, [activeColor, activeTool, cueCanvas, renderAs]);\n\n if (renderAs === 'whiteboard') {\n return <WhiteboardToolbar tools={tools} userType={userType} />;\n }\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $justifyContent=\"center\" $flexGapX={0.5}>\n {tools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate />\n ))}\n <ColorPickerMenu userType={userType} />\n </FlexView>\n );\n});\n\nexport default Toolbar;\n"],"names":["Toolbar","memo","userType","renderAs","tools","getUserTools","cueCanvas","activeTool","activeColor","useCueCanvasActions","useEffect","CANVAS_COLORS","jsx","WhiteboardToolbar","jsxs","FlexView","Tool","tool","ColorPickerMenu","Toolbar$1"],"mappings":";;;;;;;;;AAYA,MAAMA,IAAmCC,EAAK,CAAC,EAAE,UAAAC,GAAU,UAAAC,QAAe;AAClE,QAAAC,IAAQC,EAAaH,GAAUC,CAAQ,GACvC,EAAE,gBAAgBG,GAAW,YAAAC,GAAY,aAAAC,EAAA,IAAgBC;AAc/D,SAZAC,EAAU,MAAM;AACd,IAAIJ,MACEE,KACQF,EAAA,SAASK,EAAcH,CAAW,CAAC,GAG3CD,MACFD,KAAA,QAAAA,EAAW,QAAQC;AAAA,KAGtB,CAACC,GAAaD,GAAYD,GAAWH,CAAQ,CAAC,GAE7CA,MAAa,eACR,gBAAAS,EAACC,GAAkB,EAAA,OAAAT,GAAc,UAAAF,EAAoB,CAAA,IAI5D,gBAAAY,EAACC,KAAS,gBAAe,OAAM,aAAY,UAAS,iBAAgB,UAAS,WAAW,KACrF,UAAA;AAAA,IAAMX,EAAA,IAAI,OACR,gBAAAQ,EAAAI,GAAA,EAAK,MAAAC,GAAuB,eAAa,GAAA,GAAnBA,CAAoB,CAC5C;AAAA,IACD,gBAAAL,EAACM,KAAgB,UAAAhB,GAAoB;AAAA,EACvC,EAAA,CAAA;AAEJ,CAAC,GAEDiB,IAAenB;"}
@@ -0,0 +1,16 @@
1
+ import { jsxs as l, jsx as r } from "react/jsx-runtime";
2
+ import { memo as s } from "react";
3
+ import n from "../../ui/layout/flex-view.js";
4
+ import a from "./pen-tool-menu.js";
5
+ import f from "./tool.js";
6
+ const h = s(({ tools: o, userType: i }) => {
7
+ const t = o.slice(0, 4), m = o.slice(4);
8
+ return /* @__PURE__ */ l(n, { $flexDirection: "row", $alignItems: "center", $flexGapX: 0.25, $position: "relative", children: [
9
+ /* @__PURE__ */ r(a, { writingTools: t, userType: i }),
10
+ m.map((e) => /* @__PURE__ */ r(f, { tool: e, shouldAnimate: !1 }, e))
11
+ ] });
12
+ });
13
+ export {
14
+ h as default
15
+ };
16
+ //# sourceMappingURL=whiteboard-toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whiteboard-toolbar.js","sources":["../../../../src/features/cue-canvas/toolbar/whiteboard-toolbar.tsx"],"sourcesContent":["import type { IWhiteboardToolbar } from '../types/toolbar';\nimport type { FC } from 'react';\n\nimport { memo } from 'react';\n\nimport FlexView from '../../ui/layout/flex-view';\nimport PenToolMenu from './pen-tool-menu';\nimport Tool from './tool';\n\nconst WhiteboardToolbar: FC<IWhiteboardToolbar> = memo(({ tools, userType }) => {\n const writingTools = tools.slice(0, 4);\n const otherTools = tools.slice(4);\n\n return (\n <FlexView $flexDirection=\"row\" $alignItems=\"center\" $flexGapX={0.25} $position=\"relative\">\n <PenToolMenu writingTools={writingTools} userType={userType} />\n {otherTools.map(tool => (\n <Tool tool={tool} key={tool} shouldAnimate={false} />\n ))}\n </FlexView>\n );\n});\n\nexport default WhiteboardToolbar;\n"],"names":["WhiteboardToolbar","memo","tools","userType","writingTools","otherTools","jsxs","FlexView","jsx","PenToolMenu","tool","Tool"],"mappings":";;;;;AASA,MAAMA,IAA4CC,EAAK,CAAC,EAAE,OAAAC,GAAO,UAAAC,QAAe;AAC9E,QAAMC,IAAeF,EAAM,MAAM,GAAG,CAAC,GAC/BG,IAAaH,EAAM,MAAM,CAAC;AAG9B,SAAA,gBAAAI,EAACC,KAAS,gBAAe,OAAM,aAAY,UAAS,WAAW,MAAM,WAAU,YAC7E,UAAA;AAAA,IAAC,gBAAAC,EAAAC,GAAA,EAAY,cAAAL,GAA4B,UAAAD,EAAoB,CAAA;AAAA,IAC5DE,EAAW,IAAI,CACdK,MAAA,gBAAAF,EAACG,KAAK,MAAAD,GAAuB,eAAe,GAArB,GAAAA,CAA4B,CACpD;AAAA,EACH,EAAA,CAAA;AAEJ,CAAC;"}
@@ -1,17 +1,17 @@
1
- import { jsxs as D, Fragment as I, jsx as r } from "react/jsx-runtime";
2
- import U from "../../../node_modules/lodash.throttle/index.js";
3
- import { useRef as W, useState as m, useCallback as $, useEffect as Y } from "react";
4
- import { useTheme as H } from "styled-components";
1
+ import { jsxs as I, Fragment as U, jsx as r } from "react/jsx-runtime";
2
+ import W from "../../../node_modules/lodash.throttle/index.js";
3
+ import { useRef as Y, useState as m, useCallback as $, useEffect as H } from "react";
4
+ import { useTheme as P } from "styled-components";
5
5
  import C from "../layout/flex-view.js";
6
- import P from "../portal/portal.js";
7
- import V from "../text/text.js";
8
- import { TooltipBody as Z } from "./arrow-tooltip-styled.js";
9
- import { computeTooltipNewCoOrdinates as q } from "./arrow-tooltip-util.js";
10
- const y = 8, G = 100, J = ({
6
+ import V from "../portal/portal.js";
7
+ import Z from "../text/text.js";
8
+ import { TooltipBody as q } from "./arrow-tooltip-styled.js";
9
+ import { computeTooltipNewCoOrdinates as y } from "./arrow-tooltip-util.js";
10
+ const G = 8, J = 100, K = ({
11
11
  isAnimated: O,
12
12
  alwaysVisible: o = !1,
13
13
  arrowColor: T,
14
- arrowSize: h = y,
14
+ arrowSize: h = G,
15
15
  arrowXCoOrdinates: g,
16
16
  arrowYCoOrdinates: w,
17
17
  backgroundColor: R,
@@ -27,61 +27,62 @@ const y = 8, G = 100, J = ({
27
27
  tooltipYCoOrdinates: k,
28
28
  width: F,
29
29
  widthX: L,
30
- zIndex: M
30
+ zIndex: M,
31
+ parentWidth: S
31
32
  }) => {
32
- const { arrowTooltip: S } = H(), { tooltipVariants: a } = S, { backgroundColorName: X } = a[i], u = W(null), [_, p] = m(o), [j, v] = m(
33
+ const { arrowTooltip: X } = P(), { tooltipVariants: a } = X, { backgroundColorName: _ } = a[i], u = Y(null), [j, p] = m(o), [v, z] = m(
33
34
  null
34
35
  ), s = $(
35
36
  (e, n) => {
36
- v(e), p(n);
37
+ z(e), p(n);
37
38
  },
38
39
  []
39
- ), z = $(() => {
40
+ ), B = $(() => {
40
41
  if (t || o)
41
42
  return null;
42
43
  s(null, !1);
43
- }, [o, s, t]), d = U(() => {
44
+ }, [o, s, t]), d = W(() => {
44
45
  var f;
45
46
  const { current: e } = u;
46
47
  if (t || !e) return null;
47
- const n = (f = e.children[0]) == null ? void 0 : f.getBoundingClientRect(), B = n ? q(c, n) : null;
48
- return s(B, !0), null;
49
- }, G);
50
- return Y(() => {
48
+ const n = (f = e.children[0]) == null ? void 0 : f.getBoundingClientRect(), D = n ? y(c, n) : null;
49
+ return s(D, !0), null;
50
+ }, J);
51
+ return H(() => {
51
52
  t && p(!1), o && d();
52
- }, [o, t]), /* @__PURE__ */ D(I, { children: [
53
+ }, [o, t]), /* @__PURE__ */ I(U, { children: [
53
54
  /* @__PURE__ */ r(
54
55
  C,
55
56
  {
56
- $width: "fit-content",
57
+ $width: S || "fit-content",
57
58
  ref: u,
58
59
  onMouseEnter: d,
59
- onMouseLeave: z,
60
+ onMouseLeave: B,
60
61
  children: /* @__PURE__ */ r(C, { children: x })
61
62
  }
62
63
  ),
63
- _ && /* @__PURE__ */ r(P, { portalId: "tooltip-root", children: /* @__PURE__ */ r(
64
- Z,
64
+ j && /* @__PURE__ */ r(V, { portalId: "tooltip-root", children: /* @__PURE__ */ r(
65
+ q,
65
66
  {
66
67
  $arrowSize: h,
67
68
  $arrowXCoOrdinates: g,
68
69
  $arrowYCoOrdinates: w,
69
70
  $position: c,
70
71
  $renderAs: i,
71
- $tooltipCoOrdinates: j,
72
+ $tooltipCoOrdinates: v,
72
73
  $tooltipOffset: E,
73
74
  $tooltipXCoOrdinates: N,
74
75
  $tooltipYCoOrdinates: k,
75
76
  $width: F,
76
77
  $widthX: L,
77
78
  $zIndex: M,
78
- $background: X,
79
+ $background: _,
79
80
  $backgroundColor: R,
80
81
  $arrowColor: T,
81
82
  $borderColor: b,
82
83
  $isAnimated: O,
83
84
  children: typeof l == "string" ? /* @__PURE__ */ r(
84
- V,
85
+ Z,
85
86
  {
86
87
  $renderAs: A || "body3",
87
88
  $color: a[i].textColorName,
@@ -92,8 +93,8 @@ const y = 8, G = 100, J = ({
92
93
  }
93
94
  ) })
94
95
  ] });
95
- }, so = J;
96
+ }, co = K;
96
97
  export {
97
- so as default
98
+ co as default
98
99
  };
99
100
  //# sourceMappingURL=arrow-tooltip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arrow-tooltip.js","sources":["../../../../src/features/ui/arrow-tooltip/arrow-tooltip.tsx"],"sourcesContent":["import type {\n IArrowTooltipProps,\n THandleVisibleNCoOrdinatesProps,\n TTooltipCoOrdinatesProps,\n} from './arrow-tooltip-types';\n\nimport throttle from 'lodash.throttle';\nimport { useState, type FC, useCallback, useRef, useEffect } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport FlexView from '../layout/flex-view';\nimport Portal from '../portal/portal';\nimport Text from '../text/text';\nimport * as Styled from './arrow-tooltip-styled';\nimport { computeTooltipNewCoOrdinates } from './arrow-tooltip-util';\n\nconst DEFAULT_ARROW_SIZE = 8;\nconst THROTTLE_DURATION = 100;\n\nconst ArrowTooltip: FC<IArrowTooltipProps> = ({\n isAnimated,\n alwaysVisible = false,\n arrowColor,\n arrowSize = DEFAULT_ARROW_SIZE,\n arrowXCoOrdinates,\n arrowYCoOrdinates,\n backgroundColor,\n borderColor,\n children,\n hidden,\n position,\n renderAs,\n textVariant,\n tooltipItem,\n tooltipOffset,\n tooltipXCoOrdinates,\n tooltipYCoOrdinates,\n width,\n widthX,\n zIndex,\n}) => {\n const { arrowTooltip } = useTheme();\n const { tooltipVariants } = arrowTooltip;\n const { backgroundColorName } = tooltipVariants[renderAs];\n\n const tooltipWrapperRef = useRef<HTMLDivElement>(null);\n const [visible, setVisible] = useState(alwaysVisible);\n const [tooltipCoOrdinates, setTooltipCoOrdinates] = useState<TTooltipCoOrdinatesProps | null>(\n null,\n );\n\n const handleVisibleNCoOrdinates: THandleVisibleNCoOrdinatesProps = useCallback(\n (newCoOrdinates, visibility) => {\n setTooltipCoOrdinates(newCoOrdinates);\n setVisible(visibility);\n },\n [],\n );\n\n const handleVisibility = useCallback(() => {\n if (hidden || alwaysVisible) {\n return null;\n }\n\n handleVisibleNCoOrdinates(null, false);\n\n return;\n }, [alwaysVisible, handleVisibleNCoOrdinates, hidden]);\n\n const handleOnMouseEnter = throttle(() => {\n const { current } = tooltipWrapperRef;\n\n if (hidden || !current) return null;\n\n const boundingClientRect = current.children[0]?.getBoundingClientRect();\n const newCoOrdinates = boundingClientRect\n ? computeTooltipNewCoOrdinates(position, boundingClientRect)\n : null;\n\n handleVisibleNCoOrdinates(newCoOrdinates, true);\n\n return null;\n }, THROTTLE_DURATION);\n\n useEffect(() => {\n if (hidden) {\n setVisible(false);\n }\n\n if (alwaysVisible) {\n handleOnMouseEnter();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [alwaysVisible, hidden]);\n\n return (\n <>\n <FlexView\n $width=\"fit-content\"\n ref={tooltipWrapperRef}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleVisibility}\n >\n <FlexView>{children}</FlexView>\n </FlexView>\n {visible && (\n <Portal portalId=\"tooltip-root\">\n <Styled.TooltipBody\n $arrowSize={arrowSize}\n $arrowXCoOrdinates={arrowXCoOrdinates}\n $arrowYCoOrdinates={arrowYCoOrdinates}\n $position={position}\n $renderAs={renderAs}\n $tooltipCoOrdinates={tooltipCoOrdinates}\n $tooltipOffset={tooltipOffset}\n $tooltipXCoOrdinates={tooltipXCoOrdinates}\n $tooltipYCoOrdinates={tooltipYCoOrdinates}\n $width={width}\n $widthX={widthX}\n $zIndex={zIndex}\n $background={backgroundColorName}\n $backgroundColor={backgroundColor}\n $arrowColor={arrowColor}\n $borderColor={borderColor}\n $isAnimated={isAnimated}\n >\n {typeof tooltipItem === 'string' ? (\n <Text\n $renderAs={textVariant || 'body3'}\n $color={tooltipVariants[renderAs].textColorName}\n $align=\"center\"\n >\n {tooltipItem}\n </Text>\n ) : (\n tooltipItem\n )}\n </Styled.TooltipBody>\n </Portal>\n )}\n </>\n );\n};\n\nexport default ArrowTooltip;\n"],"names":["DEFAULT_ARROW_SIZE","THROTTLE_DURATION","ArrowTooltip","isAnimated","alwaysVisible","arrowColor","arrowSize","arrowXCoOrdinates","arrowYCoOrdinates","backgroundColor","borderColor","children","hidden","position","renderAs","textVariant","tooltipItem","tooltipOffset","tooltipXCoOrdinates","tooltipYCoOrdinates","width","widthX","zIndex","arrowTooltip","useTheme","tooltipVariants","backgroundColorName","tooltipWrapperRef","useRef","visible","setVisible","useState","tooltipCoOrdinates","setTooltipCoOrdinates","handleVisibleNCoOrdinates","useCallback","newCoOrdinates","visibility","handleVisibility","handleOnMouseEnter","throttle","current","boundingClientRect","_a","computeTooltipNewCoOrdinates","useEffect","jsxs","Fragment","jsx","FlexView","Portal","Styled.TooltipBody","Text","ArrowTooltip$1"],"mappings":"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"}
1
+ {"version":3,"file":"arrow-tooltip.js","sources":["../../../../src/features/ui/arrow-tooltip/arrow-tooltip.tsx"],"sourcesContent":["import type {\n IArrowTooltipProps,\n THandleVisibleNCoOrdinatesProps,\n TTooltipCoOrdinatesProps,\n} from './arrow-tooltip-types';\n\nimport throttle from 'lodash.throttle';\nimport { useState, type FC, useCallback, useRef, useEffect } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport FlexView from '../layout/flex-view';\nimport Portal from '../portal/portal';\nimport Text from '../text/text';\nimport * as Styled from './arrow-tooltip-styled';\nimport { computeTooltipNewCoOrdinates } from './arrow-tooltip-util';\n\nconst DEFAULT_ARROW_SIZE = 8;\nconst THROTTLE_DURATION = 100;\n\nconst ArrowTooltip: FC<IArrowTooltipProps> = ({\n isAnimated,\n alwaysVisible = false,\n arrowColor,\n arrowSize = DEFAULT_ARROW_SIZE,\n arrowXCoOrdinates,\n arrowYCoOrdinates,\n backgroundColor,\n borderColor,\n children,\n hidden,\n position,\n renderAs,\n textVariant,\n tooltipItem,\n tooltipOffset,\n tooltipXCoOrdinates,\n tooltipYCoOrdinates,\n width,\n widthX,\n zIndex,\n parentWidth,\n}) => {\n const { arrowTooltip } = useTheme();\n const { tooltipVariants } = arrowTooltip;\n const { backgroundColorName } = tooltipVariants[renderAs];\n\n const tooltipWrapperRef = useRef<HTMLDivElement>(null);\n const [visible, setVisible] = useState(alwaysVisible);\n const [tooltipCoOrdinates, setTooltipCoOrdinates] = useState<TTooltipCoOrdinatesProps | null>(\n null,\n );\n\n const handleVisibleNCoOrdinates: THandleVisibleNCoOrdinatesProps = useCallback(\n (newCoOrdinates, visibility) => {\n setTooltipCoOrdinates(newCoOrdinates);\n setVisible(visibility);\n },\n [],\n );\n\n const handleVisibility = useCallback(() => {\n if (hidden || alwaysVisible) {\n return null;\n }\n\n handleVisibleNCoOrdinates(null, false);\n\n return;\n }, [alwaysVisible, handleVisibleNCoOrdinates, hidden]);\n\n const handleOnMouseEnter = throttle(() => {\n const { current } = tooltipWrapperRef;\n\n if (hidden || !current) return null;\n\n const boundingClientRect = current.children[0]?.getBoundingClientRect();\n const newCoOrdinates = boundingClientRect\n ? computeTooltipNewCoOrdinates(position, boundingClientRect)\n : null;\n\n handleVisibleNCoOrdinates(newCoOrdinates, true);\n\n return null;\n }, THROTTLE_DURATION);\n\n useEffect(() => {\n if (hidden) {\n setVisible(false);\n }\n\n if (alwaysVisible) {\n handleOnMouseEnter();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [alwaysVisible, hidden]);\n\n return (\n <>\n <FlexView\n $width={parentWidth || 'fit-content'}\n ref={tooltipWrapperRef}\n onMouseEnter={handleOnMouseEnter}\n onMouseLeave={handleVisibility}\n >\n <FlexView>{children}</FlexView>\n </FlexView>\n {visible && (\n <Portal portalId=\"tooltip-root\">\n <Styled.TooltipBody\n $arrowSize={arrowSize}\n $arrowXCoOrdinates={arrowXCoOrdinates}\n $arrowYCoOrdinates={arrowYCoOrdinates}\n $position={position}\n $renderAs={renderAs}\n $tooltipCoOrdinates={tooltipCoOrdinates}\n $tooltipOffset={tooltipOffset}\n $tooltipXCoOrdinates={tooltipXCoOrdinates}\n $tooltipYCoOrdinates={tooltipYCoOrdinates}\n $width={width}\n $widthX={widthX}\n $zIndex={zIndex}\n $background={backgroundColorName}\n $backgroundColor={backgroundColor}\n $arrowColor={arrowColor}\n $borderColor={borderColor}\n $isAnimated={isAnimated}\n >\n {typeof tooltipItem === 'string' ? (\n <Text\n $renderAs={textVariant || 'body3'}\n $color={tooltipVariants[renderAs].textColorName}\n $align=\"center\"\n >\n {tooltipItem}\n </Text>\n ) : (\n tooltipItem\n )}\n </Styled.TooltipBody>\n </Portal>\n )}\n </>\n );\n};\n\nexport default ArrowTooltip;\n"],"names":["DEFAULT_ARROW_SIZE","THROTTLE_DURATION","ArrowTooltip","isAnimated","alwaysVisible","arrowColor","arrowSize","arrowXCoOrdinates","arrowYCoOrdinates","backgroundColor","borderColor","children","hidden","position","renderAs","textVariant","tooltipItem","tooltipOffset","tooltipXCoOrdinates","tooltipYCoOrdinates","width","widthX","zIndex","parentWidth","arrowTooltip","useTheme","tooltipVariants","backgroundColorName","tooltipWrapperRef","useRef","visible","setVisible","useState","tooltipCoOrdinates","setTooltipCoOrdinates","handleVisibleNCoOrdinates","useCallback","newCoOrdinates","visibility","handleVisibility","handleOnMouseEnter","throttle","current","boundingClientRect","_a","computeTooltipNewCoOrdinates","useEffect","jsxs","Fragment","jsx","FlexView","Portal","Styled.TooltipBody","Text","ArrowTooltip$1"],"mappings":"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"}
@@ -1,27 +1,41 @@
1
- import e from "styled-components";
2
- const s = e.div`
3
- width: fit-content;
1
+ import o from "styled-components";
2
+ const d = o.div`
3
+ width: auto;
4
4
  height: fit-content;
5
5
  position: relative;
6
6
  border-radius: 50%;
7
- `, p = e.div(
8
- ({ $visible: t, $menuOffset: o, $startLeft: n, $menuZIndex: i, $placeTop: r }) => `
7
+ `, f = o.div(
8
+ ({
9
+ $visible: t,
10
+ $menuOffset: a,
11
+ $startLeft: i,
12
+ $menuZIndex: s,
13
+ $placeTop: e,
14
+ $menuWidth: r,
15
+ $menuWidthX: n,
16
+ theme: p
17
+ }) => {
18
+ const { layout: u } = p;
19
+ return `
9
20
  position: absolute;
10
- top: calc(${r ? "0% -" : "100% +"} ${o ?? 0}px);
11
- ${n ? "left: 0" : "right: 0"};
12
- z-index: ${i ?? "unset"};
21
+ width: ${r ? `${r}` : "auto"}${typeof r == "number" ? "px" : ""};
22
+ ${n ? `width: ${n * u.gutter}px;` : ""}
23
+ top: calc(${e ? "0% -" : "100% +"} ${a ?? 0}px);
24
+ ${i ? "left: 0" : "right: 0"};
25
+ z-index: ${s ?? "unset"};
13
26
 
14
27
  transform-origin: top;
15
- transform: scaleY(${t ? 1 : 0}) rotate(${r ? 180 : 0}deg);
28
+ transform: scaleY(${t ? 1 : 0}) rotate(${e ? 180 : 0}deg);
16
29
  opacity: ${t ? 1 : 0};
17
30
  transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
18
- `
19
- ), d = e.div(({ $placeTop: t }) => `
31
+ `;
32
+ }
33
+ ), $ = o.div(({ $placeTop: t }) => `
20
34
  transform: rotate(${t ? 180 : 0}deg);
21
35
  `);
22
36
  export {
23
- d as MenuElementWrapper,
24
- p as OptionsMenuWrapper,
25
- s as TargetElementWrapper
37
+ $ as MenuElementWrapper,
38
+ f as OptionsMenuWrapper,
39
+ d as TargetElementWrapper
26
40
  };
27
41
  //# sourceMappingURL=context-menu-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu-styled.js","sources":["../../../../src/features/ui/context-menu/context-menu-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nconst TargetElementWrapper = styled.div`\n width: fit-content;\n height: fit-content;\n position: relative;\n border-radius: 50%;\n`;\n\ninterface IOptionsMenuWrapperProps {\n $visible: boolean;\n $startLeft?: boolean;\n $menuOffset?: number;\n $menuZIndex?: number;\n $placeTop?: boolean;\n}\n\nconst OptionsMenuWrapper = styled.div<IOptionsMenuWrapperProps>(\n ({ $visible, $menuOffset, $startLeft, $menuZIndex, $placeTop }) => {\n return `\n position: absolute;\n top: calc(${$placeTop ? '0% -' : '100% +'} ${$menuOffset ?? 0}px);\n ${$startLeft ? 'left: 0' : 'right: 0'};\n z-index: ${$menuZIndex ?? 'unset'};\n\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0}) rotate(${$placeTop ? 180 : 0}deg);\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n `;\n },\n);\n\ninterface IMenuElementWrapperProps {\n $placeTop?: boolean;\n}\n\nconst MenuElementWrapper = styled.div<IMenuElementWrapperProps>(({ $placeTop }) => {\n return `\n transform: rotate(${$placeTop ? 180 : 0}deg);\n `;\n});\n\nexport { TargetElementWrapper, OptionsMenuWrapper, MenuElementWrapper };\n"],"names":["TargetElementWrapper","styled","OptionsMenuWrapper","$visible","$menuOffset","$startLeft","$menuZIndex","$placeTop","MenuElementWrapper"],"mappings":";AAEA,MAAMA,IAAuBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAe9BC,IAAqBD,EAAO;AAAA,EAChC,CAAC,EAAE,UAAAE,GAAU,aAAAC,GAAa,YAAAC,GAAY,aAAAC,GAAa,WAAAC,QAC1C;AAAA;AAAA,gBAEKA,IAAY,SAAS,QAAQ,IAAIH,KAAe,CAAC;AAAA,MAC3DC,IAAa,YAAY,UAAU;AAAA,eAC1BC,KAAe,OAAO;AAAA;AAAA;AAAA,wBAGbH,IAAW,IAAI,CAAC,YAAYI,IAAY,MAAM,CAAC;AAAA,eACxDJ,IAAW,IAAI,CAAC;AAAA;AAAA;AAI/B,GAMMK,IAAqBP,EAAO,IAA8B,CAAC,EAAE,WAAAM,QAC1D;AAAA,wBACeA,IAAY,MAAM,CAAC;AAAA,GAE1C;"}
1
+ {"version":3,"file":"context-menu-styled.js","sources":["../../../../src/features/ui/context-menu/context-menu-styled.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nconst TargetElementWrapper = styled.div`\n width: auto;\n height: fit-content;\n position: relative;\n border-radius: 50%;\n`;\n\ninterface IOptionsMenuWrapperProps {\n $visible: boolean;\n $startLeft?: boolean;\n $menuOffset?: number;\n $menuZIndex?: number;\n $placeTop?: boolean;\n $menuWidth?: number | string;\n $menuWidthX?: number;\n}\n\nconst OptionsMenuWrapper = styled.div<IOptionsMenuWrapperProps>(\n ({\n $visible,\n $menuOffset,\n $startLeft,\n $menuZIndex,\n $placeTop,\n $menuWidth,\n $menuWidthX,\n theme,\n }) => {\n const { layout } = theme;\n\n return `\n position: absolute;\n width: ${$menuWidth ? `${$menuWidth}` : 'auto'}${typeof $menuWidth === 'number' ? 'px' : ''};\n ${$menuWidthX ? `width: ${$menuWidthX * layout.gutter}px;` : ''}\n top: calc(${$placeTop ? '0% -' : '100% +'} ${$menuOffset ?? 0}px);\n ${$startLeft ? 'left: 0' : 'right: 0'};\n z-index: ${$menuZIndex ?? 'unset'};\n\n transform-origin: top;\n transform: scaleY(${$visible ? 1 : 0}) rotate(${$placeTop ? 180 : 0}deg);\n opacity: ${$visible ? 1 : 0};\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n `;\n },\n);\n\ninterface IMenuElementWrapperProps {\n $placeTop?: boolean;\n}\n\nconst MenuElementWrapper = styled.div<IMenuElementWrapperProps>(({ $placeTop }) => {\n return `\n transform: rotate(${$placeTop ? 180 : 0}deg);\n `;\n});\n\nexport { TargetElementWrapper, OptionsMenuWrapper, MenuElementWrapper };\n"],"names":["TargetElementWrapper","styled","OptionsMenuWrapper","$visible","$menuOffset","$startLeft","$menuZIndex","$placeTop","$menuWidth","$menuWidthX","theme","layout","MenuElementWrapper"],"mappings":";AAEA,MAAMA,IAAuBC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA,GAiB9BC,IAAqBD,EAAO;AAAA,EAChC,CAAC;AAAA,IACC,UAAAE;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,OAAAC;AAAA,EAAA,MACI;AACE,UAAA,EAAE,QAAAC,EAAW,IAAAD;AAEZ,WAAA;AAAA;AAAA,aAEEF,IAAa,GAAGA,CAAU,KAAK,MAAM,GAAG,OAAOA,KAAe,WAAW,OAAO,EAAE;AAAA,MACzFC,IAAc,UAAUA,IAAcE,EAAO,MAAM,QAAQ,EAAE;AAAA,gBACnDJ,IAAY,SAAS,QAAQ,IAAIH,KAAe,CAAC;AAAA,MAC3DC,IAAa,YAAY,UAAU;AAAA,eAC1BC,KAAe,OAAO;AAAA;AAAA;AAAA,wBAGbH,IAAW,IAAI,CAAC,YAAYI,IAAY,MAAM,CAAC;AAAA,eACxDJ,IAAW,IAAI,CAAC;AAAA;AAAA;AAAA,EAG7B;AACF,GAMMS,IAAqBX,EAAO,IAA8B,CAAC,EAAE,WAAAM,QAC1D;AAAA,wBACeA,IAAY,MAAM,CAAC;AAAA,GAE1C;"}
@@ -1,27 +1,42 @@
1
- import { jsxs as u, jsx as t } from "react/jsx-runtime";
2
- import { memo as c, useRef as f } from "react";
3
- import a from "../hooks/use-context-menu-click-handler.js";
4
- import { TargetElementWrapper as x, OptionsMenuWrapper as $, MenuElementWrapper as d } from "./context-menu-styled.js";
5
- const C = c(
6
- ({ targetElement: r, menuElement: o, menuOffset: i, startLeft: l, menuZIndex: m, placeTop: e }) => {
7
- const n = f(null), { menuVisible: s, onMenuClick: p } = a(n);
8
- return /* @__PURE__ */ u(x, { ref: n, onClick: p, children: [
1
+ import { jsxs as a, jsx as t } from "react/jsx-runtime";
2
+ import { memo as $, useRef as d } from "react";
3
+ import x from "../hooks/use-context-menu-click-handler.js";
4
+ import { TargetElementWrapper as C, OptionsMenuWrapper as M, MenuElementWrapper as h } from "./context-menu-styled.js";
5
+ const W = $(
6
+ ({
7
+ targetElement: r,
8
+ menuElement: o,
9
+ menuOffset: i,
10
+ startLeft: m,
11
+ menuZIndex: u,
12
+ placeTop: e,
13
+ menuWidth: l,
14
+ menuWidthX: s,
15
+ handleOnMenuClick: p
16
+ }) => {
17
+ const n = d(null), { menuVisible: c, onMenuClick: f } = x(
18
+ n,
19
+ p
20
+ );
21
+ return /* @__PURE__ */ a(C, { ref: n, onClick: f, children: [
9
22
  r,
10
23
  /* @__PURE__ */ t(
11
- $,
24
+ M,
12
25
  {
13
26
  $menuOffset: i,
14
- $visible: s,
15
- $startLeft: l,
16
- $menuZIndex: m,
27
+ $visible: c,
28
+ $startLeft: m,
29
+ $menuZIndex: u,
17
30
  $placeTop: e,
18
- children: /* @__PURE__ */ t(d, { $placeTop: e, children: o })
31
+ $menuWidth: l,
32
+ $menuWidthX: s,
33
+ children: /* @__PURE__ */ t(h, { $placeTop: e, children: o })
19
34
  }
20
35
  )
21
36
  ] });
22
37
  }
23
- ), b = C;
38
+ ), O = W;
24
39
  export {
25
- b as default
40
+ O as default
26
41
  };
27
42
  //# sourceMappingURL=context-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu.js","sources":["../../../../src/features/ui/context-menu/context-menu.tsx"],"sourcesContent":["import type { IContextMenuProps } from './context-menu-types';\nimport type { FC } from 'react';\n\nimport { memo, useRef } from 'react';\n\nimport useContextMenuClickHandler from '../hooks/use-context-menu-click-handler';\nimport * as Styled from './context-menu-styled';\n\nconst ContextMenu: FC<IContextMenuProps> = memo(\n ({ targetElement, menuElement, menuOffset, startLeft, menuZIndex, placeTop }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(containerRef);\n\n return (\n <Styled.TargetElementWrapper ref={containerRef} onClick={onMenuClick}>\n {targetElement}\n\n <Styled.OptionsMenuWrapper\n $menuOffset={menuOffset}\n $visible={menuVisible}\n $startLeft={startLeft}\n $menuZIndex={menuZIndex}\n $placeTop={placeTop}\n >\n <Styled.MenuElementWrapper $placeTop={placeTop}>{menuElement}</Styled.MenuElementWrapper>\n </Styled.OptionsMenuWrapper>\n </Styled.TargetElementWrapper>\n );\n },\n);\n\nexport default ContextMenu;\n"],"names":["ContextMenu","memo","targetElement","menuElement","menuOffset","startLeft","menuZIndex","placeTop","containerRef","useRef","menuVisible","onMenuClick","useContextMenuClickHandler","Styled.TargetElementWrapper","jsx","Styled.OptionsMenuWrapper","Styled.MenuElementWrapper","ContextMenu$1"],"mappings":";;;;AAQA,MAAMA,IAAqCC;AAAA,EACzC,CAAC,EAAE,eAAAC,GAAe,aAAAC,GAAa,YAAAC,GAAY,WAAAC,GAAW,YAAAC,GAAY,UAAAC,QAAe;AACzE,UAAAC,IAAeC,EAAuB,IAAI,GAE1C,EAAE,aAAAC,GAAa,aAAAC,EAAY,IAAIC,EAA2BJ,CAAY;AAE5E,6BACGK,GAAA,EAA4B,KAAKL,GAAc,SAASG,GACtD,UAAA;AAAA,MAAAT;AAAA,MAED,gBAAAY;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,aAAaX;AAAA,UACb,UAAUM;AAAA,UACV,YAAYL;AAAA,UACZ,aAAaC;AAAA,UACb,WAAWC;AAAA,UAEX,4BAACS,GAAA,EAA0B,WAAWT,GAAW,UAAYJ,GAAA;AAAA,QAAA;AAAA,MAC/D;AAAA,IACF,EAAA,CAAA;AAAA,EAEJ;AACF,GAEAc,IAAejB;"}
1
+ {"version":3,"file":"context-menu.js","sources":["../../../../src/features/ui/context-menu/context-menu.tsx"],"sourcesContent":["import type { IContextMenuProps } from './context-menu-types';\nimport type { FC } from 'react';\n\nimport { memo, useRef } from 'react';\n\nimport useContextMenuClickHandler from '../hooks/use-context-menu-click-handler';\nimport * as Styled from './context-menu-styled';\n\nconst ContextMenu: FC<IContextMenuProps> = memo(\n ({\n targetElement,\n menuElement,\n menuOffset,\n startLeft,\n menuZIndex,\n placeTop,\n menuWidth,\n menuWidthX,\n handleOnMenuClick,\n }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(\n containerRef,\n handleOnMenuClick,\n );\n\n return (\n <Styled.TargetElementWrapper ref={containerRef} onClick={onMenuClick}>\n {targetElement}\n\n <Styled.OptionsMenuWrapper\n $menuOffset={menuOffset}\n $visible={menuVisible}\n $startLeft={startLeft}\n $menuZIndex={menuZIndex}\n $placeTop={placeTop}\n $menuWidth={menuWidth}\n $menuWidthX={menuWidthX}\n >\n <Styled.MenuElementWrapper $placeTop={placeTop}>{menuElement}</Styled.MenuElementWrapper>\n </Styled.OptionsMenuWrapper>\n </Styled.TargetElementWrapper>\n );\n },\n);\n\nexport default ContextMenu;\n"],"names":["ContextMenu","memo","targetElement","menuElement","menuOffset","startLeft","menuZIndex","placeTop","menuWidth","menuWidthX","handleOnMenuClick","containerRef","useRef","menuVisible","onMenuClick","useContextMenuClickHandler","Styled.TargetElementWrapper","jsx","Styled.OptionsMenuWrapper","Styled.MenuElementWrapper","ContextMenu$1"],"mappings":";;;;AAQA,MAAMA,IAAqCC;AAAA,EACzC,CAAC;AAAA,IACC,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,YAAAC;AAAA,IACA,mBAAAC;AAAA,EAAA,MACI;AACE,UAAAC,IAAeC,EAAuB,IAAI,GAE1C,EAAE,aAAAC,GAAa,aAAAC,EAAA,IAAgBC;AAAA,MACnCJ;AAAA,MACAD;AAAA,IAAA;AAGF,6BACGM,GAAA,EAA4B,KAAKL,GAAc,SAASG,GACtD,UAAA;AAAA,MAAAZ;AAAA,MAED,gBAAAe;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,aAAad;AAAA,UACb,UAAUS;AAAA,UACV,YAAYR;AAAA,UACZ,aAAaC;AAAA,UACb,WAAWC;AAAA,UACX,YAAYC;AAAA,UACZ,aAAaC;AAAA,UAEb,4BAACU,GAAA,EAA0B,WAAWZ,GAAW,UAAYJ,GAAA;AAAA,QAAA;AAAA,MAC/D;AAAA,IACF,EAAA,CAAA;AAAA,EAEJ;AACF,GAEAiB,IAAepB;"}