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.
package/dist/esm/node.js CHANGED
@@ -12274,6 +12274,28 @@ function toLocalTransformOp(op, containerMatrix, itemId) {
12274
12274
  return op;
12275
12275
  }
12276
12276
  }
12277
+ // src/Overlay/IconPack.ts
12278
+ var OVERLAY_ICON_SPRITE_PATH = "src/Overlay/overlay-icons.svg";
12279
+ function overlaySymbolIcon(key) {
12280
+ return {
12281
+ kind: "symbol",
12282
+ key,
12283
+ sourcePath: OVERLAY_ICON_SPRITE_PATH
12284
+ };
12285
+ }
12286
+ function overlayAssetIcon(path2, state) {
12287
+ return state ? {
12288
+ kind: "asset",
12289
+ path: path2,
12290
+ mimeType: "image/svg+xml",
12291
+ state
12292
+ } : {
12293
+ kind: "asset",
12294
+ path: path2,
12295
+ mimeType: "image/svg+xml"
12296
+ };
12297
+ }
12298
+
12277
12299
  // src/Overlay/OverlayIcons.ts
12278
12300
  var OVERLAY_SYMBOL_KEYS = {
12279
12301
  styleFill: "style.fill",
@@ -12282,19 +12304,19 @@ var OVERLAY_SYMBOL_KEYS = {
12282
12304
  styleFontSize: "style.fontSize"
12283
12305
  };
12284
12306
  function symbolIcon(key, state) {
12285
- return state ? { kind: "symbol", key, state } : { kind: "symbol", key };
12307
+ return state ? { kind: "symbol", key, sourcePath: OVERLAY_ICON_SPRITE_PATH, state } : { kind: "symbol", key, sourcePath: OVERLAY_ICON_SPRITE_PATH };
12286
12308
  }
12287
12309
  function styleFillIcon(state) {
12288
- return symbolIcon(OVERLAY_SYMBOL_KEYS.styleFill, state);
12310
+ return overlayAssetIcon("src/Items/Shape/icons/Fill.icon.svg", state);
12289
12311
  }
12290
12312
  function styleStrokeIcon(state) {
12291
- return symbolIcon(OVERLAY_SYMBOL_KEYS.styleStroke, state);
12313
+ return overlayAssetIcon("src/Items/Shape/icons/Stroke.icon.svg", state);
12292
12314
  }
12293
12315
  function styleColorIcon(state) {
12294
- return symbolIcon(OVERLAY_SYMBOL_KEYS.styleColor, state);
12316
+ return overlayAssetIcon("src/Items/Shape/icons/Color.icon.svg", state);
12295
12317
  }
12296
12318
  function styleFontSizeIcon(state) {
12297
- return symbolIcon(OVERLAY_SYMBOL_KEYS.styleFontSize, state);
12319
+ return overlayAssetIcon("src/Items/RichText/icons/FontSize.icon.svg", state);
12298
12320
  }
12299
12321
  // src/Overlay/overlayRegistry.ts
12300
12322
  var itemOverlays = {};
@@ -12323,6 +12345,45 @@ function getToolOverlay(toolName) {
12323
12345
  function listToolOverlays() {
12324
12346
  return Object.values(toolOverlays);
12325
12347
  }
12348
+ function listCreateSurfaceEntries() {
12349
+ const groupedEntries = new Map;
12350
+ const ungroupedEntries = [];
12351
+ for (const tool of Object.values(toolOverlays)) {
12352
+ const group = tool.surface?.group;
12353
+ if (!group) {
12354
+ ungroupedEntries.push({
12355
+ kind: "tool",
12356
+ tool,
12357
+ order: tool.surface?.order
12358
+ });
12359
+ continue;
12360
+ }
12361
+ const existing = groupedEntries.get(group.id);
12362
+ if (existing) {
12363
+ existing.tools.push(tool);
12364
+ if (existing.order === undefined && group.order !== undefined) {
12365
+ existing.order = group.order;
12366
+ }
12367
+ continue;
12368
+ }
12369
+ groupedEntries.set(group.id, {
12370
+ kind: "group",
12371
+ id: group.id,
12372
+ label: group.label,
12373
+ description: group.description,
12374
+ icon: group.icon,
12375
+ order: group.order,
12376
+ behavior: group.behavior,
12377
+ tools: [tool]
12378
+ });
12379
+ }
12380
+ const sortedGroups = [...groupedEntries.values()].map((group) => ({
12381
+ ...group,
12382
+ tools: [...group.tools].sort(compareToolsBySurfaceOrder)
12383
+ })).sort(compareEntriesByOrder);
12384
+ const sortedUngroupedEntries = [...ungroupedEntries].sort(compareEntriesByOrder);
12385
+ return [...sortedGroups, ...sortedUngroupedEntries];
12386
+ }
12326
12387
  function listSelectionActions() {
12327
12388
  return Object.values(selectionActions);
12328
12389
  }
@@ -12332,6 +12393,33 @@ function getSelectionOverlayActions(items) {
12332
12393
  function resolveDynamicOptions(providerId, context) {
12333
12394
  return dynamicOptionsResolvers[providerId]?.(context) ?? [];
12334
12395
  }
12396
+ function matchesOverlayCondition(condition, context) {
12397
+ if (!condition) {
12398
+ return true;
12399
+ }
12400
+ switch (condition.kind) {
12401
+ case "equals":
12402
+ return readOverlayValueSource(context, condition.source) === condition.value;
12403
+ case "truthy":
12404
+ return !!readOverlayValueSource(context, condition.source);
12405
+ case "falsy":
12406
+ return !readOverlayValueSource(context, condition.source);
12407
+ case "itemTypeIn":
12408
+ return context.items?.every((item) => condition.itemTypes.includes(item.itemType)) ?? (context.item ? condition.itemTypes.includes(context.item.itemType) : false);
12409
+ case "selectionSize": {
12410
+ const size = context.items?.length ?? (context.item ? 1 : 0);
12411
+ const meetsMin = condition.min === undefined || size >= condition.min;
12412
+ const meetsMax = condition.max === undefined || size <= condition.max;
12413
+ return meetsMin && meetsMax;
12414
+ }
12415
+ case "allOf":
12416
+ return condition.conditions.every((child) => matchesOverlayCondition(child, context));
12417
+ case "anyOf":
12418
+ return condition.conditions.some((child) => matchesOverlayCondition(child, context));
12419
+ case "not":
12420
+ return !matchesOverlayCondition(condition.condition, context);
12421
+ }
12422
+ }
12335
12423
  function intersectOverlayActions(items) {
12336
12424
  if (items.length === 0) {
12337
12425
  return [];
@@ -12350,6 +12438,24 @@ function intersectOverlayActions(items) {
12350
12438
  }
12351
12439
  return [...counts.values()].filter((action) => overlays.every((overlay) => overlay.actions.some((candidate) => candidate.id === action.id)) && (action.target !== "single" || items.length === 1));
12352
12440
  }
12441
+ function compareToolsBySurfaceOrder(a, b) {
12442
+ const aOrder = a.surface?.order ?? Number.MAX_SAFE_INTEGER;
12443
+ const bOrder = b.surface?.order ?? Number.MAX_SAFE_INTEGER;
12444
+ return aOrder - bOrder || a.label.localeCompare(b.label);
12445
+ }
12446
+ function compareEntriesByOrder(a, b) {
12447
+ const aOrder = a.order ?? Number.MAX_SAFE_INTEGER;
12448
+ const bOrder = b.order ?? Number.MAX_SAFE_INTEGER;
12449
+ const aLabel = a.label ?? a.tool?.label ?? "";
12450
+ const bLabel = b.label ?? b.tool?.label ?? "";
12451
+ return aOrder - bOrder || aLabel.localeCompare(bLabel);
12452
+ }
12453
+ function readOverlayValueSource(context, source) {
12454
+ if (source.kind === "itemProperty") {
12455
+ return context.item ? context.item[source.property] : undefined;
12456
+ }
12457
+ return context.tool ? context.tool[source.property] : undefined;
12458
+ }
12353
12459
  // src/Items/BaseItem/BaseItem.ts
12354
12460
  class BaseItem {
12355
12461
  static createCommand;
@@ -40102,6 +40208,14 @@ var richTextOverlay = {
40102
40208
  }
40103
40209
  ]
40104
40210
  }
40211
+ ],
40212
+ sections: [
40213
+ {
40214
+ id: "textTypography",
40215
+ label: "Typography",
40216
+ icon: overlayAssetIcon("src/Items/RichText/icons/FontSize.icon.svg"),
40217
+ actionIds: ["text.fontSize"]
40218
+ }
40105
40219
  ]
40106
40220
  };
40107
40221
  var addTextToolOverlay = {
@@ -40110,8 +40224,12 @@ var addTextToolOverlay = {
40110
40224
  kind: "create",
40111
40225
  createsItemType: "RichText",
40112
40226
  family: "text",
40113
- icon: { kind: "symbol", key: "tool.text" },
40114
- description: "Creates editable rich text. The current first pass has no pre-placement defaults on this tool."
40227
+ icon: overlayAssetIcon("src/Items/RichText/icons/Text.icon.svg"),
40228
+ description: "Creates editable rich text. The current first pass has no pre-placement defaults on this tool.",
40229
+ launch: { kind: "activate-tool" },
40230
+ surface: {
40231
+ order: 6
40232
+ }
40115
40233
  };
40116
40234
 
40117
40235
  // src/Items/RichText/RichText.ts
@@ -46514,12 +46632,28 @@ var COLOR_PALETTE = [
46514
46632
  "#118AB2",
46515
46633
  "#7B61FF"
46516
46634
  ];
46517
- var symbolIcon2 = (key) => ({ kind: "symbol", key });
46635
+ var connectorAssetIcon = (file2) => overlayAssetIcon(`src/Items/Connector/icons/${file2}.icon.svg`);
46636
+ var lineStyleAssetIcons = {
46637
+ straight: connectorAssetIcon("LineStraight"),
46638
+ curved: connectorAssetIcon("LineCurved"),
46639
+ orthogonal: connectorAssetIcon("LineOrthogonal")
46640
+ };
46641
+ var pointerAssetIcons = {
46642
+ None: connectorAssetIcon("PointerNone"),
46643
+ ArrowThin: connectorAssetIcon("PointerArrowThin"),
46644
+ ArrowHeavy: connectorAssetIcon("PointerArrowHeavy"),
46645
+ TriangleFilled: connectorAssetIcon("PointerTriangleFilled"),
46646
+ TriangleOutline: connectorAssetIcon("PointerTriangleOutline"),
46647
+ CircleFilled: connectorAssetIcon("PointerCircleFilled"),
46648
+ CircleOutline: connectorAssetIcon("PointerCircleOutline"),
46649
+ DiamondFilled: connectorAssetIcon("PointerDiamondFilled"),
46650
+ DiamondOutline: connectorAssetIcon("PointerDiamondOutline")
46651
+ };
46518
46652
  var lineStyleOptions = ConnectorLineStyles.map((style) => ({
46519
46653
  id: style,
46520
46654
  label: style[0].toUpperCase() + style.slice(1),
46521
46655
  value: style,
46522
- icon: symbolIcon2(`connector.lineStyle.${style}`)
46656
+ icon: lineStyleAssetIcons[style]
46523
46657
  }));
46524
46658
  var lineWidthOptions = ConnectionLineWidths.map((width) => ({
46525
46659
  id: `${width}`,
@@ -46530,13 +46664,13 @@ var pointerOptions = CONNECTOR_POINTER_TYPES.map((pointer) => ({
46530
46664
  id: pointer,
46531
46665
  label: pointer,
46532
46666
  value: pointer,
46533
- icon: symbolIcon2(`connector.pointer.${pointer}`)
46667
+ icon: pointerAssetIcons[pointer]
46534
46668
  }));
46535
46669
  var borderStyleOptions = ["solid", "dot", "dash", "longDash"].map((style) => ({
46536
46670
  id: style,
46537
46671
  label: style,
46538
46672
  value: style,
46539
- icon: symbolIcon2(`stroke.${style}`)
46673
+ 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")
46540
46674
  }));
46541
46675
  var connectorStyleControls = [
46542
46676
  {
@@ -46591,7 +46725,7 @@ var connectorStyleControls = [
46591
46725
  {
46592
46726
  id: "smartJump",
46593
46727
  label: "Smart jump",
46594
- icon: symbolIcon2("connector.smartJump"),
46728
+ icon: connectorAssetIcon("SmartJump"),
46595
46729
  valueSource: { kind: "itemProperty", property: "smartJump" },
46596
46730
  editor: { kind: "toggle", trueLabel: "On", falseLabel: "Off" },
46597
46731
  invoke: { kind: "setProperty", property: "smartJump" }
@@ -46650,7 +46784,7 @@ var connectorToolControls = [
46650
46784
  {
46651
46785
  id: "toolSmartJump",
46652
46786
  label: "Smart jump",
46653
- icon: symbolIcon2("connector.smartJump"),
46787
+ icon: connectorAssetIcon("SmartJump"),
46654
46788
  valueSource: { kind: "toolProperty", property: "smartJump" },
46655
46789
  editor: { kind: "toggle", trueLabel: "On", falseLabel: "Off" },
46656
46790
  invoke: { kind: "toolProperty", property: "smartJump" }
@@ -46662,25 +46796,33 @@ var connectorOverlay = {
46662
46796
  {
46663
46797
  id: "connector.switchPointers",
46664
46798
  label: "Switch arrows",
46665
- icon: symbolIcon2("connector.switchPointers"),
46799
+ icon: connectorAssetIcon("SwitchPointers"),
46666
46800
  target: "selection",
46667
46801
  invoke: { kind: "operation", class: "Connector", method: "switchPointers" }
46668
46802
  },
46669
46803
  {
46670
46804
  id: "connector.style",
46671
46805
  label: "Connector style",
46672
- icon: symbolIcon2("connector.style"),
46806
+ icon: connectorAssetIcon("Style"),
46673
46807
  target: "each",
46674
46808
  controls: connectorStyleControls,
46675
46809
  groups: [
46676
46810
  {
46677
46811
  id: "connectorStyle",
46678
46812
  label: "Connector style",
46679
- icon: symbolIcon2("connector.style"),
46813
+ icon: connectorAssetIcon("Style"),
46680
46814
  controlIds: connectorStyleControls.map((control) => control.id)
46681
46815
  }
46682
46816
  ]
46683
46817
  }
46818
+ ],
46819
+ sections: [
46820
+ {
46821
+ id: "connectorArrows",
46822
+ label: "Arrows",
46823
+ icon: connectorAssetIcon("Style"),
46824
+ actionIds: ["connector.switchPointers", "connector.style"]
46825
+ }
46684
46826
  ]
46685
46827
  };
46686
46828
  var addConnectorToolOverlay = {
@@ -46690,8 +46832,7 @@ var addConnectorToolOverlay = {
46690
46832
  createsItemType: "Connector",
46691
46833
  family: "connector",
46692
46834
  icon: {
46693
- kind: "symbol",
46694
- key: "tool.connector",
46835
+ ...connectorAssetIcon("Tool"),
46695
46836
  state: {
46696
46837
  swatch: { kind: "toolProperty", property: "lineColor" },
46697
46838
  note: "UI can tint or swatch the connector icon from the pending line color."
@@ -46701,12 +46842,24 @@ var addConnectorToolOverlay = {
46701
46842
  controls: connectorToolControls,
46702
46843
  groups: [
46703
46844
  {
46704
- id: "connectorToolStyle",
46845
+ id: "connectorToolQuickDefaults",
46846
+ label: "Connector quick defaults",
46847
+ icon: connectorAssetIcon("LineStraight"),
46848
+ controlIds: ["toolLineStyle"],
46849
+ description: "Primary defaults that match the compact create-surface picker."
46850
+ },
46851
+ {
46852
+ id: "connectorToolAdvancedDefaults",
46705
46853
  label: "Connector defaults",
46706
- icon: symbolIcon2("connector.style"),
46707
- controlIds: connectorToolControls.map((control) => control.id)
46854
+ icon: connectorAssetIcon("Style"),
46855
+ controlIds: connectorToolControls.map((control) => control.id),
46856
+ description: "Extended defaults available in richer create flows."
46708
46857
  }
46709
46858
  ]
46859
+ },
46860
+ launch: { kind: "activate-tool" },
46861
+ surface: {
46862
+ order: 8
46710
46863
  }
46711
46864
  };
46712
46865
 
@@ -60845,63 +60998,60 @@ var COLOR_PALETTE2 = [
60845
60998
  "#7B61FF",
60846
60999
  "transparent"
60847
61000
  ];
60848
- var inlineShapeAsset = (folder, file2 = folder) => ({
60849
- kind: "asset",
60850
- path: `src/Items/Shape/Basic/${folder}/${file2}.icon.svg`,
60851
- mimeType: "image/svg+xml"
60852
- });
60853
- var symbolIcon3 = (key) => ({ kind: "symbol", key });
61001
+ var inlineShapeAsset = (folder, file2 = folder) => overlayAssetIcon(`src/Items/Shape/Basic/${folder}/${file2}.icon.svg`);
61002
+ var localShapeIcon = (file2) => overlayAssetIcon(`src/Items/Shape/icons/${file2}.icon.svg`);
61003
+ var bpmnIcon = (folder) => overlayAssetIcon(`src/Items/Shape/BPMN/${folder}/${folder}.icon.svg`);
60854
61004
  var BASIC_INLINE_OPTIONS = [
60855
- { id: "rectangle", label: "Rectangle", value: "Rectangle", icon: inlineShapeAsset("Rectangle") },
60856
- { id: "rounded-rectangle", label: "Rounded rectangle", value: "RoundedRectangle", icon: inlineShapeAsset("RoundedRectangle") },
60857
- { id: "circle", label: "Circle", value: "Circle", icon: inlineShapeAsset("Circle") },
60858
- { id: "triangle", label: "Triangle", value: "Triangle", icon: inlineShapeAsset("Triangle") },
60859
- { id: "rhombus", label: "Rhombus", value: "Rhombus", icon: inlineShapeAsset("Rhombus") }
61005
+ { id: "rectangle", label: "Rectangle", value: "Rectangle", icon: inlineShapeAsset("Rectangle"), family: "basicShapes" },
61006
+ { id: "rounded-rectangle", label: "Rounded rectangle", value: "RoundedRectangle", icon: inlineShapeAsset("RoundedRectangle"), family: "basicShapes" },
61007
+ { id: "circle", label: "Circle", value: "Circle", icon: inlineShapeAsset("Circle"), family: "basicShapes" },
61008
+ { id: "triangle", label: "Triangle", value: "Triangle", icon: inlineShapeAsset("Triangle"), family: "basicShapes" },
61009
+ { id: "rhombus", label: "Rhombus", value: "Rhombus", icon: inlineShapeAsset("Rhombus"), family: "basicShapes" }
60860
61010
  ];
60861
61011
  var SHAPE_CATALOG_OPTIONS = [
60862
61012
  ...BASIC_INLINE_OPTIONS,
60863
- { id: "reversed-triangle", label: "Reversed triangle", value: "ReversedTriangle", icon: symbolIcon3("shape.reversedTriangle") },
60864
- { id: "arrow-left", label: "Arrow left", value: "ArrowLeft", icon: inlineShapeAsset("ArrowLeft") },
60865
- { id: "arrow-right", label: "Arrow right", value: "ArrowRight", icon: inlineShapeAsset("ArrowRight") },
60866
- { id: "arrow-left-right", label: "Arrow left right", value: "ArrowLeftRight", icon: inlineShapeAsset("ArrowLeftRight") },
60867
- { id: "arrow-block-left", label: "Arrow block left", value: "ArrowBlockLeft", icon: symbolIcon3("shape.arrowBlockLeft") },
60868
- { id: "arrow-block-right", label: "Arrow block right", value: "ArrowBlockRight", icon: symbolIcon3("shape.arrowBlockRight") },
60869
- { id: "cloud", label: "Cloud", value: "Cloud", icon: inlineShapeAsset("Cloud") },
60870
- { id: "cross", label: "Cross", value: "Cross", icon: inlineShapeAsset("Cross") },
60871
- { id: "cylinder", label: "Cylinder", value: "Cylinder", icon: inlineShapeAsset("Cylinder") },
60872
- { id: "hexagon", label: "Hexagon", value: "Hexagon", icon: inlineShapeAsset("Hexagon") },
60873
- { id: "octagon", label: "Octagon", value: "Octagon", icon: inlineShapeAsset("Octagon") },
60874
- { id: "parallelogram", label: "Parallelogram", value: "Parallelogram", icon: inlineShapeAsset("Parallelogram") },
60875
- { id: "reversed-parallelogram", label: "Reversed parallelogram", value: "ReversedParallelogram", icon: symbolIcon3("shape.reversedParallelogram") },
60876
- { id: "pentagon", label: "Pentagon", value: "Pentagon", icon: inlineShapeAsset("Pentagon") },
60877
- { id: "predefined-process", label: "Predefined process", value: "PredefinedProcess", icon: symbolIcon3("shape.predefinedProcess") },
60878
- { id: "speech-bubble", label: "Speech bubble", value: "SpeachBubble", icon: inlineShapeAsset("SpeachBubble") },
60879
- { id: "star", label: "Star", value: "Star", icon: inlineShapeAsset("Star") },
60880
- { id: "trapezoid", label: "Trapezoid", value: "Trapezoid", icon: inlineShapeAsset("Trapezoid") },
60881
- { id: "braces-left", label: "Braces left", value: "BracesLeft", icon: inlineShapeAsset("BracesLeft", "BracesLeft") },
60882
- { id: "braces-right", label: "Braces right", value: "BracesRight", icon: inlineShapeAsset("BracesRight", "BracesRight") },
60883
- { id: "bpmn-task", label: "BPMN task", value: "BPMN_Task", icon: symbolIcon3("shape.bpmn.task") },
60884
- { id: "bpmn-gateway", label: "BPMN gateway", value: "BPMN_Gateway", icon: symbolIcon3("shape.bpmn.gateway") },
60885
- { id: "bpmn-gateway-parallel", label: "BPMN gateway parallel", value: "BPMN_GatewayParallel", icon: symbolIcon3("shape.bpmn.gatewayParallel") },
60886
- { id: "bpmn-gateway-xor", label: "BPMN gateway XOR", value: "BPMN_GatewayXOR", icon: symbolIcon3("shape.bpmn.gatewayXor") },
60887
- { id: "bpmn-start-event", label: "BPMN start event", value: "BPMN_StartEvent", icon: symbolIcon3("shape.bpmn.startEvent") },
60888
- { id: "bpmn-start-event-non-interrupting", label: "BPMN start event non interrupting", value: "BPMN_StartEventNoneInterrupting", icon: symbolIcon3("shape.bpmn.startEventNoneInterrupting") },
60889
- { id: "bpmn-end-event", label: "BPMN end event", value: "BPMN_EndEvent", icon: symbolIcon3("shape.bpmn.endEvent") },
60890
- { id: "bpmn-intermediate-event", label: "BPMN intermediate event", value: "BPMN_IntermediateEvent", icon: symbolIcon3("shape.bpmn.intermediateEvent") },
60891
- { id: "bpmn-intermediate-event-none-interrupting", label: "BPMN intermediate event none interrupting", value: "BPMN_IntermediateEventNoneInterrupting", icon: symbolIcon3("shape.bpmn.intermediateEventNoneInterrupting") },
60892
- { id: "bpmn-data-object", label: "BPMN data object", value: "BPMN_DataObject", icon: symbolIcon3("shape.bpmn.dataObject") },
60893
- { id: "bpmn-data-store", label: "BPMN data store", value: "BPMN_DataStore", icon: symbolIcon3("shape.bpmn.dataStore") },
60894
- { id: "bpmn-participant", label: "BPMN participant", value: "BPMN_Participant", icon: symbolIcon3("shape.bpmn.participant") },
60895
- { id: "bpmn-transaction", label: "BPMN transaction", value: "BPMN_Transaction", icon: symbolIcon3("shape.bpmn.transaction") },
60896
- { id: "bpmn-event-subprocess", label: "BPMN event subprocess", value: "BPMN_EventSubprocess", icon: symbolIcon3("shape.bpmn.eventSubprocess") },
60897
- { id: "bpmn-group", label: "BPMN group", value: "BPMN_Group", icon: symbolIcon3("shape.bpmn.group") },
60898
- { id: "bpmn-annotation", label: "BPMN annotation", value: "BPMN_Annotation", icon: symbolIcon3("shape.bpmn.annotation") }
61013
+ { id: "reversed-triangle", label: "Reversed triangle", value: "ReversedTriangle", icon: localShapeIcon("ReversedTriangle"), family: "basicShapes" },
61014
+ { id: "arrow-left", label: "Arrow left", value: "ArrowLeft", icon: inlineShapeAsset("ArrowLeft"), family: "basicShapes" },
61015
+ { id: "arrow-right", label: "Arrow right", value: "ArrowRight", icon: inlineShapeAsset("ArrowRight"), family: "basicShapes" },
61016
+ { id: "arrow-left-right", label: "Arrow left right", value: "ArrowLeftRight", icon: inlineShapeAsset("ArrowLeftRight"), family: "basicShapes" },
61017
+ { id: "arrow-block-left", label: "Arrow block left", value: "ArrowBlockLeft", icon: localShapeIcon("ArrowBlockLeft"), family: "basicShapes" },
61018
+ { id: "arrow-block-right", label: "Arrow block right", value: "ArrowBlockRight", icon: localShapeIcon("ArrowBlockRight"), family: "basicShapes" },
61019
+ { id: "cloud", label: "Cloud", value: "Cloud", icon: inlineShapeAsset("Cloud"), family: "basicShapes" },
61020
+ { id: "cross", label: "Cross", value: "Cross", icon: inlineShapeAsset("Cross"), family: "basicShapes" },
61021
+ { id: "cylinder", label: "Cylinder", value: "Cylinder", icon: inlineShapeAsset("Cylinder"), family: "basicShapes" },
61022
+ { id: "hexagon", label: "Hexagon", value: "Hexagon", icon: inlineShapeAsset("Hexagon"), family: "basicShapes" },
61023
+ { id: "octagon", label: "Octagon", value: "Octagon", icon: inlineShapeAsset("Octagon"), family: "basicShapes" },
61024
+ { id: "parallelogram", label: "Parallelogram", value: "Parallelogram", icon: inlineShapeAsset("Parallelogram"), family: "basicShapes" },
61025
+ { id: "reversed-parallelogram", label: "Reversed parallelogram", value: "ReversedParallelogram", icon: localShapeIcon("ReversedParallelogram"), family: "basicShapes" },
61026
+ { id: "pentagon", label: "Pentagon", value: "Pentagon", icon: inlineShapeAsset("Pentagon"), family: "basicShapes" },
61027
+ { id: "predefined-process", label: "Predefined process", value: "PredefinedProcess", icon: localShapeIcon("PredefinedProcess"), family: "basicShapes" },
61028
+ { id: "speech-bubble", label: "Speech bubble", value: "SpeachBubble", icon: inlineShapeAsset("SpeachBubble"), family: "basicShapes" },
61029
+ { id: "star", label: "Star", value: "Star", icon: inlineShapeAsset("Star"), family: "basicShapes" },
61030
+ { id: "trapezoid", label: "Trapezoid", value: "Trapezoid", icon: inlineShapeAsset("Trapezoid"), family: "basicShapes" },
61031
+ { id: "braces-left", label: "Braces left", value: "BracesLeft", icon: inlineShapeAsset("BracesLeft", "BracesLeft"), family: "basicShapes" },
61032
+ { id: "braces-right", label: "Braces right", value: "BracesRight", icon: inlineShapeAsset("BracesRight", "BracesRight"), family: "basicShapes" },
61033
+ { id: "bpmn-task", label: "BPMN task", value: "BPMN_Task", icon: bpmnIcon("BPMN_Task"), family: "bpmn" },
61034
+ { id: "bpmn-gateway", label: "BPMN gateway", value: "BPMN_Gateway", icon: bpmnIcon("BPMN_Gateway"), family: "bpmn" },
61035
+ { id: "bpmn-gateway-parallel", label: "BPMN gateway parallel", value: "BPMN_GatewayParallel", icon: bpmnIcon("BPMN_GatewayParallel"), family: "bpmn" },
61036
+ { id: "bpmn-gateway-xor", label: "BPMN gateway XOR", value: "BPMN_GatewayXOR", icon: bpmnIcon("BPMN_GatewayXOR"), family: "bpmn" },
61037
+ { id: "bpmn-start-event", label: "BPMN start event", value: "BPMN_StartEvent", icon: bpmnIcon("BPMN_StartEvent"), family: "bpmn" },
61038
+ { id: "bpmn-start-event-non-interrupting", label: "BPMN start event non interrupting", value: "BPMN_StartEventNoneInterrupting", icon: bpmnIcon("BPMN_StartEventNoneInterrupting"), family: "bpmn" },
61039
+ { id: "bpmn-end-event", label: "BPMN end event", value: "BPMN_EndEvent", icon: bpmnIcon("BPMN_EndEvent"), family: "bpmn" },
61040
+ { id: "bpmn-intermediate-event", label: "BPMN intermediate event", value: "BPMN_IntermediateEvent", icon: bpmnIcon("BPMN_IntermediateEvent"), family: "bpmn" },
61041
+ { id: "bpmn-intermediate-event-none-interrupting", label: "BPMN intermediate event none interrupting", value: "BPMN_IntermediateEventNoneInterrupting", icon: bpmnIcon("BPMN_IntermediateEventNoneInterrupting"), family: "bpmn" },
61042
+ { id: "bpmn-data-object", label: "BPMN data object", value: "BPMN_DataObject", icon: bpmnIcon("BPMN_DataObject"), family: "bpmn" },
61043
+ { id: "bpmn-data-store", label: "BPMN data store", value: "BPMN_DataStore", icon: bpmnIcon("BPMN_DataStore"), family: "bpmn" },
61044
+ { id: "bpmn-participant", label: "BPMN participant", value: "BPMN_Participant", icon: bpmnIcon("BPMN_Participant"), family: "bpmn" },
61045
+ { id: "bpmn-transaction", label: "BPMN transaction", value: "BPMN_Transaction", icon: bpmnIcon("BPMN_Transaction"), family: "bpmn" },
61046
+ { id: "bpmn-event-subprocess", label: "BPMN event subprocess", value: "BPMN_EventSubprocess", icon: bpmnIcon("BPMN_EventSubprocess"), family: "bpmn" },
61047
+ { id: "bpmn-group", label: "BPMN group", value: "BPMN_Group", icon: bpmnIcon("BPMN_Group"), family: "bpmn" },
61048
+ { id: "bpmn-annotation", label: "BPMN annotation", value: "BPMN_Annotation", icon: bpmnIcon("BPMN_Annotation"), family: "bpmn" }
60899
61049
  ];
60900
61050
  var BORDER_STYLE_OPTIONS = [
60901
- { id: "solid", label: "Solid", value: "solid", icon: symbolIcon3("stroke.solid") },
60902
- { id: "dot", label: "Dot", value: "dot", icon: symbolIcon3("stroke.dot") },
60903
- { id: "dash", label: "Dash", value: "dash", icon: symbolIcon3("stroke.dash") },
60904
- { id: "long-dash", label: "Long dash", value: "longDash", icon: symbolIcon3("stroke.longDash") }
61051
+ { id: "solid", label: "Solid", value: "solid", icon: localShapeIcon("StrokeSolid") },
61052
+ { id: "dot", label: "Dot", value: "dot", icon: localShapeIcon("StrokeDot") },
61053
+ { id: "dash", label: "Dash", value: "dash", icon: localShapeIcon("StrokeDash") },
61054
+ { id: "long-dash", label: "Long dash", value: "longDash", icon: localShapeIcon("StrokeLongDash") }
60905
61055
  ];
60906
61056
  var shapeTypeControl = {
60907
61057
  id: "shapeType",
@@ -60910,6 +61060,12 @@ var shapeTypeControl = {
60910
61060
  editor: {
60911
61061
  kind: "enum-icon",
60912
61062
  options: BASIC_INLINE_OPTIONS,
61063
+ layout: "grid",
61064
+ quickOptions: {
61065
+ family: "basicShapes",
61066
+ maxVisible: 18,
61067
+ overflow: "show-more"
61068
+ },
60913
61069
  catalog: {
60914
61070
  kind: "catalog",
60915
61071
  label: "Shape catalog",
@@ -60978,7 +61134,7 @@ var shapeOverlay = {
60978
61134
  {
60979
61135
  id: "shape.shapeType",
60980
61136
  label: "Shape type",
60981
- icon: symbolIcon3("shape.type"),
61137
+ icon: localShapeIcon("Type"),
60982
61138
  target: "each",
60983
61139
  controls: [shapeTypeControl]
60984
61140
  },
@@ -61004,6 +61160,20 @@ var shapeOverlay = {
61004
61160
  }
61005
61161
  ]
61006
61162
  }
61163
+ ],
61164
+ sections: [
61165
+ {
61166
+ id: "shapeTypeSection",
61167
+ label: "Type",
61168
+ icon: localShapeIcon("Type"),
61169
+ actionIds: ["shape.shapeType"]
61170
+ },
61171
+ {
61172
+ id: "shapeAppearanceSection",
61173
+ label: "Appearance",
61174
+ icon: localShapeIcon("Stroke"),
61175
+ actionIds: ["shape.fill", "shape.strokeStyle"]
61176
+ }
61007
61177
  ]
61008
61178
  };
61009
61179
  var addShapeToolOverlay = {
@@ -61013,8 +61183,7 @@ var addShapeToolOverlay = {
61013
61183
  createsItemType: "Shape",
61014
61184
  family: "shape",
61015
61185
  icon: {
61016
- kind: "symbol",
61017
- key: "tool.shape",
61186
+ ...overlayAssetIcon("src/Items/Shape/icons/Tool.icon.svg"),
61018
61187
  state: {
61019
61188
  note: "UI may swap the top-level icon to the selected shape option when desired."
61020
61189
  }
@@ -61028,6 +61197,12 @@ var addShapeToolOverlay = {
61028
61197
  editor: {
61029
61198
  kind: "enum-icon",
61030
61199
  options: BASIC_INLINE_OPTIONS,
61200
+ layout: "grid",
61201
+ quickOptions: {
61202
+ family: "basicShapes",
61203
+ maxVisible: 18,
61204
+ overflow: "show-more"
61205
+ },
61031
61206
  catalog: {
61032
61207
  kind: "catalog",
61033
61208
  label: "Shape catalog",
@@ -61038,6 +61213,10 @@ var addShapeToolOverlay = {
61038
61213
  invoke: { kind: "toolProperty", property: "type" }
61039
61214
  }
61040
61215
  ]
61216
+ },
61217
+ launch: { kind: "activate-tool" },
61218
+ surface: {
61219
+ order: 7
61041
61220
  }
61042
61221
  };
61043
61222
 
@@ -65444,14 +65623,14 @@ var cardOverlay = {
65444
65623
  {
65445
65624
  id: "card.flip",
65446
65625
  label: "Flip card",
65447
- icon: { kind: "symbol", key: "card.flip" },
65626
+ icon: overlayAssetIcon("src/Items/Card/icons/Flip.icon.svg"),
65448
65627
  target: "each",
65449
65628
  invoke: { kind: "customMethod", methodName: "toggleIsOpen" }
65450
65629
  },
65451
65630
  {
65452
65631
  id: "card.rotateCcw",
65453
65632
  label: "Rotate 90 counter clockwise",
65454
- icon: { kind: "symbol", key: "card.rotateCcw" },
65633
+ icon: overlayAssetIcon("src/Items/Card/icons/RotateCcw.icon.svg"),
65455
65634
  target: "each",
65456
65635
  invoke: {
65457
65636
  kind: "customMethod",
@@ -65462,7 +65641,7 @@ var cardOverlay = {
65462
65641
  {
65463
65642
  id: "card.rotateCw",
65464
65643
  label: "Rotate 90 clockwise",
65465
- icon: { kind: "symbol", key: "card.rotateCw" },
65644
+ icon: overlayAssetIcon("src/Items/Card/icons/RotateCw.icon.svg"),
65466
65645
  target: "each",
65467
65646
  invoke: {
65468
65647
  kind: "customMethod",
@@ -65716,28 +65895,28 @@ var deckOverlay = {
65716
65895
  {
65717
65896
  id: "deck.getTopCard",
65718
65897
  label: "Draw top card",
65719
- icon: { kind: "symbol", key: "deck.drawTop" },
65898
+ icon: overlayAssetIcon("src/Items/Deck/icons/DrawTop.icon.svg"),
65720
65899
  target: "single",
65721
65900
  invoke: { kind: "customMethod", methodName: "getTopCard" }
65722
65901
  },
65723
65902
  {
65724
65903
  id: "deck.getBottomCard",
65725
65904
  label: "Draw bottom card",
65726
- icon: { kind: "symbol", key: "deck.drawBottom" },
65905
+ icon: overlayAssetIcon("src/Items/Deck/icons/DrawBottom.icon.svg"),
65727
65906
  target: "single",
65728
65907
  invoke: { kind: "customMethod", methodName: "getBottomCard" }
65729
65908
  },
65730
65909
  {
65731
65910
  id: "deck.getRandomCard",
65732
65911
  label: "Draw random card",
65733
- icon: { kind: "symbol", key: "deck.drawRandom" },
65912
+ icon: overlayAssetIcon("src/Items/Deck/icons/DrawRandom.icon.svg"),
65734
65913
  target: "single",
65735
65914
  invoke: { kind: "customMethod", methodName: "getRandomCard" }
65736
65915
  },
65737
65916
  {
65738
65917
  id: "deck.getCards",
65739
65918
  label: "Draw cards",
65740
- icon: { kind: "symbol", key: "deck.drawMany" },
65919
+ icon: overlayAssetIcon("src/Items/Deck/icons/DrawMany.icon.svg"),
65741
65920
  target: "single",
65742
65921
  controls: [
65743
65922
  {
@@ -65759,14 +65938,14 @@ var deckOverlay = {
65759
65938
  {
65760
65939
  id: "deck.shuffle",
65761
65940
  label: "Shuffle",
65762
- icon: { kind: "symbol", key: "deck.shuffle" },
65941
+ icon: overlayAssetIcon("src/Items/Deck/icons/Shuffle.icon.svg"),
65763
65942
  target: "single",
65764
65943
  invoke: { kind: "customMethod", methodName: "shuffleDeck" }
65765
65944
  },
65766
65945
  {
65767
65946
  id: "deck.flip",
65768
65947
  label: "Flip deck",
65769
- icon: { kind: "symbol", key: "deck.flip" },
65948
+ icon: overlayAssetIcon("src/Items/Deck/icons/Flip.icon.svg"),
65770
65949
  target: "single",
65771
65950
  invoke: { kind: "customMethod", methodName: "flipDeck" }
65772
65951
  }
@@ -65775,7 +65954,7 @@ var deckOverlay = {
65775
65954
  var createDeckSelectionAction = {
65776
65955
  id: "deck.createFromSelection",
65777
65956
  label: "Create deck",
65778
- icon: { kind: "symbol", key: "deck.createFromSelection" },
65957
+ icon: overlayAssetIcon("src/Items/Deck/icons/CreateFromSelection.icon.svg"),
65779
65958
  description: "Stacks selected cards into a new deck, or merges selected cards and decks into one deck.",
65780
65959
  invoke: { kind: "selectionMethod", methodName: "createDeck" },
65781
65960
  isAvailable: (items) => {
@@ -66344,14 +66523,14 @@ var diceOverlay = {
66344
66523
  {
66345
66524
  id: "dice.throw",
66346
66525
  label: "Throw dice",
66347
- icon: { kind: "symbol", key: "dice.throw" },
66526
+ icon: overlayAssetIcon("src/Items/Dice/icons/Throw.icon.svg"),
66348
66527
  target: "each",
66349
66528
  invoke: { kind: "customMethod", methodName: "throwDice" }
66350
66529
  },
66351
66530
  {
66352
66531
  id: "dice.range",
66353
66532
  label: "Range",
66354
- icon: { kind: "symbol", key: "dice.range" },
66533
+ icon: overlayAssetIcon("src/Items/Dice/icons/Range.icon.svg"),
66355
66534
  target: "each",
66356
66535
  controls: [
66357
66536
  {
@@ -66387,6 +66566,14 @@ var diceOverlay = {
66387
66566
  }
66388
66567
  ]
66389
66568
  }
66569
+ ],
66570
+ sections: [
66571
+ {
66572
+ id: "diceActions",
66573
+ label: "Dice",
66574
+ icon: overlayAssetIcon("src/Items/Dice/icons/Throw.icon.svg"),
66575
+ actionIds: ["dice.throw", "dice.range", "dice.fill"]
66576
+ }
66390
66577
  ]
66391
66578
  };
66392
66579
  var addDiceToolOverlay = {
@@ -66395,7 +66582,19 @@ var addDiceToolOverlay = {
66395
66582
  kind: "create",
66396
66583
  createsItemType: "Dice",
66397
66584
  family: "game",
66398
- icon: { kind: "symbol", key: "tool.dice" }
66585
+ icon: overlayAssetIcon("src/Items/Dice/icons/Tool.icon.svg"),
66586
+ launch: { kind: "activate-tool" },
66587
+ surface: {
66588
+ order: 1,
66589
+ group: {
66590
+ id: "gameItems",
66591
+ label: "Game items",
66592
+ icon: overlayAssetIcon("src/Items/Dice/icons/Tool.icon.svg"),
66593
+ order: 1,
66594
+ behavior: "open-panel"
66595
+ },
66596
+ relatedToolNames: ["AddScreen", "AddPouch"]
66597
+ }
66399
66598
  };
66400
66599
 
66401
66600
  // src/Items/Dice/Dice.ts
@@ -66743,8 +66942,7 @@ var screenOverlay = {
66743
66942
  id: "screen.background",
66744
66943
  label: "Background",
66745
66944
  icon: {
66746
- kind: "symbol",
66747
- key: "screen.background",
66945
+ ...overlayAssetIcon("src/Items/Screen/icons/Background.icon.svg"),
66748
66946
  state: { swatch: { kind: "itemProperty", property: "backgroundColor" } }
66749
66947
  },
66750
66948
  target: "each",
@@ -66761,6 +66959,97 @@ var screenOverlay = {
66761
66959
  invoke: { kind: "setProperty", property: "backgroundColor" }
66762
66960
  }
66763
66961
  ]
66962
+ },
66963
+ {
66964
+ id: "screen.stroke",
66965
+ label: "Stroke",
66966
+ icon: {
66967
+ ...overlayAssetIcon("src/Items/Shape/icons/Stroke.icon.svg"),
66968
+ state: { swatch: { kind: "itemProperty", property: "borderColor" } }
66969
+ },
66970
+ target: "each",
66971
+ controls: [
66972
+ {
66973
+ id: "borderColor",
66974
+ label: "Border color",
66975
+ valueSource: { kind: "itemProperty", property: "borderColor" },
66976
+ editor: {
66977
+ kind: "color",
66978
+ palette: ["#000000", "#FFFFFF", "#888888", "transparent"],
66979
+ allowTransparent: true,
66980
+ presentation: "square"
66981
+ },
66982
+ invoke: { kind: "setProperty", property: "borderColor" }
66983
+ },
66984
+ {
66985
+ id: "borderWidth",
66986
+ label: "Border width",
66987
+ valueSource: { kind: "itemProperty", property: "borderWidth" },
66988
+ editor: {
66989
+ kind: "number-stepper",
66990
+ min: 0,
66991
+ max: 8,
66992
+ step: 1,
66993
+ presets: [0, 1, 2, 4],
66994
+ unit: "px"
66995
+ },
66996
+ invoke: { kind: "setProperty", property: "borderWidth" }
66997
+ }
66998
+ ],
66999
+ groups: [
67000
+ {
67001
+ id: "screenStrokeStyle",
67002
+ label: "Stroke",
67003
+ icon: overlayAssetIcon("src/Items/Shape/icons/Stroke.icon.svg"),
67004
+ controlIds: ["borderColor", "borderWidth"]
67005
+ }
67006
+ ]
67007
+ },
67008
+ {
67009
+ id: "screen.backgroundImage",
67010
+ label: "Background image",
67011
+ icon: overlayAssetIcon("src/Items/Screen/icons/BackgroundImage.icon.svg"),
67012
+ target: "each",
67013
+ when: {
67014
+ kind: "falsy",
67015
+ source: { kind: "itemProperty", property: "backgroundUrl" }
67016
+ },
67017
+ controls: [
67018
+ {
67019
+ id: "backgroundUrl",
67020
+ label: "Background image",
67021
+ valueSource: { kind: "itemProperty", property: "backgroundUrl" },
67022
+ editor: {
67023
+ kind: "asset-upload",
67024
+ mode: "single",
67025
+ accept: ["image/*"]
67026
+ },
67027
+ invoke: { kind: "setProperty", property: "backgroundUrl" }
67028
+ }
67029
+ ]
67030
+ },
67031
+ {
67032
+ id: "screen.removeBackgroundImage",
67033
+ label: "Remove background image",
67034
+ icon: overlayAssetIcon("src/Items/Screen/icons/BackgroundImageRemove.icon.svg"),
67035
+ target: "each",
67036
+ when: {
67037
+ kind: "truthy",
67038
+ source: { kind: "itemProperty", property: "backgroundUrl" }
67039
+ },
67040
+ invoke: {
67041
+ kind: "customMethod",
67042
+ methodName: "setBackgroundUrl",
67043
+ args: [{ kind: "static", value: "" }]
67044
+ }
67045
+ }
67046
+ ],
67047
+ sections: [
67048
+ {
67049
+ id: "screenAppearance",
67050
+ label: "Appearance",
67051
+ icon: overlayAssetIcon("src/Items/Screen/icons/Background.icon.svg"),
67052
+ actionIds: ["screen.background", "screen.stroke", "screen.backgroundImage", "screen.removeBackgroundImage"]
66764
67053
  }
66765
67054
  ]
66766
67055
  };
@@ -66770,7 +67059,19 @@ var addScreenToolOverlay = {
66770
67059
  kind: "create",
66771
67060
  createsItemType: "Screen",
66772
67061
  family: "container",
66773
- icon: { kind: "symbol", key: "tool.screen" }
67062
+ icon: overlayAssetIcon("src/Items/Screen/icons/Tool.icon.svg"),
67063
+ launch: { kind: "activate-tool" },
67064
+ surface: {
67065
+ order: 2,
67066
+ group: {
67067
+ id: "gameItems",
67068
+ label: "Game items",
67069
+ icon: overlayAssetIcon("src/Items/Dice/icons/Tool.icon.svg"),
67070
+ order: 1,
67071
+ behavior: "open-panel"
67072
+ },
67073
+ relatedToolNames: ["AddDice", "AddPouch"]
67074
+ }
66774
67075
  };
66775
67076
  var addPouchToolOverlay = {
66776
67077
  toolName: "AddPouch",
@@ -66778,7 +67079,19 @@ var addPouchToolOverlay = {
66778
67079
  kind: "create",
66779
67080
  createsItemType: "Screen",
66780
67081
  family: "container",
66781
- icon: { kind: "symbol", key: "tool.pouch" }
67082
+ icon: overlayAssetIcon("src/Items/Screen/icons/Pouch.icon.svg"),
67083
+ launch: { kind: "activate-tool" },
67084
+ surface: {
67085
+ order: 3,
67086
+ group: {
67087
+ id: "gameItems",
67088
+ label: "Game items",
67089
+ icon: overlayAssetIcon("src/Items/Dice/icons/Tool.icon.svg"),
67090
+ order: 1,
67091
+ behavior: "open-panel"
67092
+ },
67093
+ relatedToolNames: ["AddDice", "AddScreen"]
67094
+ }
66782
67095
  };
66783
67096
 
66784
67097
  // src/Items/Screen/Screen.ts
@@ -74738,8 +75051,7 @@ var addDrawingToolOverlay = {
74738
75051
  family: "drawing",
74739
75052
  createsItemType: "Drawing",
74740
75053
  icon: {
74741
- kind: "symbol",
74742
- key: "tool.pen",
75054
+ ...overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
74743
75055
  state: {
74744
75056
  swatch: { kind: "toolProperty", property: "strokeColor" },
74745
75057
  note: "UI can show the pending pen color in the icon."
@@ -74751,10 +75063,22 @@ var addDrawingToolOverlay = {
74751
75063
  {
74752
75064
  id: "drawingDefaults",
74753
75065
  label: "Pen defaults",
74754
- icon: { kind: "symbol", key: "tool.pen" },
75066
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
74755
75067
  controlIds: strokeControls2.map((control) => control.id)
74756
75068
  }
74757
75069
  ]
75070
+ },
75071
+ launch: { kind: "activate-tool" },
75072
+ surface: {
75073
+ order: 1,
75074
+ group: {
75075
+ id: "drawingTools",
75076
+ label: "Drawing",
75077
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
75078
+ order: 5,
75079
+ behavior: "activate-last-used"
75080
+ },
75081
+ relatedToolNames: ["AddHighlighter", "Eraser"]
74758
75082
  }
74759
75083
  };
74760
75084
  var addHighlighterToolOverlay = {
@@ -74764,8 +75088,7 @@ var addHighlighterToolOverlay = {
74764
75088
  family: "drawing",
74765
75089
  createsItemType: "Drawing",
74766
75090
  icon: {
74767
- kind: "symbol",
74768
- key: "tool.highlighter",
75091
+ ...overlayAssetIcon("src/Items/Drawing/icons/Highlighter.icon.svg"),
74769
75092
  state: {
74770
75093
  swatch: { kind: "toolProperty", property: "strokeColor" },
74771
75094
  note: "UI can show the pending highlighter color in the icon."
@@ -74777,10 +75100,22 @@ var addHighlighterToolOverlay = {
74777
75100
  {
74778
75101
  id: "highlighterDefaults",
74779
75102
  label: "Highlighter defaults",
74780
- icon: { kind: "symbol", key: "tool.highlighter" },
75103
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Highlighter.icon.svg"),
74781
75104
  controlIds: strokeControls2.map((control) => control.id)
74782
75105
  }
74783
75106
  ]
75107
+ },
75108
+ launch: { kind: "activate-tool" },
75109
+ surface: {
75110
+ order: 2,
75111
+ group: {
75112
+ id: "drawingTools",
75113
+ label: "Drawing",
75114
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
75115
+ order: 5,
75116
+ behavior: "activate-last-used"
75117
+ },
75118
+ relatedToolNames: ["AddDrawing", "Eraser"]
74784
75119
  }
74785
75120
  };
74786
75121
  var eraserToolOverlay = {
@@ -74788,7 +75123,7 @@ var eraserToolOverlay = {
74788
75123
  label: "Eraser",
74789
75124
  kind: "mode",
74790
75125
  family: "drawing",
74791
- icon: { kind: "symbol", key: "tool.eraser" },
75126
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Eraser.icon.svg"),
74792
75127
  defaults: {
74793
75128
  controls: [
74794
75129
  {
@@ -74805,6 +75140,18 @@ var eraserToolOverlay = {
74805
75140
  invoke: { kind: "toolProperty", property: "strokeWidth" }
74806
75141
  }
74807
75142
  ]
75143
+ },
75144
+ launch: { kind: "activate-tool" },
75145
+ surface: {
75146
+ order: 3,
75147
+ group: {
75148
+ id: "drawingTools",
75149
+ label: "Drawing",
75150
+ icon: overlayAssetIcon("src/Items/Drawing/icons/Pen.icon.svg"),
75151
+ order: 5,
75152
+ behavior: "activate-last-used"
75153
+ },
75154
+ relatedToolNames: ["AddDrawing", "AddHighlighter"]
74808
75155
  }
74809
75156
  };
74810
75157
 
@@ -75005,7 +75352,7 @@ var frameTypeOptions = Object.keys(Frames).map((frameType) => ({
75005
75352
  id: frameType,
75006
75353
  label: frameType === "Custom" ? "Custom" : Frames[frameType].name,
75007
75354
  value: frameType,
75008
- icon: { kind: "symbol", key: `frame.${frameType}` }
75355
+ 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")
75009
75356
  }));
75010
75357
  var addFrameToolOverlay = {
75011
75358
  toolName: "AddFrame",
@@ -75013,7 +75360,7 @@ var addFrameToolOverlay = {
75013
75360
  kind: "create",
75014
75361
  createsItemType: "Frame",
75015
75362
  family: "frame",
75016
- icon: { kind: "symbol", key: "tool.frame" },
75363
+ icon: overlayAssetIcon("src/Items/Frame/Frame.icon.svg"),
75017
75364
  defaults: {
75018
75365
  controls: [
75019
75366
  {
@@ -75027,6 +75374,10 @@ var addFrameToolOverlay = {
75027
75374
  invoke: { kind: "toolProperty", property: "shape" }
75028
75375
  }
75029
75376
  ]
75377
+ },
75378
+ launch: { kind: "activate-tool" },
75379
+ surface: {
75380
+ order: 10
75030
75381
  }
75031
75382
  };
75032
75383
 
@@ -75391,8 +75742,7 @@ var addStickerToolOverlay = {
75391
75742
  createsItemType: "Sticker",
75392
75743
  family: "sticker",
75393
75744
  icon: {
75394
- kind: "symbol",
75395
- key: "tool.sticker",
75745
+ ...overlayAssetIcon("src/Items/Sticker/Path/Sticker.icon.svg"),
75396
75746
  state: {
75397
75747
  swatch: { kind: "toolProperty", property: "backgroundColor" }
75398
75748
  }
@@ -75403,10 +75753,14 @@ var addStickerToolOverlay = {
75403
75753
  id: "stickerBackgroundColor",
75404
75754
  label: "Color",
75405
75755
  valueSource: { kind: "toolProperty", property: "backgroundColor" },
75406
- editor: { kind: "color", palette: STICKER_COLORS },
75756
+ editor: { kind: "color", palette: STICKER_COLORS, presentation: "sticker" },
75407
75757
  invoke: { kind: "toolProperty", property: "backgroundColor" }
75408
75758
  }
75409
75759
  ]
75760
+ },
75761
+ launch: { kind: "activate-tool" },
75762
+ surface: {
75763
+ order: 9
75410
75764
  }
75411
75765
  };
75412
75766
 
@@ -77913,12 +78267,16 @@ export {
77913
78267
  positionAbsolutely,
77914
78268
  parsersHTML,
77915
78269
  parseCssRgb,
78270
+ overlaySymbolIcon,
78271
+ overlayAssetIcon,
77916
78272
  omitDefaultProperties,
77917
78273
  messageRouter,
77918
78274
  meetsWCAG_AAA,
77919
78275
  meetsWCAG_AA,
78276
+ matchesOverlayCondition,
77920
78277
  listToolOverlays,
77921
78278
  listSelectionActions,
78279
+ listCreateSurfaceEntries,
77922
78280
  itemOverlays,
77923
78281
  itemFactories2 as itemFactories,
77924
78282
  itemOverlays as itemActions,
@@ -78011,6 +78369,7 @@ export {
78011
78369
  PRESENCE_CLEANUP_USER_TIMER,
78012
78370
  PRESENCE_CLEANUP_IDLE_TIMER,
78013
78371
  OVERLAY_SYMBOL_KEYS,
78372
+ OVERLAY_ICON_SPRITE_PATH,
78014
78373
  MiroItemConverter,
78015
78374
  Mbr,
78016
78375
  Matrix,