@nysds/nys-modal 1.10.1 → 1.11.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.
package/dist/nys-modal.js CHANGED
@@ -1,4 +1,4 @@
1
- import { css as D, LitElement as N, html as S } from "lit";
1
+ import { css as M, LitElement as U, html as w } from "lit";
2
2
  /*!
3
3
  * ▒█▄░▒█ ▒█░░▒█ ▒█▀▀▀█ ▒█▀▀▄ ▒█▀▀▀█
4
4
  * ▒█▒█▒█ ▒█▄▄▄█ ░▀▀▀▄▄ ▒█░▒█ ░▀▀▀▄▄
@@ -14,18 +14,18 @@ import { css as D, LitElement as N, html as S } from "lit";
14
14
  * Copyright 2019 Google LLC
15
15
  * SPDX-License-Identifier: BSD-3-Clause
16
16
  */
17
- const v = globalThis, P = v.ShadowRoot && (v.ShadyCSS === void 0 || v.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, M = Symbol(), A = /* @__PURE__ */ new WeakMap();
18
- let T = class {
17
+ const _ = globalThis, E = _.ShadowRoot && (_.ShadyCSS === void 0 || _.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, O = Symbol(), C = /* @__PURE__ */ new WeakMap();
18
+ let D = class {
19
19
  constructor(t, e, s) {
20
- if (this._$cssResult$ = !0, s !== M) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
20
+ if (this._$cssResult$ = !0, s !== O) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
21
21
  this.cssText = t, this.t = e;
22
22
  }
23
23
  get styleSheet() {
24
24
  let t = this.o;
25
25
  const e = this.t;
26
- if (P && t === void 0) {
26
+ if (E && t === void 0) {
27
27
  const s = e !== void 0 && e.length === 1;
28
- s && (t = A.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), s && A.set(e, t));
28
+ s && (t = C.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), s && C.set(e, t));
29
29
  }
30
30
  return t;
31
31
  }
@@ -33,26 +33,26 @@ let T = class {
33
33
  return this.cssText;
34
34
  }
35
35
  };
36
- const L = (i) => new T(typeof i == "string" ? i : i + "", void 0, M), R = (i, t) => {
37
- if (P) i.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
36
+ const k = (i) => new D(typeof i == "string" ? i : i + "", void 0, O), N = (i, t) => {
37
+ if (E) i.adoptedStyleSheets = t.map(((e) => e instanceof CSSStyleSheet ? e : e.styleSheet));
38
38
  else for (const e of t) {
39
- const s = document.createElement("style"), o = v.litNonce;
39
+ const s = document.createElement("style"), o = _.litNonce;
40
40
  o !== void 0 && s.setAttribute("nonce", o), s.textContent = e.cssText, i.appendChild(s);
41
41
  }
42
- }, O = P ? (i) => i : (i) => i instanceof CSSStyleSheet ? ((t) => {
42
+ }, P = E ? (i) => i : (i) => i instanceof CSSStyleSheet ? ((t) => {
43
43
  let e = "";
44
44
  for (const s of t.cssRules) e += s.cssText;
45
- return L(e);
45
+ return k(e);
46
46
  })(i) : i;
47
47
  /**
48
48
  * @license
49
49
  * Copyright 2017 Google LLC
50
50
  * SPDX-License-Identifier: BSD-3-Clause
51
51
  */
52
- const { is: z, defineProperty: j, getOwnPropertyDescriptor: q, getOwnPropertyNames: F, getOwnPropertySymbols: W, getPrototypeOf: H } = Object, c = globalThis, B = c.trustedTypes, I = B ? B.emptyScript : "", $ = c.reactiveElementPolyfillSupport, _ = (i, t) => i, g = { toAttribute(i, t) {
52
+ const { is: T, defineProperty: L, getOwnPropertyDescriptor: R, getOwnPropertyNames: j, getOwnPropertySymbols: z, getPrototypeOf: q } = Object, g = globalThis, x = g.trustedTypes, F = x ? x.emptyScript : "", W = g.reactiveElementPolyfillSupport, m = (i, t) => i, v = { toAttribute(i, t) {
53
53
  switch (t) {
54
54
  case Boolean:
55
- i = i ? I : null;
55
+ i = i ? F : null;
56
56
  break;
57
57
  case Object:
58
58
  case Array:
@@ -77,46 +77,44 @@ const { is: z, defineProperty: j, getOwnPropertyDescriptor: q, getOwnPropertyNam
77
77
  }
78
78
  }
79
79
  return e;
80
- } }, C = (i, t) => !z(i, t), U = { attribute: !0, type: String, converter: g, reflect: !1, hasChanged: C };
81
- Symbol.metadata ?? (Symbol.metadata = Symbol("metadata")), c.litPropertyMetadata ?? (c.litPropertyMetadata = /* @__PURE__ */ new WeakMap());
82
- class m extends HTMLElement {
80
+ } }, S = (i, t) => !T(i, t), A = { attribute: !0, type: String, converter: v, reflect: !1, useDefault: !1, hasChanged: S };
81
+ Symbol.metadata ??= Symbol("metadata"), g.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
82
+ class f extends HTMLElement {
83
83
  static addInitializer(t) {
84
- this._$Ei(), (this.l ?? (this.l = [])).push(t);
84
+ this._$Ei(), (this.l ??= []).push(t);
85
85
  }
86
86
  static get observedAttributes() {
87
87
  return this.finalize(), this._$Eh && [...this._$Eh.keys()];
88
88
  }
89
- static createProperty(t, e = U) {
90
- if (e.state && (e.attribute = !1), this._$Ei(), this.elementProperties.set(t, e), !e.noAccessor) {
89
+ static createProperty(t, e = A) {
90
+ if (e.state && (e.attribute = !1), this._$Ei(), this.prototype.hasOwnProperty(t) && ((e = Object.create(e)).wrapped = !0), this.elementProperties.set(t, e), !e.noAccessor) {
91
91
  const s = Symbol(), o = this.getPropertyDescriptor(t, s, e);
92
- o !== void 0 && j(this.prototype, t, o);
92
+ o !== void 0 && L(this.prototype, t, o);
93
93
  }
94
94
  }
95
95
  static getPropertyDescriptor(t, e, s) {
96
- const { get: o, set: n } = q(this.prototype, t) ?? { get() {
96
+ const { get: o, set: n } = R(this.prototype, t) ?? { get() {
97
97
  return this[e];
98
98
  }, set(r) {
99
99
  this[e] = r;
100
100
  } };
101
- return { get() {
102
- return o == null ? void 0 : o.call(this);
103
- }, set(r) {
104
- const a = o == null ? void 0 : o.call(this);
105
- n.call(this, r), this.requestUpdate(t, a, s);
101
+ return { get: o, set(r) {
102
+ const a = o?.call(this);
103
+ n?.call(this, r), this.requestUpdate(t, a, s);
106
104
  }, configurable: !0, enumerable: !0 };
107
105
  }
108
106
  static getPropertyOptions(t) {
109
- return this.elementProperties.get(t) ?? U;
107
+ return this.elementProperties.get(t) ?? A;
110
108
  }
111
109
  static _$Ei() {
112
- if (this.hasOwnProperty(_("elementProperties"))) return;
113
- const t = H(this);
110
+ if (this.hasOwnProperty(m("elementProperties"))) return;
111
+ const t = q(this);
114
112
  t.finalize(), t.l !== void 0 && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
115
113
  }
116
114
  static finalize() {
117
- if (this.hasOwnProperty(_("finalized"))) return;
118
- if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(_("properties"))) {
119
- const e = this.properties, s = [...F(e), ...W(e)];
115
+ if (this.hasOwnProperty(m("finalized"))) return;
116
+ if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(m("properties"))) {
117
+ const e = this.properties, s = [...j(e), ...z(e)];
120
118
  for (const o of s) this.createProperty(o, e[o]);
121
119
  }
122
120
  const t = this[Symbol.metadata];
@@ -135,8 +133,8 @@ class m extends HTMLElement {
135
133
  const e = [];
136
134
  if (Array.isArray(t)) {
137
135
  const s = new Set(t.flat(1 / 0).reverse());
138
- for (const o of s) e.unshift(O(o));
139
- } else t !== void 0 && e.push(O(t));
136
+ for (const o of s) e.unshift(P(o));
137
+ } else t !== void 0 && e.push(P(t));
140
138
  return e;
141
139
  }
142
140
  static _$Eu(t, e) {
@@ -147,16 +145,13 @@ class m extends HTMLElement {
147
145
  super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
148
146
  }
149
147
  _$Ev() {
150
- var t;
151
- this._$ES = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), (t = this.constructor.l) == null || t.forEach((e) => e(this));
148
+ this._$ES = new Promise(((t) => this.enableUpdating = t)), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach(((t) => t(this)));
152
149
  }
153
150
  addController(t) {
154
- var e;
155
- (this._$EO ?? (this._$EO = /* @__PURE__ */ new Set())).add(t), this.renderRoot !== void 0 && this.isConnected && ((e = t.hostConnected) == null || e.call(t));
151
+ (this._$EO ??= /* @__PURE__ */ new Set()).add(t), this.renderRoot !== void 0 && this.isConnected && t.hostConnected?.();
156
152
  }
157
153
  removeController(t) {
158
- var e;
159
- (e = this._$EO) == null || e.delete(t);
154
+ this._$EO?.delete(t);
160
155
  }
161
156
  _$E_() {
162
157
  const t = /* @__PURE__ */ new Map(), e = this.constructor.elementProperties;
@@ -165,54 +160,47 @@ class m extends HTMLElement {
165
160
  }
166
161
  createRenderRoot() {
167
162
  const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
168
- return R(t, this.constructor.elementStyles), t;
163
+ return N(t, this.constructor.elementStyles), t;
169
164
  }
170
165
  connectedCallback() {
171
- var t;
172
- this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (t = this._$EO) == null || t.forEach((e) => {
173
- var s;
174
- return (s = e.hostConnected) == null ? void 0 : s.call(e);
175
- });
166
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach(((t) => t.hostConnected?.()));
176
167
  }
177
168
  enableUpdating(t) {
178
169
  }
179
170
  disconnectedCallback() {
180
- var t;
181
- (t = this._$EO) == null || t.forEach((e) => {
182
- var s;
183
- return (s = e.hostDisconnected) == null ? void 0 : s.call(e);
184
- });
171
+ this._$EO?.forEach(((t) => t.hostDisconnected?.()));
185
172
  }
186
173
  attributeChangedCallback(t, e, s) {
187
174
  this._$AK(t, s);
188
175
  }
189
- _$EC(t, e) {
190
- var n;
176
+ _$ET(t, e) {
191
177
  const s = this.constructor.elementProperties.get(t), o = this.constructor._$Eu(t, s);
192
178
  if (o !== void 0 && s.reflect === !0) {
193
- const r = (((n = s.converter) == null ? void 0 : n.toAttribute) !== void 0 ? s.converter : g).toAttribute(e, s.type);
194
- this._$Em = t, r == null ? this.removeAttribute(o) : this.setAttribute(o, r), this._$Em = null;
179
+ const n = (s.converter?.toAttribute !== void 0 ? s.converter : v).toAttribute(e, s.type);
180
+ this._$Em = t, n == null ? this.removeAttribute(o) : this.setAttribute(o, n), this._$Em = null;
195
181
  }
196
182
  }
197
183
  _$AK(t, e) {
198
- var n;
199
184
  const s = this.constructor, o = s._$Eh.get(t);
200
185
  if (o !== void 0 && this._$Em !== o) {
201
- const r = s.getPropertyOptions(o), a = typeof r.converter == "function" ? { fromAttribute: r.converter } : ((n = r.converter) == null ? void 0 : n.fromAttribute) !== void 0 ? r.converter : g;
202
- this._$Em = o, this[o] = a.fromAttribute(e, r.type), this._$Em = null;
186
+ const n = s.getPropertyOptions(o), r = typeof n.converter == "function" ? { fromAttribute: n.converter } : n.converter?.fromAttribute !== void 0 ? n.converter : v;
187
+ this._$Em = o;
188
+ const a = r.fromAttribute(e, n.type);
189
+ this[o] = a ?? this._$Ej?.get(o) ?? a, this._$Em = null;
203
190
  }
204
191
  }
205
192
  requestUpdate(t, e, s) {
206
193
  if (t !== void 0) {
207
- if (s ?? (s = this.constructor.getPropertyOptions(t)), !(s.hasChanged ?? C)(this[t], e)) return;
208
- this.P(t, e, s);
194
+ const o = this.constructor, n = this[t];
195
+ if (s ??= o.getPropertyOptions(t), !((s.hasChanged ?? S)(n, e) || s.useDefault && s.reflect && n === this._$Ej?.get(t) && !this.hasAttribute(o._$Eu(t, s)))) return;
196
+ this.C(t, e, s);
209
197
  }
210
- this.isUpdatePending === !1 && (this._$ES = this._$ET());
198
+ this.isUpdatePending === !1 && (this._$ES = this._$EP());
211
199
  }
212
- P(t, e, s) {
213
- this._$AL.has(t) || this._$AL.set(t, e), s.reflect === !0 && this._$Em !== t && (this._$Ej ?? (this._$Ej = /* @__PURE__ */ new Set())).add(t);
200
+ C(t, e, { useDefault: s, reflect: o, wrapped: n }, r) {
201
+ s && !(this._$Ej ??= /* @__PURE__ */ new Map()).has(t) && (this._$Ej.set(t, r ?? e ?? this[t]), n !== !0 || r !== void 0) || (this._$AL.has(t) || (this.hasUpdated || s || (e = void 0), this._$AL.set(t, e)), o === !0 && this._$Em !== t && (this._$Eq ??= /* @__PURE__ */ new Set()).add(t));
214
202
  }
215
- async _$ET() {
203
+ async _$EP() {
216
204
  this.isUpdatePending = !0;
217
205
  try {
218
206
  await this._$ES;
@@ -226,38 +214,33 @@ class m extends HTMLElement {
226
214
  return this.performUpdate();
227
215
  }
228
216
  performUpdate() {
229
- var s;
230
217
  if (!this.isUpdatePending) return;
231
218
  if (!this.hasUpdated) {
232
- if (this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this._$Ep) {
233
- for (const [n, r] of this._$Ep) this[n] = r;
219
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
220
+ for (const [o, n] of this._$Ep) this[o] = n;
234
221
  this._$Ep = void 0;
235
222
  }
236
- const o = this.constructor.elementProperties;
237
- if (o.size > 0) for (const [n, r] of o) r.wrapped !== !0 || this._$AL.has(n) || this[n] === void 0 || this.P(n, this[n], r);
223
+ const s = this.constructor.elementProperties;
224
+ if (s.size > 0) for (const [o, n] of s) {
225
+ const { wrapped: r } = n, a = this[o];
226
+ r !== !0 || this._$AL.has(o) || a === void 0 || this.C(o, void 0, n, a);
227
+ }
238
228
  }
239
229
  let t = !1;
240
230
  const e = this._$AL;
241
231
  try {
242
- t = this.shouldUpdate(e), t ? (this.willUpdate(e), (s = this._$EO) == null || s.forEach((o) => {
243
- var n;
244
- return (n = o.hostUpdate) == null ? void 0 : n.call(o);
245
- }), this.update(e)) : this._$EU();
246
- } catch (o) {
247
- throw t = !1, this._$EU(), o;
232
+ t = this.shouldUpdate(e), t ? (this.willUpdate(e), this._$EO?.forEach(((s) => s.hostUpdate?.())), this.update(e)) : this._$EM();
233
+ } catch (s) {
234
+ throw t = !1, this._$EM(), s;
248
235
  }
249
236
  t && this._$AE(e);
250
237
  }
251
238
  willUpdate(t) {
252
239
  }
253
240
  _$AE(t) {
254
- var e;
255
- (e = this._$EO) == null || e.forEach((s) => {
256
- var o;
257
- return (o = s.hostUpdated) == null ? void 0 : o.call(s);
258
- }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
241
+ this._$EO?.forEach(((e) => e.hostUpdated?.())), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t);
259
242
  }
260
- _$EU() {
243
+ _$EM() {
261
244
  this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
262
245
  }
263
246
  get updateComplete() {
@@ -270,44 +253,44 @@ class m extends HTMLElement {
270
253
  return !0;
271
254
  }
272
255
  update(t) {
273
- this._$Ej && (this._$Ej = this._$Ej.forEach((e) => this._$EC(e, this[e]))), this._$EU();
256
+ this._$Eq &&= this._$Eq.forEach(((e) => this._$ET(e, this[e]))), this._$EM();
274
257
  }
275
258
  updated(t) {
276
259
  }
277
260
  firstUpdated(t) {
278
261
  }
279
262
  }
280
- m.elementStyles = [], m.shadowRootOptions = { mode: "open" }, m[_("elementProperties")] = /* @__PURE__ */ new Map(), m[_("finalized")] = /* @__PURE__ */ new Map(), $ == null || $({ ReactiveElement: m }), (c.reactiveElementVersions ?? (c.reactiveElementVersions = [])).push("2.0.4");
263
+ f.elementStyles = [], f.shadowRootOptions = { mode: "open" }, f[m("elementProperties")] = /* @__PURE__ */ new Map(), f[m("finalized")] = /* @__PURE__ */ new Map(), W?.({ ReactiveElement: f }), (g.reactiveElementVersions ??= []).push("2.1.1");
281
264
  /**
282
265
  * @license
283
266
  * Copyright 2017 Google LLC
284
267
  * SPDX-License-Identifier: BSD-3-Clause
285
268
  */
286
- const K = { attribute: !0, type: String, converter: g, reflect: !1, hasChanged: C }, V = (i = K, t, e) => {
269
+ const H = { attribute: !0, type: String, converter: v, reflect: !1, hasChanged: S }, I = (i = H, t, e) => {
287
270
  const { kind: s, metadata: o } = e;
288
271
  let n = globalThis.litPropertyMetadata.get(o);
289
- if (n === void 0 && globalThis.litPropertyMetadata.set(o, n = /* @__PURE__ */ new Map()), n.set(e.name, i), s === "accessor") {
272
+ if (n === void 0 && globalThis.litPropertyMetadata.set(o, n = /* @__PURE__ */ new Map()), s === "setter" && ((i = Object.create(i)).wrapped = !0), n.set(e.name, i), s === "accessor") {
290
273
  const { name: r } = e;
291
274
  return { set(a) {
292
- const l = t.get.call(this);
293
- t.set.call(this, a), this.requestUpdate(r, l, i);
275
+ const c = t.get.call(this);
276
+ t.set.call(this, a), this.requestUpdate(r, c, i);
294
277
  }, init(a) {
295
- return a !== void 0 && this.P(r, void 0, i), a;
278
+ return a !== void 0 && this.C(r, void 0, i, a), a;
296
279
  } };
297
280
  }
298
281
  if (s === "setter") {
299
282
  const { name: r } = e;
300
283
  return function(a) {
301
- const l = this[r];
302
- t.call(this, a), this.requestUpdate(r, l, i);
284
+ const c = this[r];
285
+ t.call(this, a), this.requestUpdate(r, c, i);
303
286
  };
304
287
  }
305
288
  throw Error("Unsupported decorator location: " + s);
306
289
  };
307
- function f(i) {
308
- return (t, e) => typeof e == "object" ? V(i, t, e) : ((s, o, n) => {
290
+ function p(i) {
291
+ return (t, e) => typeof e == "object" ? I(i, t, e) : ((s, o, n) => {
309
292
  const r = o.hasOwnProperty(n);
310
- return o.constructor.createProperty(n, r ? { ...s, wrapped: !0 } : s), r ? Object.getOwnPropertyDescriptor(o, n) : void 0;
293
+ return o.constructor.createProperty(n, s), r ? Object.getOwnPropertyDescriptor(o, n) : void 0;
311
294
  })(i, t, e);
312
295
  }
313
296
  /**
@@ -315,10 +298,10 @@ function f(i) {
315
298
  * Copyright 2017 Google LLC
316
299
  * SPDX-License-Identifier: BSD-3-Clause
317
300
  */
318
- function k(i) {
319
- return f({ ...i, state: !0, attribute: !1 });
301
+ function B(i) {
302
+ return p({ ...i, state: !0, attribute: !1 });
320
303
  }
321
- const J = D`
304
+ const K = M`
322
305
  :host {
323
306
  /* Global Modal Styles */
324
307
  --_nys-modal-width: 480px;
@@ -470,14 +453,14 @@ const J = D`
470
453
  }
471
454
  }
472
455
  `;
473
- var G = Object.defineProperty, Q = Object.getOwnPropertyDescriptor, p = (i, t, e, s) => {
474
- for (var o = s > 1 ? void 0 : s ? Q(t, e) : t, n = i.length - 1, r; n >= 0; n--)
456
+ var V = Object.defineProperty, J = Object.getOwnPropertyDescriptor, h = (i, t, e, s) => {
457
+ for (var o = s > 1 ? void 0 : s ? J(t, e) : t, n = i.length - 1, r; n >= 0; n--)
475
458
  (r = i[n]) && (o = (s ? r(t, e, o) : r(o)) || o);
476
- return s && o && G(t, e, o), o;
459
+ return s && o && V(t, e, o), o;
477
460
  };
478
- let X = 0;
479
- var u;
480
- const d = (u = class extends N {
461
+ let G = 0;
462
+ var d;
463
+ const l = (d = class extends U {
481
464
  /**************** Lifecycle Methods ****************/
482
465
  constructor() {
483
466
  super(), this.id = "", this.heading = "", this.subheading = "", this.open = !1, this.mandatory = !1, this._width = "md", this._actionButtonSlot = null, this._prevFocusedElement = null, this._originalBodyOverflow = null, this.hasBodySlots = !1, this.hasActionSlots = !1;
@@ -486,12 +469,12 @@ const d = (u = class extends N {
486
469
  return this._width;
487
470
  }
488
471
  set width(t) {
489
- this._width = u.VALID_WIDTHS.includes(
472
+ this._width = d.VALID_WIDTHS.includes(
490
473
  t
491
474
  ) ? t : "md";
492
475
  }
493
476
  connectedCallback() {
494
- super.connectedCallback(), this.id || (this.id = `nys-{{componentName}}-${Date.now()}-${X++}`), window.addEventListener("resize", () => this._updateSlottedButtonWidth()), window.addEventListener("keydown", (t) => this._handleKeydown(t));
477
+ super.connectedCallback(), this.id || (this.id = `nys-{{componentName}}-${Date.now()}-${G++}`), window.addEventListener("resize", () => this._updateSlottedButtonWidth()), window.addEventListener("keydown", (t) => this._handleKeydown(t));
495
478
  }
496
479
  disconnectedCallback() {
497
480
  super.disconnectedCallback(), this._restoreBodyScroll(), window.removeEventListener("keydown", (t) => this._handleKeydown(t));
@@ -513,45 +496,34 @@ const d = (u = class extends N {
513
496
  this._prevFocusedElement = document.activeElement;
514
497
  }
515
498
  _focusOnModal() {
516
- var e;
517
- const t = (e = this.shadowRoot) == null ? void 0 : e.querySelector(".nys-modal");
518
- t == null || t.focus();
499
+ this.shadowRoot?.querySelector(".nys-modal")?.focus();
519
500
  }
520
501
  async _restorePrevFocused() {
521
- var e;
522
502
  const t = this._prevFocusedElement;
523
503
  if (t && t.tagName.toLowerCase() === "nys-button") {
524
- const s = await t.getButtonElement();
525
- if (s) {
526
- s.focus();
504
+ const e = await t.getButtonElement();
505
+ if (e) {
506
+ e.focus();
527
507
  return;
528
508
  }
529
509
  } else
530
- (e = this._prevFocusedElement) == null || e.focus();
510
+ this._prevFocusedElement?.focus();
531
511
  this._prevFocusedElement = null;
532
512
  }
533
513
  // Check if the slot contains stuff (aka user add texts & action buttons), and render visibility accordingly
534
514
  async _handleBodySlotChange() {
535
- var e;
536
- const t = (e = this.shadowRoot) == null ? void 0 : e.querySelector("slot");
515
+ const t = this.shadowRoot?.querySelector("slot");
537
516
  t && (this.hasBodySlots = t.assignedNodes({ flatten: !0 }).some(
538
- (s) => {
539
- var o;
540
- return s.nodeType === Node.ELEMENT_NODE || ((o = s.textContent) == null ? void 0 : o.trim());
541
- }
517
+ (e) => e.nodeType === Node.ELEMENT_NODE || e.textContent?.trim()
542
518
  ));
543
519
  }
544
520
  // Determines whether we hide the action buttons slot container based on if user put in action buttons
545
521
  async _handleActionSlotChange() {
546
- var e;
547
- const t = (e = this.shadowRoot) == null ? void 0 : e.querySelector(
522
+ const t = this.shadowRoot?.querySelector(
548
523
  'slot[name="actions"]'
549
524
  );
550
525
  t && (this.hasActionSlots = t.assignedNodes({ flatten: !0 }).some(
551
- (s) => {
552
- var o;
553
- return s.nodeType === Node.ELEMENT_NODE || ((o = s.textContent) == null ? void 0 : o.trim());
554
- }
526
+ (e) => e.nodeType === Node.ELEMENT_NODE || e.textContent?.trim()
555
527
  ), this._actionButtonSlot = t, this._updateSlottedButtonWidth());
556
528
  }
557
529
  // Design has it that the slotted action buttons should be fullWidth and display:column direction for mobile view.
@@ -561,7 +533,7 @@ const d = (u = class extends N {
561
533
  const t = window.innerWidth <= 480;
562
534
  this._actionButtonSlot.assignedElements().forEach((e) => {
563
535
  e.querySelectorAll("nys-button").forEach((s) => {
564
- t ? s == null || s.setAttribute("fullWidth", "") : s == null || s.removeAttribute("fullWidth");
536
+ t ? s?.setAttribute("fullWidth", "") : s?.removeAttribute("fullWidth");
565
537
  });
566
538
  });
567
539
  }
@@ -592,49 +564,39 @@ const d = (u = class extends N {
592
564
  * We add the "Close this window" ariaLabel after the initial VO is done
593
565
  */
594
566
  _updateDismissAria() {
595
- var e;
596
- const t = (e = this.shadowRoot) == null ? void 0 : e.querySelector("nys-button");
567
+ const t = this.shadowRoot?.querySelector("nys-button");
597
568
  t && (t.setAttribute("ariaLabel", " "), this.open && setTimeout(() => {
598
569
  t.setAttribute("ariaLabel", "Close this window");
599
570
  }, 100));
600
571
  }
601
572
  /****************** Event Handlers ******************/
602
573
  async _handleKeydown(t) {
603
- var e;
604
574
  if (this.open && (t.key === "Escape" && !this.mandatory && (t.preventDefault(), this._closeModal()), t.key === "Tab")) {
605
- const s = (e = this.shadowRoot) == null ? void 0 : e.querySelector(".nys-modal");
606
- if (!s) return;
607
- const o = 'a[href], area[href], button:not([disabled]), details, iframe, object, input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [contentEditable="true"], [tabindex]:not([tabindex^="-"])', n = [], r = s.querySelector("nys-button");
608
- r && n.push(r);
609
- const a = Array.from(s.querySelectorAll("slot"));
610
- for (const l of a) {
611
- const b = l.assignedElements({ flatten: !0 });
612
- for (const y of b)
613
- y instanceof HTMLElement && y.matches(o) && n.push(y), y.querySelectorAll("nys-button").forEach(
614
- (w) => {
615
- n.push(w);
575
+ const e = this.shadowRoot?.querySelector(".nys-modal");
576
+ if (!e) return;
577
+ const s = 'a[href], area[href], button:not([disabled]), details, iframe, object, input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [contentEditable="true"], [tabindex]:not([tabindex^="-"])', o = [], n = e.querySelector("nys-button");
578
+ n && o.push(n);
579
+ const r = Array.from(e.querySelectorAll("slot"));
580
+ for (const a of r) {
581
+ const c = a.assignedElements({ flatten: !0 });
582
+ for (const u of c)
583
+ u instanceof HTMLElement && u.matches(s) && o.push(u), u.querySelectorAll("nys-button").forEach(
584
+ (b) => {
585
+ o.push(b);
616
586
  }
617
587
  );
618
588
  }
619
- if (n.length > 0) {
620
- const l = n[0], b = n[n.length - 1];
621
- let y = document.activeElement, w = n.indexOf(y);
589
+ if (o.length > 0) {
590
+ const a = o[0], c = o[o.length - 1];
591
+ let u = document.activeElement, b = o.indexOf(u);
622
592
  if (t.shiftKey) {
623
593
  t.preventDefault();
624
- let h = w - 1;
625
- h < 0 && (h = n.length - 1);
626
- const x = n[h];
627
- if (n[h].tagName.toLowerCase() === "nys-button") {
628
- const E = await x.getButtonElement();
629
- E == null || E.focus();
630
- } else
631
- x.focus();
632
- } else if (y === b)
633
- if (t.preventDefault(), l.tagName.toLowerCase() === "nys-button") {
634
- const h = await l.getButtonElement();
635
- h == null || h.focus();
636
- } else
637
- l.focus();
594
+ let y = b - 1;
595
+ y < 0 && (y = o.length - 1);
596
+ const $ = o[y];
597
+ o[y].tagName.toLowerCase() === "nys-button" ? (await $.getButtonElement())?.focus() : $.focus();
598
+ } else
599
+ u === c && (t.preventDefault(), a.tagName.toLowerCase() === "nys-button" ? (await a.getButtonElement())?.focus() : a.focus());
638
600
  }
639
601
  }
640
602
  }
@@ -642,7 +604,7 @@ const d = (u = class extends N {
642
604
  this.open = !1, this._dispatchCloseEvent();
643
605
  }
644
606
  render() {
645
- return this.open ? S`<div
607
+ return this.open ? w`<div
646
608
  id=${this.id}
647
609
  class="nys-modal-overlay"
648
610
  role="dialog"
@@ -654,14 +616,15 @@ const d = (u = class extends N {
654
616
  <div class="nys-modal_header">
655
617
  <div class="nys-modal_header-inner">
656
618
  <h2 id="${this.id}-heading">${this.heading}</h2>
657
- ${this.mandatory ? "" : S`<nys-button
619
+ ${this.mandatory ? "" : w`<nys-button
620
+ id="dismiss-modal"
658
621
  circle
659
622
  icon="close"
660
623
  variant="ghost"
661
- .onClick=${() => this._closeModal()}
624
+ @nys-click=${this._closeModal}
662
625
  ></nys-button>`}
663
626
  </div>
664
- ${this.subheading ? S`<p id="${this.id}-subheading">${this.subheading}</p>` : ""}
627
+ ${this.subheading ? w`<p id="${this.id}-subheading">${this.subheading}</p>` : ""}
665
628
  </div>
666
629
 
667
630
  <div
@@ -684,34 +647,34 @@ const d = (u = class extends N {
684
647
  </div>
685
648
  </div>` : "";
686
649
  }
687
- }, u.VALID_WIDTHS = ["sm", "md", "lg"], u.styles = J, u);
688
- p([
689
- f({ type: String })
690
- ], d.prototype, "id", 2);
691
- p([
692
- f({ type: String })
693
- ], d.prototype, "heading", 2);
694
- p([
695
- f({ type: String })
696
- ], d.prototype, "subheading", 2);
697
- p([
698
- f({ type: Boolean, reflect: !0 })
699
- ], d.prototype, "open", 2);
700
- p([
701
- f({ type: Boolean, reflect: !0 })
702
- ], d.prototype, "mandatory", 2);
703
- p([
704
- f({ reflect: !0 })
705
- ], d.prototype, "width", 1);
706
- p([
707
- k()
708
- ], d.prototype, "hasBodySlots", 2);
709
- p([
710
- k()
711
- ], d.prototype, "hasActionSlots", 2);
712
- let Y = d;
713
- customElements.get("nys-modal") || customElements.define("nys-modal", Y);
650
+ }, d.VALID_WIDTHS = ["sm", "md", "lg"], d.styles = K, d);
651
+ h([
652
+ p({ type: String })
653
+ ], l.prototype, "id", 2);
654
+ h([
655
+ p({ type: String })
656
+ ], l.prototype, "heading", 2);
657
+ h([
658
+ p({ type: String })
659
+ ], l.prototype, "subheading", 2);
660
+ h([
661
+ p({ type: Boolean, reflect: !0 })
662
+ ], l.prototype, "open", 2);
663
+ h([
664
+ p({ type: Boolean, reflect: !0 })
665
+ ], l.prototype, "mandatory", 2);
666
+ h([
667
+ p({ reflect: !0 })
668
+ ], l.prototype, "width", 1);
669
+ h([
670
+ B()
671
+ ], l.prototype, "hasBodySlots", 2);
672
+ h([
673
+ B()
674
+ ], l.prototype, "hasActionSlots", 2);
675
+ let Q = l;
676
+ customElements.get("nys-modal") || customElements.define("nys-modal", Q);
714
677
  export {
715
- Y as NysModal
678
+ Q as NysModal
716
679
  };
717
680
  //# sourceMappingURL=nys-modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nys-modal.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/@lit/reactive-element/decorators/state.js","../src/nys-modal.styles.ts","../src/nys-modal.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import { css } from \"lit\";\n\nexport default css`\n :host {\n /* Global Modal Styles */\n --_nys-modal-width: 480px;\n --_nys-modal-min-width: 320px;\n --_nys-modal-border-radius: var(--nys-radius-lg, 8px);\n --_nys-modal-border-color: var(--nys-color-neutral-200, #bec0c1);\n --_nys-modal-border-width: 1px;\n --_nys-modal-background-color: var(--nys-color-surface, #fff);\n --_nys-modal-margin: var(--nys-space-250, 20px);\n --_nys-modal-padding: var(--nys-space-300, 24px);\n --_nys-modal-gap: var(--nys-space-200, 16px);\n\n /* Modal Overlay */\n --_nys-modal-background-color--overlay: var(\n --nys-color-black-transparent-700,\n rgba(27, 27, 27, 0.7)\n );\n\n /* Modal Header */\n --_nys-modal-gap--header: var(--nys-space-100, 8px);\n\n /* Modal Footer */\n --_nys-modal-gap--footer: var(--nys-space-250, 20px);\n\n /* Typography */\n --_nys-modal-font-size: var(--nys-font-size-ui-md, 16px);\n --_nys-modal-font-weight--header: var(--nys-font-weight-bold, 700);\n --_nys-modal-font-weight--subheader: var(--nys-font-weight-regular, 400);\n --_nys-modal-line-height: var(--nys-font-lineheight-ui-md, 24px);\n --_nys-modal-font-family: var(\n --nys-font-family-ui,\n var(\n --nys-font-family-sans,\n \"Proxima Nova\",\n \"Helvetica Neue\",\n \"Helvetica\",\n \"Arial\",\n sans-serif\n )\n );\n }\n\n /*** CSS & Slot resets ***/\n * {\n box-sizing: border-box;\n }\n\n ::slotted(p) {\n margin: 0 !important;\n }\n\n h2,\n p {\n flex: 1;\n margin: 0;\n margin-bottom: 0;\n }\n\n /*** Modal Overlay (black transparent background) ***/\n .nys-modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n background: var(--_nys-modal-background-color--overlay);\n }\n\n /*** Base ***/\n .nys-modal {\n display: flex;\n flex-direction: column;\n margin: var(--_nys-modal-margin);\n padding: var(--_nys-modal-padding);\n gap: var(--_nys-modal-gap);\n width: var(--_nys-modal-width);\n min-width: var(--_nys-modal-min-width);\n border-radius: var(--_nys-modal-border-radius);\n border: var(--_nys-modal-border-width) solid var(--_nys-modal-border-color);\n font-family: var(--_nys-modal-font-family);\n font-size: var(--_nys-modal-font-size);\n line-height: var(--_nys-modal-line-height);\n background: var(--_nys-modal-background-color);\n position: relative;\n z-index: 10000;\n }\n\n /*** Modal Header ***/\n .nys-modal_header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--_nys-modal-gap--header);\n }\n\n .nys-modal_header p {\n font-weight: var(--_nys-modal-font-weight--subheader);\n }\n\n .nys-modal_header-inner {\n display: flex;\n align-items: center;\n width: 100%;\n font-weight: var(--_nys-modal-font-weight--header);\n }\n\n /*** Modal Body ***/\n .nys-modal_body {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .nys-modal_body-inner {\n overflow: auto;\n width: 100%;\n max-height: 45vh;\n }\n\n .nys-modal_body.hidden {\n display: none;\n }\n\n /*** Modal Footer (i.e. where the button slot is) ***/\n .nys-modal_footer ::slotted(*) {\n display: flex;\n flex-direction: column-reverse;\n justify-content: center;\n gap: var(--_nys-modal-gap--footer);\n align-self: stretch;\n }\n\n .nys-modal_footer.hidden ::slotted(*) {\n display: none;\n }\n\n @media (min-width: 480px) {\n .nys-modal_body-inner {\n max-height: 25vh;\n }\n .nys-modal_footer ::slotted(*) {\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n }\n }\n`;\n","import { LitElement, html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport styles from \"./nys-modal.styles\";\n\nlet componentIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysModal extends LitElement {\n @property({ type: String }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: String }) subheading = \"\";\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: Boolean, reflect: true }) mandatory = false;\n\n private static readonly VALID_WIDTHS = [\"sm\", \"md\", \"lg\"] as const;\n private _width: (typeof NysModal.VALID_WIDTHS)[number] = \"md\";\n @property({ reflect: true })\n get width(): (typeof NysModal.VALID_WIDTHS)[number] {\n return this._width;\n }\n set width(value: string) {\n this._width = NysModal.VALID_WIDTHS.includes(\n value as (typeof NysModal.VALID_WIDTHS)[number],\n )\n ? (value as (typeof NysModal.VALID_WIDTHS)[number])\n : \"md\";\n }\n\n private _actionButtonSlot: HTMLSlotElement | null = null; // cache action button slots (if given) so we can manipulate their widths for mobile vs desktop\n private _prevFocusedElement: HTMLElement | null = null;\n private _originalBodyOverflow: string | null = null;\n\n // Track slot contents to control what HTML is rendered\n @state() private hasBodySlots = false;\n @state() private hasActionSlots = false;\n\n static styles = styles;\n\n /**************** Lifecycle Methods ****************/\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-{{componentName}}-${Date.now()}-${componentIdCounter++}`;\n }\n window.addEventListener(\"resize\", () => this._updateSlottedButtonWidth());\n window.addEventListener(\"keydown\", (e) => this._handleKeydown(e));\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._restoreBodyScroll(); // make sure scroll is restored when modal is removed\n window.removeEventListener(\"keydown\", (e) => this._handleKeydown(e));\n }\n\n firstUpdated() {\n this._handleBodySlotChange();\n this._handleActionSlotChange();\n }\n\n async updated(changeProps: Map<string, any>) {\n // Hide main body's scroll bar if modal is open/active\n if (changeProps.has(\"open\")) {\n if (this.open) {\n this._hideBodyScroll();\n this._dispatchOpenEvent();\n await this.updateComplete;\n this._savePrevFocused();\n this._focusOnModal();\n this._updateDismissAria();\n } else {\n this._restorePrevFocused();\n this._restoreBodyScroll();\n this._dispatchCloseEvent();\n this._updateDismissAria();\n }\n }\n }\n\n /******************** Functions ********************/\n private _hideBodyScroll() {\n if (this._originalBodyOverflow === null) {\n this._originalBodyOverflow = document.body.style.overflow;\n }\n document.body.style.overflow = \"hidden\";\n }\n\n private _restoreBodyScroll() {\n if (this._originalBodyOverflow !== null) {\n document.body.style.overflow = this._originalBodyOverflow;\n this._originalBodyOverflow = null;\n }\n }\n\n private _savePrevFocused() {\n this._prevFocusedElement = document.activeElement as HTMLElement;\n }\n\n private _focusOnModal() {\n const modal = this.shadowRoot?.querySelector<HTMLElement>(\".nys-modal\");\n modal?.focus();\n }\n\n private async _restorePrevFocused() {\n const prev = this._prevFocusedElement;\n\n if (prev && prev.tagName.toLowerCase() === \"nys-button\") {\n const innerBtn = await (prev as any).getButtonElement();\n if (innerBtn) {\n innerBtn.focus();\n return;\n }\n } else {\n this._prevFocusedElement?.focus();\n }\n this._prevFocusedElement = null;\n }\n\n // Check if the slot contains stuff (aka user add texts & action buttons), and render visibility accordingly\n private async _handleBodySlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) return;\n this.hasBodySlots = slot\n .assignedNodes({ flatten: true })\n .some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE || node.textContent?.trim(),\n );\n }\n\n // Determines whether we hide the action buttons slot container based on if user put in action buttons\n private async _handleActionSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\n 'slot[name=\"actions\"]',\n );\n if (!slot) return;\n this.hasActionSlots = slot\n .assignedNodes({ flatten: true })\n .some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE || node.textContent?.trim(),\n );\n\n // Cached the action button slot container so we can use it continuously for _updateSlottedButtonWidth() during screen resize\n this._actionButtonSlot = slot;\n // Update button widths immediately\n this._updateSlottedButtonWidth();\n }\n\n // Design has it that the slotted action buttons should be fullWidth and display:column direction for mobile view.\n // Therefore, we need to account for mobile size and screen resizes\n private _updateSlottedButtonWidth() {\n if (!this._actionButtonSlot) return; // use the cached variable\n const isMobile = window.innerWidth <= 480;\n\n this._actionButtonSlot.assignedElements().forEach((el) => {\n el.querySelectorAll(\"nys-button\").forEach((btn) => {\n if (isMobile) {\n btn?.setAttribute(\"fullWidth\", \"\");\n } else {\n btn?.removeAttribute(\"fullWidth\");\n }\n });\n });\n }\n\n private _dispatchOpenEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-open\", {\n detail: { id: this.id },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _dispatchCloseEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-close\", {\n detail: { id: this.id },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _getAriaDescribedBy() {\n // Handling what aria-describedby needs to announce in VO based on if the subheading or slot contents exists\n const ariaDescriptions: string[] = [];\n if (this.subheading) {\n ariaDescriptions.push(`${this.id}-subheading`);\n }\n if (this.hasBodySlots) {\n ariaDescriptions.push(`${this.id}-desc`);\n }\n return ariaDescriptions.join(\" \");\n }\n\n /**\n * This exist to prevent the VO for dismiss button from announcing itself between the heading & subheading/slot content.\n * We add the \"Close this window\" ariaLabel after the initial VO is done\n */\n private _updateDismissAria() {\n const dismissBtn = this.shadowRoot?.querySelector(\"nys-button\");\n if (!dismissBtn) return;\n\n // Hide from VO initially\n dismissBtn.setAttribute(\"ariaLabel\", \" \");\n\n if (this.open) {\n // After focus is moved into modal, update label\n setTimeout(() => {\n dismissBtn.setAttribute(\"ariaLabel\", \"Close this window\");\n }, 100);\n }\n }\n\n /****************** Event Handlers ******************/\n private async _handleKeydown(e: KeyboardEvent) {\n if (!this.open) return;\n\n /** Exit the modal for \"escape\" key **/\n if (e.key === \"Escape\" && !this.mandatory) {\n e.preventDefault();\n this._closeModal();\n }\n\n /** Trap focus to be within the modal only **/\n if (e.key === \"Tab\") {\n const modal = this.shadowRoot?.querySelector(\".nys-modal\");\n if (!modal) return;\n\n // Gather all elements from slots + dismissible btn\n const knownFocusableElements =\n 'a[href], area[href], button:not([disabled]), details, iframe, object, input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [contentEditable=\"true\"], [tabindex]:not([tabindex^=\"-\"])';\n const focusableElements: HTMLElement[] = [];\n const dismissBtn = modal.querySelector(\"nys-button\") as HTMLElement;\n\n if (dismissBtn) {\n focusableElements.push(dismissBtn);\n }\n\n // Gather from slot elements to store the focusable elements for trapping\n const slotElements = Array.from(modal.querySelectorAll(\"slot\"));\n for (const slot of slotElements) {\n const assigned = slot.assignedElements({ flatten: true });\n for (const el of assigned) {\n if (el instanceof HTMLElement && el.matches(knownFocusableElements)) {\n focusableElements.push(el);\n }\n // also account for the action slot container that has nys-buttons\n el.querySelectorAll<HTMLElement>(\"nys-button\").forEach(\n (actionBtn) => {\n focusableElements.push(actionBtn);\n },\n );\n }\n }\n\n if (focusableElements.length > 0) {\n // Laying out the starting (i.e. dismiss btn) and ending elements for looping focus elements\n const firstFocusableEl = focusableElements[0];\n const lastFocusableEl = focusableElements[focusableElements.length - 1];\n let active = document.activeElement as HTMLElement | null;\n let activeIndex = focusableElements.indexOf(active as HTMLElement);\n\n /**\n * Move focus backward when Shift+Tab is pressed.\n * Focus goes to the previous element in focusableElements.\n * If currently at the first element, wrap around to the last element.\n * For <nys-button>, focus the internal button. For other elements, focus directly.\n */\n if (e.shiftKey) {\n e.preventDefault();\n\n let prevIndex = activeIndex - 1;\n if (prevIndex < 0) {\n prevIndex = focusableElements.length - 1; // wrap back to lastFocusableEl\n }\n\n const prevElement = focusableElements[prevIndex];\n const isNysButton =\n focusableElements[prevIndex].tagName.toLowerCase() === \"nys-button\";\n\n if (isNysButton) {\n const innerBtn = await (prevElement as any).getButtonElement();\n innerBtn?.focus();\n } else {\n prevElement.focus();\n }\n } else {\n // Tab (go back to first focusable element if we're at last)\n if (active === lastFocusableEl) {\n e.preventDefault();\n if (firstFocusableEl.tagName.toLowerCase() === \"nys-button\") {\n const innerBtn = await (\n firstFocusableEl as any\n ).getButtonElement();\n innerBtn?.focus();\n } else {\n firstFocusableEl.focus();\n }\n }\n }\n }\n }\n }\n\n private _closeModal() {\n this.open = false;\n this._dispatchCloseEvent();\n }\n\n render() {\n return this.open\n ? html`<div\n id=${this.id}\n class=\"nys-modal-overlay\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"${this.id}-heading\"\n aria-describedby=\"${this._getAriaDescribedBy()}\"\n >\n <div class=\"nys-modal\" tabindex=\"-1\">\n <div class=\"nys-modal_header\">\n <div class=\"nys-modal_header-inner\">\n <h2 id=\"${this.id}-heading\">${this.heading}</h2>\n ${!this.mandatory\n ? html`<nys-button\n circle\n icon=\"close\"\n variant=\"ghost\"\n .onClick=${() => this._closeModal()}\n ></nys-button>`\n : \"\"}\n </div>\n ${this.subheading\n ? html`<p id=\"${this.id}-subheading\">${this.subheading}</p>`\n : \"\"}\n </div>\n\n <div\n id=\"${this.id}-desc\"\n class=\"nys-modal_body ${!this.hasBodySlots ? \"hidden\" : \"\"}\"\n >\n <div class=\"nys-modal_body-inner\">\n <slot @slotchange=${this._handleBodySlotChange}></slot>\n </div>\n </div>\n\n <div\n class=\"nys-modal_footer ${!this.hasActionSlots ? \"hidden\" : \"\"}\"\n >\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionSlotChange}\n ></slot>\n </div>\n </div>\n </div>`\n : \"\";\n }\n}\n\nif (!customElements.get(\"nys-modal\")) {\n customElements.define(\"nys-modal\", NysModal);\n}\n"],"names":["t","e","s","o","n$2","r","n","S","c","i","h","a","l","p","d","u","f","y","b","_a","styles","css","componentIdCounter","_NysModal","LitElement","value","changeProps","modal","prev","innerBtn","slot","node","isMobile","el","btn","ariaDescriptions","dismissBtn","knownFocusableElements","focusableElements","slotElements","assigned","actionBtn","firstFocusableEl","lastFocusableEl","active","activeIndex","prevIndex","prevElement","html","__decorateClass","property","state","NysModal"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"nys-modal.js","sources":["../../../node_modules/@lit/reactive-element/css-tag.js","../../../node_modules/@lit/reactive-element/reactive-element.js","../../../node_modules/@lit/reactive-element/decorators/property.js","../../../node_modules/@lit/reactive-element/decorators/state.js","../src/nys-modal.styles.ts","../src/nys-modal.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import { css } from \"lit\";\n\nexport default css`\n :host {\n /* Global Modal Styles */\n --_nys-modal-width: 480px;\n --_nys-modal-min-width: 320px;\n --_nys-modal-border-radius: var(--nys-radius-lg, 8px);\n --_nys-modal-border-color: var(--nys-color-neutral-200, #bec0c1);\n --_nys-modal-border-width: 1px;\n --_nys-modal-background-color: var(--nys-color-surface, #fff);\n --_nys-modal-margin: var(--nys-space-250, 20px);\n --_nys-modal-padding: var(--nys-space-300, 24px);\n --_nys-modal-gap: var(--nys-space-200, 16px);\n\n /* Modal Overlay */\n --_nys-modal-background-color--overlay: var(\n --nys-color-black-transparent-700,\n rgba(27, 27, 27, 0.7)\n );\n\n /* Modal Header */\n --_nys-modal-gap--header: var(--nys-space-100, 8px);\n\n /* Modal Footer */\n --_nys-modal-gap--footer: var(--nys-space-250, 20px);\n\n /* Typography */\n --_nys-modal-font-size: var(--nys-font-size-ui-md, 16px);\n --_nys-modal-font-weight--header: var(--nys-font-weight-bold, 700);\n --_nys-modal-font-weight--subheader: var(--nys-font-weight-regular, 400);\n --_nys-modal-line-height: var(--nys-font-lineheight-ui-md, 24px);\n --_nys-modal-font-family: var(\n --nys-font-family-ui,\n var(\n --nys-font-family-sans,\n \"Proxima Nova\",\n \"Helvetica Neue\",\n \"Helvetica\",\n \"Arial\",\n sans-serif\n )\n );\n }\n\n /*** CSS & Slot resets ***/\n * {\n box-sizing: border-box;\n }\n\n ::slotted(p) {\n margin: 0 !important;\n }\n\n h2,\n p {\n flex: 1;\n margin: 0;\n margin-bottom: 0;\n }\n\n /*** Modal Overlay (black transparent background) ***/\n .nys-modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n background: var(--_nys-modal-background-color--overlay);\n }\n\n /*** Base ***/\n .nys-modal {\n display: flex;\n flex-direction: column;\n margin: var(--_nys-modal-margin);\n padding: var(--_nys-modal-padding);\n gap: var(--_nys-modal-gap);\n width: var(--_nys-modal-width);\n min-width: var(--_nys-modal-min-width);\n border-radius: var(--_nys-modal-border-radius);\n border: var(--_nys-modal-border-width) solid var(--_nys-modal-border-color);\n font-family: var(--_nys-modal-font-family);\n font-size: var(--_nys-modal-font-size);\n line-height: var(--_nys-modal-line-height);\n background: var(--_nys-modal-background-color);\n position: relative;\n z-index: 10000;\n }\n\n /*** Modal Header ***/\n .nys-modal_header {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--_nys-modal-gap--header);\n }\n\n .nys-modal_header p {\n font-weight: var(--_nys-modal-font-weight--subheader);\n }\n\n .nys-modal_header-inner {\n display: flex;\n align-items: center;\n width: 100%;\n font-weight: var(--_nys-modal-font-weight--header);\n }\n\n /*** Modal Body ***/\n .nys-modal_body {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n }\n\n .nys-modal_body-inner {\n overflow: auto;\n width: 100%;\n max-height: 45vh;\n }\n\n .nys-modal_body.hidden {\n display: none;\n }\n\n /*** Modal Footer (i.e. where the button slot is) ***/\n .nys-modal_footer ::slotted(*) {\n display: flex;\n flex-direction: column-reverse;\n justify-content: center;\n gap: var(--_nys-modal-gap--footer);\n align-self: stretch;\n }\n\n .nys-modal_footer.hidden ::slotted(*) {\n display: none;\n }\n\n @media (min-width: 480px) {\n .nys-modal_body-inner {\n max-height: 25vh;\n }\n .nys-modal_footer ::slotted(*) {\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n }\n }\n`;\n","import { LitElement, html } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport styles from \"./nys-modal.styles\";\n\nlet componentIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysModal extends LitElement {\n @property({ type: String }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: String }) subheading = \"\";\n @property({ type: Boolean, reflect: true }) open = false;\n @property({ type: Boolean, reflect: true }) mandatory = false;\n\n private static readonly VALID_WIDTHS = [\"sm\", \"md\", \"lg\"] as const;\n private _width: (typeof NysModal.VALID_WIDTHS)[number] = \"md\";\n @property({ reflect: true })\n get width(): (typeof NysModal.VALID_WIDTHS)[number] {\n return this._width;\n }\n set width(value: string) {\n this._width = NysModal.VALID_WIDTHS.includes(\n value as (typeof NysModal.VALID_WIDTHS)[number],\n )\n ? (value as (typeof NysModal.VALID_WIDTHS)[number])\n : \"md\";\n }\n\n private _actionButtonSlot: HTMLSlotElement | null = null; // cache action button slots (if given) so we can manipulate their widths for mobile vs desktop\n private _prevFocusedElement: HTMLElement | null = null;\n private _originalBodyOverflow: string | null = null;\n\n // Track slot contents to control what HTML is rendered\n @state() private hasBodySlots = false;\n @state() private hasActionSlots = false;\n\n static styles = styles;\n\n /**************** Lifecycle Methods ****************/\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = `nys-{{componentName}}-${Date.now()}-${componentIdCounter++}`;\n }\n window.addEventListener(\"resize\", () => this._updateSlottedButtonWidth());\n window.addEventListener(\"keydown\", (e) => this._handleKeydown(e));\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._restoreBodyScroll(); // make sure scroll is restored when modal is removed\n window.removeEventListener(\"keydown\", (e) => this._handleKeydown(e));\n }\n\n firstUpdated() {\n this._handleBodySlotChange();\n this._handleActionSlotChange();\n }\n\n async updated(changeProps: Map<string, any>) {\n // Hide main body's scroll bar if modal is open/active\n if (changeProps.has(\"open\")) {\n if (this.open) {\n this._hideBodyScroll();\n this._dispatchOpenEvent();\n await this.updateComplete;\n this._savePrevFocused();\n this._focusOnModal();\n this._updateDismissAria();\n } else {\n this._restorePrevFocused();\n this._restoreBodyScroll();\n this._dispatchCloseEvent();\n this._updateDismissAria();\n }\n }\n }\n\n /******************** Functions ********************/\n private _hideBodyScroll() {\n if (this._originalBodyOverflow === null) {\n this._originalBodyOverflow = document.body.style.overflow;\n }\n document.body.style.overflow = \"hidden\";\n }\n\n private _restoreBodyScroll() {\n if (this._originalBodyOverflow !== null) {\n document.body.style.overflow = this._originalBodyOverflow;\n this._originalBodyOverflow = null;\n }\n }\n\n private _savePrevFocused() {\n this._prevFocusedElement = document.activeElement as HTMLElement;\n }\n\n private _focusOnModal() {\n const modal = this.shadowRoot?.querySelector<HTMLElement>(\".nys-modal\");\n modal?.focus();\n }\n\n private async _restorePrevFocused() {\n const prev = this._prevFocusedElement;\n\n if (prev && prev.tagName.toLowerCase() === \"nys-button\") {\n const innerBtn = await (prev as any).getButtonElement();\n if (innerBtn) {\n innerBtn.focus();\n return;\n }\n } else {\n this._prevFocusedElement?.focus();\n }\n this._prevFocusedElement = null;\n }\n\n // Check if the slot contains stuff (aka user add texts & action buttons), and render visibility accordingly\n private async _handleBodySlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\"slot\");\n if (!slot) return;\n this.hasBodySlots = slot\n .assignedNodes({ flatten: true })\n .some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE || node.textContent?.trim(),\n );\n }\n\n // Determines whether we hide the action buttons slot container based on if user put in action buttons\n private async _handleActionSlotChange() {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>(\n 'slot[name=\"actions\"]',\n );\n if (!slot) return;\n this.hasActionSlots = slot\n .assignedNodes({ flatten: true })\n .some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE || node.textContent?.trim(),\n );\n\n // Cached the action button slot container so we can use it continuously for _updateSlottedButtonWidth() during screen resize\n this._actionButtonSlot = slot;\n // Update button widths immediately\n this._updateSlottedButtonWidth();\n }\n\n // Design has it that the slotted action buttons should be fullWidth and display:column direction for mobile view.\n // Therefore, we need to account for mobile size and screen resizes\n private _updateSlottedButtonWidth() {\n if (!this._actionButtonSlot) return; // use the cached variable\n const isMobile = window.innerWidth <= 480;\n\n this._actionButtonSlot.assignedElements().forEach((el) => {\n el.querySelectorAll(\"nys-button\").forEach((btn) => {\n if (isMobile) {\n btn?.setAttribute(\"fullWidth\", \"\");\n } else {\n btn?.removeAttribute(\"fullWidth\");\n }\n });\n });\n }\n\n private _dispatchOpenEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-open\", {\n detail: { id: this.id },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _dispatchCloseEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-close\", {\n detail: { id: this.id },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _getAriaDescribedBy() {\n // Handling what aria-describedby needs to announce in VO based on if the subheading or slot contents exists\n const ariaDescriptions: string[] = [];\n if (this.subheading) {\n ariaDescriptions.push(`${this.id}-subheading`);\n }\n if (this.hasBodySlots) {\n ariaDescriptions.push(`${this.id}-desc`);\n }\n return ariaDescriptions.join(\" \");\n }\n\n /**\n * This exist to prevent the VO for dismiss button from announcing itself between the heading & subheading/slot content.\n * We add the \"Close this window\" ariaLabel after the initial VO is done\n */\n private _updateDismissAria() {\n const dismissBtn = this.shadowRoot?.querySelector(\"nys-button\");\n if (!dismissBtn) return;\n\n // Hide from VO initially\n dismissBtn.setAttribute(\"ariaLabel\", \" \");\n\n if (this.open) {\n // After focus is moved into modal, update label\n setTimeout(() => {\n dismissBtn.setAttribute(\"ariaLabel\", \"Close this window\");\n }, 100);\n }\n }\n\n /****************** Event Handlers ******************/\n private async _handleKeydown(e: KeyboardEvent) {\n if (!this.open) return;\n\n /** Exit the modal for \"escape\" key **/\n if (e.key === \"Escape\" && !this.mandatory) {\n e.preventDefault();\n this._closeModal();\n }\n\n /** Trap focus to be within the modal only **/\n if (e.key === \"Tab\") {\n const modal = this.shadowRoot?.querySelector(\".nys-modal\");\n if (!modal) return;\n\n // Gather all elements from slots + dismissible btn\n const knownFocusableElements =\n 'a[href], area[href], button:not([disabled]), details, iframe, object, input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [contentEditable=\"true\"], [tabindex]:not([tabindex^=\"-\"])';\n const focusableElements: HTMLElement[] = [];\n const dismissBtn = modal.querySelector(\"nys-button\") as HTMLElement;\n\n if (dismissBtn) {\n focusableElements.push(dismissBtn);\n }\n\n // Gather from slot elements to store the focusable elements for trapping\n const slotElements = Array.from(modal.querySelectorAll(\"slot\"));\n for (const slot of slotElements) {\n const assigned = slot.assignedElements({ flatten: true });\n for (const el of assigned) {\n if (el instanceof HTMLElement && el.matches(knownFocusableElements)) {\n focusableElements.push(el);\n }\n // also account for the action slot container that has nys-buttons\n el.querySelectorAll<HTMLElement>(\"nys-button\").forEach(\n (actionBtn) => {\n focusableElements.push(actionBtn);\n },\n );\n }\n }\n\n if (focusableElements.length > 0) {\n // Laying out the starting (i.e. dismiss btn) and ending elements for looping focus elements\n const firstFocusableEl = focusableElements[0];\n const lastFocusableEl = focusableElements[focusableElements.length - 1];\n let active = document.activeElement as HTMLElement | null;\n let activeIndex = focusableElements.indexOf(active as HTMLElement);\n\n /**\n * Move focus backward when Shift+Tab is pressed.\n * Focus goes to the previous element in focusableElements.\n * If currently at the first element, wrap around to the last element.\n * For <nys-button>, focus the internal button. For other elements, focus directly.\n */\n if (e.shiftKey) {\n e.preventDefault();\n\n let prevIndex = activeIndex - 1;\n if (prevIndex < 0) {\n prevIndex = focusableElements.length - 1; // wrap back to lastFocusableEl\n }\n\n const prevElement = focusableElements[prevIndex];\n const isNysButton =\n focusableElements[prevIndex].tagName.toLowerCase() === \"nys-button\";\n\n if (isNysButton) {\n const innerBtn = await (prevElement as any).getButtonElement();\n innerBtn?.focus();\n } else {\n prevElement.focus();\n }\n } else {\n // Tab (go back to first focusable element if we're at last)\n if (active === lastFocusableEl) {\n e.preventDefault();\n if (firstFocusableEl.tagName.toLowerCase() === \"nys-button\") {\n const innerBtn = await (\n firstFocusableEl as any\n ).getButtonElement();\n innerBtn?.focus();\n } else {\n firstFocusableEl.focus();\n }\n }\n }\n }\n }\n }\n\n private _closeModal() {\n this.open = false;\n this._dispatchCloseEvent();\n }\n\n render() {\n return this.open\n ? html`<div\n id=${this.id}\n class=\"nys-modal-overlay\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"${this.id}-heading\"\n aria-describedby=\"${this._getAriaDescribedBy()}\"\n >\n <div class=\"nys-modal\" tabindex=\"-1\">\n <div class=\"nys-modal_header\">\n <div class=\"nys-modal_header-inner\">\n <h2 id=\"${this.id}-heading\">${this.heading}</h2>\n ${!this.mandatory\n ? html`<nys-button\n id=\"dismiss-modal\"\n circle\n icon=\"close\"\n variant=\"ghost\"\n @nys-click=${this._closeModal}\n ></nys-button>`\n : \"\"}\n </div>\n ${this.subheading\n ? html`<p id=\"${this.id}-subheading\">${this.subheading}</p>`\n : \"\"}\n </div>\n\n <div\n id=\"${this.id}-desc\"\n class=\"nys-modal_body ${!this.hasBodySlots ? \"hidden\" : \"\"}\"\n >\n <div class=\"nys-modal_body-inner\">\n <slot @slotchange=${this._handleBodySlotChange}></slot>\n </div>\n </div>\n\n <div\n class=\"nys-modal_footer ${!this.hasActionSlots ? \"hidden\" : \"\"}\"\n >\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionSlotChange}\n ></slot>\n </div>\n </div>\n </div>`\n : \"\";\n }\n}\n\nif (!customElements.get(\"nys-modal\")) {\n customElements.define(\"nys-modal\", NysModal);\n}\n"],"names":["t","e","s","o","n$2","r","n","S","c","i","h","a","l","p","d","u","f","b","y","styles","css","componentIdCounter","_NysModal","_a","LitElement","value","changeProps","prev","innerBtn","slot","node","isMobile","el","btn","ariaDescriptions","dismissBtn","modal","knownFocusableElements","focusableElements","slotElements","assigned","actionBtn","firstFocusableEl","lastFocusableEl","active","activeIndex","prevIndex","prevElement","html","__decorateClass","property","state","NysModal"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nysds/nys-modal",
3
- "version": "1.10.1",
3
+ "version": "1.11.0",
4
4
  "description": "The Modal component from the NYS Design System.",
5
5
  "module": "dist/nys-modal.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,16 +21,13 @@
21
21
  "build:watch": "tsc --emitDeclarationOnly && vite build --watch",
22
22
  "test:watch": "vite build && wtr --watch"
23
23
  },
24
- "peerDependencies": {
25
- "lit": "^3.2.1"
26
- },
27
24
  "dependencies": {
28
- "@nysds/nys-button": "^1.10.1"
25
+ "@nysds/nys-button": "^1.11.0"
29
26
  },
30
27
  "devDependencies": {
31
28
  "lit": "^3.2.1",
32
29
  "typescript": "^5.7.2",
33
- "vite": "^6.3.6"
30
+ "vite": "^7.1.2"
34
31
  },
35
32
  "keywords": [
36
33
  "new-york-state",