secure-ui-components 0.2.8 → 0.3.0

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 (54) hide show
  1. package/README.md +23 -25
  2. package/dist/components/secure-card/secure-card.d.ts.map +1 -1
  3. package/dist/components/secure-card/secure-card.js +1 -1
  4. package/dist/components/secure-card/secure-card.js.map +1 -1
  5. package/dist/components/secure-datetime/secure-datetime.js +1 -1
  6. package/dist/components/secure-datetime/secure-datetime.js.map +1 -1
  7. package/dist/components/secure-file-upload/secure-file-upload.js +1 -1
  8. package/dist/components/secure-form/secure-form.d.ts +1 -108
  9. package/dist/components/secure-form/secure-form.d.ts.map +1 -1
  10. package/dist/components/secure-form/secure-form.js +1 -33
  11. package/dist/components/secure-form/secure-form.js.map +1 -1
  12. package/dist/components/secure-input/secure-input.d.ts +0 -110
  13. package/dist/components/secure-input/secure-input.d.ts.map +1 -1
  14. package/dist/components/secure-input/secure-input.js +1 -30
  15. package/dist/components/secure-input/secure-input.js.map +1 -1
  16. package/dist/components/secure-password-confirm/secure-password-confirm.d.ts +0 -1
  17. package/dist/components/secure-password-confirm/secure-password-confirm.d.ts.map +1 -1
  18. package/dist/components/secure-password-confirm/secure-password-confirm.js +1 -1
  19. package/dist/components/secure-password-confirm/secure-password-confirm.js.map +1 -1
  20. package/dist/components/secure-select/secure-select.d.ts +2 -132
  21. package/dist/components/secure-select/secure-select.d.ts.map +1 -1
  22. package/dist/components/secure-select/secure-select.js +1 -38
  23. package/dist/components/secure-select/secure-select.js.map +1 -1
  24. package/dist/components/secure-submit-button/secure-submit-button.d.ts +0 -46
  25. package/dist/components/secure-submit-button/secure-submit-button.d.ts.map +1 -1
  26. package/dist/components/secure-submit-button/secure-submit-button.js +1 -22
  27. package/dist/components/secure-submit-button/secure-submit-button.js.map +1 -1
  28. package/dist/components/secure-table/secure-table.d.ts +0 -51
  29. package/dist/components/secure-table/secure-table.d.ts.map +1 -1
  30. package/dist/components/secure-table/secure-table.js +25 -25
  31. package/dist/components/secure-table/secure-table.js.map +1 -1
  32. package/dist/components/secure-textarea/secure-textarea.d.ts +0 -104
  33. package/dist/components/secure-textarea/secure-textarea.d.ts.map +1 -1
  34. package/dist/components/secure-textarea/secure-textarea.js +1 -30
  35. package/dist/components/secure-textarea/secure-textarea.js.map +1 -1
  36. package/dist/core/base-component.d.ts +8 -129
  37. package/dist/core/base-component.d.ts.map +1 -1
  38. package/dist/core/base-component.js +1 -18
  39. package/dist/core/base-component.js.map +1 -1
  40. package/dist/core/security-config.d.ts +6 -70
  41. package/dist/core/security-config.d.ts.map +1 -1
  42. package/dist/core/security-config.js +1 -16
  43. package/dist/core/security-config.js.map +1 -1
  44. package/dist/core/types.d.ts +27 -28
  45. package/dist/core/types.d.ts.map +1 -1
  46. package/dist/core/types.js +0 -5
  47. package/dist/core/types.js.map +1 -1
  48. package/dist/index.d.ts +2 -9
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -6
  51. package/dist/index.js.map +1 -1
  52. package/dist/package.json +1 -1
  53. package/dist/secure-ui.bundle.js +16 -209
  54. package/package.json +1 -5
package/README.md CHANGED
@@ -18,7 +18,7 @@ Security-first Web Component library with built-in behavioral telemetry. Zero de
18
18
  - **CSP-Safe** — Bundle mode uses `adoptedStyleSheets` (constructable stylesheets, exempt from `unsafe-inline`); ESM/dev mode uses `<link>` from `'self'`; neither requires `unsafe-inline`
19
19
  - **SSR Friendly** — Adopts server-rendered markup on upgrade; no document access in constructors
20
20
  - **Fully Customisable** — CSS Design Tokens + `::part()` API
21
- - **Comprehensive Testing** — 1066 tests, 80%+ branch coverage
21
+ - **Comprehensive Testing** — 1176 tests, 84%+ branch coverage
22
22
 
23
23
  ---
24
24
 
@@ -164,7 +164,7 @@ import 'secure-ui-components/secure-telemetry-provider';
164
164
 
165
165
  ```html
166
166
  <secure-telemetry-provider signing-key="your-per-session-secret">
167
- <secure-form action="/api/login" method="POST" csrf-token="..." enhance>
167
+ <secure-form action="/api/login" method="POST" csrf-token="..." use-fetch>
168
168
  <secure-input label="Email" name="email" type="email" required security-tier="authenticated"></secure-input>
169
169
  <secure-input label="Password" name="password" type="password" required security-tier="critical"></secure-input>
170
170
  <secure-submit-button label="Sign in" loading-label="Signing in…"></secure-submit-button>
@@ -237,7 +237,6 @@ el.value = 'foo' // set value programmatically
237
237
  el.valid // boolean — passes all validation rules
238
238
  el.name // field name string
239
239
  el.getAuditLog() // AuditLogEntry[]
240
- el.clearAuditLog()
241
240
  el.getFieldTelemetry() // FieldTelemetry — behavioral signals for this field
242
241
  el.focus()
243
242
  el.blur()
@@ -247,8 +246,8 @@ el.blur()
247
246
 
248
247
  | Event | Detail |
249
248
  |-------|--------|
250
- | `secure-input` | `{ name, value, masked, tier }` |
251
- | `secure-audit` | `{ event, tier, timestamp, }` |
249
+ | `secure-input-change` | `{ name, value, masked, tier }` |
250
+ | `secure-audit` | `{ event, tier, timestamp, data? }` |
252
251
  | `secure-threat-detected` | `{ fieldName, threatType: 'injection', patternId, tier, timestamp }` — fired when a known injection pattern is detected in the field value |
253
252
 
254
253
  **Example**
@@ -271,9 +270,9 @@ Multi-line input with real-time character counter, rate limiting, and automatic
271
270
 
272
271
  **Attributes:** `label`, `name`, `placeholder`, `required`, `disabled`, `readonly`, `minlength`, `maxlength`, `rows`, `cols`, `wrap`, `value`, `security-tier`
273
272
 
274
- **Properties & Methods:** `value`, `name`, `valid`, `getAuditLog()`, `clearAuditLog()`, `getFieldTelemetry()`, `focus()`, `blur()`
273
+ **Properties & Methods:** `value`, `name`, `valid`, `getAuditLog()`, `getFieldTelemetry()`, `focus()`, `blur()`
275
274
 
276
- **Events:** `secure-textarea` → `{ name, value, tier }`
275
+ **Events:** `secure-textarea-change` → `{ name, value, tier }`
277
276
 
278
277
  ```html
279
278
  <secure-textarea
@@ -295,7 +294,7 @@ Dropdown with option whitelist validation — prevents value injection. Telemetr
295
294
  **Properties & Methods**
296
295
 
297
296
  ```js
298
- el.value // current value (comma-separated for multiple)
297
+ el.value // string for single-select; string[] for multi-select
299
298
  el.selectedOptions // string[] of selected values
300
299
  el.valid
301
300
  el.name
@@ -308,7 +307,7 @@ el.focus()
308
307
  el.blur()
309
308
  ```
310
309
 
311
- **Events:** `secure-select` → `{ name, value, tier }`
310
+ **Events:** `secure-select-change` → `{ name, value: string | string[], tier }` — `value` is `string[]` for multi-select, `string` for single
312
311
 
313
312
  ```html
314
313
  <secure-select label="Country" name="country" required>
@@ -339,7 +338,7 @@ Form container with CSRF protection, field validation, behavioral telemetry aggr
339
338
  | `csrf-field-name` | Hidden field name (default `csrf_token`) |
340
339
  | `csrf-header-name` | Also send CSRF token in this request header |
341
340
  | `novalidate` | Disable browser constraint validation |
342
- | `enhance` | Enable fetch-based JSON submission instead of native |
341
+ | `use-fetch` | Enable fetch-based JSON submission instead of native HTML form submission |
343
342
  | `security-tier` | Security tier |
344
343
 
345
344
  **Properties & Methods**
@@ -356,8 +355,8 @@ el.submit() // programmatic submit (triggers validation + telemetry)
356
355
 
357
356
  | Event | Detail |
358
357
  |-------|--------|
359
- | `secure-form-submit` | `{ formData, formElement, telemetry, preventDefault() }` — cancelable |
360
- | `secure-form-success` | `{ formData, response, telemetry }` — only when `enhance` is set |
358
+ | `secure-form-submit` | `{ formData, telemetry, cancelSubmission() }` — cancelable. Call `e.detail.cancelSubmission()` to abort the library's fetch submission and re-enable the form, or call `e.preventDefault()` (native) to prevent the `fetch` from being sent. |
359
+ | `secure-form-success` | `{ formData, response, telemetry }` — only when `use-fetch` is set |
361
360
  | `secure-threat-detected` | `{ fieldName, threatType: 'csrf-token-absent', patternId, tier, timestamp }` — fired on `sensitive`/`critical` tiers when CSRF token is absent at submission |
362
361
 
363
362
  **`telemetry` shape** (`SessionTelemetry`):
@@ -375,13 +374,13 @@ el.submit() // programmatic submit (triggers validation + telemetry)
375
374
 
376
375
  **Submission modes**
377
376
 
378
- - **Without `enhance`** — native browser form submission. Values from shadow DOM inputs are synced to hidden `<input type="hidden">` fields automatically. Telemetry is available in `secure-form-submit` but not sent to the server.
379
- - **With `enhance`** — intercepts submit, validates all fields, sends `{ ...formData, _telemetry }` as JSON via `fetch`. Full telemetry payload travels to the server in the same request.
377
+ - **Without `use-fetch`** — native browser form submission. Values from shadow DOM inputs are synced to hidden `<input type="hidden">` fields automatically. Telemetry is available in `secure-form-submit` but not sent to the server.
378
+ - **With `use-fetch`** — intercepts submit, validates all fields, sends `{ ...formData, _telemetry }` as JSON via `fetch`. Full telemetry payload travels to the server in the same request.
380
379
 
381
380
  **Example**
382
381
 
383
382
  ```html
384
- <secure-form action="/api/register" method="POST" csrf-token="abc123" enhance>
383
+ <secure-form action="/api/register" method="POST" csrf-token="abc123" use-fetch>
385
384
  <secure-input label="Email" name="email" type="email" required></secure-input>
386
385
  <secure-input label="Password" name="password" type="password" required security-tier="critical"></secure-input>
387
386
  <secure-submit-button label="Register"></secure-submit-button>
