@prolibu-suite/cobalt-core 0.11.8 → 0.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/custom-elements.json +44 -1
  2. package/dist/cjs/co-color-picker.cjs.entry.js +1 -1
  3. package/dist/cjs/co-file-field.cjs.entry.js +30 -8
  4. package/dist/cjs/co-sidebar-nav.cjs.entry.js +29 -8
  5. package/dist/cjs/cobalt.cjs.js +1 -1
  6. package/dist/cjs/{fileI18n-6sdbKvo6.js → fileI18n-Bz8zbHlB.js} +3 -0
  7. package/dist/cjs/index-bHoidDwv.js +4 -4
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cobalt/cobalt.esm.js +1 -1
  10. package/dist/cobalt/{p-cd43d372.entry.js → p-15d995b4.entry.js} +1 -1
  11. package/dist/cobalt/p-438cc876.entry.js +1 -0
  12. package/dist/cobalt/p-b6463d35.entry.js +1 -0
  13. package/dist/cobalt/p-z0tbse7d.js +1 -0
  14. package/dist/collection/components/co-file-field/co-file-field.js +50 -8
  15. package/dist/collection/components/co-file-field/co-file-field.utils.js +14 -0
  16. package/dist/collection/components/co-sidebar-nav/co-sidebar-nav.js +5 -189
  17. package/dist/collection/components/co-sidebar-nav/sidebar-icon-map.js +205 -0
  18. package/dist/collection/utils/fileI18n.js +3 -0
  19. package/dist/components/co-color-picker.js +1 -1
  20. package/dist/components/co-file-field.js +1 -1
  21. package/dist/components/co-sidebar-nav.js +1 -1
  22. package/dist/components/p-z0tbse7d.js +1 -0
  23. package/dist/esm/co-color-picker.entry.js +1 -1
  24. package/dist/esm/co-file-field.entry.js +30 -8
  25. package/dist/esm/co-sidebar-nav.entry.js +29 -8
  26. package/dist/esm/cobalt.js +1 -1
  27. package/dist/esm/{fileI18n-gKnOhsd2.js → fileI18n-z0tbse7d.js} +3 -0
  28. package/dist/esm/index-DJkaRtbb.js +4 -4
  29. package/dist/esm/loader.js +1 -1
  30. package/dist/types/components/co-file-field/co-file-field.d.ts +13 -0
  31. package/dist/types/components/co-file-field/co-file-field.utils.d.ts +6 -0
  32. package/dist/types/components/co-sidebar-nav/sidebar-icon-map.d.ts +6 -0
  33. package/dist/types/components.d.ts +16 -0
  34. package/dist/types/utils/fileI18n.d.ts +1 -0
  35. package/package.json +3 -3
  36. package/dist/cobalt/p-99781b0b.entry.js +0 -1
  37. package/dist/cobalt/p-c31b9b51.entry.js +0 -1
  38. package/dist/cobalt/p-gKnOhsd2.js +0 -1
  39. package/dist/components/p-gKnOhsd2.js +0 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2026-10-01T18:15:21",
2
+ "timestamp": "2026-10-01T20:21:56",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.43.4",
@@ -20923,6 +20923,35 @@
20923
20923
  "getter": false,
20924
20924
  "setter": false
20925
20925
  },
20926
+ {
20927
+ "name": "annotatable",
20928
+ "type": "boolean",
20929
+ "complexType": {
20930
+ "original": "boolean",
20931
+ "resolved": "boolean",
20932
+ "references": {}
20933
+ },
20934
+ "mutable": false,
20935
+ "attr": "annotatable",
20936
+ "reflectToAttr": false,
20937
+ "docs": "Offer an \"annotate\" action on stored raster images (png/jpg/webp). The\nfield draws nothing itself: it emits `coAnnotate` and the host opens its\neditor, uploads the result and removes the original — same contract as\nuploads (the WC emits intent, the host does the I/O).",
20938
+ "docsTags": [
20939
+ {
20940
+ "name": "default",
20941
+ "text": "false"
20942
+ }
20943
+ ],
20944
+ "default": "false",
20945
+ "values": [
20946
+ {
20947
+ "type": "boolean"
20948
+ }
20949
+ ],
20950
+ "optional": false,
20951
+ "required": false,
20952
+ "getter": false,
20953
+ "setter": false
20954
+ },
20926
20955
  {
20927
20956
  "name": "disabled",
20928
20957
  "type": "boolean",
@@ -21387,6 +21416,20 @@
21387
21416
  ],
21388
21417
  "methods": [],
