labellife-design-tool 2.2.7 → 2.2.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/side-panel/tab-button.js","../../../src/utils/l10n.js","../../../src/config.js","../../../src/side-panel/text-panel.js","../../../src/side-panel/background-panel.js","../../../src/side-panel/layers-panel.js","../../../src/side-panel/elements-panel.js","../../../src/utils/image.js","../../../src/side-panel/upload-panel.js","../../../src/toolbar/image-effects-panel.js","../../../src/toolbar/image-mask-panel.js","../../../src/toolbar/text-effects-panel.js","../../../src/side-panel/side-panel.js","../../../src/side-panel/images-grid.js","../../../src/side-panel/input-fields-panel.js"],"sourcesContent":["import React from 'react';\nimport { Box, ButtonBase, Typography } from '@mui/material';\n\nexport function SectionTab({ name, onClick, active, children, ...rest }) {\n return (\n <ButtonBase\n onClick={onClick}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '8px 4px',\n width: '100%',\n minHeight: 64,\n borderRadius: '4px',\n color: active ? '#0d83cd' : '#666',\n backgroundColor: active ? 'rgba(13,131,205,0.08)' : 'transparent',\n '&:hover': {\n backgroundColor: active\n ? 'rgba(13,131,205,0.12)'\n : 'rgba(0,0,0,0.04)',\n },\n transition: 'all 0.15s ease',\n }}\n {...rest}\n >\n <Box\n sx={{\n fontSize: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n mb: 0.5,\n }}\n >\n {children}\n </Box>\n <Typography\n variant=\"caption\"\n sx={{\n fontSize: '10px',\n lineHeight: 1.2,\n textTransform: 'none',\n fontWeight: active ? 600 : 400,\n }}\n >\n {name}\n </Typography>\n </ButtonBase>\n );\n}\n\nexport default SectionTab;\n","// Use a window-level singleton so that all Rollup bundles (config, toolbar,\n// side-panel, canvas) share the same translations object. Without this each\n// bundle gets its own copy of this module with a separate local variable.\nconst GLOBAL_KEY = '__labellife_translations__';\nif (typeof window !== 'undefined' && !window[GLOBAL_KEY]) {\n window[GLOBAL_KEY] = {};\n}\n\nfunction _get() {\n return (typeof window !== 'undefined' && window[GLOBAL_KEY]) || {};\n}\n\nfunction deepMerge(target, source) {\n const result = { ...target };\n for (const key of Object.keys(source)) {\n if (\n source[key] &&\n typeof source[key] === 'object' &&\n !Array.isArray(source[key]) &&\n target[key] &&\n typeof target[key] === 'object' &&\n !Array.isArray(target[key])\n ) {\n result[key] = deepMerge(target[key], source[key]);\n } else {\n result[key] = source[key];\n }\n }\n return result;\n}\n\nexport function setTranslations(newTranslations) {\n if (typeof window !== 'undefined') {\n window[GLOBAL_KEY] = deepMerge(_get(), newTranslations);\n }\n}\n\nexport function getTranslations() {\n return _get();\n}\n\nexport function t(key, defaultValue) {\n // Support dot-notation paths like 'toolbar.duration'\n const parts = key.split('.');\n let current = _get();\n for (const part of parts) {\n if (current == null || typeof current !== 'object') {\n return defaultValue || key;\n }\n current = current[part];\n }\n if (current !== undefined && current !== null && typeof current !== 'object') {\n return current;\n }\n return defaultValue || key;\n}\n","import { setTranslations as _setTranslations, getTranslations, t } from './utils/l10n';\n\nlet _theme = 'light';\nlet _customTheme = {};\n\nexport function setTranslations(translations) {\n _setTranslations(translations);\n}\n\nexport { getTranslations, t };\n\nexport function setTheme(theme) {\n _theme = theme;\n}\n\nexport function getTheme() {\n return _theme;\n}\n\nexport function setCustomTheme(customTheme) {\n _customTheme = { ..._customTheme, ...customTheme };\n}\n\nexport function getCustomTheme() {\n return _customTheme;\n}\n\n// ── Input Fields Dialog Config ───────────────────────────────────────\nconst INPUT_FIELDS_CONFIG_KEY = '__labellife_input_fields_config__';\nif (typeof window !== 'undefined' && !window[INPUT_FIELDS_CONFIG_KEY]) {\n window[INPUT_FIELDS_CONFIG_KEY] = {};\n}\n\nexport function setInputFieldsConfig(config) {\n if (typeof window !== 'undefined') {\n window[INPUT_FIELDS_CONFIG_KEY] = { ...window[INPUT_FIELDS_CONFIG_KEY], ...config };\n }\n}\n\nexport function getInputFieldsConfig() {\n return (typeof window !== 'undefined' && window[INPUT_FIELDS_CONFIG_KEY]) || {};\n}\n","import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Button, Typography, IconButton } from '@mui/material';\nimport TextFieldsIcon from '@mui/icons-material/TextFields';\nimport FileUploadOutlinedIcon from '@mui/icons-material/FileUploadOutlined';\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\n// ── Shared helper: add a text element to canvas ──\nconst addTextToCanvas = (store, opts) => {\n const page = store.activePage;\n if (!page) return;\n\n const scaleFactor = Math.max(store.width / 500, 0.5);\n const fontSize = Math.round((opts.fontSize || 36) * scaleFactor);\n const width = Math.round((opts.width || 350) * scaleFactor);\n\n const defaults = {\n type: 'text',\n x: store.width / 2 - width / 2,\n y: store.height / 2 - fontSize / 2,\n width,\n text: opts.text || 'Cool text',\n fontSize,\n fontFamily: opts.fontFamily || 'Roboto',\n fontWeight: opts.fontWeight || 'normal',\n fontStyle: opts.fontStyle || 'normal',\n fill: '#000000',\n align: 'center',\n };\n defaults.height = Math.max(fontSize * 1.5, 40);\n\n page.addElement(defaults);\n store.history.addUndoState();\n};\n\n// ── Predefined text templates (json = element data, preview = thumbnail image) ──\nconst TEXT_TEMPLATES = [\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-adventure-fun-cursive.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-adventure-fun-cursive.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-celebration-birthday-cursive-handwritting.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-celebration-birthday-cursive-handwritting.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-corporate-business-clean-simple-modern.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-corporate-business-clean-simple-modern.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-corporate-hiring-simple-clean-modern.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-corporate-hiring-simple-clean-modern.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-fashion-sale-brand-clothes.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-fashion-sale-brand-clothes.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-modern-minamalistic-simple.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-modern-minamalistic-simple.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-party-invitation.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-party-invitation.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-price-package-corporate-list.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-price-package-corporate-list.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-quote-contemporary.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-quote-contemporary.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-quote-quotation-motivation-inspiring.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-quote-quotation-motivation-inspiring.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-romantic-handwrittern-cursive-elegant-celebration.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-romantic-handwrittern-cursive-elegant-celebration.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-sale-fashion-brand.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-sale-fashion-brand.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-sassy-fun-feminine.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-sassy-fun-feminine.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-ancient-old-roman-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-ancient-old-roman-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-awesome-fun-intresting-funky-playful.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-awesome-fun-intresting-funky-playful.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-beautiful-decorative-love-elgant-cursive-emotion-famenine.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-beautiful-decorative-love-elgant-cursive-emotion-famenine.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-buy-corporate-urgent-now-marketing.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-buy-corporate-urgent-now-marketing.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-classic-west-cowboy-wildwest-country-classic.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-classic-west-cowboy-wildwest-country-classic.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-future-ftureistic-trendy-funky-fun-cool.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-future-ftureistic-trendy-funky-fun-cool.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-halloween-celeration-horror-spooky.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-halloween-celeration-horror-spooky.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-marry-christmas-celebration.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-marry-christmas-celebration.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-motivating-motivational-inspiring-inspirational-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-motivating-motivational-inspiring-inspirational-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-motivation-inspiration-cursive-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-motivation-inspiration-cursive-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-orange-fruity-fruit-food-fuun-happy.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-orange-fruity-fruit-food-fuun-happy.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-romantic-elegant-love.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-romantic-elegant-love.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-data-stat-statistics-numeric-figures-reports-charts.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-data-stat-statistics-numeric-figures-reports-charts.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-list-colum-modern-point-fact.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-list-colum-modern-point-fact.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-recipe-food-list.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-recipe-food-list.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-ancient-medieval-old-roman-kind-royal.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-ancient-medieval-old-roman-kind-royal.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-anonymous-mystery-suspense.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-anonymous-mystery-suspense.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-autumn-red-orange-season-cursive-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-autumn-red-orange-season-cursive-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-colorful-color-fun-beads-game-themed-videogames.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-colorful-color-fun-beads-game-themed-videogames.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-decorative-hollow-effect.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-decorative-hollow-effect.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-decorative-message-line-lineart.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-decorative-message-line-lineart.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-fairytale-fanatcy-magic-magical.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-fairytale-fanatcy-magic-magical.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-happy-easter-festive-holiday.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-happy-easter-festive-holiday.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-happy-fun-joy-celebration.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-happy-fun-joy-celebration.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-horror-scary-fun-celebration-halloween.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-horror-scary-fun-celebration-halloween.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-inivitation-rsvp-event-celebration-weeding.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-inivitation-rsvp-event-celebration-weeding.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-motivation-hope-never-giveup-win-wivtory-cool-funky.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-motivation-hope-never-giveup-win-wivtory-cool-funky.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-murder-horror-scary-temed-holloween-haunted-suspence.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-murder-horror-scary-temed-holloween-haunted-suspence.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-music-simple-straight-jazzy-simple.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-music-simple-straight-jazzy-simple.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-numeric-number-figure-chalk-written-writting.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-numeric-number-figure-chalk-written-writting.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-save-the-date-celebration-calander-inviation-event.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-save-the-date-celebration-calander-inviation-event.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-save-the-date-invitation-party-invited-cool-.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-save-the-date-invitation-party-invited-cool-.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-signature-sign-elegant-royal.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-signature-sign-elegant-royal.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-spring-season-nature-leaf-flower-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-spring-season-nature-leaf-flower-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-summer-sunny-hot-sea-season.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-summer-sunny-hot-sea-season.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-treandu-cool-funky-hip.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-treandu-cool-funky-hip.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-what-when-where-column-fun-cool-question.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-what-when-where-column-fun-cool-question.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-winter-cold-wonderland-decorative-season.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-winter-cold-wonderland-decorative-season.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-alert-sale-brand-clearance-shop-now-sjopping-discount.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-alert-sale-brand-clearance-shop-now-sjopping-discount.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-chalk-drawing-chalkboard-pencil-marker-color-fill-hand-drawn-drawing.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-chalk-drawing-chalkboard-pencil-marker-color-fill-hand-drawn-drawing.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-code-matrix-numbers-numeric-data-sale.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-code-matrix-numbers-numeric-data-sale.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-fun-cool-cartoon-animated-game.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-fun-cool-cartoon-animated-game.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-funky-cool-hashtag-young-fun.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-funky-cool-hashtag-young-fun.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-instagram-tag-tagging-cool-unique.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-instagram-tag-tagging-cool-unique.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-s-sle-black-friday-shopping-buy.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-s-sle-black-friday-shopping-buy.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-speed-fast-run-running-cool-themed-cartoon-lines-waves-move-movement.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-speed-fast-run-running-cool-themed-cartoon-lines-waves-move-movement.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-sweat-candy.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-sweat-candy.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-themed-ink-bubble-fun-cool-cartoon-comic.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-themed-ink-bubble-fun-cool-cartoon-comic.png' },\n];\n\n// ── Preload all template fonts in background (runs once) ──\nlet _fontsPreloaded = false;\nfunction preloadTemplateFonts(store) {\n if (_fontsPreloaded) return;\n _fontsPreloaded = true;\n // Fetch all JSONs in parallel, collect font families, load them\n Promise.all(\n TEXT_TEMPLATES.map((t) =>\n fetch(t.json).then((r) => r.json()).catch(() => null)\n )\n ).then((results) => {\n const fonts = new Set();\n results.forEach((data) => {\n if (!data?.pages?.[0]?.children) return;\n data.pages[0].children.forEach((child) => {\n if (child.fontFamily) fonts.add(child.fontFamily);\n });\n });\n fonts.forEach((f) => store.loadFont(f));\n });\n}\n\n// ── Tab 1: Text presets + predefined templates ──\nconst TextTab = observer(({ store }) => {\n const [loadingIdx, setLoadingIdx] = useState(null);\n\n // Preload all template fonts on first mount\n useEffect(() => { preloadTemplateFonts(store); }, [store]);\n\n const presets = [\n {\n label: t('sidePanel.headerText', 'Create header'),\n text: t('sidePanel.headerText', 'Create header'),\n fontSize: 48,\n width: 400,\n fontWeight: 'bold',\n fontFamily: 'Roboto',\n },\n {\n label: t('sidePanel.subHeaderText', 'Create sub header'),\n text: t('sidePanel.subHeaderText', 'Create sub header'),\n fontSize: 28,\n width: 350,\n fontWeight: '500',\n fontFamily: 'Roboto',\n },\n {\n label: t('sidePanel.bodyText', 'Create body text'),\n text: t('sidePanel.bodyText', 'Create body text'),\n fontSize: 16,\n width: 300,\n fontWeight: 'normal',\n fontFamily: 'Roboto',\n },\n ];\n\n const handleTemplateClick = useCallback(async (tmpl, idx) => {\n const page = store.activePage;\n if (!page) return;\n setLoadingIdx(idx);\n try {\n const res = await fetch(tmpl.json);\n const data = await res.json();\n const templateChildren = data?.pages?.[0]?.children || [];\n\n // Add elements immediately so the user sees instant feedback\n const newIds = [];\n const fonts = new Set();\n templateChildren.forEach((child) => {\n const { id: _omit, ...childData } = child;\n const el = page.addElement(childData, { skipSelect: true });\n if (el) newIds.push(el.id);\n if (child.fontFamily) fonts.add(child.fontFamily);\n });\n if (newIds.length > 0) {\n store.selectElements(newIds);\n }\n store.history.addUndoState();\n\n // Load fonts in background — text-element's loadingdone handler\n // will reflow text once each font arrives\n [...fonts].forEach((f) => store.loadFont(f));\n } catch (err) {\n console.error('Failed to load text template:', err);\n } finally {\n setLoadingIdx(null);\n }\n }, [store]);\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n {presets.map((preset, idx) => (\n <Button\n key={idx}\n fullWidth\n onClick={() => addTextToCanvas(store, preset)}\n sx={{\n justifyContent: 'center',\n textTransform: 'none',\n py: 0,\n px: 0,\n fontSize: preset.fontSize > 30 ? 30 : preset.fontSize > 20 ? 20 : 16,\n fontWeight: preset.fontWeight,\n fontFamily: preset.fontFamily,\n color: '#333',\n '&:hover': {\n backgroundColor: 'rgba(13,131,205,0.04)',\n },\n }}\n >\n {preset.label}\n </Button>\n ))}\n\n {/* Predefined text templates grid */}\n <Typography\n variant=\"caption\"\n sx={{ mt: 2, mb: 1, color: '#888', fontSize: 11, fontWeight: 500 }}\n >\n {t('sidePanel.textTemplates', 'Text templates')}\n </Typography>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: 1,\n }}\n >\n {TEXT_TEMPLATES.map((tmpl, idx) => (\n <Box\n key={idx}\n onClick={() => handleTemplateClick(tmpl, idx)}\n sx={{\n cursor: loadingIdx === idx ? 'wait' : 'pointer',\n borderRadius: '4px',\n overflow: 'hidden',\n border: '1px solid transparent',\n opacity: loadingIdx === idx ? 0.5 : 1,\n transition: 'border-color 0.15s, box-shadow 0.15s, opacity 0.15s',\n '&:hover': {\n borderColor: '#0d83cd',\n boxShadow: '0 1px 4px rgba(13,131,205,0.15)',\n },\n }}\n >\n <img\n src={tmpl.preview}\n alt=\"Text template\"\n loading=\"lazy\"\n crossOrigin=\"anonymous\"\n draggable={false}\n style={{\n width: '100%',\n height: 'auto',\n display: 'block',\n }}\n />\n </Box>\n ))}\n </Box>\n </Box>\n );\n});\n\n// ── Module-level font storage (persists until page refresh) ──\nlet _uploadedFonts = [];\nlet _fontIdCounter = 0;\n\nconst registerFont = (displayName, blobUrl) => {\n const style = document.createElement('style');\n style.textContent = `@font-face { font-family: '${displayName}'; src: url('${blobUrl}'); }`;\n document.head.appendChild(style);\n return { familyName: displayName, styleEl: style };\n};\n\n// ── Tab 2: My Fonts ──\nconst MyFontsTab = observer(({ store }) => {\n const [, setRenderKey] = useState(0);\n const forceUpdate = useCallback(() => setRenderKey((k) => k + 1), []);\n const fileInputRef = useRef(null);\n\n const fonts = _uploadedFonts;\n\n const handleUpload = useCallback((e) => {\n const file = e.target.files?.[0];\n if (!file) return;\n e.target.value = '';\n\n const rawName = file.name.replace(/\\.(ttf|otf|woff2?|eot)$/i, '');\n const blobUrl = URL.createObjectURL(file);\n const { familyName, styleEl } = registerFont(rawName, blobUrl);\n\n _uploadedFonts = [\n ..._uploadedFonts,\n { id: `${Date.now()}_${++_fontIdCounter}`, displayName: rawName, familyName, blobUrl, styleEl },\n ];\n forceUpdate();\n }, [forceUpdate]);\n\n const handleDelete = useCallback((id) => {\n const font = _uploadedFonts.find((f) => f.id === id);\n if (font) {\n if (font.styleEl?.parentNode) font.styleEl.parentNode.removeChild(font.styleEl);\n URL.revokeObjectURL(font.blobUrl);\n }\n _uploadedFonts = _uploadedFonts.filter((f) => f.id !== id);\n forceUpdate();\n }, [forceUpdate]);\n\n const handleFontClick = useCallback((font) => {\n addTextToCanvas(store, {\n text: 'Cool text',\n fontSize: 36,\n width: 350,\n fontFamily: font.familyName,\n fontWeight: 'normal',\n });\n }, [store]);\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>\n {/* Upload button */}\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".ttf,.otf,.woff,.woff2,.eot\"\n style={{ display: 'none' }}\n onChange={handleUpload}\n />\n <Button\n fullWidth\n variant=\"outlined\"\n onClick={() => fileInputRef.current?.click()}\n startIcon={<FileUploadOutlinedIcon />}\n sx={{\n textTransform: 'none',\n borderColor: '#ccc',\n color: '#333',\n fontWeight: 400,\n fontSize: 13,\n py: 0.8,\n '&:hover': { borderColor: '#999', backgroundColor: 'rgba(0,0,0,0.02)' },\n }}\n >\n {t('sidePanel.uploadFont', 'Upload font')}\n </Button>\n\n {/* Uploaded fonts list */}\n {fonts.map((font) => (\n <Box\n key={font.id}\n onClick={() => handleFontClick(font)}\n sx={{\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#b0b0b0',\n borderRadius: '6px',\n py: 2.5,\n px: 2,\n cursor: 'pointer',\n minHeight: 60,\n '&:hover': { backgroundColor: '#a0a0a0' },\n }}\n >\n <Typography\n sx={{\n fontFamily: `'${font.familyName}', sans-serif`,\n fontSize: 20,\n color: '#fff',\n textAlign: 'center',\n userSelect: 'none',\n lineHeight: 1.3,\n }}\n >\n {font.displayName} text\n </Typography>\n <IconButton\n size=\"small\"\n onClick={(e) => { e.stopPropagation(); handleDelete(font.id); }}\n sx={{\n position: 'absolute',\n bottom: 4,\n right: 4,\n color: 'rgba(255,255,255,0.7)',\n '&:hover': { color: '#fff', backgroundColor: 'rgba(255,255,255,0.15)' },\n }}\n >\n <DeleteOutlineIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n ))}\n </Box>\n );\n});\n\n// ── Main panel with tabs ──\nconst TextPanelContent = observer(({ store }) => {\n const [activeTab, setActiveTab] = useState('text');\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n {/* Tab bar */}\n <Box sx={{ display: 'flex', borderBottom: '1px solid #e0e0e0' }}>\n {[\n { key: 'text', label: t('sidePanel.textTab', 'Text') },\n { key: 'myfonts', label: t('sidePanel.myFontsTab', 'My fonts') },\n ].map((tab) => (\n <Box\n key={tab.key}\n onClick={() => setActiveTab(tab.key)}\n sx={{\n flex: 1,\n textAlign: 'center',\n py: 1,\n fontSize: 13,\n fontWeight: activeTab === tab.key ? 600 : 400,\n color: activeTab === tab.key ? '#0d83cd' : '#666',\n borderBottom: activeTab === tab.key ? '2px solid #0d83cd' : '2px solid transparent',\n cursor: 'pointer',\n userSelect: 'none',\n transition: 'color 0.15s, border-color 0.15s',\n '&:hover': { color: '#0d83cd' },\n }}\n >\n {tab.label}\n </Box>\n ))}\n </Box>\n\n {/* Tab content */}\n <Box sx={{ p: 2, flex: 1, overflowY: 'auto' }}>\n {activeTab === 'text' && <TextTab store={store} />}\n {activeTab === 'myfonts' && <MyFontsTab store={store} />}\n </Box>\n </Box>\n );\n});\n\nexport const TextSection = {\n name: 'text',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.text', 'Text')} {...props}>\n <TextFieldsIcon />\n </SectionTab>\n ),\n Panel: TextPanelContent,\n};\n","import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, TextField, InputAdornment, Paper, ClickAwayListener } from '@mui/material';\nimport WallpaperIcon from '@mui/icons-material/Wallpaper';\nimport SearchIcon from '@mui/icons-material/Search';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\n// ─── Color conversion utilities ──────────────────────────────────────\n\nfunction hsvToRgb(h, s, v) {\n const i = Math.floor(h / 60) % 6;\n const f = h / 60 - Math.floor(h / 60);\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const tt = v * (1 - (1 - f) * s);\n let r, g, b;\n switch (i) {\n case 0: r = v; g = tt; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = tt; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = tt; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n}\n\nfunction rgbToHsv(r, g, b) {\n r /= 255; g /= 255; b /= 255;\n const max = Math.max(r, g, b), min = Math.min(r, g, b);\n const d = max - min;\n let h = 0, s = max === 0 ? 0 : d / max, v = max;\n if (d !== 0) {\n if (max === r) h = ((g - b) / d + 6) % 6 * 60;\n else if (max === g) h = ((b - r) / d + 2) * 60;\n else h = ((r - g) / d + 4) * 60;\n }\n return [h, s, v];\n}\n\nfunction hexToRgb(hex) {\n hex = (hex || '000000').replace('#', '');\n if (hex.length === 3) hex = hex.split('').map(c => c + c).join('');\n if (hex.length !== 6) return [0, 0, 0];\n return [parseInt(hex.substr(0, 2), 16) || 0, parseInt(hex.substr(2, 2), 16) || 0, parseInt(hex.substr(4, 2), 16) || 0];\n}\n\nfunction rgbToHex(r, g, b) {\n return '#' + [r, g, b].map(x => Math.max(0, Math.min(255, Math.round(x))).toString(16).padStart(2, '0')).join('');\n}\n\nfunction hueToColor(h) { return rgbToHex(...hsvToRgb(h, 1, 1)); }\n\n// ─── Constants ───────────────────────────────────────────────────────\n\nconst UNSPLASH_KEY = 'zwiE802FyRjTmLhZjXqW';\nconst UNSPLASH_BASE = 'https://api.polotno.com/api/get-unsplash';\n\nconst SWATCH_COLORS = ['#ffffff', '#1a237e', '#ff6d00', '#2e7d32', '#fdd835', '#9c27b0'];\n\nconst PICKER_PRESETS = [\n '#f44336', '#ff9800', '#ffeb3b', '#4caf50', '#2196f3', '#9c27b0',\n '#00bcd4', '#8bc34a', '#cddc39', '#000000', '#607d8b', '#ffffff',\n];\n\nconst CHECKER_SVG = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Crect width='8' height='8' fill='%23ccc'/%3E%3Crect x='8' y='8' width='8' height='8' fill='%23ccc'/%3E%3Crect x='8' width='8' height='8' fill='%23fff'/%3E%3Crect y='8' width='8' height='8' fill='%23fff'/%3E%3C/svg%3E\";\n\n// ─── Saturation / Brightness Square ─────────────────────────────────\n\nconst SatBrightSquare = ({ hue, sat, bright, onChange, size = 220 }) => {\n const ref = useRef(null);\n const dragging = useRef(false);\n\n const update = useCallback((e) => {\n const rect = ref.current?.getBoundingClientRect();\n if (!rect) return;\n const x = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n const y = Math.max(0, Math.min(1, (e.clientY - rect.top) / rect.height));\n onChange(x, 1 - y);\n }, [onChange]);\n\n useEffect(() => {\n const onMove = (e) => { if (dragging.current) { e.preventDefault(); update(e); } };\n const onUp = () => { dragging.current = false; };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n return () => { document.removeEventListener('mousemove', onMove); document.removeEventListener('mouseup', onUp); };\n }, [update]);\n\n return (\n <Box\n ref={ref}\n onMouseDown={(e) => { dragging.current = true; update(e); }}\n sx={{\n width: size, height: Math.round(size * 0.7), position: 'relative', cursor: 'crosshair',\n borderRadius: '4px', userSelect: 'none',\n background: `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, ${hueToColor(hue)})`,\n }}\n >\n <Box sx={{\n position: 'absolute', left: `${sat * 100}%`, top: `${(1 - bright) * 100}%`,\n width: 12, height: 12, borderRadius: '50%',\n border: '2px solid #fff', boxShadow: '0 0 3px rgba(0,0,0,0.6)',\n transform: 'translate(-50%, -50%)', pointerEvents: 'none',\n }} />\n </Box>\n );\n};\n\n// ─── Hue Bar ─────────────────────────────────────────────────────────\n\nconst HueBar = ({ hue, onChange, width = 220 }) => {\n const ref = useRef(null);\n const dragging = useRef(false);\n\n const update = useCallback((e) => {\n const rect = ref.current?.getBoundingClientRect();\n if (!rect) return;\n onChange(Math.max(0, Math.min(360, ((e.clientX - rect.left) / rect.width) * 360)));\n }, [onChange]);\n\n useEffect(() => {\n const onMove = (e) => { if (dragging.current) { e.preventDefault(); update(e); } };\n const onUp = () => { dragging.current = false; };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n return () => { document.removeEventListener('mousemove', onMove); document.removeEventListener('mouseup', onUp); };\n }, [update]);\n\n return (\n <Box\n ref={ref}\n onMouseDown={(e) => { dragging.current = true; update(e); }}\n sx={{\n width, height: 14, borderRadius: '7px', position: 'relative', cursor: 'pointer',\n background: 'linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)',\n userSelect: 'none', mt: 1,\n }}\n >\n <Box sx={{\n position: 'absolute', left: `${(hue / 360) * 100}%`, top: '50%',\n width: 14, height: 14, borderRadius: '50%',\n border: '2px solid #fff', boxShadow: '0 0 2px rgba(0,0,0,0.5)',\n transform: 'translate(-50%, -50%)', pointerEvents: 'none',\n backgroundColor: hueToColor(hue),\n }} />\n </Box>\n );\n};\n\n// ─── Color Picker (used inside Solid & Linear tabs) ──────────────────\n\nconst ColorPicker = ({ color, onChange }) => {\n const [hsv, setHsv] = useState(() => rgbToHsv(...hexToRgb(color)));\n const [rgb, setRgb] = useState(() => hexToRgb(color));\n const [hexInput, setHexInput] = useState((color || '#000000').replace('#', ''));\n\n useEffect(() => {\n const r = hexToRgb(color || '#000000');\n const h = rgbToHsv(...r);\n setRgb(r);\n setHsv(h);\n setHexInput((color || '#000000').replace('#', ''));\n }, [color]);\n\n const emit = (h, s, v) => {\n const newRgb = hsvToRgb(h, s, v);\n const hex = rgbToHex(...newRgb);\n setHsv([h, s, v]);\n setRgb(newRgb);\n setHexInput(hex.replace('#', ''));\n onChange(hex);\n };\n\n const handleHex = (val) => {\n setHexInput(val);\n if (/^[0-9a-fA-F]{6}$/.test(val)) {\n const r = hexToRgb(val);\n setRgb(r);\n setHsv(rgbToHsv(...r));\n onChange('#' + val);\n }\n };\n\n const handleRgb = (idx, val) => {\n const v = parseInt(val);\n if (isNaN(v) || v < 0 || v > 255) return;\n const newRgb = [...rgb]; newRgb[idx] = v;\n setRgb(newRgb);\n setHsv(rgbToHsv(...newRgb));\n const hex = rgbToHex(...newRgb);\n setHexInput(hex.replace('#', ''));\n onChange(hex);\n };\n\n const smallSx = { width: 38, '& .MuiInputBase-input': { fontSize: 11, py: 0.3, px: 0.3, textAlign: 'center' } };\n\n return (\n <Box>\n <SatBrightSquare hue={hsv[0]} sat={hsv[1]} bright={hsv[2]} onChange={(s, v) => emit(hsv[0], s, v)} />\n <HueBar hue={hsv[0]} onChange={(h) => emit(h, hsv[1], hsv[2])} />\n\n <Box sx={{ display: 'flex', gap: 0.5, mt: 1.5, alignItems: 'center' }}>\n <TextField size=\"small\" value={hexInput} onChange={(e) => handleHex(e.target.value)}\n onFocus={(e) => e.target.select()}\n sx={{ width: 60, '& .MuiInputBase-input': { fontSize: 11, py: 0.3, px: 0.5 } }} />\n {[0, 1, 2].map((i) => (\n <TextField key={i} size=\"small\" type=\"number\" value={rgb[i]}\n onChange={(e) => handleRgb(i, e.target.value)} onFocus={(e) => e.target.select()} sx={smallSx} inputProps={{ min: 0, max: 255 }} />\n ))}\n <TextField size=\"small\" type=\"number\" value={100} disabled sx={smallSx} />\n </Box>\n <Box sx={{ display: 'flex', gap: 0.5, mt: 0.3 }}>\n {['Hex', 'R', 'G', 'B', 'A'].map((label, i) => (\n <Typography key={label} variant=\"caption\" sx={{ width: i === 0 ? 60 : 38, textAlign: 'center', color: '#888', fontSize: 10 }}>\n {label}\n </Typography>\n ))}\n </Box>\n\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5, mt: 1 }}>\n {PICKER_PRESETS.map((c) => (\n <Box key={c} onClick={() => onChange(c)} sx={{\n width: 18, height: 18, borderRadius: '3px', backgroundColor: c,\n border: '1px solid #ddd', cursor: 'pointer',\n '&:hover': { transform: 'scale(1.2)' }, transition: 'transform 0.1s',\n }} />\n ))}\n </Box>\n </Box>\n );\n};\n\n// ─── Color Popup (Solid / Linear tabs) ───────────────────────────────\n\nconst ColorPopup = ({ open, onClose, background, onBackgroundChange }) => {\n const [tab, setTab] = useState('solid');\n const [solidColor, setSolidColor] = useState('#000000');\n const [gradColors, setGradColors] = useState(['#000000', '#ffffff']);\n const [gradAngle, setGradAngle] = useState(0);\n const [activeStop, setActiveStop] = useState(0);\n\n useEffect(() => {\n if (!open) return;\n if (background && background.startsWith('{')) {\n try {\n const g = JSON.parse(background);\n if (g.type === 'linear') {\n setTab('linear');\n setGradColors(g.colors || ['#000000', '#ffffff']);\n setGradAngle(g.angle || 0);\n return;\n }\n } catch (e) {}\n }\n setTab('solid');\n if (background && background.startsWith('#')) setSolidColor(background);\n }, [open]);\n\n const handleSolid = (c) => { setSolidColor(c); onBackgroundChange(c); };\n\n const handleGradColor = (c) => {\n const nc = [...gradColors]; nc[activeStop] = c; setGradColors(nc);\n onBackgroundChange(JSON.stringify({ type: 'linear', colors: nc, angle: gradAngle }));\n };\n\n const handleAngle = (a) => {\n setGradAngle(a);\n onBackgroundChange(JSON.stringify({ type: 'linear', colors: gradColors, angle: a }));\n };\n\n if (!open) return null;\n\n const tabStyle = (active) => ({\n cursor: 'pointer', fontWeight: active ? 600 : 400,\n color: active ? '#1976d2' : '#666',\n borderBottom: active ? '2px solid #1976d2' : '2px solid transparent',\n pb: 0.3, px: 0.5, userSelect: 'none',\n });\n\n return (\n <ClickAwayListener onClickAway={onClose}>\n <Paper elevation={4} sx={{ position: 'absolute', top: 52, left: 0, zIndex: 1000, p: 1.5, width: 252, borderRadius: '8px' }}>\n <Box sx={{ display: 'flex', gap: 2, mb: 1.5, borderBottom: '1px solid #e0e0e0', pb: 0.5 }}>\n <Typography variant=\"body2\" onClick={() => setTab('solid')} sx={tabStyle(tab === 'solid')}>Solid</Typography>\n <Typography variant=\"body2\" onClick={() => {\n setTab('linear');\n onBackgroundChange(JSON.stringify({ type: 'linear', colors: gradColors, angle: gradAngle }));\n }} sx={tabStyle(tab === 'linear')}>Linear</Typography>\n </Box>\n\n {tab === 'solid' && <ColorPicker color={solidColor} onChange={handleSolid} />}\n\n {tab === 'linear' && (\n <>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n {gradColors.map((c, i) => (\n <Box key={i} onClick={() => setActiveStop(i)} sx={{\n width: 32, height: 32, borderRadius: '4px', backgroundColor: c,\n border: activeStop === i ? '2px solid #1976d2' : '2px solid #ccc', cursor: 'pointer',\n }} />\n ))}\n </Box>\n\n <Box sx={{\n width: '100%', height: 12, borderRadius: '6px', mb: 1,\n background: `linear-gradient(${gradAngle}deg, ${gradColors[0]}, ${gradColors[1]})`,\n border: '1px solid #e0e0e0',\n }} />\n\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1.5 }}>\n <Box sx={{\n width: 24, height: 24, borderRadius: '50%', border: '1px solid #ccc',\n position: 'relative', flexShrink: 0,\n }}>\n <Box sx={{\n width: 1, height: 10, backgroundColor: '#333',\n transformOrigin: 'bottom center', transform: `rotate(${gradAngle}deg)`,\n position: 'absolute', left: '50%', bottom: '50%', ml: '-0.5px',\n }} />\n </Box>\n <input type=\"range\" min={0} max={360} value={gradAngle}\n onChange={(e) => handleAngle(parseInt(e.target.value))}\n style={{ flex: 1, cursor: 'pointer' }} />\n <Typography variant=\"caption\" sx={{ width: 32, textAlign: 'right', flexShrink: 0 }}>{gradAngle}°</Typography>\n </Box>\n\n <ColorPicker color={gradColors[activeStop]} onChange={handleGradColor} />\n </>\n )}\n </Paper>\n </ClickAwayListener>\n );\n};\n\n// ─── Main Background Panel ───────────────────────────────────────────\n\nconst BackgroundPanelContent = observer(({ store }) => {\n const page = store.activePage;\n const [pickerOpen, setPickerOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [photos, setPhotos] = useState([]);\n const [loading, setLoading] = useState(false);\n const [lastSolidColor, setLastSolidColor] = useState('#ffffff');\n const [hasMore, setHasMore] = useState(true);\n const [pageNum, setPageNum] = useState(1);\n\n const hasMoreRef = useRef(true);\n const pageNumRef = useRef(1);\n const currentQueryRef = useRef('gradient');\n const debounceRef = useRef(null);\n const isFirstRender = useRef(true);\n const requestIdRef = useRef(0);\n const observerRef = useRef(null);\n const fetchingRef = useRef(false);\n\n useEffect(() => {\n const bg = page?.background || '';\n if (bg && bg.startsWith('#')) setLastSolidColor(bg);\n }, [page?.background]);\n\n const fetchPhotos = useCallback(async (query, pg = 1) => {\n // For pagination (pg > 1), skip if already fetching to avoid duplicates\n if (pg > 1 && fetchingRef.current) return;\n const id = ++requestIdRef.current;\n fetchingRef.current = true;\n setLoading(true);\n try {\n const q = query || 'gradient';\n const res = await fetch(`${UNSPLASH_BASE}?query=${encodeURIComponent(q)}&per_page=20&page=${pg}&KEY=${UNSPLASH_KEY}`);\n const data = await res.json();\n if (requestIdRef.current !== id) return; // Stale response, ignore\n const results = data.results || (Array.isArray(data) ? data : []);\n const totalPages = data.total_pages || 0;\n if (pg === 1) { setPhotos(results); } else { setPhotos(prev => [...prev, ...results]); }\n const more = pg < totalPages;\n setHasMore(more); hasMoreRef.current = more;\n setPageNum(pg); pageNumRef.current = pg;\n currentQueryRef.current = q;\n } catch (e) {\n if (requestIdRef.current !== id) return;\n console.warn('Unsplash fetch failed:', e);\n }\n fetchingRef.current = false;\n setLoading(false);\n }, []);\n\n // Initial load\n useEffect(() => { fetchPhotos('gradient', 1); }, [fetchPhotos]);\n\n // Debounced auto-search (500ms)\n useEffect(() => {\n if (isFirstRender.current) { isFirstRender.current = false; return; }\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n const q = searchQuery.trim() || 'gradient';\n hasMoreRef.current = true; pageNumRef.current = 1;\n setHasMore(true); setPageNum(1);\n fetchPhotos(q, 1);\n }, 500);\n return () => { if (debounceRef.current) clearTimeout(debounceRef.current); };\n }, [searchQuery, fetchPhotos]);\n\n // Callback ref for infinite scroll sentinel — reconnects observer on every mount/remount\n const sentinelRef = useCallback((node) => {\n if (observerRef.current) { observerRef.current.disconnect(); observerRef.current = null; }\n if (!node) return;\n observerRef.current = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting && !fetchingRef.current && hasMoreRef.current) {\n fetchPhotos(currentQueryRef.current, pageNumRef.current + 1);\n }\n }, { threshold: 0.1 });\n observerRef.current.observe(node);\n }, [fetchPhotos]);\n\n const setBackground = useCallback((value) => {\n if (!page) return;\n page.set({ background: value });\n store.history.addUndoState();\n }, [page, store]);\n\n const bg = page?.background || '';\n const isGradient = bg.startsWith('{');\n const isImage = bg.startsWith('http');\n const displayColor = isGradient || isImage ? lastSolidColor : (bg || '#ffffff');\n\n return (\n <Box sx={{ p: 1.5, position: 'relative' }}>\n {/* ── Color Swatches Row ── */}\n <Box sx={{ display: 'flex', gap: '6px', mb: 1.5, alignItems: 'center', flexWrap: 'nowrap', overflowX: 'hidden', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* Palette / color picker trigger */}\n <Box onClick={() => setPickerOpen(!pickerOpen)} sx={{\n width: 30, height: 30, minWidth: 30, borderRadius: '50%', cursor: 'pointer',\n border: pickerOpen ? '2px solid #1976d2' : '2px solid #e0e0e0',\n display: 'flex', alignItems: 'center', justifyContent: 'center',\n background: 'conic-gradient(#f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)',\n '&:hover': { borderColor: '#1976d2' }, transition: 'border-color 0.15s',\n }}>\n <Box sx={{ width: 16, height: 16, borderRadius: '50%', backgroundColor: '#fff' }} />\n </Box>\n\n {/* Preset color swatches */}\n {SWATCH_COLORS.map((c) => (\n <Box key={c} onClick={() => { setBackground(c); setPickerOpen(false); }} sx={{\n width: 30, height: 30, minWidth: 30, borderRadius: '50%', backgroundColor: c, cursor: 'pointer',\n border: bg === c ? '2px solid #1976d2' : '2px solid #e0e0e0',\n '&:hover': { transform: 'scale(1.1)' }, transition: 'all 0.15s',\n }} />\n ))}\n\n {/* Transparent / remove background */}\n <Box onClick={() => { setBackground('transparent'); setPickerOpen(false); }} sx={{\n width: 30, height: 30, minWidth: 30, borderRadius: '50%', cursor: 'pointer',\n backgroundImage: `url(\"${CHECKER_SVG}\")`, backgroundSize: '8px 8px',\n border: bg === 'transparent' ? '2px solid #1976d2' : '2px solid #e0e0e0',\n '&:hover': { transform: 'scale(1.1)' }, transition: 'all 0.15s',\n }} />\n </Box>\n\n {/* ── Color Picker Popup ── */}\n <ColorPopup open={pickerOpen} onClose={() => setPickerOpen(false)} background={bg} onBackgroundChange={setBackground} />\n\n {/* ── Search Input ── */}\n <TextField\n size=\"small\" fullWidth\n placeholder={t('sidePanel.search', 'Search...')}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ fontSize: 18, color: '#999' }} />\n </InputAdornment>\n ),\n }}\n sx={{ mb: 1.5, '& .MuiInputBase-input': { fontSize: 13, py: 0.8 } }}\n />\n\n {/* ── Unsplash Attribution ── */}\n <Typography variant=\"caption\" sx={{ display: 'block', textAlign: 'center', mb: 1, color: '#888' }}>\n Photos by{' '}\n <a href=\"https://unsplash.com\" target=\"_blank\" rel=\"noopener noreferrer\" style={{ color: '#1976d2', textDecoration: 'none' }}>\n Unsplash\n </a>\n </Typography>\n\n {/* ── Photo Grid ── */}\n <Box sx={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 1 }}>\n {photos.map((photo, idx) => {\n const thumb = photo.urls?.small || photo.urls?.thumb || photo.src;\n if (!thumb) return null;\n return (\n <Box key={photo.id || idx} onClick={() => {\n const url = photo.urls?.regular || photo.urls?.small || photo.src;\n if (url) setBackground(url);\n }} sx={{\n cursor: 'pointer', borderRadius: '8px', overflow: 'hidden', aspectRatio: '4/3',\n '&:hover': { opacity: 0.85 }, transition: 'opacity 0.15s',\n }}>\n <img src={thumb} alt={photo.alt_description || 'Background'}\n style={{ width: '100%', height: '100%', objectFit: 'cover', display: 'block' }} loading=\"lazy\" />\n </Box>\n );\n })}\n </Box>\n\n {/* Sentinel for infinite scroll */}\n {hasMore && <Box ref={sentinelRef} sx={{ height: 20 }} />}\n\n {loading && (\n <Typography variant=\"caption\" sx={{ display: 'block', textAlign: 'center', mt: 2, color: '#888' }}>\n Loading...\n </Typography>\n )}\n {!loading && photos.length === 0 && (\n <Typography variant=\"caption\" sx={{ display: 'block', textAlign: 'center', mt: 2, color: '#888' }}>\n No photos found\n </Typography>\n )}\n </Box>\n );\n});\n\nexport const BackgroundSection = {\n name: 'background',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.background', 'Background')} {...props}>\n <WallpaperIcon />\n </SectionTab>\n ),\n Panel: BackgroundPanelContent,\n};\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, IconButton, List, ListItem, ListItemText, ListItemIcon } from '@mui/material';\nimport LayersIcon from '@mui/icons-material/Layers';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\nimport LockIcon from '@mui/icons-material/Lock';\nimport LockOpenIcon from '@mui/icons-material/LockOpen';\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';\nimport ArrowUpwardIcon from '@mui/icons-material/ArrowUpward';\nimport ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';\nimport ImageIcon from '@mui/icons-material/Image';\nimport TextFieldsIcon from '@mui/icons-material/TextFields';\nimport CategoryIcon from '@mui/icons-material/Category';\nimport TimelineIcon from '@mui/icons-material/Timeline';\nimport CodeIcon from '@mui/icons-material/Code';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\nconst ELEMENT_ICONS = {\n image: ImageIcon,\n text: TextFieldsIcon,\n figure: CategoryIcon,\n line: TimelineIcon,\n svg: CodeIcon,\n};\n\nconst LayerItem = observer(({ element, store, index }) => {\n const isSelected = store.selectedElementsIds.includes(element.id);\n const Icon = ELEMENT_ICONS[element.type] || CategoryIcon;\n const isLocked = element.locked;\n\n const handleSelect = () => {\n store.selectElements([element.id]);\n };\n\n const handleToggleVisibility = (e) => {\n e.stopPropagation();\n element.set({ visible: !element.visible });\n store.history.addUndoState();\n };\n\n const handleToggleLock = (e) => {\n e.stopPropagation();\n if (isLocked) {\n element.set({\n draggable: true,\n resizable: true,\n contentEditable: true,\n styleEditable: true,\n });\n } else {\n element.set({\n draggable: false,\n resizable: false,\n contentEditable: false,\n styleEditable: false,\n });\n }\n store.history.addUndoState();\n };\n\n const handleMoveUp = (e) => {\n e.stopPropagation();\n element.moveUp();\n store.history.addUndoState();\n };\n\n const handleMoveDown = (e) => {\n e.stopPropagation();\n element.moveDown();\n store.history.addUndoState();\n };\n\n const handleDelete = (e) => {\n e.stopPropagation();\n store.deleteElements([element.id]);\n store.history.addUndoState();\n };\n\n const displayName =\n element.name ||\n `${element.type}${element.text ? `: ${element.text.substring(0, 20)}` : ''}`;\n\n return (\n <ListItem\n onClick={handleSelect}\n sx={{\n cursor: 'pointer',\n borderRadius: '4px',\n mb: 0.5,\n py: 0.5,\n px: 1,\n backgroundColor: isSelected ? 'rgba(13,131,205,0.1)' : 'transparent',\n border: isSelected ? '1px solid rgba(13,131,205,0.3)' : '1px solid transparent',\n opacity: element.visible ? 1 : 0.5,\n '&:hover': {\n backgroundColor: isSelected\n ? 'rgba(13,131,205,0.15)'\n : 'rgba(0,0,0,0.04)',\n },\n }}\n >\n <ListItemIcon sx={{ minWidth: 32 }}>\n <Icon sx={{ fontSize: 18, color: isSelected ? '#0d83cd' : '#666' }} />\n </ListItemIcon>\n <ListItemText\n primary={displayName}\n primaryTypographyProps={{\n variant: 'body2',\n noWrap: true,\n sx: { fontSize: '12px' },\n }}\n />\n <Box sx={{ display: 'flex', gap: 0, ml: 1 }}>\n <IconButton size=\"small\" onClick={handleMoveUp} sx={{ p: 0.3 }}>\n <ArrowUpwardIcon sx={{ fontSize: 14 }} />\n </IconButton>\n <IconButton size=\"small\" onClick={handleMoveDown} sx={{ p: 0.3 }}>\n <ArrowDownwardIcon sx={{ fontSize: 14 }} />\n </IconButton>\n <IconButton size=\"small\" onClick={handleToggleVisibility} sx={{ p: 0.3 }}>\n {element.visible ? (\n <VisibilityIcon sx={{ fontSize: 14 }} />\n ) : (\n <VisibilityOffIcon sx={{ fontSize: 14 }} />\n )}\n </IconButton>\n <IconButton size=\"small\" onClick={handleToggleLock} sx={{ p: 0.3 }}>\n {isLocked ? (\n <LockIcon sx={{ fontSize: 14 }} />\n ) : (\n <LockOpenIcon sx={{ fontSize: 14 }} />\n )}\n </IconButton>\n <IconButton size=\"small\" onClick={handleDelete} sx={{ p: 0.3 }}>\n <DeleteOutlineIcon sx={{ fontSize: 14, color: '#d32f2f' }} />\n </IconButton>\n </Box>\n </ListItem>\n );\n});\n\nconst LayersPanelContent = observer(({ store }) => {\n const page = store.activePage;\n\n if (!page || page.children.length === 0) {\n return (\n <Box sx={{ p: 2, textAlign: 'center' }}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {t('sidePanel.noLayers', 'No layers on this page')}\n </Typography>\n </Box>\n );\n }\n\n // Show in reverse order (top layer first)\n const elements = [...page.children].reverse();\n\n return (\n <Box sx={{ p: 1, overflowY: 'auto', height: '100%' }}>\n <Typography variant=\"subtitle2\" sx={{ px: 1, mb: 1 }}>\n {t('sidePanel.layers', 'Layers')} ({page.children.length})\n </Typography>\n <List dense disablePadding>\n {elements.map((element, index) => (\n <LayerItem\n key={element.id}\n element={element}\n store={store}\n index={index}\n />\n ))}\n </List>\n </Box>\n );\n});\n\nexport const LayersSection = {\n name: 'layers',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.layers', 'Layers')} {...props}>\n <LayersIcon />\n </SectionTab>\n ),\n Panel: LayersPanelContent,\n};\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography } from '@mui/material';\nimport CategoryIcon from '@mui/icons-material/Category';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\n// ── Line definitions ────────────────────────────────────────────────\nconst LINES = [\n { name: 'Solid', endHead: '', dash: [], svgLine: { strokeDasharray: 'none' } },\n { name: 'Dashed', endHead: '', dash: [10, 5], svgLine: { strokeDasharray: '8 4' } },\n { name: 'Dotted', endHead: '', dash: [2, 4], svgLine: { strokeDasharray: '2 4' } },\n { name: 'Arrow', endHead: 'arrow', dash: [], svgLine: { strokeDasharray: 'none', marker: true } },\n { name: 'Dot Arrow', endHead: 'arrow', startHead: 'circle', dash: [], svgLine: { strokeDasharray: 'none', marker: true, startDot: true } },\n { name: 'Dash Arrow', endHead: 'arrow', startHead: 'square', dash: [8, 4], svgLine: { strokeDasharray: '6 3', marker: true, startSquare: true } },\n];\n\n// ── Shape definitions (100×100 viewBox paths) ───────────────────────\nconst SHAPES = [\n // Row 1 — basic\n { name: 'Rectangle', subType: 'rect' },\n { name: 'Circle', subType: 'circle' },\n { name: 'Star', subType: 'star' },\n { name: 'Triangle', subType: 'triangle' },\n // Row 2\n { name: 'Parallelogram', subType: 'path', path: 'M20 90 L0 10 L80 10 L100 90 Z' },\n { name: 'Diamond', subType: 'diamond' },\n { name: 'Pentagon', subType: 'polygon' },\n { name: 'Hexagon', subType: 'hexagon' },\n // Row 3\n { name: 'Speech Bubble', subType: 'path', path: 'M10 5 H90 Q95 5 95 10 V55 Q95 60 90 60 H35 L15 80 L25 60 H10 Q5 60 5 55 V10 Q5 5 10 5 Z' },\n { name: 'Cross', subType: 'path', path: 'M35 0 H65 V35 H100 V65 H65 V100 H35 V65 H0 V35 H35 Z' },\n { name: 'Egg', subType: 'path', path: 'M50 5 C75 5 95 30 95 55 C95 80 75 95 50 95 C25 95 5 80 5 55 C5 30 25 5 50 5 Z' },\n { name: 'Cloud', subType: 'path', path: 'M25 80 C10 80 0 70 5 60 C0 50 10 40 22 42 C20 30 30 20 45 20 C55 15 70 20 75 32 C85 28 100 38 95 52 C105 62 95 78 80 78 Z' },\n // Row 4 — arrows\n { name: 'Right Arrow', subType: 'path', path: 'M0 30 H60 V10 L100 50 L60 90 V70 H0 Z' },\n { name: 'Left Arrow', subType: 'path', path: 'M100 30 H40 V10 L0 50 L40 90 V70 H100 Z' },\n { name: 'Down Arrow', subType: 'path', path: 'M30 0 V60 H10 L50 100 L90 60 H70 V0 Z' },\n { name: 'Up Arrow', subType: 'path', path: 'M30 100 V40 H10 L50 0 L90 40 H70 V100 Z' },\n // Row 5 — decorative\n { name: 'Flower 5', subType: 'path', path: 'M50 10 C60 0 75 5 70 20 C85 15 90 30 80 40 C95 45 90 65 75 60 C80 75 65 85 55 70 C50 85 35 80 35 65 C20 75 10 65 20 55 C5 50 10 35 25 35 C15 20 25 10 40 15 C35 0 45 0 50 10 Z' },\n { name: 'Asterisk', subType: 'path', path: 'M50 0 L58 35 L90 15 L65 42 L100 50 L65 58 L90 85 L58 65 L50 100 L42 65 L10 85 L35 58 L0 50 L35 42 L10 15 L42 35 Z' },\n { name: 'Bowtie', subType: 'path', path: 'M0 0 L45 40 L45 0 L55 0 L55 40 L100 0 L100 100 L55 60 L55 100 L45 100 L45 60 L0 100 Z' },\n { name: 'Half Circle', subType: 'path', path: 'M50 0 A50 50 0 0 1 50 100 Z' },\n // Row 6\n { name: 'Rounded Square', subType: 'path', path: 'M20 5 H80 Q95 5 95 20 V80 Q95 95 80 95 H20 Q5 95 5 80 V20 Q5 5 20 5 Z' },\n { name: 'Gem', subType: 'path', path: 'M50 0 L95 35 L50 100 L5 35 Z' },\n { name: 'Arch', subType: 'path', path: 'M5 95 V40 Q5 5 50 5 Q95 5 95 40 V95 H70 V45 Q70 25 50 25 Q30 25 30 45 V95 Z' },\n { name: 'Teardrop', subType: 'path', path: 'M50 5 C70 5 90 25 90 50 C90 75 70 95 50 95 C30 95 10 75 10 50 C10 25 30 5 50 5 Z' },\n // Row 7\n { name: 'Drop', subType: 'path', path: 'M50 0 C55 20 90 40 90 65 C90 85 72 100 50 100 C28 100 10 85 10 65 C10 40 45 20 50 0 Z' },\n { name: 'Starburst', subType: 'path', path: 'M50 0 L56 30 L80 8 L62 34 L100 25 L70 44 L100 50 L70 56 L100 75 L62 66 L80 92 L56 70 L50 100 L44 70 L20 92 L38 66 L0 75 L30 56 L0 50 L30 44 L0 25 L38 34 L20 8 L44 30 Z' },\n { name: 'Wave', subType: 'path', path: 'M0 20 C25 0 25 40 50 20 C75 0 75 40 100 20 V80 C75 100 75 60 50 80 C25 100 25 60 0 80 Z' },\n { name: 'Flower 6', subType: 'path', path: 'M50 5 C55 20 65 15 68 25 C78 18 82 28 75 35 C85 35 88 48 78 50 C88 52 85 65 75 65 C82 72 78 82 68 75 C65 85 55 80 50 95 C45 80 35 85 32 75 C22 82 18 72 25 65 C15 65 12 52 22 50 C12 48 15 35 25 35 C18 28 22 18 32 25 C35 15 45 20 50 5 Z' },\n // Row 8\n { name: 'Hourglass', subType: 'path', path: 'M10 0 H90 L55 45 L55 55 L90 100 H10 L45 55 L45 45 Z' },\n { name: 'Heart', subType: 'path', path: 'M50 90 C25 70 0 55 0 30 C0 10 15 0 30 0 C40 0 48 5 50 15 C52 5 60 0 70 0 C85 0 100 10 100 30 C100 55 75 70 50 90 Z' },\n { name: 'House', subType: 'path', path: 'M50 5 L95 45 V95 H5 V45 Z' },\n { name: 'Arrow Up', subType: 'path', path: 'M50 0 L90 35 H65 V100 H35 V35 H10 Z' },\n // Row 9\n { name: 'Hourglass V', subType: 'path', path: 'M0 0 L100 0 L55 45 L55 55 L100 100 L0 100 L45 55 L45 45 Z' },\n { name: 'Barn', subType: 'path', path: 'M50 0 L95 30 V95 H5 V30 Z' },\n { name: 'Mushroom', subType: 'path', path: 'M5 55 C5 20 30 0 50 0 C70 0 95 20 95 55 H65 V95 H35 V55 Z' },\n { name: 'Lips', subType: 'path', path: 'M10 50 C10 25 30 15 50 25 C70 15 90 25 90 50 C90 75 70 85 50 75 C30 85 10 75 10 50 Z' },\n // Row 10\n { name: 'Leaf', subType: 'path', path: 'M10 90 Q10 10 90 10 Q90 90 10 90 Z' },\n { name: 'Lightning', subType: 'path', path: 'M60 0 L25 45 H50 L15 100 L80 50 H55 L85 0 Z' },\n { name: 'Bolt', subType: 'path', path: 'M55 0 L20 42 H45 L10 100 L80 55 H52 L90 0 Z' },\n { name: 'D Shape', subType: 'path', path: 'M10 5 H60 C90 5 95 30 95 50 C95 70 90 95 60 95 H10 Z' },\n // Row 11\n { name: 'Peanut', subType: 'path', path: 'M35 10 C55 0 80 10 80 30 C95 40 95 60 80 70 C80 90 55 100 35 90 C20 100 5 90 5 70 C-5 60 -5 40 5 30 C5 10 20 0 35 10 Z' },\n { name: 'L Shape', subType: 'path', path: 'M10 0 H50 V60 H90 V100 H10 Z' },\n { name: 'Sun', subType: 'path', path: 'M50 0 L54 35 L75 8 L58 37 L95 20 L63 42 L100 40 L65 48 L98 62 L62 54 L85 80 L56 58 L68 95 L52 62 L50 100 L48 62 L32 95 L44 58 L15 80 L38 54 L2 62 L35 48 L0 40 L37 42 L5 20 L42 37 L25 8 L46 35 Z' },\n { name: 'Concave Rect', subType: 'path', path: 'M0 0 C35 15 65 15 100 0 V100 C65 85 35 85 0 100 Z' },\n // Row 12\n { name: 'Hexagon 2', subType: 'path', path: 'M25 5 H75 L95 50 L75 95 H25 L5 50 Z' },\n { name: 'U Shape', subType: 'path', path: 'M5 0 H30 V65 C30 80 42 90 50 90 C58 90 70 80 70 65 V0 H95 V65 C95 90 75 100 50 100 C25 100 5 90 5 65 Z' },\n { name: 'Corner', subType: 'path', path: 'M0 0 H55 V55 H100 V100 H0 Z' },\n { name: 'T Shape', subType: 'path', path: 'M0 0 H100 V40 H65 V100 H35 V40 H0 Z' },\n // Row 13\n { name: 'Shield', subType: 'path', path: 'M50 95 C20 80 5 60 5 30 V10 H95 V30 C95 60 80 80 50 95 Z' },\n { name: 'Shield 2', subType: 'path', path: 'M50 95 C15 75 5 55 5 25 V5 H95 V25 C95 55 85 75 50 95 Z' },\n { name: 'Parallelogram 2', subType: 'path', path: 'M20 0 H100 L80 100 H0 Z' },\n { name: 'Clover', subType: 'path', path: 'M50 40 C40 30 25 20 25 35 C15 25 0 30 10 45 C0 50 5 65 20 60 C15 75 25 85 40 75 L50 95 L60 75 C75 85 85 75 80 60 C95 65 100 50 90 45 C100 30 85 25 75 35 C75 20 60 30 50 40 Z' },\n // Row 14\n { name: '4-Point Star', subType: 'path', path: 'M50 0 L58 38 L100 50 L58 62 L50 100 L42 62 L0 50 L42 38 Z' },\n { name: 'L Step', subType: 'path', path: 'M0 0 H50 V50 H100 V100 H0 Z' },\n { name: 'Steps', subType: 'path', path: 'M0 0 H35 V35 H65 V65 H100 V100 H0 Z' },\n { name: 'Steps 2', subType: 'path', path: 'M0 0 H30 V30 H50 V0 H80 V50 H100 V100 H0 Z' },\n // Row 15 — organic blobs\n { name: 'Blob 1', subType: 'path', path: 'M60 10 C85 10 95 30 90 50 C95 75 80 95 55 90 C30 95 10 80 10 55 C5 30 30 10 60 10 Z' },\n { name: 'Blob 2', subType: 'path', path: 'M55 5 C80 5 100 25 95 50 C100 75 80 95 55 95 C30 100 5 80 10 55 C0 30 25 5 55 5 Z' },\n { name: 'Blob 3', subType: 'path', path: 'M50 5 C75 0 100 20 95 45 C100 70 80 100 50 95 C20 100 0 75 5 50 C0 25 25 5 50 5 Z' },\n { name: 'Blob 4', subType: 'path', path: 'M60 5 C90 10 100 35 85 60 C95 85 70 100 45 95 C20 95 0 70 10 45 C5 20 30 0 60 5 Z' },\n];\n\n// ── SVG thumbnail for shapes ────────────────────────────────────────\nconst FILL_COLOR = '#BFBFBF';\n\n// Built-in shape → SVG path mapping for thumbnails\nconst builtInPaths = {\n rect: 'M5 5 H95 V95 H5 Z',\n circle: 'M50 5 A45 45 0 1 1 50 95 A45 45 0 1 1 50 5 Z',\n star: 'M50 5 L62 38 L97 38 L68 60 L79 93 L50 73 L21 93 L32 60 L3 38 L38 38 Z',\n triangle: 'M50 5 L95 90 H5 Z',\n diamond: 'M50 5 L95 50 L50 95 L5 50 Z',\n hexagon: 'M25 10 H75 L95 50 L75 90 H25 L5 50 Z',\n polygon: 'M50 5 L95 38 L80 90 H20 L5 38 Z',\n};\n\nconst ShapeThumbnail = ({ shape }) => {\n const svgPath = shape.path || builtInPaths[shape.subType] || builtInPaths.rect;\n return (\n <svg viewBox=\"0 0 100 100\" width=\"100%\" height=\"100%\" style={{ display: 'block' }}>\n <path d={svgPath} fill={FILL_COLOR} />\n </svg>\n );\n};\n\n// ── Line thumbnail ──────────────────────────────────────────────────\nconst LineThumbnail = ({ line }) => {\n const s = line.svgLine || {};\n return (\n <svg viewBox=\"0 0 80 20\" width=\"100%\" height=\"20\" style={{ display: 'block' }}>\n {s.startDot && <circle cx=\"6\" cy=\"10\" r=\"4\" fill={FILL_COLOR} />}\n {s.startSquare && <rect x=\"2\" y=\"6\" width=\"8\" height=\"8\" fill={FILL_COLOR} />}\n <line\n x1={s.startDot || s.startSquare ? 12 : 2}\n y1=\"10\"\n x2={s.marker ? 65 : 78}\n y2=\"10\"\n stroke={FILL_COLOR}\n strokeWidth=\"2.5\"\n strokeDasharray={s.strokeDasharray === 'none' ? undefined : s.strokeDasharray}\n strokeLinecap=\"round\"\n />\n {s.marker && (\n <polygon points=\"62,4 78,10 62,16\" fill={FILL_COLOR} />\n )}\n </svg>\n );\n};\n\n// ── Panel ───────────────────────────────────────────────────────────\nconst ElementsPanelContent = observer(({ store }) => {\n const addShape = (shape) => {\n const page = store.activePage;\n if (!page) return;\n\n const size = Math.min(store.width, store.height) * 0.2;\n const isRect = shape.subType === 'rect';\n const w = isRect ? size * 1.5 : size;\n const h = isRect ? size * 0.8 : size;\n\n const props = {\n type: 'figure',\n subType: shape.subType,\n x: store.width / 2 - w / 2,\n y: store.height / 2 - h / 2,\n width: w,\n height: h,\n fill: FILL_COLOR,\n stroke: '',\n strokeWidth: 0,\n };\n if (shape.path) {\n props.pathData = shape.path;\n }\n page.addElement(props);\n store.history.addUndoState();\n };\n\n const addLine = (line) => {\n const page = store.activePage;\n if (!page) return;\n\n const lineWidth = Math.min(store.width, store.height) * 0.4;\n page.addElement({\n type: 'line',\n x: store.width / 2 - lineWidth / 2,\n y: store.height / 2,\n width: lineWidth,\n height: 4,\n color: '#000000',\n endHead: line.endHead || '',\n startHead: line.startHead || '',\n dash: line.dash || [],\n });\n store.history.addUndoState();\n };\n\n const shapeBoxSx = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n aspectRatio: '1',\n borderRadius: '8px',\n cursor: 'pointer',\n padding: '10px',\n '&:hover': {\n backgroundColor: 'rgba(0,0,0,0.06)',\n },\n transition: 'background 0.15s ease',\n };\n\n const lineBoxSx = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '8px',\n cursor: 'pointer',\n padding: '12px 8px',\n '&:hover': {\n backgroundColor: 'rgba(0,0,0,0.06)',\n },\n transition: 'background 0.15s ease',\n };\n\n return (\n <Box sx={{ p: 1.5, overflowY: 'auto' }}>\n {/* Lines */}\n <Typography variant=\"subtitle2\" sx={{ mb: 1, color: '#555', fontSize: '13px' }}>\n {t('sidePanel.lines', 'Lines')}\n </Typography>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: 'repeat(3, 1fr)',\n gap: '4px',\n mb: 2.5,\n }}\n >\n {LINES.map((line, idx) => (\n <Box key={idx} onClick={() => addLine(line)} sx={lineBoxSx}>\n <LineThumbnail line={line} />\n </Box>\n ))}\n </Box>\n\n {/* Shapes */}\n <Typography variant=\"subtitle2\" sx={{ mb: 1, color: '#555', fontSize: '13px' }}>\n {t('sidePanel.shapes', 'Shapes')}\n </Typography>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: 'repeat(4, 1fr)',\n gap: '4px',\n }}\n >\n {SHAPES.map((shape, idx) => (\n <Box key={idx} onClick={() => addShape(shape)} sx={shapeBoxSx}>\n <ShapeThumbnail shape={shape} />\n </Box>\n ))}\n </Box>\n </Box>\n );\n});\n\nexport const ElementsSection = {\n name: 'elements',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.elements', 'Elements')} {...props}>\n <CategoryIcon />\n </SectionTab>\n ),\n Panel: ElementsPanelContent,\n};\n","export function getImageSize(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n resolve({ width: img.naturalWidth, height: img.naturalHeight });\n };\n img.onerror = (err) => {\n reject(err || new Error('Failed to load image'));\n };\n img.crossOrigin = 'anonymous';\n img.src = url;\n });\n}\n\nexport function loadImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img);\n img.onerror = (err) => reject(err || new Error('Failed to load image'));\n img.crossOrigin = 'anonymous';\n img.src = url;\n });\n}\n\nexport function cropImage({ src, x, y, width, height, outputWidth, outputHeight }) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = outputWidth || width;\n canvas.height = outputHeight || height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(\n img,\n x,\n y,\n width,\n height,\n 0,\n 0,\n canvas.width,\n canvas.height\n );\n resolve(canvas.toDataURL('image/png'));\n };\n img.onerror = (err) => reject(err || new Error('Failed to crop image'));\n img.crossOrigin = 'anonymous';\n img.src = src;\n });\n}\n","import React, { useState, useCallback, useRef } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, Button, IconButton } from '@mui/material';\nimport CloudUploadIcon from '@mui/icons-material/CloudUpload';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { SectionTab } from './tab-button';\nimport { getImageSize } from '../utils/image';\nimport { t } from '../config';\n\nconst UploadPanelContent = observer(({ store }) => {\n const [images, setImages] = useState([]);\n const [isDragging, setIsDragging] = useState(false);\n const fileInputRef = useRef(null);\n\n const processFiles = useCallback(\n async (files) => {\n const newImages = [];\n for (const file of files) {\n if (!file.type.startsWith('image/')) continue;\n const url = URL.createObjectURL(file);\n try {\n const { width, height } = await getImageSize(url);\n newImages.push({\n id: `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,\n src: url,\n name: file.name,\n width,\n height,\n });\n } catch {\n URL.revokeObjectURL(url);\n }\n }\n setImages((prev) => [...prev, ...newImages]);\n },\n []\n );\n\n const handleDrop = useCallback(\n (e) => {\n e.preventDefault();\n setIsDragging(false);\n if (e.dataTransfer.files?.length) {\n processFiles(Array.from(e.dataTransfer.files));\n }\n },\n [processFiles]\n );\n\n const handleDragOver = useCallback((e) => {\n e.preventDefault();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback((e) => {\n e.preventDefault();\n setIsDragging(false);\n }, []);\n\n const handleFileInput = useCallback(\n (e) => {\n if (e.target.files?.length) {\n processFiles(Array.from(e.target.files));\n }\n e.target.value = '';\n },\n [processFiles]\n );\n\n const addImageToCanvas = useCallback(\n (img) => {\n const page = store.activePage;\n if (!page) return;\n\n const scale = Math.min(\n store.width / img.width,\n store.height / img.height,\n 1\n );\n const w = img.width * scale;\n const h = img.height * scale;\n\n page.addElement({\n type: 'image',\n src: img.src,\n x: store.width / 2 - w / 2,\n y: store.height / 2 - h / 2,\n width: w,\n height: h,\n });\n store.history.addUndoState();\n },\n [store]\n );\n\n const removeImage = useCallback((id) => {\n setImages((prev) => {\n const img = prev.find((i) => i.id === id);\n if (img) URL.revokeObjectURL(img.src);\n return prev.filter((i) => i.id !== id);\n });\n }, []);\n\n return (\n <Box sx={{ p: 1.5, display: 'flex', flexDirection: 'column', height: '100%' }}>\n {/* Drop zone */}\n <Box\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onClick={() => fileInputRef.current?.click()}\n sx={{\n border: '2px dashed',\n borderColor: isDragging ? '#0d83cd' : '#ccc',\n borderRadius: '8px',\n p: 3,\n textAlign: 'center',\n cursor: 'pointer',\n backgroundColor: isDragging ? 'rgba(13,131,205,0.06)' : 'transparent',\n transition: 'all 0.2s ease',\n mb: 2,\n '&:hover': {\n borderColor: '#0d83cd',\n backgroundColor: 'rgba(13,131,205,0.04)',\n },\n }}\n >\n <CloudUploadIcon sx={{ fontSize: 36, color: '#999', mb: 1 }} />\n <Typography variant=\"body2\" sx={{ color: '#666', fontSize: '13px' }}>\n {t('sidePanel.uploadTip', 'Drop images here or click to upload')}\n </Typography>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n multiple\n onChange={handleFileInput}\n style={{ display: 'none' }}\n />\n </Box>\n\n {/* Uploaded images grid */}\n {images.length > 0 && (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gap: '8px',\n overflowY: 'auto',\n flex: 1,\n }}\n >\n {images.map((img) => (\n <Box\n key={img.id}\n sx={{\n position: 'relative',\n paddingTop: '100%',\n borderRadius: '6px',\n overflow: 'hidden',\n cursor: 'pointer',\n border: '1px solid #e0e0e0',\n '&:hover .upload-delete-btn': {\n opacity: 1,\n },\n '&:hover': {\n borderColor: '#0d83cd',\n },\n }}\n onClick={() => addImageToCanvas(img)}\n >\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#f5f5f5',\n }}\n >\n <img\n src={img.src}\n alt={img.name}\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n }}\n />\n </Box>\n <IconButton\n className=\"upload-delete-btn\"\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n removeImage(img.id);\n }}\n sx={{\n position: 'absolute',\n top: 2,\n right: 2,\n opacity: 0,\n backgroundColor: 'rgba(255,255,255,0.85)',\n transition: 'opacity 0.15s ease',\n '&:hover': {\n backgroundColor: 'rgba(255,255,255,1)',\n },\n }}\n >\n <DeleteIcon sx={{ fontSize: 16 }} />\n </IconButton>\n </Box>\n ))}\n </Box>\n )}\n </Box>\n );\n});\n\nexport const UploadSection = {\n name: 'upload',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.upload', 'Upload')} {...props}>\n <CloudUploadIcon />\n </SectionTab>\n ),\n Panel: UploadPanelContent,\n};\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport {\n Box,\n Typography,\n IconButton,\n Switch,\n Slider,\n TextField,\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { t } from '../config';\n\nconst FILTER_PRESETS = [\n { name: 'Grayscale', key: 'grayscale', bg: '#e0e0e0', color: '#888' },\n { name: 'Sepia', key: 'sepia', bg: '#f5e6c8', color: '#a67c52' },\n { name: 'Cold', key: 'cold', bg: '#d0e4f7', color: '#6a9fd8' },\n { name: 'Natural', key: 'natural', bg: '#f0f0f0', color: '#777' },\n { name: 'Warm', key: 'warm', bg: '#fbe8d3', color: '#c08050' },\n];\n\nconst EffectRow = ({ label, enabled, onToggle, value, onChange, min, max, step, children }) => (\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{label}</Typography>\n <Switch size=\"small\" checked={enabled} onChange={(e) => onToggle(e.target.checked)} />\n </Box>\n {enabled && (\n <>\n {children}\n {value !== undefined && (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <Slider\n size=\"small\"\n value={value}\n onChange={(_, v) => onChange(v)}\n min={min || 0}\n max={max || 100}\n step={step || 1}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={typeof value === 'number' ? Math.round(value * 10) / 10 : value}\n onChange={(e) => {\n const v = parseFloat(e.target.value);\n if (!isNaN(v)) onChange(v);\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n inputProps={{ min, max, step }}\n />\n </Box>\n )}\n </>\n )}\n </Box>\n);\n\nconst ImageEffectsPanel = observer(({ store }) => {\n const panel = store._toolbarPanel;\n if (!panel || panel.type !== 'effects') return null;\n\n const element = store.getElementById(panel.elementId);\n if (!element) return null;\n\n const handleClose = () => store.closeToolbarPanel();\n\n const commit = () => store.history.addUndoState();\n\n const resetAll = { grayscaleEnabled: false, sepiaEnabled: false, warmEnabled: false, coldEnabled: false, brightnessEnabled: false, brightness: 0, blurEnabled: false };\n\n const applyPreset = (key) => {\n const presets = {\n grayscale: { ...resetAll, grayscaleEnabled: true },\n sepia: { ...resetAll, sepiaEnabled: true },\n cold: { ...resetAll, coldEnabled: true },\n natural: { ...resetAll },\n warm: { ...resetAll, warmEnabled: true },\n };\n element.set(presets[key] || resetAll);\n commit();\n };\n\n const getActivePreset = () => {\n if (element.grayscaleEnabled) return 'grayscale';\n if (element.sepiaEnabled) return 'sepia';\n if (element.warmEnabled) return 'warm';\n if (element.coldEnabled) return 'cold';\n return null;\n };\n\n return (\n <Box\n sx={{\n width: 280,\n height: '100%',\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: '#fff',\n borderRight: '1px solid #e0e0e0',\n flexShrink: 0,\n p: 2,\n }}\n >\n {/* Header */}\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600 }}>{t('toolbar.effects', 'Effects')}</Typography>\n <IconButton size=\"small\" onClick={handleClose}>\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n\n {/* Filter presets */}\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 1, mb: 3 }}>\n {FILTER_PRESETS.map((preset) => {\n const isActive = getActivePreset() === preset.key;\n return (\n <Box\n key={preset.key}\n onClick={() => applyPreset(preset.key)}\n sx={{\n cursor: 'pointer',\n textAlign: 'center',\n borderRadius: '8px',\n border: isActive ? '2px solid #0d83cd' : '2px solid transparent',\n p: 0.5,\n '&:hover': { backgroundColor: '#f5f5f5' },\n }}\n >\n <Box\n sx={{\n width: '100%',\n aspectRatio: '1',\n borderRadius: '6px',\n backgroundColor: preset.bg,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n mb: 0.5,\n overflow: 'hidden',\n }}\n >\n {element.src ? (\n <img\n src={element.src}\n alt={preset.name}\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n filter:\n preset.key === 'grayscale' ? 'grayscale(1)' :\n preset.key === 'sepia' ? 'sepia(1)' :\n preset.key === 'cold' ? 'saturate(0.5) hue-rotate(180deg)' :\n preset.key === 'warm' ? 'saturate(1.3) sepia(0.2)' :\n 'none',\n }}\n />\n ) : (\n <Typography variant=\"caption\" sx={{ color: preset.color, fontSize: 10 }}>\n {preset.name[0]}\n </Typography>\n )}\n </Box>\n <Typography variant=\"caption\" sx={{ fontSize: 10 }}>{preset.name}</Typography>\n </Box>\n );\n })}\n </Box>\n\n {/* Blur */}\n <EffectRow\n label={t('toolbar.blur', 'Blur')}\n enabled={element.blurEnabled}\n onToggle={(v) => { element.set({ blurEnabled: v }); commit(); }}\n value={element.blurRadius}\n onChange={(v) => element.set({ blurRadius: v })}\n min={0}\n max={40}\n step={1}\n />\n\n {/* Brightness */}\n <EffectRow\n label={t('toolbar.brightness', 'Brightness')}\n enabled={element.brightnessEnabled}\n onToggle={(v) => { element.set({ brightnessEnabled: v }); commit(); }}\n value={Math.round(element.brightness * 100)}\n onChange={(v) => element.set({ brightness: v / 100 })}\n min={-100}\n max={100}\n step={1}\n />\n\n {/* Border */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.border', 'Border')}</Typography>\n <Switch\n size=\"small\"\n checked={element.borderSize > 0}\n onChange={(e) => {\n element.set({ borderSize: e.target.checked ? 2 : 0 });\n commit();\n }}\n />\n </Box>\n {element.borderSize > 0 && (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <input\n type=\"color\"\n value={element.borderColor || '#000000'}\n onChange={(e) => { element.set({ borderColor: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.borderSize}\n onChange={(e) => {\n const v = parseInt(e.target.value);\n if (!isNaN(v) && v >= 0) { element.set({ borderSize: v }); commit(); }\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n inputProps={{ min: 0 }}\n />\n </Box>\n )}\n </Box>\n\n {/* Corner Radius */}\n <EffectRow\n label={t('toolbar.cornerRadius', 'Corner Radius')}\n enabled={element.cornerRadius > 0}\n onToggle={(v) => { element.set({ cornerRadius: v ? 10 : 0 }); commit(); }}\n value={element.cornerRadius}\n onChange={(v) => element.set({ cornerRadius: v })}\n min={0}\n max={Math.min(element.width, element.height) / 2}\n step={1}\n />\n\n {/* Shadow */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.shadow', 'Shadow')}</Typography>\n <Switch\n size=\"small\"\n checked={element.shadowEnabled}\n onChange={(e) => { element.set({ shadowEnabled: e.target.checked }); commit(); }}\n />\n </Box>\n {element.shadowEnabled && (\n <>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.blur', 'Blur')}</Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n <Slider\n size=\"small\"\n value={element.shadowBlur}\n onChange={(_, v) => element.set({ shadowBlur: v })}\n min={0}\n max={50}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.shadowBlur}\n onChange={(e) => {\n const v = parseInt(e.target.value);\n if (!isNaN(v)) element.set({ shadowBlur: v });\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n />\n </Box>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.offsetX', 'Offset X')}</Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n <Slider\n size=\"small\"\n value={element.shadowOffsetX}\n onChange={(_, v) => element.set({ shadowOffsetX: v })}\n min={-50}\n max={50}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.shadowOffsetX}\n onChange={(e) => {\n const v = parseInt(e.target.value);\n if (!isNaN(v)) element.set({ shadowOffsetX: v });\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n />\n </Box>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.offsetY', 'Offset Y')}</Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n <Slider\n size=\"small\"\n value={element.shadowOffsetY}\n onChange={(_, v) => element.set({ shadowOffsetY: v })}\n min={-50}\n max={50}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.shadowOffsetY}\n onChange={(e) => {\n const v = parseInt(e.target.value);\n if (!isNaN(v)) element.set({ shadowOffsetY: v });\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n />\n </Box>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.color', 'Color')}</Typography>\n <input\n type=\"color\"\n value={element.shadowColor || '#000000'}\n onChange={(e) => { element.set({ shadowColor: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n </>\n )}\n </Box>\n </Box>\n );\n});\n\nImageEffectsPanel.displayName = 'ImageEffectsPanel';\nexport { ImageEffectsPanel };\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, IconButton } from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { t } from '../config';\n\nconst MASK_SHAPES = [\n {\n name: 'Circle',\n clipFunc: (ctx, w, h) => {\n ctx.beginPath();\n ctx.ellipse(w / 2, h / 2, w / 2, h / 2, 0, 0, Math.PI * 2);\n ctx.closePath();\n },\n preview: 'M50,5 A45,45 0 1,1 50,95 A45,45 0 1,1 50,5 Z',\n clipId: 'circle',\n },\n {\n name: 'Triangle',\n clipFunc: (ctx, w, h) => {\n ctx.beginPath();\n ctx.moveTo(w / 2, 0);\n ctx.lineTo(w, h);\n ctx.lineTo(0, h);\n ctx.closePath();\n },\n preview: 'M50,5 L95,95 L5,95 Z',\n clipId: 'triangle',\n },\n {\n name: 'Star',\n clipFunc: (ctx, w, h) => {\n const cx = w / 2, cy = h / 2;\n const outerR = Math.min(w, h) / 2;\n const innerR = outerR * 0.4;\n const points = 5;\n ctx.beginPath();\n for (let i = 0; i < points * 2; i++) {\n const r = i % 2 === 0 ? outerR : innerR;\n const angle = (Math.PI * i) / points - Math.PI / 2;\n const x = cx + r * Math.cos(angle);\n const y = cy + r * Math.sin(angle);\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.closePath();\n },\n preview: 'M50,5 L61,38 L97,38 L68,60 L79,95 L50,73 L21,95 L32,60 L3,38 L39,38 Z',\n clipId: 'star',\n },\n {\n name: 'Heart',\n clipFunc: (ctx, w, h) => {\n ctx.beginPath();\n const topY = h * 0.3;\n ctx.moveTo(w / 2, h * 0.9);\n ctx.bezierCurveTo(w * 0.1, h * 0.55, -w * 0.1, topY * 0.5, w * 0.25, topY * 0.3);\n ctx.bezierCurveTo(w * 0.4, 0, w / 2, topY * 0.6, w / 2, topY);\n ctx.bezierCurveTo(w / 2, topY * 0.6, w * 0.6, 0, w * 0.75, topY * 0.3);\n ctx.bezierCurveTo(w * 1.1, topY * 0.5, w * 0.9, h * 0.55, w / 2, h * 0.9);\n ctx.closePath();\n },\n preview: 'M50,88 C15,55 -5,20 25,10 C40,3 50,15 50,25 C50,15 60,3 75,10 C105,20 85,55 50,88 Z',\n clipId: 'heart',\n },\n {\n name: 'Hexagon',\n clipFunc: (ctx, w, h) => {\n const cx = w / 2, cy = h / 2;\n const r = Math.min(w, h) / 2;\n ctx.beginPath();\n for (let i = 0; i < 6; i++) {\n const angle = (Math.PI * 2 * i) / 6 - Math.PI / 2;\n const x = cx + r * Math.cos(angle);\n const y = cy + r * Math.sin(angle);\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.closePath();\n },\n preview: 'M50,5 L93,27 L93,73 L50,95 L7,73 L7,27 Z',\n clipId: 'hexagon',\n },\n {\n name: 'Diamond',\n clipFunc: (ctx, w, h) => {\n ctx.beginPath();\n ctx.moveTo(w / 2, 0);\n ctx.lineTo(w, h / 2);\n ctx.lineTo(w / 2, h);\n ctx.lineTo(0, h / 2);\n ctx.closePath();\n },\n preview: 'M50,5 L95,50 L50,95 L5,50 Z',\n clipId: 'diamond',\n },\n {\n name: 'Pentagon',\n clipFunc: (ctx, w, h) => {\n const cx = w / 2, cy = h / 2;\n const r = Math.min(w, h) / 2;\n ctx.beginPath();\n for (let i = 0; i < 5; i++) {\n const angle = (Math.PI * 2 * i) / 5 - Math.PI / 2;\n const x = cx + r * Math.cos(angle);\n const y = cy + r * Math.sin(angle);\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.closePath();\n },\n preview: 'M50,5 L95,38 L77,95 L23,95 L5,38 Z',\n clipId: 'pentagon',\n },\n {\n name: 'Rounded Rect',\n clipFunc: (ctx, w, h) => {\n const r = Math.min(w, h) * 0.15;\n ctx.beginPath();\n ctx.moveTo(r, 0);\n ctx.lineTo(w - r, 0);\n ctx.quadraticCurveTo(w, 0, w, r);\n ctx.lineTo(w, h - r);\n ctx.quadraticCurveTo(w, h, w - r, h);\n ctx.lineTo(r, h);\n ctx.quadraticCurveTo(0, h, 0, h - r);\n ctx.lineTo(0, r);\n ctx.quadraticCurveTo(0, 0, r, 0);\n ctx.closePath();\n },\n preview: 'M15,5 L85,5 Q95,5 95,15 L95,85 Q95,95 85,95 L15,95 Q5,95 5,85 L5,15 Q5,5 15,5 Z',\n clipId: 'rounded-rect',\n },\n {\n name: 'Cross',\n clipFunc: (ctx, w, h) => {\n const t = 0.3;\n ctx.beginPath();\n ctx.moveTo(w * t, 0);\n ctx.lineTo(w * (1 - t), 0);\n ctx.lineTo(w * (1 - t), h * t);\n ctx.lineTo(w, h * t);\n ctx.lineTo(w, h * (1 - t));\n ctx.lineTo(w * (1 - t), h * (1 - t));\n ctx.lineTo(w * (1 - t), h);\n ctx.lineTo(w * t, h);\n ctx.lineTo(w * t, h * (1 - t));\n ctx.lineTo(0, h * (1 - t));\n ctx.lineTo(0, h * t);\n ctx.lineTo(w * t, h * t);\n ctx.closePath();\n },\n preview: 'M30,5 L70,5 L70,30 L95,30 L95,70 L70,70 L70,95 L30,95 L30,70 L5,70 L5,30 L30,30 Z',\n clipId: 'cross',\n },\n];\n\n// Export shapes so the canvas renderer can look them up\nexport { MASK_SHAPES };\n\nconst ImageMaskPanel = observer(({ store }) => {\n const panel = store._toolbarPanel;\n if (!panel || panel.type !== 'mask') return null;\n\n const element = store.getElementById(panel.elementId);\n if (!element) return null;\n\n const handleClose = () => store.closeToolbarPanel();\n\n const applyMask = (shape) => {\n element.set({ clipSrc: shape.clipId });\n store.history.addUndoState();\n };\n\n const removeMask = () => {\n element.set({ clipSrc: '' });\n store.history.addUndoState();\n };\n\n const hasMask = !!element.clipSrc;\n\n return (\n <Box\n sx={{\n width: 280,\n height: '100%',\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: '#fff',\n borderRight: '1px solid #e0e0e0',\n flexShrink: 0,\n p: 2,\n }}\n >\n {/* Header */}\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600 }}>{t('toolbar.clip', 'Apply Mask')}</Typography>\n <IconButton size=\"small\" onClick={handleClose}>\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n\n {/* Image preview */}\n {element.src && (\n <Box sx={{ mb: 2, textAlign: 'center' }}>\n <img\n src={element.src}\n alt=\"Selected\"\n style={{\n maxWidth: '100%',\n maxHeight: 120,\n objectFit: 'contain',\n borderRadius: 6,\n border: '1px solid #e0e0e0',\n }}\n />\n </Box>\n )}\n\n {hasMask && (\n <Box\n onClick={removeMask}\n sx={{\n mb: 2,\n py: 1,\n textAlign: 'center',\n cursor: 'pointer',\n borderRadius: '6px',\n border: '1px solid #d32f2f',\n color: '#d32f2f',\n fontWeight: 600,\n fontSize: 13,\n '&:hover': { backgroundColor: '#fbe9e7' },\n }}\n >\n {t('toolbar.removeMask', 'Remove mask')}\n </Box>\n )}\n\n {/* Shape grid */}\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 1 }}>\n {MASK_SHAPES.map((shape) => {\n const isActive = element.clipSrc === shape.clipId;\n return (\n <Box\n key={shape.clipId}\n onClick={() => applyMask(shape)}\n sx={{\n cursor: 'pointer',\n textAlign: 'center',\n borderRadius: '8px',\n border: isActive ? '2px solid #0d83cd' : '2px solid transparent',\n p: 0.5,\n '&:hover': { backgroundColor: '#f5f5f5' },\n }}\n >\n <Box\n sx={{\n width: '100%',\n aspectRatio: '1',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <svg viewBox=\"0 0 100 100\" width=\"100%\" height=\"100%\">\n <path d={shape.preview} fill=\"#e0e0e0\" stroke=\"#999\" strokeWidth=\"1\" />\n </svg>\n </Box>\n <Typography variant=\"caption\" sx={{ fontSize: 10 }}>{shape.name}</Typography>\n </Box>\n );\n })}\n </Box>\n </Box>\n );\n});\n\nImageMaskPanel.displayName = 'ImageMaskPanel';\nexport { ImageMaskPanel };\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport {\n Box,\n Typography,\n IconButton,\n Switch,\n Slider,\n TextField,\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { t } from '../config';\n\nconst SliderRow = ({ label, value, onChange, min = 0, max = 100, step = 1 }) => (\n <Box sx={{ mb: 1 }}>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{label}</Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <Slider\n size=\"small\"\n value={value}\n onChange={(_, v) => onChange(v)}\n min={min}\n max={max}\n step={step}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={typeof value === 'number' ? Math.round(value * 10) / 10 : value}\n onChange={(e) => {\n const v = parseFloat(e.target.value);\n if (!isNaN(v)) onChange(v);\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n inputProps={{ min, max, step }}\n />\n </Box>\n </Box>\n);\n\nconst TextEffectsPanel = observer(({ store }) => {\n const panel = store._toolbarPanel;\n if (!panel || panel.type !== 'effects') return null;\n\n const element = store.getElementById(panel.elementId);\n if (!element || element.type !== 'text') return null;\n\n const handleClose = () => store.closeToolbarPanel();\n const commit = () => store.history.addUndoState();\n\n return (\n <Box\n sx={{\n width: 280,\n height: '100%',\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: '#fff',\n borderRight: '1px solid #e0e0e0',\n flexShrink: 0,\n p: 2,\n }}\n >\n {/* Header */}\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600 }}>\n {t('toolbar.textEffects', 'Text Effects')}\n </Typography>\n <IconButton size=\"small\" onClick={handleClose}>\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n\n {/* Blur */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.blur', 'Blur')}</Typography>\n <Switch\n size=\"small\"\n checked={element.blurEnabled}\n onChange={(e) => { element.set({ blurEnabled: e.target.checked }); commit(); }}\n />\n </Box>\n {element.blurEnabled && (\n <SliderRow\n label={t('toolbar.blur', 'Blur')}\n value={element.blurRadius}\n onChange={(v) => element.set({ blurRadius: v })}\n min={0}\n max={40}\n />\n )}\n </Box>\n\n {/* Text Stroke */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.textStroke', 'Text Stroke')}</Typography>\n <Switch\n size=\"small\"\n checked={element.strokeWidth > 0}\n onChange={(e) => {\n element.set({\n strokeWidth: e.target.checked ? 2 : 0,\n stroke: element.stroke || '#000000',\n });\n commit();\n }}\n />\n </Box>\n {element.strokeWidth > 0 && (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <input\n type=\"color\"\n value={element.stroke || '#000000'}\n onChange={(e) => { element.set({ stroke: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.strokeWidth}\n onChange={(e) => {\n const v = parseFloat(e.target.value);\n if (!isNaN(v) && v >= 0) { element.set({ strokeWidth: v }); commit(); }\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n inputProps={{ min: 0, max: 20, step: 0.5 }}\n />\n </Box>\n )}\n </Box>\n\n {/* Background */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.background', 'Background')}</Typography>\n <Switch\n size=\"small\"\n checked={element.backgroundEnabled}\n onChange={(e) => { element.set({ backgroundEnabled: e.target.checked }); commit(); }}\n />\n </Box>\n {element.backgroundEnabled && (\n <>\n <SliderRow\n label={t('toolbar.cornerRadius', 'Corner radius')}\n value={element.backgroundCornerRadius}\n onChange={(v) => element.set({ backgroundCornerRadius: v })}\n min={0}\n max={50}\n step={0.5}\n />\n <SliderRow\n label={t('toolbar.padding', 'Padding')}\n value={element.backgroundPadding}\n onChange={(v) => element.set({ backgroundPadding: v })}\n min={0}\n max={100}\n />\n <SliderRow\n label={t('toolbar.opacity', 'Opacity')}\n value={Math.round(element.backgroundOpacity * 100)}\n onChange={(v) => element.set({ backgroundOpacity: v / 100 })}\n min={0}\n max={100}\n />\n <Box sx={{ mt: 1 }}>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.color', 'Color')}</Typography>\n <input\n type=\"color\"\n value={element.backgroundColor || '#ffffff'}\n onChange={(e) => { element.set({ backgroundColor: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n </Box>\n </>\n )}\n </Box>\n\n {/* Shadow */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.shadow', 'Shadow')}</Typography>\n <Switch\n size=\"small\"\n checked={element.shadowEnabled}\n onChange={(e) => { element.set({ shadowEnabled: e.target.checked }); commit(); }}\n />\n </Box>\n {element.shadowEnabled && (\n <>\n <SliderRow\n label={t('toolbar.blur', 'Blur')}\n value={element.shadowBlur}\n onChange={(v) => element.set({ shadowBlur: v })}\n min={0}\n max={50}\n />\n <SliderRow\n label={t('toolbar.offsetX', 'Offset X')}\n value={element.shadowOffsetX}\n onChange={(v) => element.set({ shadowOffsetX: v })}\n min={-50}\n max={50}\n />\n <SliderRow\n label={t('toolbar.offsetY', 'Offset Y')}\n value={element.shadowOffsetY}\n onChange={(v) => element.set({ shadowOffsetY: v })}\n min={-50}\n max={50}\n />\n <SliderRow\n label={t('toolbar.opacity', 'Opacity')}\n value={Math.round(element.shadowOpacity * 100)}\n onChange={(v) => element.set({ shadowOpacity: v / 100 })}\n min={0}\n max={100}\n />\n <Box sx={{ mt: 1 }}>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.color', 'Color')}</Typography>\n <input\n type=\"color\"\n value={element.shadowColor || '#000000'}\n onChange={(e) => { element.set({ shadowColor: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n </Box>\n </>\n )}\n </Box>\n </Box>\n );\n});\n\nTextEffectsPanel.displayName = 'TextEffectsPanel';\nexport { TextEffectsPanel };\n","import React, { useState, useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, IconButton } from '@mui/material';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport { TextSection } from './text-panel';\nimport { BackgroundSection } from './background-panel';\nimport { LayersSection } from './layers-panel';\nimport { ElementsSection } from './elements-panel';\nimport { UploadSection } from './upload-panel';\nimport { ImageEffectsPanel } from '../toolbar/image-effects-panel';\nimport { ImageMaskPanel } from '../toolbar/image-mask-panel';\nimport { TextEffectsPanel } from '../toolbar/text-effects-panel';\n\nexport const DEFAULT_SECTIONS = [\n TextSection,\n ElementsSection,\n UploadSection,\n BackgroundSection,\n LayersSection,\n];\n\nconst SidePanel = observer(({ store, sections, defaultSection }) => {\n const sectionsList = sections || DEFAULT_SECTIONS;\n const [activeSection, setActiveSection] = useState(null);\n\n // Sync with store.openedSidePanel\n useEffect(() => {\n if (store.openedSidePanel) {\n const section = sectionsList.find((s) => s.name === store.openedSidePanel);\n if (section) {\n setActiveSection(section.name);\n } else if (store.openedSidePanel === '') {\n setActiveSection(null);\n }\n }\n }, [store.openedSidePanel]);\n\n // Set initial active section\n useEffect(() => {\n if (defaultSection) {\n const section = sectionsList.find((s) => s.name === defaultSection);\n if (section) {\n setActiveSection(section.name);\n }\n } else if (!activeSection && sectionsList.length > 0) {\n setActiveSection(sectionsList[0].name);\n }\n }, []);\n\n const handleTabClick = (sectionName) => {\n if (activeSection === sectionName) {\n // Toggle off\n setActiveSection(null);\n store.openSidePanel('');\n } else {\n setActiveSection(sectionName);\n store.openSidePanel(sectionName);\n }\n };\n\n const activeSectionObj = sectionsList.find((s) => s.name === activeSection);\n\n return (\n <Box\n sx={{\n display: 'flex',\n height: '100%',\n borderRight: '1px solid #e0e0e0',\n position: 'relative',\n }}\n >\n {/* Tab strip */}\n <Box\n sx={{\n width: 72,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n py: 1,\n gap: 0.5,\n borderRight: '1px solid #e0e0e0',\n backgroundColor: '#fafafa',\n overflowY: 'auto',\n flexShrink: 0,\n }}\n >\n {sectionsList.map((section) => {\n const isActive = activeSection === section.name;\n const TabComponent = section.Tab;\n if (section.visibleInList === false) return null;\n return (\n <Box key={section.name} sx={{ width: '100%', px: 0.5 }}>\n <TabComponent\n onClick={() => handleTabClick(section.name)}\n active={isActive}\n />\n </Box>\n );\n })}\n </Box>\n\n {/* Toolbar panel overlay (Effects / Mask) */}\n {store._toolbarPanel ? (\n store._toolbarPanel.type === 'effects' ? (\n (() => {\n const el = store.getElementById(store._toolbarPanel.elementId);\n if (el && el.type === 'text') return <TextEffectsPanel store={store} />;\n return <ImageEffectsPanel store={store} />;\n })()\n ) : store._toolbarPanel.type === 'mask' ? (\n <ImageMaskPanel store={store} />\n ) : null\n ) : (\n /* Normal panel content */\n activeSectionObj && (\n <Box\n sx={{\n width: 325,\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: '#ffffff',\n flexShrink: 0,\n position: 'relative',\n }}\n >\n <activeSectionObj.Panel store={store} />\n </Box>\n )\n )}\n\n {/* Close / collapse button — rounded pill on right edge */}\n {activeSectionObj && (\n <Box\n onClick={() => { setActiveSection(null); store.openSidePanel(''); }}\n sx={{\n position: 'absolute',\n right: -16,\n top: '50%',\n transform: 'translateY(-50%)',\n width: 16,\n height: 52,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n backgroundColor: '#fff',\n border: '1px solid #e0e0e0',\n borderLeft: 'none',\n borderRadius: '0 10px 10px 0',\n boxShadow: '2px 0 6px rgba(0,0,0,0.06)',\n zIndex: 10,\n '&:hover': { backgroundColor: '#f5f5f5' },\n transition: 'background-color 0.15s',\n }}\n >\n <ChevronLeftIcon sx={{ fontSize: 14, color: '#aaa' }} />\n </Box>\n )}\n </Box>\n );\n});\n\nSidePanel.displayName = 'SidePanel';\nexport default SidePanel;\nexport { SidePanel };\n\n// Re-export sections for polotno-compatible import path:\n// import { TextSection } from 'labellife-design-tool/side-panel/side-panel'\nexport { TextSection } from './text-panel';\nexport { BackgroundSection } from './background-panel';\nexport { LayersSection } from './layers-panel';\nexport { ElementsSection } from './elements-panel';\nexport { UploadSection } from './upload-panel';\nexport { SectionTab } from './tab-button';\n","import React from 'react';\nimport { Box, CircularProgress, Typography } from '@mui/material';\n\nexport function ImagesGrid({\n images = [],\n getPreview,\n onSelect,\n rowsNumber = 2,\n isLoading = false,\n loadMore = false,\n itemHeight,\n}) {\n if (isLoading) {\n return (\n <Box sx={{ display: 'flex', justifyContent: 'center', py: 4 }}>\n <CircularProgress size={32} />\n </Box>\n );\n }\n\n if (!images || images.length === 0) {\n return (\n <Box sx={{ py: 2, textAlign: 'center' }}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n No items found\n </Typography>\n </Box>\n );\n }\n\n const columns = rowsNumber;\n const gap = 8;\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: `${gap}px`,\n overflowY: 'auto',\n flex: 1,\n }}\n >\n {images.map((item, index) => {\n const preview = getPreview ? getPreview(item) : item.src || item.url || item;\n return (\n <Box\n key={index}\n onClick={(e) => {\n if (onSelect) {\n const rect = e.currentTarget.getBoundingClientRect();\n onSelect(item, {\n x: rect.left,\n y: rect.top,\n width: rect.width,\n height: rect.height,\n });\n }\n }}\n sx={{\n cursor: 'pointer',\n borderRadius: '4px',\n overflow: 'hidden',\n border: '1px solid #e0e0e0',\n aspectRatio: '1',\n height: itemHeight || 'auto',\n '&:hover': {\n borderColor: '#0d83cd',\n boxShadow: '0 0 0 1px #0d83cd',\n },\n transition: 'all 0.15s ease',\n }}\n >\n <img\n src={preview}\n alt=\"\"\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n display: 'block',\n }}\n loading=\"lazy\"\n />\n </Box>\n );\n })}\n </Box>\n );\n}\n\nexport default ImagesGrid;\n","import React, { useState, useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, Select, MenuItem, FormControl, InputLabel, TextField, FormControlLabel, Checkbox, Divider, Chip, Alert, Button } from '@mui/material';\nimport InputIcon from '@mui/icons-material/Input';\nimport TextFieldsIcon from '@mui/icons-material/TextFields';\nimport CalendarTodayIcon from '@mui/icons-material/CalendarToday';\nimport NumbersIcon from '@mui/icons-material/Numbers';\nimport ImageIcon from '@mui/icons-material/Image';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\n// ── Image input placeholder ──────────────────────────────────────────\nconst IMAGE_PLACEHOLDER_SRC = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"400\" height=\"400\" viewBox=\"0 0 400 400\">\n <rect width=\"400\" height=\"400\" fill=\"#f0f2f5\" rx=\"12\"/>\n <rect x=\"110\" y=\"90\" width=\"180\" height=\"145\" rx=\"10\" fill=\"#dde1e7\"/>\n <circle cx=\"158\" cy=\"135\" r=\"22\" fill=\"#f0f2f5\"/>\n <polygon points=\"110,235 168,163 210,205 250,163 290,235\" fill=\"#c8cdd6\"/>\n <rect x=\"140\" y=\"268\" width=\"120\" height=\"14\" rx=\"7\" fill=\"#c8cdd6\"/>\n <rect x=\"160\" y=\"292\" width=\"80\" height=\"10\" rx=\"5\" fill=\"#dde1e7\"/>\n </svg>`\n)}`;\n\n// ── Date formatting helpers ──────────────────────────────────────────\nconst MONTH_NAMES = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n];\n\nconst DATE_FORMATS = [\n { key: 'MM-DD-YYYY', label: 'MM-DD-YYYY' },\n { key: 'MMMM-DD-YYYY', label: 'Month Name-DD-YYYY' },\n { key: 'MMMM-DD', label: 'Month Name-DD' },\n { key: 'YYYY', label: 'YYYY' },\n { key: 'MM-DD', label: 'MM-DD' },\n];\n\nfunction formatDate(date, format) {\n const mm = String(date.getMonth() + 1).padStart(2, '0');\n const dd = String(date.getDate()).padStart(2, '0');\n const yyyy = String(date.getFullYear());\n const monthName = MONTH_NAMES[date.getMonth()];\n\n switch (format) {\n case 'MM-DD-YYYY':\n return `${mm}-${dd}-${yyyy}`;\n case 'MMMM-DD-YYYY':\n return `${monthName}-${dd}-${yyyy}`;\n case 'MMMM-DD':\n return `${monthName}-${dd}`;\n case 'YYYY':\n return yyyy;\n case 'MM-DD':\n return `${mm}-${dd}`;\n default:\n return `${mm}-${dd}-${yyyy}`;\n }\n}\n\n// ── Card component ───────────────────────────────────────────────────\nconst InputFieldCard = ({ icon, label, description, onClick }) => (\n <Box\n onClick={onClick}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1.5,\n p: 1.5,\n borderRadius: '8px',\n border: '1px solid #e0e0e0',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: 'rgba(13,131,205,0.06)',\n borderColor: '#0d83cd',\n },\n transition: 'all 0.15s ease',\n }}\n >\n <Box\n sx={{\n width: 40,\n height: 40,\n borderRadius: '8px',\n backgroundColor: 'rgba(13,131,205,0.08)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: '#0d83cd',\n }}\n >\n {icon}\n </Box>\n <Box sx={{ minWidth: 0 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 600, fontSize: 13, lineHeight: 1.3 }}>\n {label}\n </Typography>\n {description && (\n <Typography variant=\"caption\" sx={{ color: '#888', fontSize: 11, lineHeight: 1.2 }}>\n {description}\n </Typography>\n )}\n </Box>\n </Box>\n);\n\n// ── Panel content ────────────────────────────────────────────────────\nconst InputFieldsPanelContent = observer(({ store }) => {\n const [dateFormat, setDateFormat] = useState('MM-DD-YYYY');\n const [textPrompt, setTextPrompt] = useState('');\n const [datePrompt, setDatePrompt] = useState('');\n const [integerPrompt, setIntegerPrompt] = useState('');\n const [imagePrompt, setImagePrompt] = useState('');\n const [textRequired, setTextRequired] = useState(false);\n const [dateRequired, setDateRequired] = useState(false);\n const [integerRequired, setIntegerRequired] = useState(false);\n const [imageRequired, setImageRequired] = useState(false);\n\n const addInputElement = (inputType, extra = {}) => {\n const page = store.activePage;\n if (!page) return;\n\n const scaleFactor = Math.min(store.width, store.height) / 500;\n\n if (inputType === 'image') {\n const size = Math.min(store.width, store.height) * 0.3;\n page.addElement({\n type: 'image',\n x: store.width / 2 - size / 2,\n y: store.height / 2 - size / 2,\n width: size,\n height: size,\n src: IMAGE_PLACEHOLDER_SRC,\n custom: {\n inputField: true,\n inputType: 'image',\n placeholder: t('sidePanel.inputFields.imagePlaceholder', 'Upload image'),\n promptText: extra.promptText || t('sidePanel.inputFields.defaultImagePrompt', 'Please upload an image'),\n required: extra.required || false,\n },\n });\n } else {\n let dummyText = '';\n let placeholder = '';\n\n let defaultPrompt = '';\n\n switch (inputType) {\n case 'text':\n dummyText = t('sidePanel.inputFields.sampleText', 'Sample Text');\n placeholder = t('sidePanel.inputFields.textPlaceholder', 'Enter text');\n defaultPrompt = t('sidePanel.inputFields.defaultTextPrompt', 'Please enter your text');\n break;\n case 'date':\n dummyText = formatDate(new Date(), extra.dateFormat || 'MM-DD-YYYY');\n placeholder = t('sidePanel.inputFields.datePlaceholder', 'Select date');\n defaultPrompt = t('sidePanel.inputFields.defaultDatePrompt', 'Please select a date');\n break;\n case 'integer':\n dummyText = '0';\n placeholder = t('sidePanel.inputFields.integerPlaceholder', 'Enter number');\n defaultPrompt = t('sidePanel.inputFields.defaultIntegerPrompt', 'Please enter a number');\n break;\n default:\n dummyText = 'Input';\n placeholder = 'Input';\n defaultPrompt = 'Please provide input';\n }\n\n const fontSize = Math.round(20 * scaleFactor);\n const textWidth = Math.round(250 * scaleFactor);\n\n page.addElement({\n type: 'text',\n x: store.width / 2 - textWidth / 2,\n y: store.height / 2 - fontSize,\n width: textWidth,\n height: fontSize * 2,\n text: dummyText,\n fontSize: fontSize,\n fontFamily: 'Roboto',\n align: 'center',\n fill: '#333333',\n custom: {\n inputField: true,\n inputType: inputType,\n placeholder: placeholder,\n promptText: extra.promptText || defaultPrompt,\n required: extra.required || false,\n ...(inputType === 'date' ? { dateFormat: extra.dateFormat || 'MM-DD-YYYY' } : {}),\n },\n });\n }\n\n store.history.addUndoState();\n };\n\n return (\n <Box sx={{ p: 2, overflowY: 'auto', height: '100%' }}>\n <Typography variant=\"subtitle2\" sx={{ mb: 2, color: '#555', fontSize: 13 }}>\n {t('sidePanel.inputFields.title', 'Input Fields')}\n </Typography>\n <Typography variant=\"caption\" sx={{ display: 'block', mb: 2, color: '#999', fontSize: 11 }}>\n {t('sidePanel.inputFields.description', 'Add placeholder elements that require user input when the template is used.')}\n </Typography>\n\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>\n {/* Text input */}\n <InputFieldCard\n icon={<TextFieldsIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.textInput', 'Text Input')}\n description={t('sidePanel.inputFields.textInputDesc', 'Free text entry')}\n onClick={() => addInputElement('text', { promptText: textPrompt, required: textRequired })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={textPrompt}\n onChange={(e) => setTextPrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={textRequired} onChange={(e) => setTextRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n\n {/* Date input */}\n <InputFieldCard\n icon={<CalendarTodayIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.dateInput', 'Date Input')}\n description={t('sidePanel.inputFields.dateInputDesc', 'Date value with format')}\n onClick={() => addInputElement('date', { dateFormat, promptText: datePrompt, required: dateRequired })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={datePrompt}\n onChange={(e) => setDatePrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={dateRequired} onChange={(e) => setDateRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n\n {/* Date format selector */}\n <FormControl size=\"small\" sx={{ ml: 6.5, mr: 1 }}>\n <InputLabel sx={{ fontSize: 12 }}>\n {t('sidePanel.inputFields.dateFormat', 'Date format')}\n </InputLabel>\n <Select\n value={dateFormat}\n onChange={(e) => setDateFormat(e.target.value)}\n label={t('sidePanel.inputFields.dateFormat', 'Date format')}\n sx={{ fontSize: 12 }}\n >\n {DATE_FORMATS.map((fmt) => (\n <MenuItem key={fmt.key} value={fmt.key} sx={{ fontSize: 12 }}>\n {fmt.label} — {formatDate(new Date(), fmt.key)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n\n {/* Integer input */}\n <InputFieldCard\n icon={<NumbersIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.integerInput', 'Integer Input')}\n description={t('sidePanel.inputFields.integerInputDesc', 'Numeric value')}\n onClick={() => addInputElement('integer', { promptText: integerPrompt, required: integerRequired })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={integerPrompt}\n onChange={(e) => setIntegerPrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={integerRequired} onChange={(e) => setIntegerRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n\n {/* Image input */}\n <InputFieldCard\n icon={<ImageIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.imageInput', 'Image Input')}\n description={t('sidePanel.inputFields.imageInputDesc', 'Image placeholder')}\n onClick={() => addInputElement('image', { promptText: imagePrompt, required: imageRequired })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={imagePrompt}\n onChange={(e) => setImagePrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={imageRequired} onChange={(e) => setImageRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n </Box>\n\n {/* ── Mark existing element as variable ─────────────────────── */}\n <Divider sx={{ my: 2 }} />\n <Typography variant=\"subtitle2\" sx={{ mb: 1, color: '#555', fontSize: 13 }}>\n {t('sidePanel.inputFields.markTitle', 'Mark Selected as Variable')}\n </Typography>\n <Typography variant=\"caption\" sx={{ display: 'block', mb: 2, color: '#999', fontSize: 11 }}>\n {t('sidePanel.inputFields.markDescription', 'Convert any selected text or image element into a variable, preserving its existing style.')}\n </Typography>\n <MarkAsVariableForm store={store} />\n </Box>\n );\n});\n\n// ── Mark-as-variable sub-form ─────────────────────────────────────────\nconst MarkAsVariableForm = observer(({ store }) => {\n const [markLabel, setMarkLabel] = useState('');\n const [markRequired, setMarkRequired] = useState(false);\n const [markInputType, setMarkInputType] = useState('text');\n\n const selectedIds = store.selectedElementsIds || [];\n const selectedElement =\n selectedIds.length === 1 ? store.getElementById(selectedIds[0]) : null;\n\n const isImageElement = selectedElement?.type === 'image';\n const isTextElement = selectedElement?.type === 'text';\n const isSupportedElement = isImageElement || isTextElement;\n const isAlreadyVariable = !!selectedElement?.custom?.inputField;\n\n useEffect(() => {\n if (selectedElement && isSupportedElement) {\n setMarkLabel(selectedElement.custom?.promptText || '');\n setMarkRequired(!!selectedElement.custom?.required);\n setMarkInputType(\n isImageElement ? 'image' : (selectedElement.custom?.inputType || 'text')\n );\n } else {\n setMarkLabel('');\n setMarkRequired(false);\n setMarkInputType('text');\n }\n }, [selectedElement?.id]);\n\n const handleMark = () => {\n if (!selectedElement || !markLabel.trim()) return;\n selectedElement.set({\n custom: {\n ...selectedElement.custom,\n inputField: true,\n promptText: markLabel.trim(),\n inputType: isImageElement ? 'image' : markInputType,\n required: markRequired,\n },\n });\n store.history.addUndoState();\n };\n\n const handleUnmark = () => {\n if (!selectedElement) return;\n const {\n inputField: _f,\n promptText: _p,\n inputType: _it,\n required: _r,\n placeholder: _pl,\n ...rest\n } = selectedElement.custom || {};\n selectedElement.set({ custom: rest });\n store.history.addUndoState();\n };\n\n if (!selectedElement) {\n return (\n <Typography variant=\"caption\" sx={{ color: '#bbb', display: 'block', textAlign: 'center', py: 1 }}>\n {t('sidePanel.inputFields.noSelection', 'Select a text or image element on the canvas')}\n </Typography>\n );\n }\n\n if (!isSupportedElement) {\n return (\n <Alert severity=\"info\" sx={{ fontSize: 11, py: 0.5 }}>\n {t('sidePanel.inputFields.unsupportedType', 'Only text and image elements can be marked as variables.')}\n </Alert>\n );\n }\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>\n {isAlreadyVariable && (\n <Alert severity=\"success\" sx={{ fontSize: 11, py: 0.5 }}>\n {t('sidePanel.inputFields.alreadyVariable', 'Variable')}{': '}\n <strong>{selectedElement.custom.promptText}</strong>\n <Chip label={selectedElement.custom.inputType} size=\"small\" sx={{ ml: 1, fontSize: 10 }} />\n </Alert>\n )}\n\n <Box sx={{ bgcolor: '#f5f5f5', borderRadius: 1, p: 1.5 }}>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {t('sidePanel.inputFields.selectedElement', 'Selected')}:{' '}\n <strong style={{ textTransform: 'capitalize' }}>{selectedElement.type}</strong>\n </Typography>\n {isTextElement && selectedElement.text && (\n <Typography variant=\"body2\" sx={{ mt: 0.5, fontStyle: 'italic', fontSize: 11, color: '#555' }} noWrap>\n &ldquo;{selectedElement.text}&rdquo;\n </Typography>\n )}\n </Box>\n\n <TextField\n size=\"small\"\n label={t('sidePanel.inputFields.variableLabel', 'Variable Label')}\n placeholder={t('sidePanel.inputFields.variableLabelHint', 'e.g. First Name, Photo...')}\n value={markLabel}\n onChange={(e) => setMarkLabel(e.target.value)}\n fullWidth\n sx={{ '& .MuiInputBase-input': { fontSize: 12 } }}\n />\n\n {isTextElement && (\n <FormControl size=\"small\" fullWidth>\n <InputLabel sx={{ fontSize: 12 }}>\n {t('sidePanel.inputFields.inputType', 'Input Type')}\n </InputLabel>\n <Select\n value={markInputType}\n onChange={(e) => setMarkInputType(e.target.value)}\n label={t('sidePanel.inputFields.inputType', 'Input Type')}\n sx={{ fontSize: 12 }}\n >\n <MenuItem value=\"text\" sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.textInput', 'Text Input')}</MenuItem>\n <MenuItem value=\"integer\" sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.integerInput', 'Integer Input')}</MenuItem>\n <MenuItem value=\"date\" sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.dateInput', 'Date Input')}</MenuItem>\n </Select>\n </FormControl>\n )}\n\n <FormControlLabel\n control={\n <Checkbox\n size=\"small\"\n checked={markRequired}\n onChange={(e) => setMarkRequired(e.target.checked)}\n />\n }\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n />\n\n <Button\n variant=\"contained\"\n size=\"small\"\n fullWidth\n disabled={!markLabel.trim()}\n onClick={handleMark}\n sx={{ textTransform: 'none', fontSize: 12 }}\n >\n {isAlreadyVariable\n ? t('sidePanel.inputFields.updateVariable', 'Update Variable')\n : t('sidePanel.inputFields.markAsVariable', 'Mark as Variable')}\n </Button>\n\n {isAlreadyVariable && (\n <Button\n variant=\"outlined\"\n color=\"error\"\n size=\"small\"\n fullWidth\n onClick={handleUnmark}\n sx={{ textTransform: 'none', fontSize: 12 }}\n >\n {t('sidePanel.inputFields.removeVariable', 'Remove Variable')}\n </Button>\n )}\n </Box>\n );\n});\n\nexport const InputFieldsSection = {\n name: 'inputFields',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.inputFields.tab', 'Input Fields')} {...props}>\n <InputIcon />\n </SectionTab>\n ),\n Panel: InputFieldsPanelContent,\n};\n"],"names":["SectionTab","_ref","name","onClick","active","children","rest","_objectWithoutProperties","_excluded","_jsxs","ButtonBase","_objectSpread","sx","display","flexDirection","alignItems","justifyContent","padding","width","minHeight","borderRadius","color","backgroundColor","transition","_jsx","Box","fontSize","mb","Typography","variant","lineHeight","textTransform","fontWeight","GLOBAL_KEY","window","_get","t","key","defaultValue","parts","split","current","_iterator","_createForOfIteratorHelper","_step","s","n","done","part","value","_typeof","err","e","f","undefined","INPUT_FIELDS_CONFIG_KEY","addTextToCanvas","store","opts","page","activePage","scaleFactor","Math","max","round","defaults","type","x","y","height","text","fontFamily","fontStyle","fill","align","addElement","history","addUndoState","TEXT_TEMPLATES","json","preview","_fontsPreloaded","preloadTemplateFonts","Promise","all","map","fetch","then","r","results","fonts","Set","forEach","data","_data$pages","pages","child","add","loadFont","TextTab","observer","_useState","useState","_useState2","_slicedToArray","loadingIdx","setLoadingIdx","useEffect","presets","label","handleTemplateClick","useCallback","_ref2","_asyncToGenerator","_regenerator","m","_callee","tmpl","idx","_data$pages2","res","templateChildren","newIds","_t","w","_context","p","a","v","id","childData","el","skipSelect","push","length","selectElements","_toConsumableArray","console","error","_x","_x2","apply","arguments","preset","Button","fullWidth","py","px","mt","gridTemplateColumns","gap","cursor","overflow","border","opacity","borderColor","boxShadow","src","alt","loading","crossOrigin","draggable","style","_uploadedFonts","_fontIdCounter","registerFont","displayName","blobUrl","document","createElement","textContent","concat","head","appendChild","familyName","styleEl","MyFontsTab","_ref3","_useState3","_useState4","setRenderKey","forceUpdate","k","fileInputRef","useRef","handleUpload","_e$target$files","file","target","files","rawName","replace","URL","createObjectURL","_registerFont","Date","now","handleDelete","font","find","_font$styleEl","parentNode","removeChild","revokeObjectURL","filter","handleFontClick","ref","accept","onChange","_fileInputRef$current","click","startIcon","FileUploadOutlinedIcon","position","textAlign","userSelect","IconButton","size","stopPropagation","bottom","right","DeleteOutlineIcon","TextPanelContent","_ref4","_useState5","_useState6","activeTab","setActiveTab","borderBottom","tab","flex","overflowY","TextSection","Tab","props","TextFieldsIcon","Panel","hsvToRgb","h","i","floor","q","tt","g","b","rgbToHsv","min","d","hexToRgb","hex","c","join","parseInt","substr","rgbToHex","toString","padStart","hueToColor","UNSPLASH_KEY","UNSPLASH_BASE","SWATCH_COLORS","PICKER_PRESETS","CHECKER_SVG","SatBrightSquare","hue","sat","bright","_ref$size","dragging","update","_ref$current","rect","getBoundingClientRect","clientX","left","clientY","top","onMove","preventDefault","onUp","addEventListener","removeEventListener","onMouseDown","background","transform","pointerEvents","HueBar","_ref2$width","_ref$current2","ColorPicker","hsv","setHsv","rgb","setRgb","hexInput","setHexInput","emit","newRgb","handleHex","val","test","handleRgb","isNaN","smallSx","TextField","onFocus","select","inputProps","disabled","flexWrap","ColorPopup","open","onClose","onBackgroundChange","_useState7","_useState8","setTab","_useState9","_useState0","solidColor","setSolidColor","_useState1","_useState10","gradColors","setGradColors","_useState11","_useState12","gradAngle","setGradAngle","_useState13","_useState14","activeStop","setActiveStop","startsWith","JSON","parse","colors","angle","handleSolid","handleGradColor","nc","stringify","handleAngle","tabStyle","pb","ClickAwayListener","onClickAway","Paper","elevation","zIndex","_Fragment","flexShrink","transformOrigin","ml","BackgroundPanelContent","_ref5","_useState15","_useState16","pickerOpen","setPickerOpen","_useState17","_useState18","searchQuery","setSearchQuery","_useState19","_useState20","photos","setPhotos","_useState21","_useState22","setLoading","_useState23","_useState24","lastSolidColor","setLastSolidColor","_useState25","_useState26","hasMore","setHasMore","_useState27","_useState28","pageNum","setPageNum","hasMoreRef","pageNumRef","currentQueryRef","debounceRef","isFirstRender","requestIdRef","observerRef","fetchingRef","bg","fetchPhotos","_ref6","query","pg","totalPages","more","_args","encodeURIComponent","Array","isArray","total_pages","prev","warn","clearTimeout","setTimeout","trim","sentinelRef","node","disconnect","IntersectionObserver","entries","isIntersecting","threshold","observe","setBackground","set","overflowX","minWidth","backgroundImage","backgroundSize","placeholder","InputProps","startAdornment","InputAdornment","SearchIcon","href","rel","textDecoration","photo","_photo$urls","_photo$urls2","thumb","urls","small","_photo$urls3","_photo$urls4","url","regular","aspectRatio","alt_description","objectFit","BackgroundSection","WallpaperIcon","ELEMENT_ICONS","image","ImageIcon","figure","CategoryIcon","line","TimelineIcon","svg","CodeIcon","LayerItem","element","index","isSelected","selectedElementsIds","includes","Icon","isLocked","locked","handleSelect","handleToggleVisibility","visible","handleToggleLock","resizable","contentEditable","styleEditable","handleMoveUp","moveUp","handleMoveDown","moveDown","deleteElements","substring","ListItem","ListItemIcon","ListItemText","primary","primaryTypographyProps","noWrap","ArrowUpwardIcon","ArrowDownwardIcon","VisibilityIcon","VisibilityOffIcon","LockIcon","LockOpenIcon","LayersPanelContent","elements","reverse","List","dense","disablePadding","LayersSection","LayersIcon","LINES","endHead","dash","svgLine","strokeDasharray","marker","startHead","startDot","startSquare","SHAPES","subType","path","FILL_COLOR","builtInPaths","circle","star","triangle","diamond","hexagon","polygon","ShapeThumbnail","shape","svgPath","viewBox","LineThumbnail","cx","cy","x1","y1","x2","y2","stroke","strokeWidth","strokeLinecap","points","ElementsPanelContent","addShape","isRect","pathData","addLine","lineWidth","shapeBoxSx","lineBoxSx","ElementsSection","getImageSize","resolve","reject","img","Image","onload","naturalWidth","naturalHeight","onerror","Error","UploadPanelContent","images","setImages","isDragging","setIsDragging","processFiles","newImages","_yield$getImageSize","_t2","random","slice","handleDrop","_e$dataTransfer$files","dataTransfer","from","handleDragOver","handleDragLeave","handleFileInput","addImageToCanvas","scale","removeImage","onDrop","onDragOver","onDragLeave","CloudUploadIcon","multiple","paddingTop","className","DeleteIcon","UploadSection","FILTER_PRESETS","EffectRow","enabled","onToggle","step","Switch","checked","Slider","_","parseFloat","ImageEffectsPanel","panel","_toolbarPanel","getElementById","elementId","handleClose","closeToolbarPanel","commit","resetAll","grayscaleEnabled","sepiaEnabled","warmEnabled","coldEnabled","brightnessEnabled","brightness","blurEnabled","applyPreset","grayscale","sepia","cold","natural","warm","getActivePreset","borderRight","CloseIcon","isActive","blurRadius","borderSize","cornerRadius","shadowEnabled","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","MASK_SHAPES","clipFunc","ctx","beginPath","ellipse","PI","closePath","clipId","moveTo","lineTo","outerR","innerR","cos","sin","topY","bezierCurveTo","quadraticCurveTo","ImageMaskPanel","applyMask","clipSrc","removeMask","hasMask","maxWidth","maxHeight","SliderRow","_ref$min","_ref$max","_ref$step","TextEffectsPanel","backgroundEnabled","backgroundCornerRadius","backgroundPadding","backgroundOpacity","shadowOpacity","DEFAULT_SECTIONS","SidePanel","sections","defaultSection","sectionsList","activeSection","setActiveSection","openedSidePanel","section","handleTabClick","sectionName","openSidePanel","activeSectionObj","TabComponent","visibleInList","borderLeft","ChevronLeftIcon","ImagesGrid","_ref$images","getPreview","onSelect","_ref$rowsNumber","rowsNumber","_ref$isLoading","isLoading","loadMore","itemHeight","CircularProgress","columns","item","currentTarget","IMAGE_PLACEHOLDER_SRC","MONTH_NAMES","DATE_FORMATS","formatDate","date","format","mm","String","getMonth","dd","getDate","yyyy","getFullYear","monthName","InputFieldCard","icon","description","InputFieldsPanelContent","dateFormat","setDateFormat","textPrompt","setTextPrompt","datePrompt","setDatePrompt","integerPrompt","setIntegerPrompt","imagePrompt","setImagePrompt","textRequired","setTextRequired","dateRequired","setDateRequired","integerRequired","setIntegerRequired","imageRequired","setImageRequired","addInputElement","inputType","extra","custom","inputField","promptText","required","dummyText","defaultPrompt","textWidth","mr","FormControlLabel","control","Checkbox","CalendarTodayIcon","FormControl","InputLabel","Select","fmt","MenuItem","NumbersIcon","Divider","my","MarkAsVariableForm","_selectedElement$cust","markLabel","setMarkLabel","markRequired","setMarkRequired","markInputType","setMarkInputType","selectedIds","selectedElement","isImageElement","isTextElement","isSupportedElement","isAlreadyVariable","_selectedElement$cust2","_selectedElement$cust3","_selectedElement$cust4","handleMark","handleUnmark","Alert","severity","Chip","bgcolor","InputFieldsSection","InputIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/side-panel/tab-button.js","../../../src/utils/l10n.js","../../../src/config.js","../../../src/side-panel/text-panel.js","../../../src/side-panel/background-panel.js","../../../src/side-panel/layers-panel.js","../../../src/side-panel/elements-panel.js","../../../src/utils/image.js","../../../src/side-panel/upload-panel.js","../../../src/toolbar/image-effects-panel.js","../../../src/toolbar/image-mask-panel.js","../../../src/toolbar/text-effects-panel.js","../../../src/side-panel/side-panel.js","../../../src/side-panel/images-grid.js","../../../src/side-panel/input-fields-panel.js"],"sourcesContent":["import React from 'react';\nimport { Box, ButtonBase, Typography } from '@mui/material';\n\nexport function SectionTab({ name, onClick, active, children, ...rest }) {\n return (\n <ButtonBase\n onClick={onClick}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '8px 4px',\n width: '100%',\n minHeight: 64,\n borderRadius: '4px',\n color: active ? '#0d83cd' : '#666',\n backgroundColor: active ? 'rgba(13,131,205,0.08)' : 'transparent',\n '&:hover': {\n backgroundColor: active\n ? 'rgba(13,131,205,0.12)'\n : 'rgba(0,0,0,0.04)',\n },\n transition: 'all 0.15s ease',\n }}\n {...rest}\n >\n <Box\n sx={{\n fontSize: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n mb: 0.5,\n }}\n >\n {children}\n </Box>\n <Typography\n variant=\"caption\"\n sx={{\n fontSize: '10px',\n lineHeight: 1.2,\n textTransform: 'none',\n fontWeight: active ? 600 : 400,\n }}\n >\n {name}\n </Typography>\n </ButtonBase>\n );\n}\n\nexport default SectionTab;\n","// Use a window-level singleton so that all Rollup bundles (config, toolbar,\n// side-panel, canvas) share the same translations object. Without this each\n// bundle gets its own copy of this module with a separate local variable.\nconst GLOBAL_KEY = '__labellife_translations__';\nif (typeof window !== 'undefined' && !window[GLOBAL_KEY]) {\n window[GLOBAL_KEY] = {};\n}\n\nfunction _get() {\n return (typeof window !== 'undefined' && window[GLOBAL_KEY]) || {};\n}\n\nfunction deepMerge(target, source) {\n const result = { ...target };\n for (const key of Object.keys(source)) {\n if (\n source[key] &&\n typeof source[key] === 'object' &&\n !Array.isArray(source[key]) &&\n target[key] &&\n typeof target[key] === 'object' &&\n !Array.isArray(target[key])\n ) {\n result[key] = deepMerge(target[key], source[key]);\n } else {\n result[key] = source[key];\n }\n }\n return result;\n}\n\nexport function setTranslations(newTranslations) {\n if (typeof window !== 'undefined') {\n window[GLOBAL_KEY] = deepMerge(_get(), newTranslations);\n }\n}\n\nexport function getTranslations() {\n return _get();\n}\n\nexport function t(key, defaultValue) {\n // Support dot-notation paths like 'toolbar.duration'\n const parts = key.split('.');\n let current = _get();\n for (const part of parts) {\n if (current == null || typeof current !== 'object') {\n return defaultValue || key;\n }\n current = current[part];\n }\n if (current !== undefined && current !== null && typeof current !== 'object') {\n return current;\n }\n return defaultValue || key;\n}\n","import { setTranslations as _setTranslations, getTranslations, t } from './utils/l10n';\n\nlet _theme = 'light';\nlet _customTheme = {};\n\nexport function setTranslations(translations) {\n _setTranslations(translations);\n}\n\nexport { getTranslations, t };\n\nexport function setTheme(theme) {\n _theme = theme;\n}\n\nexport function getTheme() {\n return _theme;\n}\n\nexport function setCustomTheme(customTheme) {\n _customTheme = { ..._customTheme, ...customTheme };\n}\n\nexport function getCustomTheme() {\n return _customTheme;\n}\n\n// ── Input Fields Dialog Config ───────────────────────────────────────\nconst INPUT_FIELDS_CONFIG_KEY = '__labellife_input_fields_config__';\nif (typeof window !== 'undefined' && !window[INPUT_FIELDS_CONFIG_KEY]) {\n window[INPUT_FIELDS_CONFIG_KEY] = {};\n}\n\nexport function setInputFieldsConfig(config) {\n if (typeof window !== 'undefined') {\n window[INPUT_FIELDS_CONFIG_KEY] = { ...window[INPUT_FIELDS_CONFIG_KEY], ...config };\n }\n}\n\nexport function getInputFieldsConfig() {\n return (typeof window !== 'undefined' && window[INPUT_FIELDS_CONFIG_KEY]) || {};\n}\n","import React, { useState, useRef, useCallback, useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Button, Typography, IconButton } from '@mui/material';\nimport TextFieldsIcon from '@mui/icons-material/TextFields';\nimport FileUploadOutlinedIcon from '@mui/icons-material/FileUploadOutlined';\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\n// ── Shared helper: add a text element to canvas ──\nconst addTextToCanvas = (store, opts) => {\n const page = store.activePage;\n if (!page) return;\n\n const scaleFactor = Math.max(store.width / 500, 0.5);\n const fontSize = Math.round((opts.fontSize || 36) * scaleFactor);\n const width = Math.round((opts.width || 350) * scaleFactor);\n\n const defaults = {\n type: 'text',\n x: store.width / 2 - width / 2,\n y: store.height / 2 - fontSize / 2,\n width,\n text: opts.text || 'Cool text',\n fontSize,\n fontFamily: opts.fontFamily || 'Roboto',\n fontWeight: opts.fontWeight || 'normal',\n fontStyle: opts.fontStyle || 'normal',\n fill: '#000000',\n align: 'center',\n };\n defaults.height = Math.max(fontSize * 1.5, 40);\n\n page.addElement(defaults);\n store.history.addUndoState();\n};\n\n// ── Predefined text templates (json = element data, preview = thumbnail image) ──\nconst TEXT_TEMPLATES = [\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-adventure-fun-cursive.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-adventure-fun-cursive.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-celebration-birthday-cursive-handwritting.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-celebration-birthday-cursive-handwritting.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-corporate-business-clean-simple-modern.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-corporate-business-clean-simple-modern.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-corporate-hiring-simple-clean-modern.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-corporate-hiring-simple-clean-modern.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-fashion-sale-brand-clothes.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-fashion-sale-brand-clothes.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-modern-minamalistic-simple.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-modern-minamalistic-simple.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-party-invitation.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-party-invitation.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-price-package-corporate-list.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-price-package-corporate-list.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-quote-contemporary.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-quote-contemporary.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-quote-quotation-motivation-inspiring.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-quote-quotation-motivation-inspiring.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-romantic-handwrittern-cursive-elegant-celebration.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-romantic-handwrittern-cursive-elegant-celebration.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-sale-fashion-brand.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-sale-fashion-brand.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-sassy-fun-feminine.json', preview: 'https://api.polotno.com/text-templates/2021-06-01-text-plain-sassy-fun-feminine.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-ancient-old-roman-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-ancient-old-roman-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-awesome-fun-intresting-funky-playful.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-awesome-fun-intresting-funky-playful.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-beautiful-decorative-love-elgant-cursive-emotion-famenine.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-beautiful-decorative-love-elgant-cursive-emotion-famenine.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-buy-corporate-urgent-now-marketing.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-buy-corporate-urgent-now-marketing.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-classic-west-cowboy-wildwest-country-classic.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-classic-west-cowboy-wildwest-country-classic.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-future-ftureistic-trendy-funky-fun-cool.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-future-ftureistic-trendy-funky-fun-cool.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-halloween-celeration-horror-spooky.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-halloween-celeration-horror-spooky.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-marry-christmas-celebration.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-marry-christmas-celebration.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-motivating-motivational-inspiring-inspirational-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-motivating-motivational-inspiring-inspirational-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-motivation-inspiration-cursive-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-motivation-inspiration-cursive-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-orange-fruity-fruit-food-fuun-happy.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-orange-fruity-fruit-food-fuun-happy.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-color-romantic-elegant-love.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-color-romantic-elegant-love.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-data-stat-statistics-numeric-figures-reports-charts.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-data-stat-statistics-numeric-figures-reports-charts.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-list-colum-modern-point-fact.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-list-colum-modern-point-fact.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-recipe-food-list.json', preview: 'https://api.polotno.com/text-templates/2021-06-02-text-plain-recipe-food-list.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-ancient-medieval-old-roman-kind-royal.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-ancient-medieval-old-roman-kind-royal.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-anonymous-mystery-suspense.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-anonymous-mystery-suspense.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-autumn-red-orange-season-cursive-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-autumn-red-orange-season-cursive-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-colorful-color-fun-beads-game-themed-videogames.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-colorful-color-fun-beads-game-themed-videogames.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-decorative-hollow-effect.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-decorative-hollow-effect.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-decorative-message-line-lineart.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-decorative-message-line-lineart.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-fairytale-fanatcy-magic-magical.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-fairytale-fanatcy-magic-magical.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-happy-easter-festive-holiday.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-happy-easter-festive-holiday.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-happy-fun-joy-celebration.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-happy-fun-joy-celebration.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-horror-scary-fun-celebration-halloween.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-horror-scary-fun-celebration-halloween.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-inivitation-rsvp-event-celebration-weeding.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-inivitation-rsvp-event-celebration-weeding.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-motivation-hope-never-giveup-win-wivtory-cool-funky.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-motivation-hope-never-giveup-win-wivtory-cool-funky.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-murder-horror-scary-temed-holloween-haunted-suspence.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-murder-horror-scary-temed-holloween-haunted-suspence.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-music-simple-straight-jazzy-simple.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-music-simple-straight-jazzy-simple.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-numeric-number-figure-chalk-written-writting.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-numeric-number-figure-chalk-written-writting.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-save-the-date-celebration-calander-inviation-event.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-save-the-date-celebration-calander-inviation-event.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-save-the-date-invitation-party-invited-cool-.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-save-the-date-invitation-party-invited-cool-.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-signature-sign-elegant-royal.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-signature-sign-elegant-royal.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-spring-season-nature-leaf-flower-decorative.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-spring-season-nature-leaf-flower-decorative.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-summer-sunny-hot-sea-season.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-summer-sunny-hot-sea-season.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-treandu-cool-funky-hip.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-treandu-cool-funky-hip.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-what-when-where-column-fun-cool-question.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-what-when-where-column-fun-cool-question.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-04-text-color-winter-cold-wonderland-decorative-season.json', preview: 'https://api.polotno.com/text-templates/2021-06-04-text-color-winter-cold-wonderland-decorative-season.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-alert-sale-brand-clearance-shop-now-sjopping-discount.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-alert-sale-brand-clearance-shop-now-sjopping-discount.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-chalk-drawing-chalkboard-pencil-marker-color-fill-hand-drawn-drawing.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-chalk-drawing-chalkboard-pencil-marker-color-fill-hand-drawn-drawing.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-code-matrix-numbers-numeric-data-sale.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-code-matrix-numbers-numeric-data-sale.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-fun-cool-cartoon-animated-game.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-fun-cool-cartoon-animated-game.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-funky-cool-hashtag-young-fun.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-funky-cool-hashtag-young-fun.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-instagram-tag-tagging-cool-unique.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-instagram-tag-tagging-cool-unique.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-s-sle-black-friday-shopping-buy.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-s-sle-black-friday-shopping-buy.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-speed-fast-run-running-cool-themed-cartoon-lines-waves-move-movement.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-speed-fast-run-running-cool-themed-cartoon-lines-waves-move-movement.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-sweat-candy.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-sweat-candy.png' },\n { json: 'https://api.polotno.com/text-templates/2021-06-05-text-color-themed-ink-bubble-fun-cool-cartoon-comic.json', preview: 'https://api.polotno.com/text-templates/2021-06-05-text-color-themed-ink-bubble-fun-cool-cartoon-comic.png' },\n];\n\n// ── Preload all template fonts in background (runs once) ──\nlet _fontsPreloaded = false;\nfunction preloadTemplateFonts(store) {\n if (_fontsPreloaded) return;\n _fontsPreloaded = true;\n // Fetch all JSONs in parallel, collect font families, load them\n Promise.all(\n TEXT_TEMPLATES.map((t) =>\n fetch(t.json).then((r) => r.json()).catch(() => null)\n )\n ).then((results) => {\n const fonts = new Set();\n results.forEach((data) => {\n if (!data?.pages?.[0]?.children) return;\n data.pages[0].children.forEach((child) => {\n if (child.fontFamily) fonts.add(child.fontFamily);\n });\n });\n fonts.forEach((f) => store.loadFont(f));\n });\n}\n\n// ── Tab 1: Text presets + predefined templates ──\nconst TextTab = observer(({ store }) => {\n const [loadingIdx, setLoadingIdx] = useState(null);\n\n // Preload all template fonts on first mount\n useEffect(() => { preloadTemplateFonts(store); }, [store]);\n\n const presets = [\n {\n label: t('sidePanel.headerText', 'Create header'),\n text: t('sidePanel.headerText', 'Create header'),\n fontSize: 48,\n width: 400,\n fontWeight: 'bold',\n fontFamily: 'Roboto',\n },\n {\n label: t('sidePanel.subHeaderText', 'Create sub header'),\n text: t('sidePanel.subHeaderText', 'Create sub header'),\n fontSize: 28,\n width: 350,\n fontWeight: '500',\n fontFamily: 'Roboto',\n },\n {\n label: t('sidePanel.bodyText', 'Create body text'),\n text: t('sidePanel.bodyText', 'Create body text'),\n fontSize: 16,\n width: 300,\n fontWeight: 'normal',\n fontFamily: 'Roboto',\n },\n ];\n\n const handleTemplateClick = useCallback(async (tmpl, idx) => {\n const page = store.activePage;\n if (!page) return;\n setLoadingIdx(idx);\n try {\n const res = await fetch(tmpl.json);\n const data = await res.json();\n const templateChildren = data?.pages?.[0]?.children || [];\n\n // Add elements immediately so the user sees instant feedback\n const newIds = [];\n const fonts = new Set();\n templateChildren.forEach((child) => {\n const { id: _omit, ...childData } = child;\n const el = page.addElement(childData, { skipSelect: true });\n if (el) newIds.push(el.id);\n if (child.fontFamily) fonts.add(child.fontFamily);\n });\n if (newIds.length > 0) {\n store.selectElements(newIds);\n }\n store.history.addUndoState();\n\n // Load fonts in background — text-element's loadingdone handler\n // will reflow text once each font arrives\n [...fonts].forEach((f) => store.loadFont(f));\n } catch (err) {\n console.error('Failed to load text template:', err);\n } finally {\n setLoadingIdx(null);\n }\n }, [store]);\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column' }}>\n {presets.map((preset, idx) => (\n <Button\n key={idx}\n fullWidth\n onClick={() => addTextToCanvas(store, preset)}\n sx={{\n justifyContent: 'center',\n textTransform: 'none',\n py: 0,\n px: 0,\n fontSize: preset.fontSize > 30 ? 30 : preset.fontSize > 20 ? 20 : 16,\n fontWeight: preset.fontWeight,\n fontFamily: preset.fontFamily,\n color: '#333',\n '&:hover': {\n backgroundColor: 'rgba(13,131,205,0.04)',\n },\n }}\n >\n {preset.label}\n </Button>\n ))}\n\n {/* Predefined text templates grid */}\n <Typography\n variant=\"caption\"\n sx={{ mt: 2, mb: 1, color: '#888', fontSize: 11, fontWeight: 500 }}\n >\n {t('sidePanel.textTemplates', 'Text templates')}\n </Typography>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: '1fr 1fr',\n gap: 1,\n }}\n >\n {TEXT_TEMPLATES.map((tmpl, idx) => (\n <Box\n key={idx}\n onClick={() => handleTemplateClick(tmpl, idx)}\n sx={{\n cursor: loadingIdx === idx ? 'wait' : 'pointer',\n borderRadius: '4px',\n overflow: 'hidden',\n border: '1px solid transparent',\n opacity: loadingIdx === idx ? 0.5 : 1,\n transition: 'border-color 0.15s, box-shadow 0.15s, opacity 0.15s',\n '&:hover': {\n borderColor: '#0d83cd',\n boxShadow: '0 1px 4px rgba(13,131,205,0.15)',\n },\n }}\n >\n <img\n src={tmpl.preview}\n alt=\"Text template\"\n loading=\"lazy\"\n crossOrigin=\"anonymous\"\n draggable={false}\n style={{\n width: '100%',\n height: 'auto',\n display: 'block',\n }}\n />\n </Box>\n ))}\n </Box>\n </Box>\n );\n});\n\n// ── Module-level font storage (persists until page refresh) ──\nlet _uploadedFonts = [];\nlet _fontIdCounter = 0;\n\nconst registerFont = (displayName, blobUrl) => {\n const style = document.createElement('style');\n style.textContent = `@font-face { font-family: '${displayName}'; src: url('${blobUrl}'); }`;\n document.head.appendChild(style);\n return { familyName: displayName, styleEl: style };\n};\n\n// ── Tab 2: My Fonts ──\nconst MyFontsTab = observer(({ store }) => {\n const [, setRenderKey] = useState(0);\n const forceUpdate = useCallback(() => setRenderKey((k) => k + 1), []);\n const fileInputRef = useRef(null);\n\n const fonts = _uploadedFonts;\n\n const handleUpload = useCallback((e) => {\n const file = e.target.files?.[0];\n if (!file) return;\n e.target.value = '';\n\n const rawName = file.name.replace(/\\.(ttf|otf|woff2?|eot)$/i, '');\n const blobUrl = URL.createObjectURL(file);\n const { familyName, styleEl } = registerFont(rawName, blobUrl);\n\n _uploadedFonts = [\n ..._uploadedFonts,\n { id: `${Date.now()}_${++_fontIdCounter}`, displayName: rawName, familyName, blobUrl, styleEl },\n ];\n forceUpdate();\n }, [forceUpdate]);\n\n const handleDelete = useCallback((id) => {\n const font = _uploadedFonts.find((f) => f.id === id);\n if (font) {\n if (font.styleEl?.parentNode) font.styleEl.parentNode.removeChild(font.styleEl);\n URL.revokeObjectURL(font.blobUrl);\n }\n _uploadedFonts = _uploadedFonts.filter((f) => f.id !== id);\n forceUpdate();\n }, [forceUpdate]);\n\n const handleFontClick = useCallback((font) => {\n addTextToCanvas(store, {\n text: 'Cool text',\n fontSize: 36,\n width: 350,\n fontFamily: font.familyName,\n fontWeight: 'normal',\n });\n }, [store]);\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>\n {/* Upload button */}\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\".ttf,.otf,.woff,.woff2,.eot\"\n style={{ display: 'none' }}\n onChange={handleUpload}\n />\n <Button\n fullWidth\n variant=\"outlined\"\n onClick={() => fileInputRef.current?.click()}\n startIcon={<FileUploadOutlinedIcon />}\n sx={{\n textTransform: 'none',\n borderColor: '#ccc',\n color: '#333',\n fontWeight: 400,\n fontSize: 13,\n py: 0.8,\n '&:hover': { borderColor: '#999', backgroundColor: 'rgba(0,0,0,0.02)' },\n }}\n >\n {t('sidePanel.uploadFont', 'Upload font')}\n </Button>\n\n {/* Uploaded fonts list */}\n {fonts.map((font) => (\n <Box\n key={font.id}\n onClick={() => handleFontClick(font)}\n sx={{\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#b0b0b0',\n borderRadius: '6px',\n py: 2.5,\n px: 2,\n cursor: 'pointer',\n minHeight: 60,\n '&:hover': { backgroundColor: '#a0a0a0' },\n }}\n >\n <Typography\n sx={{\n fontFamily: `'${font.familyName}', sans-serif`,\n fontSize: 20,\n color: '#fff',\n textAlign: 'center',\n userSelect: 'none',\n lineHeight: 1.3,\n }}\n >\n {font.displayName} text\n </Typography>\n <IconButton\n size=\"small\"\n onClick={(e) => { e.stopPropagation(); handleDelete(font.id); }}\n sx={{\n position: 'absolute',\n bottom: 4,\n right: 4,\n color: 'rgba(255,255,255,0.7)',\n '&:hover': { color: '#fff', backgroundColor: 'rgba(255,255,255,0.15)' },\n }}\n >\n <DeleteOutlineIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n ))}\n </Box>\n );\n});\n\n// ── Main panel with tabs ──\nconst TextPanelContent = observer(({ store }) => {\n const [activeTab, setActiveTab] = useState('text');\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', height: '100%' }}>\n {/* Tab bar */}\n <Box sx={{ display: 'flex', borderBottom: '1px solid #e0e0e0' }}>\n {[\n { key: 'text', label: t('sidePanel.textTab', 'Text') },\n { key: 'myfonts', label: t('sidePanel.myFontsTab', 'My fonts') },\n ].map((tab) => (\n <Box\n key={tab.key}\n onClick={() => setActiveTab(tab.key)}\n sx={{\n flex: 1,\n textAlign: 'center',\n py: 1,\n fontSize: 13,\n fontWeight: activeTab === tab.key ? 600 : 400,\n color: activeTab === tab.key ? '#0d83cd' : '#666',\n borderBottom: activeTab === tab.key ? '2px solid #0d83cd' : '2px solid transparent',\n cursor: 'pointer',\n userSelect: 'none',\n transition: 'color 0.15s, border-color 0.15s',\n '&:hover': { color: '#0d83cd' },\n }}\n >\n {tab.label}\n </Box>\n ))}\n </Box>\n\n {/* Tab content */}\n <Box sx={{ p: 2, flex: 1, overflowY: 'auto' }}>\n {activeTab === 'text' && <TextTab store={store} />}\n {activeTab === 'myfonts' && <MyFontsTab store={store} />}\n </Box>\n </Box>\n );\n});\n\nexport const TextSection = {\n name: 'text',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.text', 'Text')} {...props}>\n <TextFieldsIcon />\n </SectionTab>\n ),\n Panel: TextPanelContent,\n};\n","import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, TextField, InputAdornment, Paper, ClickAwayListener } from '@mui/material';\nimport WallpaperIcon from '@mui/icons-material/Wallpaper';\nimport SearchIcon from '@mui/icons-material/Search';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\n// ─── Color conversion utilities ──────────────────────────────────────\n\nfunction hsvToRgb(h, s, v) {\n const i = Math.floor(h / 60) % 6;\n const f = h / 60 - Math.floor(h / 60);\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const tt = v * (1 - (1 - f) * s);\n let r, g, b;\n switch (i) {\n case 0: r = v; g = tt; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = tt; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = tt; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n}\n\nfunction rgbToHsv(r, g, b) {\n r /= 255; g /= 255; b /= 255;\n const max = Math.max(r, g, b), min = Math.min(r, g, b);\n const d = max - min;\n let h = 0, s = max === 0 ? 0 : d / max, v = max;\n if (d !== 0) {\n if (max === r) h = ((g - b) / d + 6) % 6 * 60;\n else if (max === g) h = ((b - r) / d + 2) * 60;\n else h = ((r - g) / d + 4) * 60;\n }\n return [h, s, v];\n}\n\nfunction hexToRgb(hex) {\n hex = (hex || '000000').replace('#', '');\n if (hex.length === 3) hex = hex.split('').map(c => c + c).join('');\n if (hex.length !== 6) return [0, 0, 0];\n return [parseInt(hex.substr(0, 2), 16) || 0, parseInt(hex.substr(2, 2), 16) || 0, parseInt(hex.substr(4, 2), 16) || 0];\n}\n\nfunction rgbToHex(r, g, b) {\n return '#' + [r, g, b].map(x => Math.max(0, Math.min(255, Math.round(x))).toString(16).padStart(2, '0')).join('');\n}\n\nfunction hueToColor(h) { return rgbToHex(...hsvToRgb(h, 1, 1)); }\n\n// ─── Constants ───────────────────────────────────────────────────────\n\nconst UNSPLASH_KEY = 'zwiE802FyRjTmLhZjXqW';\nconst UNSPLASH_BASE = 'https://api.polotno.com/api/get-unsplash';\n\nconst SWATCH_COLORS = ['#ffffff', '#1a237e', '#ff6d00', '#2e7d32', '#fdd835', '#9c27b0'];\n\nconst PICKER_PRESETS = [\n '#f44336', '#ff9800', '#ffeb3b', '#4caf50', '#2196f3', '#9c27b0',\n '#00bcd4', '#8bc34a', '#cddc39', '#000000', '#607d8b', '#ffffff',\n];\n\nconst CHECKER_SVG = \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Crect width='8' height='8' fill='%23ccc'/%3E%3Crect x='8' y='8' width='8' height='8' fill='%23ccc'/%3E%3Crect x='8' width='8' height='8' fill='%23fff'/%3E%3Crect y='8' width='8' height='8' fill='%23fff'/%3E%3C/svg%3E\";\n\n// ─── Saturation / Brightness Square ─────────────────────────────────\n\nconst SatBrightSquare = ({ hue, sat, bright, onChange, size = 220 }) => {\n const ref = useRef(null);\n const dragging = useRef(false);\n\n const update = useCallback((e) => {\n const rect = ref.current?.getBoundingClientRect();\n if (!rect) return;\n const x = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n const y = Math.max(0, Math.min(1, (e.clientY - rect.top) / rect.height));\n onChange(x, 1 - y);\n }, [onChange]);\n\n useEffect(() => {\n const onMove = (e) => { if (dragging.current) { e.preventDefault(); update(e); } };\n const onUp = () => { dragging.current = false; };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n return () => { document.removeEventListener('mousemove', onMove); document.removeEventListener('mouseup', onUp); };\n }, [update]);\n\n return (\n <Box\n ref={ref}\n onMouseDown={(e) => { dragging.current = true; update(e); }}\n sx={{\n width: size, height: Math.round(size * 0.7), position: 'relative', cursor: 'crosshair',\n borderRadius: '4px', userSelect: 'none',\n background: `linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, ${hueToColor(hue)})`,\n }}\n >\n <Box sx={{\n position: 'absolute', left: `${sat * 100}%`, top: `${(1 - bright) * 100}%`,\n width: 12, height: 12, borderRadius: '50%',\n border: '2px solid #fff', boxShadow: '0 0 3px rgba(0,0,0,0.6)',\n transform: 'translate(-50%, -50%)', pointerEvents: 'none',\n }} />\n </Box>\n );\n};\n\n// ─── Hue Bar ─────────────────────────────────────────────────────────\n\nconst HueBar = ({ hue, onChange, width = 220 }) => {\n const ref = useRef(null);\n const dragging = useRef(false);\n\n const update = useCallback((e) => {\n const rect = ref.current?.getBoundingClientRect();\n if (!rect) return;\n onChange(Math.max(0, Math.min(360, ((e.clientX - rect.left) / rect.width) * 360)));\n }, [onChange]);\n\n useEffect(() => {\n const onMove = (e) => { if (dragging.current) { e.preventDefault(); update(e); } };\n const onUp = () => { dragging.current = false; };\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n return () => { document.removeEventListener('mousemove', onMove); document.removeEventListener('mouseup', onUp); };\n }, [update]);\n\n return (\n <Box\n ref={ref}\n onMouseDown={(e) => { dragging.current = true; update(e); }}\n sx={{\n width, height: 14, borderRadius: '7px', position: 'relative', cursor: 'pointer',\n background: 'linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%)',\n userSelect: 'none', mt: 1,\n }}\n >\n <Box sx={{\n position: 'absolute', left: `${(hue / 360) * 100}%`, top: '50%',\n width: 14, height: 14, borderRadius: '50%',\n border: '2px solid #fff', boxShadow: '0 0 2px rgba(0,0,0,0.5)',\n transform: 'translate(-50%, -50%)', pointerEvents: 'none',\n backgroundColor: hueToColor(hue),\n }} />\n </Box>\n );\n};\n\n// ─── Color Picker (used inside Solid & Linear tabs) ──────────────────\n\nconst ColorPicker = ({ color, onChange }) => {\n const [hsv, setHsv] = useState(() => rgbToHsv(...hexToRgb(color)));\n const [rgb, setRgb] = useState(() => hexToRgb(color));\n const [hexInput, setHexInput] = useState((color || '#000000').replace('#', ''));\n\n useEffect(() => {\n const r = hexToRgb(color || '#000000');\n const h = rgbToHsv(...r);\n setRgb(r);\n setHsv(h);\n setHexInput((color || '#000000').replace('#', ''));\n }, [color]);\n\n const emit = (h, s, v) => {\n const newRgb = hsvToRgb(h, s, v);\n const hex = rgbToHex(...newRgb);\n setHsv([h, s, v]);\n setRgb(newRgb);\n setHexInput(hex.replace('#', ''));\n onChange(hex);\n };\n\n const handleHex = (val) => {\n setHexInput(val);\n if (/^[0-9a-fA-F]{6}$/.test(val)) {\n const r = hexToRgb(val);\n setRgb(r);\n setHsv(rgbToHsv(...r));\n onChange('#' + val);\n }\n };\n\n const handleRgb = (idx, val) => {\n const v = parseInt(val);\n if (isNaN(v) || v < 0 || v > 255) return;\n const newRgb = [...rgb]; newRgb[idx] = v;\n setRgb(newRgb);\n setHsv(rgbToHsv(...newRgb));\n const hex = rgbToHex(...newRgb);\n setHexInput(hex.replace('#', ''));\n onChange(hex);\n };\n\n const smallSx = { width: 38, '& .MuiInputBase-input': { fontSize: 11, py: 0.3, px: 0.3, textAlign: 'center' } };\n\n return (\n <Box>\n <SatBrightSquare hue={hsv[0]} sat={hsv[1]} bright={hsv[2]} onChange={(s, v) => emit(hsv[0], s, v)} />\n <HueBar hue={hsv[0]} onChange={(h) => emit(h, hsv[1], hsv[2])} />\n\n <Box sx={{ display: 'flex', gap: 0.5, mt: 1.5, alignItems: 'center' }}>\n <TextField size=\"small\" value={hexInput} onChange={(e) => handleHex(e.target.value)}\n onFocus={(e) => e.target.select()}\n sx={{ width: 60, '& .MuiInputBase-input': { fontSize: 11, py: 0.3, px: 0.5 } }} />\n {[0, 1, 2].map((i) => (\n <TextField key={i} size=\"small\" type=\"number\" value={rgb[i]}\n onChange={(e) => handleRgb(i, e.target.value)} onFocus={(e) => e.target.select()} sx={smallSx} inputProps={{ min: 0, max: 255 }} />\n ))}\n <TextField size=\"small\" type=\"number\" value={100} disabled sx={smallSx} />\n </Box>\n <Box sx={{ display: 'flex', gap: 0.5, mt: 0.3 }}>\n {['Hex', 'R', 'G', 'B', 'A'].map((label, i) => (\n <Typography key={label} variant=\"caption\" sx={{ width: i === 0 ? 60 : 38, textAlign: 'center', color: '#888', fontSize: 10 }}>\n {label}\n </Typography>\n ))}\n </Box>\n\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5, mt: 1 }}>\n {PICKER_PRESETS.map((c) => (\n <Box key={c} onClick={() => onChange(c)} sx={{\n width: 18, height: 18, borderRadius: '3px', backgroundColor: c,\n border: '1px solid #ddd', cursor: 'pointer',\n '&:hover': { transform: 'scale(1.2)' }, transition: 'transform 0.1s',\n }} />\n ))}\n </Box>\n </Box>\n );\n};\n\n// ─── Color Popup (Solid / Linear tabs) ───────────────────────────────\n\nconst ColorPopup = ({ open, onClose, background, onBackgroundChange }) => {\n const [tab, setTab] = useState('solid');\n const [solidColor, setSolidColor] = useState('#000000');\n const [gradColors, setGradColors] = useState(['#000000', '#ffffff']);\n const [gradAngle, setGradAngle] = useState(0);\n const [activeStop, setActiveStop] = useState(0);\n\n useEffect(() => {\n if (!open) return;\n if (background && background.startsWith('{')) {\n try {\n const g = JSON.parse(background);\n if (g.type === 'linear') {\n setTab('linear');\n setGradColors(g.colors || ['#000000', '#ffffff']);\n setGradAngle(g.angle || 0);\n return;\n }\n } catch (e) {}\n }\n setTab('solid');\n if (background && background.startsWith('#')) setSolidColor(background);\n }, [open]);\n\n const handleSolid = (c) => { setSolidColor(c); onBackgroundChange(c); };\n\n const handleGradColor = (c) => {\n const nc = [...gradColors]; nc[activeStop] = c; setGradColors(nc);\n onBackgroundChange(JSON.stringify({ type: 'linear', colors: nc, angle: gradAngle }));\n };\n\n const handleAngle = (a) => {\n setGradAngle(a);\n onBackgroundChange(JSON.stringify({ type: 'linear', colors: gradColors, angle: a }));\n };\n\n if (!open) return null;\n\n const tabStyle = (active) => ({\n cursor: 'pointer', fontWeight: active ? 600 : 400,\n color: active ? '#1976d2' : '#666',\n borderBottom: active ? '2px solid #1976d2' : '2px solid transparent',\n pb: 0.3, px: 0.5, userSelect: 'none',\n });\n\n return (\n <ClickAwayListener onClickAway={onClose}>\n <Paper elevation={4} sx={{ position: 'absolute', top: 52, left: 0, zIndex: 1000, p: 1.5, width: 252, borderRadius: '8px' }}>\n <Box sx={{ display: 'flex', gap: 2, mb: 1.5, borderBottom: '1px solid #e0e0e0', pb: 0.5 }}>\n <Typography variant=\"body2\" onClick={() => setTab('solid')} sx={tabStyle(tab === 'solid')}>Solid</Typography>\n <Typography variant=\"body2\" onClick={() => {\n setTab('linear');\n onBackgroundChange(JSON.stringify({ type: 'linear', colors: gradColors, angle: gradAngle }));\n }} sx={tabStyle(tab === 'linear')}>Linear</Typography>\n </Box>\n\n {tab === 'solid' && <ColorPicker color={solidColor} onChange={handleSolid} />}\n\n {tab === 'linear' && (\n <>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n {gradColors.map((c, i) => (\n <Box key={i} onClick={() => setActiveStop(i)} sx={{\n width: 32, height: 32, borderRadius: '4px', backgroundColor: c,\n border: activeStop === i ? '2px solid #1976d2' : '2px solid #ccc', cursor: 'pointer',\n }} />\n ))}\n </Box>\n\n <Box sx={{\n width: '100%', height: 12, borderRadius: '6px', mb: 1,\n background: `linear-gradient(${gradAngle}deg, ${gradColors[0]}, ${gradColors[1]})`,\n border: '1px solid #e0e0e0',\n }} />\n\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1.5 }}>\n <Box sx={{\n width: 24, height: 24, borderRadius: '50%', border: '1px solid #ccc',\n position: 'relative', flexShrink: 0,\n }}>\n <Box sx={{\n width: 1, height: 10, backgroundColor: '#333',\n transformOrigin: 'bottom center', transform: `rotate(${gradAngle}deg)`,\n position: 'absolute', left: '50%', bottom: '50%', ml: '-0.5px',\n }} />\n </Box>\n <input type=\"range\" min={0} max={360} value={gradAngle}\n onChange={(e) => handleAngle(parseInt(e.target.value))}\n style={{ flex: 1, cursor: 'pointer' }} />\n <Typography variant=\"caption\" sx={{ width: 32, textAlign: 'right', flexShrink: 0 }}>{gradAngle}°</Typography>\n </Box>\n\n <ColorPicker color={gradColors[activeStop]} onChange={handleGradColor} />\n </>\n )}\n </Paper>\n </ClickAwayListener>\n );\n};\n\n// ─── Main Background Panel ───────────────────────────────────────────\n\nconst BackgroundPanelContent = observer(({ store }) => {\n const page = store.activePage;\n const [pickerOpen, setPickerOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const [photos, setPhotos] = useState([]);\n const [loading, setLoading] = useState(false);\n const [lastSolidColor, setLastSolidColor] = useState('#ffffff');\n const [hasMore, setHasMore] = useState(true);\n const [pageNum, setPageNum] = useState(1);\n\n const hasMoreRef = useRef(true);\n const pageNumRef = useRef(1);\n const currentQueryRef = useRef('gradient');\n const debounceRef = useRef(null);\n const isFirstRender = useRef(true);\n const requestIdRef = useRef(0);\n const observerRef = useRef(null);\n const fetchingRef = useRef(false);\n\n useEffect(() => {\n const bg = page?.background || '';\n if (bg && bg.startsWith('#')) setLastSolidColor(bg);\n }, [page?.background]);\n\n const fetchPhotos = useCallback(async (query, pg = 1) => {\n // For pagination (pg > 1), skip if already fetching to avoid duplicates\n if (pg > 1 && fetchingRef.current) return;\n const id = ++requestIdRef.current;\n fetchingRef.current = true;\n setLoading(true);\n try {\n const q = query || 'gradient';\n const res = await fetch(`${UNSPLASH_BASE}?query=${encodeURIComponent(q)}&per_page=20&page=${pg}&KEY=${UNSPLASH_KEY}`);\n const data = await res.json();\n if (requestIdRef.current !== id) return; // Stale response, ignore\n const results = data.results || (Array.isArray(data) ? data : []);\n const totalPages = data.total_pages || 0;\n if (pg === 1) { setPhotos(results); } else { setPhotos(prev => [...prev, ...results]); }\n const more = pg < totalPages;\n setHasMore(more); hasMoreRef.current = more;\n setPageNum(pg); pageNumRef.current = pg;\n currentQueryRef.current = q;\n } catch (e) {\n if (requestIdRef.current !== id) return;\n console.warn('Unsplash fetch failed:', e);\n }\n fetchingRef.current = false;\n setLoading(false);\n }, []);\n\n // Initial load\n useEffect(() => { fetchPhotos('gradient', 1); }, [fetchPhotos]);\n\n // Debounced auto-search (500ms)\n useEffect(() => {\n if (isFirstRender.current) { isFirstRender.current = false; return; }\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n const q = searchQuery.trim() || 'gradient';\n hasMoreRef.current = true; pageNumRef.current = 1;\n setHasMore(true); setPageNum(1);\n fetchPhotos(q, 1);\n }, 500);\n return () => { if (debounceRef.current) clearTimeout(debounceRef.current); };\n }, [searchQuery, fetchPhotos]);\n\n // Callback ref for infinite scroll sentinel — reconnects observer on every mount/remount\n const sentinelRef = useCallback((node) => {\n if (observerRef.current) { observerRef.current.disconnect(); observerRef.current = null; }\n if (!node) return;\n observerRef.current = new IntersectionObserver((entries) => {\n if (entries[0].isIntersecting && !fetchingRef.current && hasMoreRef.current) {\n fetchPhotos(currentQueryRef.current, pageNumRef.current + 1);\n }\n }, { threshold: 0.1 });\n observerRef.current.observe(node);\n }, [fetchPhotos]);\n\n const setBackground = useCallback((value) => {\n if (!page) return;\n page.set({ background: value });\n store.history.addUndoState();\n }, [page, store]);\n\n const bg = page?.background || '';\n const isGradient = bg.startsWith('{');\n const isImage = bg.startsWith('http');\n const displayColor = isGradient || isImage ? lastSolidColor : (bg || '#ffffff');\n\n return (\n <Box sx={{ p: 1.5, position: 'relative' }}>\n {/* ── Color Swatches Row ── */}\n <Box sx={{ display: 'flex', gap: '6px', mb: 1.5, alignItems: 'center', flexWrap: 'nowrap', overflowX: 'hidden', '&::-webkit-scrollbar': { display: 'none' } }}>\n {/* Palette / color picker trigger */}\n <Box onClick={() => setPickerOpen(!pickerOpen)} sx={{\n width: 30, height: 30, minWidth: 30, borderRadius: '50%', cursor: 'pointer',\n border: pickerOpen ? '2px solid #1976d2' : '2px solid #e0e0e0',\n display: 'flex', alignItems: 'center', justifyContent: 'center',\n background: 'conic-gradient(#f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)',\n '&:hover': { borderColor: '#1976d2' }, transition: 'border-color 0.15s',\n }}>\n <Box sx={{ width: 16, height: 16, borderRadius: '50%', backgroundColor: '#fff' }} />\n </Box>\n\n {/* Preset color swatches */}\n {SWATCH_COLORS.map((c) => (\n <Box key={c} onClick={() => { setBackground(c); setPickerOpen(false); }} sx={{\n width: 30, height: 30, minWidth: 30, borderRadius: '50%', backgroundColor: c, cursor: 'pointer',\n border: bg === c ? '2px solid #1976d2' : '2px solid #e0e0e0',\n '&:hover': { transform: 'scale(1.1)' }, transition: 'all 0.15s',\n }} />\n ))}\n\n {/* Transparent / remove background */}\n <Box onClick={() => { setBackground('transparent'); setPickerOpen(false); }} sx={{\n width: 30, height: 30, minWidth: 30, borderRadius: '50%', cursor: 'pointer',\n backgroundImage: `url(\"${CHECKER_SVG}\")`, backgroundSize: '8px 8px',\n border: bg === 'transparent' ? '2px solid #1976d2' : '2px solid #e0e0e0',\n '&:hover': { transform: 'scale(1.1)' }, transition: 'all 0.15s',\n }} />\n </Box>\n\n {/* ── Color Picker Popup ── */}\n <ColorPopup open={pickerOpen} onClose={() => setPickerOpen(false)} background={bg} onBackgroundChange={setBackground} />\n\n {/* ── Search Input ── */}\n <TextField\n size=\"small\" fullWidth\n placeholder={t('sidePanel.search', 'Search...')}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ fontSize: 18, color: '#999' }} />\n </InputAdornment>\n ),\n }}\n sx={{ mb: 1.5, '& .MuiInputBase-input': { fontSize: 13, py: 0.8 } }}\n />\n\n {/* ── Unsplash Attribution ── */}\n <Typography variant=\"caption\" sx={{ display: 'block', textAlign: 'center', mb: 1, color: '#888' }}>\n Photos by{' '}\n <a href=\"https://unsplash.com\" target=\"_blank\" rel=\"noopener noreferrer\" style={{ color: '#1976d2', textDecoration: 'none' }}>\n Unsplash\n </a>\n </Typography>\n\n {/* ── Photo Grid ── */}\n <Box sx={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 1 }}>\n {photos.map((photo, idx) => {\n const thumb = photo.urls?.small || photo.urls?.thumb || photo.src;\n if (!thumb) return null;\n return (\n <Box key={photo.id || idx} onClick={() => {\n const url = photo.urls?.regular || photo.urls?.small || photo.src;\n if (url) setBackground(url);\n }} sx={{\n cursor: 'pointer', borderRadius: '8px', overflow: 'hidden', aspectRatio: '4/3',\n '&:hover': { opacity: 0.85 }, transition: 'opacity 0.15s',\n }}>\n <img src={thumb} alt={photo.alt_description || 'Background'}\n style={{ width: '100%', height: '100%', objectFit: 'cover', display: 'block' }} loading=\"lazy\" />\n </Box>\n );\n })}\n </Box>\n\n {/* Sentinel for infinite scroll */}\n {hasMore && <Box ref={sentinelRef} sx={{ height: 20 }} />}\n\n {loading && (\n <Typography variant=\"caption\" sx={{ display: 'block', textAlign: 'center', mt: 2, color: '#888' }}>\n Loading...\n </Typography>\n )}\n {!loading && photos.length === 0 && (\n <Typography variant=\"caption\" sx={{ display: 'block', textAlign: 'center', mt: 2, color: '#888' }}>\n No photos found\n </Typography>\n )}\n </Box>\n );\n});\n\nexport const BackgroundSection = {\n name: 'background',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.background', 'Background')} {...props}>\n <WallpaperIcon />\n </SectionTab>\n ),\n Panel: BackgroundPanelContent,\n};\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, IconButton, List, ListItem, ListItemText, ListItemIcon } from '@mui/material';\nimport LayersIcon from '@mui/icons-material/Layers';\nimport VisibilityIcon from '@mui/icons-material/Visibility';\nimport VisibilityOffIcon from '@mui/icons-material/VisibilityOff';\nimport LockIcon from '@mui/icons-material/Lock';\nimport LockOpenIcon from '@mui/icons-material/LockOpen';\nimport DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';\nimport ArrowUpwardIcon from '@mui/icons-material/ArrowUpward';\nimport ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';\nimport ImageIcon from '@mui/icons-material/Image';\nimport TextFieldsIcon from '@mui/icons-material/TextFields';\nimport CategoryIcon from '@mui/icons-material/Category';\nimport TimelineIcon from '@mui/icons-material/Timeline';\nimport CodeIcon from '@mui/icons-material/Code';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\nconst ELEMENT_ICONS = {\n image: ImageIcon,\n text: TextFieldsIcon,\n figure: CategoryIcon,\n line: TimelineIcon,\n svg: CodeIcon,\n};\n\nconst LayerItem = observer(({ element, store, index }) => {\n const isSelected = store.selectedElementsIds.includes(element.id);\n const Icon = ELEMENT_ICONS[element.type] || CategoryIcon;\n const isLocked = element.locked;\n\n const handleSelect = () => {\n store.selectElements([element.id]);\n };\n\n const handleToggleVisibility = (e) => {\n e.stopPropagation();\n element.set({ visible: !element.visible });\n store.history.addUndoState();\n };\n\n const handleToggleLock = (e) => {\n e.stopPropagation();\n if (isLocked) {\n element.set({\n draggable: true,\n resizable: true,\n contentEditable: true,\n styleEditable: true,\n });\n } else {\n element.set({\n draggable: false,\n resizable: false,\n contentEditable: false,\n styleEditable: false,\n });\n }\n store.history.addUndoState();\n };\n\n const handleMoveUp = (e) => {\n e.stopPropagation();\n element.moveUp();\n store.history.addUndoState();\n };\n\n const handleMoveDown = (e) => {\n e.stopPropagation();\n element.moveDown();\n store.history.addUndoState();\n };\n\n const handleDelete = (e) => {\n e.stopPropagation();\n store.deleteElements([element.id]);\n store.history.addUndoState();\n };\n\n const displayName =\n element.name ||\n `${element.type}${element.text ? `: ${element.text.substring(0, 20)}` : ''}`;\n\n return (\n <ListItem\n onClick={handleSelect}\n sx={{\n cursor: 'pointer',\n borderRadius: '4px',\n mb: 0.5,\n py: 0.5,\n px: 1,\n backgroundColor: isSelected ? 'rgba(13,131,205,0.1)' : 'transparent',\n border: isSelected ? '1px solid rgba(13,131,205,0.3)' : '1px solid transparent',\n opacity: element.visible ? 1 : 0.5,\n '&:hover': {\n backgroundColor: isSelected\n ? 'rgba(13,131,205,0.15)'\n : 'rgba(0,0,0,0.04)',\n },\n }}\n >\n <ListItemIcon sx={{ minWidth: 32 }}>\n <Icon sx={{ fontSize: 18, color: isSelected ? '#0d83cd' : '#666' }} />\n </ListItemIcon>\n <ListItemText\n primary={displayName}\n primaryTypographyProps={{\n variant: 'body2',\n noWrap: true,\n sx: { fontSize: '12px' },\n }}\n />\n <Box sx={{ display: 'flex', gap: 0, ml: 1 }}>\n <IconButton size=\"small\" onClick={handleMoveUp} sx={{ p: 0.3 }}>\n <ArrowUpwardIcon sx={{ fontSize: 14 }} />\n </IconButton>\n <IconButton size=\"small\" onClick={handleMoveDown} sx={{ p: 0.3 }}>\n <ArrowDownwardIcon sx={{ fontSize: 14 }} />\n </IconButton>\n <IconButton size=\"small\" onClick={handleToggleVisibility} sx={{ p: 0.3 }}>\n {element.visible ? (\n <VisibilityIcon sx={{ fontSize: 14 }} />\n ) : (\n <VisibilityOffIcon sx={{ fontSize: 14 }} />\n )}\n </IconButton>\n <IconButton size=\"small\" onClick={handleToggleLock} sx={{ p: 0.3 }}>\n {isLocked ? (\n <LockIcon sx={{ fontSize: 14 }} />\n ) : (\n <LockOpenIcon sx={{ fontSize: 14 }} />\n )}\n </IconButton>\n <IconButton size=\"small\" onClick={handleDelete} sx={{ p: 0.3 }}>\n <DeleteOutlineIcon sx={{ fontSize: 14, color: '#d32f2f' }} />\n </IconButton>\n </Box>\n </ListItem>\n );\n});\n\nconst LayersPanelContent = observer(({ store }) => {\n const page = store.activePage;\n\n if (!page || page.children.length === 0) {\n return (\n <Box sx={{ p: 2, textAlign: 'center' }}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {t('sidePanel.noLayers', 'No layers on this page')}\n </Typography>\n </Box>\n );\n }\n\n // Show in reverse order (top layer first)\n const elements = [...page.children].reverse();\n\n return (\n <Box sx={{ p: 1, overflowY: 'auto', height: '100%' }}>\n <Typography variant=\"subtitle2\" sx={{ px: 1, mb: 1 }}>\n {t('sidePanel.layers', 'Layers')} ({page.children.length})\n </Typography>\n <List dense disablePadding>\n {elements.map((element, index) => (\n <LayerItem\n key={element.id}\n element={element}\n store={store}\n index={index}\n />\n ))}\n </List>\n </Box>\n );\n});\n\nexport const LayersSection = {\n name: 'layers',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.layers', 'Layers')} {...props}>\n <LayersIcon />\n </SectionTab>\n ),\n Panel: LayersPanelContent,\n};\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography } from '@mui/material';\nimport CategoryIcon from '@mui/icons-material/Category';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\n// ── Line definitions ────────────────────────────────────────────────\nconst LINES = [\n { name: 'Solid', endHead: '', dash: [], svgLine: { strokeDasharray: 'none' } },\n { name: 'Dashed', endHead: '', dash: [10, 5], svgLine: { strokeDasharray: '8 4' } },\n { name: 'Dotted', endHead: '', dash: [2, 4], svgLine: { strokeDasharray: '2 4' } },\n { name: 'Arrow', endHead: 'arrow', dash: [], svgLine: { strokeDasharray: 'none', marker: true } },\n { name: 'Dot Arrow', endHead: 'arrow', startHead: 'circle', dash: [], svgLine: { strokeDasharray: 'none', marker: true, startDot: true } },\n { name: 'Dash Arrow', endHead: 'arrow', startHead: 'square', dash: [8, 4], svgLine: { strokeDasharray: '6 3', marker: true, startSquare: true } },\n];\n\n// ── Shape definitions (100×100 viewBox paths) ───────────────────────\nconst SHAPES = [\n // Row 1 — basic\n { name: 'Rectangle', subType: 'rect' },\n { name: 'Circle', subType: 'circle' },\n { name: 'Star', subType: 'star' },\n { name: 'Triangle', subType: 'triangle' },\n // Row 2\n { name: 'Parallelogram', subType: 'path', path: 'M20 90 L0 10 L80 10 L100 90 Z' },\n { name: 'Diamond', subType: 'diamond' },\n { name: 'Pentagon', subType: 'polygon' },\n { name: 'Hexagon', subType: 'hexagon' },\n // Row 3\n { name: 'Speech Bubble', subType: 'path', path: 'M10 5 H90 Q95 5 95 10 V55 Q95 60 90 60 H35 L15 80 L25 60 H10 Q5 60 5 55 V10 Q5 5 10 5 Z' },\n { name: 'Cross', subType: 'path', path: 'M35 0 H65 V35 H100 V65 H65 V100 H35 V65 H0 V35 H35 Z' },\n { name: 'Egg', subType: 'path', path: 'M50 5 C75 5 95 30 95 55 C95 80 75 95 50 95 C25 95 5 80 5 55 C5 30 25 5 50 5 Z' },\n { name: 'Cloud', subType: 'path', path: 'M25 80 C10 80 0 70 5 60 C0 50 10 40 22 42 C20 30 30 20 45 20 C55 15 70 20 75 32 C85 28 100 38 95 52 C105 62 95 78 80 78 Z' },\n // Row 4 — arrows\n { name: 'Right Arrow', subType: 'path', path: 'M0 30 H60 V10 L100 50 L60 90 V70 H0 Z' },\n { name: 'Left Arrow', subType: 'path', path: 'M100 30 H40 V10 L0 50 L40 90 V70 H100 Z' },\n { name: 'Down Arrow', subType: 'path', path: 'M30 0 V60 H10 L50 100 L90 60 H70 V0 Z' },\n { name: 'Up Arrow', subType: 'path', path: 'M30 100 V40 H10 L50 0 L90 40 H70 V100 Z' },\n // Row 5 — decorative\n { name: 'Flower 5', subType: 'path', path: 'M50 10 C60 0 75 5 70 20 C85 15 90 30 80 40 C95 45 90 65 75 60 C80 75 65 85 55 70 C50 85 35 80 35 65 C20 75 10 65 20 55 C5 50 10 35 25 35 C15 20 25 10 40 15 C35 0 45 0 50 10 Z' },\n { name: 'Asterisk', subType: 'path', path: 'M50 0 L58 35 L90 15 L65 42 L100 50 L65 58 L90 85 L58 65 L50 100 L42 65 L10 85 L35 58 L0 50 L35 42 L10 15 L42 35 Z' },\n { name: 'Bowtie', subType: 'path', path: 'M0 0 L45 40 L45 0 L55 0 L55 40 L100 0 L100 100 L55 60 L55 100 L45 100 L45 60 L0 100 Z' },\n { name: 'Half Circle', subType: 'path', path: 'M50 0 A50 50 0 0 1 50 100 Z' },\n // Row 6\n { name: 'Rounded Square', subType: 'path', path: 'M20 5 H80 Q95 5 95 20 V80 Q95 95 80 95 H20 Q5 95 5 80 V20 Q5 5 20 5 Z' },\n { name: 'Gem', subType: 'path', path: 'M50 0 L95 35 L50 100 L5 35 Z' },\n { name: 'Arch', subType: 'path', path: 'M5 95 V40 Q5 5 50 5 Q95 5 95 40 V95 H70 V45 Q70 25 50 25 Q30 25 30 45 V95 Z' },\n { name: 'Teardrop', subType: 'path', path: 'M50 5 C70 5 90 25 90 50 C90 75 70 95 50 95 C30 95 10 75 10 50 C10 25 30 5 50 5 Z' },\n // Row 7\n { name: 'Drop', subType: 'path', path: 'M50 0 C55 20 90 40 90 65 C90 85 72 100 50 100 C28 100 10 85 10 65 C10 40 45 20 50 0 Z' },\n { name: 'Starburst', subType: 'path', path: 'M50 0 L56 30 L80 8 L62 34 L100 25 L70 44 L100 50 L70 56 L100 75 L62 66 L80 92 L56 70 L50 100 L44 70 L20 92 L38 66 L0 75 L30 56 L0 50 L30 44 L0 25 L38 34 L20 8 L44 30 Z' },\n { name: 'Wave', subType: 'path', path: 'M0 20 C25 0 25 40 50 20 C75 0 75 40 100 20 V80 C75 100 75 60 50 80 C25 100 25 60 0 80 Z' },\n { name: 'Flower 6', subType: 'path', path: 'M50 5 C55 20 65 15 68 25 C78 18 82 28 75 35 C85 35 88 48 78 50 C88 52 85 65 75 65 C82 72 78 82 68 75 C65 85 55 80 50 95 C45 80 35 85 32 75 C22 82 18 72 25 65 C15 65 12 52 22 50 C12 48 15 35 25 35 C18 28 22 18 32 25 C35 15 45 20 50 5 Z' },\n // Row 8\n { name: 'Hourglass', subType: 'path', path: 'M10 0 H90 L55 45 L55 55 L90 100 H10 L45 55 L45 45 Z' },\n { name: 'Heart', subType: 'path', path: 'M50 90 C25 70 0 55 0 30 C0 10 15 0 30 0 C40 0 48 5 50 15 C52 5 60 0 70 0 C85 0 100 10 100 30 C100 55 75 70 50 90 Z' },\n { name: 'House', subType: 'path', path: 'M50 5 L95 45 V95 H5 V45 Z' },\n { name: 'Arrow Up', subType: 'path', path: 'M50 0 L90 35 H65 V100 H35 V35 H10 Z' },\n // Row 9\n { name: 'Hourglass V', subType: 'path', path: 'M0 0 L100 0 L55 45 L55 55 L100 100 L0 100 L45 55 L45 45 Z' },\n { name: 'Barn', subType: 'path', path: 'M50 0 L95 30 V95 H5 V30 Z' },\n { name: 'Mushroom', subType: 'path', path: 'M5 55 C5 20 30 0 50 0 C70 0 95 20 95 55 H65 V95 H35 V55 Z' },\n { name: 'Lips', subType: 'path', path: 'M10 50 C10 25 30 15 50 25 C70 15 90 25 90 50 C90 75 70 85 50 75 C30 85 10 75 10 50 Z' },\n // Row 10\n { name: 'Leaf', subType: 'path', path: 'M10 90 Q10 10 90 10 Q90 90 10 90 Z' },\n { name: 'Lightning', subType: 'path', path: 'M60 0 L25 45 H50 L15 100 L80 50 H55 L85 0 Z' },\n { name: 'Bolt', subType: 'path', path: 'M55 0 L20 42 H45 L10 100 L80 55 H52 L90 0 Z' },\n { name: 'D Shape', subType: 'path', path: 'M10 5 H60 C90 5 95 30 95 50 C95 70 90 95 60 95 H10 Z' },\n // Row 11\n { name: 'Peanut', subType: 'path', path: 'M35 10 C55 0 80 10 80 30 C95 40 95 60 80 70 C80 90 55 100 35 90 C20 100 5 90 5 70 C-5 60 -5 40 5 30 C5 10 20 0 35 10 Z' },\n { name: 'L Shape', subType: 'path', path: 'M10 0 H50 V60 H90 V100 H10 Z' },\n { name: 'Sun', subType: 'path', path: 'M50 0 L54 35 L75 8 L58 37 L95 20 L63 42 L100 40 L65 48 L98 62 L62 54 L85 80 L56 58 L68 95 L52 62 L50 100 L48 62 L32 95 L44 58 L15 80 L38 54 L2 62 L35 48 L0 40 L37 42 L5 20 L42 37 L25 8 L46 35 Z' },\n { name: 'Concave Rect', subType: 'path', path: 'M0 0 C35 15 65 15 100 0 V100 C65 85 35 85 0 100 Z' },\n // Row 12\n { name: 'Hexagon 2', subType: 'path', path: 'M25 5 H75 L95 50 L75 95 H25 L5 50 Z' },\n { name: 'U Shape', subType: 'path', path: 'M5 0 H30 V65 C30 80 42 90 50 90 C58 90 70 80 70 65 V0 H95 V65 C95 90 75 100 50 100 C25 100 5 90 5 65 Z' },\n { name: 'Corner', subType: 'path', path: 'M0 0 H55 V55 H100 V100 H0 Z' },\n { name: 'T Shape', subType: 'path', path: 'M0 0 H100 V40 H65 V100 H35 V40 H0 Z' },\n // Row 13\n { name: 'Shield', subType: 'path', path: 'M50 95 C20 80 5 60 5 30 V10 H95 V30 C95 60 80 80 50 95 Z' },\n { name: 'Shield 2', subType: 'path', path: 'M50 95 C15 75 5 55 5 25 V5 H95 V25 C95 55 85 75 50 95 Z' },\n { name: 'Parallelogram 2', subType: 'path', path: 'M20 0 H100 L80 100 H0 Z' },\n { name: 'Clover', subType: 'path', path: 'M50 40 C40 30 25 20 25 35 C15 25 0 30 10 45 C0 50 5 65 20 60 C15 75 25 85 40 75 L50 95 L60 75 C75 85 85 75 80 60 C95 65 100 50 90 45 C100 30 85 25 75 35 C75 20 60 30 50 40 Z' },\n // Row 14\n { name: '4-Point Star', subType: 'path', path: 'M50 0 L58 38 L100 50 L58 62 L50 100 L42 62 L0 50 L42 38 Z' },\n { name: 'L Step', subType: 'path', path: 'M0 0 H50 V50 H100 V100 H0 Z' },\n { name: 'Steps', subType: 'path', path: 'M0 0 H35 V35 H65 V65 H100 V100 H0 Z' },\n { name: 'Steps 2', subType: 'path', path: 'M0 0 H30 V30 H50 V0 H80 V50 H100 V100 H0 Z' },\n // Row 15 — organic blobs\n { name: 'Blob 1', subType: 'path', path: 'M60 10 C85 10 95 30 90 50 C95 75 80 95 55 90 C30 95 10 80 10 55 C5 30 30 10 60 10 Z' },\n { name: 'Blob 2', subType: 'path', path: 'M55 5 C80 5 100 25 95 50 C100 75 80 95 55 95 C30 100 5 80 10 55 C0 30 25 5 55 5 Z' },\n { name: 'Blob 3', subType: 'path', path: 'M50 5 C75 0 100 20 95 45 C100 70 80 100 50 95 C20 100 0 75 5 50 C0 25 25 5 50 5 Z' },\n { name: 'Blob 4', subType: 'path', path: 'M60 5 C90 10 100 35 85 60 C95 85 70 100 45 95 C20 95 0 70 10 45 C5 20 30 0 60 5 Z' },\n];\n\n// ── SVG thumbnail for shapes ────────────────────────────────────────\nconst FILL_COLOR = '#BFBFBF';\n\n// Built-in shape → SVG path mapping for thumbnails\nconst builtInPaths = {\n rect: 'M5 5 H95 V95 H5 Z',\n circle: 'M50 5 A45 45 0 1 1 50 95 A45 45 0 1 1 50 5 Z',\n star: 'M50 5 L62 38 L97 38 L68 60 L79 93 L50 73 L21 93 L32 60 L3 38 L38 38 Z',\n triangle: 'M50 5 L95 90 H5 Z',\n diamond: 'M50 5 L95 50 L50 95 L5 50 Z',\n hexagon: 'M25 10 H75 L95 50 L75 90 H25 L5 50 Z',\n polygon: 'M50 5 L95 38 L80 90 H20 L5 38 Z',\n};\n\nconst ShapeThumbnail = ({ shape }) => {\n const svgPath = shape.path || builtInPaths[shape.subType] || builtInPaths.rect;\n return (\n <svg viewBox=\"0 0 100 100\" width=\"100%\" height=\"100%\" style={{ display: 'block' }}>\n <path d={svgPath} fill={FILL_COLOR} />\n </svg>\n );\n};\n\n// ── Line thumbnail ──────────────────────────────────────────────────\nconst LineThumbnail = ({ line }) => {\n const s = line.svgLine || {};\n return (\n <svg viewBox=\"0 0 80 20\" width=\"100%\" height=\"20\" style={{ display: 'block' }}>\n {s.startDot && <circle cx=\"6\" cy=\"10\" r=\"4\" fill={FILL_COLOR} />}\n {s.startSquare && <rect x=\"2\" y=\"6\" width=\"8\" height=\"8\" fill={FILL_COLOR} />}\n <line\n x1={s.startDot || s.startSquare ? 12 : 2}\n y1=\"10\"\n x2={s.marker ? 65 : 78}\n y2=\"10\"\n stroke={FILL_COLOR}\n strokeWidth=\"2.5\"\n strokeDasharray={s.strokeDasharray === 'none' ? undefined : s.strokeDasharray}\n strokeLinecap=\"round\"\n />\n {s.marker && (\n <polygon points=\"62,4 78,10 62,16\" fill={FILL_COLOR} />\n )}\n </svg>\n );\n};\n\n// ── Panel ───────────────────────────────────────────────────────────\nconst ElementsPanelContent = observer(({ store }) => {\n const addShape = (shape) => {\n const page = store.activePage;\n if (!page) return;\n\n const size = Math.min(store.width, store.height) * 0.2;\n const isRect = shape.subType === 'rect';\n const w = isRect ? size * 1.5 : size;\n const h = isRect ? size * 0.8 : size;\n\n const props = {\n type: 'figure',\n subType: shape.subType,\n x: store.width / 2 - w / 2,\n y: store.height / 2 - h / 2,\n width: w,\n height: h,\n fill: FILL_COLOR,\n stroke: '',\n strokeWidth: 0,\n };\n if (shape.path) {\n props.pathData = shape.path;\n }\n page.addElement(props);\n store.history.addUndoState();\n };\n\n const addLine = (line) => {\n const page = store.activePage;\n if (!page) return;\n\n const lineWidth = Math.min(store.width, store.height) * 0.4;\n page.addElement({\n type: 'line',\n x: store.width / 2 - lineWidth / 2,\n y: store.height / 2,\n width: lineWidth,\n height: 4,\n color: '#000000',\n endHead: line.endHead || '',\n startHead: line.startHead || '',\n dash: line.dash || [],\n });\n store.history.addUndoState();\n };\n\n const shapeBoxSx = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n aspectRatio: '1',\n borderRadius: '8px',\n cursor: 'pointer',\n padding: '10px',\n '&:hover': {\n backgroundColor: 'rgba(0,0,0,0.06)',\n },\n transition: 'background 0.15s ease',\n };\n\n const lineBoxSx = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '8px',\n cursor: 'pointer',\n padding: '12px 8px',\n '&:hover': {\n backgroundColor: 'rgba(0,0,0,0.06)',\n },\n transition: 'background 0.15s ease',\n };\n\n return (\n <Box sx={{ p: 1.5, overflowY: 'auto' }}>\n {/* Lines */}\n <Typography variant=\"subtitle2\" sx={{ mb: 1, color: '#555', fontSize: '13px' }}>\n {t('sidePanel.lines', 'Lines')}\n </Typography>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: 'repeat(3, 1fr)',\n gap: '4px',\n mb: 2.5,\n }}\n >\n {LINES.map((line, idx) => (\n <Box key={idx} onClick={() => addLine(line)} sx={lineBoxSx}>\n <LineThumbnail line={line} />\n </Box>\n ))}\n </Box>\n\n {/* Shapes */}\n <Typography variant=\"subtitle2\" sx={{ mb: 1, color: '#555', fontSize: '13px' }}>\n {t('sidePanel.shapes', 'Shapes')}\n </Typography>\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: 'repeat(4, 1fr)',\n gap: '4px',\n }}\n >\n {SHAPES.map((shape, idx) => (\n <Box key={idx} onClick={() => addShape(shape)} sx={shapeBoxSx}>\n <ShapeThumbnail shape={shape} />\n </Box>\n ))}\n </Box>\n </Box>\n );\n});\n\nexport const ElementsSection = {\n name: 'elements',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.elements', 'Elements')} {...props}>\n <CategoryIcon />\n </SectionTab>\n ),\n Panel: ElementsPanelContent,\n};\n","export function getImageSize(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n resolve({ width: img.naturalWidth, height: img.naturalHeight });\n };\n img.onerror = (err) => {\n reject(err || new Error('Failed to load image'));\n };\n img.crossOrigin = 'anonymous';\n img.src = url;\n });\n}\n\nexport function loadImage(url) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img);\n img.onerror = (err) => reject(err || new Error('Failed to load image'));\n img.crossOrigin = 'anonymous';\n img.src = url;\n });\n}\n\nexport function cropImage({ src, x, y, width, height, outputWidth, outputHeight }) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = outputWidth || width;\n canvas.height = outputHeight || height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(\n img,\n x,\n y,\n width,\n height,\n 0,\n 0,\n canvas.width,\n canvas.height\n );\n resolve(canvas.toDataURL('image/png'));\n };\n img.onerror = (err) => reject(err || new Error('Failed to crop image'));\n img.crossOrigin = 'anonymous';\n img.src = src;\n });\n}\n","import React, { useState, useCallback, useRef } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, Button, IconButton } from '@mui/material';\nimport CloudUploadIcon from '@mui/icons-material/CloudUpload';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { SectionTab } from './tab-button';\nimport { getImageSize } from '../utils/image';\nimport { t } from '../config';\n\nconst UploadPanelContent = observer(({ store }) => {\n const [images, setImages] = useState([]);\n const [isDragging, setIsDragging] = useState(false);\n const fileInputRef = useRef(null);\n\n const processFiles = useCallback(\n async (files) => {\n const newImages = [];\n for (const file of files) {\n if (!file.type.startsWith('image/')) continue;\n const url = URL.createObjectURL(file);\n try {\n const { width, height } = await getImageSize(url);\n newImages.push({\n id: `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,\n src: url,\n name: file.name,\n width,\n height,\n });\n } catch {\n URL.revokeObjectURL(url);\n }\n }\n setImages((prev) => [...prev, ...newImages]);\n },\n []\n );\n\n const handleDrop = useCallback(\n (e) => {\n e.preventDefault();\n setIsDragging(false);\n if (e.dataTransfer.files?.length) {\n processFiles(Array.from(e.dataTransfer.files));\n }\n },\n [processFiles]\n );\n\n const handleDragOver = useCallback((e) => {\n e.preventDefault();\n setIsDragging(true);\n }, []);\n\n const handleDragLeave = useCallback((e) => {\n e.preventDefault();\n setIsDragging(false);\n }, []);\n\n const handleFileInput = useCallback(\n (e) => {\n if (e.target.files?.length) {\n processFiles(Array.from(e.target.files));\n }\n e.target.value = '';\n },\n [processFiles]\n );\n\n const addImageToCanvas = useCallback(\n (img) => {\n const page = store.activePage;\n if (!page) return;\n\n const scale = Math.min(\n store.width / img.width,\n store.height / img.height,\n 1\n );\n const w = img.width * scale;\n const h = img.height * scale;\n\n page.addElement({\n type: 'image',\n src: img.src,\n x: store.width / 2 - w / 2,\n y: store.height / 2 - h / 2,\n width: w,\n height: h,\n });\n store.history.addUndoState();\n },\n [store]\n );\n\n const removeImage = useCallback((id) => {\n setImages((prev) => {\n const img = prev.find((i) => i.id === id);\n if (img) URL.revokeObjectURL(img.src);\n return prev.filter((i) => i.id !== id);\n });\n }, []);\n\n return (\n <Box sx={{ p: 1.5, display: 'flex', flexDirection: 'column', height: '100%' }}>\n {/* Drop zone */}\n <Box\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onClick={() => fileInputRef.current?.click()}\n sx={{\n border: '2px dashed',\n borderColor: isDragging ? '#0d83cd' : '#ccc',\n borderRadius: '8px',\n p: 3,\n textAlign: 'center',\n cursor: 'pointer',\n backgroundColor: isDragging ? 'rgba(13,131,205,0.06)' : 'transparent',\n transition: 'all 0.2s ease',\n mb: 2,\n '&:hover': {\n borderColor: '#0d83cd',\n backgroundColor: 'rgba(13,131,205,0.04)',\n },\n }}\n >\n <CloudUploadIcon sx={{ fontSize: 36, color: '#999', mb: 1 }} />\n <Typography variant=\"body2\" sx={{ color: '#666', fontSize: '13px' }}>\n {t('sidePanel.uploadTip', 'Drop images here or click to upload')}\n </Typography>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n multiple\n onChange={handleFileInput}\n style={{ display: 'none' }}\n />\n </Box>\n\n {/* Uploaded images grid */}\n {images.length > 0 && (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: 'repeat(2, 1fr)',\n gap: '8px',\n overflowY: 'auto',\n flex: 1,\n }}\n >\n {images.map((img) => (\n <Box\n key={img.id}\n sx={{\n position: 'relative',\n paddingTop: '100%',\n borderRadius: '6px',\n overflow: 'hidden',\n cursor: 'pointer',\n border: '1px solid #e0e0e0',\n '&:hover .upload-delete-btn': {\n opacity: 1,\n },\n '&:hover': {\n borderColor: '#0d83cd',\n },\n }}\n onClick={() => addImageToCanvas(img)}\n >\n <Box\n sx={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: '#f5f5f5',\n }}\n >\n <img\n src={img.src}\n alt={img.name}\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n }}\n />\n </Box>\n <IconButton\n className=\"upload-delete-btn\"\n size=\"small\"\n onClick={(e) => {\n e.stopPropagation();\n removeImage(img.id);\n }}\n sx={{\n position: 'absolute',\n top: 2,\n right: 2,\n opacity: 0,\n backgroundColor: 'rgba(255,255,255,0.85)',\n transition: 'opacity 0.15s ease',\n '&:hover': {\n backgroundColor: 'rgba(255,255,255,1)',\n },\n }}\n >\n <DeleteIcon sx={{ fontSize: 16 }} />\n </IconButton>\n </Box>\n ))}\n </Box>\n )}\n </Box>\n );\n});\n\nexport const UploadSection = {\n name: 'upload',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.upload', 'Upload')} {...props}>\n <CloudUploadIcon />\n </SectionTab>\n ),\n Panel: UploadPanelContent,\n};\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport {\n Box,\n Typography,\n IconButton,\n Switch,\n Slider,\n TextField,\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { t } from '../config';\n\nconst FILTER_PRESETS = [\n { name: 'Grayscale', key: 'grayscale', bg: '#e0e0e0', color: '#888' },\n { name: 'Sepia', key: 'sepia', bg: '#f5e6c8', color: '#a67c52' },\n { name: 'Cold', key: 'cold', bg: '#d0e4f7', color: '#6a9fd8' },\n { name: 'Natural', key: 'natural', bg: '#f0f0f0', color: '#777' },\n { name: 'Warm', key: 'warm', bg: '#fbe8d3', color: '#c08050' },\n];\n\nconst EffectRow = ({ label, enabled, onToggle, value, onChange, min, max, step, children }) => (\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{label}</Typography>\n <Switch size=\"small\" checked={enabled} onChange={(e) => onToggle(e.target.checked)} />\n </Box>\n {enabled && (\n <>\n {children}\n {value !== undefined && (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <Slider\n size=\"small\"\n value={value}\n onChange={(_, v) => onChange(v)}\n min={min || 0}\n max={max || 100}\n step={step || 1}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={typeof value === 'number' ? Math.round(value * 10) / 10 : value}\n onChange={(e) => {\n const v = parseFloat(e.target.value);\n if (!isNaN(v)) onChange(v);\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n inputProps={{ min, max, step }}\n />\n </Box>\n )}\n </>\n )}\n </Box>\n);\n\nconst ImageEffectsPanel = observer(({ store }) => {\n const panel = store._toolbarPanel;\n if (!panel || panel.type !== 'effects') return null;\n\n const element = store.getElementById(panel.elementId);\n if (!element) return null;\n\n const handleClose = () => store.closeToolbarPanel();\n\n const commit = () => store.history.addUndoState();\n\n const resetAll = { grayscaleEnabled: false, sepiaEnabled: false, warmEnabled: false, coldEnabled: false, brightnessEnabled: false, brightness: 0, blurEnabled: false };\n\n const applyPreset = (key) => {\n const presets = {\n grayscale: { ...resetAll, grayscaleEnabled: true },\n sepia: { ...resetAll, sepiaEnabled: true },\n cold: { ...resetAll, coldEnabled: true },\n natural: { ...resetAll },\n warm: { ...resetAll, warmEnabled: true },\n };\n element.set(presets[key] || resetAll);\n commit();\n };\n\n const getActivePreset = () => {\n if (element.grayscaleEnabled) return 'grayscale';\n if (element.sepiaEnabled) return 'sepia';\n if (element.warmEnabled) return 'warm';\n if (element.coldEnabled) return 'cold';\n return null;\n };\n\n return (\n <Box\n sx={{\n width: 280,\n height: '100%',\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: '#fff',\n borderRight: '1px solid #e0e0e0',\n flexShrink: 0,\n p: 2,\n }}\n >\n {/* Header */}\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600 }}>{t('toolbar.effects', 'Effects')}</Typography>\n <IconButton size=\"small\" onClick={handleClose}>\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n\n {/* Filter presets */}\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 1, mb: 3 }}>\n {FILTER_PRESETS.map((preset) => {\n const isActive = getActivePreset() === preset.key;\n return (\n <Box\n key={preset.key}\n onClick={() => applyPreset(preset.key)}\n sx={{\n cursor: 'pointer',\n textAlign: 'center',\n borderRadius: '8px',\n border: isActive ? '2px solid #0d83cd' : '2px solid transparent',\n p: 0.5,\n '&:hover': { backgroundColor: '#f5f5f5' },\n }}\n >\n <Box\n sx={{\n width: '100%',\n aspectRatio: '1',\n borderRadius: '6px',\n backgroundColor: preset.bg,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n mb: 0.5,\n overflow: 'hidden',\n }}\n >\n {element.src ? (\n <img\n src={element.src}\n alt={preset.name}\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n filter:\n preset.key === 'grayscale' ? 'grayscale(1)' :\n preset.key === 'sepia' ? 'sepia(1)' :\n preset.key === 'cold' ? 'saturate(0.5) hue-rotate(180deg)' :\n preset.key === 'warm' ? 'saturate(1.3) sepia(0.2)' :\n 'none',\n }}\n />\n ) : (\n <Typography variant=\"caption\" sx={{ color: preset.color, fontSize: 10 }}>\n {preset.name[0]}\n </Typography>\n )}\n </Box>\n <Typography variant=\"caption\" sx={{ fontSize: 10 }}>{preset.name}</Typography>\n </Box>\n );\n })}\n </Box>\n\n {/* Blur */}\n <EffectRow\n label={t('toolbar.blur', 'Blur')}\n enabled={element.blurEnabled}\n onToggle={(v) => { element.set({ blurEnabled: v }); commit(); }}\n value={element.blurRadius}\n onChange={(v) => element.set({ blurRadius: v })}\n min={0}\n max={40}\n step={1}\n />\n\n {/* Brightness */}\n <EffectRow\n label={t('toolbar.brightness', 'Brightness')}\n enabled={element.brightnessEnabled}\n onToggle={(v) => { element.set({ brightnessEnabled: v }); commit(); }}\n value={Math.round(element.brightness * 100)}\n onChange={(v) => element.set({ brightness: v / 100 })}\n min={-100}\n max={100}\n step={1}\n />\n\n {/* Border */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.border', 'Border')}</Typography>\n <Switch\n size=\"small\"\n checked={element.borderSize > 0}\n onChange={(e) => {\n element.set({ borderSize: e.target.checked ? 2 : 0 });\n commit();\n }}\n />\n </Box>\n {element.borderSize > 0 && (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <input\n type=\"color\"\n value={element.borderColor || '#000000'}\n onChange={(e) => { element.set({ borderColor: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.borderSize}\n onChange={(e) => {\n const v = parseInt(e.target.value);\n if (!isNaN(v) && v >= 0) { element.set({ borderSize: v }); commit(); }\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n inputProps={{ min: 0 }}\n />\n </Box>\n )}\n </Box>\n\n {/* Corner Radius */}\n <EffectRow\n label={t('toolbar.cornerRadius', 'Corner Radius')}\n enabled={element.cornerRadius > 0}\n onToggle={(v) => { element.set({ cornerRadius: v ? 10 : 0 }); commit(); }}\n value={element.cornerRadius}\n onChange={(v) => element.set({ cornerRadius: v })}\n min={0}\n max={Math.min(element.width, element.height) / 2}\n step={1}\n />\n\n {/* Shadow */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.shadow', 'Shadow')}</Typography>\n <Switch\n size=\"small\"\n checked={element.shadowEnabled}\n onChange={(e) => { element.set({ shadowEnabled: e.target.checked }); commit(); }}\n />\n </Box>\n {element.shadowEnabled && (\n <>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.blur', 'Blur')}</Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n <Slider\n size=\"small\"\n value={element.shadowBlur}\n onChange={(_, v) => element.set({ shadowBlur: v })}\n min={0}\n max={50}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.shadowBlur}\n onChange={(e) => {\n const v = parseInt(e.target.value);\n if (!isNaN(v)) element.set({ shadowBlur: v });\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n />\n </Box>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.offsetX', 'Offset X')}</Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n <Slider\n size=\"small\"\n value={element.shadowOffsetX}\n onChange={(_, v) => element.set({ shadowOffsetX: v })}\n min={-50}\n max={50}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.shadowOffsetX}\n onChange={(e) => {\n const v = parseInt(e.target.value);\n if (!isNaN(v)) element.set({ shadowOffsetX: v });\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n />\n </Box>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.offsetY', 'Offset Y')}</Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1, mb: 1 }}>\n <Slider\n size=\"small\"\n value={element.shadowOffsetY}\n onChange={(_, v) => element.set({ shadowOffsetY: v })}\n min={-50}\n max={50}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.shadowOffsetY}\n onChange={(e) => {\n const v = parseInt(e.target.value);\n if (!isNaN(v)) element.set({ shadowOffsetY: v });\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n />\n </Box>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.color', 'Color')}</Typography>\n <input\n type=\"color\"\n value={element.shadowColor || '#000000'}\n onChange={(e) => { element.set({ shadowColor: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n </>\n )}\n </Box>\n </Box>\n );\n});\n\nImageEffectsPanel.displayName = 'ImageEffectsPanel';\nexport { ImageEffectsPanel };\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, IconButton } from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { t } from '../config';\n\nconst MASK_SHAPES = [\n {\n name: 'Circle',\n clipFunc: (ctx, w, h) => {\n ctx.beginPath();\n ctx.ellipse(w / 2, h / 2, w / 2, h / 2, 0, 0, Math.PI * 2);\n ctx.closePath();\n },\n preview: 'M50,5 A45,45 0 1,1 50,95 A45,45 0 1,1 50,5 Z',\n clipId: 'circle',\n },\n {\n name: 'Triangle',\n clipFunc: (ctx, w, h) => {\n ctx.beginPath();\n ctx.moveTo(w / 2, 0);\n ctx.lineTo(w, h);\n ctx.lineTo(0, h);\n ctx.closePath();\n },\n preview: 'M50,5 L95,95 L5,95 Z',\n clipId: 'triangle',\n },\n {\n name: 'Star',\n clipFunc: (ctx, w, h) => {\n const cx = w / 2, cy = h / 2;\n const outerR = Math.min(w, h) / 2;\n const innerR = outerR * 0.4;\n const points = 5;\n ctx.beginPath();\n for (let i = 0; i < points * 2; i++) {\n const r = i % 2 === 0 ? outerR : innerR;\n const angle = (Math.PI * i) / points - Math.PI / 2;\n const x = cx + r * Math.cos(angle);\n const y = cy + r * Math.sin(angle);\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.closePath();\n },\n preview: 'M50,5 L61,38 L97,38 L68,60 L79,95 L50,73 L21,95 L32,60 L3,38 L39,38 Z',\n clipId: 'star',\n },\n {\n name: 'Heart',\n clipFunc: (ctx, w, h) => {\n ctx.beginPath();\n const topY = h * 0.3;\n ctx.moveTo(w / 2, h * 0.9);\n ctx.bezierCurveTo(w * 0.1, h * 0.55, -w * 0.1, topY * 0.5, w * 0.25, topY * 0.3);\n ctx.bezierCurveTo(w * 0.4, 0, w / 2, topY * 0.6, w / 2, topY);\n ctx.bezierCurveTo(w / 2, topY * 0.6, w * 0.6, 0, w * 0.75, topY * 0.3);\n ctx.bezierCurveTo(w * 1.1, topY * 0.5, w * 0.9, h * 0.55, w / 2, h * 0.9);\n ctx.closePath();\n },\n preview: 'M50,88 C15,55 -5,20 25,10 C40,3 50,15 50,25 C50,15 60,3 75,10 C105,20 85,55 50,88 Z',\n clipId: 'heart',\n },\n {\n name: 'Hexagon',\n clipFunc: (ctx, w, h) => {\n const cx = w / 2, cy = h / 2;\n const r = Math.min(w, h) / 2;\n ctx.beginPath();\n for (let i = 0; i < 6; i++) {\n const angle = (Math.PI * 2 * i) / 6 - Math.PI / 2;\n const x = cx + r * Math.cos(angle);\n const y = cy + r * Math.sin(angle);\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.closePath();\n },\n preview: 'M50,5 L93,27 L93,73 L50,95 L7,73 L7,27 Z',\n clipId: 'hexagon',\n },\n {\n name: 'Diamond',\n clipFunc: (ctx, w, h) => {\n ctx.beginPath();\n ctx.moveTo(w / 2, 0);\n ctx.lineTo(w, h / 2);\n ctx.lineTo(w / 2, h);\n ctx.lineTo(0, h / 2);\n ctx.closePath();\n },\n preview: 'M50,5 L95,50 L50,95 L5,50 Z',\n clipId: 'diamond',\n },\n {\n name: 'Pentagon',\n clipFunc: (ctx, w, h) => {\n const cx = w / 2, cy = h / 2;\n const r = Math.min(w, h) / 2;\n ctx.beginPath();\n for (let i = 0; i < 5; i++) {\n const angle = (Math.PI * 2 * i) / 5 - Math.PI / 2;\n const x = cx + r * Math.cos(angle);\n const y = cy + r * Math.sin(angle);\n if (i === 0) ctx.moveTo(x, y);\n else ctx.lineTo(x, y);\n }\n ctx.closePath();\n },\n preview: 'M50,5 L95,38 L77,95 L23,95 L5,38 Z',\n clipId: 'pentagon',\n },\n {\n name: 'Rounded Rect',\n clipFunc: (ctx, w, h) => {\n const r = Math.min(w, h) * 0.15;\n ctx.beginPath();\n ctx.moveTo(r, 0);\n ctx.lineTo(w - r, 0);\n ctx.quadraticCurveTo(w, 0, w, r);\n ctx.lineTo(w, h - r);\n ctx.quadraticCurveTo(w, h, w - r, h);\n ctx.lineTo(r, h);\n ctx.quadraticCurveTo(0, h, 0, h - r);\n ctx.lineTo(0, r);\n ctx.quadraticCurveTo(0, 0, r, 0);\n ctx.closePath();\n },\n preview: 'M15,5 L85,5 Q95,5 95,15 L95,85 Q95,95 85,95 L15,95 Q5,95 5,85 L5,15 Q5,5 15,5 Z',\n clipId: 'rounded-rect',\n },\n {\n name: 'Cross',\n clipFunc: (ctx, w, h) => {\n const t = 0.3;\n ctx.beginPath();\n ctx.moveTo(w * t, 0);\n ctx.lineTo(w * (1 - t), 0);\n ctx.lineTo(w * (1 - t), h * t);\n ctx.lineTo(w, h * t);\n ctx.lineTo(w, h * (1 - t));\n ctx.lineTo(w * (1 - t), h * (1 - t));\n ctx.lineTo(w * (1 - t), h);\n ctx.lineTo(w * t, h);\n ctx.lineTo(w * t, h * (1 - t));\n ctx.lineTo(0, h * (1 - t));\n ctx.lineTo(0, h * t);\n ctx.lineTo(w * t, h * t);\n ctx.closePath();\n },\n preview: 'M30,5 L70,5 L70,30 L95,30 L95,70 L70,70 L70,95 L30,95 L30,70 L5,70 L5,30 L30,30 Z',\n clipId: 'cross',\n },\n];\n\n// Export shapes so the canvas renderer can look them up\nexport { MASK_SHAPES };\n\nconst ImageMaskPanel = observer(({ store }) => {\n const panel = store._toolbarPanel;\n if (!panel || panel.type !== 'mask') return null;\n\n const element = store.getElementById(panel.elementId);\n if (!element) return null;\n\n const handleClose = () => store.closeToolbarPanel();\n\n const applyMask = (shape) => {\n element.set({ clipSrc: shape.clipId });\n store.history.addUndoState();\n };\n\n const removeMask = () => {\n element.set({ clipSrc: '' });\n store.history.addUndoState();\n };\n\n const hasMask = !!element.clipSrc;\n\n return (\n <Box\n sx={{\n width: 280,\n height: '100%',\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: '#fff',\n borderRight: '1px solid #e0e0e0',\n flexShrink: 0,\n p: 2,\n }}\n >\n {/* Header */}\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600 }}>{t('toolbar.clip', 'Apply Mask')}</Typography>\n <IconButton size=\"small\" onClick={handleClose}>\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n\n {/* Image preview */}\n {element.src && (\n <Box sx={{ mb: 2, textAlign: 'center' }}>\n <img\n src={element.src}\n alt=\"Selected\"\n style={{\n maxWidth: '100%',\n maxHeight: 120,\n objectFit: 'contain',\n borderRadius: 6,\n border: '1px solid #e0e0e0',\n }}\n />\n </Box>\n )}\n\n {hasMask && (\n <Box\n onClick={removeMask}\n sx={{\n mb: 2,\n py: 1,\n textAlign: 'center',\n cursor: 'pointer',\n borderRadius: '6px',\n border: '1px solid #d32f2f',\n color: '#d32f2f',\n fontWeight: 600,\n fontSize: 13,\n '&:hover': { backgroundColor: '#fbe9e7' },\n }}\n >\n {t('toolbar.removeMask', 'Remove mask')}\n </Box>\n )}\n\n {/* Shape grid */}\n <Box sx={{ display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: 1 }}>\n {MASK_SHAPES.map((shape) => {\n const isActive = element.clipSrc === shape.clipId;\n return (\n <Box\n key={shape.clipId}\n onClick={() => applyMask(shape)}\n sx={{\n cursor: 'pointer',\n textAlign: 'center',\n borderRadius: '8px',\n border: isActive ? '2px solid #0d83cd' : '2px solid transparent',\n p: 0.5,\n '&:hover': { backgroundColor: '#f5f5f5' },\n }}\n >\n <Box\n sx={{\n width: '100%',\n aspectRatio: '1',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <svg viewBox=\"0 0 100 100\" width=\"100%\" height=\"100%\">\n <path d={shape.preview} fill=\"#e0e0e0\" stroke=\"#999\" strokeWidth=\"1\" />\n </svg>\n </Box>\n <Typography variant=\"caption\" sx={{ fontSize: 10 }}>{shape.name}</Typography>\n </Box>\n );\n })}\n </Box>\n </Box>\n );\n});\n\nImageMaskPanel.displayName = 'ImageMaskPanel';\nexport { ImageMaskPanel };\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport {\n Box,\n Typography,\n IconButton,\n Switch,\n Slider,\n TextField,\n} from '@mui/material';\nimport CloseIcon from '@mui/icons-material/Close';\nimport { t } from '../config';\n\nconst SliderRow = ({ label, value, onChange, min = 0, max = 100, step = 1 }) => (\n <Box sx={{ mb: 1 }}>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{label}</Typography>\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <Slider\n size=\"small\"\n value={value}\n onChange={(_, v) => onChange(v)}\n min={min}\n max={max}\n step={step}\n sx={{ flex: 1 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={typeof value === 'number' ? Math.round(value * 10) / 10 : value}\n onChange={(e) => {\n const v = parseFloat(e.target.value);\n if (!isNaN(v)) onChange(v);\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n inputProps={{ min, max, step }}\n />\n </Box>\n </Box>\n);\n\nconst TextEffectsPanel = observer(({ store }) => {\n const panel = store._toolbarPanel;\n if (!panel || panel.type !== 'effects') return null;\n\n const element = store.getElementById(panel.elementId);\n if (!element || element.type !== 'text') return null;\n\n const handleClose = () => store.closeToolbarPanel();\n const commit = () => store.history.addUndoState();\n\n return (\n <Box\n sx={{\n width: 280,\n height: '100%',\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: '#fff',\n borderRight: '1px solid #e0e0e0',\n flexShrink: 0,\n p: 2,\n }}\n >\n {/* Header */}\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}>\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600 }}>\n {t('toolbar.textEffects', 'Text Effects')}\n </Typography>\n <IconButton size=\"small\" onClick={handleClose}>\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n\n {/* Blur */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.blur', 'Blur')}</Typography>\n <Switch\n size=\"small\"\n checked={element.blurEnabled}\n onChange={(e) => { element.set({ blurEnabled: e.target.checked }); commit(); }}\n />\n </Box>\n {element.blurEnabled && (\n <SliderRow\n label={t('toolbar.blur', 'Blur')}\n value={element.blurRadius}\n onChange={(v) => element.set({ blurRadius: v })}\n min={0}\n max={40}\n />\n )}\n </Box>\n\n {/* Text Stroke */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.textStroke', 'Text Stroke')}</Typography>\n <Switch\n size=\"small\"\n checked={element.strokeWidth > 0}\n onChange={(e) => {\n element.set({\n strokeWidth: e.target.checked ? 2 : 0,\n stroke: element.stroke || '#000000',\n });\n commit();\n }}\n />\n </Box>\n {element.strokeWidth > 0 && (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 1 }}>\n <input\n type=\"color\"\n value={element.stroke || '#000000'}\n onChange={(e) => { element.set({ stroke: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n value={element.strokeWidth}\n onChange={(e) => {\n const v = parseFloat(e.target.value);\n if (!isNaN(v) && v >= 0) { element.set({ strokeWidth: v }); commit(); }\n }}\n onFocus={(e) => e.target.select()}\n sx={{ width: 65, '& .MuiInputBase-input': { fontSize: 12, py: 0.5, textAlign: 'center' } }}\n inputProps={{ min: 0, max: 20, step: 0.5 }}\n />\n </Box>\n )}\n </Box>\n\n {/* Background */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.background', 'Background')}</Typography>\n <Switch\n size=\"small\"\n checked={element.backgroundEnabled}\n onChange={(e) => { element.set({ backgroundEnabled: e.target.checked }); commit(); }}\n />\n </Box>\n {element.backgroundEnabled && (\n <>\n <SliderRow\n label={t('toolbar.cornerRadius', 'Corner radius')}\n value={element.backgroundCornerRadius}\n onChange={(v) => element.set({ backgroundCornerRadius: v })}\n min={0}\n max={50}\n step={0.5}\n />\n <SliderRow\n label={t('toolbar.padding', 'Padding')}\n value={element.backgroundPadding}\n onChange={(v) => element.set({ backgroundPadding: v })}\n min={0}\n max={100}\n />\n <SliderRow\n label={t('toolbar.opacity', 'Opacity')}\n value={Math.round(element.backgroundOpacity * 100)}\n onChange={(v) => element.set({ backgroundOpacity: v / 100 })}\n min={0}\n max={100}\n />\n <Box sx={{ mt: 1 }}>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.color', 'Color')}</Typography>\n <input\n type=\"color\"\n value={element.backgroundColor || '#ffffff'}\n onChange={(e) => { element.set({ backgroundColor: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n </Box>\n </>\n )}\n </Box>\n\n {/* Shadow */}\n <Box sx={{ mb: 2 }}>\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 0.5 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 500 }}>{t('toolbar.shadow', 'Shadow')}</Typography>\n <Switch\n size=\"small\"\n checked={element.shadowEnabled}\n onChange={(e) => { element.set({ shadowEnabled: e.target.checked }); commit(); }}\n />\n </Box>\n {element.shadowEnabled && (\n <>\n <SliderRow\n label={t('toolbar.blur', 'Blur')}\n value={element.shadowBlur}\n onChange={(v) => element.set({ shadowBlur: v })}\n min={0}\n max={50}\n />\n <SliderRow\n label={t('toolbar.offsetX', 'Offset X')}\n value={element.shadowOffsetX}\n onChange={(v) => element.set({ shadowOffsetX: v })}\n min={-50}\n max={50}\n />\n <SliderRow\n label={t('toolbar.offsetY', 'Offset Y')}\n value={element.shadowOffsetY}\n onChange={(v) => element.set({ shadowOffsetY: v })}\n min={-50}\n max={50}\n />\n <SliderRow\n label={t('toolbar.opacity', 'Opacity')}\n value={Math.round(element.shadowOpacity * 100)}\n onChange={(v) => element.set({ shadowOpacity: v / 100 })}\n min={0}\n max={100}\n />\n <Box sx={{ mt: 1 }}>\n <Typography variant=\"caption\" sx={{ color: '#888', display: 'block', mb: 0.5 }}>{t('toolbar.color', 'Color')}</Typography>\n <input\n type=\"color\"\n value={element.shadowColor || '#000000'}\n onChange={(e) => { element.set({ shadowColor: e.target.value }); commit(); }}\n style={{ width: 32, height: 32, border: '1px solid #ccc', borderRadius: 4, cursor: 'pointer', padding: 0 }}\n />\n </Box>\n </>\n )}\n </Box>\n </Box>\n );\n});\n\nTextEffectsPanel.displayName = 'TextEffectsPanel';\nexport { TextEffectsPanel };\n","import React, { useState, useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, IconButton } from '@mui/material';\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport { TextSection } from './text-panel';\nimport { BackgroundSection } from './background-panel';\nimport { LayersSection } from './layers-panel';\nimport { ElementsSection } from './elements-panel';\nimport { UploadSection } from './upload-panel';\nimport { ImageEffectsPanel } from '../toolbar/image-effects-panel';\nimport { ImageMaskPanel } from '../toolbar/image-mask-panel';\nimport { TextEffectsPanel } from '../toolbar/text-effects-panel';\n\nexport const DEFAULT_SECTIONS = [\n TextSection,\n ElementsSection,\n UploadSection,\n BackgroundSection,\n LayersSection,\n];\n\nconst SidePanel = observer(({ store, sections, defaultSection }) => {\n const sectionsList = sections || DEFAULT_SECTIONS;\n const [activeSection, setActiveSection] = useState(null);\n\n // Sync with store.openedSidePanel\n useEffect(() => {\n if (store.openedSidePanel) {\n const section = sectionsList.find((s) => s.name === store.openedSidePanel);\n if (section) {\n setActiveSection(section.name);\n } else if (store.openedSidePanel === '') {\n setActiveSection(null);\n }\n }\n }, [store.openedSidePanel]);\n\n // Set initial active section\n useEffect(() => {\n if (defaultSection) {\n const section = sectionsList.find((s) => s.name === defaultSection);\n if (section) {\n setActiveSection(section.name);\n }\n } else if (!activeSection && sectionsList.length > 0) {\n setActiveSection(sectionsList[0].name);\n }\n }, []);\n\n const handleTabClick = (sectionName) => {\n if (activeSection === sectionName) {\n // Toggle off\n setActiveSection(null);\n store.openSidePanel('');\n } else {\n setActiveSection(sectionName);\n store.openSidePanel(sectionName);\n }\n };\n\n const activeSectionObj = sectionsList.find((s) => s.name === activeSection);\n\n return (\n <Box\n sx={{\n display: 'flex',\n height: '100%',\n borderRight: '1px solid #e0e0e0',\n position: 'relative',\n }}\n >\n {/* Tab strip */}\n <Box\n sx={{\n width: 72,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n py: 1,\n gap: 0.5,\n borderRight: '1px solid #e0e0e0',\n backgroundColor: '#fafafa',\n overflowY: 'auto',\n flexShrink: 0,\n }}\n >\n {sectionsList.map((section) => {\n const isActive = activeSection === section.name;\n const TabComponent = section.Tab;\n if (section.visibleInList === false) return null;\n return (\n <Box key={section.name} sx={{ width: '100%', px: 0.5 }}>\n <TabComponent\n onClick={() => handleTabClick(section.name)}\n active={isActive}\n />\n </Box>\n );\n })}\n </Box>\n\n {/* Toolbar panel overlay (Effects / Mask) */}\n {store._toolbarPanel ? (\n store._toolbarPanel.type === 'effects' ? (\n (() => {\n const el = store.getElementById(store._toolbarPanel.elementId);\n if (el && el.type === 'text') return <TextEffectsPanel store={store} />;\n return <ImageEffectsPanel store={store} />;\n })()\n ) : store._toolbarPanel.type === 'mask' ? (\n <ImageMaskPanel store={store} />\n ) : null\n ) : (\n /* Normal panel content */\n activeSectionObj && (\n <Box\n sx={{\n width: 325,\n overflowY: 'auto',\n overflowX: 'hidden',\n backgroundColor: '#ffffff',\n flexShrink: 0,\n position: 'relative',\n }}\n >\n <activeSectionObj.Panel store={store} />\n </Box>\n )\n )}\n\n {/* Close / collapse button — rounded pill on right edge */}\n {activeSectionObj && (\n <Box\n onClick={() => { setActiveSection(null); store.openSidePanel(''); }}\n sx={{\n position: 'absolute',\n right: -16,\n top: '50%',\n transform: 'translateY(-50%)',\n width: 16,\n height: 52,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n backgroundColor: '#fff',\n border: '1px solid #e0e0e0',\n borderLeft: 'none',\n borderRadius: '0 10px 10px 0',\n boxShadow: '2px 0 6px rgba(0,0,0,0.06)',\n zIndex: 10,\n '&:hover': { backgroundColor: '#f5f5f5' },\n transition: 'background-color 0.15s',\n }}\n >\n <ChevronLeftIcon sx={{ fontSize: 14, color: '#aaa' }} />\n </Box>\n )}\n </Box>\n );\n});\n\nSidePanel.displayName = 'SidePanel';\nexport default SidePanel;\nexport { SidePanel };\n\n// Re-export sections for polotno-compatible import path:\n// import { TextSection } from 'labellife-design-tool/side-panel/side-panel'\nexport { TextSection } from './text-panel';\nexport { BackgroundSection } from './background-panel';\nexport { LayersSection } from './layers-panel';\nexport { ElementsSection } from './elements-panel';\nexport { UploadSection } from './upload-panel';\nexport { SectionTab } from './tab-button';\n","import React from 'react';\nimport { Box, CircularProgress, Typography } from '@mui/material';\n\nexport function ImagesGrid({\n images = [],\n getPreview,\n onSelect,\n rowsNumber = 2,\n isLoading = false,\n loadMore = false,\n itemHeight,\n}) {\n if (isLoading) {\n return (\n <Box sx={{ display: 'flex', justifyContent: 'center', py: 4 }}>\n <CircularProgress size={32} />\n </Box>\n );\n }\n\n if (!images || images.length === 0) {\n return (\n <Box sx={{ py: 2, textAlign: 'center' }}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n No items found\n </Typography>\n </Box>\n );\n }\n\n const columns = rowsNumber;\n const gap = 8;\n\n return (\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: `${gap}px`,\n overflowY: 'auto',\n flex: 1,\n }}\n >\n {images.map((item, index) => {\n const preview = getPreview ? getPreview(item) : item.src || item.url || item;\n return (\n <Box\n key={index}\n onClick={(e) => {\n if (onSelect) {\n const rect = e.currentTarget.getBoundingClientRect();\n onSelect(item, {\n x: rect.left,\n y: rect.top,\n width: rect.width,\n height: rect.height,\n });\n }\n }}\n sx={{\n cursor: 'pointer',\n borderRadius: '4px',\n overflow: 'hidden',\n border: '1px solid #e0e0e0',\n aspectRatio: '1',\n height: itemHeight || 'auto',\n '&:hover': {\n borderColor: '#0d83cd',\n boxShadow: '0 0 0 1px #0d83cd',\n },\n transition: 'all 0.15s ease',\n }}\n >\n <img\n src={preview}\n alt=\"\"\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n display: 'block',\n }}\n loading=\"lazy\"\n />\n </Box>\n );\n })}\n </Box>\n );\n}\n\nexport default ImagesGrid;\n","import React, { useState, useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Box, Typography, Select, MenuItem, FormControl, InputLabel, TextField, FormControlLabel, Checkbox, Divider, Chip, Alert, Button, IconButton } from '@mui/material';\nimport InputIcon from '@mui/icons-material/Input';\nimport TextFieldsIcon from '@mui/icons-material/TextFields';\nimport CalendarTodayIcon from '@mui/icons-material/CalendarToday';\nimport NumbersIcon from '@mui/icons-material/Numbers';\nimport ImageIcon from '@mui/icons-material/Image';\nimport RadioButtonCheckedIcon from '@mui/icons-material/RadioButtonChecked';\nimport FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';\nimport AddIcon from '@mui/icons-material/Add';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport { SectionTab } from './tab-button';\nimport { t } from '../config';\n\n// ── Image input placeholder ──────────────────────────────────────────\nconst IMAGE_PLACEHOLDER_SRC = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"400\" height=\"400\" viewBox=\"0 0 400 400\">\n <rect width=\"400\" height=\"400\" fill=\"#f0f2f5\" rx=\"12\"/>\n <rect x=\"110\" y=\"90\" width=\"180\" height=\"145\" rx=\"10\" fill=\"#dde1e7\"/>\n <circle cx=\"158\" cy=\"135\" r=\"22\" fill=\"#f0f2f5\"/>\n <polygon points=\"110,235 168,163 210,205 250,163 290,235\" fill=\"#c8cdd6\"/>\n <rect x=\"140\" y=\"268\" width=\"120\" height=\"14\" rx=\"7\" fill=\"#c8cdd6\"/>\n <rect x=\"160\" y=\"292\" width=\"80\" height=\"10\" rx=\"5\" fill=\"#dde1e7\"/>\n </svg>`\n)}`;\n\n// ── Date formatting helpers ──────────────────────────────────────────\nconst MONTH_NAMES = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n];\n\nconst DATE_FORMATS = [\n { key: 'MM-DD-YYYY', label: 'MM-DD-YYYY' },\n { key: 'MMMM-DD-YYYY', label: 'Month Name-DD-YYYY' },\n { key: 'MMMM-DD', label: 'Month Name-DD' },\n { key: 'YYYY', label: 'YYYY' },\n { key: 'MM-DD', label: 'MM-DD' },\n];\n\nfunction formatDate(date, format) {\n const mm = String(date.getMonth() + 1).padStart(2, '0');\n const dd = String(date.getDate()).padStart(2, '0');\n const yyyy = String(date.getFullYear());\n const monthName = MONTH_NAMES[date.getMonth()];\n\n switch (format) {\n case 'MM-DD-YYYY':\n return `${mm}-${dd}-${yyyy}`;\n case 'MMMM-DD-YYYY':\n return `${monthName}-${dd}-${yyyy}`;\n case 'MMMM-DD':\n return `${monthName}-${dd}`;\n case 'YYYY':\n return yyyy;\n case 'MM-DD':\n return `${mm}-${dd}`;\n default:\n return `${mm}-${dd}-${yyyy}`;\n }\n}\n\n// ── Options list editor ──────────────────────────────────────────────\nconst OptionsEditor = ({ options, onChange }) => (\n <Box sx={{ ml: 6.5, mr: 1, display: 'flex', flexDirection: 'column', gap: 0.75 }}>\n {options.map((opt, i) => (\n <Box key={i} sx={{ display: 'flex', gap: 0.5, alignItems: 'center' }}>\n <TextField\n size=\"small\"\n value={opt}\n onChange={(e) => {\n const next = [...options];\n next[i] = e.target.value;\n onChange(next);\n }}\n placeholder={`Option ${i + 1}`}\n sx={{ flex: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <IconButton\n size=\"small\"\n onClick={() => onChange(options.filter((_, j) => j !== i))}\n disabled={options.length <= 1}\n sx={{ color: '#bbb', '&:hover': { color: '#e57373' } }}\n >\n <DeleteIcon fontSize=\"small\" />\n </IconButton>\n </Box>\n ))}\n <Button\n size=\"small\"\n startIcon={<AddIcon />}\n onClick={() => onChange([...options, ''])}\n sx={{ alignSelf: 'flex-start', fontSize: 11, textTransform: 'none', color: '#0d83cd', p: 0.5 }}\n >\n Add option\n </Button>\n </Box>\n);\n\n// ── Card component ───────────────────────────────────────────────────\nconst InputFieldCard = ({ icon, label, description, onClick }) => (\n <Box\n onClick={onClick}\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1.5,\n p: 1.5,\n borderRadius: '8px',\n border: '1px solid #e0e0e0',\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: 'rgba(13,131,205,0.06)',\n borderColor: '#0d83cd',\n },\n transition: 'all 0.15s ease',\n }}\n >\n <Box\n sx={{\n width: 40,\n height: 40,\n borderRadius: '8px',\n backgroundColor: 'rgba(13,131,205,0.08)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: '#0d83cd',\n }}\n >\n {icon}\n </Box>\n <Box sx={{ minWidth: 0 }}>\n <Typography variant=\"body2\" sx={{ fontWeight: 600, fontSize: 13, lineHeight: 1.3 }}>\n {label}\n </Typography>\n {description && (\n <Typography variant=\"caption\" sx={{ color: '#888', fontSize: 11, lineHeight: 1.2 }}>\n {description}\n </Typography>\n )}\n </Box>\n </Box>\n);\n\n// ── Panel content ────────────────────────────────────────────────────\nconst InputFieldsPanelContent = observer(({ store }) => {\n const [dateFormat, setDateFormat] = useState('MM-DD-YYYY');\n const [textPrompt, setTextPrompt] = useState('');\n const [datePrompt, setDatePrompt] = useState('');\n const [integerPrompt, setIntegerPrompt] = useState('');\n const [imagePrompt, setImagePrompt] = useState('');\n const [textRequired, setTextRequired] = useState(false);\n const [dateRequired, setDateRequired] = useState(false);\n const [integerRequired, setIntegerRequired] = useState(false);\n const [imageRequired, setImageRequired] = useState(false);\n const [radioPrompt, setRadioPrompt] = useState('');\n const [radioRequired, setRadioRequired] = useState(false);\n const [radioOptions, setRadioOptions] = useState(['Option 1', 'Option 2']);\n const [listPrompt, setListPrompt] = useState('');\n const [listMinSelections, setListMinSelections] = useState(0);\n const [listMaxSelections, setListMaxSelections] = useState(2);\n const [listOptions, setListOptions] = useState(['Option 1', 'Option 2']);\n\n const addInputElement = (inputType, extra = {}) => {\n const page = store.activePage;\n if (!page) return;\n\n const scaleFactor = Math.min(store.width, store.height) / 500;\n\n if (inputType === 'image') {\n const size = Math.min(store.width, store.height) * 0.3;\n page.addElement({\n type: 'image',\n x: store.width / 2 - size / 2,\n y: store.height / 2 - size / 2,\n width: size,\n height: size,\n src: IMAGE_PLACEHOLDER_SRC,\n custom: {\n inputField: true,\n inputType: 'image',\n placeholder: t('sidePanel.inputFields.imagePlaceholder', 'Upload image'),\n promptText: extra.promptText || t('sidePanel.inputFields.defaultImagePrompt', 'Please upload an image'),\n required: extra.required || false,\n },\n });\n } else {\n let dummyText = '';\n let placeholder = '';\n\n let defaultPrompt = '';\n\n switch (inputType) {\n case 'text':\n dummyText = t('sidePanel.inputFields.sampleText', 'Sample Text');\n placeholder = t('sidePanel.inputFields.textPlaceholder', 'Enter text');\n defaultPrompt = t('sidePanel.inputFields.defaultTextPrompt', 'Please enter your text');\n break;\n case 'date':\n dummyText = formatDate(new Date(), extra.dateFormat || 'MM-DD-YYYY');\n placeholder = t('sidePanel.inputFields.datePlaceholder', 'Select date');\n defaultPrompt = t('sidePanel.inputFields.defaultDatePrompt', 'Please select a date');\n break;\n case 'integer':\n dummyText = '0';\n placeholder = t('sidePanel.inputFields.integerPlaceholder', 'Enter number');\n defaultPrompt = t('sidePanel.inputFields.defaultIntegerPrompt', 'Please enter a number');\n break;\n case 'radio':\n dummyText = (extra.options || []).filter(Boolean)[0] || 'Option 1';\n placeholder = t('sidePanel.inputFields.radioPlaceholder', 'Select an option');\n defaultPrompt = t('sidePanel.inputFields.defaultRadioPrompt', 'Please select an option');\n break;\n case 'list':\n dummyText = (extra.options || []).filter(Boolean).slice(0, 2).join(', ') || 'Option 1, Option 2';\n placeholder = t('sidePanel.inputFields.listPlaceholder', 'Select options');\n defaultPrompt = t('sidePanel.inputFields.defaultListPrompt', 'Please select options');\n break;\n default:\n dummyText = 'Input';\n placeholder = 'Input';\n defaultPrompt = 'Please provide input';\n }\n\n const fontSize = Math.round(20 * scaleFactor);\n const textWidth = Math.round(250 * scaleFactor);\n\n page.addElement({\n type: 'text',\n x: store.width / 2 - textWidth / 2,\n y: store.height / 2 - fontSize,\n width: textWidth,\n height: fontSize * 2,\n text: dummyText,\n fontSize: fontSize,\n fontFamily: 'Roboto',\n align: 'center',\n fill: '#333333',\n custom: {\n inputField: true,\n inputType: inputType,\n placeholder: placeholder,\n promptText: extra.promptText || defaultPrompt,\n required: extra.required || false,\n ...(inputType === 'date' ? { dateFormat: extra.dateFormat || 'MM-DD-YYYY' } : {}),\n ...(['radio', 'list'].includes(inputType) ? { options: (extra.options || []).filter(Boolean) } : {}),\n ...(inputType === 'list' ? { minSelections: extra.minSelections || 0, maxSelections: extra.maxSelections || 0 } : {}),\n },\n });\n }\n\n store.history.addUndoState();\n };\n\n return (\n <Box sx={{ p: 2, overflowY: 'auto', height: '100%' }}>\n <Typography variant=\"subtitle2\" sx={{ mb: 2, color: '#555', fontSize: 13 }}>\n {t('sidePanel.inputFields.title', 'Input Fields')}\n </Typography>\n <Typography variant=\"caption\" sx={{ display: 'block', mb: 2, color: '#999', fontSize: 11 }}>\n {t('sidePanel.inputFields.description', 'Add placeholder elements that require user input when the template is used.')}\n </Typography>\n\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>\n {/* Text input */}\n <InputFieldCard\n icon={<TextFieldsIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.textInput', 'Text Input')}\n description={t('sidePanel.inputFields.textInputDesc', 'Free text entry')}\n onClick={() => addInputElement('text', { promptText: textPrompt, required: textRequired })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={textPrompt}\n onChange={(e) => setTextPrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={textRequired} onChange={(e) => setTextRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n\n {/* Date input */}\n <InputFieldCard\n icon={<CalendarTodayIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.dateInput', 'Date Input')}\n description={t('sidePanel.inputFields.dateInputDesc', 'Date value with format')}\n onClick={() => addInputElement('date', { dateFormat, promptText: datePrompt, required: dateRequired })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={datePrompt}\n onChange={(e) => setDatePrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={dateRequired} onChange={(e) => setDateRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n\n {/* Date format selector */}\n <FormControl size=\"small\" sx={{ ml: 6.5, mr: 1 }}>\n <InputLabel sx={{ fontSize: 12 }}>\n {t('sidePanel.inputFields.dateFormat', 'Date format')}\n </InputLabel>\n <Select\n value={dateFormat}\n onChange={(e) => setDateFormat(e.target.value)}\n label={t('sidePanel.inputFields.dateFormat', 'Date format')}\n sx={{ fontSize: 12 }}\n >\n {DATE_FORMATS.map((fmt) => (\n <MenuItem key={fmt.key} value={fmt.key} sx={{ fontSize: 12 }}>\n {fmt.label} — {formatDate(new Date(), fmt.key)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n\n {/* Integer input */}\n <InputFieldCard\n icon={<NumbersIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.integerInput', 'Integer Input')}\n description={t('sidePanel.inputFields.integerInputDesc', 'Numeric value')}\n onClick={() => addInputElement('integer', { promptText: integerPrompt, required: integerRequired })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={integerPrompt}\n onChange={(e) => setIntegerPrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={integerRequired} onChange={(e) => setIntegerRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n\n {/* Image input */}\n <InputFieldCard\n icon={<ImageIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.imageInput', 'Image Input')}\n description={t('sidePanel.inputFields.imageInputDesc', 'Image placeholder')}\n onClick={() => addInputElement('image', { promptText: imagePrompt, required: imageRequired })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={imagePrompt}\n onChange={(e) => setImagePrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={imageRequired} onChange={(e) => setImageRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n\n {/* Radio input */}\n <InputFieldCard\n icon={<RadioButtonCheckedIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.radioInput', 'Radio Input')}\n description={t('sidePanel.inputFields.radioInputDesc', 'Single option selection')}\n onClick={() => addInputElement('radio', { promptText: radioPrompt, required: radioRequired, options: radioOptions })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={radioPrompt}\n onChange={(e) => setRadioPrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <FormControlLabel\n control={<Checkbox size=\"small\" checked={radioRequired} onChange={(e) => setRadioRequired(e.target.checked)} />}\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n sx={{ ml: 5.5 }}\n />\n <OptionsEditor options={radioOptions} onChange={setRadioOptions} />\n\n {/* List (multi-select) input */}\n <InputFieldCard\n icon={<FormatListBulletedIcon fontSize=\"small\" />}\n label={t('sidePanel.inputFields.listInput', 'List Input')}\n description={t('sidePanel.inputFields.listInputDesc', 'Multiple option selection')}\n onClick={() => addInputElement('list', { promptText: listPrompt, minSelections: listMinSelections, maxSelections: listMaxSelections, options: listOptions })}\n />\n <TextField\n size=\"small\"\n placeholder={t('sidePanel.inputFields.promptTextHint', 'Prompt text shown to user...')}\n value={listPrompt}\n onChange={(e) => setListPrompt(e.target.value)}\n sx={{ ml: 6.5, mr: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <OptionsEditor options={listOptions} onChange={setListOptions} />\n <Box sx={{ display: 'flex', gap: 1, ml: 6.5, mr: 1 }}>\n <TextField\n size=\"small\"\n type=\"number\"\n label={t('sidePanel.inputFields.minSelections', 'Min select')}\n value={listMinSelections}\n onChange={(e) => setListMinSelections(Math.max(0, parseInt(e.target.value) || 0))}\n inputProps={{ min: 0 }}\n sx={{ flex: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n label={t('sidePanel.inputFields.maxSelections', 'Max select')}\n value={listMaxSelections}\n onChange={(e) => setListMaxSelections(Math.max(0, parseInt(e.target.value) || 0))}\n inputProps={{ min: 0 }}\n sx={{ flex: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n </Box>\n <Typography variant=\"caption\" sx={{ ml: 6.5, color: '#999', fontSize: 10 }}>\n {listMinSelections > 0\n ? `Required · min ${listMinSelections}${listMaxSelections > 0 ? `, max ${listMaxSelections}` : ', no max'}`\n : `Optional · max ${listMaxSelections > 0 ? listMaxSelections : '∞'}`}\n </Typography>\n </Box>\n\n {/* ── Mark existing element as variable ─────────────────────── */}\n <Divider sx={{ my: 2 }} />\n <Typography variant=\"subtitle2\" sx={{ mb: 1, color: '#555', fontSize: 13 }}>\n {t('sidePanel.inputFields.markTitle', 'Mark Selected as Variable')}\n </Typography>\n <Typography variant=\"caption\" sx={{ display: 'block', mb: 2, color: '#999', fontSize: 11 }}>\n {t('sidePanel.inputFields.markDescription', 'Convert any selected text or image element into a variable, preserving its existing style.')}\n </Typography>\n <MarkAsVariableForm store={store} />\n </Box>\n );\n});\n\n// ── Mark-as-variable sub-form ─────────────────────────────────────────\nconst MarkAsVariableForm = observer(({ store }) => {\n const [markLabel, setMarkLabel] = useState('');\n const [markRequired, setMarkRequired] = useState(false);\n const [markInputType, setMarkInputType] = useState('text');\n const [markOptions, setMarkOptions] = useState(['Option 1', 'Option 2']);\n const [markMinSelections, setMarkMinSelections] = useState(0);\n const [markMaxSelections, setMarkMaxSelections] = useState(2);\n\n const selectedIds = store.selectedElementsIds || [];\n const selectedElement =\n selectedIds.length === 1 ? store.getElementById(selectedIds[0]) : null;\n\n const isImageElement = selectedElement?.type === 'image';\n const isTextElement = selectedElement?.type === 'text';\n const isSupportedElement = isImageElement || isTextElement;\n const isAlreadyVariable = !!selectedElement?.custom?.inputField;\n\n useEffect(() => {\n if (selectedElement && isSupportedElement) {\n setMarkLabel(selectedElement.custom?.promptText || '');\n setMarkRequired(!!selectedElement.custom?.required);\n setMarkInputType(\n isImageElement ? 'image' : (selectedElement.custom?.inputType || 'text')\n );\n setMarkOptions(selectedElement.custom?.options || ['Option 1', 'Option 2']);\n setMarkMinSelections(selectedElement.custom?.minSelections || 0);\n setMarkMaxSelections(selectedElement.custom?.maxSelections || 2);\n } else {\n setMarkLabel('');\n setMarkRequired(false);\n setMarkInputType('text');\n setMarkOptions(['Option 1', 'Option 2']);\n setMarkMinSelections(0);\n setMarkMaxSelections(2);\n }\n }, [selectedElement?.id]);\n\n const handleMark = () => {\n if (!selectedElement || !markLabel.trim()) return;\n const effectiveType = isImageElement ? 'image' : markInputType;\n selectedElement.set({\n custom: {\n ...selectedElement.custom,\n inputField: true,\n promptText: markLabel.trim(),\n inputType: effectiveType,\n required: markRequired,\n ...(['radio', 'list'].includes(effectiveType) ? { options: markOptions.filter(Boolean) } : {}),\n ...(effectiveType === 'list' ? { minSelections: markMinSelections, maxSelections: markMaxSelections } : {}),\n },\n });\n store.history.addUndoState();\n };\n\n const handleUnmark = () => {\n if (!selectedElement) return;\n const {\n inputField: _f,\n promptText: _p,\n inputType: _it,\n required: _r,\n placeholder: _pl,\n options: _o,\n minSelections: _min,\n maxSelections: _max,\n ...rest\n } = selectedElement.custom || {};\n selectedElement.set({ custom: rest });\n store.history.addUndoState();\n };\n\n if (!selectedElement) {\n return (\n <Typography variant=\"caption\" sx={{ color: '#bbb', display: 'block', textAlign: 'center', py: 1 }}>\n {t('sidePanel.inputFields.noSelection', 'Select a text or image element on the canvas')}\n </Typography>\n );\n }\n\n if (!isSupportedElement) {\n return (\n <Alert severity=\"info\" sx={{ fontSize: 11, py: 0.5 }}>\n {t('sidePanel.inputFields.unsupportedType', 'Only text and image elements can be marked as variables.')}\n </Alert>\n );\n }\n\n return (\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 1.5 }}>\n {isAlreadyVariable && (\n <Alert severity=\"success\" sx={{ fontSize: 11, py: 0.5 }}>\n {t('sidePanel.inputFields.alreadyVariable', 'Variable')}{': '}\n <strong>{selectedElement.custom.promptText}</strong>\n <Chip label={selectedElement.custom.inputType} size=\"small\" sx={{ ml: 1, fontSize: 10 }} />\n </Alert>\n )}\n\n <Box sx={{ bgcolor: '#f5f5f5', borderRadius: 1, p: 1.5 }}>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {t('sidePanel.inputFields.selectedElement', 'Selected')}:{' '}\n <strong style={{ textTransform: 'capitalize' }}>{selectedElement.type}</strong>\n </Typography>\n {isTextElement && selectedElement.text && (\n <Typography variant=\"body2\" sx={{ mt: 0.5, fontStyle: 'italic', fontSize: 11, color: '#555' }} noWrap>\n &ldquo;{selectedElement.text}&rdquo;\n </Typography>\n )}\n </Box>\n\n <TextField\n size=\"small\"\n label={t('sidePanel.inputFields.variableLabel', 'Variable Label')}\n placeholder={t('sidePanel.inputFields.variableLabelHint', 'e.g. First Name, Photo...')}\n value={markLabel}\n onChange={(e) => setMarkLabel(e.target.value)}\n fullWidth\n sx={{ '& .MuiInputBase-input': { fontSize: 12 } }}\n />\n\n {isTextElement && (\n <FormControl size=\"small\" fullWidth>\n <InputLabel sx={{ fontSize: 12 }}>\n {t('sidePanel.inputFields.inputType', 'Input Type')}\n </InputLabel>\n <Select\n value={markInputType}\n onChange={(e) => setMarkInputType(e.target.value)}\n label={t('sidePanel.inputFields.inputType', 'Input Type')}\n sx={{ fontSize: 12 }}\n >\n <MenuItem value=\"text\" sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.textInput', 'Text Input')}</MenuItem>\n <MenuItem value=\"integer\" sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.integerInput', 'Integer Input')}</MenuItem>\n <MenuItem value=\"date\" sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.dateInput', 'Date Input')}</MenuItem>\n <MenuItem value=\"radio\" sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.radioInput', 'Radio Input')}</MenuItem>\n <MenuItem value=\"list\" sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.listInput', 'List Input')}</MenuItem>\n </Select>\n </FormControl>\n )}\n\n {isTextElement && (markInputType === 'radio' || markInputType === 'list') && (\n <>\n <Typography variant=\"caption\" sx={{ color: '#888', fontSize: 11 }}>Options</Typography>\n <OptionsEditor options={markOptions} onChange={setMarkOptions} />\n </>\n )}\n\n {isTextElement && markInputType === 'list' && (\n <>\n <Box sx={{ display: 'flex', gap: 1 }}>\n <TextField\n size=\"small\"\n type=\"number\"\n label={t('sidePanel.inputFields.minSelections', 'Min select')}\n value={markMinSelections}\n onChange={(e) => setMarkMinSelections(Math.max(0, parseInt(e.target.value) || 0))}\n inputProps={{ min: 0 }}\n sx={{ flex: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n <TextField\n size=\"small\"\n type=\"number\"\n label={t('sidePanel.inputFields.maxSelections', 'Max select')}\n value={markMaxSelections}\n onChange={(e) => setMarkMaxSelections(Math.max(0, parseInt(e.target.value) || 0))}\n inputProps={{ min: 0 }}\n sx={{ flex: 1, '& .MuiInputBase-input': { fontSize: 12, py: 0.75 } }}\n />\n </Box>\n <Typography variant=\"caption\" sx={{ color: '#999', fontSize: 10 }}>\n {markMinSelections > 0\n ? `Required · min ${markMinSelections}${markMaxSelections > 0 ? `, max ${markMaxSelections}` : ', no max'}`\n : `Optional · max ${markMaxSelections > 0 ? markMaxSelections : '∞'}`}\n </Typography>\n </>\n )}\n\n {(!isTextElement || markInputType !== 'list') && (\n <FormControlLabel\n control={\n <Checkbox\n size=\"small\"\n checked={markRequired}\n onChange={(e) => setMarkRequired(e.target.checked)}\n />\n }\n label={<Typography sx={{ fontSize: 12 }}>{t('sidePanel.inputFields.required', 'Required')}</Typography>}\n />\n )}\n\n <Button\n variant=\"contained\"\n size=\"small\"\n fullWidth\n disabled={!markLabel.trim()}\n onClick={handleMark}\n sx={{ textTransform: 'none', fontSize: 12 }}\n >\n {isAlreadyVariable\n ? t('sidePanel.inputFields.updateVariable', 'Update Variable')\n : t('sidePanel.inputFields.markAsVariable', 'Mark as Variable')}\n </Button>\n\n {isAlreadyVariable && (\n <Button\n variant=\"outlined\"\n color=\"error\"\n size=\"small\"\n fullWidth\n onClick={handleUnmark}\n sx={{ textTransform: 'none', fontSize: 12 }}\n >\n {t('sidePanel.inputFields.removeVariable', 'Remove Variable')}\n </Button>\n )}\n </Box>\n );\n});\n\nexport const InputFieldsSection = {\n name: 'inputFields',\n Tab: (props) => (\n <SectionTab name={t('sidePanel.inputFields.tab', 'Input Fields')} {...props}>\n <InputIcon />\n </SectionTab>\n ),\n Panel: InputFieldsPanelContent,\n};\n"],"names":["SectionTab","_ref","name","onClick","active","children","rest","_objectWithoutProperties","_excluded","_jsxs","ButtonBase","_objectSpread","sx","display","flexDirection","alignItems","justifyContent","padding","width","minHeight","borderRadius","color","backgroundColor","transition","_jsx","Box","fontSize","mb","Typography","variant","lineHeight","textTransform","fontWeight","GLOBAL_KEY","window","_get","t","key","defaultValue","parts","split","current","_iterator","_createForOfIteratorHelper","_step","s","n","done","part","value","_typeof","err","e","f","undefined","INPUT_FIELDS_CONFIG_KEY","addTextToCanvas","store","opts","page","activePage","scaleFactor","Math","max","round","defaults","type","x","y","height","text","fontFamily","fontStyle","fill","align","addElement","history","addUndoState","TEXT_TEMPLATES","json","preview","_fontsPreloaded","preloadTemplateFonts","Promise","all","map","fetch","then","r","results","fonts","Set","forEach","data","_data$pages","pages","child","add","loadFont","TextTab","observer","_useState","useState","_useState2","_slicedToArray","loadingIdx","setLoadingIdx","useEffect","presets","label","handleTemplateClick","useCallback","_ref2","_asyncToGenerator","_regenerator","m","_callee","tmpl","idx","_data$pages2","res","templateChildren","newIds","_t","w","_context","p","a","v","id","childData","el","skipSelect","push","length","selectElements","_toConsumableArray","console","error","_x","_x2","apply","arguments","preset","Button","fullWidth","py","px","mt","gridTemplateColumns","gap","cursor","overflow","border","opacity","borderColor","boxShadow","src","alt","loading","crossOrigin","draggable","style","_uploadedFonts","_fontIdCounter","registerFont","displayName","blobUrl","document","createElement","textContent","concat","head","appendChild","familyName","styleEl","MyFontsTab","_ref3","_useState3","_useState4","setRenderKey","forceUpdate","k","fileInputRef","useRef","handleUpload","_e$target$files","file","target","files","rawName","replace","URL","createObjectURL","_registerFont","Date","now","handleDelete","font","find","_font$styleEl","parentNode","removeChild","revokeObjectURL","filter","handleFontClick","ref","accept","onChange","_fileInputRef$current","click","startIcon","FileUploadOutlinedIcon","position","textAlign","userSelect","IconButton","size","stopPropagation","bottom","right","DeleteOutlineIcon","TextPanelContent","_ref4","_useState5","_useState6","activeTab","setActiveTab","borderBottom","tab","flex","overflowY","TextSection","Tab","props","TextFieldsIcon","Panel","hsvToRgb","h","i","floor","q","tt","g","b","rgbToHsv","min","d","hexToRgb","hex","c","join","parseInt","substr","rgbToHex","toString","padStart","hueToColor","UNSPLASH_KEY","UNSPLASH_BASE","SWATCH_COLORS","PICKER_PRESETS","CHECKER_SVG","SatBrightSquare","hue","sat","bright","_ref$size","dragging","update","_ref$current","rect","getBoundingClientRect","clientX","left","clientY","top","onMove","preventDefault","onUp","addEventListener","removeEventListener","onMouseDown","background","transform","pointerEvents","HueBar","_ref2$width","_ref$current2","ColorPicker","hsv","setHsv","rgb","setRgb","hexInput","setHexInput","emit","newRgb","handleHex","val","test","handleRgb","isNaN","smallSx","TextField","onFocus","select","inputProps","disabled","flexWrap","ColorPopup","open","onClose","onBackgroundChange","_useState7","_useState8","setTab","_useState9","_useState0","solidColor","setSolidColor","_useState1","_useState10","gradColors","setGradColors","_useState11","_useState12","gradAngle","setGradAngle","_useState13","_useState14","activeStop","setActiveStop","startsWith","JSON","parse","colors","angle","handleSolid","handleGradColor","nc","stringify","handleAngle","tabStyle","pb","ClickAwayListener","onClickAway","Paper","elevation","zIndex","_Fragment","flexShrink","transformOrigin","ml","BackgroundPanelContent","_ref5","_useState15","_useState16","pickerOpen","setPickerOpen","_useState17","_useState18","searchQuery","setSearchQuery","_useState19","_useState20","photos","setPhotos","_useState21","_useState22","setLoading","_useState23","_useState24","lastSolidColor","setLastSolidColor","_useState25","_useState26","hasMore","setHasMore","_useState27","_useState28","pageNum","setPageNum","hasMoreRef","pageNumRef","currentQueryRef","debounceRef","isFirstRender","requestIdRef","observerRef","fetchingRef","bg","fetchPhotos","_ref6","query","pg","totalPages","more","_args","encodeURIComponent","Array","isArray","total_pages","prev","warn","clearTimeout","setTimeout","trim","sentinelRef","node","disconnect","IntersectionObserver","entries","isIntersecting","threshold","observe","setBackground","set","overflowX","minWidth","backgroundImage","backgroundSize","placeholder","InputProps","startAdornment","InputAdornment","SearchIcon","href","rel","textDecoration","photo","_photo$urls","_photo$urls2","thumb","urls","small","_photo$urls3","_photo$urls4","url","regular","aspectRatio","alt_description","objectFit","BackgroundSection","WallpaperIcon","ELEMENT_ICONS","image","ImageIcon","figure","CategoryIcon","line","TimelineIcon","svg","CodeIcon","LayerItem","element","index","isSelected","selectedElementsIds","includes","Icon","isLocked","locked","handleSelect","handleToggleVisibility","visible","handleToggleLock","resizable","contentEditable","styleEditable","handleMoveUp","moveUp","handleMoveDown","moveDown","deleteElements","substring","ListItem","ListItemIcon","ListItemText","primary","primaryTypographyProps","noWrap","ArrowUpwardIcon","ArrowDownwardIcon","VisibilityIcon","VisibilityOffIcon","LockIcon","LockOpenIcon","LayersPanelContent","elements","reverse","List","dense","disablePadding","LayersSection","LayersIcon","LINES","endHead","dash","svgLine","strokeDasharray","marker","startHead","startDot","startSquare","SHAPES","subType","path","FILL_COLOR","builtInPaths","circle","star","triangle","diamond","hexagon","polygon","ShapeThumbnail","shape","svgPath","viewBox","LineThumbnail","cx","cy","x1","y1","x2","y2","stroke","strokeWidth","strokeLinecap","points","ElementsPanelContent","addShape","isRect","pathData","addLine","lineWidth","shapeBoxSx","lineBoxSx","ElementsSection","getImageSize","resolve","reject","img","Image","onload","naturalWidth","naturalHeight","onerror","Error","UploadPanelContent","images","setImages","isDragging","setIsDragging","processFiles","newImages","_yield$getImageSize","_t2","random","slice","handleDrop","_e$dataTransfer$files","dataTransfer","from","handleDragOver","handleDragLeave","handleFileInput","addImageToCanvas","scale","removeImage","onDrop","onDragOver","onDragLeave","CloudUploadIcon","multiple","paddingTop","className","DeleteIcon","UploadSection","FILTER_PRESETS","EffectRow","enabled","onToggle","step","Switch","checked","Slider","_","parseFloat","ImageEffectsPanel","panel","_toolbarPanel","getElementById","elementId","handleClose","closeToolbarPanel","commit","resetAll","grayscaleEnabled","sepiaEnabled","warmEnabled","coldEnabled","brightnessEnabled","brightness","blurEnabled","applyPreset","grayscale","sepia","cold","natural","warm","getActivePreset","borderRight","CloseIcon","isActive","blurRadius","borderSize","cornerRadius","shadowEnabled","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","MASK_SHAPES","clipFunc","ctx","beginPath","ellipse","PI","closePath","clipId","moveTo","lineTo","outerR","innerR","cos","sin","topY","bezierCurveTo","quadraticCurveTo","ImageMaskPanel","applyMask","clipSrc","removeMask","hasMask","maxWidth","maxHeight","SliderRow","_ref$min","_ref$max","_ref$step","TextEffectsPanel","backgroundEnabled","backgroundCornerRadius","backgroundPadding","backgroundOpacity","shadowOpacity","DEFAULT_SECTIONS","SidePanel","sections","defaultSection","sectionsList","activeSection","setActiveSection","openedSidePanel","section","handleTabClick","sectionName","openSidePanel","activeSectionObj","TabComponent","visibleInList","borderLeft","ChevronLeftIcon","ImagesGrid","_ref$images","getPreview","onSelect","_ref$rowsNumber","rowsNumber","_ref$isLoading","isLoading","loadMore","itemHeight","CircularProgress","columns","item","currentTarget","IMAGE_PLACEHOLDER_SRC","MONTH_NAMES","DATE_FORMATS","formatDate","date","format","mm","String","getMonth","dd","getDate","yyyy","getFullYear","monthName","OptionsEditor","options","mr","opt","next","j","AddIcon","alignSelf","InputFieldCard","icon","description","InputFieldsPanelContent","dateFormat","setDateFormat","textPrompt","setTextPrompt","datePrompt","setDatePrompt","integerPrompt","setIntegerPrompt","imagePrompt","setImagePrompt","textRequired","setTextRequired","dateRequired","setDateRequired","integerRequired","setIntegerRequired","imageRequired","setImageRequired","radioPrompt","setRadioPrompt","radioRequired","setRadioRequired","radioOptions","setRadioOptions","listPrompt","setListPrompt","listMinSelections","setListMinSelections","listMaxSelections","setListMaxSelections","_useState29","_useState30","listOptions","setListOptions","addInputElement","inputType","extra","custom","inputField","promptText","required","dummyText","defaultPrompt","Boolean","textWidth","minSelections","maxSelections","FormControlLabel","control","Checkbox","CalendarTodayIcon","FormControl","InputLabel","Select","fmt","MenuItem","NumbersIcon","RadioButtonCheckedIcon","FormatListBulletedIcon","Divider","my","MarkAsVariableForm","_selectedElement$cust","_useState31","_useState32","markLabel","setMarkLabel","_useState33","_useState34","markRequired","setMarkRequired","_useState35","_useState36","markInputType","setMarkInputType","_useState37","_useState38","markOptions","setMarkOptions","_useState39","_useState40","markMinSelections","setMarkMinSelections","_useState41","_useState42","markMaxSelections","setMarkMaxSelections","selectedIds","selectedElement","isImageElement","isTextElement","isSupportedElement","isAlreadyVariable","_selectedElement$cust2","_selectedElement$cust3","_selectedElement$cust4","_selectedElement$cust5","_selectedElement$cust6","_selectedElement$cust7","handleMark","effectiveType","handleUnmark","Alert","severity","Chip","bgcolor","InputFieldsSection","InputIcon"],"mappings":"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"}