@muonroi/ui-engine-rule-components 0.1.28 → 0.1.29

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.
@@ -26,8 +26,10 @@ import "../coverage-badge/mu-coverage-badge.js";
26
26
  *
27
27
  * Composes mu-ba-status-badge, mu-source-badge, mu-coverage-badge per row.
28
28
  *
29
- * Threat T-19-01: all text bound via Lit html`` interpolation (auto-escaped); no unsafeHTML.
30
- * Threat T-19-02: openPath passed through encodeURIComponent before dispatch (ASVS V5).
29
+ * Threat T-20-01: all text bound via Lit html`` interpolation (auto-escaped); pendingLabel.replace()
30
+ * operates on a plain string then is interpolated still escaped; no unsafeHTML (carried T-19-01).
31
+ * Threat T-20-02: producer (DocumentsPage.tsx:59) name-only encodes the workflow segment; component
32
+ * dispatches openPath verbatim — no whole-path re-encoding (ASVS V5 trust boundary at producer).
31
33
  * Threat T-19-03: pending-count null → "N/A" (honesty; no sensitive data).
32
34
  */
33
35
  export interface DocumentRow {
@@ -1 +1 @@
1
- {"version":3,"file":"mu-document-list.d.ts","sourceRoot":"","sources":["../../../src/components/document-list/mu-document-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,0CAA0C,CAAC;AAClD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,wCAAwC,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBACa,cAAe,SAAQ,UAAU;IACX,IAAI,SAAM;IACa,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjD,YAAY,SAAM;IACnB,WAAW,SAAM;IACX,iBAAiB,SAAM;IAClC,OAAO,SAAM;IACA,KAAK,UAAS;IAE/D,OAAO,KAAK,WAAW,GAQtB;IAED,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,UAAU;IAyBlB,MAAM;IAgCN,MAAM,CAAC,MAAM,0BA4GX;CACH;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
1
+ {"version":3,"file":"mu-document-list.d.ts","sourceRoot":"","sources":["../../../src/components/document-list/mu-document-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,0CAA0C,CAAC;AAClD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,wCAAwC,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBACa,cAAe,SAAQ,UAAU;IACX,IAAI,SAAM;IACa,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IACjD,YAAY,SAAM;IACnB,WAAW,SAAM;IACX,iBAAiB,SAAM;IAClC,OAAO,SAAM;IACA,KAAK,UAAS;IAE/D,OAAO,KAAK,WAAW,GAQtB;IAED,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,UAAU;IAyBlB,MAAM;IAgCN,MAAM,CAAC,MAAM,0BA4GX;CACH;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
@@ -61097,10 +61097,9 @@ let lc = class extends Tn {
61097
61097
  );
61098
61098
  }
61099
61099
  _dispatchOpen(n) {
61100
- const e = encodeURIComponent(n);
61101
61100
  this.dispatchEvent(
61102
61101
  new CustomEvent("document-open", {
61103
- detail: { path: e },
61102
+ detail: { path: n },
61104
61103
  bubbles: !0,
61105
61104
  composed: !0
61106
61105
  })
@@ -61136,7 +61135,7 @@ let lc = class extends Tn {
61136
61135
  <div class="doc-list">
61137
61136
  <div class="doc-list-header">
61138
61137
  ${this.heading ? we`<h2 class="doc-heading">${this.heading}</h2>` : on}
61139
- ${this.pendingLabel ? we`<span class="pending-chip">${e} ${this.pendingLabel}</span>` : on}
61138
+ ${this.pendingLabel ? we`<span class="pending-chip">${this.pendingLabel.replace("{n}", e)}</span>` : on}
61140
61139
  <button class="create-cta" @click=${() => this._dispatchCreate()}>
61141
61140
  ${this.createLabel}
61142
61141
  </button>
@@ -2510,7 +2510,7 @@ React keys must be passed directly to JSX without using spread:
2510
2510
  outline: 2px solid var(--mu-color-interactive);
2511
2511
  outline-offset: 2px;
2512
2512
  }
2513
- `,G8([dt({attribute:"message"})],zL.prototype,"message",2),G8([dt({attribute:"cta-label"})],zL.prototype,"ctaLabel",2),G8([dt({attribute:"tooltip"})],zL.prototype,"tooltip",2),zL=G8([pr("mu-empty-state")],zL);var iot=Object.defineProperty,not=Object.getOwnPropertyDescriptor,a0=(s,e,t,i)=>{for(var n=i>1?void 0:i?not(e,t):e,r=s.length-1,o;r>=0;r--)(o=s[r])&&(n=(i?o(e,t,n):o(n))||n);return i&&n&&iot(e,t,n),n};let T_=class extends Ps{constructor(){super(...arguments),this.rows="",this.pendingCount=null,this.pendingLabel="",this.createLabel="",this.searchPlaceholder="",this.heading="",this.empty=!1}get _parsedRows(){if(!this.rows)return[];try{const s=JSON.parse(this.rows);return Array.isArray(s)?s:[]}catch{return[]}}_dispatchCreate(){this.dispatchEvent(new CustomEvent("document-create",{bubbles:!0,composed:!0}))}_dispatchOpen(s){const e=encodeURIComponent(s);this.dispatchEvent(new CustomEvent("document-open",{detail:{path:e},bubbles:!0,composed:!0}))}_renderRow(s){return tt`
2513
+ `,G8([dt({attribute:"message"})],zL.prototype,"message",2),G8([dt({attribute:"cta-label"})],zL.prototype,"ctaLabel",2),G8([dt({attribute:"tooltip"})],zL.prototype,"tooltip",2),zL=G8([pr("mu-empty-state")],zL);var iot=Object.defineProperty,not=Object.getOwnPropertyDescriptor,a0=(s,e,t,i)=>{for(var n=i>1?void 0:i?not(e,t):e,r=s.length-1,o;r>=0;r--)(o=s[r])&&(n=(i?o(e,t,n):o(n))||n);return i&&n&&iot(e,t,n),n};let T_=class extends Ps{constructor(){super(...arguments),this.rows="",this.pendingCount=null,this.pendingLabel="",this.createLabel="",this.searchPlaceholder="",this.heading="",this.empty=!1}get _parsedRows(){if(!this.rows)return[];try{const s=JSON.parse(this.rows);return Array.isArray(s)?s:[]}catch{return[]}}_dispatchCreate(){this.dispatchEvent(new CustomEvent("document-create",{bubbles:!0,composed:!0}))}_dispatchOpen(s){this.dispatchEvent(new CustomEvent("document-open",{detail:{path:s},bubbles:!0,composed:!0}))}_renderRow(s){return tt`
2514
2514
  <button
2515
2515
  class="doc-row"
2516
2516
  @click=${()=>this._dispatchOpen(s.openPath)}
@@ -2535,7 +2535,7 @@ React keys must be passed directly to JSX without using spread:
2535
2535
  <div class="doc-list">
2536
2536
  <div class="doc-list-header">
2537
2537
  ${this.heading?tt`<h2 class="doc-heading">${this.heading}</h2>`:es}
2538
- ${this.pendingLabel?tt`<span class="pending-chip">${e} ${this.pendingLabel}</span>`:es}
2538
+ ${this.pendingLabel?tt`<span class="pending-chip">${this.pendingLabel.replace("{n}",e)}</span>`:es}
2539
2539
  <button class="create-cta" @click=${()=>this._dispatchCreate()}>
2540
2540
  ${this.createLabel}
2541
2541
  </button>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muonroi/ui-engine-rule-components",
3
- "version": "0.1.28",
3
+ "version": "0.1.29",
4
4
  "description": "Muonroi rule engine web components",
5
5
  "type": "module",
6
6
  "main": "dist/muonroi-rule-components.esm.js",