integration-modules 0.1.6 → 0.1.8

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 (26) hide show
  1. package/dist/chunks/{Board-CoDGhH3-.js → Board-CpOsQfT6.js} +544 -544
  2. package/dist/chunks/{Board-CoDGhH3-.js.map → Board-CpOsQfT6.js.map} +1 -1
  3. package/dist/chunks/{Board-wlHU_0oT.cjs → Board-jFbJOEpy.js} +6 -6
  4. package/dist/chunks/Board-jFbJOEpy.js.map +1 -0
  5. package/dist/chunks/EmojiBoardWidget-DU57KxVP.js +2 -0
  6. package/dist/chunks/EmojiBoardWidget-DU57KxVP.js.map +1 -0
  7. package/dist/chunks/{EmojiBoardWidget-C-Uhinz6.js → EmojiBoardWidget-eFGE2g4e.js} +2 -2
  8. package/dist/chunks/{EmojiBoardWidget-C-Uhinz6.js.map → EmojiBoardWidget-eFGE2g4e.js.map} +1 -1
  9. package/dist/chunks/{ShapeBoardWidget-0JrJFCZl.js → ShapeBoardWidget-B65qIGGa.js} +2 -2
  10. package/dist/chunks/{ShapeBoardWidget-0JrJFCZl.js.map → ShapeBoardWidget-B65qIGGa.js.map} +1 -1
  11. package/dist/chunks/ShapeBoardWidget-TpOdsGEn.js +2 -0
  12. package/dist/chunks/ShapeBoardWidget-TpOdsGEn.js.map +1 -0
  13. package/dist/emoji/index.cjs +1 -1
  14. package/dist/emoji/index.js +2 -2
  15. package/dist/index.cjs +1 -1
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.mjs +4 -4
  18. package/dist/shape/index.cjs +1 -1
  19. package/dist/shape/index.js +1 -1
  20. package/package.json +4 -2
  21. package/dist/chunks/Board-wlHU_0oT.cjs.map +0 -1
  22. package/dist/chunks/EmojiBoardWidget-BA5Xt9cs.cjs +0 -2
  23. package/dist/chunks/EmojiBoardWidget-BA5Xt9cs.cjs.map +0 -1
  24. package/dist/chunks/ShapeBoardWidget-BKEMVbRg.cjs +0 -2
  25. package/dist/chunks/ShapeBoardWidget-BKEMVbRg.cjs.map +0 -1
  26. /package/dist/{assets/integration-modules-BCtq75x-.css → integration-modules.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/components/ColorPalette.jsx","../src/assets/note_add.svg","../src/assets/note_add_active.svg","../src/components/NoteToolbar.jsx","../src/widgets/NoteBoardWidget.jsx","../src/assets/markdown_add.svg","../src/assets/markdown_add_active.svg","../src/components/MarkdownToolbar.jsx","../src/widgets/MarkdownBoardWidget.jsx","../src/assets/roadmap_add.svg","../src/assets/roadmap_add_active.svg","../src/components/RoadmapToolbar.jsx","../src/widgets/RoadmapBoardWidget.jsx"],"sourcesContent":["import React from 'react'\n\nconst DND_NOTE = 'application/x-integration-note'\n\nconst COLORS = [\n '#FFF79A', '#FFD7A6', '#FFD1F2', '#FD9AE7',\n '#99E5FF', '#85B3F9', '#B2D0FE', '#D6C7FF',\n '#A6FFD6', '#68DF8B', '#FFFFFF', '#262626'\n]\n\nexport const ColorPalette = ({ onPick }) => {\n const onSwatchClick = (color) => () => {\n if (onPick) {\n onPick(color)\n }\n }\n\n const onSwatchDragStart = (color) => (e) => {\n e.stopPropagation()\n\n try {\n e.dataTransfer.setData(DND_NOTE, JSON.stringify({ color }))\n e.dataTransfer.effectAllowed = 'copy'\n } catch (err) {\n console.warn('Не удалось начать перенос заметки:', err)\n }\n }\n\n return (\n <div className=\"palette-panel--large\" role=\"dialog\" aria-label=\"Палитра\">\n <div className=\"palette-grid\">\n {COLORS.map((c) => (\n <button\n key={c}\n type=\"button\"\n className=\"color-swatch color-swatch--large\"\n title={c}\n style={{ background: c }}\n onClick={onSwatchClick(c)}\n draggable\n onDragStart={onSwatchDragStart(c)}\n />\n ))}\n </div>\n </div>\n )\n}","export default \"data:image/svg+xml,%3csvg%20width='58'%20height='53'%20viewBox='0%200%2058%2053'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.5%204.5C1.5%202.84315%202.84315%201.5%204.5%201.5H52.8237C54.4806%201.5%2055.8237%202.84315%2055.8237%204.5V26.2263C55.8237%2040.0334%2044.6308%2051.2263%2030.8237%2051.2263H4.5C2.84315%2051.2263%201.5%2049.8832%201.5%2048.2263V4.5Z'%20stroke='black'%20stroke-width='3'/%3e%3cpath%20d='M35.0601%2031.2097C34.7425%2031.0584%2034.3739%2030.9988%2033.9426%2031.1381L33.7534%2031.2097L33.7524%2031.2107C33.5121%2031.3184%2033.3222%2031.459%2033.2417%2031.6573C33.1549%2031.8715%2033.2259%2032.0712%2033.3187%2032.2156C33.4103%2032.3579%2033.5466%2032.4867%2033.6731%2032.5948C33.7936%2032.6977%2033.9493%2032.8164%2034.0458%2032.896C36.3535%2034.7931%2039.159%2036.2031%2043.164%2036.228L43.163%2036.229C47.4558%2036.378%2051.4539%2036.0058%2054.6019%2034.0582C55.1353%2033.7296%2055.6664%2033.348%2056.0128%2032.9039L56.0118%2032.9029C56.1048%2032.7875%2056.2271%2032.5829%2056.1927%2032.3439C56.1537%2032.0744%2055.9392%2031.8802%2055.6031%2031.7644L55.4249%2031.7188C55.2448%2031.6873%2055.0608%2031.6962%2054.8946%2031.7229C54.6708%2031.7588%2054.4593%2031.8298%2054.2959%2031.903L54.2969%2031.9031C53.9148%2032.0702%2053.565%2032.2641%2053.2255%2032.4511C52.8827%2032.6399%2052.5495%2032.8224%2052.1866%2032.9789L52.1856%2032.9789C48.701%2034.4994%2044.8566%2034.9504%2040.6985%2034.1745L40.6985%2034.1736C38.6283%2033.7916%2037.1913%2032.8572%2035.9052%2031.8179L35.9042%2031.8169C35.6881%2031.6444%2035.3972%2031.3703%2035.0601%2031.2097Z'%20fill='black'%20stroke='black'%20stroke-width='0.5'/%3e%3cpath%20d='M33.3199%2032.0092C33.3711%2031.784%2033.5023%2031.5723%2033.7172%2031.3748L33.7186%2031.3732C33.9351%2031.1771%2034.16%2031.0665%2034.3932%2031.0561C34.6255%2031.0457%2034.8211%2031.1371%2034.9778%2031.2547C35.1328%2031.3711%2035.2665%2031.5255%2035.3799%2031.6731L35.6886%2032.0981C37.637%2034.7374%2038.8375%2037.7048%2037.8721%2041.3534C37.0056%2045.2765%2035.513%2048.7857%2032.1275%2051.0424C31.5557%2051.4251%2030.9218%2051.7831%2030.2602%2051.9579C30.0886%2052.0063%2029.8315%2052.042%2029.586%2051.9604C29.3206%2051.8722%2029.1054%2051.659%2029.0272%2051.288L29.0119%2051.1918C28.9909%2050.9686%2029.0611%2050.7564%2029.156%2050.581C29.2641%2050.3813%2029.4161%2050.208%2029.5556%2050.081C29.8749%2049.7851%2030.2219%2049.5259%2030.5549%2049.2766C30.8073%2049.0875%2031.0527%2048.9034%2031.2845%2048.7058L31.5119%2048.5028L31.5131%2048.5021C34.3886%2045.833%2035.9263%2042.5303%2035.9218%2038.5803L35.9211%2038.5791C35.9245%2036.6231%2035.0456%2035.0563%2033.9747%2033.5785L33.9739%2033.5773C33.9268%2033.5114%2033.8755%2033.4438%2033.821%2033.3711C33.7673%2033.2995%2033.7113%2033.2234%2033.6569%2033.1455C33.5491%2032.9909%2033.4413%2032.8178%2033.3724%2032.6319C33.3026%2032.4439%2033.2691%2032.2329%2033.3199%2032.0092Z'%20fill='black'%20stroke='black'%20stroke-width='0.5'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='58'%20height='53'%20viewBox='0%200%2058%2053'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.5%204.5C1.5%202.84315%202.84315%201.5%204.5%201.5H52.8237C54.4806%201.5%2055.8237%202.84315%2055.8237%204.5V26.2263C55.8237%2040.0334%2044.6308%2051.2263%2030.8237%2051.2263H4.5C2.84315%2051.2263%201.5%2049.8832%201.5%2048.2263V4.5Z'%20stroke='%230000FF'%20stroke-width='3'/%3e%3cpath%20d='M35.0599%2031.2098C34.7423%2031.0585%2034.3737%2030.9989%2033.9424%2031.1382L33.7532%2031.2097L33.7522%2031.2107C33.5119%2031.3185%2033.3221%2031.459%2033.2415%2031.6573C33.1547%2031.8716%2033.2257%2032.0713%2033.3185%2032.2156C33.4101%2032.3579%2033.5464%2032.4868%2033.6729%2032.5948C33.7935%2032.6977%2033.9491%2032.8165%2034.0457%2032.896C36.3533%2034.7932%2039.1588%2036.2031%2043.1638%2036.2281L43.1628%2036.229C47.4556%2036.3781%2051.4537%2036.0059%2054.6017%2034.0583C55.1351%2033.7297%2055.6662%2033.3481%2056.0126%2032.9039L56.0117%2032.9029C56.1047%2032.7876%2056.2269%2032.5829%2056.1925%2032.344C56.1535%2032.0744%2055.939%2031.8803%2055.603%2031.7645L55.4247%2031.7189C55.2446%2031.6874%2055.0607%2031.6962%2054.8944%2031.7229C54.6706%2031.7589%2054.4592%2031.8298%2054.2957%2031.9031L54.2967%2031.9031C53.9146%2032.0702%2053.5648%2032.2642%2053.2253%2032.4511C52.8825%2032.6399%2052.5493%2032.8225%2052.1864%2032.9789L52.1854%2032.9789C48.7008%2034.4994%2044.8564%2034.9504%2040.6983%2034.1746L40.6984%2034.1736C38.6281%2033.7917%2037.1911%2032.8573%2035.905%2031.818L35.904%2031.817C35.688%2031.6445%2035.397%2031.3704%2035.0599%2031.2098Z'%20fill='%230000FF'%20stroke='%230000FF'%20stroke-width='0.5'/%3e%3cpath%20d='M33.32%2032.0091C33.3712%2031.7839%2033.5024%2031.5722%2033.7173%2031.3747L33.7188%2031.373C33.9352%2031.177%2034.1602%2031.0664%2034.3934%2031.056C34.6256%2031.0456%2034.8213%2031.137%2034.9779%2031.2546C35.1329%2031.371%2035.2666%2031.5254%2035.3801%2031.673L35.6888%2032.098C37.6372%2034.7373%2038.8377%2037.7047%2037.8722%2041.3533C37.0057%2045.2764%2035.5131%2048.7856%2032.1276%2051.0422C31.5558%2051.425%2030.9219%2051.783%2030.2604%2051.9578C30.0887%2052.0062%2029.8316%2052.0419%2029.5861%2051.9603C29.3207%2051.8721%2029.1055%2051.6589%2029.0273%2051.2879L29.012%2051.1917C28.9911%2050.9685%2029.0612%2050.7563%2029.1561%2050.5809C29.2643%2050.3812%2029.4162%2050.2079%2029.5557%2050.0809C29.875%2049.785%2030.222%2049.5258%2030.555%2049.2765C30.8075%2049.0874%2031.0529%2048.9032%2031.2846%2048.7057L31.512%2048.5027L31.5132%2048.502C34.3887%2045.8329%2035.9264%2042.5302%2035.9219%2038.5801L35.9212%2038.579C35.9246%2036.623%2035.0457%2035.0562%2033.9748%2033.5784L33.9741%2033.5772C33.927%2033.5113%2033.8756%2033.4437%2033.8211%2033.371C33.7674%2033.2994%2033.7114%2033.2233%2033.6571%2033.1454C33.5492%2032.9908%2033.4414%2032.8177%2033.3725%2032.6318C33.3028%2032.4437%2033.2692%2032.2328%2033.32%2032.0091Z'%20fill='%230000FF'%20stroke='%230000FF'%20stroke-width='0.5'/%3e%3c/svg%3e\"","// NoteToolbar.jsx\nimport React, { useState, useRef, useEffect } from 'react';\nimport { ColorPalette } from './ColorPalette.jsx';\nimport noteAdd from '../assets/note_add.svg';\nimport noteAddActive from '../assets/note_add_active.svg';\nimport '../styles/stickerPalette.css';\n\nexport const NoteToolbar = ({ onPick }) => {\n const [open, setOpen] = useState(false);\n const wrapperRef = useRef(null);\n\n const toggle = (e) => {\n e.stopPropagation();\n setOpen((v) => !v);\n };\n\n useEffect(() => {\n if (!open) return;\n const handler = (e) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\n setOpen(false);\n }\n };\n window.addEventListener('pointerdown', handler);\n return () => window.removeEventListener('pointerdown', handler);\n }, [open]);\n\n return (\n <div className=\"left-toolbar-container dragHandle__custom\" ref={wrapperRef} onClick={(e) => e.stopPropagation()}>\n <div className={`toolbar-card ${open ? 'toolbar-card--open' : ''}`}>\n <button onClick={toggle} className={`toolbar-btn toolbar-btn--icon toolbar-btn--note ${open ? 'toolbar-btn--active' : ''}`}>\n <div className={`toolbar-note-plate ${open ? 'toolbar-note-plate--active' : ''}`}>\n <img src={open ? noteAddActive : noteAdd} alt=\"Заметки\" draggable={false} />\n </div>\n </button>\n </div>\n {open && (\n <div className=\"palette-wrapper\" onClick={(e) => e.stopPropagation()}>\n <ColorPalette onPick={(color) => { onPick?.(color); setOpen(false); }} />\n </div>\n )}\n </div>\n );\n};","// NoteBoardWidget.jsx\nimport React, { useEffect, useRef, useState } from 'react';\nimport { NoteToolbar } from '../components/NoteToolbar.jsx';\nimport { Board } from '../features/board/ui/Board.jsx';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore.js';\nimport { notesApi } from '../shared/api/notesApi.js';\nimport { NOTE_W, NOTE_H } from '../features/board/constants';\n\nconst SafeFallbackWidget = ({ children }) => <div>{children}</div>;\n\nexport const NoteBoardWidget = () => {\n const addSticker = useStickersStore((state) => state.addSticker);\n const setStickers = useStickersStore((state) => state.setStickers);\n const boardRef = useRef(null);\n const [WidgetComp, setWidgetComp] = useState(() => SafeFallbackWidget);\n\n useEffect(() => {\n const loadBoard = async () => {\n try {\n const notes = await notesApi.getAll();\n let x = 30;\n let y = 30;\n const items = [];\n for (const n of notes) {\n const w = n.width ?? NOTE_W;\n const h = n.height ?? NOTE_H;\n items.push({\n id: n.id,\n x,\n y,\n color: n.color,\n width: w,\n height: h,\n text: n.content ?? '',\n zIndex: 1,\n });\n x += 24;\n y += 24;\n }\n setStickers(items);\n } catch (e) {\n console.warn('Не удалось загрузить доску для заметок:', e);\n }\n };\n loadBoard();\n }, [setStickers]);\n\n useEffect(() => {\n let mounted = true;\n import('@xyflow/react')\n .then((mod) => {\n if (!mounted) return;\n const candidate = (mod && (mod.Widget || mod.default || mod?.widget || mod?.XyflowWidget)) ?? null;\n if (typeof candidate === 'function' || React.isValidElement(candidate)) {\n setWidgetComp(() => candidate);\n } else {\n setWidgetComp(() => SafeFallbackWidget);\n }\n })\n .catch(() => {\n if (mounted) setWidgetComp(() => SafeFallbackWidget);\n });\n return () => { mounted = false; };\n }, []);\n\n const Wrapper = WidgetComp || SafeFallbackWidget;\n\n const handlePick = async (color) => {\n try {\n const created = await notesApi.create(color, NOTE_W, NOTE_H);\n const w = created.width ?? NOTE_W;\n const h = created.height ?? NOTE_H;\n if (boardRef.current?.addStickerAtCenter) {\n boardRef.current.addStickerAtCenter(color, {\n id: created.id,\n text: created.content ?? '',\n width: w,\n height: h,\n });\n return;\n }\n addSticker({\n id: created.id,\n x: 260,\n y: 120,\n color,\n width: w,\n height: h,\n text: created.content ?? '',\n });\n } catch (e) {\n console.warn('Не удалось создать заметку:', e);\n }\n };\n\n return (\n <Wrapper>\n <div className=\"relative flex h-screen w-screen bg-gray-100\">\n <NoteToolbar onPick={handlePick} />\n <Board ref={boardRef} />\n </div>\n </Wrapper>\n );\n};","export default \"data:image/svg+xml,%3csvg%20width='52'%20height='51'%20viewBox='0%200%2052%2051'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.5%2049.0548V1.50049'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.0801%2034.3356L1.5%201.50049'%20stroke='black'%20stroke-width='3'/%3e%3cpath%20d='M14.0801%2034.3356L26.6602%201.50049'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M26.6602%201.50049V49.0548'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M50%2025.2776C50%2031.5634%2047.7786%2037.5611%2043.8701%2041.9583C40.3263%2045.945%2035.6696%2048.3122%2030.7773%2048.7151L30.7773%201.84009C35.6696%202.243%2040.3263%204.61018%2043.8701%208.59692C47.7786%2012.9941%2050%2018.9918%2050%2025.2776Z'%20stroke='black'%20stroke-width='3'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='52'%20height='51'%20viewBox='0%200%2052%2051'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.5%2049.0548V1.50049'%20stroke='%230000FF'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.0801%2034.3356L1.5%201.50049'%20stroke='%230000FF'%20stroke-width='3'/%3e%3cpath%20d='M14.0801%2034.3356L26.6602%201.50049'%20stroke='%230000FF'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M26.6602%201.50049V49.0548'%20stroke='%230000FF'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M50%2025.2776C50%2031.5634%2047.7786%2037.5611%2043.8701%2041.9583C40.3263%2045.945%2035.6696%2048.3122%2030.7773%2048.7151L30.7773%201.84009C35.6696%202.243%2040.3263%204.61018%2043.8701%208.59692C47.7786%2012.9941%2050%2018.9918%2050%2025.2776Z'%20stroke='%230000FF'%20stroke-width='3'/%3e%3c/svg%3e\"","import React, { useState } from 'react';\nimport markdownAdd from '../assets/markdown_add.svg';\nimport markdownAddActive from '../assets/markdown_add_active.svg';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore';\nimport { markdownApi } from '../shared/api/markdownApi';\nimport '../styles/stickerPalette.css';\nimport '../features/markdown/markdown.css';\n\nexport const MarkdownToolbar = () => {\n const [isCreating, setIsCreating] = useState(false);\n\n const addSticker = useStickersStore(state => state.addSticker);\n const topZ = useStickersStore(state => state.topZ);\n\n const createMarkdown = async () => {\n if (isCreating) return;\n setIsCreating(true);\n\n try {\n const nextZ = (topZ || 1) + 1;\n\n const created = await markdownApi.create({\n content: '# Новый Markdown\\n\\nНачните писать здесь...',\n width: 600,\n height: 400,\n isEditorVisible: true\n });\n\n const centerX = window.innerWidth / 2 - 300;\n const centerY = window.innerHeight / 2 - 200;\n\n addSticker({\n id: created.id,\n stickerId: created.markdownId,\n isEditorVisible: created.isEditorVisible ?? true,\n type: 'markdown',\n x: centerX,\n y: centerY,\n width: created.width ?? 600,\n height: created.height ?? 400,\n text: created.content ?? '',\n zIndex: nextZ\n });\n } catch (err) {\n console.warn('Не удалось создать markdown блок:', err);\n } finally {\n setIsCreating(false);\n }\n };\n\n return (\n <div className=\"left-toolbar-container\" onClick={e => e.stopPropagation()}>\n <div className=\"toolbar-card\">\n <button\n onClick={createMarkdown}\n disabled={isCreating}\n className={`toolbar-btn toolbar-btn--icon toolbar-btn--markdown ${isCreating ? 'toolbar-btn--active' : ''}`.trim()}\n title=\"Добавить Markdown блок\"\n >\n <div className={`toolbar-markdown-plate ${isCreating ? 'toolbar-markdown-plate--active' : ''}`}>\n <img\n src={isCreating ? markdownAddActive : markdownAdd}\n alt=\"Markdown\"\n draggable={false}\n />\n </div>\n </button>\n </div>\n </div>\n );\n};","// MarkdownBoardWidget.jsx\nimport React, { useEffect, useRef, useState } from 'react';\nimport { MarkdownToolbar } from '../components/MarkdownToolbar.jsx';\nimport { Board } from '../features/board/ui/Board.jsx';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore.js';\nimport { markdownApi } from '../shared/api/markdownApi';\n\nconst SafeFallbackWidget = ({ children }) => <div>{children}</div>;\n\nexport const MarkdownBoardWidget = () => {\n const setStickers = useStickersStore((state) => state.setStickers);\n const boardRef = useRef(null);\n const [WidgetComp, setWidgetComp] = useState(() => SafeFallbackWidget);\n\n useEffect(() => {\n const loadBoard = async () => {\n try {\n const boardMarkdowns = await markdownApi.getBoard();\n let x = 30;\n let y = 30;\n const items = [];\n for (const m of boardMarkdowns) {\n const w = m.width ?? 600;\n const h = m.height ?? 400;\n items.push({\n id: m.id,\n stickerId: m.markdownId,\n isEditorVisible: m.isEditorVisible ?? true,\n type: 'markdown',\n x,\n y,\n width: w,\n height: h,\n text: m.content ?? '',\n zIndex: 1,\n });\n x += 24;\n y += 24;\n }\n setStickers(items);\n } catch (e) {\n console.warn('Не удалось загрузить доску для markdown:', e);\n }\n };\n loadBoard();\n }, [setStickers]);\n\n useEffect(() => {\n let mounted = true;\n import('@xyflow/react')\n .then((mod) => {\n if (!mounted) return;\n const candidate = (mod && (mod.Widget || mod.default || mod?.widget || mod?.XyflowWidget)) ?? null;\n if (typeof candidate === 'function' || React.isValidElement(candidate)) {\n setWidgetComp(() => candidate);\n } else {\n setWidgetComp(() => SafeFallbackWidget);\n }\n })\n .catch(() => {\n if (mounted) setWidgetComp(() => SafeFallbackWidget);\n });\n return () => { mounted = false; };\n }, []);\n\n const Wrapper = WidgetComp || SafeFallbackWidget;\n\n return (\n <Wrapper>\n <div className=\"relative flex h-screen w-screen bg-gray-100\">\n <MarkdownToolbar createInCenter={() => {\n return { x: 300, y: 200 };\n }} />\n <Board ref={boardRef} />\n </div>\n </Wrapper>\n );\n};","export default \"data:image/svg+xml,%3csvg%20width='57'%20height='45'%20viewBox='0%200%2057%2045'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.1%2023.36H1V44H49.06L55%2033.1067L49.06%2023.36H41.5M9.1%2023.36V18.2M9.1%2023.36H25.3M25.3%2023.36V14.76M25.3%2023.36H41.5M41.5%2023.36V11.32M41.5%2011.32V1H55L51.22%206.16L55%2011.32H41.5Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M22.5999%2033.6799L16.6599%2043.9999H32.8599L38.7999%2033.6799L32.8599%2023.3599H16.6599L22.5999%2033.6799Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='57'%20height='45'%20viewBox='0%200%2057%2045'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.1%2023.36H1V44H49.06L55%2033.1067L49.06%2023.36H41.5M9.1%2023.36V18.2M9.1%2023.36H25.3M25.3%2023.36V14.76M25.3%2023.36H41.5M41.5%2023.36V11.32M41.5%2011.32V1H55L51.22%206.16L55%2011.32H41.5Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M22.5999%2033.6799L16.6599%2043.9999H32.8599L38.7999%2033.6799L32.8599%2023.3599H16.6599L22.5999%2033.6799Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3c/svg%3e\"","import React, { useState } from 'react';\nimport roadmapAdd from '../assets/roadmap_add.svg';\nimport roadmapAddActive from '../assets/roadmap_add_active.svg';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore';\nimport { roadmapApi } from '../shared/api/roadmapApi.js';\nimport '../styles/stickerPalette.css';\nimport '../features/roadmap/roadmap.css';\n\nexport const RoadmapToolbar = () => {\n const [isCreating, setIsCreating] = useState(false);\n\n const addSticker = useStickersStore(state => state.addSticker);\n const topZ = useStickersStore(state => state.topZ);\n\n const createRoadmap = async () => {\n if (isCreating) return;\n setIsCreating(true);\n\n try {\n const nextZ = (topZ || 1) + 1;\n\n const created = await roadmapApi.create({\n text: '',\n description: '',\n date: null,\n completed: false,\n cancelled: false,\n zIndex: nextZ,\n width: 200,\n height: 50,\n parentId: null\n });\n\n // Добавляем в центр экрана (можно настроить координаты)\n const centerX = window.innerWidth / 2 - 100; // - половина ширины\n const centerY = window.innerHeight / 2 - 60; // - половина высоты\n\n addSticker({\n id: String(created.id),\n type: 'roadmap',\n x: centerX,\n y: centerY,\n width: created.width ?? 200,\n height: created.height ?? 120,\n text: created.text ?? '',\n description: created.description ?? '',\n date: created.date ?? null,\n completed: created.completed ?? false,\n cancelled: created.cancelled ?? false,\n parentId: created.parentId ?? null,\n zIndex: created.zIndex ?? nextZ\n });\n } catch (err) {\n console.warn('Не удалось создать roadmap:', err);\n } finally {\n setIsCreating(false);\n }\n };\n\n return (\n <div className=\"left-toolbar-container\" onClick={e => e.stopPropagation()}>\n <div className=\"toolbar-card\">\n <button\n onClick={createRoadmap}\n disabled={isCreating}\n className={`toolbar-btn toolbar-btn--icon toolbar-btn--markdown ${isCreating ? 'toolbar-btn--active' : ''}`}\n title=\"Добавить Roadmap\"\n >\n <div className={`toolbar-markdown-plate ${isCreating ? 'toolbar-markdown-plate--active' : ''}`}>\n <img\n src={isCreating ? roadmapAddActive : roadmapAdd}\n alt=\"Roadmap\"\n draggable={false}\n />\n </div>\n </button>\n </div>\n </div>\n );\n};","// RoadmapBoardWidget.jsx\nimport React, { useEffect, useRef, useState } from 'react';\nimport { RoadmapToolbar } from '../components/RoadmapToolbar.jsx';\nimport { Board } from '../features/board/ui/Board.jsx';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore.js';\nimport { roadmapApi } from \"../shared/api/roadmapApi.js\";\n\n\nconst SafeFallbackWidget = ({ children }) => <div>{children}</div>;\n\nexport const RoadmapBoardWidget = () => {\n const setStickers = useStickersStore((state) => state.setStickers);\n const setEdges = useStickersStore((state) => state.setEdges);\n const boardRef = useRef(null);\n const [WidgetComp, setWidgetComp] = useState(() => SafeFallbackWidget);\n\n useEffect(() => {\n const loadBoard = async () => {\n try {\n const roadmaps = await roadmapApi.getAll();\n let x = 30;\n let y = 30;\n const items = [];\n const edges = [];\n for (const r of roadmaps) {\n const w = r.width ?? 200;\n const h = r.height ?? 120;\n items.push({\n id: String(r.id),\n type: 'roadmap',\n x,\n y,\n width: w,\n height: h,\n text: r.text ?? '',\n description: r.description ?? '',\n date: r.date ?? null,\n completed: r.completed ?? false,\n cancelled: r.cancelled ?? false,\n parentId: r.parentId ?? null,\n zIndex: r.zIndex ?? 1,\n });\n if (r.parentId) {\n edges.push({\n id: `e-${r.parentId}-${r.id}`,\n source: String(r.parentId),\n target: String(r.id),\n type: 'default',\n animated: false,\n });\n }\n x += 24;\n y += 24;\n }\n setStickers(items);\n setEdges(edges);\n } catch (e) {\n console.warn('Не удалось загрузить доску для роадмапа:', e);\n }\n };\n loadBoard();\n }, [setStickers, setEdges]);\n\n useEffect(() => {\n let mounted = true;\n import('@xyflow/react')\n .then((mod) => {\n if (!mounted) return;\n const candidate = (mod && (mod.Widget || mod.default || mod?.widget || mod?.XyflowWidget)) ?? null;\n if (typeof candidate === 'function' || React.isValidElement(candidate)) {\n setWidgetComp(() => candidate);\n } else {\n setWidgetComp(() => SafeFallbackWidget);\n }\n })\n .catch(() => {\n if (mounted) setWidgetComp(() => SafeFallbackWidget);\n });\n return () => { mounted = false; };\n }, []);\n\n const Wrapper = WidgetComp || SafeFallbackWidget;\n\n return (\n <Wrapper>\n <div className=\"relative flex h-screen w-screen bg-gray-100\">\n <RoadmapToolbar createInCenter={() => {\n return { x: 300, y: 200 };\n }} />\n <Board ref={boardRef} />\n </div>\n </Wrapper>\n );\n};"],"names":["DND_NOTE","COLORS","ColorPalette","onPick","onSwatchClick","color","onSwatchDragStart","e","err","jsx","c","noteAdd","noteAddActive","NoteToolbar","open","setOpen","useState","wrapperRef","useRef","toggle","v","useEffect","handler","jsxs","SafeFallbackWidget","children","NoteBoardWidget","addSticker","useStickersStore","state","setStickers","boardRef","WidgetComp","setWidgetComp","notes","notesApi","x","y","items","n","w","NOTE_W","h","NOTE_H","mounted","mod","candidate","React","Wrapper","handlePick","created","Board","markdownAdd","markdownAddActive","MarkdownToolbar","isCreating","setIsCreating","topZ","createMarkdown","nextZ","markdownApi","centerX","centerY","MarkdownBoardWidget","boardMarkdowns","m","roadmapAdd","roadmapAddActive","RoadmapToolbar","createRoadmap","roadmapApi","RoadmapBoardWidget","setEdges","roadmaps","edges","r"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/ColorPalette.jsx","../src/assets/note_add.svg","../src/assets/note_add_active.svg","../src/components/NoteToolbar.jsx","../src/widgets/NoteBoardWidget.jsx","../src/assets/markdown_add.svg","../src/assets/markdown_add_active.svg","../src/components/MarkdownToolbar.jsx","../src/widgets/MarkdownBoardWidget.jsx","../src/assets/roadmap_add.svg","../src/assets/roadmap_add_active.svg","../src/components/RoadmapToolbar.jsx","../src/widgets/RoadmapBoardWidget.jsx"],"sourcesContent":["import React from 'react'\n\nconst DND_NOTE = 'application/x-integration-note'\n\nconst COLORS = [\n '#FFF79A', '#FFD7A6', '#FFD1F2', '#FD9AE7',\n '#99E5FF', '#85B3F9', '#B2D0FE', '#D6C7FF',\n '#A6FFD6', '#68DF8B', '#FFFFFF', '#262626'\n]\n\nexport const ColorPalette = ({ onPick }) => {\n const onSwatchClick = (color) => () => {\n if (onPick) {\n onPick(color)\n }\n }\n\n const onSwatchDragStart = (color) => (e) => {\n e.stopPropagation()\n\n try {\n e.dataTransfer.setData(DND_NOTE, JSON.stringify({ color }))\n e.dataTransfer.effectAllowed = 'copy'\n } catch (err) {\n console.warn('Не удалось начать перенос заметки:', err)\n }\n }\n\n return (\n <div className=\"palette-panel--large\" role=\"dialog\" aria-label=\"Палитра\">\n <div className=\"palette-grid\">\n {COLORS.map((c) => (\n <button\n key={c}\n type=\"button\"\n className=\"color-swatch color-swatch--large\"\n title={c}\n style={{ background: c }}\n onClick={onSwatchClick(c)}\n draggable\n onDragStart={onSwatchDragStart(c)}\n />\n ))}\n </div>\n </div>\n )\n}","export default \"data:image/svg+xml,%3csvg%20width='58'%20height='53'%20viewBox='0%200%2058%2053'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.5%204.5C1.5%202.84315%202.84315%201.5%204.5%201.5H52.8237C54.4806%201.5%2055.8237%202.84315%2055.8237%204.5V26.2263C55.8237%2040.0334%2044.6308%2051.2263%2030.8237%2051.2263H4.5C2.84315%2051.2263%201.5%2049.8832%201.5%2048.2263V4.5Z'%20stroke='black'%20stroke-width='3'/%3e%3cpath%20d='M35.0601%2031.2097C34.7425%2031.0584%2034.3739%2030.9988%2033.9426%2031.1381L33.7534%2031.2097L33.7524%2031.2107C33.5121%2031.3184%2033.3222%2031.459%2033.2417%2031.6573C33.1549%2031.8715%2033.2259%2032.0712%2033.3187%2032.2156C33.4103%2032.3579%2033.5466%2032.4867%2033.6731%2032.5948C33.7936%2032.6977%2033.9493%2032.8164%2034.0458%2032.896C36.3535%2034.7931%2039.159%2036.2031%2043.164%2036.228L43.163%2036.229C47.4558%2036.378%2051.4539%2036.0058%2054.6019%2034.0582C55.1353%2033.7296%2055.6664%2033.348%2056.0128%2032.9039L56.0118%2032.9029C56.1048%2032.7875%2056.2271%2032.5829%2056.1927%2032.3439C56.1537%2032.0744%2055.9392%2031.8802%2055.6031%2031.7644L55.4249%2031.7188C55.2448%2031.6873%2055.0608%2031.6962%2054.8946%2031.7229C54.6708%2031.7588%2054.4593%2031.8298%2054.2959%2031.903L54.2969%2031.9031C53.9148%2032.0702%2053.565%2032.2641%2053.2255%2032.4511C52.8827%2032.6399%2052.5495%2032.8224%2052.1866%2032.9789L52.1856%2032.9789C48.701%2034.4994%2044.8566%2034.9504%2040.6985%2034.1745L40.6985%2034.1736C38.6283%2033.7916%2037.1913%2032.8572%2035.9052%2031.8179L35.9042%2031.8169C35.6881%2031.6444%2035.3972%2031.3703%2035.0601%2031.2097Z'%20fill='black'%20stroke='black'%20stroke-width='0.5'/%3e%3cpath%20d='M33.3199%2032.0092C33.3711%2031.784%2033.5023%2031.5723%2033.7172%2031.3748L33.7186%2031.3732C33.9351%2031.1771%2034.16%2031.0665%2034.3932%2031.0561C34.6255%2031.0457%2034.8211%2031.1371%2034.9778%2031.2547C35.1328%2031.3711%2035.2665%2031.5255%2035.3799%2031.6731L35.6886%2032.0981C37.637%2034.7374%2038.8375%2037.7048%2037.8721%2041.3534C37.0056%2045.2765%2035.513%2048.7857%2032.1275%2051.0424C31.5557%2051.4251%2030.9218%2051.7831%2030.2602%2051.9579C30.0886%2052.0063%2029.8315%2052.042%2029.586%2051.9604C29.3206%2051.8722%2029.1054%2051.659%2029.0272%2051.288L29.0119%2051.1918C28.9909%2050.9686%2029.0611%2050.7564%2029.156%2050.581C29.2641%2050.3813%2029.4161%2050.208%2029.5556%2050.081C29.8749%2049.7851%2030.2219%2049.5259%2030.5549%2049.2766C30.8073%2049.0875%2031.0527%2048.9034%2031.2845%2048.7058L31.5119%2048.5028L31.5131%2048.5021C34.3886%2045.833%2035.9263%2042.5303%2035.9218%2038.5803L35.9211%2038.5791C35.9245%2036.6231%2035.0456%2035.0563%2033.9747%2033.5785L33.9739%2033.5773C33.9268%2033.5114%2033.8755%2033.4438%2033.821%2033.3711C33.7673%2033.2995%2033.7113%2033.2234%2033.6569%2033.1455C33.5491%2032.9909%2033.4413%2032.8178%2033.3724%2032.6319C33.3026%2032.4439%2033.2691%2032.2329%2033.3199%2032.0092Z'%20fill='black'%20stroke='black'%20stroke-width='0.5'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='58'%20height='53'%20viewBox='0%200%2058%2053'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.5%204.5C1.5%202.84315%202.84315%201.5%204.5%201.5H52.8237C54.4806%201.5%2055.8237%202.84315%2055.8237%204.5V26.2263C55.8237%2040.0334%2044.6308%2051.2263%2030.8237%2051.2263H4.5C2.84315%2051.2263%201.5%2049.8832%201.5%2048.2263V4.5Z'%20stroke='%230000FF'%20stroke-width='3'/%3e%3cpath%20d='M35.0599%2031.2098C34.7423%2031.0585%2034.3737%2030.9989%2033.9424%2031.1382L33.7532%2031.2097L33.7522%2031.2107C33.5119%2031.3185%2033.3221%2031.459%2033.2415%2031.6573C33.1547%2031.8716%2033.2257%2032.0713%2033.3185%2032.2156C33.4101%2032.3579%2033.5464%2032.4868%2033.6729%2032.5948C33.7935%2032.6977%2033.9491%2032.8165%2034.0457%2032.896C36.3533%2034.7932%2039.1588%2036.2031%2043.1638%2036.2281L43.1628%2036.229C47.4556%2036.3781%2051.4537%2036.0059%2054.6017%2034.0583C55.1351%2033.7297%2055.6662%2033.3481%2056.0126%2032.9039L56.0117%2032.9029C56.1047%2032.7876%2056.2269%2032.5829%2056.1925%2032.344C56.1535%2032.0744%2055.939%2031.8803%2055.603%2031.7645L55.4247%2031.7189C55.2446%2031.6874%2055.0607%2031.6962%2054.8944%2031.7229C54.6706%2031.7589%2054.4592%2031.8298%2054.2957%2031.9031L54.2967%2031.9031C53.9146%2032.0702%2053.5648%2032.2642%2053.2253%2032.4511C52.8825%2032.6399%2052.5493%2032.8225%2052.1864%2032.9789L52.1854%2032.9789C48.7008%2034.4994%2044.8564%2034.9504%2040.6983%2034.1746L40.6984%2034.1736C38.6281%2033.7917%2037.1911%2032.8573%2035.905%2031.818L35.904%2031.817C35.688%2031.6445%2035.397%2031.3704%2035.0599%2031.2098Z'%20fill='%230000FF'%20stroke='%230000FF'%20stroke-width='0.5'/%3e%3cpath%20d='M33.32%2032.0091C33.3712%2031.7839%2033.5024%2031.5722%2033.7173%2031.3747L33.7188%2031.373C33.9352%2031.177%2034.1602%2031.0664%2034.3934%2031.056C34.6256%2031.0456%2034.8213%2031.137%2034.9779%2031.2546C35.1329%2031.371%2035.2666%2031.5254%2035.3801%2031.673L35.6888%2032.098C37.6372%2034.7373%2038.8377%2037.7047%2037.8722%2041.3533C37.0057%2045.2764%2035.5131%2048.7856%2032.1276%2051.0422C31.5558%2051.425%2030.9219%2051.783%2030.2604%2051.9578C30.0887%2052.0062%2029.8316%2052.0419%2029.5861%2051.9603C29.3207%2051.8721%2029.1055%2051.6589%2029.0273%2051.2879L29.012%2051.1917C28.9911%2050.9685%2029.0612%2050.7563%2029.1561%2050.5809C29.2643%2050.3812%2029.4162%2050.2079%2029.5557%2050.0809C29.875%2049.785%2030.222%2049.5258%2030.555%2049.2765C30.8075%2049.0874%2031.0529%2048.9032%2031.2846%2048.7057L31.512%2048.5027L31.5132%2048.502C34.3887%2045.8329%2035.9264%2042.5302%2035.9219%2038.5801L35.9212%2038.579C35.9246%2036.623%2035.0457%2035.0562%2033.9748%2033.5784L33.9741%2033.5772C33.927%2033.5113%2033.8756%2033.4437%2033.8211%2033.371C33.7674%2033.2994%2033.7114%2033.2233%2033.6571%2033.1454C33.5492%2032.9908%2033.4414%2032.8177%2033.3725%2032.6318C33.3028%2032.4437%2033.2692%2032.2328%2033.32%2032.0091Z'%20fill='%230000FF'%20stroke='%230000FF'%20stroke-width='0.5'/%3e%3c/svg%3e\"","// NoteToolbar.jsx\nimport React, { useState, useRef, useEffect } from 'react';\nimport { ColorPalette } from './ColorPalette.jsx';\nimport noteAdd from '../assets/note_add.svg';\nimport noteAddActive from '../assets/note_add_active.svg';\nimport '../styles/stickerPalette.css';\n\nexport const NoteToolbar = ({ onPick }) => {\n const [open, setOpen] = useState(false);\n const wrapperRef = useRef(null);\n\n const toggle = (e) => {\n e.stopPropagation();\n setOpen((v) => !v);\n };\n\n useEffect(() => {\n if (!open) return;\n const handler = (e) => {\n if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {\n setOpen(false);\n }\n };\n window.addEventListener('pointerdown', handler);\n return () => window.removeEventListener('pointerdown', handler);\n }, [open]);\n\n return (\n <div className=\"left-toolbar-container dragHandle__custom\" ref={wrapperRef} onClick={(e) => e.stopPropagation()}>\n <div className={`toolbar-card ${open ? 'toolbar-card--open' : ''}`}>\n <button onClick={toggle} className={`toolbar-btn toolbar-btn--icon toolbar-btn--note ${open ? 'toolbar-btn--active' : ''}`}>\n <div className={`toolbar-note-plate ${open ? 'toolbar-note-plate--active' : ''}`}>\n <img src={open ? noteAddActive : noteAdd} alt=\"Заметки\" draggable={false} />\n </div>\n </button>\n </div>\n {open && (\n <div className=\"palette-wrapper\" onClick={(e) => e.stopPropagation()}>\n <ColorPalette onPick={(color) => { onPick?.(color); setOpen(false); }} />\n </div>\n )}\n </div>\n );\n};","// NoteBoardWidget.jsx\nimport React, { useEffect, useRef, useState } from 'react';\nimport { NoteToolbar } from '../components/NoteToolbar.jsx';\nimport { Board } from '../features/board/ui/Board.jsx';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore.js';\nimport { notesApi } from '../shared/api/notesApi.js';\nimport { NOTE_W, NOTE_H } from '../features/board/constants';\n\nconst SafeFallbackWidget = ({ children }) => <div>{children}</div>;\n\nexport const NoteBoardWidget = () => {\n const addSticker = useStickersStore((state) => state.addSticker);\n const setStickers = useStickersStore((state) => state.setStickers);\n const boardRef = useRef(null);\n const [WidgetComp, setWidgetComp] = useState(() => SafeFallbackWidget);\n\n useEffect(() => {\n const loadBoard = async () => {\n try {\n const notes = await notesApi.getAll();\n let x = 30;\n let y = 30;\n const items = [];\n for (const n of notes) {\n const w = n.width ?? NOTE_W;\n const h = n.height ?? NOTE_H;\n items.push({\n id: n.id,\n x,\n y,\n color: n.color,\n width: w,\n height: h,\n text: n.content ?? '',\n zIndex: 1,\n });\n x += 24;\n y += 24;\n }\n setStickers(items);\n } catch (e) {\n console.warn('Не удалось загрузить доску для заметок:', e);\n }\n };\n loadBoard();\n }, [setStickers]);\n\n useEffect(() => {\n let mounted = true;\n import('@xyflow/react')\n .then((mod) => {\n if (!mounted) return;\n const candidate = (mod && (mod.Widget || mod.default || mod?.widget || mod?.XyflowWidget)) ?? null;\n if (typeof candidate === 'function' || React.isValidElement(candidate)) {\n setWidgetComp(() => candidate);\n } else {\n setWidgetComp(() => SafeFallbackWidget);\n }\n })\n .catch(() => {\n if (mounted) setWidgetComp(() => SafeFallbackWidget);\n });\n return () => { mounted = false; };\n }, []);\n\n const Wrapper = WidgetComp || SafeFallbackWidget;\n\n const handlePick = async (color) => {\n try {\n const created = await notesApi.create(color, NOTE_W, NOTE_H);\n const w = created.width ?? NOTE_W;\n const h = created.height ?? NOTE_H;\n if (boardRef.current?.addStickerAtCenter) {\n boardRef.current.addStickerAtCenter(color, {\n id: created.id,\n text: created.content ?? '',\n width: w,\n height: h,\n });\n return;\n }\n addSticker({\n id: created.id,\n x: 260,\n y: 120,\n color,\n width: w,\n height: h,\n text: created.content ?? '',\n });\n } catch (e) {\n console.warn('Не удалось создать заметку:', e);\n }\n };\n\n return (\n <Wrapper>\n <div className=\"relative flex h-screen w-screen bg-gray-100\">\n <NoteToolbar onPick={handlePick} />\n <Board ref={boardRef} />\n </div>\n </Wrapper>\n );\n};","export default \"data:image/svg+xml,%3csvg%20width='52'%20height='51'%20viewBox='0%200%2052%2051'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.5%2049.0548V1.50049'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.0801%2034.3356L1.5%201.50049'%20stroke='black'%20stroke-width='3'/%3e%3cpath%20d='M14.0801%2034.3356L26.6602%201.50049'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M26.6602%201.50049V49.0548'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M50%2025.2776C50%2031.5634%2047.7786%2037.5611%2043.8701%2041.9583C40.3263%2045.945%2035.6696%2048.3122%2030.7773%2048.7151L30.7773%201.84009C35.6696%202.243%2040.3263%204.61018%2043.8701%208.59692C47.7786%2012.9941%2050%2018.9918%2050%2025.2776Z'%20stroke='black'%20stroke-width='3'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='52'%20height='51'%20viewBox='0%200%2052%2051'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.5%2049.0548V1.50049'%20stroke='%230000FF'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.0801%2034.3356L1.5%201.50049'%20stroke='%230000FF'%20stroke-width='3'/%3e%3cpath%20d='M14.0801%2034.3356L26.6602%201.50049'%20stroke='%230000FF'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M26.6602%201.50049V49.0548'%20stroke='%230000FF'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M50%2025.2776C50%2031.5634%2047.7786%2037.5611%2043.8701%2041.9583C40.3263%2045.945%2035.6696%2048.3122%2030.7773%2048.7151L30.7773%201.84009C35.6696%202.243%2040.3263%204.61018%2043.8701%208.59692C47.7786%2012.9941%2050%2018.9918%2050%2025.2776Z'%20stroke='%230000FF'%20stroke-width='3'/%3e%3c/svg%3e\"","import React, { useState } from 'react';\nimport markdownAdd from '../assets/markdown_add.svg';\nimport markdownAddActive from '../assets/markdown_add_active.svg';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore';\nimport { markdownApi } from '../shared/api/markdownApi';\nimport '../styles/stickerPalette.css';\nimport '../features/markdown/markdown.css';\n\nexport const MarkdownToolbar = () => {\n const [isCreating, setIsCreating] = useState(false);\n\n const addSticker = useStickersStore(state => state.addSticker);\n const topZ = useStickersStore(state => state.topZ);\n\n const createMarkdown = async () => {\n if (isCreating) return;\n setIsCreating(true);\n\n try {\n const nextZ = (topZ || 1) + 1;\n\n const created = await markdownApi.create({\n content: '# Новый Markdown\\n\\nНачните писать здесь...',\n width: 600,\n height: 400,\n isEditorVisible: true\n });\n\n const centerX = window.innerWidth / 2 - 300;\n const centerY = window.innerHeight / 2 - 200;\n\n addSticker({\n id: created.id,\n stickerId: created.markdownId,\n isEditorVisible: created.isEditorVisible ?? true,\n type: 'markdown',\n x: centerX,\n y: centerY,\n width: created.width ?? 600,\n height: created.height ?? 400,\n text: created.content ?? '',\n zIndex: nextZ\n });\n } catch (err) {\n console.warn('Не удалось создать markdown блок:', err);\n } finally {\n setIsCreating(false);\n }\n };\n\n return (\n <div className=\"left-toolbar-container\" onClick={e => e.stopPropagation()}>\n <div className=\"toolbar-card\">\n <button\n onClick={createMarkdown}\n disabled={isCreating}\n className={`toolbar-btn toolbar-btn--icon toolbar-btn--markdown ${isCreating ? 'toolbar-btn--active' : ''}`.trim()}\n title=\"Добавить Markdown блок\"\n >\n <div className={`toolbar-markdown-plate ${isCreating ? 'toolbar-markdown-plate--active' : ''}`}>\n <img\n src={isCreating ? markdownAddActive : markdownAdd}\n alt=\"Markdown\"\n draggable={false}\n />\n </div>\n </button>\n </div>\n </div>\n );\n};","// MarkdownBoardWidget.jsx\nimport React, { useEffect, useRef, useState } from 'react';\nimport { MarkdownToolbar } from '../components/MarkdownToolbar.jsx';\nimport { Board } from '../features/board/ui/Board.jsx';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore.js';\nimport { markdownApi } from '../shared/api/markdownApi';\n\nconst SafeFallbackWidget = ({ children }) => <div>{children}</div>;\n\nexport const MarkdownBoardWidget = () => {\n const setStickers = useStickersStore((state) => state.setStickers);\n const boardRef = useRef(null);\n const [WidgetComp, setWidgetComp] = useState(() => SafeFallbackWidget);\n\n useEffect(() => {\n const loadBoard = async () => {\n try {\n const boardMarkdowns = await markdownApi.getBoard();\n let x = 30;\n let y = 30;\n const items = [];\n for (const m of boardMarkdowns) {\n const w = m.width ?? 600;\n const h = m.height ?? 400;\n items.push({\n id: m.id,\n stickerId: m.markdownId,\n isEditorVisible: m.isEditorVisible ?? true,\n type: 'markdown',\n x,\n y,\n width: w,\n height: h,\n text: m.content ?? '',\n zIndex: 1,\n });\n x += 24;\n y += 24;\n }\n setStickers(items);\n } catch (e) {\n console.warn('Не удалось загрузить доску для markdown:', e);\n }\n };\n loadBoard();\n }, [setStickers]);\n\n useEffect(() => {\n let mounted = true;\n import('@xyflow/react')\n .then((mod) => {\n if (!mounted) return;\n const candidate = (mod && (mod.Widget || mod.default || mod?.widget || mod?.XyflowWidget)) ?? null;\n if (typeof candidate === 'function' || React.isValidElement(candidate)) {\n setWidgetComp(() => candidate);\n } else {\n setWidgetComp(() => SafeFallbackWidget);\n }\n })\n .catch(() => {\n if (mounted) setWidgetComp(() => SafeFallbackWidget);\n });\n return () => { mounted = false; };\n }, []);\n\n const Wrapper = WidgetComp || SafeFallbackWidget;\n\n return (\n <Wrapper>\n <div className=\"relative flex h-screen w-screen bg-gray-100\">\n <MarkdownToolbar createInCenter={() => {\n return { x: 300, y: 200 };\n }} />\n <Board ref={boardRef} />\n </div>\n </Wrapper>\n );\n};","export default \"data:image/svg+xml,%3csvg%20width='57'%20height='45'%20viewBox='0%200%2057%2045'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.1%2023.36H1V44H49.06L55%2033.1067L49.06%2023.36H41.5M9.1%2023.36V18.2M9.1%2023.36H25.3M25.3%2023.36V14.76M25.3%2023.36H41.5M41.5%2023.36V11.32M41.5%2011.32V1H55L51.22%206.16L55%2011.32H41.5Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M22.5999%2033.6799L16.6599%2043.9999H32.8599L38.7999%2033.6799L32.8599%2023.3599H16.6599L22.5999%2033.6799Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='57'%20height='45'%20viewBox='0%200%2057%2045'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.1%2023.36H1V44H49.06L55%2033.1067L49.06%2023.36H41.5M9.1%2023.36V18.2M9.1%2023.36H25.3M25.3%2023.36V14.76M25.3%2023.36H41.5M41.5%2023.36V11.32M41.5%2011.32V1H55L51.22%206.16L55%2011.32H41.5Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M22.5999%2033.6799L16.6599%2043.9999H32.8599L38.7999%2033.6799L32.8599%2023.3599H16.6599L22.5999%2033.6799Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M25.3003%209.45337C26.4817%209.45351%2027.5405%2010.489%2027.5405%2011.8938C27.5403%2013.2983%2026.4816%2014.3331%2025.3003%2014.3333C24.1189%2014.3333%2023.0603%2013.2984%2023.0601%2011.8938C23.0601%2010.4889%2024.1188%209.45337%2025.3003%209.45337Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3cpath%20d='M9.10028%2012.8933C10.2817%2012.8934%2011.3405%2013.929%2011.3405%2015.3337C11.3403%2016.7383%2010.2816%2017.7731%209.10028%2017.7732C7.91887%2017.7732%206.86026%2016.7384%206.86005%2015.3337C6.86005%2013.9289%207.91875%2012.8933%209.10028%2012.8933Z'%20stroke='black'%20stroke-width='2'/%3e%3c/svg%3e\"","import React, { useState } from 'react';\nimport roadmapAdd from '../assets/roadmap_add.svg';\nimport roadmapAddActive from '../assets/roadmap_add_active.svg';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore';\nimport { roadmapApi } from '../shared/api/roadmapApi.js';\nimport '../styles/stickerPalette.css';\nimport '../features/roadmap/roadmap.css';\n\nexport const RoadmapToolbar = () => {\n const [isCreating, setIsCreating] = useState(false);\n\n const addSticker = useStickersStore(state => state.addSticker);\n const topZ = useStickersStore(state => state.topZ);\n\n const createRoadmap = async () => {\n if (isCreating) return;\n setIsCreating(true);\n\n try {\n const nextZ = (topZ || 1) + 1;\n\n const created = await roadmapApi.create({\n text: '',\n description: '',\n date: null,\n completed: false,\n cancelled: false,\n zIndex: nextZ,\n width: 200,\n height: 50,\n parentId: null\n });\n\n // Добавляем в центр экрана (можно настроить координаты)\n const centerX = window.innerWidth / 2 - 100; // - половина ширины\n const centerY = window.innerHeight / 2 - 60; // - половина высоты\n\n addSticker({\n id: String(created.id),\n type: 'roadmap',\n x: centerX,\n y: centerY,\n width: created.width ?? 200,\n height: created.height ?? 120,\n text: created.text ?? '',\n description: created.description ?? '',\n date: created.date ?? null,\n completed: created.completed ?? false,\n cancelled: created.cancelled ?? false,\n parentId: created.parentId ?? null,\n zIndex: created.zIndex ?? nextZ\n });\n } catch (err) {\n console.warn('Не удалось создать roadmap:', err);\n } finally {\n setIsCreating(false);\n }\n };\n\n return (\n <div className=\"left-toolbar-container\" onClick={e => e.stopPropagation()}>\n <div className=\"toolbar-card\">\n <button\n onClick={createRoadmap}\n disabled={isCreating}\n className={`toolbar-btn toolbar-btn--icon toolbar-btn--markdown ${isCreating ? 'toolbar-btn--active' : ''}`}\n title=\"Добавить Roadmap\"\n >\n <div className={`toolbar-markdown-plate ${isCreating ? 'toolbar-markdown-plate--active' : ''}`}>\n <img\n src={isCreating ? roadmapAddActive : roadmapAdd}\n alt=\"Roadmap\"\n draggable={false}\n />\n </div>\n </button>\n </div>\n </div>\n );\n};","// RoadmapBoardWidget.jsx\nimport React, { useEffect, useRef, useState } from 'react';\nimport { RoadmapToolbar } from '../components/RoadmapToolbar.jsx';\nimport { Board } from '../features/board/ui/Board.jsx';\nimport { useStickersStore } from '../entities/stickers/model/useStickersStore.js';\nimport { roadmapApi } from \"../shared/api/roadmapApi.js\";\n\n\nconst SafeFallbackWidget = ({ children }) => <div>{children}</div>;\n\nexport const RoadmapBoardWidget = () => {\n const setStickers = useStickersStore((state) => state.setStickers);\n const setEdges = useStickersStore((state) => state.setEdges);\n const boardRef = useRef(null);\n const [WidgetComp, setWidgetComp] = useState(() => SafeFallbackWidget);\n\n useEffect(() => {\n const loadBoard = async () => {\n try {\n const roadmaps = await roadmapApi.getAll();\n let x = 30;\n let y = 30;\n const items = [];\n const edges = [];\n for (const r of roadmaps) {\n const w = r.width ?? 200;\n const h = r.height ?? 120;\n items.push({\n id: String(r.id),\n type: 'roadmap',\n x,\n y,\n width: w,\n height: h,\n text: r.text ?? '',\n description: r.description ?? '',\n date: r.date ?? null,\n completed: r.completed ?? false,\n cancelled: r.cancelled ?? false,\n parentId: r.parentId ?? null,\n zIndex: r.zIndex ?? 1,\n });\n if (r.parentId) {\n edges.push({\n id: `e-${r.parentId}-${r.id}`,\n source: String(r.parentId),\n target: String(r.id),\n type: 'default',\n animated: false,\n });\n }\n x += 24;\n y += 24;\n }\n setStickers(items);\n setEdges(edges);\n } catch (e) {\n console.warn('Не удалось загрузить доску для роадмапа:', e);\n }\n };\n loadBoard();\n }, [setStickers, setEdges]);\n\n useEffect(() => {\n let mounted = true;\n import('@xyflow/react')\n .then((mod) => {\n if (!mounted) return;\n const candidate = (mod && (mod.Widget || mod.default || mod?.widget || mod?.XyflowWidget)) ?? null;\n if (typeof candidate === 'function' || React.isValidElement(candidate)) {\n setWidgetComp(() => candidate);\n } else {\n setWidgetComp(() => SafeFallbackWidget);\n }\n })\n .catch(() => {\n if (mounted) setWidgetComp(() => SafeFallbackWidget);\n });\n return () => { mounted = false; };\n }, []);\n\n const Wrapper = WidgetComp || SafeFallbackWidget;\n\n return (\n <Wrapper>\n <div className=\"relative flex h-screen w-screen bg-gray-100\">\n <RoadmapToolbar createInCenter={() => {\n return { x: 300, y: 200 };\n }} />\n <Board ref={boardRef} />\n </div>\n </Wrapper>\n );\n};"],"names":["DND_NOTE","COLORS","ColorPalette","onPick","onSwatchClick","color","onSwatchDragStart","e","err","jsx","c","noteAdd","noteAddActive","NoteToolbar","open","setOpen","useState","wrapperRef","useRef","toggle","v","useEffect","handler","jsxs","SafeFallbackWidget","children","NoteBoardWidget","addSticker","useStickersStore","state","setStickers","boardRef","WidgetComp","setWidgetComp","notes","notesApi","x","y","items","n","w","NOTE_W","h","NOTE_H","mounted","mod","candidate","React","Wrapper","handlePick","created","Board","markdownAdd","markdownAddActive","MarkdownToolbar","isCreating","setIsCreating","topZ","createMarkdown","nextZ","markdownApi","centerX","centerY","MarkdownBoardWidget","boardMarkdowns","m","roadmapAdd","roadmapAddActive","RoadmapToolbar","createRoadmap","roadmapApi","RoadmapBoardWidget","setEdges","roadmaps","edges","r"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import { j as a, u as p, B as F, n as j, N as L, h as M, m as S, r as N } from "./chunks/Board-CoDGhH3-.js";
2
- import { i as q } from "./chunks/Board-CoDGhH3-.js";
3
- import { E as K, e as Q } from "./chunks/EmojiBoardWidget-C-Uhinz6.js";
1
+ import { j as a, u as p, B as F, n as j, N as L, h as M, m as S, r as N } from "./chunks/Board-CpOsQfT6.js";
2
+ import { i as q } from "./chunks/Board-CpOsQfT6.js";
3
+ import { E as K, e as Q } from "./chunks/EmojiBoardWidget-eFGE2g4e.js";
4
4
  import y, { useState as g, useRef as x, useEffect as k } from "react";
5
- import { S as t2, s as e2 } from "./chunks/ShapeBoardWidget-0JrJFCZl.js";
5
+ import { S as t2, s as e2 } from "./chunks/ShapeBoardWidget-B65qIGGa.js";
6
6
  const Z = "application/x-integration-note", H = [
7
7
  "#FFF79A",
8
8
  "#FFD7A6",
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/ShapeBoardWidget-BKEMVbRg.cjs");exports.ShapeBoardWidget=e.ShapeBoardWidget;exports.shapeNodeTypes=e.shapeNodeTypes;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/ShapeBoardWidget-TpOdsGEn.js");exports.ShapeBoardWidget=e.ShapeBoardWidget;exports.shapeNodeTypes=e.shapeNodeTypes;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,4 +1,4 @@
1
- import { S as s, s as o } from "../chunks/ShapeBoardWidget-0JrJFCZl.js";
1
+ import { S as s, s as o } from "../chunks/ShapeBoardWidget-B65qIGGa.js";
2
2
  export {
3
3
  s as ShapeBoardWidget,
4
4
  o as shapeNodeTypes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "integration-modules",
3
3
  "private": false,
4
- "version": "0.1.6",
4
+ "version": "0.1.8",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
7
7
  "module": "./dist/index.mjs",
@@ -23,7 +23,9 @@
23
23
  "require": "./dist/shape/index.cjs"
24
24
  }
25
25
  },
26
- "sideEffects": true,
26
+ "sideEffects": [
27
+ "**/*.css"
28
+ ],
27
29
  "scripts": {
28
30
  "dev": "vite",
29
31
  "build": "vite build",