@@ -394,7 +393,7 @@ form.addEventListener('secure-form-submit', (e) => {
394
393
 
395
394
  // Block high-risk submissions before they reach your server
396
395
  if (telemetry.riskScore >= 50) {
397
- e.detail.preventDefault();
396
+ e.detail.cancelSubmission(); // aborts fetch, re-enables form
398
397
  showChallenge();
399
398
  return;
400
399
  }
@@ -471,7 +470,7 @@ The provider listens for `secure-form-submit` on itself (bubbles from the nested
471
470
 
472
471
  ```html
473
472
  <secure-telemetry-provider signing-key="per-session-server-issued-key">
474
- <secure-form action="/api/login" enhance csrf-token="...">
473
+ <secure-form action="/api/login" use-fetch csrf-token="...">
475
474
  <secure-input label="Email" name="email" type="email" required></secure-input>
476
475
  <secure-input label="Password" name="password" type="password" required security-tier="critical"></secure-input>
477
476
  <secure-submit-button label="Sign in"></secure-submit-button>
@@ -544,7 +543,7 @@ upload.setScanHook(async (file) => {
544
543
  });
545
544
  ```
546
545
 
547
- **Events:** `secure-file-upload` → `{ name, files: File[], tier }`
546
+ **Events:** `secure-file-change` → `{ name, files: File[], tier }`
548
547
 
549
548
  **Content validation (critical tier):** Magic number verification for JPEG, PNG, and PDF files.
550
549
 
@@ -598,7 +597,7 @@ el.focus()
598
597
  el.blur()
599
598
  ```
600
599
 
601
- **Events:** `secure-datetime` → `{ name, value, type, tier }`
600
+ **Events:** `secure-datetime-change` → `{ name, value, type, tier }`
602
601
 
603
602
  **CRITICAL tier:** Year must be between 1900 and 2100.
604
603
 
@@ -642,7 +641,7 @@ table.columns = [
642
641
  | `filterable` | boolean | Include in global search |
643
642
  | `tier` | string | Mask values at this tier level |
644
643
  | `width` | string | CSS column width |
645
- | `render` | `(value, row, key) => string` | Custom cell renderer |
644
+ | `render` | `(value, row, key) => string` | Custom cell renderer — return value is treated as HTML and sanitized before insertion (event handlers and disallowed tags stripped) |
646
645
 
647
646
  **Column masking**
648
647
 
@@ -651,7 +650,7 @@ table.columns = [
651
650
  | `sensitive` | Last 4 characters visible, rest masked (`••••4567`) |
652
651
  | `critical` | Fully masked (`••••••••`) |
653
652
 
654
- **Events:** `table-action` → `{ action, …data-attributes }` — fired when an element with `[data-action]` inside a cell is clicked.
653
+ **Events:** `secure-table-action` → `{ action, …data-attributes }` — fired when an element with `[data-action]` inside a cell is clicked.
655
654
 
656
655
  **Progressive enhancement:** Place a `<table slot="table">` with `data-key` attributes on `<th>` elements inside `<secure-table>` — the component reads columns and data from the server-rendered markup.
657
656
 
@@ -711,10 +710,10 @@ card.getAuditLog()
711
710
 
712
711
  | Event | Detail |
713
712
  |-------|--------|
714
- | `secure-card` | `{ name, cardType, last4, expiryMonth, expiryYear, cardholderName, valid, tier }` |
715
- | `secure-audit` | `{ event, tier, timestamp, }` |
713
+ | `secure-card-change` | `{ name, cardType, last4, expiryMonth: number (1–12), expiryYear: number (4-digit, e.g. 2027), cardholderName, valid, tier }` |
714
+ | `secure-audit` | `{ event, tier, timestamp, data? }` |
716
715
 
717
- Note: the `secure-card` event detail intentionally omits the full PAN and CVC.
716
+ Note: the `secure-card-change` event detail intentionally omits the full PAN and CVC.
718
717
 
719
718
  **CSS Parts**
720
719
 
@@ -791,7 +790,6 @@ el.name
791
790
  el.getPasswordValue() // string — raw password; use only for form handoff
792
791
  el.getFieldTelemetry() // composite FieldTelemetry across both inputs
793
792
  el.getAuditLog()
794
- el.clearAuditLog()
795
793
  el.focus()
796
794
  ```
797
795
 
@@ -1 +1 @@
1
- {"version":3,"file":"secure-card.d.ts","sourceRoot":"","sources":["../../../src/components/secure-card/secure-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,YAAY,EAAE,QAAQ,EAAE,CAAC;AA+HzB,qBAAa,UAAW,SAAQ,mBAAmB;;;IAwCjD,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;cAIkB,MAAM,IAAI,gBAAgB,GAAG,WAAW,GAAG,IAAI;cAwQ/C,qBAAqB,CACtC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,IAAI;IA8SE,oBAAoB,IAAI,IAAI;IAoBrC;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAqBnB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;OAQG;IACH,WAAW,IAAI;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI;IAUR;;OAEG;IACH,KAAK,IAAI,IAAI;IAgCb;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"secure-card.d.ts","sourceRoot":"","sources":["../../../src/components/secure-card/secure-card.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,YAAY,EAAE,QAAQ,EAAE,CAAC;AA+HzB,qBAAa,UAAW,SAAQ,mBAAmB;;;IAwCjD,WAAoB,kBAAkB,IAAI,MAAM,EAAE,CAEjD;cAIkB,MAAM,IAAI,gBAAgB,GAAG,WAAW,GAAG,IAAI;cAwQ/C,qBAAqB,CACtC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,IAAI;IA+SE,oBAAoB,IAAI,IAAI;IAoBrC;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAqBnB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;OAQG;IACH,WAAW,IAAI;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,IAAI;IAUR;;OAEG;IACH,KAAK,IAAI,IAAI;IAgCb;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -19,4 +19,4 @@
19
19
  *
20
20
  * @module secure-card
21
21
  * @license MIT
22
- */import{SecureBaseComponent as k}from"../../core/base-component.js";const $=Object.freeze([{type:"amex",pattern:/^3[47]/,format:[4,6,5],cvcLength:4,lengths:[15],label:"Amex"},{type:"diners",pattern:/^3(?:0[0-5]|[68])/,format:[4,6,4],cvcLength:3,lengths:[14],label:"Diners"},{type:"discover",pattern:/^6(?:011|5[0-9]{2})/,format:[4,4,4,4],cvcLength:3,lengths:[16],label:"Discover"},{type:"jcb",pattern:/^(?:2131|1800|35\d{3})/,format:[4,4,4,4],cvcLength:3,lengths:[16],label:"JCB"},{type:"mastercard",pattern:/^(?:5[1-5]|2[2-7])/,format:[4,4,4,4],cvcLength:3,lengths:[16],label:"Mastercard"},{type:"visa",pattern:/^4/,format:[4,4,4,4],cvcLength:3,lengths:[13,16,19],label:"Visa"}]);function M(h){return h?$.find(t=>t.pattern.test(h))??null:null}function o(h,t){let e="",i=0;for(let s=0;s<t.length;s++){const r=h.slice(i,i+t[s]);if(!r)break;s>0&&(e+=" "),e+=r,i+=t[s]}return e}function q(h,t){const e=t.reduce((n,l)=>n+l,0);if(!h)return o("\u2022".repeat(e),t);const i=h.padEnd(e,"\u2022").slice(0,e),s=Math.max(0,i.length-4),r="\u2022".repeat(s)+i.slice(s);return o(r,t)}function S(h){if(!h||h.length<12)return!1;let t=0,e=!1;for(let i=h.length-1;i>=0;i--){const s=h[i];if(!s)return!1;const r=parseInt(s,10);if(isNaN(r))return!1;let n=r;e&&(n*=2,n>9&&(n-=9)),t+=n,e=!e}return t%10===0}function T(h,t){const e=new Date,i=e.getFullYear()%100,s=e.getMonth()+1;return!(t<i||t===i&&h<s)}let D=0;class F extends k{#t=null;#i=null;#e=null;#s=null;#d=null;#l=null;#m=null;#b=null;#L=null;#f=null;#u=null;#v=null;#E=null;#A=null;#y=null;#C=null;#g=null;#a="";#c="";#o="";#x="";#n=null;#r;constructor(){super(),this.#r=`secure-card-${++D}`}static get observedAttributes(){return[...super.observedAttributes,"name","label","show-name"]}render(){const t=document.createDocumentFragment(),e=this.hasAttribute("disabled"),i=this.hasAttribute("show-name"),s=this.getAttribute("label")??"",r=document.createElement("div");r.className="card-container",r.setAttribute("part","container");const n=document.createElement("div");n.className="card-scene",n.setAttribute("aria-hidden","true"),this.#d=document.createElement("div"),this.#d.className="card";const l=document.createElement("div");l.className="card-face card-front";const c=document.createElement("div");c.className="card-top-row";const p=document.createElement("div");p.className="card-chip",this.#L=document.createElement("div"),this.#L.className="card-type-label",c.appendChild(p),c.appendChild(this.#L),l.appendChild(c),this.#l=document.createElement("div"),this.#l.className="card-number-display",this.#l.textContent="\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022",l.appendChild(this.#l);const m=document.createElement("div");m.className="card-bottom-row";const b=document.createElement("div");b.className="card-name-section";const A=document.createElement("div");A.className="card-field-label",A.textContent="Card holder",this.#b=document.createElement("div"),this.#b.className="card-name-display",this.#b.textContent="FULL NAME",b.appendChild(A),b.appendChild(this.#b);const f=document.createElement("div");f.className="card-expiry-section";const N=document.createElement("div");N.className="card-field-label",N.textContent="Expires",this.#m=document.createElement("div"),this.#m.className="card-expiry-display",this.#m.textContent="MM/YY",f.appendChild(N),f.appendChild(this.#m),m.appendChild(b),m.appendChild(f),l.appendChild(m);const v=document.createElement("div");v.className="card-face card-back";const w=document.createElement("div");w.className="card-strip";const y=document.createElement("div");y.className="card-cvc-area";const L=document.createElement("div");L.className="card-cvc-label",L.textContent="CVC",this.#f=document.createElement("div"),this.#f.className="card-cvc-display",this.#f.textContent="\u2022\u2022\u2022",y.appendChild(L),y.appendChild(this.#f),v.appendChild(w),v.appendChild(y),this.#d.appendChild(l),this.#d.appendChild(v),n.appendChild(this.#d);const d=document.createElement("div");if(d.className="card-fields",s){const a=document.createElement("div");a.className="card-legend",a.setAttribute("part","label"),a.textContent=this.sanitizeValue(s),d.appendChild(a)}const C=this.#w(`${this.#r}-number`),I=C.querySelector("label");I.textContent="Card number",this.#t=document.createElement("input"),this.#t.id=`${this.#r}-number`,this.#t.className="card-input card-number-input",this.#t.setAttribute("type","text"),this.#t.setAttribute("inputmode","numeric"),this.#t.setAttribute("autocomplete","cc-number"),this.#t.setAttribute("placeholder","0000 0000 0000 0000"),this.#t.setAttribute("maxlength","23"),this.#t.setAttribute("aria-required","true"),this.#t.setAttribute("aria-describedby",`${this.#r}-number-error`),this.#t.setAttribute("part","number-input"),e&&(this.#t.disabled=!0),this.#u=C.querySelector(".error-container"),this.#u.id=`${this.#r}-number-error`,C.querySelector(".input-wrapper").appendChild(this.#t),d.appendChild(C);const g=document.createElement("div");g.className="field-row";const x=this.#w(`${this.#r}-expiry`);x.querySelector("label").textContent="Expiry date",this.#i=document.createElement("input"),this.#i.id=`${this.#r}-expiry`,this.#i.className="card-input",this.#i.setAttribute("type","text"),this.#i.setAttribute("inputmode","numeric"),this.#i.setAttribute("autocomplete","cc-exp"),this.#i.setAttribute("placeholder","MM/YY"),this.#i.setAttribute("maxlength","5"),this.#i.setAttribute("aria-required","true"),this.#i.setAttribute("aria-describedby",`${this.#r}-expiry-error`),this.#i.setAttribute("part","expiry-input"),e&&(this.#i.disabled=!0),this.#v=x.querySelector(".error-container"),this.#v.id=`${this.#r}-expiry-error`,x.querySelector(".input-wrapper").appendChild(this.#i);const E=this.#w(`${this.#r}-cvc`);E.querySelector("label").textContent="Security code",this.#e=document.createElement("input"),this.#e.id=`${this.#r}-cvc`,this.#e.className="card-input cvc-input",this.#e.setAttribute("type","password"),this.#e.setAttribute("inputmode","numeric"),this.#e.setAttribute("autocomplete","cc-csc"),this.#e.setAttribute("placeholder","\u2022\u2022\u2022"),this.#e.setAttribute("maxlength","4"),this.#e.setAttribute("aria-required","true"),this.#e.setAttribute("aria-describedby",`${this.#r}-cvc-error`),this.#e.setAttribute("part","cvc-input"),e&&(this.#e.disabled=!0),this.#E=E.querySelector(".error-container"),this.#E.id=`${this.#r}-cvc-error`,E.querySelector(".input-wrapper").appendChild(this.#e),g.appendChild(x),g.appendChild(E),d.appendChild(g);const u=this.#w(`${this.#r}-name`);return u.id=`${this.#r}-name-group`,u.querySelector("label").textContent="Cardholder name",i||(u.hidden=!0),this.#s=document.createElement("input"),this.#s.id=`${this.#r}-name`,this.#s.className="card-input",this.#s.setAttribute("type","text"),this.#s.setAttribute("autocomplete","cc-name"),this.#s.setAttribute("placeholder","Name as it appears on card"),this.#s.setAttribute("spellcheck","false"),this.#s.setAttribute("aria-describedby",`${this.#r}-name-error`),this.#s.setAttribute("part","name-input"),e&&(this.#s.disabled=!0),this.#A=u.querySelector(".error-container"),this.#A.id=`${this.#r}-name-error`,u.querySelector(".input-wrapper").appendChild(this.#s),d.appendChild(u),r.appendChild(n),r.appendChild(d),this.#G(),this.addComponentStyles(new URL("./secure-card.css",import.meta.url).href),this.#t.addEventListener("input",a=>{this.recordTelemetryInput(a),this.#I(a)}),this.#t.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.#k()}),this.#t.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#M()}),this.#i.addEventListener("input",a=>{this.recordTelemetryInput(a),this.#D(a)}),this.#i.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.#N(!1)}),this.#i.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#F()}),this.#e.addEventListener("input",a=>{this.recordTelemetryInput(a),this.#Y(a)}),this.#e.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.#N(!0)}),this.#e.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#B()}),this.#s.addEventListener("input",a=>{this.recordTelemetryInput(a),this.#R(a)}),this.#s.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.#N(!1)}),this.#s.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#V()}),t.appendChild(r),t}#w(t){const e=document.createElement("div");e.className="field-group";const i=document.createElement("label");i.htmlFor=t,i.className="field-label";const s=document.createElement("div");s.className="input-wrapper",s.setAttribute("part","wrapper");const r=document.createElement("div");return r.className="error-container hidden",r.setAttribute("role","alert"),r.setAttribute("part","error"),e.appendChild(i),e.appendChild(s),e.appendChild(r),e}handleAttributeChange(t,e,i){if(this.shadowRoot)switch(t){case"disabled":{const s=i!==null;this.#t&&(this.#t.disabled=s),this.#i&&(this.#i.disabled=s),this.#e&&(this.#e.disabled=s),this.#s&&(this.#s.disabled=s);break}case"show-name":{const s=this.shadowRoot.querySelector(`#${this.#r}-name-group`);s&&(s.hidden=i===null);break}}}#I(t){const e=t.target,i=e.value.replace(/\D/g,""),s=this.#n?.type;this.#n=M(i);const r=this.#n?.format??[4,4,4,4],n=r.reduce((l,c)=>l+c,0);if(this.#a=i.slice(0,n),e.value=o(this.#a,r),this.#n?.type!==s){const l=n+r.length-1;e.setAttribute("maxlength",String(l));const c=this.#n?.cvcLength??3;this.#e&&this.#e.setAttribute("maxlength",String(c)),this.#T()}this.#l&&(this.#l.textContent=e.value||o("\u2022".repeat(n),r)),this.#h(this.#u),this.#$(),this.#S()}#k(){if(this.#t&&this.#a){const t=this.#n?.format??[4,4,4,4],e=o(this.#a,t);this.#t.value=e,this.#l&&(this.#l.textContent=e)}this.#N(!1),this.#h(this.#u)}#M(){const t=this.checkRateLimit();if(!t.allowed){this.#p(this.#u,`Too many attempts. Try again in ${Math.ceil(t.retryAfter/1e3)}s.`);return}this.#a?S(this.#a)?(this.#h(this.#u),this.#t?.removeAttribute("aria-invalid")):(this.#p(this.#u,"Invalid card number"),this.#t?.setAttribute("aria-invalid","true")):(this.#p(this.#u,"Card number is required"),this.#t?.setAttribute("aria-invalid","true")),this.#q(),this.audit("card-number-blur",{cardType:this.#n?.type??"unknown"})}#q(){const t=this.#n?.format??[4,4,4,4],e=q(this.#a,t);this.#t&&(this.#t.value=e),this.#l&&(this.#l.textContent=e)}#D(t){const e=t.target,i=e.value.replace(/\D/g,"").slice(0,4),s=i.length>2?`${i.slice(0,2)}/${i.slice(2)}`:i;e.value=s,this.#o=s,this.#m&&(this.#m.textContent=s||"MM/YY"),this.#h(this.#v),this.#$(),this.#S()}#F(){const t=this.#o.split("/");if(!this.#o){this.#p(this.#v,"Expiry date is required"),this.#i?.setAttribute("aria-invalid","true");return}const e=parseInt(t[0]??"",10),i=parseInt(t[1]??"",10);isNaN(e)||isNaN(i)||e<1||e>12||(t[1]??"").length<2?(this.#p(this.#v,"Enter a valid expiry date (MM/YY)"),this.#i?.setAttribute("aria-invalid","true")):T(e,i)?(this.#h(this.#v),this.#i?.removeAttribute("aria-invalid")):(this.#p(this.#v,"This card has expired"),this.#i?.setAttribute("aria-invalid","true")),this.audit("card-expiry-blur",{})}#Y(t){const e=t.target,i=e.value.replace(/\D/g,""),s=this.#n?.cvcLength??3;this.#c=i.slice(0,s),e.value=this.#c,this.#f&&(this.#f.textContent=this.#c.length>0?"\u2022".repeat(this.#c.length):"\u2022\u2022\u2022"),this.#h(this.#E),this.#S()}#B(){const t=this.#n?.cvcLength??3;this.#c?this.#c.length<t?(this.#p(this.#E,`Security code must be ${t} digits`),this.#e?.setAttribute("aria-invalid","true")):(this.#h(this.#E),this.#e?.removeAttribute("aria-invalid")):(this.#p(this.#E,"Security code is required"),this.#e?.setAttribute("aria-invalid","true")),this.#N(!1),this.audit("card-cvc-blur",{})}#R(t){const e=t.target,i=e.value.replace(/[^a-zA-Z\s\-']/g,"").slice(0,50);e.value=i,this.#x=i,this.#b&&(this.#b.textContent=i.toUpperCase()||"FULL NAME"),this.#h(this.#A),this.#$(),this.#S()}#V(){this.hasAttribute("show-name")&&(this.#x.trim()?(this.#h(this.#A),this.#s?.removeAttribute("aria-invalid")):(this.#p(this.#A,"Cardholder name is required"),this.#s?.setAttribute("aria-invalid","true")))}#N(t){this.#d?.classList.toggle("is-flipped",t)}#T(){if(!this.#d)return;for(const e of $)this.#d.classList.remove(`card--${e.type}`);const t=this.#n?.type;t&&this.#d.classList.add(`card--${t}`),this.#L&&(this.#L.textContent=this.#n?.label??"")}#p(t,e){if(!t)return;t.textContent="";const i=document.createElement("span");i.textContent=e,t.appendChild(i),t.classList.remove("hidden")}#h(t){t&&(t.textContent="",t.classList.add("hidden"))}#G(){const t=this.getAttribute("name");t&&(this.#y=document.createElement("input"),this.#y.type="hidden",this.#y.name=t,this.appendChild(this.#y),this.#C=document.createElement("input"),this.#C.type="hidden",this.#C.name=`${t}-expiry`,this.appendChild(this.#C),this.#g=document.createElement("input"),this.#g.type="hidden",this.#g.name=`${t}-holder`,this.appendChild(this.#g))}#$(){this.#y&&(this.#y.value=this.#a.slice(-4)),this.#C&&(this.#C.value=this.#o),this.#g&&(this.#g.value=this.#x)}#S(){const[t,e]=this.#o.split("/");this.dispatchEvent(new CustomEvent("secure-card",{bubbles:!0,composed:!0,detail:{name:this.getAttribute("name")??"",cardType:this.#n?.type??"unknown",last4:this.#a.slice(-4),expiryMonth:parseInt(t??"0",10)||0,expiryYear:parseInt(e??"0",10)||0,cardholderName:this.#x,valid:this.valid,tier:this.securityTier}}))}disconnectedCallback(){this.#a="",this.#c="",this.#o="",this.#x="",this.#t&&(this.#t.value=""),this.#i&&(this.#i.value=""),this.#e&&(this.#e.value=""),this.#s&&(this.#s.value=""),this.#y&&(this.#y.value=""),this.#C&&(this.#C.value=""),this.#g&&(this.#g.value=""),super.disconnectedCallback()}get valid(){const t=this.#a.length>=12&&S(this.#a),[e,i]=this.#o.split("/"),s=parseInt(e??"",10),r=parseInt(i??"",10),n=!isNaN(s)&&!isNaN(r)&&s>=1&&s<=12&&(i??"").length>=2&&T(s,r),l=this.#n?.cvcLength??3,c=this.#c.length===l,p=!this.hasAttribute("show-name")||this.#x.trim().length>0;return t&&n&&c&&p}get cardType(){return this.#n?.type??"unknown"}get last4(){return this.#a.slice(-4)}get name(){return this.getAttribute("name")??""}getCardData(){return this.valid?{number:this.#a,expiry:this.#o,cvc:this.#c,name:this.#x}:null}reset(){this.#a="",this.#c="",this.#o="",this.#x="",this.#n=null,this.#t&&(this.#t.value=""),this.#i&&(this.#i.value=""),this.#e&&(this.#e.value=""),this.#s&&(this.#s.value=""),this.#$(),this.#N(!1),this.#T();const t=[4,4,4,4];this.#l&&(this.#l.textContent=o("\u2022".repeat(16),t)),this.#m&&(this.#m.textContent="MM/YY"),this.#b&&(this.#b.textContent="FULL NAME"),this.#f&&(this.#f.textContent="\u2022\u2022\u2022"),this.#h(this.#u),this.#h(this.#v),this.#h(this.#E),this.#h(this.#A),this.audit("card-reset",{})}focus(){this.#t?.focus()}}customElements.define("secure-card",F);export{F as SecureCard};
22
+ */import{SecureBaseComponent as k}from"../../core/base-component.js";const $=Object.freeze([{type:"amex",pattern:/^3[47]/,format:[4,6,5],cvcLength:4,lengths:[15],label:"Amex"},{type:"diners",pattern:/^3(?:0[0-5]|[68])/,format:[4,6,4],cvcLength:3,lengths:[14],label:"Diners"},{type:"discover",pattern:/^6(?:011|5[0-9]{2})/,format:[4,4,4,4],cvcLength:3,lengths:[16],label:"Discover"},{type:"jcb",pattern:/^(?:2131|1800|35\d{3})/,format:[4,4,4,4],cvcLength:3,lengths:[16],label:"JCB"},{type:"mastercard",pattern:/^(?:5[1-5]|2[2-7])/,format:[4,4,4,4],cvcLength:3,lengths:[16],label:"Mastercard"},{type:"visa",pattern:/^4/,format:[4,4,4,4],cvcLength:3,lengths:[13,16,19],label:"Visa"}]);function M(h){return h?$.find(t=>t.pattern.test(h))??null:null}function o(h,t){let e="",i=0;for(let s=0;s<t.length;s++){const r=h.slice(i,i+t[s]);if(!r)break;s>0&&(e+=" "),e+=r,i+=t[s]}return e}function q(h,t){const e=t.reduce((n,c)=>n+c,0);if(!h)return o("\u2022".repeat(e),t);const i=h.padEnd(e,"\u2022").slice(0,e),s=Math.max(0,i.length-4),r="\u2022".repeat(s)+i.slice(s);return o(r,t)}function S(h){if(!h||h.length<12)return!1;let t=0,e=!1;for(let i=h.length-1;i>=0;i--){const s=h[i];if(!s)return!1;const r=parseInt(s,10);if(isNaN(r))return!1;let n=r;e&&(n*=2,n>9&&(n-=9)),t+=n,e=!e}return t%10===0}function T(h,t){const e=new Date,i=e.getFullYear()%100,s=e.getMonth()+1;return!(t<i||t===i&&h<s)}let D=0;class F extends k{#t=null;#i=null;#e=null;#s=null;#d=null;#c=null;#m=null;#b=null;#L=null;#f=null;#u=null;#v=null;#E=null;#A=null;#y=null;#C=null;#g=null;#a="";#l="";#o="";#x="";#n=null;#r;constructor(){super(),this.#r=`secure-card-${++D}`}static get observedAttributes(){return[...super.observedAttributes,"name","label","show-name"]}render(){const t=document.createDocumentFragment(),e=this.hasAttribute("disabled"),i=this.hasAttribute("show-name"),s=this.getAttribute("label")??"",r=document.createElement("div");r.className="card-container",r.setAttribute("part","container");const n=document.createElement("div");n.className="card-scene",n.setAttribute("aria-hidden","true"),this.#d=document.createElement("div"),this.#d.className="card";const c=document.createElement("div");c.className="card-face card-front";const l=document.createElement("div");l.className="card-top-row";const p=document.createElement("div");p.className="card-chip",this.#L=document.createElement("div"),this.#L.className="card-type-label",l.appendChild(p),l.appendChild(this.#L),c.appendChild(l),this.#c=document.createElement("div"),this.#c.className="card-number-display",this.#c.textContent="\u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022 \u2022\u2022\u2022\u2022",c.appendChild(this.#c);const m=document.createElement("div");m.className="card-bottom-row";const b=document.createElement("div");b.className="card-name-section";const A=document.createElement("div");A.className="card-field-label",A.textContent="Card holder",this.#b=document.createElement("div"),this.#b.className="card-name-display",this.#b.textContent="FULL NAME",b.appendChild(A),b.appendChild(this.#b);const f=document.createElement("div");f.className="card-expiry-section";const N=document.createElement("div");N.className="card-field-label",N.textContent="Expires",this.#m=document.createElement("div"),this.#m.className="card-expiry-display",this.#m.textContent="MM/YY",f.appendChild(N),f.appendChild(this.#m),m.appendChild(b),m.appendChild(f),c.appendChild(m);const v=document.createElement("div");v.className="card-face card-back";const w=document.createElement("div");w.className="card-strip";const y=document.createElement("div");y.className="card-cvc-area";const L=document.createElement("div");L.className="card-cvc-label",L.textContent="CVC",this.#f=document.createElement("div"),this.#f.className="card-cvc-display",this.#f.textContent="\u2022\u2022\u2022",y.appendChild(L),y.appendChild(this.#f),v.appendChild(w),v.appendChild(y),this.#d.appendChild(c),this.#d.appendChild(v),n.appendChild(this.#d);const d=document.createElement("div");if(d.className="card-fields",s){const a=document.createElement("div");a.className="card-legend",a.setAttribute("part","label"),a.textContent=this.sanitizeValue(s),d.appendChild(a)}const C=this.#w(`${this.#r}-number`),I=C.querySelector("label");I.textContent="Card number",this.#t=document.createElement("input"),this.#t.id=`${this.#r}-number`,this.#t.className="card-input card-number-input",this.#t.setAttribute("type","text"),this.#t.setAttribute("inputmode","numeric"),this.#t.setAttribute("autocomplete","cc-number"),this.#t.setAttribute("placeholder","0000 0000 0000 0000"),this.#t.setAttribute("maxlength","23"),this.#t.setAttribute("aria-required","true"),this.#t.setAttribute("aria-describedby",`${this.#r}-number-error`),this.#t.setAttribute("part","number-input"),e&&(this.#t.disabled=!0),this.#u=C.querySelector(".error-container"),this.#u.id=`${this.#r}-number-error`,C.querySelector(".input-wrapper").appendChild(this.#t),d.appendChild(C);const g=document.createElement("div");g.className="field-row";const x=this.#w(`${this.#r}-expiry`);x.querySelector("label").textContent="Expiry date",this.#i=document.createElement("input"),this.#i.id=`${this.#r}-expiry`,this.#i.className="card-input",this.#i.setAttribute("type","text"),this.#i.setAttribute("inputmode","numeric"),this.#i.setAttribute("autocomplete","cc-exp"),this.#i.setAttribute("placeholder","MM/YY"),this.#i.setAttribute("maxlength","5"),this.#i.setAttribute("aria-required","true"),this.#i.setAttribute("aria-describedby",`${this.#r}-expiry-error`),this.#i.setAttribute("part","expiry-input"),e&&(this.#i.disabled=!0),this.#v=x.querySelector(".error-container"),this.#v.id=`${this.#r}-expiry-error`,x.querySelector(".input-wrapper").appendChild(this.#i);const E=this.#w(`${this.#r}-cvc`);E.querySelector("label").textContent="Security code",this.#e=document.createElement("input"),this.#e.id=`${this.#r}-cvc`,this.#e.className="card-input cvc-input",this.#e.setAttribute("type","password"),this.#e.setAttribute("inputmode","numeric"),this.#e.setAttribute("autocomplete","cc-csc"),this.#e.setAttribute("placeholder","\u2022\u2022\u2022"),this.#e.setAttribute("maxlength","4"),this.#e.setAttribute("aria-required","true"),this.#e.setAttribute("aria-describedby",`${this.#r}-cvc-error`),this.#e.setAttribute("part","cvc-input"),e&&(this.#e.disabled=!0),this.#E=E.querySelector(".error-container"),this.#E.id=`${this.#r}-cvc-error`,E.querySelector(".input-wrapper").appendChild(this.#e),g.appendChild(x),g.appendChild(E),d.appendChild(g);const u=this.#w(`${this.#r}-name`);return u.id=`${this.#r}-name-group`,u.querySelector("label").textContent="Cardholder name",i||(u.hidden=!0),this.#s=document.createElement("input"),this.#s.id=`${this.#r}-name`,this.#s.className="card-input",this.#s.setAttribute("type","text"),this.#s.setAttribute("autocomplete","cc-name"),this.#s.setAttribute("placeholder","Name as it appears on card"),this.#s.setAttribute("spellcheck","false"),this.#s.setAttribute("aria-describedby",`${this.#r}-name-error`),this.#s.setAttribute("part","name-input"),e&&(this.#s.disabled=!0),this.#A=u.querySelector(".error-container"),this.#A.id=`${this.#r}-name-error`,u.querySelector(".input-wrapper").appendChild(this.#s),d.appendChild(u),r.appendChild(n),r.appendChild(d),this.#G(),this.addComponentStyles(new URL("./secure-card.css",import.meta.url).href),this.#t.addEventListener("input",a=>{this.recordTelemetryInput(a),this.#I(a)}),this.#t.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.#k()}),this.#t.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#M()}),this.#i.addEventListener("input",a=>{this.recordTelemetryInput(a),this.#D(a)}),this.#i.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.#N(!1)}),this.#i.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#F()}),this.#e.addEventListener("input",a=>{this.recordTelemetryInput(a),this.#Y(a)}),this.#e.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.#N(!0)}),this.#e.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#B()}),this.#s.addEventListener("input",a=>{this.recordTelemetryInput(a),this.#R(a)}),this.#s.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.#N(!1)}),this.#s.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#V()}),t.appendChild(r),t}#w(t){const e=document.createElement("div");e.className="field-group";const i=document.createElement("label");i.htmlFor=t,i.className="field-label";const s=document.createElement("div");s.className="input-wrapper",s.setAttribute("part","wrapper");const r=document.createElement("div");return r.className="error-container hidden",r.setAttribute("role","alert"),r.setAttribute("part","error"),e.appendChild(i),e.appendChild(s),e.appendChild(r),e}handleAttributeChange(t,e,i){if(this.shadowRoot)switch(t){case"disabled":{const s=i!==null;this.#t&&(this.#t.disabled=s),this.#i&&(this.#i.disabled=s),this.#e&&(this.#e.disabled=s),this.#s&&(this.#s.disabled=s);break}case"show-name":{const s=this.shadowRoot.querySelector(`#${this.#r}-name-group`);s&&(s.hidden=i===null);break}}}#I(t){const e=t.target,i=e.value.replace(/\D/g,""),s=this.#n?.type;this.#n=M(i);const r=this.#n?.format??[4,4,4,4],n=r.reduce((c,l)=>c+l,0);if(this.#a=i.slice(0,n),e.value=o(this.#a,r),this.#n?.type!==s){const c=n+r.length-1;e.setAttribute("maxlength",String(c));const l=this.#n?.cvcLength??3;this.#e&&this.#e.setAttribute("maxlength",String(l)),this.#T()}this.#c&&(this.#c.textContent=e.value||o("\u2022".repeat(n),r)),this.#h(this.#u),this.#$(),this.#S()}#k(){if(this.#t&&this.#a){const t=this.#n?.format??[4,4,4,4],e=o(this.#a,t);this.#t.value=e,this.#c&&(this.#c.textContent=e)}this.#N(!1),this.#h(this.#u)}#M(){const t=this.checkRateLimit();if(!t.allowed){this.#p(this.#u,`Too many attempts. Try again in ${Math.ceil(t.retryAfter/1e3)}s.`);return}this.#a?S(this.#a)?(this.#h(this.#u),this.#t?.removeAttribute("aria-invalid")):(this.#p(this.#u,"Invalid card number"),this.#t?.setAttribute("aria-invalid","true")):(this.#p(this.#u,"Card number is required"),this.#t?.setAttribute("aria-invalid","true")),this.#q(),this.audit("card-number-blur",{cardType:this.#n?.type??"unknown"})}#q(){const t=this.#n?.format??[4,4,4,4],e=q(this.#a,t);this.#t&&(this.#t.value=e),this.#c&&(this.#c.textContent=e)}#D(t){const e=t.target,i=e.value.replace(/\D/g,"").slice(0,4),s=i.length>2?`${i.slice(0,2)}/${i.slice(2)}`:i;e.value=s,this.#o=s,this.#m&&(this.#m.textContent=s||"MM/YY"),this.#h(this.#v),this.#$(),this.#S()}#F(){const t=this.#o.split("/");if(!this.#o){this.#p(this.#v,"Expiry date is required"),this.#i?.setAttribute("aria-invalid","true");return}const e=parseInt(t[0]??"",10),i=parseInt(t[1]??"",10);isNaN(e)||isNaN(i)||e<1||e>12||(t[1]??"").length<2?(this.#p(this.#v,"Enter a valid expiry date (MM/YY)"),this.#i?.setAttribute("aria-invalid","true")):T(e,i)?(this.#h(this.#v),this.#i?.removeAttribute("aria-invalid")):(this.#p(this.#v,"This card has expired"),this.#i?.setAttribute("aria-invalid","true")),this.audit("card-expiry-blur",{})}#Y(t){const e=t.target,i=e.value.replace(/\D/g,""),s=this.#n?.cvcLength??3;this.#l=i.slice(0,s),e.value=this.#l,this.#f&&(this.#f.textContent=this.#l.length>0?"\u2022".repeat(this.#l.length):"\u2022\u2022\u2022"),this.#h(this.#E),this.#S()}#B(){const t=this.#n?.cvcLength??3;this.#l?this.#l.length<t?(this.#p(this.#E,`Security code must be ${t} digits`),this.#e?.setAttribute("aria-invalid","true")):(this.#h(this.#E),this.#e?.removeAttribute("aria-invalid")):(this.#p(this.#E,"Security code is required"),this.#e?.setAttribute("aria-invalid","true")),this.#N(!1),this.audit("card-cvc-blur",{})}#R(t){const e=t.target,i=e.value.replace(/[^a-zA-Z\s\-']/g,"").slice(0,50);e.value=i,this.#x=i,this.#b&&(this.#b.textContent=i.toUpperCase()||"FULL NAME"),this.#h(this.#A),this.#$(),this.#S()}#V(){this.hasAttribute("show-name")&&(this.#x.trim()?(this.#h(this.#A),this.#s?.removeAttribute("aria-invalid")):(this.#p(this.#A,"Cardholder name is required"),this.#s?.setAttribute("aria-invalid","true")))}#N(t){this.#d?.classList.toggle("is-flipped",t)}#T(){if(!this.#d)return;for(const e of $)this.#d.classList.remove(`card--${e.type}`);const t=this.#n?.type;t&&this.#d.classList.add(`card--${t}`),this.#L&&(this.#L.textContent=this.#n?.label??"")}#p(t,e){if(!t)return;t.textContent="";const i=document.createElement("span");i.textContent=e,t.appendChild(i),t.classList.remove("hidden")}#h(t){t&&(t.textContent="",t.classList.add("hidden"))}#G(){const t=this.getAttribute("name");t&&(this.#y=document.createElement("input"),this.#y.type="hidden",this.#y.name=t,this.appendChild(this.#y),this.#C=document.createElement("input"),this.#C.type="hidden",this.#C.name=`${t}-expiry`,this.appendChild(this.#C),this.#g=document.createElement("input"),this.#g.type="hidden",this.#g.name=`${t}-holder`,this.appendChild(this.#g))}#$(){this.#y&&(this.#y.value=this.#a.slice(-4)),this.#C&&(this.#C.value=this.#o),this.#g&&(this.#g.value=this.#x)}#S(){const[t,e]=this.#o.split("/");this.dispatchEvent(new CustomEvent("secure-card-change",{bubbles:!0,composed:!0,detail:{name:this.getAttribute("name")??"",cardType:this.#n?.type??"unknown",last4:this.#a.slice(-4),expiryMonth:parseInt(t??"0",10)||0,expiryYear:(()=>{const i=parseInt(e??"0",10);return i>0?2e3+i:0})(),cardholderName:this.#x,valid:this.valid,tier:this.securityTier}}))}disconnectedCallback(){this.#a="",this.#l="",this.#o="",this.#x="",this.#t&&(this.#t.value=""),this.#i&&(this.#i.value=""),this.#e&&(this.#e.value=""),this.#s&&(this.#s.value=""),this.#y&&(this.#y.value=""),this.#C&&(this.#C.value=""),this.#g&&(this.#g.value=""),super.disconnectedCallback()}get valid(){const t=this.#a.length>=12&&S(this.#a),[e,i]=this.#o.split("/"),s=parseInt(e??"",10),r=parseInt(i??"",10),n=!isNaN(s)&&!isNaN(r)&&s>=1&&s<=12&&(i??"").length>=2&&T(s,r),c=this.#n?.cvcLength??3,l=this.#l.length===c,p=!this.hasAttribute("show-name")||this.#x.trim().length>0;return t&&n&&l&&p}get cardType(){return this.#n?.type??"unknown"}get last4(){return this.#a.slice(-4)}get name(){return this.getAttribute("name")??""}getCardData(){return this.valid?{number:this.#a,expiry:this.#o,cvc:this.#l,name:this.#x}:null}reset(){this.#a="",this.#l="",this.#o="",this.#x="",this.#n=null,this.#t&&(this.#t.value=""),this.#i&&(this.#i.value=""),this.#e&&(this.#e.value=""),this.#s&&(this.#s.value=""),this.#$(),this.#N(!1),this.#T();const t=[4,4,4,4];this.#c&&(this.#c.textContent=o("\u2022".repeat(16),t)),this.#m&&(this.#m.textContent="MM/YY"),this.#b&&(this.#b.textContent="FULL NAME"),this.#f&&(this.#f.textContent="\u2022\u2022\u2022"),this.#h(this.#u),this.#h(this.#v),this.#h(this.#E),this.#h(this.#A),this.audit("card-reset",{})}focus(){this.#t?.focus()}}customElements.define("secure-card",F);export{F as SecureCard};
@@ -1 +1 @@
1
- {"version":3,"file":"secure-card.js","sourceRoot":"","sources":["../../../src/components/secure-card/secure-card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secure-card.js","sourceRoot":"","sources":["../../../src/components/secure-card/secure-card.ts"],"names":[],"mappings":"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"}
@@ -29,4 +29,4 @@
29
29
  *
30
30
  * @module secure-datetime
31
31
  * @license MIT
32
- */import{SecureBaseComponent as u}from"../../core/base-component.js";import{SecurityTier as d}from"../../core/security-config.js";class l extends u{#t=null;#r=null;#e=null;#a=null;#n=`secure-datetime-${Math.random().toString(36).substring(2,11)}`;static get observedAttributes(){return[...super.observedAttributes,"name","type","label","required","min","max","step","value","show-timezone"]}constructor(){super()}render(){const t=document.createDocumentFragment(),e=document.createElement("div");e.className="datetime-container",e.setAttribute("part","container");const i=this.getAttribute("label");i&&(this.#r=document.createElement("label"),this.#r.htmlFor=this.#n,this.#r.textContent=this.sanitizeValue(i),this.#r.setAttribute("part","label"),e.appendChild(this.#r));const s=document.createElement("div");return s.className="input-wrapper",s.setAttribute("part","wrapper"),this.#t=document.createElement("input"),this.#t.id=this.#n,this.#t.className="datetime-field",this.#t.setAttribute("part","input"),this.#d(),this.#o(),s.appendChild(this.#t),this.hasAttribute("show-timezone")&&(this.#a=document.createElement("span"),this.#a.className="timezone-display",this.#a.textContent=this.#h(),s.appendChild(this.#a)),e.appendChild(s),this.#e=document.createElement("div"),this.#e.className="error-container hidden",this.#e.setAttribute("role","alert"),this.#e.setAttribute("part","error"),this.#e.id=`${this.#n}-error`,e.appendChild(this.#e),this.addComponentStyles(this.#b()),t.appendChild(e),t}#d(){const t=this.config,e=this.getAttribute("name");e&&(this.#t.name=this.sanitizeValue(e)),!this.getAttribute("label")&&e&&this.#t.setAttribute("aria-label",this.sanitizeValue(e)),this.#t.setAttribute("aria-describedby",`${this.#n}-error`),this.#a&&this.#a.setAttribute("aria-label",`Timezone: ${this.#h()}`);const i=this.getAttribute("type")||"date";["date","time","datetime-local","month","week"].includes(i)?this.#t.type=i:(console.warn(`Invalid datetime type "${i}", defaulting to "date"`),this.#t.type="date"),(this.hasAttribute("required")||t.validation.required)&&(this.#t.required=!0,this.#t.setAttribute("aria-required","true"));const a=this.getAttribute("min");a&&(this.#t.min=this.#i(a));const r=this.getAttribute("max");r&&(this.#t.max=this.#i(r));const n=this.getAttribute("step");n&&(this.#t.step=n),this.hasAttribute("disabled")&&(this.#t.disabled=!0),this.hasAttribute("readonly")&&(this.#t.readOnly=!0),t.storage.allowAutocomplete||(this.#t.autocomplete="off");const h=this.getAttribute("value");h&&(this.#t.value=this.#i(h))}#i(t){if(!t)return"";const e=this.#t?.type||this.getAttribute("type")||"date",i={date:/^\d{4}-\d{2}-\d{2}$/,time:/^\d{2}:\d{2}(:\d{2})?$/,"datetime-local":/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2})?$/,month:/^\d{4}-\d{2}$/,week:/^\d{4}-W\d{2}$/},s=Object.hasOwn(i,e)?i[e]:void 0;return s&&!s.test(t)?(console.warn(`Invalid ${e} format: ${t}`),""):t}#h(){const t=new Date().getTimezoneOffset(),e=Math.abs(Math.floor(t/60)),i=Math.abs(t%60);return`UTC${t<=0?"+":"-"}${e.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`}#o(){this.#t.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.audit("datetime_focused",{name:this.#t.name,type:this.#t.type})}),this.#t.addEventListener("input",t=>{this.recordTelemetryInput(t),this.#c(t)}),this.#t.addEventListener("change",t=>{this.#m(t)}),this.#t.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#p(),this.audit("datetime_blurred",{name:this.#t.name,hasValue:this.#t.value.length>0})})}#c(t){this.#u(),this.dispatchEvent(new CustomEvent("secure-datetime",{detail:{name:this.#t.name,value:this.#t.value,type:this.#t.type,tier:this.securityTier},bubbles:!0,composed:!0}))}#m(t){const e=this.#t.value;if(!this.#i(e)&&e){this.#s("Invalid date/time format");return}this.#u(),this.audit("datetime_changed",{name:this.#t.name,type:this.#t.type,value:e})}#p(){const t=this.checkRateLimit();if(!t.allowed){this.#s(`Too many attempts. Please wait ${Math.ceil(t.retryAfter/1e3)} seconds.`);return}const e=this.#t.value;if(this.#t.required&&!e){this.#s("This field is required");return}if(e){if(this.#t.min&&e<this.#t.min){this.#s(`Value must be after ${this.#l(this.#t.min)}`);return}if(this.#t.max&&e>this.#t.max){this.#s(`Value must be before ${this.#l(this.#t.max)}`);return}}if(this.securityTier===d.CRITICAL&&e){const i=new Date(e);if(isNaN(i.getTime())){this.#s("Invalid date/time");return}const s=i.getFullYear();if(s<1900||s>2100){this.#s("Date must be between 1900 and 2100");return}}}#l(t){try{return new Date(t).toLocaleString()}catch{return t}}#s(t){this.#e.textContent=t,this.#e.offsetHeight,this.#e.classList.remove("hidden"),this.#t.classList.add("error"),this.#t.setAttribute("aria-invalid","true")}#u(){this.#e.classList.add("hidden"),this.#e.addEventListener("transitionend",()=>{this.#e.classList.contains("hidden")&&(this.#e.textContent="")},{once:!0}),this.#t.classList.remove("error"),this.#t.removeAttribute("aria-invalid")}#b(){return new URL("./secure-datetime.css",import.meta.url).href}handleAttributeChange(t,e,i){if(this.#t)switch(t){case"disabled":this.#t.disabled=this.hasAttribute("disabled");break;case"readonly":this.#t.readOnly=this.hasAttribute("readonly");break;case"value":i!==this.#t.value&&(this.#t.value=this.#i(i||""));break;case"min":this.#t.min=this.#i(i||"");break;case"max":this.#t.max=this.#i(i||"");break}}get value(){return this.#t?this.#t.value:""}set value(t){this.#t&&(this.#t.value=this.#i(t||""))}get name(){return this.#t?this.#t.name:""}getValueAsDate(){if(!this.#t||!this.#t.value)return null;try{const t=new Date(this.#t.value);return isNaN(t.getTime())?null:t}catch{return null}}setValueFromDate(t){if(!this.#t||!(t instanceof Date))return;const e=this.#t.type;let i="";switch(e){case"date":i=t.toISOString().split("T")[0];break;case"time":i=t.toTimeString().slice(0,5);break;case"datetime-local":i=t.toISOString().slice(0,16);break;case"month":i=t.toISOString().slice(0,7);break;case"week":const s=new Date(t);s.setHours(0,0,0,0),s.setDate(s.getDate()+4-(s.getDay()||7));const a=new Date(s.getFullYear(),0,1),r=Math.ceil(((s.getTime()-a.getTime())/864e5+1)/7);i=`${s.getFullYear()}-W${r.toString().padStart(2,"0")}`;break}this.#t.value=i}get valid(){const t=this.hasAttribute("required")||this.config.validation.required,e=this.#t?this.#t.value:"";return!(t&&!e||e&&!this.#i(e)||this.#t&&(this.#t.min&&e<this.#t.min||this.#t.max&&e>this.#t.max))}focus(){this.#t&&this.#t.focus()}blur(){this.#t&&this.#t.blur()}disconnectedCallback(){super.disconnectedCallback(),this.#t&&(this.#t.value="")}}customElements.define("secure-datetime",l);var p=l;export{l as SecureDateTime,p as default};
32
+ */import{SecureBaseComponent as u}from"../../core/base-component.js";import{SecurityTier as d}from"../../core/security-config.js";class l extends u{#t=null;#r=null;#e=null;#a=null;#n=`secure-datetime-${Math.random().toString(36).substring(2,11)}`;static get observedAttributes(){return[...super.observedAttributes,"name","type","label","required","min","max","step","value","show-timezone"]}constructor(){super()}render(){const t=document.createDocumentFragment(),e=document.createElement("div");e.className="datetime-container",e.setAttribute("part","container");const i=this.getAttribute("label");i&&(this.#r=document.createElement("label"),this.#r.htmlFor=this.#n,this.#r.textContent=this.sanitizeValue(i),this.#r.setAttribute("part","label"),e.appendChild(this.#r));const s=document.createElement("div");return s.className="input-wrapper",s.setAttribute("part","wrapper"),this.#t=document.createElement("input"),this.#t.id=this.#n,this.#t.className="datetime-field",this.#t.setAttribute("part","input"),this.#d(),this.#o(),s.appendChild(this.#t),this.hasAttribute("show-timezone")&&(this.#a=document.createElement("span"),this.#a.className="timezone-display",this.#a.textContent=this.#h(),s.appendChild(this.#a)),e.appendChild(s),this.#e=document.createElement("div"),this.#e.className="error-container hidden",this.#e.setAttribute("role","alert"),this.#e.setAttribute("part","error"),this.#e.id=`${this.#n}-error`,e.appendChild(this.#e),this.addComponentStyles(this.#b()),t.appendChild(e),t}#d(){const t=this.config,e=this.getAttribute("name");e&&(this.#t.name=this.sanitizeValue(e)),!this.getAttribute("label")&&e&&this.#t.setAttribute("aria-label",this.sanitizeValue(e)),this.#t.setAttribute("aria-describedby",`${this.#n}-error`),this.#a&&this.#a.setAttribute("aria-label",`Timezone: ${this.#h()}`);const i=this.getAttribute("type")||"date";["date","time","datetime-local","month","week"].includes(i)?this.#t.type=i:(console.warn(`Invalid datetime type "${i}", defaulting to "date"`),this.#t.type="date"),(this.hasAttribute("required")||t.validation.required)&&(this.#t.required=!0,this.#t.setAttribute("aria-required","true"));const a=this.getAttribute("min");a&&(this.#t.min=this.#i(a));const r=this.getAttribute("max");r&&(this.#t.max=this.#i(r));const n=this.getAttribute("step");n&&(this.#t.step=n),this.hasAttribute("disabled")&&(this.#t.disabled=!0),this.hasAttribute("readonly")&&(this.#t.readOnly=!0),t.storage.allowAutocomplete||(this.#t.autocomplete="off");const h=this.getAttribute("value");h&&(this.#t.value=this.#i(h))}#i(t){if(!t)return"";const e=this.#t?.type||this.getAttribute("type")||"date",i={date:/^\d{4}-\d{2}-\d{2}$/,time:/^\d{2}:\d{2}(:\d{2})?$/,"datetime-local":/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2})?$/,month:/^\d{4}-\d{2}$/,week:/^\d{4}-W\d{2}$/},s=Object.hasOwn(i,e)?i[e]:void 0;return s&&!s.test(t)?(console.warn(`Invalid ${e} format: ${t}`),""):t}#h(){const t=new Date().getTimezoneOffset(),e=Math.abs(Math.floor(t/60)),i=Math.abs(t%60);return`UTC${t<=0?"+":"-"}${e.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`}#o(){this.#t.addEventListener("focus",()=>{this.recordTelemetryFocus(),this.audit("datetime_focused",{name:this.#t.name,type:this.#t.type})}),this.#t.addEventListener("input",t=>{this.recordTelemetryInput(t),this.#c(t)}),this.#t.addEventListener("change",t=>{this.#m(t)}),this.#t.addEventListener("blur",()=>{this.recordTelemetryBlur(),this.#p(),this.audit("datetime_blurred",{name:this.#t.name,hasValue:this.#t.value.length>0})})}#c(t){this.#u(),this.dispatchEvent(new CustomEvent("secure-datetime-change",{detail:{name:this.#t.name,value:this.#t.value,type:this.#t.type,tier:this.securityTier},bubbles:!0,composed:!0}))}#m(t){const e=this.#t.value;if(!this.#i(e)&&e){this.#s("Invalid date/time format");return}this.#u(),this.audit("datetime_changed",{name:this.#t.name,type:this.#t.type,value:e})}#p(){const t=this.checkRateLimit();if(!t.allowed){this.#s(`Too many attempts. Please wait ${Math.ceil(t.retryAfter/1e3)} seconds.`);return}const e=this.#t.value;if(this.#t.required&&!e){this.#s("This field is required");return}if(e){if(this.#t.min&&e<this.#t.min){this.#s(`Value must be after ${this.#l(this.#t.min)}`);return}if(this.#t.max&&e>this.#t.max){this.#s(`Value must be before ${this.#l(this.#t.max)}`);return}}if(this.securityTier===d.CRITICAL&&e){const i=new Date(e);if(isNaN(i.getTime())){this.#s("Invalid date/time");return}const s=i.getFullYear();if(s<1900||s>2100){this.#s("Date must be between 1900 and 2100");return}}}#l(t){try{return new Date(t).toLocaleString()}catch{return t}}#s(t){this.#e.textContent=t,this.#e.offsetHeight,this.#e.classList.remove("hidden"),this.#t.classList.add("error"),this.#t.setAttribute("aria-invalid","true")}#u(){this.#e.classList.add("hidden"),this.#e.addEventListener("transitionend",()=>{this.#e.classList.contains("hidden")&&(this.#e.textContent="")},{once:!0}),this.#t.classList.remove("error"),this.#t.removeAttribute("aria-invalid")}#b(){return new URL("./secure-datetime.css",import.meta.url).href}handleAttributeChange(t,e,i){if(this.#t)switch(t){case"disabled":this.#t.disabled=this.hasAttribute("disabled");break;case"readonly":this.#t.readOnly=this.hasAttribute("readonly");break;case"value":i!==this.#t.value&&(this.#t.value=this.#i(i||""));break;case"min":this.#t.min=this.#i(i||"");break;case"max":this.#t.max=this.#i(i||"");break}}get value(){return this.#t?this.#t.value:""}set value(t){this.#t&&(this.#t.value=this.#i(t||""))}get name(){return this.#t?this.#t.name:""}getValueAsDate(){if(!this.#t||!this.#t.value)return null;try{const t=new Date(this.#t.value);return isNaN(t.getTime())?null:t}catch{return null}}setValueFromDate(t){if(!this.#t||!(t instanceof Date))return;const e=this.#t.type;let i="";switch(e){case"date":i=t.toISOString().split("T")[0];break;case"time":i=t.toTimeString().slice(0,5);break;case"datetime-local":i=t.toISOString().slice(0,16);break;case"month":i=t.toISOString().slice(0,7);break;case"week":const s=new Date(t);s.setHours(0,0,0,0),s.setDate(s.getDate()+4-(s.getDay()||7));const a=new Date(s.getFullYear(),0,1),r=Math.ceil(((s.getTime()-a.getTime())/864e5+1)/7);i=`${s.getFullYear()}-W${r.toString().padStart(2,"0")}`;break}this.#t.value=i}get valid(){const t=this.hasAttribute("required")||this.config.validation.required,e=this.#t?this.#t.value:"";return!(t&&!e||e&&!this.#i(e)||this.#t&&(this.#t.min&&e<this.#t.min||this.#t.max&&e>this.#t.max))}focus(){this.#t&&this.#t.focus()}blur(){this.#t&&this.#t.blur()}disconnectedCallback(){super.disconnectedCallback(),this.#t&&(this.#t.value="")}}customElements.define("secure-datetime",l);var p=l;export{l as SecureDateTime,p as default};
@@ -1 +1 @@
1
- {"version":3,"file":"secure-datetime.js","sourceRoot":"","sources":["../../../src/components/secure-datetime/secure-datetime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secure-datetime.js","sourceRoot":"","sources":["../../../src/components/secure-datetime/secure-datetime.ts"],"names":[],"mappings":"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"}
@@ -30,4 +30,4 @@
30
30
  *
31
31
  * @module secure-file-upload
32
32
  * @license MIT
33
- */import{SecureBaseComponent as m}from"../../core/base-component.js";import{SecurityTier as o}from"../../core/security-config.js";class p extends m{#e=null;#o=null;#s=null;#a=null;#t=null;#i=null;#n=null;#c=`secure-file-upload-${Math.random().toString(36).substring(2,11)}`;#r=new Set;#l=5*1024*1024;#d=null;#h=!1;static get observedAttributes(){return[...super.observedAttributes,"name","label","accept","max-size","multiple","required","capture"]}constructor(){super()}render(){const e=document.createDocumentFragment(),t=document.createElement("div");t.className="file-upload-container",t.setAttribute("part","container");const i=this.getAttribute("label");i&&(this.#o=document.createElement("label"),this.#o.htmlFor=this.#c,this.#o.textContent=this.sanitizeValue(i),this.#o.setAttribute("part","label"),t.appendChild(this.#o)),this.#t=document.createElement("div"),this.#t.className="drop-zone",this.#t.setAttribute("part","wrapper"),this.#e=document.createElement("input"),this.#e.type="file",this.#e.id=this.#c,this.#e.className="file-input",this.#e.setAttribute("part","input"),this.#x(),this.#y();const s=document.createElement("div");s.className="drop-zone-content has-name";const n=document.createElement("span");n.className="file-cta";const r=document.createElement("span");r.className="drop-icon";const a=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("width","16"),a.setAttribute("height","16"),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke","currentColor"),a.setAttribute("stroke-width","2"),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("aria-hidden","true"),a.setAttribute("focusable","false");const c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d","M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4");const u=document.createElementNS("http://www.w3.org/2000/svg","polyline");u.setAttribute("points","17 8 12 3 7 8");const l=document.createElementNS("http://www.w3.org/2000/svg","line");l.setAttribute("x1","12"),l.setAttribute("y1","3"),l.setAttribute("x2","12"),l.setAttribute("y2","15"),a.appendChild(c),a.appendChild(u),a.appendChild(l),r.appendChild(a),n.appendChild(r);const d=document.createElement("span");d.className="drop-text",d.textContent="Choose a file\u2026",n.appendChild(d),s.appendChild(n),this.#i=document.createElement("span"),this.#i.className="file-name-display",this.#i.textContent="No file selected",s.appendChild(this.#i),this.#t.appendChild(this.#e),this.#t.appendChild(s),t.appendChild(this.#t);const h=document.createElement("div");return h.className="drop-hint",h.textContent=this.#w(),t.appendChild(h),this.#a=document.createElement("div"),this.#a.className="preview-container",t.appendChild(this.#a),this.#s=document.createElement("div"),this.#s.className="error-container hidden",this.#s.setAttribute("role","alert"),this.#s.setAttribute("part","error"),this.#s.id=`${this.#c}-error`,t.appendChild(this.#s),this.#e.setAttribute("aria-describedby",`${this.#c}-error`),this.addComponentStyles(this.#k()),e.appendChild(t),e}#x(){const e=this.config,t=this.getAttribute("name");t&&(this.#e.name=this.sanitizeValue(t));const i=this.getAttribute("accept");if(i)this.#e.accept=i,this.#u(i);else{const r=this.#C();this.#e.accept=r,this.#u(r)}const s=this.getAttribute("max-size");s?this.#l=parseInt(s,10):this.#l=this.#A(),this.hasAttribute("multiple")&&(this.#e.multiple=!0),(this.hasAttribute("required")||e.validation.required)&&(this.#e.required=!0);const n=this.getAttribute("capture");n&&(this.#e.capture=n),this.hasAttribute("disabled")&&(this.#e.disabled=!0)}#u(e){this.#r.clear(),e.split(",").map(i=>i.trim()).forEach(i=>{if(i.startsWith(".")){const s=this.#b(i);s&&this.#r.add(s)}else this.#r.add(i)})}#b(e){return{".pdf":"application/pdf",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".txt":"text/plain",".csv":"text/csv",".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".gif":"image/gif",".svg":"image/svg+xml",".zip":"application/zip",".json":"application/json"}[e.toLowerCase()]||null}#C(){switch(this.securityTier){case o.CRITICAL:return".pdf,.txt";case o.SENSITIVE:return".pdf,.doc,.docx,.txt,.jpg,.jpeg,.png";case o.AUTHENTICATED:return".pdf,.doc,.docx,.xls,.xlsx,.txt,.csv,.jpg,.jpeg,.png,.gif";case o.PUBLIC:default:return".pdf,.doc,.docx,.xls,.xlsx,.txt,.csv,.jpg,.jpeg,.png,.gif,.zip"}}#A(){switch(this.securityTier){case o.CRITICAL:return 2*1024*1024;case o.SENSITIVE:return 5*1024*1024;case o.AUTHENTICATED:return 10*1024*1024;case o.PUBLIC:default:return 20*1024*1024}}#w(){const e=(this.#l/1048576).toFixed(1);return`Accepted: ${this.#e.accept||"all files"} (max ${e}MB)`}#y(){this.#e.addEventListener("change",e=>{this.#p(e)}),this.#t.addEventListener("dragover",e=>{e.preventDefault(),e.stopPropagation(),this.#t.classList.add("drag-over")}),this.#t.addEventListener("dragleave",e=>{e.preventDefault(),e.stopPropagation(),this.#t.classList.remove("drag-over")}),this.#t.addEventListener("drop",e=>{e.preventDefault(),e.stopPropagation(),this.#t.classList.remove("drag-over");const t=e;if(!t.dataTransfer)return;const i=t.dataTransfer.files;i.length>0&&(this.#e.files=i,this.#p({target:this.#e}))})}async#p(e){const t=e.target.files;if(!t||t.length===0)return;const i=this.checkRateLimit();if(!i.allowed){this.#g(`Too many upload attempts. Please wait ${Math.ceil(i.retryAfter/1e3)} seconds.`),this.#e.value="";return}this.#v();const s=await this.#E(t);if(!s.valid){this.#g(s.errors.join(", ")),this.#e.value="",this.#n=null;return}this.#n=t,this.#m(t),this.#I(t),this.audit("files_selected",{name:this.#e.name,fileCount:t.length,totalSize:Array.from(t).reduce((n,r)=>n+r.size,0)}),this.dispatchEvent(new CustomEvent("secure-file-upload",{detail:{name:this.#e.name,files:Array.from(t),tier:this.securityTier},bubbles:!0,composed:!0}))}async#E(e){const t=[];!this.#e.multiple&&e.length>1&&t.push("Only one file is allowed");for(let i=0;i<e.length;i++){const s=e[i];if(s.size>this.#l){const n=(this.#l/1048576).toFixed(1);t.push(`${s.name}: File size exceeds ${n}MB`);continue}if(this.#r.size>0&&!this.#S(s)){t.push(`${s.name}: File type not allowed`);continue}if(this.#T(s.name)){t.push(`${s.name}: Invalid file name`);continue}if(this.securityTier===o.CRITICAL){const n=await this.#F(s);if(!n.valid){t.push(`${s.name}: ${n.error}`);continue}}if(this.#d){const n=await this.#N(s);if(!n.valid){t.push(`${s.name}: ${n.reason||"Rejected by scan"}`);continue}}}return{valid:t.length===0,errors:t}}#S(e){if(this.#r.has(e.type))return!0;for(const t of this.#r)if(t.endsWith("/*")){const i=t.slice(0,-2);if(e.type.startsWith(i))return!0}return!1}#T(e){return!!(e.includes("..")||e.includes("/")||e.includes("\\")||["web.config",".htaccess",".env","config.php"].includes(e.toLowerCase()))}async#N(e){this.#h=!0,this.#L(e.name),this.audit("scan_started",{name:this.#e?.name??"",fileName:e.name,fileSize:e.size});try{const t=await this.#d(e);return this.audit(t.valid?"scan_passed":"scan_rejected",{name:this.#e?.name??"",fileName:e.name,reason:t.reason??""}),t}catch(t){const i=t instanceof Error?t.message:"Scan failed";return this.audit("scan_error",{name:this.#e?.name??"",fileName:e.name,error:i}),{valid:!1,reason:`Scan error: ${i}`}}finally{this.#h=!1,this.#z()}}#L(e){this.#t&&this.#t.classList.add("scanning"),this.#e&&(this.#e.disabled=!0),this.#i&&(this.#i.textContent=`Scanning ${e}\u2026`)}#z(){this.#t&&this.#t.classList.remove("scanning"),this.#e&&!this.hasAttribute("disabled")&&(this.#e.disabled=!1)}async#F(e){try{const t=await e.slice(0,4).arrayBuffer(),i=new Uint8Array(t),s={"application/pdf":[37,80,68,70],"image/jpeg":[255,216,255],"image/png":[137,80,78,71]};return s[e.type]&&!s[e.type].every((a,c)=>i[c]===a)?{valid:!1,error:"File content does not match declared type"}:{valid:!0}}catch{return{valid:!1,error:"Failed to validate file content"}}}#m(e){this.#i&&(!e||e.length===0?(this.#i.textContent="No file selected",this.#i.classList.remove("has-file")):e.length===1?(this.#i.textContent=e[0].name,this.#i.classList.add("has-file")):(this.#i.textContent=`${e.length} files selected`,this.#i.classList.add("has-file")))}#I(e){this.#a.innerHTML="",Array.from(e).forEach(t=>{const i=document.createElement("div");i.className="file-preview";const s=document.createElement("div");s.className="file-name",s.textContent=t.name;const n=document.createElement("div");n.className="file-size",n.textContent=this.#j(t.size);const r=document.createElement("button");r.className="remove-file",r.textContent="\u2715",r.type="button",r.onclick=()=>{this.#f()},i.appendChild(s),i.appendChild(n),i.appendChild(r),this.#a.appendChild(i)})}#j(e){return e<1024?e+" B":e<1024*1024?(e/1024).toFixed(1)+" KB":(e/(1024*1024)).toFixed(1)+" MB"}#f(){this.#e.value="",this.#n=null,this.#a.innerHTML="",this.#m(null),this.#v(),this.audit("file_removed",{name:this.#e.name})}#g(e){this.#s.textContent=e,this.#s.classList.remove("hidden"),this.#t.classList.add("error")}#v(){this.#s.textContent="",this.#s.classList.add("hidden"),this.#t.classList.remove("error")}#k(){return new URL("./secure-file-upload.css",import.meta.url).href}handleAttributeChange(e,t,i){if(this.#e)switch(e){case"disabled":this.#e.disabled=this.hasAttribute("disabled");break;case"accept":this.#e.accept=i,this.#u(i);break}}get files(){return this.#n}get name(){return this.#e?this.#e.name:""}get valid(){return!((this.hasAttribute("required")||this.config.validation.required)&&(!this.#n||this.#n.length===0))}clear(){this.#f()}setScanHook(e){if(typeof e!="function")throw new TypeError("setScanHook expects a function");this.#d=e,this.audit("scan_hook_registered",{name:this.#e?.name??""})}get hasScanHook(){return this.#d!==null}get scanning(){return this.#h}disconnectedCallback(){super.disconnectedCallback(),this.#n=null,this.#e&&(this.#e.value="")}}customElements.define("secure-file-upload",p);var x=p;export{p as SecureFileUpload,x as default};
33
+ */import{SecureBaseComponent as m}from"../../core/base-component.js";import{SecurityTier as o}from"../../core/security-config.js";class p extends m{#e=null;#o=null;#s=null;#a=null;#t=null;#i=null;#n=null;#c=`secure-file-upload-${Math.random().toString(36).substring(2,11)}`;#r=new Set;#l=5*1024*1024;#d=null;#h=!1;static get observedAttributes(){return[...super.observedAttributes,"name","label","accept","max-size","multiple","required","capture"]}constructor(){super()}render(){const e=document.createDocumentFragment(),t=document.createElement("div");t.className="file-upload-container",t.setAttribute("part","container");const i=this.getAttribute("label");i&&(this.#o=document.createElement("label"),this.#o.htmlFor=this.#c,this.#o.textContent=this.sanitizeValue(i),this.#o.setAttribute("part","label"),t.appendChild(this.#o)),this.#t=document.createElement("div"),this.#t.className="drop-zone",this.#t.setAttribute("part","wrapper"),this.#e=document.createElement("input"),this.#e.type="file",this.#e.id=this.#c,this.#e.className="file-input",this.#e.setAttribute("part","input"),this.#x(),this.#y();const s=document.createElement("div");s.className="drop-zone-content has-name";const n=document.createElement("span");n.className="file-cta";const r=document.createElement("span");r.className="drop-icon";const a=document.createElementNS("http://www.w3.org/2000/svg","svg");a.setAttribute("width","16"),a.setAttribute("height","16"),a.setAttribute("viewBox","0 0 24 24"),a.setAttribute("fill","none"),a.setAttribute("stroke","currentColor"),a.setAttribute("stroke-width","2"),a.setAttribute("stroke-linecap","round"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("aria-hidden","true"),a.setAttribute("focusable","false");const c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d","M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4");const u=document.createElementNS("http://www.w3.org/2000/svg","polyline");u.setAttribute("points","17 8 12 3 7 8");const l=document.createElementNS("http://www.w3.org/2000/svg","line");l.setAttribute("x1","12"),l.setAttribute("y1","3"),l.setAttribute("x2","12"),l.setAttribute("y2","15"),a.appendChild(c),a.appendChild(u),a.appendChild(l),r.appendChild(a),n.appendChild(r);const d=document.createElement("span");d.className="drop-text",d.textContent="Choose a file\u2026",n.appendChild(d),s.appendChild(n),this.#i=document.createElement("span"),this.#i.className="file-name-display",this.#i.textContent="No file selected",s.appendChild(this.#i),this.#t.appendChild(this.#e),this.#t.appendChild(s),t.appendChild(this.#t);const h=document.createElement("div");return h.className="drop-hint",h.textContent=this.#w(),t.appendChild(h),this.#a=document.createElement("div"),this.#a.className="preview-container",t.appendChild(this.#a),this.#s=document.createElement("div"),this.#s.className="error-container hidden",this.#s.setAttribute("role","alert"),this.#s.setAttribute("part","error"),this.#s.id=`${this.#c}-error`,t.appendChild(this.#s),this.#e.setAttribute("aria-describedby",`${this.#c}-error`),this.addComponentStyles(this.#k()),e.appendChild(t),e}#x(){const e=this.config,t=this.getAttribute("name");t&&(this.#e.name=this.sanitizeValue(t));const i=this.getAttribute("accept");if(i)this.#e.accept=i,this.#u(i);else{const r=this.#C();this.#e.accept=r,this.#u(r)}const s=this.getAttribute("max-size");s?this.#l=parseInt(s,10):this.#l=this.#A(),this.hasAttribute("multiple")&&(this.#e.multiple=!0),(this.hasAttribute("required")||e.validation.required)&&(this.#e.required=!0);const n=this.getAttribute("capture");n&&(this.#e.capture=n),this.hasAttribute("disabled")&&(this.#e.disabled=!0)}#u(e){this.#r.clear(),e.split(",").map(i=>i.trim()).forEach(i=>{if(i.startsWith(".")){const s=this.#b(i);s&&this.#r.add(s)}else this.#r.add(i)})}#b(e){return{".pdf":"application/pdf",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".txt":"text/plain",".csv":"text/csv",".jpg":"image/jpeg",".jpeg":"image/jpeg",".png":"image/png",".gif":"image/gif",".svg":"image/svg+xml",".zip":"application/zip",".json":"application/json"}[e.toLowerCase()]||null}#C(){switch(this.securityTier){case o.CRITICAL:return".pdf,.txt";case o.SENSITIVE:return".pdf,.doc,.docx,.txt,.jpg,.jpeg,.png";case o.AUTHENTICATED:return".pdf,.doc,.docx,.xls,.xlsx,.txt,.csv,.jpg,.jpeg,.png,.gif";case o.PUBLIC:default:return".pdf,.doc,.docx,.xls,.xlsx,.txt,.csv,.jpg,.jpeg,.png,.gif,.zip"}}#A(){switch(this.securityTier){case o.CRITICAL:return 2*1024*1024;case o.SENSITIVE:return 5*1024*1024;case o.AUTHENTICATED:return 10*1024*1024;case o.PUBLIC:default:return 20*1024*1024}}#w(){const e=(this.#l/1048576).toFixed(1);return`Accepted: ${this.#e.accept||"all files"} (max ${e}MB)`}#y(){this.#e.addEventListener("change",e=>{this.#p(e)}),this.#t.addEventListener("dragover",e=>{e.preventDefault(),e.stopPropagation(),this.#t.classList.add("drag-over")}),this.#t.addEventListener("dragleave",e=>{e.preventDefault(),e.stopPropagation(),this.#t.classList.remove("drag-over")}),this.#t.addEventListener("drop",e=>{e.preventDefault(),e.stopPropagation(),this.#t.classList.remove("drag-over");const t=e;if(!t.dataTransfer)return;const i=t.dataTransfer.files;i.length>0&&(this.#e.files=i,this.#p({target:this.#e}))})}async#p(e){const t=e.target.files;if(!t||t.length===0)return;const i=this.checkRateLimit();if(!i.allowed){this.#g(`Too many upload attempts. Please wait ${Math.ceil(i.retryAfter/1e3)} seconds.`),this.#e.value="";return}this.#v();const s=await this.#E(t);if(!s.valid){this.#g(s.errors.join(", ")),this.#e.value="",this.#n=null;return}this.#n=t,this.#m(t),this.#I(t),this.audit("files_selected",{name:this.#e.name,fileCount:t.length,totalSize:Array.from(t).reduce((n,r)=>n+r.size,0)}),this.dispatchEvent(new CustomEvent("secure-file-change",{detail:{name:this.#e.name,files:Array.from(t),tier:this.securityTier},bubbles:!0,composed:!0}))}async#E(e){const t=[];!this.#e.multiple&&e.length>1&&t.push("Only one file is allowed");for(let i=0;i<e.length;i++){const s=e[i];if(s.size>this.#l){const n=(this.#l/1048576).toFixed(1);t.push(`${s.name}: File size exceeds ${n}MB`);continue}if(this.#r.size>0&&!this.#S(s)){t.push(`${s.name}: File type not allowed`);continue}if(this.#T(s.name)){t.push(`${s.name}: Invalid file name`);continue}if(this.securityTier===o.CRITICAL){const n=await this.#F(s);if(!n.valid){t.push(`${s.name}: ${n.error}`);continue}}if(this.#d){const n=await this.#N(s);if(!n.valid){t.push(`${s.name}: ${n.reason||"Rejected by scan"}`);continue}}}return{valid:t.length===0,errors:t}}#S(e){if(this.#r.has(e.type))return!0;for(const t of this.#r)if(t.endsWith("/*")){const i=t.slice(0,-2);if(e.type.startsWith(i))return!0}return!1}#T(e){return!!(e.includes("..")||e.includes("/")||e.includes("\\")||["web.config",".htaccess",".env","config.php"].includes(e.toLowerCase()))}async#N(e){this.#h=!0,this.#L(e.name),this.audit("scan_started",{name:this.#e?.name??"",fileName:e.name,fileSize:e.size});try{const t=await this.#d(e);return this.audit(t.valid?"scan_passed":"scan_rejected",{name:this.#e?.name??"",fileName:e.name,reason:t.reason??""}),t}catch(t){const i=t instanceof Error?t.message:"Scan failed";return this.audit("scan_error",{name:this.#e?.name??"",fileName:e.name,error:i}),{valid:!1,reason:`Scan error: ${i}`}}finally{this.#h=!1,this.#z()}}#L(e){this.#t&&this.#t.classList.add("scanning"),this.#e&&(this.#e.disabled=!0),this.#i&&(this.#i.textContent=`Scanning ${e}\u2026`)}#z(){this.#t&&this.#t.classList.remove("scanning"),this.#e&&!this.hasAttribute("disabled")&&(this.#e.disabled=!1)}async#F(e){try{const t=await e.slice(0,4).arrayBuffer(),i=new Uint8Array(t),s={"application/pdf":[37,80,68,70],"image/jpeg":[255,216,255],"image/png":[137,80,78,71]};return s[e.type]&&!s[e.type].every((a,c)=>i[c]===a)?{valid:!1,error:"File content does not match declared type"}:{valid:!0}}catch{return{valid:!1,error:"Failed to validate file content"}}}#m(e){this.#i&&(!e||e.length===0?(this.#i.textContent="No file selected",this.#i.classList.remove("has-file")):e.length===1?(this.#i.textContent=e[0].name,this.#i.classList.add("has-file")):(this.#i.textContent=`${e.length} files selected`,this.#i.classList.add("has-file")))}#I(e){this.#a.innerHTML="",Array.from(e).forEach(t=>{const i=document.createElement("div");i.className="file-preview";const s=document.createElement("div");s.className="file-name",s.textContent=t.name;const n=document.createElement("div");n.className="file-size",n.textContent=this.#j(t.size);const r=document.createElement("button");r.className="remove-file",r.textContent="\u2715",r.type="button",r.onclick=()=>{this.#f()},i.appendChild(s),i.appendChild(n),i.appendChild(r),this.#a.appendChild(i)})}#j(e){return e<1024?e+" B":e<1024*1024?(e/1024).toFixed(1)+" KB":(e/(1024*1024)).toFixed(1)+" MB"}#f(){this.#e.value="",this.#n=null,this.#a.innerHTML="",this.#m(null),this.#v(),this.audit("file_removed",{name:this.#e.name})}#g(e){this.#s.textContent=e,this.#s.classList.remove("hidden"),this.#t.classList.add("error")}#v(){this.#s.textContent="",this.#s.classList.add("hidden"),this.#t.classList.remove("error")}#k(){return new URL("./secure-file-upload.css",import.meta.url).href}handleAttributeChange(e,t,i){if(this.#e)switch(e){case"disabled":this.#e.disabled=this.hasAttribute("disabled");break;case"accept":this.#e.accept=i,this.#u(i);break}}get files(){return this.#n}get name(){return this.#e?this.#e.name:""}get valid(){return!((this.hasAttribute("required")||this.config.validation.required)&&(!this.#n||this.#n.length===0))}clear(){this.#f()}setScanHook(e){if(typeof e!="function")throw new TypeError("setScanHook expects a function");this.#d=e,this.audit("scan_hook_registered",{name:this.#e?.name??""})}get hasScanHook(){return this.#d!==null}get scanning(){return this.#h}disconnectedCallback(){super.disconnectedCallback(),this.#n=null,this.#e&&(this.#e.value="")}}customElements.define("secure-file-upload",p);var x=p;export{p as SecureFileUpload,x as default};