@ngroznykh/papirus 0.5.0 → 0.5.1

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.
@@ -46,6 +46,11 @@ export interface ContextMenuOptions {
46
46
  className?: string;
47
47
  minWidth?: number;
48
48
  closeOnSelect?: boolean;
49
+ /**
50
+ * If set, string icons (icon names) are rendered as <img src={iconToUrl(name)}>.
51
+ * Use when the host app uses SVG icons instead of Material Symbols font.
52
+ */
53
+ iconToUrl?: (iconName: string) => string;
49
54
  }
50
55
  export interface ContextMenuEvents {
51
56
  open: [target: ContextMenuTarget];
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuManager.d.ts","sourceRoot":"","sources":["../../src/core/ContextMenuManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextMenuManager.d.ts","sourceRoot":"","sources":["../../src/core/ContextMenuManager.ts"],"names":[],"mappings":"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"}
package/dist/papirus.js CHANGED
@@ -6195,6 +6195,7 @@ class ContextMenuManager extends EventEmitter {
6195
6195
  iconEl.style.alignItems = "center";
6196
6196
  iconEl.style.justifyContent = "center";
6197
6197
  iconEl.style.textAlign = "center";
6198
+ iconEl.style.flexShrink = "0";
6198
6199
  if (!icon) {
6199
6200
  iconEl.textContent = "";
6200
6201
  return iconEl;
@@ -6202,6 +6203,14 @@ class ContextMenuManager extends EventEmitter {
6202
6203
  if (typeof icon === "string") {
6203
6204
  if (this.isSvgString(icon)) {
6204
6205
  iconEl.innerHTML = icon;
6206
+ } else if (this.options.iconToUrl) {
6207
+ const img = document.createElement("img");
6208
+ img.src = this.options.iconToUrl(icon);
6209
+ img.alt = "";
6210
+ img.style.width = "16px";
6211
+ img.style.height = "16px";
6212
+ img.style.objectFit = "contain";
6213
+ iconEl.appendChild(img);
6205
6214
  } else {
6206
6215
  iconEl.classList.add("material-symbols-outlined");
6207
6216
  iconEl.style.fontSize = "16px";
@@ -6211,6 +6220,14 @@ class ContextMenuManager extends EventEmitter {
6211
6220
  }
6212
6221
  if (icon.type === "svg" || icon.type === "html") {
6213
6222
  iconEl.innerHTML = icon.value;
6223
+ } else if (this.options.iconToUrl) {
6224
+ const img = document.createElement("img");
6225
+ img.src = this.options.iconToUrl(icon.value);
6226
+ img.alt = "";
6227
+ img.style.width = "16px";
6228
+ img.style.height = "16px";
6229
+ img.style.objectFit = "contain";
6230
+ iconEl.appendChild(img);
6214
6231
  } else {
6215
6232
  iconEl.classList.add("material-symbols-outlined");
6216
6233
  iconEl.style.fontSize = "16px";