@activecollab/components 2.0.407 → 2.0.409

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/cjs/components/Icons/collection/Project.js +98 -0
  2. package/dist/cjs/components/Icons/collection/Project.js.map +1 -0
  3. package/dist/cjs/components/Icons/collection/Task.js +61 -0
  4. package/dist/cjs/components/Icons/collection/Task.js.map +1 -0
  5. package/dist/cjs/components/Icons/collection/index.js +14 -0
  6. package/dist/cjs/components/Icons/collection/index.js.map +1 -1
  7. package/dist/cjs/presentation/shared/WebhookLogsDialog.js +170 -46
  8. package/dist/cjs/presentation/shared/WebhookLogsDialog.js.map +1 -1
  9. package/dist/cjs/presentation/stackedCard/content/NoteCard.js +7 -3
  10. package/dist/cjs/presentation/stackedCard/content/NoteCard.js.map +1 -1
  11. package/dist/cjs/presentation/stackedCard/content/ProjectCard.js +136 -0
  12. package/dist/cjs/presentation/stackedCard/content/ProjectCard.js.map +1 -0
  13. package/dist/cjs/presentation/stackedCard/content/TaskCard.js +183 -56
  14. package/dist/cjs/presentation/stackedCard/content/TaskCard.js.map +1 -1
  15. package/dist/cjs/presentation/stackedCard/content/index.js +11 -0
  16. package/dist/cjs/presentation/stackedCard/content/index.js.map +1 -1
  17. package/dist/cjs/presentation/stackedCard/content/shared.js +66 -19
  18. package/dist/cjs/presentation/stackedCard/content/shared.js.map +1 -1
  19. package/dist/cjs/presentation/whiteboard/bottomDock.js +95 -32
  20. package/dist/cjs/presentation/whiteboard/bottomDock.js.map +1 -1
  21. package/dist/cjs/presentation/whiteboard/canvasElements.js +196 -8
  22. package/dist/cjs/presentation/whiteboard/canvasElements.js.map +1 -1
  23. package/dist/cjs/presentation/whiteboard/inspector.js +149 -47
  24. package/dist/cjs/presentation/whiteboard/inspector.js.map +1 -1
  25. package/dist/cjs/presentation/whiteboard/outline.js +91 -18
  26. package/dist/cjs/presentation/whiteboard/outline.js.map +1 -1
  27. package/dist/cjs/presentation/whiteboard/projectElements.js +883 -0
  28. package/dist/cjs/presentation/whiteboard/projectElements.js.map +1 -0
  29. package/dist/esm/components/Icons/collection/Project.d.ts +36 -0
  30. package/dist/esm/components/Icons/collection/Project.d.ts.map +1 -0
  31. package/dist/esm/components/Icons/collection/Project.js +91 -0
  32. package/dist/esm/components/Icons/collection/Project.js.map +1 -0
  33. package/dist/esm/components/Icons/collection/Task.d.ts +32 -0
  34. package/dist/esm/components/Icons/collection/Task.d.ts.map +1 -0
  35. package/dist/esm/components/Icons/collection/Task.js +54 -0
  36. package/dist/esm/components/Icons/collection/Task.js.map +1 -0
  37. package/dist/esm/components/Icons/collection/index.d.ts +2 -0
  38. package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
  39. package/dist/esm/components/Icons/collection/index.js +2 -0
  40. package/dist/esm/components/Icons/collection/index.js.map +1 -1
  41. package/dist/esm/presentation/shared/WebhookLogsDialog.d.ts +1 -3
  42. package/dist/esm/presentation/shared/WebhookLogsDialog.d.ts.map +1 -1
  43. package/dist/esm/presentation/shared/WebhookLogsDialog.js +164 -46
  44. package/dist/esm/presentation/shared/WebhookLogsDialog.js.map +1 -1
  45. package/dist/esm/presentation/stackedCard/content/NoteCard.d.ts +8 -1
  46. package/dist/esm/presentation/stackedCard/content/NoteCard.d.ts.map +1 -1
  47. package/dist/esm/presentation/stackedCard/content/NoteCard.js +8 -4
  48. package/dist/esm/presentation/stackedCard/content/NoteCard.js.map +1 -1
  49. package/dist/esm/presentation/stackedCard/content/ProjectCard.d.ts +64 -0
  50. package/dist/esm/presentation/stackedCard/content/ProjectCard.d.ts.map +1 -0
  51. package/dist/esm/presentation/stackedCard/content/ProjectCard.js +128 -0
  52. package/dist/esm/presentation/stackedCard/content/ProjectCard.js.map +1 -0
  53. package/dist/esm/presentation/stackedCard/content/TaskCard.d.ts +64 -2
  54. package/dist/esm/presentation/stackedCard/content/TaskCard.d.ts.map +1 -1
  55. package/dist/esm/presentation/stackedCard/content/TaskCard.js +181 -58
  56. package/dist/esm/presentation/stackedCard/content/TaskCard.js.map +1 -1
  57. package/dist/esm/presentation/stackedCard/content/index.d.ts +1 -0
  58. package/dist/esm/presentation/stackedCard/content/index.d.ts.map +1 -1
  59. package/dist/esm/presentation/stackedCard/content/index.js +1 -0
  60. package/dist/esm/presentation/stackedCard/content/index.js.map +1 -1
  61. package/dist/esm/presentation/stackedCard/content/shared.d.ts +30 -0
  62. package/dist/esm/presentation/stackedCard/content/shared.d.ts.map +1 -1
  63. package/dist/esm/presentation/stackedCard/content/shared.js +66 -19
  64. package/dist/esm/presentation/stackedCard/content/shared.js.map +1 -1
  65. package/dist/esm/presentation/whiteboard/bottomDock.d.ts +30 -7
  66. package/dist/esm/presentation/whiteboard/bottomDock.d.ts.map +1 -1
  67. package/dist/esm/presentation/whiteboard/bottomDock.js +79 -32
  68. package/dist/esm/presentation/whiteboard/bottomDock.js.map +1 -1
  69. package/dist/esm/presentation/whiteboard/canvasElements.d.ts +4 -1
  70. package/dist/esm/presentation/whiteboard/canvasElements.d.ts.map +1 -1
  71. package/dist/esm/presentation/whiteboard/canvasElements.js +158 -7
  72. package/dist/esm/presentation/whiteboard/canvasElements.js.map +1 -1
  73. package/dist/esm/presentation/whiteboard/inspector.d.ts +35 -1
  74. package/dist/esm/presentation/whiteboard/inspector.d.ts.map +1 -1
  75. package/dist/esm/presentation/whiteboard/inspector.js +170 -68
  76. package/dist/esm/presentation/whiteboard/inspector.js.map +1 -1
  77. package/dist/esm/presentation/whiteboard/outline.d.ts +23 -3
  78. package/dist/esm/presentation/whiteboard/outline.d.ts.map +1 -1
  79. package/dist/esm/presentation/whiteboard/outline.js +89 -18
  80. package/dist/esm/presentation/whiteboard/outline.js.map +1 -1
  81. package/dist/esm/presentation/whiteboard/projectElements.d.ts +267 -0
  82. package/dist/esm/presentation/whiteboard/projectElements.d.ts.map +1 -0
  83. package/dist/esm/presentation/whiteboard/projectElements.js +824 -0
  84. package/dist/esm/presentation/whiteboard/projectElements.js.map +1 -0
  85. package/dist/index.js +629 -490
  86. package/dist/index.js.map +1 -1
  87. package/dist/index.min.js +1 -1
  88. package/dist/index.min.js.map +1 -1
  89. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"inspector.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_elements","_fileElement","_outline","_Checkbox","_ChooseV","_Dot","_EditableText","_IconButton","_Icons","_Input","_Label","_Select","_SelectTrigger","_Tooltip","_Typography","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","l","iterator","u","next","done","return","isArray","elementTraits","exports","def","kind","geometry","fill","fillTransparent","stroke","text","autoHeight","TYPE_LABEL","rectangle","roundedRectangle","circle","triangle","sameColor","b","toLowerCase","StyledInspectorSidebar","styled","aside","withConfig","displayName","componentId","StyledInspectorResizer","div","StyledInspectorBody","StyledPropGroups","StyledInspectorHeader","StyledInspectorEmpty","StyledPropGroup","StyledPropRow","StyledFieldGrid","StyledControl","StyledCheckboxRow","StyledBody","StyledAutoField","StyledSegmented","NumberField","_ref","label","min","unit","onCommit","createElement","Label","size","weight","InputNumber","className","decimalLength","update","endAdornment","InputAdornment","disablePointerEvents","Caption1","color","undefined","onChange","isNaN","Math","round","AutoField","_ref2","OptionSelect","_ref3","options","triggerLabel","Select","type","disableSearch","forceCloseMenu","selected","target","SelectTrigger","TRANSPARENT_OPTION","id","textColor","colorName","hex","match","COLOR_OPTIONS","find","option","ColorPickerField","_ref4","disabled","includeTransparent","onSelect","isTransparent","CircleSlashIcon","width","height","Dot","RightInspector","_ref5","_sizes$def$id","_positions$def$id","_rotations$def$id","_names$def$id","_shape$align","_BORDER_STYLE_OPTIONS","_BORDER_STYLE_OPTIONS2","selectedId","positions","setPositions","sizes","setSizes","rotations","setRotations","shapes","setShapes","stickyStyle","setStickyStyle","links","setLinks","files","setFiles","createdShapes","locks","setLocks","_useState","useState","OUTLINE_WIDTH","_useState2","setWidth","_useState3","_useState4","resizing","setResizing","_useState5","_useState6","names","setNames","_useState7","_useState8","tab","setTab","startResize","useCallback","event","_event$currentTarget$","_event$currentTarget$2","preventDefault","startX","clientX","startWidth","currentTarget","parentElement","offsetWidth","previousUserSelect","document","body","style","userSelect","cursor","handleMove","moveEvent","OUTLINE_MAX_WIDTH","max","OUTLINE_MIN_WIDTH","handleUp","window","removeEventListener","addEventListener","CANVAS_ELEMENTS","element","linkDef","link","fileDef","file","shell","content","onMouseDown","role","renderBody","_ELEMENT_BODIES$id","html","ELEMENT_BODIES","dangerouslySetInnerHTML","__html","renderLocked","_locks$id","Checkbox","concat","checked","current","_current$id","htmlFor","renderCardGeometry","cardWidth","onWidth","_positions$id","cardPosition","x","y","Body2","_current$id2","_current$id3","renderInspectorBody","icon","headerName","groups","EditableText","variant","onSave","inputProps","maxLength","StyledChooseRow","StyledPanelChooseSlot","ChooseV2","required","_names$linkDef$id","_linkDef$url","InsertLinkIcon","url","Fragment","Input","placeholder","map","_names$fileDef$id","AttachmentIcon","base","extension","formatFileSize","traits","shape","position","rotation","typeLabel","updateShape","partial","currentFill","currentFillOpacity","fillOpacity","setFill","setFillOpacity","currentFontSize","fontSize","currentAlign","align","setFontSize","setAlign","styleFlags","toggleStyle","key","SHAPE_TYPE_ICON","NoteIcon","shapeType","autoWidth","_current$def$id$heigh","_current$def$id","_current$def$id$width","_current$def$id2","OPACITY_OPTIONS","opacity","BORDER_STYLE_OPTIONS","strokeDash","_BORDER_STYLE_OPTIONS3","THICKNESS_OPTIONS","thickness","strokeWidth","RADIUS_OPTIONS","radius","borderRadius","strokeOpacity","STYLE_OPTIONS","Tooltip","title","IconButton","active","onClick","FONT_SIZE_OPTIONS","ALIGN_OPTIONS"],"sources":["../../../../src/presentation/whiteboard/inspector.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useCallback, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport {\n BORDER_STYLE_OPTIONS,\n CANVAS_ELEMENTS,\n COLOR_OPTIONS,\n CanvasElementDef,\n ELEMENT_BODIES,\n FONT_SIZE_OPTIONS,\n OPACITY_OPTIONS,\n RADIUS_OPTIONS,\n SHAPE_TYPE_ICON,\n ShapeElementState,\n ShapeType,\n StickyTextStyle,\n THICKNESS_OPTIONS,\n TextAlign,\n ALIGN_OPTIONS,\n STYLE_OPTIONS,\n TextStyleKey,\n} from \"./elements\";\nimport { FileElementDef, formatFileSize } from \"./fileElement\";\nimport { LinkElementDef } from \"./linkElement\";\nimport {\n OUTLINE_MAX_WIDTH,\n OUTLINE_MIN_WIDTH,\n OUTLINE_WIDTH,\n StyledChooseRow,\n StyledPanelChooseSlot,\n} from \"./outline\";\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { ChooseV2 } from \"../../components/ChooseV2\";\nimport { Dot } from \"../../components/Dot\";\nimport { EditableText } from \"../../components/EditableText\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n AttachmentIcon,\n CircleSlashIcon,\n InsertLinkIcon,\n NoteIcon,\n} from \"../../components/Icons\";\nimport { Input, InputAdornment, InputNumber } from \"../../components/Input\";\nimport { Label } from \"../../components/Label\";\nimport { Select } from \"../../components/Select\";\nimport { SelectTrigger } from \"../../components/SelectTrigger\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Body2, Caption1 } from \"../../components/Typography\";\n\n/* ------------------------------------------------------------------ */\n/* Right Inspector — selected-element properties panel */\n/* ------------------------------------------------------------------ */\n\n/* Which right-docked panel is open. Only \"inspector\" is built here; \"comments\"\n is reserved for the next iteration. */\nexport type RightPanel = \"inspector\" | \"comments\" | null;\n\n/* ── Inspector capability traits ──────────────────────────────────────────\n The Inspector is TRAIT-DRIVEN: a selected element declares which property\n groups it supports, and only those groups render. This is the \"interface\n with implementation traits\" model — the interface is the full set of groups,\n and each element kind overrides the flags it does not support (a sticky has\n no stroke, and its height is auto because the note grows with its content).\n New element kinds slot in by returning their own trait set. */\nexport interface ElementTraits {\n geometry: boolean;\n fill: boolean;\n /* Whether this element's fill may be Transparent. Distinct from `fill`: a\n sticky HAS a fill group but must not be transparent (its colour is its\n defining property), whereas an outline-only shape is valid. Mirrors the\n app's `fillTransparent` trait. */\n fillTransparent?: boolean;\n stroke: boolean;\n text: boolean;\n autoWidth?: boolean;\n autoHeight?: boolean;\n}\n\nexport const elementTraits = (def: CanvasElementDef): ElementTraits =>\n def.kind === \"sticky\"\n ? {\n geometry: true,\n fill: true,\n fillTransparent: false,\n stroke: false,\n text: true,\n autoHeight: true,\n }\n : {\n geometry: true,\n fill: true,\n fillTransparent: true,\n stroke: true,\n text: true,\n };\n\nexport const TYPE_LABEL: Record<ShapeType, string> = {\n rectangle: \"Rectangle\",\n roundedRectangle: \"Rounded Rectangle\",\n circle: \"Circle\",\n triangle: \"Triangle\",\n};\n\nexport const sameColor = (a: string | undefined, b: string): boolean =>\n (a ?? \"\").toLowerCase() === b.toLowerCase();\n\n/* Right dock — mirrors StyledOutlineSidebar but docked on the RIGHT: border on\n the left edge, resizer on the left edge. Same 260–780 width band. */\nexport const StyledInspectorSidebar = styled.aside`\n flex-shrink: 0;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--selectable);\n background-color: var(--page-paper-main);\n font-family: -apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\",\n Arial, sans-serif;\n`;\n\n/* Grab strip on the LEFT edge, because the panel is docked right — dragging it\n left widens. Same token pair as the outline resizer: selectable grey at\n rest, the hover token while grabbed. */\nexport const StyledInspectorResizer = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n left: -2px;\n width: 5px;\n cursor: col-resize;\n z-index: 2;\n\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 2px;\n width: 1px;\n background-color: var(--selectable-active);\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n &:hover::after,\n &.resizing::after {\n opacity: 1;\n }\n`;\n\nexport const StyledInspectorBody = styled.div`\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n`;\n\n/* Wraps the property groups. The Properties/Comments switch above does the\n separating, so the first group drops its top hairline — no divider directly\n under the header, matching the left sidebar. Inner groups keep separators. */\nexport const StyledPropGroups = styled.div`\n display: flex;\n flex-direction: column;\n\n > div:first-child {\n border-top: none;\n }\n`;\n\nexport const StyledInspectorHeader = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n height: 56px;\n padding: 0 16px;\n box-sizing: border-box;\n flex-shrink: 0;\n\n /* Icon in a fixed, centred box (like the outline's type icon and the sidebar\n header) so it lines up with the live EditableText's text rather than the\n taller input box. */\n .inspector-type-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n color: var(--color-theme-700);\n }\n\n .inspector-type-icon svg {\n width: 20px;\n height: 20px;\n }\n\n .inspector-name {\n flex: 1;\n min-width: 0;\n }\n`;\n\n/* Empty state — same muted treatment the outline uses for unnamed rows. */\nexport const StyledInspectorEmpty = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n text-align: center;\n color: var(--color-theme-600);\n`;\n\n/* Non-collapsible section: bold title, no chevron / drag handle, separated from\n the section above by a hairline. */\nexport const StyledPropGroup = styled.div`\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n border-top: 1px solid var(--border-primary);\n\n .group-title {\n color: var(--color-theme-800);\n }\n`;\n\nexport const StyledPropRow = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nexport const StyledFieldGrid = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n`;\n\n/* InputNumber's wrapper is a fixed 360px and SelectTrigger a fixed 300px — both\n overflow the narrow dock, so force every inspector control to fill its cell. */\nexport const StyledControl = styled.div`\n width: 100%;\n\n &.disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n\n .c-input-wrapper {\n width: 100%;\n }\n\n .wb-inspector-trigger {\n width: 100%;\n }\n\n .wb-color-value {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* A transparent fill has no colour to show, so it renders the design-system\n CircleSlashIcon (a ring with a 45° slash) instead of an invisible dot. */\n .wb-color-value .wb-transparent-swatch {\n flex: none;\n color: var(--color-theme-500);\n }\n`;\n\n/* Locked checkbox row — the DS Checkbox renders only the box, so it is paired\n with a Label the way the design system expects. */\nexport const StyledCheckboxRow = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\n/* The element body is HTML (the API's `body` field). The Inspector renders it\n formatted and read-only for now — editing comes later. Raw text needs an\n explicit font-family (no global reset), and the child tags get light prose\n styling. */\nexport const StyledBody = styled.div`\n width: 100%;\n /* Collapsed to a reasonable height; a long body scrolls inside the field. */\n max-height: 140px;\n overflow-y: auto;\n font-family: -apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\",\n Arial, sans-serif;\n font-size: 13px;\n line-height: 1.5;\n color: var(--color-theme-800);\n\n p {\n margin: 0 0 8px;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n\n ul,\n ol {\n margin: 0 0 8px;\n padding-left: 18px;\n }\n\n li {\n margin: 2px 0;\n }\n\n strong {\n font-weight: 600;\n }\n\n em {\n font-style: italic;\n }\n\n a {\n color: var(--color-primary);\n }\n`;\n\n/* Read-only \"Auto\" field for an auto-sized dimension (a sticky's height). */\nexport const StyledAutoField = styled.div`\n height: 32px;\n display: flex;\n align-items: center;\n padding: 0 8px;\n box-sizing: border-box;\n border: 1px solid var(--color-theme-400);\n border-radius: var(--ac-br-8);\n background-color: var(--color-theme-200);\n color: var(--color-theme-600);\n font-size: 13px;\n`;\n\nexport const StyledSegmented = styled.div`\n display: flex;\n gap: 4px;\n\n /* Icon segments (text alignment): size the glyph and center it in the cell so\n each Choose reads as an equal-width icon button. */\n svg {\n display: block;\n width: 16px;\n height: 16px;\n }\n`;\n\nexport interface NumberFieldProps {\n label: string;\n value: number;\n min?: number;\n /* Unit shown as a right adornment inside the field (px, °), the same way\n InputCurrency shows the currency code. */\n unit?: string;\n onCommit: (value: number) => void;\n}\n\nexport const NumberField = ({\n label,\n value,\n min,\n unit,\n onCommit,\n}: NumberFieldProps): ReactElement => (\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n {label}\n </Label>\n <StyledControl>\n <InputNumber\n className=\"wb-inspector-num\"\n value={value}\n decimalLength={0}\n min={min}\n update\n endAdornment={\n unit ? (\n <InputAdornment disablePointerEvents>\n <Caption1 color=\"secondary\">{unit}</Caption1>\n </InputAdornment>\n ) : undefined\n }\n onChange={(next) => {\n if (next !== undefined && !Number.isNaN(next)) {\n onCommit(Math.round(next));\n }\n }}\n />\n </StyledControl>\n </StyledPropRow>\n);\n\nexport const AutoField = ({ label }: { label: string }): ReactElement => (\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n {label}\n </Label>\n <StyledAutoField>Auto</StyledAutoField>\n </StyledPropRow>\n);\n\nexport interface OptionSelectProps {\n options: { id: string | number; name: string }[];\n value: string | number;\n triggerLabel: string;\n onChange: (value: string | number) => void;\n}\n\nexport const OptionSelect = ({\n options,\n value,\n triggerLabel,\n onChange,\n}: OptionSelectProps): ReactElement => (\n <StyledControl>\n <Select\n type=\"single\"\n disableSearch\n forceCloseMenu\n options={options}\n selected={value}\n onChange={(next) => onChange(Array.isArray(next) ? next[0] : next)}\n target={\n <SelectTrigger className=\"wb-inspector-trigger\">\n {triggerLabel}\n </SelectTrigger>\n }\n />\n </StyledControl>\n);\n\nexport const TRANSPARENT_OPTION = {\n id: \"transparent\",\n name: \"Transparent\",\n color: \"transparent\",\n textColor: \"transparent\",\n};\n\n/* The name shown on the color picker's trigger, resolved from the current hex. */\nexport const colorName = (hex: string | undefined): string => {\n if (!hex || sameColor(hex, \"transparent\")) {\n return \"Transparent\";\n }\n\n const match = COLOR_OPTIONS.find((option) => sameColor(hex, option.color));\n return match ? match.name : \"Custom\";\n};\n\nexport interface ColorPickerFieldProps {\n value: string | undefined;\n disabled?: boolean;\n /* Adds \"Transparent\" as the first option, rendered as the DS CircleSlashIcon.\n Driven by the element's `fillTransparent` trait, so only SHAPE fill opts in\n — sticky fill (its colour is the point) and stroke colour never do. */\n includeTransparent?: boolean;\n onSelect: (color: string) => void;\n}\n\n/* The regular design-system named-colour picker (the one in the label dialogs):\n a Select whose trigger is a Dot + colour name, and whose menu is the standard\n dot-and-radio list. Custom colours are deferred. */\nexport const ColorPickerField = ({\n value,\n disabled,\n includeTransparent,\n onSelect,\n}: ColorPickerFieldProps): ReactElement => {\n const options = includeTransparent\n ? [TRANSPARENT_OPTION, ...COLOR_OPTIONS]\n : COLOR_OPTIONS;\n const isTransparent = !value || sameColor(value, \"transparent\");\n\n return (\n <StyledControl className={disabled ? \"disabled\" : undefined}>\n <Select\n type=\"single\"\n disableSearch\n forceCloseMenu\n options={options}\n selected={isTransparent ? \"transparent\" : value}\n onChange={(next) =>\n onSelect(String(Array.isArray(next) ? next[0] : next))\n }\n target={\n <SelectTrigger className=\"wb-inspector-trigger\">\n <span className=\"wb-color-value\">\n {isTransparent ? (\n <CircleSlashIcon\n width={14}\n height={14}\n fill=\"currentColor\"\n className=\"wb-transparent-swatch\"\n />\n ) : (\n <Dot color={value} size={14} />\n )}\n {colorName(value)}\n </span>\n </SelectTrigger>\n }\n />\n </StyledControl>\n );\n};\n\nexport interface RightInspectorProps {\n selectedId: string | null;\n positions: Record<string, { x: number; y: number }>;\n setPositions: React.Dispatch<\n React.SetStateAction<Record<string, { x: number; y: number }>>\n >;\n sizes: Record<string, { width: number; height: number }>;\n setSizes: React.Dispatch<\n React.SetStateAction<Record<string, { width: number; height: number }>>\n >;\n rotations: Record<string, number>;\n setRotations: React.Dispatch<React.SetStateAction<Record<string, number>>>;\n shapes: Record<string, ShapeElementState>;\n setShapes: React.Dispatch<\n React.SetStateAction<Record<string, ShapeElementState>>\n >;\n stickyStyle: StickyTextStyle;\n setStickyStyle: React.Dispatch<React.SetStateAction<StickyTextStyle>>;\n links: LinkElementDef[];\n setLinks: React.Dispatch<React.SetStateAction<LinkElementDef[]>>;\n files: FileElementDef[];\n setFiles: React.Dispatch<React.SetStateAction<FileElementDef[]>>;\n createdShapes: CanvasElementDef[];\n locks: Record<string, boolean>;\n setLocks: React.Dispatch<React.SetStateAction<Record<string, boolean>>>;\n}\n\nexport const RightInspector = ({\n selectedId,\n positions,\n setPositions,\n sizes,\n setSizes,\n rotations,\n setRotations,\n shapes,\n setShapes,\n stickyStyle,\n setStickyStyle,\n links,\n setLinks,\n files,\n setFiles,\n createdShapes,\n locks,\n setLocks,\n}: RightInspectorProps): ReactElement => {\n const [width, setWidth] = useState(OUTLINE_WIDTH);\n const [resizing, setResizing] = useState(false);\n /* Mock only — element display names are not persisted anywhere; they default\n to the type label until renamed here. */\n const [names, setNames] = useState<Record<string, string>>({});\n /* Which inspector tab is showing: the property groups we design, or the\n upcoming comments stream (details TBD). */\n const [tab, setTab] = useState<\"properties\" | \"comments\">(\"properties\");\n\n /* Docked right, so the grab strip is on the LEFT edge and dragging left\n widens: the delta is subtracted rather than added (see LeftSidebar). */\n const startResize = useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n const startX = event.clientX;\n const startWidth = event.currentTarget.parentElement?.offsetWidth ?? 0;\n const previousUserSelect = document.body.style.userSelect;\n\n setResizing(true);\n document.body.style.userSelect = \"none\";\n document.body.style.cursor = \"col-resize\";\n\n const handleMove = (moveEvent: MouseEvent): void => {\n const next = startWidth - (moveEvent.clientX - startX);\n setWidth(Math.min(OUTLINE_MAX_WIDTH, Math.max(OUTLINE_MIN_WIDTH, next)));\n };\n\n const handleUp = (): void => {\n setResizing(false);\n document.body.style.userSelect = previousUserSelect;\n document.body.style.cursor = \"\";\n window.removeEventListener(\"mousemove\", handleMove);\n window.removeEventListener(\"mouseup\", handleUp);\n };\n\n window.addEventListener(\"mousemove\", handleMove);\n window.addEventListener(\"mouseup\", handleUp);\n }, []);\n\n const def = selectedId\n ? [...CANVAS_ELEMENTS, ...createdShapes].find(\n (element) => element.id === selectedId\n )\n : undefined;\n const linkDef = selectedId\n ? links.find((link) => link.id === selectedId)\n : undefined;\n const fileDef = selectedId\n ? files.find((file) => file.id === selectedId)\n : undefined;\n\n const shell = (content: ReactNode): ReactElement => (\n <StyledInspectorSidebar style={{ width }}>\n <StyledInspectorResizer\n className={resizing ? \"resizing\" : \"\"}\n onMouseDown={startResize}\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"Resize inspector\"\n />\n {content}\n </StyledInspectorSidebar>\n );\n\n /* Description — inline, multi-line editable text, shown first for every\n element kind. */\n /* Read-only formatted body (HTML from the API's `body` field). No label; when\n the body is empty the field is not rendered at all. No edit yet. */\n const renderBody = (id: string): ReactNode => {\n const html = ELEMENT_BODIES[id] ?? \"\";\n if (!html) {\n return null;\n }\n\n // eslint-disable-next-line react/no-danger\n return <StyledBody dangerouslySetInnerHTML={{ __html: html }} />;\n };\n\n /* The Locked checkbox — shown for every element kind, toggling a design lock\n flag keyed by element id. */\n const renderLocked = (id: string): ReactElement => (\n <StyledCheckboxRow>\n <Checkbox\n id={`wb-lock-${id}`}\n checked={locks[id] ?? false}\n onChange={() =>\n setLocks((current) => ({ ...current, [id]: !(current[id] ?? false) }))\n }\n />\n <Label htmlFor={`wb-lock-${id}`} size=\"small\" weight=\"regular\">\n Locked\n </Label>\n </StyledCheckboxRow>\n );\n\n /* Geometry for a card (link / file): X/Y from the shared positions map, an\n editable width and an auto height (cards are content-sized). Cards cannot\n be rotated, so there is no Rotation field. */\n const renderCardGeometry = (\n id: string,\n cardWidth: number,\n onWidth: (width: number) => void\n ): ReactElement => {\n const cardPosition = positions[id] ?? { x: 0, y: 0 };\n\n return (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Geometry\n </Body2>\n <StyledFieldGrid>\n <NumberField\n label=\"X\"\n unit=\"px\"\n value={cardPosition.x}\n onCommit={(next) =>\n setPositions((current) => ({\n ...current,\n [id]: { ...(current[id] ?? { x: 0, y: 0 }), x: next },\n }))\n }\n />\n <NumberField\n label=\"Y\"\n unit=\"px\"\n value={cardPosition.y}\n onCommit={(next) =>\n setPositions((current) => ({\n ...current,\n [id]: { ...(current[id] ?? { x: 0, y: 0 }), y: next },\n }))\n }\n />\n </StyledFieldGrid>\n <StyledFieldGrid>\n <NumberField\n label=\"Width\"\n unit=\"px\"\n value={cardWidth}\n min={1}\n onCommit={onWidth}\n />\n <AutoField label=\"Height\" />\n </StyledFieldGrid>\n </StyledPropGroup>\n );\n };\n\n /* Header + panel switch + body, shared by every element kind — only the\n groups inside differ. */\n const renderInspectorBody = (\n icon: ReactNode,\n headerName: string,\n id: string,\n groups: ReactNode\n ): ReactElement => (\n <StyledInspectorBody>\n <StyledInspectorHeader>\n <span className=\"inspector-type-icon\">{icon}</span>\n <span className=\"inspector-name\">\n <EditableText\n value={headerName}\n variant=\"Header 3\"\n weight=\"bold\"\n onSave={(event) =>\n setNames((current) => ({ ...current, [id]: event.target.value }))\n }\n inputProps={{ maxLength: 120 }}\n />\n </span>\n </StyledInspectorHeader>\n\n <StyledChooseRow>\n <StyledPanelChooseSlot>\n <ChooseV2\n required\n options={[\n { id: \"properties\", name: \"Properties\" },\n { id: \"comments\", name: \"Comments\" },\n ]}\n selected={[tab]}\n onChange={(selected) =>\n setTab(selected[0] as \"properties\" | \"comments\")\n }\n />\n </StyledPanelChooseSlot>\n </StyledChooseRow>\n\n {tab === \"comments\" ? (\n <StyledInspectorEmpty>\n <Body2>The comments stream is coming soon.</Body2>\n </StyledInspectorEmpty>\n ) : (\n <StyledPropGroups>{groups}</StyledPropGroups>\n )}\n </StyledInspectorBody>\n );\n\n /* Nothing selected. */\n if (!def && !linkDef && !fileDef) {\n return shell(\n <StyledInspectorEmpty>\n <Body2>Select an element to see its properties.</Body2>\n </StyledInspectorEmpty>\n );\n }\n\n /* Link card — its URL plus the shared Locked flag. */\n if (linkDef) {\n return shell(\n renderInspectorBody(\n <InsertLinkIcon />,\n names[linkDef.id] ?? (linkDef.url || \"Link\"),\n linkDef.id,\n <>\n <StyledPropGroup>\n {renderBody(linkDef.id)}\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n URL\n </Label>\n <StyledControl>\n <Input\n value={linkDef.url ?? \"\"}\n placeholder=\"https://…\"\n onChange={(event) =>\n setLinks((current) =>\n current.map((link) =>\n link.id === linkDef.id\n ? { ...link, url: event.target.value }\n : link\n )\n )\n }\n />\n </StyledControl>\n </StyledPropRow>\n {renderLocked(linkDef.id)}\n </StyledPropGroup>\n {renderCardGeometry(linkDef.id, linkDef.width, (width) =>\n setLinks((current) =>\n current.map((link) =>\n link.id === linkDef.id ? { ...link, width } : link\n )\n )\n )}\n </>\n )\n );\n }\n\n /* File card — read-only size plus the shared Locked flag. */\n if (fileDef) {\n return shell(\n renderInspectorBody(\n <AttachmentIcon />,\n names[fileDef.id] ??\n (fileDef.file\n ? `${fileDef.file.base}.${fileDef.file.extension}`\n : \"File\"),\n fileDef.id,\n <>\n <StyledPropGroup>\n {renderBody(fileDef.id)}\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Size\n </Label>\n <StyledAutoField>\n {fileDef.file ? formatFileSize(fileDef.file.size) : \"—\"}\n </StyledAutoField>\n </StyledPropRow>\n {renderLocked(fileDef.id)}\n </StyledPropGroup>\n {renderCardGeometry(fileDef.id, fileDef.width, (width) =>\n setFiles((current) =>\n current.map((file) =>\n file.id === fileDef.id ? { ...file, width } : file\n )\n )\n )}\n </>\n )\n );\n }\n\n /* Shape / sticky from here on. */\n if (!def) {\n return shell(\n <StyledInspectorEmpty>\n <Body2>Select an element to see its properties.</Body2>\n </StyledInspectorEmpty>\n );\n }\n\n const traits = elementTraits(def);\n const shape = def.kind === \"shape\" ? shapes[def.id] : null;\n const size = sizes[def.id] ?? { width: def.width, height: def.height };\n const position = positions[def.id] ?? { x: def.x, y: def.y };\n const rotation = rotations[def.id] ?? 0;\n\n const typeLabel = shape ? TYPE_LABEL[shape.type] : \"Sticky note\";\n const name = names[def.id] ?? typeLabel;\n\n const updateShape = (partial: Partial<ShapeElementState>): void =>\n setShapes((current) => ({\n ...current,\n [def.id]: { ...current[def.id], ...partial },\n }));\n\n /* Fill is unified across kinds: a shape writes shape.fill, a sticky its note\n colour. A transparent colour means no fill. */\n const currentFill = shape ? shape.fill : stickyStyle.color;\n const currentFillOpacity = shape\n ? shape.fillOpacity\n : stickyStyle.fillOpacity;\n\n const setFill = (color: string): void => {\n if (shape) {\n updateShape({ fill: color });\n } else {\n setStickyStyle({ ...stickyStyle, color });\n }\n };\n\n const setFillOpacity = (next: number): void => {\n if (shape) {\n updateShape({ fillOpacity: next });\n } else {\n setStickyStyle({ ...stickyStyle, fillOpacity: next });\n }\n };\n\n const currentFontSize = shape ? shape.fontSize : stickyStyle.fontSize;\n const currentAlign: TextAlign = shape\n ? shape.align ?? \"left\"\n : stickyStyle.align;\n\n const setFontSize = (next: number): void => {\n if (shape) {\n updateShape({ fontSize: next });\n } else {\n setStickyStyle({ ...stickyStyle, fontSize: next });\n }\n };\n\n const setAlign = (next: TextAlign): void => {\n if (shape) {\n updateShape({ align: next });\n } else {\n setStickyStyle({ ...stickyStyle, align: next });\n }\n };\n\n const styleFlags = shape ?? stickyStyle;\n\n const toggleStyle = (key: TextStyleKey): void => {\n if (shape) {\n updateShape({ [key]: !shape[key] });\n } else {\n setStickyStyle({ ...stickyStyle, [key]: !stickyStyle[key] });\n }\n };\n\n return shell(\n renderInspectorBody(\n shape ? SHAPE_TYPE_ICON[shape.type] : <NoteIcon />,\n name,\n def.id,\n <>\n {/* Element-specific properties — no header, sits above Geometry. */}\n <StyledPropGroup>\n {renderBody(def.id)}\n {shape ? (\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Shape\n </Label>\n <OptionSelect\n options={(\n [\n \"rectangle\",\n \"roundedRectangle\",\n \"circle\",\n \"triangle\",\n ] as ShapeType[]\n ).map((shapeType) => ({\n id: shapeType,\n name: TYPE_LABEL[shapeType],\n }))}\n value={shape.type}\n triggerLabel={TYPE_LABEL[shape.type]}\n onChange={(next) => updateShape({ type: next as ShapeType })}\n />\n </StyledPropRow>\n ) : null}\n {renderLocked(def.id)}\n </StyledPropGroup>\n\n {traits.geometry ? (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Geometry\n </Body2>\n <StyledFieldGrid>\n <NumberField\n label=\"X\"\n unit=\"px\"\n value={position.x}\n onCommit={(next) =>\n setPositions((current) => ({\n ...current,\n [def.id]: { ...current[def.id], x: next },\n }))\n }\n />\n <NumberField\n label=\"Y\"\n unit=\"px\"\n value={position.y}\n onCommit={(next) =>\n setPositions((current) => ({\n ...current,\n [def.id]: { ...current[def.id], y: next },\n }))\n }\n />\n </StyledFieldGrid>\n <StyledFieldGrid>\n {traits.autoWidth ? (\n <AutoField label=\"Width\" />\n ) : (\n <NumberField\n label=\"Width\"\n unit=\"px\"\n value={size.width}\n min={1}\n onCommit={(next) =>\n setSizes((current) => ({\n ...current,\n [def.id]: {\n width: next,\n height: current[def.id]?.height ?? def.height,\n },\n }))\n }\n />\n )}\n {traits.autoHeight ? (\n <AutoField label=\"Height\" />\n ) : (\n <NumberField\n label=\"Height\"\n unit=\"px\"\n value={size.height}\n min={1}\n onCommit={(next) =>\n setSizes((current) => ({\n ...current,\n [def.id]: {\n width: current[def.id]?.width ?? def.width,\n height: next,\n },\n }))\n }\n />\n )}\n </StyledFieldGrid>\n <StyledFieldGrid>\n <NumberField\n label=\"Rotation\"\n unit=\"°\"\n value={rotation}\n onCommit={(next) =>\n setRotations((current) => ({ ...current, [def.id]: next }))\n }\n />\n </StyledFieldGrid>\n </StyledPropGroup>\n ) : null}\n\n {traits.fill ? (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Fill\n </Body2>\n <StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Color\n </Label>\n <ColorPickerField\n includeTransparent={traits.fillTransparent}\n value={currentFill}\n onSelect={setFill}\n />\n </StyledPropRow>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Opacity\n </Label>\n <OptionSelect\n options={OPACITY_OPTIONS.map((opacity) => ({\n id: opacity,\n name: `${opacity}%`,\n }))}\n value={currentFillOpacity}\n triggerLabel={`${currentFillOpacity}%`}\n onChange={(next) => setFillOpacity(Number(next))}\n />\n </StyledPropRow>\n </StyledFieldGrid>\n </StyledPropGroup>\n ) : null}\n\n {traits.stroke && shape ? (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Stroke\n </Body2>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Pattern\n </Label>\n <StyledSegmented>\n <ChooseV2\n required\n options={BORDER_STYLE_OPTIONS.map((option) => ({\n id: option.label,\n name: option.label,\n }))}\n selected={[\n BORDER_STYLE_OPTIONS.find(\n (option) => option.value === shape.strokeDash\n )?.label ?? \"Solid\",\n ]}\n onChange={(selected) =>\n updateShape({\n strokeDash: BORDER_STYLE_OPTIONS.find(\n (option) => option.label === selected[0]\n )?.value,\n })\n }\n />\n </StyledSegmented>\n </StyledPropRow>\n <StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Thickness\n </Label>\n <OptionSelect\n options={THICKNESS_OPTIONS.map((thickness) => ({\n id: thickness,\n name: `${thickness} pt`,\n }))}\n value={shape.strokeWidth}\n triggerLabel={`${shape.strokeWidth} pt`}\n onChange={(next) =>\n updateShape({ strokeWidth: Number(next) })\n }\n />\n </StyledPropRow>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Color\n </Label>\n <ColorPickerField\n value={shape.stroke}\n onSelect={(color) => updateShape({ stroke: color })}\n />\n </StyledPropRow>\n </StyledFieldGrid>\n <StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Radius\n </Label>\n <OptionSelect\n options={RADIUS_OPTIONS.map((radius) => ({\n id: radius,\n name: `${radius} px`,\n }))}\n value={shape.borderRadius}\n triggerLabel={`${shape.borderRadius} px`}\n onChange={(next) =>\n updateShape({ borderRadius: Number(next) })\n }\n />\n </StyledPropRow>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Opacity\n </Label>\n <OptionSelect\n options={OPACITY_OPTIONS.map((opacity) => ({\n id: opacity,\n name: `${opacity}%`,\n }))}\n value={shape.strokeOpacity}\n triggerLabel={`${shape.strokeOpacity}%`}\n onChange={(next) =>\n updateShape({ strokeOpacity: Number(next) })\n }\n />\n </StyledPropRow>\n </StyledFieldGrid>\n </StyledPropGroup>\n ) : null}\n\n {traits.text ? (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Text\n </Body2>\n <StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Style\n </Label>\n <StyledSegmented>\n {STYLE_OPTIONS.map((option) => (\n <Tooltip key={option.key} title={option.label}>\n <IconButton\n variant=\"text gray\"\n active={styleFlags[option.key]}\n aria-label={option.label}\n onClick={() => toggleStyle(option.key)}\n >\n {option.icon}\n </IconButton>\n </Tooltip>\n ))}\n </StyledSegmented>\n </StyledPropRow>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Size\n </Label>\n <OptionSelect\n options={FONT_SIZE_OPTIONS.map((fontSize) => ({\n id: fontSize,\n name: `${fontSize} pt`,\n }))}\n value={currentFontSize}\n triggerLabel={`${currentFontSize} pt`}\n onChange={(next) => setFontSize(Number(next))}\n />\n </StyledPropRow>\n </StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Alignment\n </Label>\n <StyledSegmented>\n {ALIGN_OPTIONS.map((option) => (\n <Tooltip key={option.value} title={option.label}>\n <IconButton\n variant=\"text gray\"\n active={currentAlign === option.value}\n aria-label={option.label}\n onClick={() => setAlign(option.value)}\n >\n {option.icon}\n </IconButton>\n </Tooltip>\n ))}\n </StyledSegmented>\n </StyledPropRow>\n </StyledPropGroup>\n ) : null}\n </>\n )\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"inspector.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_elements","_fileElement","_outline","_projectElements","_Checkbox","_ChooseV","_Dot","_EditableText","_IconButton","_Icons","_Input","_Label","_Select","_SelectTrigger","_Tooltip","_Typography","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","elementTraits","exports","def","kind","geometry","fill","fillTransparent","stroke","text","autoHeight","PROJECT_ELEMENT_TRAITS","renamable","LIMITED_ELEMENT_TRAITS","readOnly","TYPE_LABEL","rectangle","roundedRectangle","circle","triangle","sameColor","b","toLowerCase","StyledInspectorSidebar","styled","aside","withConfig","displayName","componentId","StyledInspectorResizer","div","StyledInspectorBody","StyledPropGroups","StyledInspectorHeader","StyledInspectorEmpty","StyledPropGroup","StyledPropRow","StyledFieldGrid","StyledControl","StyledCheckboxRow","StyledBody","StyledAutoField","StyledSegmented","NumberField","_ref","label","min","unit","onCommit","createElement","Label","size","weight","InputNumber","className","decimalLength","update","endAdornment","InputAdornment","disablePointerEvents","Caption1","color","undefined","onChange","isNaN","Math","round","AutoField","_ref2","ReadOnlyField","_ref3","OptionSelect","_ref4","options","triggerLabel","Select","type","disableSearch","forceCloseMenu","selected","target","SelectTrigger","TRANSPARENT_OPTION","id","textColor","colorName","hex","match","COLOR_OPTIONS","find","option","ColorPickerField","_ref5","disabled","includeTransparent","onSelect","isTransparent","CircleSlashIcon","width","height","Dot","RightInspector","_ref6","_sizes$def$id","_positions$def$id","_rotations$def$id","_names$def$id","_shape$align","_BORDER_STYLE_OPTIONS","_BORDER_STYLE_OPTIONS2","selectedId","positions","setPositions","sizes","setSizes","rotations","setRotations","shapes","setShapes","stickyStyle","setStickyStyle","links","setLinks","files","setFiles","createdShapes","projectElements","setProjectElements","locks","setLocks","_useState","useState","OUTLINE_WIDTH","_useState2","setWidth","_useState3","_useState4","resizing","setResizing","_useState5","_useState6","names","setNames","_useState7","_useState8","tab","setTab","startResize","useCallback","event","_event$currentTarget$","_event$currentTarget$2","preventDefault","startX","clientX","startWidth","currentTarget","parentElement","offsetWidth","previousUserSelect","document","body","style","userSelect","cursor","handleMove","moveEvent","OUTLINE_MAX_WIDTH","max","OUTLINE_MIN_WIDTH","handleUp","window","removeEventListener","addEventListener","CANVAS_ELEMENTS","element","linkDef","link","fileDef","file","projectDef","entry","shell","content","onMouseDown","role","renderBody","_ELEMENT_BODIES$id","html","ELEMENT_BODIES","dangerouslySetInnerHTML","__html","renderLocked","_locks$id","forced","Checkbox","concat","checked","current","_current$id","htmlFor","renderCardGeometry","cardWidth","onWidth","_positions$id","cardPosition","x","y","Body2","_current$id2","_current$id3","renderInspectorBody","icon","headerName","groups","EditableText","variant","onSave","inputProps","maxLength","Header3","title","StyledChooseRow","StyledPanelChooseSlot","ChooseV2","required","limited","cardTraits","LockIcon","ProjectIcon","TaskIcon","projectElementTitle","Fragment","map","_names$linkDef$id","_linkDef$url","InsertLinkIcon","url","Input","placeholder","_names$fileDef$id","AttachmentIcon","base","extension","formatFileSize","traits","shape","position","rotation","typeLabel","updateShape","partial","currentFill","currentFillOpacity","fillOpacity","setFill","setFillOpacity","currentFontSize","fontSize","currentAlign","align","setFontSize","setAlign","styleFlags","toggleStyle","key","SHAPE_TYPE_ICON","NoteIcon","shapeType","autoWidth","_current$def$id$heigh","_current$def$id","_current$def$id$width","_current$def$id2","OPACITY_OPTIONS","opacity","BORDER_STYLE_OPTIONS","strokeDash","_BORDER_STYLE_OPTIONS3","THICKNESS_OPTIONS","thickness","strokeWidth","RADIUS_OPTIONS","radius","borderRadius","strokeOpacity","STYLE_OPTIONS","Tooltip","IconButton","active","onClick","FONT_SIZE_OPTIONS","ALIGN_OPTIONS"],"sources":["../../../../src/presentation/whiteboard/inspector.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useCallback, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport {\n BORDER_STYLE_OPTIONS,\n CANVAS_ELEMENTS,\n COLOR_OPTIONS,\n CanvasElementDef,\n ELEMENT_BODIES,\n FONT_SIZE_OPTIONS,\n OPACITY_OPTIONS,\n RADIUS_OPTIONS,\n SHAPE_TYPE_ICON,\n ShapeElementState,\n ShapeType,\n StickyTextStyle,\n THICKNESS_OPTIONS,\n TextAlign,\n ALIGN_OPTIONS,\n STYLE_OPTIONS,\n TextStyleKey,\n} from \"./elements\";\nimport { FileElementDef, formatFileSize } from \"./fileElement\";\nimport { LinkElementDef } from \"./linkElement\";\nimport {\n OUTLINE_MAX_WIDTH,\n OUTLINE_MIN_WIDTH,\n OUTLINE_WIDTH,\n StyledChooseRow,\n StyledPanelChooseSlot,\n} from \"./outline\";\nimport { ProjectElementDef, projectElementTitle } from \"./projectElements\";\nimport { Checkbox } from \"../../components/Checkbox\";\nimport { ChooseV2 } from \"../../components/ChooseV2\";\nimport { Dot } from \"../../components/Dot\";\nimport { EditableText } from \"../../components/EditableText\";\nimport { IconButton } from \"../../components/IconButton\";\nimport {\n AttachmentIcon,\n CircleSlashIcon,\n InsertLinkIcon,\n LockIcon,\n NoteIcon,\n ProjectIcon,\n TaskIcon,\n} from \"../../components/Icons\";\nimport { Input, InputAdornment, InputNumber } from \"../../components/Input\";\nimport { Label } from \"../../components/Label\";\nimport { Select } from \"../../components/Select\";\nimport { SelectTrigger } from \"../../components/SelectTrigger\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Body2, Caption1, Header3 } from \"../../components/Typography\";\n\n/* ------------------------------------------------------------------ */\n/* Right Inspector — selected-element properties panel */\n/* ------------------------------------------------------------------ */\n\n/* Which right-docked panel is open. Only \"inspector\" is built here; \"comments\"\n is reserved for the next iteration. */\nexport type RightPanel = \"inspector\" | \"comments\" | null;\n\n/* ── Inspector capability traits ──────────────────────────────────────────\n The Inspector is TRAIT-DRIVEN: a selected element declares which property\n groups it supports, and only those groups render. This is the \"interface\n with implementation traits\" model — the interface is the full set of groups,\n and each element kind overrides the flags it does not support (a sticky has\n no stroke, and its height is auto because the note grows with its content).\n New element kinds slot in by returning their own trait set. */\nexport interface ElementTraits {\n geometry: boolean;\n fill: boolean;\n /* Whether the element's name is the board's to change. Almost everything on a\n canvas is named by whoever put it there — but a project or task card is a\n VIEW of a record that lives in the project, and renaming the view would\n either lie about the record or silently rename it from a whiteboard. So the\n title is shown and never edited. Mirrors the app's read-only entity title. */\n renamable?: boolean;\n /* Whether this element's fill may be Transparent. Distinct from `fill`: a\n sticky HAS a fill group but must not be transparent (its colour is its\n defining property), whereas an outline-only shape is valid. Mirrors the\n app's `fillTransparent` trait. */\n fillTransparent?: boolean;\n stroke: boolean;\n text: boolean;\n autoWidth?: boolean;\n autoHeight?: boolean;\n /* The viewer may look at this element's properties and change none of them.\n One flag, because for a limited-access card it is one fact: every control\n the panel would otherwise offer is withheld together with the entity. */\n readOnly?: boolean;\n}\n\nexport const elementTraits = (def: CanvasElementDef): ElementTraits =>\n def.kind === \"sticky\"\n ? {\n geometry: true,\n fill: true,\n fillTransparent: false,\n stroke: false,\n text: true,\n autoHeight: true,\n }\n : {\n geometry: true,\n fill: true,\n fillTransparent: true,\n stroke: true,\n text: true,\n };\n\n/**\n * A project / task card's traits. It is the most constrained element on the\n * board, and every \"false\" here is a fact about the card rather than a feature\n * that has not been built yet:\n *\n * fill / stroke / text the card's appearance is the design system's, not\n * the board's — recolouring it would make a task look\n * like something it is not on another person's screen.\n * autoHeight the card is content-sized; only its width is given.\n * renamable the title belongs to the task / project record.\n *\n * Rotation is absent for the same reason it is absent on link and file cards:\n * the Geometry group for a card simply does not render one.\n */\nexport const PROJECT_ELEMENT_TRAITS: ElementTraits = {\n geometry: true,\n fill: false,\n stroke: false,\n text: false,\n autoHeight: true,\n renamable: false,\n};\n\n/**\n * A LIMITED-ACCESS card's traits: the project card's, with everything the\n * viewer could have changed taken away.\n *\n * The panel is not empty, and that is deliberate — geometry still renders, so\n * the viewer can see that the thing has a position and a size, which is\n * precisely the amount that Workload's limited cell exposes (its data shape is\n * a quantity and an offset). It simply cannot be edited.\n */\nexport const LIMITED_ELEMENT_TRAITS: ElementTraits = {\n ...PROJECT_ELEMENT_TRAITS,\n readOnly: true,\n};\n\nexport const TYPE_LABEL: Record<ShapeType, string> = {\n rectangle: \"Rectangle\",\n roundedRectangle: \"Rounded Rectangle\",\n circle: \"Circle\",\n triangle: \"Triangle\",\n};\n\nexport const sameColor = (a: string | undefined, b: string): boolean =>\n (a ?? \"\").toLowerCase() === b.toLowerCase();\n\n/* Right dock — mirrors StyledOutlineSidebar but docked on the RIGHT: border on\n the left edge, resizer on the left edge. Same 260–780 width band. */\nexport const StyledInspectorSidebar = styled.aside`\n flex-shrink: 0;\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n border-left: 1px solid var(--selectable);\n background-color: var(--page-paper-main);\n font-family: -apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\",\n Arial, sans-serif;\n`;\n\n/* Grab strip on the LEFT edge, because the panel is docked right — dragging it\n left widens. Same token pair as the outline resizer: selectable grey at\n rest, the hover token while grabbed. */\nexport const StyledInspectorResizer = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n left: -2px;\n width: 5px;\n cursor: col-resize;\n z-index: 2;\n\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 2px;\n width: 1px;\n background-color: var(--selectable-active);\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n &:hover::after,\n &.resizing::after {\n opacity: 1;\n }\n`;\n\nexport const StyledInspectorBody = styled.div`\n flex: 1;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n`;\n\n/* Wraps the property groups. The Properties/Comments switch above does the\n separating, so the first group drops its top hairline — no divider directly\n under the header, matching the left sidebar. Inner groups keep separators. */\nexport const StyledPropGroups = styled.div`\n display: flex;\n flex-direction: column;\n\n > div:first-child {\n border-top: none;\n }\n`;\n\nexport const StyledInspectorHeader = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n height: 56px;\n padding: 0 16px;\n box-sizing: border-box;\n flex-shrink: 0;\n\n /* Icon in a fixed, centred box (like the outline's type icon and the sidebar\n header) so it lines up with the live EditableText's text rather than the\n taller input box. */\n .inspector-type-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n color: var(--color-theme-700);\n }\n\n .inspector-type-icon svg {\n width: 20px;\n height: 20px;\n }\n\n .inspector-name {\n flex: 1;\n min-width: 0;\n }\n\n /* A title that cannot be renamed is plain Typography rather than a live\n EditableText input, so it needs its own truncation — and the same 4px of\n side padding EditableText's input carries, or read-only titles would sit\n 4px to the left of editable ones. */\n .inspector-name-static {\n padding: 0 4px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n`;\n\n/* Empty state — same muted treatment the outline uses for unnamed rows. */\nexport const StyledInspectorEmpty = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 24px;\n text-align: center;\n color: var(--color-theme-600);\n`;\n\n/* Non-collapsible section: bold title, no chevron / drag handle, separated from\n the section above by a hairline. */\nexport const StyledPropGroup = styled.div`\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n border-top: 1px solid var(--border-primary);\n\n .group-title {\n color: var(--color-theme-800);\n }\n`;\n\nexport const StyledPropRow = styled.div`\n display: flex;\n flex-direction: column;\n gap: 4px;\n`;\n\nexport const StyledFieldGrid = styled.div`\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 12px;\n`;\n\n/* InputNumber's wrapper is a fixed 360px and SelectTrigger a fixed 300px — both\n overflow the narrow dock, so force every inspector control to fill its cell. */\nexport const StyledControl = styled.div`\n width: 100%;\n\n &.disabled {\n opacity: 0.4;\n pointer-events: none;\n }\n\n .c-input-wrapper {\n width: 100%;\n }\n\n .wb-inspector-trigger {\n width: 100%;\n }\n\n .wb-color-value {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* A transparent fill has no colour to show, so it renders the design-system\n CircleSlashIcon (a ring with a 45° slash) instead of an invisible dot. */\n .wb-color-value .wb-transparent-swatch {\n flex: none;\n color: var(--color-theme-500);\n }\n`;\n\n/* Locked checkbox row — the DS Checkbox renders only the box, so it is paired\n with a Label the way the design system expects. */\nexport const StyledCheckboxRow = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\n/* The element body is HTML (the API's `body` field). The Inspector renders it\n formatted and read-only for now — editing comes later. Raw text needs an\n explicit font-family (no global reset), and the child tags get light prose\n styling. */\nexport const StyledBody = styled.div`\n width: 100%;\n /* Collapsed to a reasonable height; a long body scrolls inside the field. */\n max-height: 140px;\n overflow-y: auto;\n font-family: -apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\",\n Arial, sans-serif;\n font-size: 13px;\n line-height: 1.5;\n color: var(--color-theme-800);\n\n p {\n margin: 0 0 8px;\n }\n\n p:last-child {\n margin-bottom: 0;\n }\n\n ul,\n ol {\n margin: 0 0 8px;\n padding-left: 18px;\n }\n\n li {\n margin: 2px 0;\n }\n\n strong {\n font-weight: 600;\n }\n\n em {\n font-style: italic;\n }\n\n a {\n color: var(--color-primary);\n }\n`;\n\n/* Read-only \"Auto\" field for an auto-sized dimension (a sticky's height). */\nexport const StyledAutoField = styled.div`\n height: 32px;\n display: flex;\n align-items: center;\n padding: 0 8px;\n box-sizing: border-box;\n border: 1px solid var(--color-theme-400);\n border-radius: var(--ac-br-8);\n background-color: var(--color-theme-200);\n color: var(--color-theme-600);\n font-size: 13px;\n`;\n\nexport const StyledSegmented = styled.div`\n display: flex;\n gap: 4px;\n\n /* Icon segments (text alignment): size the glyph and center it in the cell so\n each Choose reads as an equal-width icon button. */\n svg {\n display: block;\n width: 16px;\n height: 16px;\n }\n`;\n\nexport interface NumberFieldProps {\n label: string;\n value: number;\n min?: number;\n /* Unit shown as a right adornment inside the field (px, °), the same way\n InputCurrency shows the currency code. */\n unit?: string;\n onCommit: (value: number) => void;\n}\n\nexport const NumberField = ({\n label,\n value,\n min,\n unit,\n onCommit,\n}: NumberFieldProps): ReactElement => (\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n {label}\n </Label>\n <StyledControl>\n <InputNumber\n className=\"wb-inspector-num\"\n value={value}\n decimalLength={0}\n min={min}\n update\n endAdornment={\n unit ? (\n <InputAdornment disablePointerEvents>\n <Caption1 color=\"secondary\">{unit}</Caption1>\n </InputAdornment>\n ) : undefined\n }\n onChange={(next) => {\n if (next !== undefined && !Number.isNaN(next)) {\n onCommit(Math.round(next));\n }\n }}\n />\n </StyledControl>\n </StyledPropRow>\n);\n\nexport const AutoField = ({ label }: { label: string }): ReactElement => (\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n {label}\n </Label>\n <StyledAutoField>Auto</StyledAutoField>\n </StyledPropRow>\n);\n\n/* A geometry value the viewer may READ but not change — the same field\n `AutoField` and the file card's Size already use, with a real value in it.\n Showing the number greyed out is the point: a limited card still has a\n position and a size, and those are the only facts about it there are. */\nexport const ReadOnlyField = ({\n label,\n value,\n}: {\n label: string;\n value: string;\n}): ReactElement => (\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n {label}\n </Label>\n <StyledAutoField>{value}</StyledAutoField>\n </StyledPropRow>\n);\n\nexport interface OptionSelectProps {\n options: { id: string | number; name: string }[];\n value: string | number;\n triggerLabel: string;\n onChange: (value: string | number) => void;\n}\n\nexport const OptionSelect = ({\n options,\n value,\n triggerLabel,\n onChange,\n}: OptionSelectProps): ReactElement => (\n <StyledControl>\n <Select\n type=\"single\"\n disableSearch\n forceCloseMenu\n options={options}\n selected={value}\n onChange={(next) => onChange(Array.isArray(next) ? next[0] : next)}\n target={\n <SelectTrigger className=\"wb-inspector-trigger\">\n {triggerLabel}\n </SelectTrigger>\n }\n />\n </StyledControl>\n);\n\nexport const TRANSPARENT_OPTION = {\n id: \"transparent\",\n name: \"Transparent\",\n color: \"transparent\",\n textColor: \"transparent\",\n};\n\n/* The name shown on the color picker's trigger, resolved from the current hex. */\nexport const colorName = (hex: string | undefined): string => {\n if (!hex || sameColor(hex, \"transparent\")) {\n return \"Transparent\";\n }\n\n const match = COLOR_OPTIONS.find((option) => sameColor(hex, option.color));\n return match ? match.name : \"Custom\";\n};\n\nexport interface ColorPickerFieldProps {\n value: string | undefined;\n disabled?: boolean;\n /* Adds \"Transparent\" as the first option, rendered as the DS CircleSlashIcon.\n Driven by the element's `fillTransparent` trait, so only SHAPE fill opts in\n — sticky fill (its colour is the point) and stroke colour never do. */\n includeTransparent?: boolean;\n onSelect: (color: string) => void;\n}\n\n/* The regular design-system named-colour picker (the one in the label dialogs):\n a Select whose trigger is a Dot + colour name, and whose menu is the standard\n dot-and-radio list. Custom colours are deferred. */\nexport const ColorPickerField = ({\n value,\n disabled,\n includeTransparent,\n onSelect,\n}: ColorPickerFieldProps): ReactElement => {\n const options = includeTransparent\n ? [TRANSPARENT_OPTION, ...COLOR_OPTIONS]\n : COLOR_OPTIONS;\n const isTransparent = !value || sameColor(value, \"transparent\");\n\n return (\n <StyledControl className={disabled ? \"disabled\" : undefined}>\n <Select\n type=\"single\"\n disableSearch\n forceCloseMenu\n options={options}\n selected={isTransparent ? \"transparent\" : value}\n onChange={(next) =>\n onSelect(String(Array.isArray(next) ? next[0] : next))\n }\n target={\n <SelectTrigger className=\"wb-inspector-trigger\">\n <span className=\"wb-color-value\">\n {isTransparent ? (\n <CircleSlashIcon\n width={14}\n height={14}\n fill=\"currentColor\"\n className=\"wb-transparent-swatch\"\n />\n ) : (\n <Dot color={value} size={14} />\n )}\n {colorName(value)}\n </span>\n </SelectTrigger>\n }\n />\n </StyledControl>\n );\n};\n\nexport interface RightInspectorProps {\n selectedId: string | null;\n positions: Record<string, { x: number; y: number }>;\n setPositions: React.Dispatch<\n React.SetStateAction<Record<string, { x: number; y: number }>>\n >;\n sizes: Record<string, { width: number; height: number }>;\n setSizes: React.Dispatch<\n React.SetStateAction<Record<string, { width: number; height: number }>>\n >;\n rotations: Record<string, number>;\n setRotations: React.Dispatch<React.SetStateAction<Record<string, number>>>;\n shapes: Record<string, ShapeElementState>;\n setShapes: React.Dispatch<\n React.SetStateAction<Record<string, ShapeElementState>>\n >;\n stickyStyle: StickyTextStyle;\n setStickyStyle: React.Dispatch<React.SetStateAction<StickyTextStyle>>;\n links: LinkElementDef[];\n setLinks: React.Dispatch<React.SetStateAction<LinkElementDef[]>>;\n files: FileElementDef[];\n setFiles: React.Dispatch<React.SetStateAction<FileElementDef[]>>;\n createdShapes: CanvasElementDef[];\n projectElements: ProjectElementDef[];\n setProjectElements: React.Dispatch<React.SetStateAction<ProjectElementDef[]>>;\n locks: Record<string, boolean>;\n setLocks: React.Dispatch<React.SetStateAction<Record<string, boolean>>>;\n}\n\nexport const RightInspector = ({\n selectedId,\n positions,\n setPositions,\n sizes,\n setSizes,\n rotations,\n setRotations,\n shapes,\n setShapes,\n stickyStyle,\n setStickyStyle,\n links,\n setLinks,\n files,\n setFiles,\n createdShapes,\n projectElements,\n setProjectElements,\n locks,\n setLocks,\n}: RightInspectorProps): ReactElement => {\n const [width, setWidth] = useState(OUTLINE_WIDTH);\n const [resizing, setResizing] = useState(false);\n /* Mock only — element display names are not persisted anywhere; they default\n to the type label until renamed here. */\n const [names, setNames] = useState<Record<string, string>>({});\n /* Which inspector tab is showing: the property groups we design, or the\n upcoming comments stream (details TBD). */\n const [tab, setTab] = useState<\"properties\" | \"comments\">(\"properties\");\n\n /* Docked right, so the grab strip is on the LEFT edge and dragging left\n widens: the delta is subtracted rather than added (see LeftSidebar). */\n const startResize = useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n const startX = event.clientX;\n const startWidth = event.currentTarget.parentElement?.offsetWidth ?? 0;\n const previousUserSelect = document.body.style.userSelect;\n\n setResizing(true);\n document.body.style.userSelect = \"none\";\n document.body.style.cursor = \"col-resize\";\n\n const handleMove = (moveEvent: MouseEvent): void => {\n const next = startWidth - (moveEvent.clientX - startX);\n setWidth(Math.min(OUTLINE_MAX_WIDTH, Math.max(OUTLINE_MIN_WIDTH, next)));\n };\n\n const handleUp = (): void => {\n setResizing(false);\n document.body.style.userSelect = previousUserSelect;\n document.body.style.cursor = \"\";\n window.removeEventListener(\"mousemove\", handleMove);\n window.removeEventListener(\"mouseup\", handleUp);\n };\n\n window.addEventListener(\"mousemove\", handleMove);\n window.addEventListener(\"mouseup\", handleUp);\n }, []);\n\n const def = selectedId\n ? [...CANVAS_ELEMENTS, ...createdShapes].find(\n (element) => element.id === selectedId\n )\n : undefined;\n const linkDef = selectedId\n ? links.find((link) => link.id === selectedId)\n : undefined;\n const fileDef = selectedId\n ? files.find((file) => file.id === selectedId)\n : undefined;\n const projectDef = selectedId\n ? projectElements.find((entry) => entry.id === selectedId)\n : undefined;\n\n const shell = (content: ReactNode): ReactElement => (\n <StyledInspectorSidebar style={{ width }}>\n <StyledInspectorResizer\n className={resizing ? \"resizing\" : \"\"}\n onMouseDown={startResize}\n role=\"separator\"\n aria-orientation=\"vertical\"\n aria-label=\"Resize inspector\"\n />\n {content}\n </StyledInspectorSidebar>\n );\n\n /* Description — inline, multi-line editable text, shown first for every\n element kind. */\n /* Read-only formatted body (HTML from the API's `body` field). No label; when\n the body is empty the field is not rendered at all. No edit yet. */\n const renderBody = (id: string): ReactNode => {\n const html = ELEMENT_BODIES[id] ?? \"\";\n if (!html) {\n return null;\n }\n\n // eslint-disable-next-line react/no-danger\n return <StyledBody dangerouslySetInnerHTML={{ __html: html }} />;\n };\n\n /* The Locked checkbox — shown for every element kind, toggling a design lock\n flag keyed by element id. */\n /* `forced` is the limited-access case: the element is locked FOR THIS VIEWER\n and the checkbox is the honest place to say so — ticked, and disabled so it\n reads as a statement about the element rather than a switch that was left\n on. */\n const renderLocked = (id: string, forced = false): ReactElement => (\n <StyledCheckboxRow>\n <Checkbox\n id={`wb-lock-${id}`}\n checked={forced || (locks[id] ?? false)}\n disabled={forced}\n onChange={() =>\n setLocks((current) => ({ ...current, [id]: !(current[id] ?? false) }))\n }\n />\n <Label htmlFor={`wb-lock-${id}`} size=\"small\" weight=\"regular\">\n Locked\n </Label>\n </StyledCheckboxRow>\n );\n\n /* Geometry for a card (link / file / project / task): X/Y from the shared\n positions map, an editable width and an auto height (cards are\n content-sized). Cards cannot be rotated, so there is no Rotation field.\n `readOnly` keeps the same three values in the same three places and swaps\n the inputs for read-only fields — a limited card's geometry is information,\n not a control. */\n const renderCardGeometry = (\n id: string,\n cardWidth: number,\n onWidth: (width: number) => void,\n readOnly = false\n ): ReactElement => {\n const cardPosition = positions[id] ?? { x: 0, y: 0 };\n\n return (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Geometry\n </Body2>\n <StyledFieldGrid>\n {readOnly ? (\n <ReadOnlyField label=\"X\" value={`${cardPosition.x} px`} />\n ) : (\n <NumberField\n label=\"X\"\n unit=\"px\"\n value={cardPosition.x}\n onCommit={(next) =>\n setPositions((current) => ({\n ...current,\n [id]: { ...(current[id] ?? { x: 0, y: 0 }), x: next },\n }))\n }\n />\n )}\n {readOnly ? (\n <ReadOnlyField label=\"Y\" value={`${cardPosition.y} px`} />\n ) : (\n <NumberField\n label=\"Y\"\n unit=\"px\"\n value={cardPosition.y}\n onCommit={(next) =>\n setPositions((current) => ({\n ...current,\n [id]: { ...(current[id] ?? { x: 0, y: 0 }), y: next },\n }))\n }\n />\n )}\n </StyledFieldGrid>\n <StyledFieldGrid>\n {readOnly ? (\n <ReadOnlyField label=\"Width\" value={`${cardWidth} px`} />\n ) : (\n <NumberField\n label=\"Width\"\n unit=\"px\"\n value={cardWidth}\n min={1}\n onCommit={onWidth}\n />\n )}\n <AutoField label=\"Height\" />\n </StyledFieldGrid>\n </StyledPropGroup>\n );\n };\n\n /* Header + panel switch + body, shared by every element kind — only the\n groups inside differ. `renamable` false swaps the live EditableText for\n read-only text, for elements whose name is not the board's to change. */\n const renderInspectorBody = (\n icon: ReactNode,\n headerName: string,\n id: string,\n groups: ReactNode,\n renamable = true\n ): ReactElement => (\n <StyledInspectorBody>\n <StyledInspectorHeader>\n <span className=\"inspector-type-icon\">{icon}</span>\n <span className=\"inspector-name\">\n {renamable ? (\n <EditableText\n value={headerName}\n variant=\"Header 3\"\n weight=\"bold\"\n onSave={(event) =>\n setNames((current) => ({\n ...current,\n [id]: event.target.value,\n }))\n }\n inputProps={{ maxLength: 120 }}\n />\n ) : (\n <Header3 className=\"inspector-name-static\" title={headerName}>\n {headerName}\n </Header3>\n )}\n </span>\n </StyledInspectorHeader>\n\n <StyledChooseRow>\n <StyledPanelChooseSlot>\n <ChooseV2\n required\n options={[\n { id: \"properties\", name: \"Properties\" },\n { id: \"comments\", name: \"Comments\" },\n ]}\n selected={[tab]}\n onChange={(selected) =>\n setTab(selected[0] as \"properties\" | \"comments\")\n }\n />\n </StyledPanelChooseSlot>\n </StyledChooseRow>\n\n {tab === \"comments\" ? (\n <StyledInspectorEmpty>\n <Body2>The comments stream is coming soon.</Body2>\n </StyledInspectorEmpty>\n ) : (\n <StyledPropGroups>{groups}</StyledPropGroups>\n )}\n </StyledInspectorBody>\n );\n\n /* Nothing selected. */\n if (!def && !linkDef && !fileDef && !projectDef) {\n return shell(\n <StyledInspectorEmpty>\n <Body2>Select an element to see its properties.</Body2>\n </StyledInspectorEmpty>\n );\n }\n\n /* Project / task card — the most constrained element here. Its look is not\n the board's to change (no Fill, Stroke or Text), and its title belongs to\n the record it shows, so the header is read-only. What is left is what the\n board really does own: where the card sits, how wide it is, and whether it\n is locked. */\n if (projectDef) {\n const limited = projectDef.limited === true;\n const cardTraits = limited\n ? LIMITED_ELEMENT_TRAITS\n : PROJECT_ELEMENT_TRAITS;\n\n return shell(\n renderInspectorBody(\n /* A limited card gets a NEUTRAL icon. The task and project glyphs would\n each say which kind of record is behind the card, and the kind is\n part of what the viewer is not entitled to. */\n limited ? (\n <LockIcon />\n ) : projectDef.kind === \"project\" ? (\n <ProjectIcon />\n ) : (\n <TaskIcon />\n ),\n projectElementTitle(projectDef),\n projectDef.id,\n <>\n <StyledPropGroup>\n {renderLocked(projectDef.id, cardTraits.readOnly)}\n </StyledPropGroup>\n {cardTraits.geometry\n ? renderCardGeometry(\n projectDef.id,\n projectDef.width,\n (width) =>\n setProjectElements((current) =>\n current.map((entry) =>\n entry.id === projectDef.id ? { ...entry, width } : entry\n )\n ),\n cardTraits.readOnly\n )\n : null}\n </>,\n cardTraits.renamable\n )\n );\n }\n\n /* Link card — its URL plus the shared Locked flag. */\n if (linkDef) {\n return shell(\n renderInspectorBody(\n <InsertLinkIcon />,\n names[linkDef.id] ?? (linkDef.url || \"Link\"),\n linkDef.id,\n <>\n <StyledPropGroup>\n {renderBody(linkDef.id)}\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n URL\n </Label>\n <StyledControl>\n <Input\n value={linkDef.url ?? \"\"}\n placeholder=\"https://…\"\n onChange={(event) =>\n setLinks((current) =>\n current.map((link) =>\n link.id === linkDef.id\n ? { ...link, url: event.target.value }\n : link\n )\n )\n }\n />\n </StyledControl>\n </StyledPropRow>\n {renderLocked(linkDef.id)}\n </StyledPropGroup>\n {renderCardGeometry(linkDef.id, linkDef.width, (width) =>\n setLinks((current) =>\n current.map((link) =>\n link.id === linkDef.id ? { ...link, width } : link\n )\n )\n )}\n </>\n )\n );\n }\n\n /* File card — read-only size plus the shared Locked flag. */\n if (fileDef) {\n return shell(\n renderInspectorBody(\n <AttachmentIcon />,\n names[fileDef.id] ??\n (fileDef.file\n ? `${fileDef.file.base}.${fileDef.file.extension}`\n : \"File\"),\n fileDef.id,\n <>\n <StyledPropGroup>\n {renderBody(fileDef.id)}\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Size\n </Label>\n <StyledAutoField>\n {fileDef.file ? formatFileSize(fileDef.file.size) : \"—\"}\n </StyledAutoField>\n </StyledPropRow>\n {renderLocked(fileDef.id)}\n </StyledPropGroup>\n {renderCardGeometry(fileDef.id, fileDef.width, (width) =>\n setFiles((current) =>\n current.map((file) =>\n file.id === fileDef.id ? { ...file, width } : file\n )\n )\n )}\n </>\n )\n );\n }\n\n /* Shape / sticky from here on. */\n if (!def) {\n return shell(\n <StyledInspectorEmpty>\n <Body2>Select an element to see its properties.</Body2>\n </StyledInspectorEmpty>\n );\n }\n\n const traits = elementTraits(def);\n const shape = def.kind === \"shape\" ? shapes[def.id] : null;\n const size = sizes[def.id] ?? { width: def.width, height: def.height };\n const position = positions[def.id] ?? { x: def.x, y: def.y };\n const rotation = rotations[def.id] ?? 0;\n\n const typeLabel = shape ? TYPE_LABEL[shape.type] : \"Sticky note\";\n const name = names[def.id] ?? typeLabel;\n\n const updateShape = (partial: Partial<ShapeElementState>): void =>\n setShapes((current) => ({\n ...current,\n [def.id]: { ...current[def.id], ...partial },\n }));\n\n /* Fill is unified across kinds: a shape writes shape.fill, a sticky its note\n colour. A transparent colour means no fill. */\n const currentFill = shape ? shape.fill : stickyStyle.color;\n const currentFillOpacity = shape\n ? shape.fillOpacity\n : stickyStyle.fillOpacity;\n\n const setFill = (color: string): void => {\n if (shape) {\n updateShape({ fill: color });\n } else {\n setStickyStyle({ ...stickyStyle, color });\n }\n };\n\n const setFillOpacity = (next: number): void => {\n if (shape) {\n updateShape({ fillOpacity: next });\n } else {\n setStickyStyle({ ...stickyStyle, fillOpacity: next });\n }\n };\n\n const currentFontSize = shape ? shape.fontSize : stickyStyle.fontSize;\n const currentAlign: TextAlign = shape\n ? shape.align ?? \"left\"\n : stickyStyle.align;\n\n const setFontSize = (next: number): void => {\n if (shape) {\n updateShape({ fontSize: next });\n } else {\n setStickyStyle({ ...stickyStyle, fontSize: next });\n }\n };\n\n const setAlign = (next: TextAlign): void => {\n if (shape) {\n updateShape({ align: next });\n } else {\n setStickyStyle({ ...stickyStyle, align: next });\n }\n };\n\n const styleFlags = shape ?? stickyStyle;\n\n const toggleStyle = (key: TextStyleKey): void => {\n if (shape) {\n updateShape({ [key]: !shape[key] });\n } else {\n setStickyStyle({ ...stickyStyle, [key]: !stickyStyle[key] });\n }\n };\n\n return shell(\n renderInspectorBody(\n shape ? SHAPE_TYPE_ICON[shape.type] : <NoteIcon />,\n name,\n def.id,\n <>\n {/* Element-specific properties — no header, sits above Geometry. */}\n <StyledPropGroup>\n {renderBody(def.id)}\n {shape ? (\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Shape\n </Label>\n <OptionSelect\n options={(\n [\n \"rectangle\",\n \"roundedRectangle\",\n \"circle\",\n \"triangle\",\n ] as ShapeType[]\n ).map((shapeType) => ({\n id: shapeType,\n name: TYPE_LABEL[shapeType],\n }))}\n value={shape.type}\n triggerLabel={TYPE_LABEL[shape.type]}\n onChange={(next) => updateShape({ type: next as ShapeType })}\n />\n </StyledPropRow>\n ) : null}\n {renderLocked(def.id)}\n </StyledPropGroup>\n\n {traits.geometry ? (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Geometry\n </Body2>\n <StyledFieldGrid>\n <NumberField\n label=\"X\"\n unit=\"px\"\n value={position.x}\n onCommit={(next) =>\n setPositions((current) => ({\n ...current,\n [def.id]: { ...current[def.id], x: next },\n }))\n }\n />\n <NumberField\n label=\"Y\"\n unit=\"px\"\n value={position.y}\n onCommit={(next) =>\n setPositions((current) => ({\n ...current,\n [def.id]: { ...current[def.id], y: next },\n }))\n }\n />\n </StyledFieldGrid>\n <StyledFieldGrid>\n {traits.autoWidth ? (\n <AutoField label=\"Width\" />\n ) : (\n <NumberField\n label=\"Width\"\n unit=\"px\"\n value={size.width}\n min={1}\n onCommit={(next) =>\n setSizes((current) => ({\n ...current,\n [def.id]: {\n width: next,\n height: current[def.id]?.height ?? def.height,\n },\n }))\n }\n />\n )}\n {traits.autoHeight ? (\n <AutoField label=\"Height\" />\n ) : (\n <NumberField\n label=\"Height\"\n unit=\"px\"\n value={size.height}\n min={1}\n onCommit={(next) =>\n setSizes((current) => ({\n ...current,\n [def.id]: {\n width: current[def.id]?.width ?? def.width,\n height: next,\n },\n }))\n }\n />\n )}\n </StyledFieldGrid>\n <StyledFieldGrid>\n <NumberField\n label=\"Rotation\"\n unit=\"°\"\n value={rotation}\n onCommit={(next) =>\n setRotations((current) => ({ ...current, [def.id]: next }))\n }\n />\n </StyledFieldGrid>\n </StyledPropGroup>\n ) : null}\n\n {traits.fill ? (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Fill\n </Body2>\n <StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Color\n </Label>\n <ColorPickerField\n includeTransparent={traits.fillTransparent}\n value={currentFill}\n onSelect={setFill}\n />\n </StyledPropRow>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Opacity\n </Label>\n <OptionSelect\n options={OPACITY_OPTIONS.map((opacity) => ({\n id: opacity,\n name: `${opacity}%`,\n }))}\n value={currentFillOpacity}\n triggerLabel={`${currentFillOpacity}%`}\n onChange={(next) => setFillOpacity(Number(next))}\n />\n </StyledPropRow>\n </StyledFieldGrid>\n </StyledPropGroup>\n ) : null}\n\n {traits.stroke && shape ? (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Stroke\n </Body2>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Pattern\n </Label>\n <StyledSegmented>\n <ChooseV2\n required\n options={BORDER_STYLE_OPTIONS.map((option) => ({\n id: option.label,\n name: option.label,\n }))}\n selected={[\n BORDER_STYLE_OPTIONS.find(\n (option) => option.value === shape.strokeDash\n )?.label ?? \"Solid\",\n ]}\n onChange={(selected) =>\n updateShape({\n strokeDash: BORDER_STYLE_OPTIONS.find(\n (option) => option.label === selected[0]\n )?.value,\n })\n }\n />\n </StyledSegmented>\n </StyledPropRow>\n <StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Thickness\n </Label>\n <OptionSelect\n options={THICKNESS_OPTIONS.map((thickness) => ({\n id: thickness,\n name: `${thickness} pt`,\n }))}\n value={shape.strokeWidth}\n triggerLabel={`${shape.strokeWidth} pt`}\n onChange={(next) =>\n updateShape({ strokeWidth: Number(next) })\n }\n />\n </StyledPropRow>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Color\n </Label>\n <ColorPickerField\n value={shape.stroke}\n onSelect={(color) => updateShape({ stroke: color })}\n />\n </StyledPropRow>\n </StyledFieldGrid>\n <StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Radius\n </Label>\n <OptionSelect\n options={RADIUS_OPTIONS.map((radius) => ({\n id: radius,\n name: `${radius} px`,\n }))}\n value={shape.borderRadius}\n triggerLabel={`${shape.borderRadius} px`}\n onChange={(next) =>\n updateShape({ borderRadius: Number(next) })\n }\n />\n </StyledPropRow>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Opacity\n </Label>\n <OptionSelect\n options={OPACITY_OPTIONS.map((opacity) => ({\n id: opacity,\n name: `${opacity}%`,\n }))}\n value={shape.strokeOpacity}\n triggerLabel={`${shape.strokeOpacity}%`}\n onChange={(next) =>\n updateShape({ strokeOpacity: Number(next) })\n }\n />\n </StyledPropRow>\n </StyledFieldGrid>\n </StyledPropGroup>\n ) : null}\n\n {traits.text ? (\n <StyledPropGroup>\n <Body2 weight=\"bold\" className=\"group-title\">\n Text\n </Body2>\n <StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Style\n </Label>\n <StyledSegmented>\n {STYLE_OPTIONS.map((option) => (\n <Tooltip key={option.key} title={option.label}>\n <IconButton\n variant=\"text gray\"\n active={styleFlags[option.key]}\n aria-label={option.label}\n onClick={() => toggleStyle(option.key)}\n >\n {option.icon}\n </IconButton>\n </Tooltip>\n ))}\n </StyledSegmented>\n </StyledPropRow>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Size\n </Label>\n <OptionSelect\n options={FONT_SIZE_OPTIONS.map((fontSize) => ({\n id: fontSize,\n name: `${fontSize} pt`,\n }))}\n value={currentFontSize}\n triggerLabel={`${currentFontSize} pt`}\n onChange={(next) => setFontSize(Number(next))}\n />\n </StyledPropRow>\n </StyledFieldGrid>\n <StyledPropRow>\n <Label size=\"small\" weight=\"regular\">\n Alignment\n </Label>\n <StyledSegmented>\n {ALIGN_OPTIONS.map((option) => (\n <Tooltip key={option.value} title={option.label}>\n <IconButton\n variant=\"text gray\"\n active={currentAlign === option.value}\n aria-label={option.label}\n onClick={() => setAlign(option.value)}\n >\n {option.icon}\n </IconButton>\n </Tooltip>\n ))}\n </StyledSegmented>\n </StyledPropRow>\n </StyledPropGroup>\n ) : null}\n </>\n )\n );\n};\n"],"mappings":"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","ignoreList":[]}