microboard-temp 0.14.18 → 0.14.20

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.
@@ -11498,6 +11498,28 @@ function toLocalTransformOp(op, containerMatrix, itemId) {
11498
11498
  return op;
11499
11499
  }
11500
11500
  }
11501
+ // src/Overlay/IconPack.ts
11502
+ var OVERLAY_ICON_SPRITE_PATH = "src/Overlay/overlay-icons.svg";
11503
+ function overlaySymbolIcon(key) {
11504
+ return {
11505
+ kind: "symbol",
11506
+ key,
11507
+ sourcePath: OVERLAY_ICON_SPRITE_PATH
11508
+ };
11509
+ }
11510
+ function overlayAssetIcon(path2, state) {
11511
+ return state ? {
11512
+ kind: "asset",
11513
+ path: path2,
11514
+ mimeType: "image/svg+xml",
11515
+ state
11516
+ } : {
11517
+ kind: "asset",
11518
+ path: path2,
11519
+ mimeType: "image/svg+xml"
11520
+ };
11521
+ }
11522
+
11501
11523
  // src/Overlay/OverlayIcons.ts
11502
11524
  var OVERLAY_SYMBOL_KEYS = {
11503
11525
  styleFill: "style.fill",
@@ -11506,19 +11528,19 @@ var OVERLAY_SYMBOL_KEYS = {
11506
11528
  styleFontSize: "style.fontSize"
11507
11529
  };
11508
11530
  function symbolIcon(key, state) {
11509
- return state ? { kind: "symbol", key, state } : { kind: "symbol", key };
11531
+ return state ? { kind: "symbol", key, sourcePath: OVERLAY_ICON_SPRITE_PATH, state } : { kind: "symbol", key, sourcePath: OVERLAY_ICON_SPRITE_PATH };
11510
11532
  }
11511
11533
  function styleFillIcon(state) {
11512
- return symbolIcon(OVERLAY_SYMBOL_KEYS.styleFill, state);
11534
+ return overlayAssetIcon("src/Items/Shape/icons/Fill.icon.svg", state);
11513
11535
  }
11514
11536
  function styleStrokeIcon(state) {
11515
- return symbolIcon(OVERLAY_SYMBOL_KEYS.styleStroke, state);
11537
+ return overlayAssetIcon("src/Items/Shape/icons/Stroke.icon.svg", state);
11516
11538
  }
11517
11539
  function styleColorIcon(state) {
11518
- return symbolIcon(OVERLAY_SYMBOL_KEYS.styleColor, state);
11540
+ return overlayAssetIcon("src/Items/Shape/icons/Color.icon.svg", state);
11519
11541
  }
11520
11542
  function styleFontSizeIcon(state) {
11521
- return symbolIcon(OVERLAY_SYMBOL_KEYS.styleFontSize, state);
11543
+ return overlayAssetIcon("src/Items/RichText/icons/FontSize.icon.svg", state);
11522
11544
  }
11523
11545
  // src/Overlay/overlayRegistry.ts
11524
11546
  var itemOverlays = {};
@@ -11547,6 +11569,45 @@ function getToolOverlay(toolName) {
11547
11569
  function listToolOverlays() {
11548
11570
  return Object.values(toolOverlays);
11549
11571
  }
11572
+ function listCreateSurfaceEntries() {
11573
+ const groupedEntries = new Map;
11574
+ const ungroupedEntries = [];
11575
+ for (const tool of Object.values(toolOverlays)) {
11576
+ const group = tool.surface?.group;
11577
+ if (!group) {
11578
+ ungroupedEntries.push({
11579
+ kind: "tool",
11580
+ tool,
11581
+ order: tool.surface?.order
11582
+ });
11583
+ continue;
11584
+ }
11585
+ const existing = groupedEntries.get(group.id);
11586
+ if (existing) {
11587
+ existing.tools.push(tool);
11588
+ if (existing.order === undefined && group.order !== undefined) {
11589
+ existing.order = group.order;
11590
+ }
11591
+ continue;
11592
+ }
11593
+ groupedEntries.set(group.id, {
11594
+ kind: "group",
11595
+ id: group.id,
11596
+ label: group.label,
11597
+ description: group.description,
11598
+ icon: group.icon,
11599
+ order: group.order,
11600
+ behavior: group.behavior,
11601
+ tools: [tool]
11602
+ });
11603
+ }
11604
+ const sortedGroups = [...groupedEntries.values()].map((group) => ({
11605
+ ...group,
11606
+ tools: [...group.tools].sort(compareToolsBySurfaceOrder)
11607
+ })).sort(compareEntriesByOrder);
11608
+ const sortedUngroupedEntries = [...ungroupedEntries].sort(compareEntriesByOrder);
11609
+ return [...sortedGroups, ...sortedUngroupedEntries];
11610
+ }
11550
11611
  function listSelectionActions() {
11551
11612
  return Object.values(selectionActions);
11552
11613
  }
@@ -11556,6 +11617,33 @@ function getSelectionOverlayActions(items) {
11556
11617
  function resolveDynamicOptions(providerId, context) {
11557
11618
  return dynamicOptionsResolvers[providerId]?.(context) ?? [];
11558
11619
  }
11620
+ function matchesOverlayCondition(condition, context) {
11621
+ if (!condition) {
11622
+ return true;
11623
+ }
11624
+ switch (condition.kind) {
11625
+ case "equals":
11626
+ return readOverlayValueSource(context, condition.source) === condition.value;
11627
+ case "truthy":
11628
+ return !!readOverlayValueSource(context, condition.source);
11629
+ case "falsy":
11630
+ return !readOverlayValueSource(context, condition.source);
11631
+ case "itemTypeIn":
11632
+ return context.items?.every((item) => condition.itemTypes.includes(item.itemType)) ?? (context.item ? condition.itemTypes.includes(context.item.itemType) : false);
11633
+ case "selectionSize": {
11634
+ const size = context.items?.length ?? (context.item ? 1 : 0);
11635
+ const meetsMin = condition.min === undefined || size >= condition.min;
11636
+ const meetsMax = condition.max === undefined || size <= condition.max;
11637
+ return meetsMin && meetsMax;
11638
+ }
11639
+ case "allOf":
11640
+ return condition.conditions.every((child) => matchesOverlayCondition(child, context));
11641
+ case "anyOf":
11642
+ return condition.conditions.some((child) => matchesOverlayCondition(child, context));
11643
+ case "not":
11644
+ return !matchesOverlayCondition(condition.condition, context);
11645
+ }
11646
+ }
11559
11647
  function intersectOverlayActions(items) {
11560
11648
  if (items.length === 0) {
11561
11649
  return [];
@@ -11574,6 +11662,24 @@ function intersectOverlayActions(items) {
11574
11662
  }
11575
11663
  return [...counts.values()].filter((action) => overlays.every((overlay) => overlay.actions.some((candidate) => candidate.id === action.id)) && (action.target !== "single" || items.length === 1));
11576
11664
  }
11665
+ function compareToolsBySurfaceOrder(a, b) {
11666
+ const aOrder = a.surface?.order ?? Number.MAX_SAFE_INTEGER;
11667
+ const bOrder = b.surface?.order ?? Number.MAX_SAFE_INTEGER;
11668
+ return aOrder - bOrder || a.label.localeCompare(b.label);
11669
+ }
11670
+ function compareEntriesByOrder(a, b) {
11671
+ const aOrder = a.order ?? Number.MAX_SAFE_INTEGER;
11672
+ const bOrder = b.order ?? Number.MAX_SAFE_INTEGER;
11673
+ const aLabel = a.label ?? a.tool?.label ?? "";
11674
+ const bLabel = b.label ?? b.tool?.label ?? "";
11675
+ return aOrder - bOrder || aLabel.localeCompare(bLabel);
11676
+ }
11677
+ function readOverlayValueSource(context, source) {
11678
+ if (source.kind === "itemProperty") {
11679
+ return context.item ? context.item[source.property] : undefined;
11680
+ }
11681
+ return context.tool ? context.tool[source.property] : undefined;
11682
+ }
11577
11683
  // src/Items/BaseItem/BaseItem.ts
11578
11684
  class BaseItem {
11579
11685
  static createCommand;
@@ -37575,6 +37681,14 @@ var richTextOverlay = {
37575
37681
  }
37576
37682
  ]
37577
37683
  }
37684
+ ],
37685
+ sections: [
37686
+ {
37687
+ id: "textTypography",
37688
+ label: "Typography",
37689
+ icon: overlayAssetIcon("src/Items/RichText/icons/FontSize.icon.svg"),
37690
+ actionIds: ["text.fontSize"]
37691
+ }
37578
37692
  ]
37579
37693
  };
37580
37694
  var addTextToolOverlay = {
@@ -37583,8 +37697,12 @@ var addTextToolOverlay = {
37583
37697
  kind: "create",
37584
37698
  createsItemType: "RichText",
37585
37699
  family: "text",
37586
- icon: { kind: "symbol", key: "tool.text" },
37587
- description: "Creates editable rich text. The current first pass has no pre-placement defaults on this tool."
37700
+ icon: overlayAssetIcon("src/Items/RichText/icons/Text.icon.svg"),
37701
+ description: "Creates editable rich text. The current first pass has no pre-placement defaults on this tool.",
37702
+ launch: { kind: "activate-tool" },
37703
+ surface: {
37704
+ order: 6
37705
+ }
37588
37706
  };
37589
37707
 
37590
37708
  // src/Items/RichText/RichText.ts
@@ -44054,12 +44172,28 @@ var COLOR_PALETTE = [
44054
44172
  "#118AB2",
44055
44173
  "#7B61FF"
44056
44174
  ];
44057
- var symbolIcon2 = (key) => ({ kind: "symbol", key });
44175
+ var connectorAssetIcon = (file2) => overlayAssetIcon(`src/Items/Connector/icons/${file2}.icon.svg`);
44176
+ var lineStyleAssetIcons = {
44177
+ straight: connectorAssetIcon("LineStraight"),
44178
+ curved: connectorAssetIcon("LineCurved"),
44179
+ orthogonal: connectorAssetIcon("LineOrthogonal")
44180
+ };
44181
+ var pointerAssetIcons = {
44182
+ None: connectorAssetIcon("PointerNone"),
44183
+ ArrowThin: connectorAssetIcon("PointerArrowThin"),
44184
+ ArrowHeavy: connectorAssetIcon("PointerArrowHeavy"),
44185
+ TriangleFilled: connectorAssetIcon("PointerTriangleFilled"),
44186
+ TriangleOutline: connectorAssetIcon("PointerTriangleOutline"),
44187
+ CircleFilled: connectorAssetIcon("PointerCircleFilled"),
44188
+ CircleOutline: connectorAssetIcon("PointerCircleOutline"),
44189
+ DiamondFilled: connectorAssetIcon("PointerDiamondFilled"),
44190
+ DiamondOutline: connectorAssetIcon("PointerDiamondOutline")
44191
+ };
44058
44192
  var lineStyleOptions = ConnectorLineStyles.map((style) => ({
44059
44193
  id: style,
44060
44194
  label: style[0].toUpperCase() + style.slice(1),
44061
44195
  value: style,
44062
- icon: symbolIcon2(`connector.lineStyle.${style}`)
44196
+ icon: lineStyleAssetIcons[style]
44063
44197
  }));
44064
44198
  var lineWidthOptions = ConnectionLineWidths.map((width) => ({
44065
44199
  id: `${width}`,
@@ -44070,13 +44204,13 @@ var pointerOptions = CONNECTOR_POINTER_TYPES.map((pointer) => ({
44070
44204
  id: pointer,
44071
44205
  label: pointer,
44072
44206
  value: pointer,
44073
- icon: symbolIcon2(`connector.pointer.${pointer}`)
44207
+ icon: pointerAssetIcons[pointer]
44074
44208
  }));
44075
44209
  var borderStyleOptions = ["solid", "dot", "dash", "longDash"].map((style) => ({
44076
44210
  id: style,
44077
44211
  label: style,
44078
44212
  value: style,
44079
- icon: symbolIcon2(`stroke.${style}`)
44213
+ icon: overlayAssetIcon(style === "solid" ? "src/Items/Shape/icons/StrokeSolid.icon.svg" : style === "dot" ? "src/Items/Shape/icons/StrokeDot.icon.svg" : style === "dash" ? "src/Items/Shape/icons/StrokeDash.icon.svg" : "src/Items/Shape/icons/StrokeLongDash.icon.svg")
44080
44214
  }));
44081
44215
  var connectorStyleControls = [
44082
44216
  {
@@ -44131,7 +44265,7 @@ var connectorStyleControls = [
44131
44265
  {
44132
44266
  id: "smartJump",
44133
44267
  label: "Smart jump",
44134
- icon: symbolIcon2("connector.smartJump"),
44268
+ icon: connectorAssetIcon("SmartJump"),
44135
44269
  valueSource: { kind: "itemProperty", property: "smartJump" },
44136
44270
  editor: { kind: "toggle", trueLabel: "On", falseLabel: "Off" },
44137
44271
  invoke: { kind: "setProperty", property: "smartJump" }
@@ -44190,7 +44324,7 @@ var connectorToolControls = [
44190
44324
  {
44191
44325
  id: "toolSmartJump",
44192
44326
  label: "Smart jump",
44193
- icon: symbolIcon2("connector.smartJump"),
44327
+ icon: connectorAssetIcon("SmartJump"),
44194
44328
  valueSource: { kind: "toolProperty", property: "smartJump" },
44195
44329
  editor: { kind: "toggle", trueLabel: "On", falseLabel: "Off" },
44196
44330
  invoke: { kind: "toolProperty", property: "smartJump" }
@@ -44202,25 +44336,33 @@ var connectorOverlay = {
44202
44336
  {
44203
44337
  id: "connector.switchPointers",
44204
44338
  label: "Switch arrows",
44205
- icon: symbolIcon2("connector.switchPointers"),
44339
+ icon: connectorAssetIcon("SwitchPointers"),
44206
44340
  target: "selection",
44207
44341
  invoke: { kind: "operation", class: "Connector", method: "switchPointers" }
44208
44342
  },
44209
44343
  {
44210
44344
  id: "connector.style",
44211
44345
  label: "Connector style",
44212
- icon: symbolIcon2("connector.style"),
44346
+ icon: connectorAssetIcon("Style"),
44213
44347
  target: "each",
44214
44348
  controls: connectorStyleControls,
44215
44349
  groups: [
44216
44350
  {
44217
44351
  id: "connectorStyle",
44218
44352
  label: "Connector style",
44219
- icon: symbolIcon2("connector.style"),
44353
+ icon: connectorAssetIcon("Style"),
44220
44354
  controlIds: connectorStyleControls.map((control) => control.id)
44221
44355
  }
44222
44356
  ]
44223
44357
  }
44358
+ ],
44359
+ sections: [
44360
+ {
44361
+ id: "connectorArrows",
44362
+ label: "Arrows",
44363
+ icon: connectorAssetIcon("Style"),
44364
+ actionIds: ["connector.switchPointers", "connector.style"]
44365
+ }
44224
44366
  ]
44225
44367
  };
44226
44368
  var addConnectorToolOverlay = {
@@ -44230,8 +44372,7 @@ var addConnectorToolOverlay = {
44230
44372
  createsItemType: "Connector",
44231
44373
  family: "connector",
44232
44374
  icon: {
44233
- kind: "symbol",
44234
- key: "tool.connector",
44375
+ ...connectorAssetIcon("Tool"),
44235
44376
  state: {
44236
44377
  swatch: { kind: "toolProperty", property: "lineColor" },
44237
44378
  note: "UI can tint or swatch the connector icon from the pending line color."
@@ -44241,12 +44382,24 @@ var addConnectorToolOverlay = {
44241
44382
  controls: connectorToolControls,
44242
44383
  groups: [
44243
44384
  {
44244
- id: "connectorToolStyle",
44385
+ id: "connectorToolQuickDefaults",
44386
+ label: "Connector quick defaults",
44387
+ icon: connectorAssetIcon("LineStraight"),
44388
+ controlIds: ["toolLineStyle"],
44389
+ description: "Primary defaults that match the compact create-surface picker."
44390
+ },
44391
+ {
44392
+ id: "connectorToolAdvancedDefaults",
44245
44393
  label: "Connector defaults",
44246
- icon: symbolIcon2("connector.style"),
44247
- controlIds: connectorToolControls.map((control) => control.id)
44394
+ icon: connectorAssetIcon("Style"),
44395
+ controlIds: connectorToolControls.map((control) => control.id),
44396
+ description: "Extended defaults available in richer create flows."
44248
44397
  }
44249
44398
  ]
44399
+ },
44400
+ launch: { kind: "activate-tool" },
44401
+ surface: {
44402
+ order: 8
44250
44403
  }
44251
44404
  };
44252
44405
 
@@ -58384,63 +58537,60 @@ var COLOR_PALETTE2 = [
58384
58537
  "#7B61FF",
58385
58538
  "transparent"
58386
58539
  ];
58387
- var inlineShapeAsset = (folder, file2 = folder) => ({
58388
- kind: "asset",
58389
- path: `src/Items/Shape/Basic/${folder}/${file2}.icon.svg`,
58390
- mimeType: "image/svg+xml"
58391
- });
58392
- var symbolIcon3 = (key) => ({ kind: "symbol", key });
58540
+ var inlineShapeAsset = (folder, file2 = folder) => overlayAssetIcon(`src/Items/Shape/Basic/${folder}/${file2}.icon.svg`);
58541
+ var localShapeIcon = (file2) => overlayAssetIcon(`src/Items/Shape/icons/${file2}.icon.svg`);
58542
+ var bpmnIcon = (folder) => overlayAssetIcon(`src/Items/Shape/BPMN/${folder}/${folder}.icon.svg`);
58393
58543
  var BASIC_INLINE_OPTIONS = [
58394
- { id: "rectangle", label: "Rectangle", value: "Rectangle", icon: inlineShapeAsset("Rectangle") },
58395
- { id: "rounded-rectangle", label: "Rounded rectangle", value: "RoundedRectangle", icon: inlineShapeAsset("RoundedRectangle") },
58396
- { id: "circle", label: "Circle", value: "Circle", icon: inlineShapeAsset("Circle") },
58397
- { id: "triangle", label: "Triangle", value: "Triangle", icon: inlineShapeAsset("Triangle") },
58398
- { id: "rhombus", label: "Rhombus", value: "Rhombus", icon: inlineShapeAsset("Rhombus") }
58544
+ { id: "rectangle", label: "Rectangle", value: "Rectangle", icon: inlineShapeAsset("Rectangle"), family: "basicShapes" },
58545
+ { id: "rounded-rectangle", label: "Rounded rectangle", value: "RoundedRectangle", icon: inlineShapeAsset("RoundedRectangle"), family: "basicShapes" },
58546
+ { id: "circle", label: "Circle", value: "Circle", icon: inlineShapeAsset("Circle"), family: "basicShapes" },
58547
+ { id: "triangle", label: "Triangle", value: "Triangle", icon: inlineShapeAsset("Triangle"), family: "basicShapes" },
58548
+ { id: "rhombus", label: "Rhombus", value: "Rhombus", icon: inlineShapeAsset("Rhombus"), family: "basicShapes" }
58399
58549
  ];
58400
58550
  var SHAPE_CATALOG_OPTIONS = [
58401
58551
  ...BASIC_INLINE_OPTIONS,
58402
- { id: "reversed-triangle", label: "Reversed triangle", value: "ReversedTriangle", icon: symbolIcon3("shape.reversedTriangle") },
58403
- { id: "arrow-left", label: "Arrow left", value: "ArrowLeft", icon: inlineShapeAsset("ArrowLeft") },
58404
- { id: "arrow-right", label: "Arrow right", value: "ArrowRight", icon: inlineShapeAsset("ArrowRight") },
58405
- { id: "arrow-left-right", label: "Arrow left right", value: "ArrowLeftRight", icon: inlineShapeAsset("ArrowLeftRight") },
58406
- { id: "arrow-block-left", label: "Arrow block left", value: "ArrowBlockLeft", icon: symbolIcon3("shape.arrowBlockLeft") },
58407
- { id: "arrow-block-right", label: "Arrow block right", value: "ArrowBlockRight", icon: symbolIcon3("shape.arrowBlockRight") },
58408
- { id: "cloud", label: "Cloud", value: "Cloud", icon: inlineShapeAsset("Cloud") },
58409
- { id: "cross", label: "Cross", value: "Cross", icon: inlineShapeAsset("Cross") },
58410
- { id: "cylinder", label: "Cylinder", value: "Cylinder", icon: inlineShapeAsset("Cylinder") },
58411
- { id: "hexagon", label: "Hexagon", value: "Hexagon", icon: inlineShapeAsset("Hexagon") },
58412
- { id: "octagon", label: "Octagon", value: "Octagon", icon: inlineShapeAsset("Octagon") },
58413
- { id: "parallelogram", label: "Parallelogram", value: "Parallelogram", icon: inlineShapeAsset("Parallelogram") },
58414
- { id: "reversed-parallelogram", label: "Reversed parallelogram", value: "ReversedParallelogram", icon: symbolIcon3("shape.reversedParallelogram") },
58415
- { id: "pentagon", label: "Pentagon", value: "Pentagon", icon: inlineShapeAsset("Pentagon") },
58416
- { id: "predefined-process", label: "Predefined process", value: "PredefinedProcess", icon: symbolIcon3("shape.predefinedProcess") },
58417
- { id: "speech-bubble", label: "Speech bubble", value: "SpeachBubble", icon: inlineShapeAsset("SpeachBubble") },
58418
- { id: "star", label: "Star", value: "Star", icon: inlineShapeAsset("Star") },
58419
- { id: "trapezoid", label: "Trapezoid", value: "Trapezoid", icon: inlineShapeAsset("Trapezoid") },
58420
- { id: "braces-left", label: "Braces left", value: "BracesLeft", icon: inlineShapeAsset("BracesLeft", "BracesLeft") },
58421
- { id: "braces-right", label: "Braces right", value: "BracesRight", icon: inlineShapeAsset("BracesRight", "BracesRight") },
58422
- { id: "bpmn-task", label: "BPMN task", value: "BPMN_Task", icon: symbolIcon3("shape.bpmn.task") },
58423
- { id: "bpmn-gateway", label: "BPMN gateway", value: "BPMN_Gateway", icon: symbolIcon3("shape.bpmn.gateway") },
58424
- { id: "bpmn-gateway-parallel", label: "BPMN gateway parallel", value: "BPMN_GatewayParallel", icon: symbolIcon3("shape.bpmn.gatewayParallel") },
58425
- { id: "bpmn-gateway-xor", label: "BPMN gateway XOR", value: "BPMN_GatewayXOR", icon: symbolIcon3("shape.bpmn.gatewayXor") },
58426
- { id: "bpmn-start-event", label: "BPMN start event", value: "BPMN_StartEvent", icon: symbolIcon3("shape.bpmn.startEvent") },
58427
- { id: "bpmn-start-event-non-interrupting", label: "BPMN start event non interrupting", value: "BPMN_StartEventNoneInterrupting", icon: symbolIcon3("shape.bpmn.startEventNoneInterrupting") },
58428
- { id: "bpmn-end-event", label: "BPMN end event", value: "BPMN_EndEvent", icon: symbolIcon3("shape.bpmn.endEvent") },
58429
- { id: "bpmn-intermediate-event", label: "BPMN intermediate event", value: "BPMN_IntermediateEvent", icon: symbolIcon3("shape.bpmn.intermediateEvent") },
58430
- { id: "bpmn-intermediate-event-none-interrupting", label: "BPMN intermediate event none interrupting", value: "BPMN_IntermediateEventNoneInterrupting", icon: symbolIcon3("shape.bpmn.intermediateEventNoneInterrupting") },
58431
- { id: "bpmn-data-object", label: "BPMN data object", value: "BPMN_DataObject", icon: symbolIcon3("shape.bpmn.dataObject") },
58432
- { id: "bpmn-data-store", label: "BPMN data store", value: "BPMN_DataStore", icon: symbolIcon3("shape.bpmn.dataStore") },
58433
- { id: "bpmn-participant", label: "BPMN participant", value: "BPMN_Participant", icon: symbolIcon3("shape.bpmn.participant") },
58434
- { id: "bpmn-transaction", label: "BPMN transaction", value: "BPMN_Transaction", icon: symbolIcon3("shape.bpmn.transaction") },
58435
- { id: "bpmn-event-subprocess", label: "BPMN event subprocess", value: "BPMN_EventSubprocess", icon: symbolIcon3("shape.bpmn.eventSubprocess") },
58436
- { id: "bpmn-group", label: "BPMN group", value: "BPMN_Group", icon: symbolIcon3("shape.bpmn.group") },
58437
- { id: "bpmn-annotation", label: "BPMN annotation", value: "BPMN_Annotation", icon: symbolIcon3("shape.bpmn.annotation") }
58552
+ { id: "reversed-triangle", label: "Reversed triangle", value: "ReversedTriangle", icon: localShapeIcon("ReversedTriangle"), family: "basicShapes" },
58553
+ { id: "arrow-left", label: "Arrow left", value: "ArrowLeft", icon: inlineShapeAsset("ArrowLeft"), family: "basicShapes" },
58554
+ { id: "arrow-right", label: "Arrow right", value: "ArrowRight", icon: inlineShapeAsset("ArrowRight"), family: "basicShapes" },
58555
+ { id: "arrow-left-right", label: "Arrow left right", value: "ArrowLeftRight", icon: inlineShapeAsset("ArrowLeftRight"), family: "basicShapes" },
58556
+ { id: "arrow-block-left", label: "Arrow block left", value: "ArrowBlockLeft", icon: localShapeIcon("ArrowBlockLeft"), family: "basicShapes" },
58557
+ { id: "arrow-block-right", label: "Arrow block right", value: "ArrowBlockRight", icon: localShapeIcon("ArrowBlockRight"), family: "basicShapes" },
58558
+ { id: "cloud", label: "Cloud", value: "Cloud", icon: inlineShapeAsset("Cloud"), family: "basicShapes" },
58559
+ { id: "cross", label: "Cross", value: "Cross", icon: inlineShapeAsset("Cross"), family: "basicShapes" },
58560
+ { id: "cylinder", label: "Cylinder", value: "Cylinder", icon: inlineShapeAsset("Cylinder"), family: "basicShapes" },
58561
+ { id: "hexagon", label: "Hexagon", value: "Hexagon", icon: inlineShapeAsset("Hexagon"), family: "basicShapes" },
58562
+ { id: "octagon", label: "Octagon", value: "Octagon", icon: inlineShapeAsset("Octagon"), family: "basicShapes" },
58563
+ { id: "parallelogram", label: "Parallelogram", value: "Parallelogram", icon: inlineShapeAsset("Parallelogram"), family: "basicShapes" },
58564
+ { id: "reversed-parallelogram", label: "Reversed parallelogram", value: "ReversedParallelogram", icon: localShapeIcon("ReversedParallelogram"), family: "basicShapes" },
58565
+ { id: "pentagon", label: "Pentagon", value: "Pentagon", icon: inlineShapeAsset("Pentagon"), family: "basicShapes" },
58566
+ { id: "predefined-process", label: "Predefined process", value: "PredefinedProcess", icon: localShapeIcon("PredefinedProcess"), family: "basicShapes" },
58567
+ { id: "speech-bubble", label: "Speech bubble", value: "SpeachBubble", icon: inlineShapeAsset("SpeachBubble"), family: "basicShapes" },
58568
+ { id: "star", label: "Star", value: "Star", icon: inlineShapeAsset("Star"), family: "basicShapes" },
58569
+ { id: "trapezoid", label: "Trapezoid", value: "Trapezoid", icon: inlineShapeAsset("Trapezoid"), family: "basicShapes" },
58570
+ { id: "braces-left", label: "Braces left", value: "BracesLeft", icon: inlineShapeAsset("BracesLeft", "BracesLeft"), family: "basicShapes" },
58571
+ { id: "braces-right", label: "Braces right", value: "BracesRight", icon: inlineShapeAsset("BracesRight", "BracesRight"), family: "basicShapes" },
58572
+ { id: "bpmn-task", label: "BPMN task", value: "BPMN_Task", icon: bpmnIcon("BPMN_Task"), family: "bpmn" },
58573
+ { id: "bpmn-gateway", label: "BPMN gateway", value: "BPMN_Gateway", icon: bpmnIcon("BPMN_Gateway"), family: "bpmn" },
58574
+ { id: "bpmn-gateway-parallel", label: "BPMN gateway parallel", value: "BPMN_GatewayParallel", icon: bpmnIcon("BPMN_GatewayParallel"), family: "bpmn" },
58575
+ { id: "bpmn-gateway-xor", label: "BPMN gateway XOR", value: "BPMN_GatewayXOR", icon: bpmnIcon("BPMN_GatewayXOR"), family: "bpmn" },
58576
+ { id: "bpmn-start-event", label: "BPMN start event", value: "BPMN_StartEvent", icon: bpmnIcon("BPMN_StartEvent"), family: "bpmn" },
58577
+ { id: "bpmn-start-event-non-interrupting", label: "BPMN start event non interrupting", value: "BPMN_StartEventNoneInterrupting", icon: bpmnIcon("BPMN_StartEventNoneInterrupting"), family: "bpmn" },
58578
+ { id: "bpmn-end-event", label: "BPMN end event", value: "BPMN_EndEvent", icon: bpmnIcon("BPMN_EndEvent"), family: "bpmn" },
58579
+ { id: "bpmn-intermediate-event", label: "BPMN intermediate event", value: "BPMN_IntermediateEvent", icon: bpmnIcon("BPMN_IntermediateEvent"), family: "bpmn" },
58580
+ { id: "bpmn-intermediate-event-none-interrupting", label: "BPMN intermediate event none interrupting", value: "BPMN_IntermediateEventNoneInterrupting", icon: bpmnIcon("BPMN_IntermediateEventNoneInterrupting"), family: "bpmn" },
58581
+ { id: "bpmn-data-object", label: "BPMN data object", value: "BPMN_DataObject", icon: bpmnIcon("BPMN_DataObject"), family: "bpmn" },
58582
+ { id: "bpmn-data-store", label: "BPMN data store", value: "BPMN_DataStore", icon: bpmnIcon("BPMN_DataStore"), family: "bpmn" },
58583
+ { id: "bpmn-participant", label: "BPMN participant", value: "BPMN_Participant", icon: bpmnIcon("BPMN_Participant"), family: "bpmn" },
58584
+ { id: "bpmn-transaction", label: "BPMN transaction", value: "BPMN_Transaction", icon: bpmnIcon("BPMN_Transaction"), family: "bpmn" },
58585
+ { id: "bpmn-event-subprocess", label: "BPMN event subprocess", value: "BPMN_EventSubprocess", icon: bpmnIcon("BPMN_EventSubprocess"), family: "bpmn" },
58586
+ { id: "bpmn-group", label: "BPMN group", value: "BPMN_Group", icon: bpmnIcon("BPMN_Group"), family: "bpmn" },
58587
+ { id: "bpmn-annotation", label: "BPMN annotation", value: "BPMN_Annotation", icon: bpmnIcon("BPMN_Annotation"), family: "bpmn" }
58438
58588
  ];
58439
58589
  var BORDER_STYLE_OPTIONS = [
58440
- { id: "solid", label: "Solid", value: "solid", icon: symbolIcon3("stroke.solid") },
58441
- { id: "dot", label: "Dot", value: "dot", icon: symbolIcon3("stroke.dot") },
58442
- { id: "dash", label: "Dash", value: "dash", icon: symbolIcon3("stroke.dash") },
58443
- { id: "long-dash", label: "Long dash", value: "longDash", icon: symbolIcon3("stroke.longDash") }
58590
+ { id: "solid", label: "Solid", value: "solid", icon: localShapeIcon("StrokeSolid") },
58591
+ { id: "dot", label: "Dot", value: "dot", icon: localShapeIcon("StrokeDot") },
58592
+ { id: "dash", label: "Dash", value: "dash", icon: localShapeIcon("StrokeDash") },
58593
+ { id: "long-dash", label: "Long dash", value: "longDash", icon: localShapeIcon("StrokeLongDash") }
58444
58594
  ];
58445
58595
  var shapeTypeControl = {
58446
58596
  id: "shapeType",
@@ -58449,6 +58599,12 @@ var shapeTypeControl = {
58449
58599
  editor: {
58450
58600
  kind: "enum-icon",
58451
58601
  options: BASIC_INLINE_OPTIONS,
58602
+ layout: "grid",
58603
+ quickOptions: {
58604
+ family: "basicShapes",
58605
+ maxVisible: 18,
58606
+ overflow: "show-more"
58607
+ },
58452
58608
  catalog: {
58453
58609
  kind: "catalog",
58454
58610
  label: "Shape catalog",
@@ -58517,7 +58673,7 @@ var shapeOverlay = {
58517
58673
  {
58518
58674
  id: "shape.shapeType",
58519
58675
  label: "Shape type",
58520
- icon: symbolIcon3("shape.type"),
58676
+ icon: localShapeIcon("Type"),
58521
58677
  target: "each",
58522
58678
  controls: [shapeTypeControl]
58523
58679
  },
@@ -58543,6 +58699,20 @@ var shapeOverlay = {
58543
58699
  }
58544
58700
  ]
58545
58701
  }
58702
+ ],
58703
+ sections: [
58704
+ {
58705
+ id: "shapeTypeSection",
58706
+ label: "Type",
58707
+ icon: localShapeIcon("Type"),
58708
+ actionIds: ["shape.shapeType"]
58709
+ },
58710
+ {
58711
+ id: "shapeAppearanceSection",
58712
+ label: "Appearance",
58713
+ icon: localShapeIcon("Stroke"),
58714
+ actionIds: ["shape.fill", "shape.strokeStyle"]
58715
+ }
58546
58716
  ]
58547
58717
  };
58548
58718
  var addShapeToolOverlay = {
@@ -58552,8 +58722,7 @@ var addShapeToolOverlay = {
58552
58722
  createsItemType: "Shape",
58553
58723
  family: "shape",
58554
58724
  icon: {
58555
- kind: "symbol",
58556
- key: "tool.shape",
58725
+ ...overlayAssetIcon("src/Items/Shape/icons/Tool.icon.svg"),
58557
58726
  state: {
58558
58727
  note: "UI may swap the top-level icon to the selected shape option when desired."
58559
58728
  }
@@ -58567,6 +58736,12 @@ var addShapeToolOverlay = {
58567
58736
  editor: {
58568
58737
  kind: "enum-icon",
58569
58738
  options: BASIC_INLINE_OPTIONS,
58739
+ layout: "grid",
58740
+ quickOptions: {
58741
+ family: "basicShapes",
58742
+ maxVisible: 18,
58743
+ overflow: "show-more"
58744
+ },
58570
58745
  catalog: {
58571
58746
  kind: "catalog",
58572
58747
  label: "Shape catalog",
@@ -58577,6 +58752,10 @@ var addShapeToolOverlay = {
58577
58752
  invoke: { kind: "toolProperty", property: "type" }
58578
58753
  }
58579
58754
  ]
58755
+ },
58756
+ launch: { kind: "activate-tool" },
58757
+ surface: {
58758
+ order: 7
58580
58759
  }
58581
58760
  };
58582
58761
 
@@ -62983,14 +63162,14 @@ var cardOverlay = {
62983
63162
  {
62984
63163
  id: "card.flip",
62985
63164
  label: "Flip card",
62986
- icon: { kind: "symbol", key: "card.flip" },
63165
+ icon: overlayAssetIcon("src/Items/Card/icons/Flip.icon.svg"),
62987
63166
  target: "each",
62988
63167
  invoke: { kind: "customMethod", methodName: "toggleIsOpen" }
62989
63168
  },
62990
63169
  {
62991
63170
  id: "card.rotateCcw",
62992
63171
  label: "Rotate 90 counter clockwise",
62993
- icon: { kind: "symbol", key: "card.rotateCcw" },
63172
+ icon: overlayAssetIcon("src/Items/Card/icons/RotateCcw.icon.svg"),
62994
63173
  target: "each",
62995
63174
  invoke: {
62996
63175
  kind: "customMethod",
@@ -63001,7 +63180,7 @@ var cardOverlay = {
63001
63180
  {
63002
63181
  id: "card.rotateCw",
63003
63182
  label: "Rotate 90 clockwise",
63004
- icon: { kind: "symbol", key: "card.rotateCw" },
63183
+ icon: overlayAssetIcon("src/Items/Card/icons/RotateCw.icon.svg"),
63005
63184
  target: "each",
63006
63185
  invoke: {
63007
63186
  kind: "customMethod",
@@ -63255,28 +63434,28 @@ var deckOverlay = {
63255
63434
  {
63256
63435
  id: "deck.getTopCard",
63257
63436
  label: "Draw top card",
63258
- icon: { kind: "symbol", key: "deck.drawTop" },
63437
+ icon: overlayAssetIcon("src/Items/Deck/icons/DrawTop.icon.svg"),
63259
63438
  target: "single",
63260
63439
  invoke: { kind: "customMethod", methodName: "getTopCard" }
63261
63440
  },
63262
63441
  {
63263
63442
  id: "deck.getBottomCard",
63264
63443
  label: "Draw bottom card",
63265
- icon: { kind: "symbol", key: "deck.drawBottom" },
63444
+ icon: overlayAssetIcon("src/Items/Deck/icons/DrawBottom.icon.svg"),
63266
63445
  target: "single",
63267
63446
  invoke: { kind: "customMethod", methodName: "getBottomCard" }
63268
63447
  },
63269
63448
  {
63270
63449
  id: "deck.getRandomCard",
63271
63450
  label: "Draw random card",
63272
- icon: { kind: "symbol", key: "deck.drawRandom" },
63451
+ icon: overlayAssetIcon("src/Items/Deck/icons/DrawRandom.icon.svg"),
63273
63452
  target: "single",
63274
63453
  invoke: { kind: "customMethod", methodName: "getRandomCard" }
63275
63454
  },
63276
63455
  {
63277
63456
  id: "deck.getCards",
63278
63457
  label: "Draw cards",
63279
- icon: { kind: "symbol", key: "deck.drawMany" },
63458
+ icon: overlayAssetIcon("src/Items/Deck/icons/DrawMany.icon.svg"),
63280
63459
  target: "single",
63281
63460
  controls: [
63282
63461
  {
@@ -63298,14 +63477,14 @@ var deckOverlay = {
63298
63477
  {
63299
63478
  id: "deck.shuffle",
63300
63479
  label: "Shuffle",
63301
- icon: { kind: "symbol", key: "deck.shuffle" },
63480
+ icon: overlayAssetIcon("src/Items/Deck/icons/Shuffle.icon.svg"),
63302
63481
  target: "single",
63303
63482
  invoke: { kind: "customMethod", methodName: "shuffleDeck" }
63304
63483
  },
63305
63484
  {
63306
63485
  id: "deck.flip",
63307
63486
  label: "Flip deck",
63308
- icon: { kind: "symbol", key: "deck.flip" },
63487
+ icon: overlayAssetIcon("src/Items/Deck/icons/Flip.icon.svg"),
63309
63488
  target: "single",
63310
63489
  invoke: { kind: "customMethod", methodName: "flipDeck" }
63311
63490
  }
@@ -63314,7 +63493,7 @@ var deckOverlay = {
63314
63493
  var createDeckSelectionAction = {
63315
63494
  id: "deck.createFromSelection",
63316
63495
  label: "Create deck",
63317
- icon: { kind: "symbol", key: "deck.createFromSelection" },
63496
+ icon: overlayAssetIcon("src/Items/Deck/icons/CreateFromSelection.icon.svg"),
63318
63497
  description: "Stacks selected cards into a new deck, or merges selected cards and decks into one deck.",
63319
63498
  invoke: { kind: "selectionMethod", methodName: "createDeck" },
63320
63499
  isAvailable: (items) => {
@@ -63883,14 +64062,14 @@ var diceOverlay = {
63883
64062
  {
63884
64063
  id: "dice.throw",
63885
64064
  label: "Throw dice",
63886
- icon: { kind: "symbol", key: "dice.throw" },
64065
+ icon: overlayAssetIcon("src/Items/Dice/icons/Throw.icon.svg"),
63887
64066
  target: "each",
63888
64067
  invoke: { kind: "customMethod", methodName: "throwDice" }
63889
64068
  },
63890
64069
  {
63891
64070
  id: "dice.range",
63892
64071
  label: "Range",
63893
- icon: { kind: "symbol", key: "dice.range" },
64072
+ icon: overlayAssetIcon("src/Items/Dice/icons/Range.icon.svg"),
63894
64073
  target: "each",
63895
64074
  controls: [
63896
64075
  {
@@ -63926,6 +64105,14 @@ var diceOverlay = {
63926
64105
  }
63927
64106
  ]
63928
64107
  }
64108
+ ],
64109
+ sections: [
64110
+ {
64111
+ id: "diceActions",
64112
+ label: "Dice",
64113
+ icon: overlayAssetIcon("src/Items/Dice/icons/Throw.icon.svg"),
64114
+ actionIds: ["dice.throw", "dice.range", "dice.fill"]
64115
+ }
63929
64116
  ]
63930
64117
  };
63931
64118
  var addDiceToolOverlay = {
@@ -63934,7 +64121,19 @@ var addDiceToolOverlay = {
63934
64121
  kind: "create",
63935
64122
  createsItemType: "Dice",
63936
64123
  family: "game",
63937
- icon: { kind: "symbol", key: "tool.dice" }
64124
+ icon: overlayAssetIcon("src/Items/Dice/icons/Tool.icon.svg"),
64125
+ launch: { kind: "activate-tool" },
64126
+ surface: {
64127
+ order: 1,
64128
+ group: {
64129
+ id: "gameItems",
64130
+ label: "Game items",
64131
+ icon: overlayAssetIcon("src/Items/Dice/icons/Tool.icon.svg"),
64132
+ order: 1,
64133
+ behavior: "open-panel"
64134
+ },
64135
+ relatedToolNames: ["AddScreen", "AddPouch"]
64136
+ }
63938
64137
  };
63939
64138
 
63940
64139
  // src/Items/Dice/Dice.ts
@@ -64282,8 +64481,7 @@ var screenOverlay = {
64282
64481
  id: "screen.background",
64283
64482
  label: "Background",
64284
64483
  icon: {
64285
- kind: "symbol",
64286
- key: "screen.background",
64484
+ ...overlayAssetIcon("src/Items/Screen/icons/Background.icon.svg"),
64287
64485
  state: { swatch: { kind: "itemProperty", property: "backgroundColor" } }
64288
64486
  },
64289
64487
  target: "each",
@@ -64300,6 +64498,97 @@ var screenOverlay = {
64300
64498
  invoke: { kind: "setProperty", property: "backgroundColor" }
64301
64499
  }
64302
64500
  ]
64501
+ },
64502
+ {
64503
+ id: "screen.stroke",
64504
+ label: "Stroke",
64505
+ icon: {
64506
+ ...overlayAssetIcon("src/Items/Shape/icons/Stroke.icon.svg"),
64507
+ state: { swatch: { kind: "itemProperty", property: "borderColor" } }
64508
+ },
64509
+ target: "each",
64510
+ controls: [
64511
+ {
64512
+ id: "borderColor",
64513
+ label: "Border color",
64514
+ valueSource: { kind: "itemProperty", property: "borderColor" },
64515
+ editor: {
64516
+ kind: "color",
64517
+ palette: ["#000000", "#FFFFFF", "#888888", "transparent"],
64518
+ allowTransparent: true,
64519
+ presentation: "square"
64520
+ },
64521
+ invoke: { kind: "setProperty", property: "borderColor" }
64522
+ },
64523
+ {
64524
+ id: "borderWidth",
64525
+ label: "Border width",
64526
+ valueSource: { kind: "itemProperty", property: "borderWidth" },
64527
+ editor: {
64528
+ kind: "number-stepper",
64529
+ min: 0,
64530
+ max: 8,
64531
+ step: 1,
64532
+ presets: [0, 1, 2, 4],
64533
+ unit: "px"
64534
+ },
64535
+ invoke: { kind: "setProperty", property: "borderWidth" }
64536
+ }
64537
+ ],
64538
+ groups: [
64539
+ {
64540
+ id: "screenStrokeStyle",
64541
+ label: "Stroke",
64542
+ icon: overlayAssetIcon("src/Items/Shape/icons/Stroke.icon.svg"),
64543
+ controlIds: ["borderColor", "borderWidth"]
64544
+ }
64545
+ ]
64546
+ },
64547
+ {
64548
+ id: "screen.backgroundImage",
64549
+ label: "Background image",
64550
+ icon: overlayAssetIcon("src/Items/Screen/icons/BackgroundImage.icon.svg"),
64551
+ target: "each",
64552
+ when: {
64553
+ kind: "falsy",
64554
+ source: { kind: "itemProperty", property: "backgroundUrl" }
64555
+ },
64556
+ controls: [
64557
+ {
64558
+ id: "backgroundUrl",
64559
+ label: "Background image",
64560
+ valueSource: { kind: "itemProperty", property: "backgroundUrl" },
64561
+ editor: {
64562
+ kind: "asset-upload",
64563
+ mode: "single",
64564
+ accept: ["image/*"]
64565
+ },
64566
+ invoke: { kind: "setProperty", property: "backgroundUrl" }
64567
+ }
64568
+ ]
64569
+ },
64570
+ {
64571
+ id: "screen.removeBackgroundImage",
64572
+ label: "Remove background image",
64573
+ icon: overlayAssetIcon("src/Items/Screen/icons/BackgroundImageRemove.icon.svg"),
64574
+ target: "each",
64575
+ when: {
64576
+ kind: "truthy",
64577
+ source: { kind: "itemProperty", property: "backgroundUrl" }
64578
+ },
64579
+ invoke: {
64580
+ kind: "customMethod",
64581
+ methodName: "setBackgroundUrl",
64582
+ args: [{ kind: "static", value: "" }]
64583
+ }
64584
+ }
64585
+ ],
64586
+ sections: [
64587
+ {
64588
+ id: "screenAppearance",
64589
+ label: "Appearance",
64590
+ icon: overlayAssetIcon("src/Items/Screen/icons/Background.icon.svg"),
64591
+ actionIds: ["screen.background", "screen.stroke", "screen.backgroundImage", "screen.removeBackgroundImage"]
64303
64592
  }
64304
64593
  ]
64305
64594
  };
@@ -64309,7 +64598,19 @@ var addScreenToolOverlay = {
64309
64598
  kind: "create",
64310
64599
  createsItemType: "Screen",
64311
64600
  family: "container",
64312
- icon: { kind: "symbol", key: "tool.screen" }
64601
+ icon: overlayAssetIcon("src/Items/Screen/icons/Tool.icon.svg"),
64602
+ launch: { kind: "activate-tool" },
64603
+ surface: {
64604
+ order: 2,
64605
+ group: {
64606
+ id: "gameItems",
64607
+ label: "Game items",
64608
+ icon: overlayAssetIcon("src/Items/Dice/icons/Tool.icon.svg"),
64609
+ order: 1,
64610
+ behavior: "open-panel"
64611
+ },
64612
+ relatedToolNames: ["AddDice", "AddPouch"]
64613
+ }
64313
64614
  };
64314
64615
  var addPouchToolOverlay = {
64315
64616
  toolName: "AddPouch",
@@ -64317,7 +64618,19 @@ var addPouchToolOverlay = {
64317
64618
  kind: "create",
64318
64619
  createsItemType: "Screen",
64319
64620
  family: "container",
64320
- icon: { kind: "symbol", key: "tool.pouch" }
64621
+ icon: overlayAssetIcon("src/Items/Screen/icons/Pouch.icon.svg"),
64622
+ launch: { kind: "activate-tool" },
64623
+ surface: {
64624
+ order: 3,
64625
+ group: {
64626
+ id: "gameItems",
64627
+ label: "Game items",
64628
+ icon: overlayAssetIcon("src/Items/Dice/icons/Tool.icon.svg"),
64629
+ order: 1,
64630
+ behavior: "open-panel"
64631
+ },
64632
+ relatedToolNames: ["AddDice", "AddScreen"]
64633
+ }
64321
64634
  };
64322
64635
 
64323
64636
  // src/Items/Screen/Screen.ts
@@ -72277,8 +72590,7 @@ var addDrawingToolOverlay = {
72277
72590
  family: "drawing",
72278
72591
  createsItemType: "Drawing",
72279
72592
  icon: {
72280
- kind: "symbol",
72281
- key: "tool.pen",
72593
+ ...overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
72282
72594
  state: {
72283
72595
  swatch: { kind: "toolProperty", property: "strokeColor" },
72284
72596
  note: "UI can show the pending pen color in the icon."
@@ -72290,10 +72602,22 @@ var addDrawingToolOverlay = {
72290
72602
  {
72291
72603
  id: "drawingDefaults",
72292
72604
  label: "Pen defaults",
72293
- icon: { kind: "symbol", key: "tool.pen" },
72605
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
72294
72606
  controlIds: strokeControls2.map((control) => control.id)
72295
72607
  }
72296
72608
  ]
72609
+ },
72610
+ launch: { kind: "activate-tool" },
72611
+ surface: {
72612
+ order: 1,
72613
+ group: {
72614
+ id: "drawingTools",
72615
+ label: "Drawing",
72616
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
72617
+ order: 5,
72618
+ behavior: "activate-last-used"
72619
+ },
72620
+ relatedToolNames: ["AddHighlighter", "Eraser"]
72297
72621
  }
72298
72622
  };
72299
72623
  var addHighlighterToolOverlay = {
@@ -72303,8 +72627,7 @@ var addHighlighterToolOverlay = {
72303
72627
  family: "drawing",
72304
72628
  createsItemType: "Drawing",
72305
72629
  icon: {
72306
- kind: "symbol",
72307
- key: "tool.highlighter",
72630
+ ...overlayAssetIcon("src/Items/Drawing/icons/Highlighter.icon.svg"),
72308
72631
  state: {
72309
72632
  swatch: { kind: "toolProperty", property: "strokeColor" },
72310
72633
  note: "UI can show the pending highlighter color in the icon."
@@ -72316,10 +72639,22 @@ var addHighlighterToolOverlay = {
72316
72639
  {
72317
72640
  id: "highlighterDefaults",
72318
72641
  label: "Highlighter defaults",
72319
- icon: { kind: "symbol", key: "tool.highlighter" },
72642
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Highlighter.icon.svg"),
72320
72643
  controlIds: strokeControls2.map((control) => control.id)
72321
72644
  }
72322
72645
  ]
72646
+ },
72647
+ launch: { kind: "activate-tool" },
72648
+ surface: {
72649
+ order: 2,
72650
+ group: {
72651
+ id: "drawingTools",
72652
+ label: "Drawing",
72653
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
72654
+ order: 5,
72655
+ behavior: "activate-last-used"
72656
+ },
72657
+ relatedToolNames: ["AddDrawing", "Eraser"]
72323
72658
  }
72324
72659
  };
72325
72660
  var eraserToolOverlay = {
@@ -72327,7 +72662,7 @@ var eraserToolOverlay = {
72327
72662
  label: "Eraser",
72328
72663
  kind: "mode",
72329
72664
  family: "drawing",
72330
- icon: { kind: "symbol", key: "tool.eraser" },
72665
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Eraser.icon.svg"),
72331
72666
  defaults: {
72332
72667
  controls: [
72333
72668
  {
@@ -72344,6 +72679,18 @@ var eraserToolOverlay = {
72344
72679
  invoke: { kind: "toolProperty", property: "strokeWidth" }
72345
72680
  }
72346
72681
  ]
72682
+ },
72683
+ launch: { kind: "activate-tool" },
72684
+ surface: {
72685
+ order: 3,
72686
+ group: {
72687
+ id: "drawingTools",
72688
+ label: "Drawing",
72689
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
72690
+ order: 5,
72691
+ behavior: "activate-last-used"
72692
+ },
72693
+ relatedToolNames: ["AddDrawing", "AddHighlighter"]
72347
72694
  }
72348
72695
  };
72349
72696
 
@@ -72544,7 +72891,7 @@ var frameTypeOptions = Object.keys(Frames).map((frameType) => ({
72544
72891
  id: frameType,
72545
72892
  label: frameType === "Custom" ? "Custom" : Frames[frameType].name,
72546
72893
  value: frameType,
72547
- icon: { kind: "symbol", key: `frame.${frameType}` }
72894
+ icon: overlayAssetIcon(frameType === "Custom" ? "src/Items/Frame/Basic/Custom/Custom.icon.svg" : frameType === "A4" ? "src/Items/Frame/Basic/A4/A4.icon.svg" : frameType === "Letter" ? "src/Items/Frame/Basic/Letter/Letter.icon.svg" : frameType === "Frame16x9" ? "src/Items/Frame/Basic/16-9/16-9.icon.svg" : frameType === "Frame4x3" ? "src/Items/Frame/Basic/4-3/4-3.icon.svg" : frameType === "Frame1x1" ? "src/Items/Frame/Basic/1-1/1-1.icon.svg" : frameType === "Frame3x2" ? "src/Items/Frame/Basic/3-2/3-2.icon.svg" : "src/Items/Frame/Basic/9-18/9-18.icon.svg")
72548
72895
  }));
72549
72896
  var addFrameToolOverlay = {
72550
72897
  toolName: "AddFrame",
@@ -72552,7 +72899,7 @@ var addFrameToolOverlay = {
72552
72899
  kind: "create",
72553
72900
  createsItemType: "Frame",
72554
72901
  family: "frame",
72555
- icon: { kind: "symbol", key: "tool.frame" },
72902
+ icon: overlayAssetIcon("src/Items/Frame/Frame.icon.svg"),
72556
72903
  defaults: {
72557
72904
  controls: [
72558
72905
  {
@@ -72566,6 +72913,10 @@ var addFrameToolOverlay = {
72566
72913
  invoke: { kind: "toolProperty", property: "shape" }
72567
72914
  }
72568
72915
  ]
72916
+ },
72917
+ launch: { kind: "activate-tool" },
72918
+ surface: {
72919
+ order: 10
72569
72920
  }
72570
72921
  };
72571
72922
 
@@ -72930,8 +73281,7 @@ var addStickerToolOverlay = {
72930
73281
  createsItemType: "Sticker",
72931
73282
  family: "sticker",
72932
73283
  icon: {
72933
- kind: "symbol",
72934
- key: "tool.sticker",
73284
+ ...overlayAssetIcon("src/Items/Sticker/Path/Sticker.icon.svg"),
72935
73285
  state: {
72936
73286
  swatch: { kind: "toolProperty", property: "backgroundColor" }
72937
73287
  }
@@ -72942,10 +73292,14 @@ var addStickerToolOverlay = {
72942
73292
  id: "stickerBackgroundColor",
72943
73293
  label: "Color",
72944
73294
  valueSource: { kind: "toolProperty", property: "backgroundColor" },
72945
- editor: { kind: "color", palette: STICKER_COLORS },
73295
+ editor: { kind: "color", palette: STICKER_COLORS, presentation: "sticker" },
72946
73296
  invoke: { kind: "toolProperty", property: "backgroundColor" }
72947
73297
  }
72948
73298
  ]
73299
+ },
73300
+ launch: { kind: "activate-tool" },
73301
+ surface: {
73302
+ order: 9
72949
73303
  }
72950
73304
  };
72951
73305
 
@@ -75380,12 +75734,16 @@ export {
75380
75734
  positionAbsolutely,
75381
75735
  parsersHTML,
75382
75736
  parseCssRgb,
75737
+ overlaySymbolIcon,
75738
+ overlayAssetIcon,
75383
75739
  omitDefaultProperties,
75384
75740
  messageRouter,
75385
75741
  meetsWCAG_AAA,
75386
75742
  meetsWCAG_AA,
75743
+ matchesOverlayCondition,
75387
75744
  listToolOverlays,
75388
75745
  listSelectionActions,
75746
+ listCreateSurfaceEntries,
75389
75747
  itemOverlays,
75390
75748
  itemFactories2 as itemFactories,
75391
75749
  itemOverlays as itemActions,
@@ -75478,6 +75836,7 @@ export {
75478
75836
  PRESENCE_CLEANUP_USER_TIMER,
75479
75837
  PRESENCE_CLEANUP_IDLE_TIMER,
75480
75838
  OVERLAY_SYMBOL_KEYS,
75839
+ OVERLAY_ICON_SPRITE_PATH,
75481
75840
  MiroItemConverter,
75482
75841
  Mbr,
75483
75842
  Matrix,