21389
21418
  "events": [
21419
+ {
21420
+ "event": "coAnnotate",
21421
+ "detail": "{ id: string; url: string; name: string; }",
21422
+ "bubbles": false,
21423
+ "complexType": {
21424
+ "original": "{ id: string; url: string; name: string }",
21425
+ "resolved": "{ id: string; url: string; name: string; }",
21426
+ "references": {}
21427
+ },
21428
+ "cancelable": true,
21429
+ "composed": true,
21430
+ "docs": "Emitted when the user asks to annotate a stored image (see `annotatable`).",
21431
+ "docsTags": []
21432
+ },
21390
21433
  {
21391
21434
  "event": "coClear",
21392
21435
  "detail": "void",
@@ -3,7 +3,7 @@
3
3
  var index = require('./index-bHoidDwv.js');
4
4
  var requiredMark = require('./requiredMark-21yHvvZS.js');
5
5
  var color = require('./color-DlKNWtdc.js');
6
- var fileI18n = require('./fileI18n-6sdbKvo6.js');
6
+ var fileI18n = require('./fileI18n-Bz8zbHlB.js');
7
7
 
8
8
  /**
9
9
  * Textos de co-color-picker. Mismo patrón que fileI18n/dateI18n: el componente
@@ -2,7 +2,7 @@
2
2
 
3
3
  var index = require('./index-bHoidDwv.js');
4
4
  var requiredMark = require('./requiredMark-21yHvvZS.js');
5
- var fileI18n = require('./fileI18n-6sdbKvo6.js');
5
+ var fileI18n = require('./fileI18n-Bz8zbHlB.js');
6
6
 
7
7
  /** Format bytes like the Figma spec: "59.25 KB" (base 1024, up to 2 decimals). */
8
8
  function formatBytes(bytes) {
@@ -83,6 +83,20 @@ function isImage(item) {
83
83
  return true;
84
84
  return hasImageExtension(item);
85
85
  }
86
+ /** Raster formats a host can redraw on a canvas and export again without loss of
87
+ * meaning. GIF (animation), SVG (vector) and the rest stay out: flattening them
88
+ * to a bitmap would silently change the file. */
89
+ const ANNOTATABLE_EXTS = new Set(['png', 'jpg', 'jpeg', 'webp']);
90
+ /**
91
+ * A stored raster image the host can annotate (draw on and re-upload). Needs the
92
+ * ORIGINAL `url` — a thumbnail is a downscaled copy, and a PDF that entered the
93
+ * grid through its thumbnail is not an image at all.
94
+ */
95
+ function isAnnotatable(item) {
96
+ if (item.status !== 'done' || !item.url)
97
+ return false;
98
+ return ANNOTATABLE_EXTS.has(fileExtension(item));
99
+ }
86
100
  /** Items that earn a card in the previews grid: images and videos alike. */
87
101
  function isPreviewable(item) {
88
102
  return isImage(item) || isVideo(item);
@@ -166,6 +180,7 @@ const CoFileField = class {
166
180
  this.coClear = index.createEvent(this, "coClear", 3);
167
181
  this.coReorder = index.createEvent(this, "coReorder", 3);
168
182
  this.coCopy = index.createEvent(this, "coCopy", 3);
183
+ this.coAnnotate = index.createEvent(this, "coAnnotate", 3);
169
184
  this.coPreviewOpen = index.createEvent(this, "coPreviewOpen", 3);
170
185
  /** Deshabilita el campo: no acepta archivos ni acciones. */
171
186
  this.disabled = false;
@@ -183,6 +198,13 @@ const CoFileField = class {
183
198
  this.layout = 'vertical';
184
199
  /** Allow drag-reordering of the uploaded list (multiple mode). */
185
200
  this.reorderable = true;
201
+ /**
202
+ * Offer an "annotate" action on stored raster images (png/jpg/webp). The
203
+ * field draws nothing itself: it emits `coAnnotate` and the host opens its
204
+ * editor, uploads the result and removes the original — same contract as
205
+ * uploads (the WC emits intent, the host does the I/O).
206
+ */
207
+ this.annotatable = false;
186
208
  /** Controlled file list, JSON array of {@link FileItem} (owned by the host). */
187
209
  this.files = '[]';
188
210
  this.dragOver = false;
@@ -515,12 +537,12 @@ const CoFileField = class {
515
537
  const previews = this.previewItems();
516
538
  const canReorder = this.reorderable && this.multiple && !this.disabled && !this.readonly && items.length > 1;
517
539
  const capacity = this.capacityHint(s);
518
- return (index.h("div", { key: '4a6cea48737c68e53f90a32e962660473f49ce5a', class: {
540
+ return (index.h("div", { key: 'ce032373afbb21b082696b4d532655c3d599800c', class: {
519
541
  'co-file-field': true,
520
542
  'co-file-field--disabled': this.disabled,
521
543
  'co-file-field--invalid': this.isInvalid,
522
544
  [statusClass]: !!statusClass,
523
- }, part: "wrapper" }, this.label && (index.h("div", { key: '3532e314c63b19208c7a7665dd025ff38585a598', class: "co-file-field__labels" }, index.h("label", { key: 'ae8aa6da81d6b959233218473086ecabe5ab8017', class: "co-file-field__label", part: "label" }, this.label, index.h(requiredMark.RequiredMark, { key: '78d12c0e676217fd208bc03cc6a119b6fbf521e7', required: this.required })))), showDropzone && (index.h("div", { key: 'a6e5764aa57090d6b9383b1f8148bcba1239ff3a', class: {
545
+ }, part: "wrapper" }, this.label && (index.h("div", { key: '7650af04090b50b39e9dde6879156b51fd0a1b11', class: "co-file-field__labels" }, index.h("label", { key: '5f305d56f5dcbe3b8d267e22471f4c6536792510', class: "co-file-field__label", part: "label" }, this.label, index.h(requiredMark.RequiredMark, { key: '46896eae83028b9117c32b2ab9ac21443a58c608', required: this.required })))), showDropzone && (index.h("div", { key: 'c2767c1c6f8e0e928f328db2e985f747f34b13af', class: {
524
546
  'co-file-field__dropzone': true,
525
547
  'co-file-field__dropzone--drag': this.dragOver,
526
548
  }, part: "dropzone", role: "button", tabIndex: this.disabled ? -1 : 0, onClick: this.handleBrowse, onKeyDown: (e) => {
@@ -528,7 +550,7 @@ const CoFileField = class {
528
550
  e.preventDefault();
529
551
  this.handleBrowse();
530
552
  }
531
- }, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave, onDrop: this.handleDrop }, index.h("button", { key: '44558c1a5d15c5aca23a7e204bcccf5e57d6b740', class: "co-file-field__upload-btn", part: "upload-button", type: "button", tabIndex: -1 }, index.h("co-icon", { key: '662340ae54f1d070606c0fd8226155b0360e803e', name: "file-arrow-up", size: 18 }), index.h("span", { key: '752f18e7121040eb4edf571a54a9a5308825cb13' }, this.uploadButtonText || s.uploadButton)), index.h("span", { key: 'b92332ee8e7e658b33814b8c1ae34a4630045819', class: "co-file-field__dropzone-text" }, this.dropText || s.dropHint), capacity && index.h("span", { key: 'ed1f7c9093145ecbb49446b72a3d3bc99ee232e2', class: "co-file-field__dropzone-hint" }, capacity), index.h("div", { key: 'fd4953e9dfebf35936ae836d6f28ccdc17ccf951', class: "co-file-field__actions", part: "actions" }, index.h("slot", { key: 'c2e568fabd1512ecfa298c2ab281d310fbe21664', name: "actions" })), index.h("input", { key: '17acb79e8d066c18f7c1ac051a365d4282c852af', ref: (el) => (this.inputEl = el), class: "co-file-field__input", type: "file", multiple: this.multiple, accept: this.inputAccept, disabled: this.disabled, onChange: this.handleInputChange, "aria-hidden": "true", tabIndex: -1 }))), items.length > 0 && (index.h("div", { key: 'a793e2b836269abaafe71fd56b07b3d54155cf75', class: "co-file-field__uploaded" }, this.multiple && (index.h("div", { key: '2a265874db718faf1e78f2dd46e5ff14bbfbbff2', class: "co-file-field__uploaded-title", part: "uploaded-title" }, `${this.uploadedTitle || s.uploadedTitle} (${items.length})`)), previews.length > 0 && (index.h("div", { key: 'a4ebb3fae5ad4b2b29263381f9eb5ae03a98867d', class: "co-file-field__previews", part: "previews" }, previews.map((item) => {
553
+ }, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave, onDrop: this.handleDrop }, index.h("button", { key: 'f9b2ef43730b009a6ca322ea6cae833f86a52ff0', class: "co-file-field__upload-btn", part: "upload-button", type: "button", tabIndex: -1 }, index.h("co-icon", { key: 'ffa7d7fdb830fc789ffd4ada624c450c70109701', name: "file-arrow-up", size: 18 }), index.h("span", { key: 'c9c54dd9432f8c74894a0054ecdf0c59aede974a' }, this.uploadButtonText || s.uploadButton)), index.h("span", { key: '74f8884d62b79960e0080794404f24e45d229284', class: "co-file-field__dropzone-text" }, this.dropText || s.dropHint), capacity && index.h("span", { key: '4c6bdd2de90754b50135e9212510884d1495b8d4', class: "co-file-field__dropzone-hint" }, capacity), index.h("div", { key: '42bd92119fed5b9be39e7db5c351990faafc7135', class: "co-file-field__actions", part: "actions" }, index.h("slot", { key: 'fa2a649c222125ba63fa74028dba417c50f7b3f6', name: "actions" })), index.h("input", { key: '982021a63eb6bec0b19ca917382a6efd37938ab3', ref: (el) => (this.inputEl = el), class: "co-file-field__input", type: "file", multiple: this.multiple, accept: this.inputAccept, disabled: this.disabled, onChange: this.handleInputChange, "aria-hidden": "true", tabIndex: -1 }))), items.length > 0 && (index.h("div", { key: '95bd1f51b0a361dec2ca0b272212ef64d438db0a', class: "co-file-field__uploaded" }, this.multiple && (index.h("div", { key: '479851cd44dbdc9ad99e9b26764f558845966c53', class: "co-file-field__uploaded-title", part: "uploaded-title" }, `${this.uploadedTitle || s.uploadedTitle} (${items.length})`)), previews.length > 0 && (index.h("div", { key: '8be03edd2b1b8b7628d6e34fa82751045589b416', class: "co-file-field__previews", part: "previews" }, previews.map((item) => {
532
554
  const key = this.keyFor(item);
533
555
  const video = isVideo(item);
534
556
  // A video without a usable poster still gets a card — the
@@ -539,7 +561,7 @@ const CoFileField = class {
539
561
  'co-file-field__preview': true,
540
562
  'co-file-field__preview--video': video,
541
563
  }, part: "preview", type: "button", key: `prev-${key}`, title: item.name, "aria-label": `${video ? s.playVideo : s.openPreview}: ${item.name}`, onClick: () => this.handlePreviewOpen(item) }, showImg && (index.h("img", { src: video ? poster : item.thumbnail || item.url, alt: item.name, loading: "lazy", onError: () => this.handlePreviewError(item) })), video && (index.h("span", { class: "co-file-field__preview-play", "aria-hidden": "true" }, index.h("span", { class: "co-file-field__preview-play-badge" }, index.h("co-icon", { name: "play", size: 20, weight: "fill" })), !poster && (index.h("span", { class: "co-file-field__preview-ext" }, fileExtension(item).toUpperCase()))))));
542
- }))), index.h("ul", { key: '97ead2383d036b1ed2b09d6e931be2bfbcce25d2', class: "co-file-field__list", part: "list" }, items.map((item) => {
564
+ }))), index.h("ul", { key: '1fa661f14a8644a2703204d1faac79e5599c5e77', class: "co-file-field__list", part: "list" }, items.map((item) => {
543
565
  const key = this.keyFor(item);
544
566
  const draggable = canReorder && item.status === 'done';
545
567
  return (index.h("li", { class: {
@@ -559,14 +581,14 @@ const CoFileField = class {
559
581
  'co-file-field__row-icon--spin': item.status === 'uploading',
560
582
  } })), index.h("div", { class: "co-file-field__row-body" }, index.h("span", { class: "co-file-field__row-name", title: item.name }, truncateLeft(item.name)), item.status === 'uploading' && (index.h("div", { class: "co-file-field__progress" }, index.h("div", { class: "co-file-field__progress-bar", style: typeof item.progress === 'number'
561
583
  ? { width: `${item.progress}%` }
562
- : undefined }))), item.status === 'error' && item.error && (index.h("span", { class: "co-file-field__row-error" }, item.error))), item.size != null && (index.h("span", { class: "co-file-field__row-size" }, formatBytes(item.size))), item.status === 'done' && !!item.url && (index.h("co-tooltip", { content: s.downloadFile }, index.h("a", { class: "co-file-field__action", href: item.url, target: "_blank", rel: "noopener noreferrer", download: item.name, tabIndex: -1, "aria-label": s.downloadFile, onClick: (e) => this.onDownloadClick(e, item) }, index.h("co-icon", { name: "download", size: 18 })))), item.status === 'done' && !!item.url && (index.h("co-tooltip", { content: this.copiedKey === key ? s.copied : s.copyUrl }, index.h("button", { class: {
584
+ : undefined }))), item.status === 'error' && item.error && (index.h("span", { class: "co-file-field__row-error" }, item.error))), item.size != null && (index.h("span", { class: "co-file-field__row-size" }, formatBytes(item.size))), this.annotatable && !this.disabled && !this.readonly && isAnnotatable(item) && (index.h("co-tooltip", { content: s.annotateImage }, index.h("button", { class: "co-file-field__action", type: "button", tabIndex: -1, "aria-label": `${s.annotateImage}: ${item.name}`, onClick: () => this.coAnnotate.emit({ id: key, url: item.url, name: item.name }) }, index.h("co-icon", { name: "pencil-simple-line", size: 18 })))), item.status === 'done' && !!item.url && (index.h("co-tooltip", { content: s.downloadFile }, index.h("a", { class: "co-file-field__action", href: item.url, target: "_blank", rel: "noopener noreferrer", download: item.name, tabIndex: -1, "aria-label": s.downloadFile, onClick: (e) => this.onDownloadClick(e, item) }, index.h("co-icon", { name: "download", size: 18 })))), item.status === 'done' && !!item.url && (index.h("co-tooltip", { content: this.copiedKey === key ? s.copied : s.copyUrl }, index.h("button", { class: {
563
585
  'co-file-field__action': true,
564
586
  'co-file-field__action--copied': this.copiedKey === key,
565
587
  }, type: "button", tabIndex: -1, "aria-label": s.copyUrl, onClick: () => this.handleCopy(item) }, index.h("co-icon", { name: this.copiedKey === key ? 'check' : 'copy', size: 18 })))), !this.disabled && !this.readonly && (index.h("co-tooltip", { content: s.removeFile }, index.h("button", { class: "co-file-field__action", type: "button", tabIndex: -1, "aria-label": s.removeFile, onClick: () => this.coRemove.emit(key) }, index.h("co-icon", { name: "trash", size: 18 }))))));
566
- })))), helper && (index.h("div", { key: 'd4fef1bb2aa10f90ca7cd5e01bb5fed9ea917637', class: {
588
+ })))), helper && (index.h("div", { key: '7562fdf435667ae305e677830cae06a3374ef67b', class: {
567
589
  'co-file-field__helper': true,
568
590
  'co-file-field__helper--error': this.isInvalid,
569
- }, part: "helper" }, this.isInvalid && (index.h("co-icon", { key: '2fb9d5d28732c239bcec4b0a30dfe194367e8b5d', name: "warning-circle", size: 14, class: "co-file-field__helper-icon" })), index.h("span", { key: '09bd101388c52a7fb8d0139c20f52f2da733543b', class: "co-file-field__helper-text" }, helper)))));
591
+ }, part: "helper" }, this.isInvalid && (index.h("co-icon", { key: 'ac43b079725a8b015f2ba1a8b8f22783f60e556e', name: "warning-circle", size: 14, class: "co-file-field__helper-icon" })), index.h("span", { key: 'cd256498ce501e5b59ae1a5850f8f8ddccb98580', class: "co-file-field__helper-text" }, helper)))));
570
592
  }
571
593
  get el() { return index.getElement(this); }
572
594
  };
@@ -3,17 +3,21 @@
3
3
  var index = require('./index-bHoidDwv.js');
4
4
  var normalizeText = require('./normalizeText-D9rlJWZa.js');
5
5
 
6
- const coSidebarNavCss = () => `@property --co-sidebar-fade-top{syntax:"<length>";inherits:false;initial-value:0px}@property --co-sidebar-fade-bottom{syntax:"<length>";inherits:false;initial-value:0px}:host{display:block;height:100%;overflow-y:auto;overflow-x:hidden;font-family:var(--co-font-family-primary);scrollbar-width:thin;scrollbar-color:transparent transparent;--co-sidebar-fade-size:28px}:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%)}@supports (animation-timeline: scroll()){:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){animation:co-sidebar-edge-fade linear both;animation-timeline:scroll(self block)}}@keyframes co-sidebar-edge-fade{0%{--co-sidebar-fade-top:0px;--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}8%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}92%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}100%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:0px}}:host(:hover){scrollbar-color:var(--co-color-opacity-blanco-16) transparent}:host::-webkit-scrollbar{width:6px}:host::-webkit-scrollbar-track{background:transparent}:host::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}:host(:hover)::-webkit-scrollbar-thumb{background:var(--co-color-opacity-blanco-16)}:host(:hover)::-webkit-scrollbar-thumb:hover{background:var(--co-color-opacity-blanco-25)}:host(:hover)::-webkit-scrollbar-thumb:active{background:var(--co-color-opacity-blanco-50)}:host([mode="min"]){scrollbar-width:none !important}:host([mode="min"])::-webkit-scrollbar{width:0 !important}.co-sidebar-nav{display:flex;flex-direction:column;gap:var(--co-spacing-xs);padding:var(--co-spacing-xs)}.co-sidebar-nav--min{align-items:center;padding:var(--co-spacing-xs) 0}.co-sidebar-nav__search{display:flex;align-items:center;gap:var(--co-spacing-sm);padding:var(--co-spacing-xs) var(--co-spacing-sm);margin:0 var(--co-spacing-xs) var(--co-spacing-xs);border:1px solid var(--co-semantic-border-default);border-radius:var(--co-border-radius-xs);background:var(--co-semantic-surface-secondary);height:32px}.co-sidebar-nav__search co-icon{color:var(--co-semantic-text-muted);flex-shrink:0}.co-sidebar-nav__search-input{flex:1;border:none;outline:none;background:transparent;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-12);letter-spacing:var(--co-font-letter-spacing-body);color:var(--co-semantic-text-default);min-width:0}.co-sidebar-nav__search-input::placeholder{color:var(--co-semantic-text-muted)}.co-sidebar-nav__search-clear{display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;padding:0;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav__search-clear:hover{color:var(--co-semantic-text-default)}.co-sidebar-nav__items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav--min .co-sidebar-nav__items{align-items:center}.co-sidebar-nav__category{display:flex;flex-direction:column}.co-sidebar-nav__category+.co-sidebar-nav__category{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-label{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:0.08em;padding:var(--co-spacing-lg) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__category-items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav__category--min{display:flex;flex-direction:column;align-items:center}.co-sidebar-nav__category--min+.co-sidebar-nav__category--min{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-spacer{visibility:hidden;white-space:nowrap;padding-left:0;padding-right:0}.co-sidebar-nav__category--min>:not(.co-sidebar-nav__category-spacer)+*{margin-top:var(--co-spacing-xxs)}.co-sidebar-nav__item{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-default);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__item:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium);--co-glass-blur:12px;--co-glass-saturate:1.3;-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover)));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.co-sidebar-nav__item-icon co-icon{color:inherit}.co-sidebar-nav__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__custom-icon{width:18px;height:18px;object-fit:contain;border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav--min co-tooltip{line-height:0}.co-sidebar-nav--min .co-sidebar-nav__item{width:36px;height:28px;padding:0;justify-content:center;border-radius:var(--co-border-radius-xs)}.co-sidebar-nav__flyout-anchor{position:relative}.co-sidebar-nav__flyout{position:fixed;min-width:180px;max-width:240px;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-subtle);color:var(--co-semantic-text-default);border-radius:var(--co-border-radius-sm);box-shadow:var(--co-shadow-lg);padding:var(--co-spacing-md);display:flex;flex-direction:column;z-index:9999;animation:co-flyout-in var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-sidebar-nav__flyout-title{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:var(--co-font-letter-spacing-overline);padding:var(--co-spacing-xxs) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none}.co-sidebar-nav__flyout .co-sidebar-nav__item{width:100%;height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);gap:var(--co-spacing-md);font-weight:var(--co-font-weight-regular);color:var(--co-semantic-text-default);line-height:var(--co-font-line-height-none);justify-content:flex-start}.co-sidebar-nav__flyout .co-sidebar-nav__item:hover{background:var(--co-semantic-surface-control)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon{display:flex;width:24px;height:24px}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon co-icon{color:var(--co-semantic-text-default)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active .co-sidebar-nav__item-icon co-icon{color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}@keyframes co-flyout-in{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:translateX(0)}}.co-sidebar-nav__expansion{display:flex;flex-direction:column}.co-sidebar-nav__expansion-header{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-secondary);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__expansion-header:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion--active>.co-sidebar-nav__expansion-header{color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion-caret{margin-left:auto;flex-shrink:0;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out);color:var(--co-semantic-text-muted)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-header .co-sidebar-nav__expansion-caret{transform:rotate(90deg)}.co-sidebar-nav__expansion-body{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);overflow:hidden;max-height:0;opacity:0;transition:max-height var(--co-motion-duration-slow) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out), padding var(--co-motion-duration-base) var(--co-motion-ease-out);padding-left:var(--co-spacing-xl)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-body{max-height:1000px;opacity:1;padding-top:var(--co-spacing-xxs)}.co-sidebar-nav__highlight{all:unset;background-color:var(--co-color-primary-amarillo, #facc15);color:var(--co-color-base-negro, #000);border-radius:2px;padding:0 1px}`;
7
-
8
- /** Default icon mapping for common Prolibu model keys → Phosphor icon names */
9
- const DEFAULT_ICON_MAP = {
6
+ /**
7
+ * Clave del menú de Prolibu → ícono Phosphor (lo usa `co-sidebar-nav`; el prop `icon-map`
8
+ * lo extiende). Una clave sin entrada cae a `circle`: `sidebar-icon-map.test.ts` cruza este
9
+ * mapa con las claves que manda el backend y verifica que cada ícono exista en Phosphor.
10
+ */
11
+ const SIDEBAR_ICON_MAP = {
10
12
  // Directory
11
13
  Home: 'house',
12
14
  Contacts: 'address-book',
13
15
  Companies: 'buildings',
16
+ Leads: 'user-focus',
14
17
  // Sales
15
18
  Presentations: 'presentation-chart',
16
19
  Deals: 'handshake',
20
+ TestDrive: 'steering-wheel',
17
21
  Invoices: 'receipt',
18
22
  Payments: 'credit-card',
19
23
  // Communications
@@ -37,6 +41,7 @@ const DEFAULT_ICON_MAP = {
37
41
  Meetings: 'video-camera',
38
42
  Calls: 'phone-call',
39
43
  CloudDrive: 'cloud',
44
+ Forms: 'note-pencil',
40
45
  // Libraries
41
46
  Quotes: 'quotes',
42
47
  ContentTemplates: 'article',
@@ -59,6 +64,7 @@ const DEFAULT_ICON_MAP = {
59
64
  // Configuration
60
65
  Users: 'user',
61
66
  UserTeams: 'users',
67
+ Teams: 'users',
62
68
  UserGroups: 'user-circle-gear',
63
69
  Roles: 'shield',
64
70
  Workspaces: 'stack',
@@ -73,6 +79,7 @@ const DEFAULT_ICON_MAP = {
73
79
  // Wizards
74
80
  ProposalWizards: 'magic-wand',
75
81
  WizardGroups: 'folders',
82
+ ProposalWizardGroup: 'folders',
76
83
  // Advertising
77
84
  AdHubs: 'storefront',
78
85
  AdCampaigns: 'flag-banner',
@@ -95,6 +102,8 @@ const DEFAULT_ICON_MAP = {
95
102
  Categories: 'folder-simple',
96
103
  CustomFilters: 'funnel',
97
104
  Logs: 'list-bullets',
105
+ ContactProtocols: 'list-checks',
106
+ Scorings: 'chart-line-up',
98
107
  // Iot
99
108
  Devices: 'cpu',
100
109
  // Development
@@ -135,6 +144,15 @@ const DEFAULT_ICON_MAP = {
135
144
  TourStudio: 'cube',
136
145
  Docs: 'file-text',
137
146
  Setup: 'gear-six',
147
+ SalesAndMarketing: 'trend-up',
148
+ CustomerService: 'lifebuoy',
149
+ HumanResources: 'identification-badge',
150
+ TicketsSetup: 'ticket',
151
+ CommunicationCenterSetup: 'headset',
152
+ // Inventory
153
+ Inventory: 'warehouse',
154
+ Branches: 'building-office',
155
+ ItemStock: 'barcode',
138
156
  // Human Resources — Learning
139
157
  Learning: 'graduation-cap',
140
158
  Programs: 'path',
@@ -190,6 +208,9 @@ const DEFAULT_ICON_MAP = {
190
208
  Telegram: 'telegram-logo',
191
209
  Discord: 'discord-logo',
192
210
  };
211
+
212
+ const coSidebarNavCss = () => `@property --co-sidebar-fade-top{syntax:"<length>";inherits:false;initial-value:0px}@property --co-sidebar-fade-bottom{syntax:"<length>";inherits:false;initial-value:0px}:host{display:block;height:100%;overflow-y:auto;overflow-x:hidden;font-family:var(--co-font-family-primary);scrollbar-width:thin;scrollbar-color:transparent transparent;--co-sidebar-fade-size:28px}:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--co-sidebar-fade-top), #000 calc(100% - var(--co-sidebar-fade-bottom)), transparent 100%)}@supports (animation-timeline: scroll()){:host(:not([mode="min"])),:host([mode="min"]:not(.flyout-open)){animation:co-sidebar-edge-fade linear both;animation-timeline:scroll(self block)}}@keyframes co-sidebar-edge-fade{0%{--co-sidebar-fade-top:0px;--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}8%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}92%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:var(--co-sidebar-fade-size)}100%{--co-sidebar-fade-top:var(--co-sidebar-fade-size);--co-sidebar-fade-bottom:0px}}:host(:hover){scrollbar-color:var(--co-color-opacity-blanco-16) transparent}:host::-webkit-scrollbar{width:6px}:host::-webkit-scrollbar-track{background:transparent}:host::-webkit-scrollbar-thumb{background:transparent;border-radius:9999px}:host(:hover)::-webkit-scrollbar-thumb{background:var(--co-color-opacity-blanco-16)}:host(:hover)::-webkit-scrollbar-thumb:hover{background:var(--co-color-opacity-blanco-25)}:host(:hover)::-webkit-scrollbar-thumb:active{background:var(--co-color-opacity-blanco-50)}:host([mode="min"]){scrollbar-width:none !important}:host([mode="min"])::-webkit-scrollbar{width:0 !important}.co-sidebar-nav{display:flex;flex-direction:column;gap:var(--co-spacing-xs);padding:var(--co-spacing-xs)}.co-sidebar-nav--min{align-items:center;padding:var(--co-spacing-xs) 0}.co-sidebar-nav__search{display:flex;align-items:center;gap:var(--co-spacing-sm);padding:var(--co-spacing-xs) var(--co-spacing-sm);margin:0 var(--co-spacing-xs) var(--co-spacing-xs);border:1px solid var(--co-semantic-border-default);border-radius:var(--co-border-radius-xs);background:var(--co-semantic-surface-secondary);height:32px}.co-sidebar-nav__search co-icon{color:var(--co-semantic-text-muted);flex-shrink:0}.co-sidebar-nav__search-input{flex:1;border:none;outline:none;background:transparent;font-family:var(--co-font-family-primary);font-size:var(--co-font-size-12);letter-spacing:var(--co-font-letter-spacing-body);color:var(--co-semantic-text-default);min-width:0}.co-sidebar-nav__search-input::placeholder{color:var(--co-semantic-text-muted)}.co-sidebar-nav__search-clear{display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;padding:0;color:var(--co-semantic-text-muted);border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav__search-clear:hover{color:var(--co-semantic-text-default)}.co-sidebar-nav__items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav--min .co-sidebar-nav__items{align-items:center}.co-sidebar-nav__category{display:flex;flex-direction:column}.co-sidebar-nav__category+.co-sidebar-nav__category{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-label{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:0.08em;padding:var(--co-spacing-lg) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__category-items{display:flex;flex-direction:column;gap:var(--co-spacing-xxs)}.co-sidebar-nav__category--min{display:flex;flex-direction:column;align-items:center}.co-sidebar-nav__category--min+.co-sidebar-nav__category--min{margin-top:var(--co-spacing-sm)}.co-sidebar-nav__category-spacer{visibility:hidden;white-space:nowrap;padding-left:0;padding-right:0}.co-sidebar-nav__category--min>:not(.co-sidebar-nav__category-spacer)+*{margin-top:var(--co-spacing-xxs)}.co-sidebar-nav__item{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-default);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__item:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium);--co-glass-blur:12px;--co-glass-saturate:1.3;-webkit-backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)));backdrop-filter:var(--co-glass-filter, blur(var(--co-glass-blur)) saturate(var(--co-glass-saturate)))}.co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-sidebar-nav-active-bg, var(--co-semantic-surface-hover)));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__item-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px}.co-sidebar-nav__item-icon co-icon{color:inherit}.co-sidebar-nav__item-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.co-sidebar-nav__custom-icon{width:18px;height:18px;object-fit:contain;border-radius:var(--co-border-radius-xxs)}.co-sidebar-nav--min co-tooltip{line-height:0}.co-sidebar-nav--min .co-sidebar-nav__item{width:36px;height:28px;padding:0;justify-content:center;border-radius:var(--co-border-radius-xs)}.co-sidebar-nav__flyout-anchor{position:relative}.co-sidebar-nav__flyout{position:fixed;min-width:180px;max-width:240px;background:var(--co-semantic-surface-page);border:1px solid var(--co-semantic-border-subtle);color:var(--co-semantic-text-default);border-radius:var(--co-border-radius-sm);box-shadow:var(--co-shadow-lg);padding:var(--co-spacing-md);display:flex;flex-direction:column;z-index:9999;animation:co-flyout-in var(--co-motion-duration-fast) var(--co-motion-ease-out)}.co-sidebar-nav__flyout-title{text-transform:uppercase;font-family:var(--co-font-family-mono);font-size:var(--co-font-size-10);font-weight:400;color:var(--co-semantic-text-muted);line-height:110%;letter-spacing:var(--co-font-letter-spacing-overline);padding:var(--co-spacing-xxs) var(--co-spacing-sm) var(--co-spacing-xs);user-select:none}.co-sidebar-nav__flyout .co-sidebar-nav__item{width:100%;height:32px;padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);gap:var(--co-spacing-md);font-weight:var(--co-font-weight-regular);color:var(--co-semantic-text-default);line-height:var(--co-font-line-height-none);justify-content:flex-start}.co-sidebar-nav__flyout .co-sidebar-nav__item:hover{background:var(--co-semantic-surface-control)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)));font-weight:var(--co-font-weight-medium)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active:hover{background:var(--co-sidebar-nav-active-bg-min, var(--co-semantic-surface-control));color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon{display:flex;width:24px;height:24px}.co-sidebar-nav__flyout .co-sidebar-nav__item-icon co-icon{color:var(--co-semantic-text-default)}.co-sidebar-nav__flyout .co-sidebar-nav__item--active .co-sidebar-nav__item-icon co-icon{color:var(--co-sidebar-nav-active-color, var(--co-semantic-text-link, var(--co-color-primary-azul)))}@keyframes co-flyout-in{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:translateX(0)}}.co-sidebar-nav__expansion{display:flex;flex-direction:column}.co-sidebar-nav__expansion-header{display:flex;align-items:center;gap:var(--co-spacing-sm2);padding:var(--co-spacing-xs) var(--co-spacing-sm);border-radius:var(--co-border-radius-xs);border:none;background:none;cursor:pointer;width:100%;text-align:left;color:var(--co-semantic-text-secondary);transition:background var(--co-motion-duration-fast) var(--co-motion-ease-out), color var(--co-motion-duration-fast) var(--co-motion-ease-out);font-family:var(--co-font-family-primary);font-size:var(--co-font-size-14);font-weight:var(--co-font-weight-medium);letter-spacing:var(--co-font-letter-spacing-body);line-height:1}.co-sidebar-nav__expansion-header:hover{background:var(--co-semantic-surface-hover);color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion--active>.co-sidebar-nav__expansion-header{color:var(--co-semantic-text-default)}.co-sidebar-nav__expansion-caret{margin-left:auto;flex-shrink:0;transition:transform var(--co-motion-duration-base) var(--co-motion-ease-out);color:var(--co-semantic-text-muted)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-header .co-sidebar-nav__expansion-caret{transform:rotate(90deg)}.co-sidebar-nav__expansion-body{display:flex;flex-direction:column;gap:var(--co-spacing-xxs);overflow:hidden;max-height:0;opacity:0;transition:max-height var(--co-motion-duration-slow) var(--co-motion-ease-out), opacity var(--co-motion-duration-base) var(--co-motion-ease-out), padding var(--co-motion-duration-base) var(--co-motion-ease-out);padding-left:var(--co-spacing-xl)}.co-sidebar-nav__expansion--expanded>.co-sidebar-nav__expansion-body{max-height:1000px;opacity:1;padding-top:var(--co-spacing-xxs)}.co-sidebar-nav__highlight{all:unset;background-color:var(--co-color-primary-amarillo, #facc15);color:var(--co-color-base-negro, #000);border-radius:2px;padding:0 1px}`;
213
+
193
214
  /** Ícono de un ítem en modo `min` (sin label): 18 (20 se veía pesado; 16 = el de full, se perdía). */
194
215
  const MIN_ICON_SIZE = 18;
195
216
  const CoSidebarNav = class {
@@ -250,10 +271,10 @@ const CoSidebarNav = class {
250
271
  }
251
272
  parseIconMap() {
252
273
  try {
253
- this.parsedIconMap = Object.assign(Object.assign({}, DEFAULT_ICON_MAP), JSON.parse(this.iconMap));
274
+ this.parsedIconMap = Object.assign(Object.assign({}, SIDEBAR_ICON_MAP), JSON.parse(this.iconMap));
254
275
  }
255
276
  catch (_a) {
256
- this.parsedIconMap = Object.assign({}, DEFAULT_ICON_MAP);
277
+ this.parsedIconMap = Object.assign({}, SIDEBAR_ICON_MAP);
257
278
  }
258
279
  }
259
280
  parseTranslations() {
@@ -507,10 +528,10 @@ const CoSidebarNav = class {
507
528
  // `flyout-open` (min mode only) lets the CSS drop the host edge-fade mask
508
529
  // while a flyout is shown — a host mask would otherwise clip AND
509
530
  // mis-position the fixed flyout (mask makes the host a containing block).
510
- index.h(index.Host, { key: '7e9637d98b9a2a698f6b82050b0f9cdadda66798', class: { 'flyout-open': !!this.flyoutKey } }, index.h("nav", { key: 'c3ad14a4e294be4c2b803c93a4ddbf42daae5dd0', class: {
531
+ index.h(index.Host, { key: 'a7c5661ad2613a6f2c45c37e6def2e4c8d7e9801', class: { 'flyout-open': !!this.flyoutKey } }, index.h("nav", { key: '597d59612958ab2014a7db0ad561abd1db15524f', class: {
511
532
  'co-sidebar-nav': true,
512
533
  'co-sidebar-nav--min': this.mode === 'min',
513
- } }, this.renderSearch(), index.h("div", { key: '2b2f5c39b6a529e1993695f4cda5ba5c5965c17e', class: "co-sidebar-nav__items" }, items.map(item => this.renderItem(item))))));
534
+ } }, this.renderSearch(), index.h("div", { key: '55a5bb260444a26e3e2228fb08c30c15746994a9', class: "co-sidebar-nav__items" }, items.map(item => this.renderItem(item))))));
514
535
  }
515
536
  get el() { return index.getElement(this); }
516
537
  static get watchers() { return {