@nysds/nys-accordion 1.7.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.
@@ -0,0 +1,2 @@
1
+ export * from "./nys-accordion";
2
+ export * from "./nys-accordionitem";
@@ -0,0 +1,22 @@
1
+ import { LitElement } from "lit";
2
+ import "./nys-accordionitem";
3
+ /**
4
+ * The "nys-accordion" is the wrapper that groups individual accordion items within it.
5
+ * The items within is called "nys-accordionitem"
6
+ */
7
+ export declare class NysAccordion extends LitElement {
8
+ id: string;
9
+ singleSelect: boolean;
10
+ bordered: boolean;
11
+ static styles: import("lit").CSSResult;
12
+ /**************** Lifecycle Methods ****************/
13
+ constructor();
14
+ connectedCallback(): void;
15
+ updated(changedProperties: Map<string, any>): void;
16
+ /******************** Functions ********************/
17
+ private _generateUniqueId;
18
+ private _getAccordions;
19
+ private _onAccordionToggle;
20
+ private _applyBordered;
21
+ render(): import("lit-html").TemplateResult<1>;
22
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,630 @@
1
+ import { css as R, LitElement as U, html as A } from "lit";
2
+ /*!
3
+ * ▒█▄░▒█ ▒█░░▒█ ▒█▀▀▀█ ▒█▀▀▄ ▒█▀▀▀█
4
+ * ▒█▒█▒█ ▒█▄▄▄█ ░▀▀▀▄▄ ▒█░▒█ ░▀▀▀▄▄
5
+ * ▒█░░▀█ ░░▒█░░ ▒█▄▄▄█ ▒█▄▄▀ ▒█▄▄▄█
6
+ *
7
+ * Accordion Component
8
+ * Part of the New York State Design System
9
+ * Repository: https://github.com/its-hcd/nysds
10
+ * License: MIT
11
+ */
12
+ /**
13
+ * @license
14
+ * Copyright 2019 Google LLC
15
+ * SPDX-License-Identifier: BSD-3-Clause
16
+ */
17
+ const f = globalThis, m = f.ShadowRoot && (f.ShadyCSS === void 0 || f.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, k = Symbol(), x = /* @__PURE__ */ new WeakMap();
18
+ let z = class {
19
+ constructor(e, t, i) {
20
+ if (this._$cssResult$ = !0, i !== k) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
21
+ this.cssText = e, this.t = t;
22
+ }
23
+ get styleSheet() {
24
+ let e = this.o;
25
+ const t = this.t;
26
+ if (m && e === void 0) {
27
+ const i = t !== void 0 && t.length === 1;
28
+ i && (e = x.get(t)), e === void 0 && ((this.o = e = new CSSStyleSheet()).replaceSync(this.cssText), i && x.set(t, e));
29
+ }
30
+ return e;
31
+ }
32
+ toString() {
33
+ return this.cssText;
34
+ }
35
+ };
36
+ const T = (s) => new z(typeof s == "string" ? s : s + "", void 0, k), M = (s, e) => {
37
+ if (m) s.adoptedStyleSheets = e.map((t) => t instanceof CSSStyleSheet ? t : t.styleSheet);
38
+ else for (const t of e) {
39
+ const i = document.createElement("style"), n = f.litNonce;
40
+ n !== void 0 && i.setAttribute("nonce", n), i.textContent = t.cssText, s.appendChild(i);
41
+ }
42
+ }, w = m ? (s) => s : (s) => s instanceof CSSStyleSheet ? ((e) => {
43
+ let t = "";
44
+ for (const i of e.cssRules) t += i.cssText;
45
+ return T(t);
46
+ })(s) : s;
47
+ /**
48
+ * @license
49
+ * Copyright 2017 Google LLC
50
+ * SPDX-License-Identifier: BSD-3-Clause
51
+ */
52
+ const { is: j, defineProperty: q, getOwnPropertyDescriptor: I, getOwnPropertyNames: L, getOwnPropertySymbols: B, getPrototypeOf: D } = Object, c = globalThis, P = c.trustedTypes, H = P ? P.emptyScript : "", v = c.reactiveElementPolyfillSupport, u = (s, e) => s, _ = { toAttribute(s, e) {
53
+ switch (e) {
54
+ case Boolean:
55
+ s = s ? H : null;
56
+ break;
57
+ case Object:
58
+ case Array:
59
+ s = s == null ? s : JSON.stringify(s);
60
+ }
61
+ return s;
62
+ }, fromAttribute(s, e) {
63
+ let t = s;
64
+ switch (e) {
65
+ case Boolean:
66
+ t = s !== null;
67
+ break;
68
+ case Number:
69
+ t = s === null ? null : Number(s);
70
+ break;
71
+ case Object:
72
+ case Array:
73
+ try {
74
+ t = JSON.parse(s);
75
+ } catch {
76
+ t = null;
77
+ }
78
+ }
79
+ return t;
80
+ } }, b = (s, e) => !j(s, e), C = { attribute: !0, type: String, converter: _, reflect: !1, hasChanged: b };
81
+ Symbol.metadata ?? (Symbol.metadata = Symbol("metadata")), c.litPropertyMetadata ?? (c.litPropertyMetadata = /* @__PURE__ */ new WeakMap());
82
+ class p extends HTMLElement {
83
+ static addInitializer(e) {
84
+ this._$Ei(), (this.l ?? (this.l = [])).push(e);
85
+ }
86
+ static get observedAttributes() {
87
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
88
+ }
89
+ static createProperty(e, t = C) {
90
+ if (t.state && (t.attribute = !1), this._$Ei(), this.elementProperties.set(e, t), !t.noAccessor) {
91
+ const i = Symbol(), n = this.getPropertyDescriptor(e, i, t);
92
+ n !== void 0 && q(this.prototype, e, n);
93
+ }
94
+ }
95
+ static getPropertyDescriptor(e, t, i) {
96
+ const { get: n, set: o } = I(this.prototype, e) ?? { get() {
97
+ return this[t];
98
+ }, set(r) {
99
+ this[t] = r;
100
+ } };
101
+ return { get() {
102
+ return n == null ? void 0 : n.call(this);
103
+ }, set(r) {
104
+ const a = n == null ? void 0 : n.call(this);
105
+ o.call(this, r), this.requestUpdate(e, a, i);
106
+ }, configurable: !0, enumerable: !0 };
107
+ }
108
+ static getPropertyOptions(e) {
109
+ return this.elementProperties.get(e) ?? C;
110
+ }
111
+ static _$Ei() {
112
+ if (this.hasOwnProperty(u("elementProperties"))) return;
113
+ const e = D(this);
114
+ e.finalize(), e.l !== void 0 && (this.l = [...e.l]), this.elementProperties = new Map(e.elementProperties);
115
+ }
116
+ static finalize() {
117
+ if (this.hasOwnProperty(u("finalized"))) return;
118
+ if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(u("properties"))) {
119
+ const t = this.properties, i = [...L(t), ...B(t)];
120
+ for (const n of i) this.createProperty(n, t[n]);
121
+ }
122
+ const e = this[Symbol.metadata];
123
+ if (e !== null) {
124
+ const t = litPropertyMetadata.get(e);
125
+ if (t !== void 0) for (const [i, n] of t) this.elementProperties.set(i, n);
126
+ }
127
+ this._$Eh = /* @__PURE__ */ new Map();
128
+ for (const [t, i] of this.elementProperties) {
129
+ const n = this._$Eu(t, i);
130
+ n !== void 0 && this._$Eh.set(n, t);
131
+ }
132
+ this.elementStyles = this.finalizeStyles(this.styles);
133
+ }
134
+ static finalizeStyles(e) {
135
+ const t = [];
136
+ if (Array.isArray(e)) {
137
+ const i = new Set(e.flat(1 / 0).reverse());
138
+ for (const n of i) t.unshift(w(n));
139
+ } else e !== void 0 && t.push(w(e));
140
+ return t;
141
+ }
142
+ static _$Eu(e, t) {
143
+ const i = t.attribute;
144
+ return i === !1 ? void 0 : typeof i == "string" ? i : typeof e == "string" ? e.toLowerCase() : void 0;
145
+ }
146
+ constructor() {
147
+ super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev();
148
+ }
149
+ _$Ev() {
150
+ var e;
151
+ this._$ES = new Promise((t) => this.enableUpdating = t), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), (e = this.constructor.l) == null || e.forEach((t) => t(this));
152
+ }
153
+ addController(e) {
154
+ var t;
155
+ (this._$EO ?? (this._$EO = /* @__PURE__ */ new Set())).add(e), this.renderRoot !== void 0 && this.isConnected && ((t = e.hostConnected) == null || t.call(e));
156
+ }
157
+ removeController(e) {
158
+ var t;
159
+ (t = this._$EO) == null || t.delete(e);
160
+ }
161
+ _$E_() {
162
+ const e = /* @__PURE__ */ new Map(), t = this.constructor.elementProperties;
163
+ for (const i of t.keys()) this.hasOwnProperty(i) && (e.set(i, this[i]), delete this[i]);
164
+ e.size > 0 && (this._$Ep = e);
165
+ }
166
+ createRenderRoot() {
167
+ const e = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
168
+ return M(e, this.constructor.elementStyles), e;
169
+ }
170
+ connectedCallback() {
171
+ var e;
172
+ this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (e = this._$EO) == null || e.forEach((t) => {
173
+ var i;
174
+ return (i = t.hostConnected) == null ? void 0 : i.call(t);
175
+ });
176
+ }
177
+ enableUpdating(e) {
178
+ }
179
+ disconnectedCallback() {
180
+ var e;
181
+ (e = this._$EO) == null || e.forEach((t) => {
182
+ var i;
183
+ return (i = t.hostDisconnected) == null ? void 0 : i.call(t);
184
+ });
185
+ }
186
+ attributeChangedCallback(e, t, i) {
187
+ this._$AK(e, i);
188
+ }
189
+ _$EC(e, t) {
190
+ var o;
191
+ const i = this.constructor.elementProperties.get(e), n = this.constructor._$Eu(e, i);
192
+ if (n !== void 0 && i.reflect === !0) {
193
+ const r = (((o = i.converter) == null ? void 0 : o.toAttribute) !== void 0 ? i.converter : _).toAttribute(t, i.type);
194
+ this._$Em = e, r == null ? this.removeAttribute(n) : this.setAttribute(n, r), this._$Em = null;
195
+ }
196
+ }
197
+ _$AK(e, t) {
198
+ var o;
199
+ const i = this.constructor, n = i._$Eh.get(e);
200
+ if (n !== void 0 && this._$Em !== n) {
201
+ const r = i.getPropertyOptions(n), a = typeof r.converter == "function" ? { fromAttribute: r.converter } : ((o = r.converter) == null ? void 0 : o.fromAttribute) !== void 0 ? r.converter : _;
202
+ this._$Em = n, this[n] = a.fromAttribute(t, r.type), this._$Em = null;
203
+ }
204
+ }
205
+ requestUpdate(e, t, i) {
206
+ if (e !== void 0) {
207
+ if (i ?? (i = this.constructor.getPropertyOptions(e)), !(i.hasChanged ?? b)(this[e], t)) return;
208
+ this.P(e, t, i);
209
+ }
210
+ this.isUpdatePending === !1 && (this._$ES = this._$ET());
211
+ }
212
+ P(e, t, i) {
213
+ this._$AL.has(e) || this._$AL.set(e, t), i.reflect === !0 && this._$Em !== e && (this._$Ej ?? (this._$Ej = /* @__PURE__ */ new Set())).add(e);
214
+ }
215
+ async _$ET() {
216
+ this.isUpdatePending = !0;
217
+ try {
218
+ await this._$ES;
219
+ } catch (t) {
220
+ Promise.reject(t);
221
+ }
222
+ const e = this.scheduleUpdate();
223
+ return e != null && await e, !this.isUpdatePending;
224
+ }
225
+ scheduleUpdate() {
226
+ return this.performUpdate();
227
+ }
228
+ performUpdate() {
229
+ var i;
230
+ if (!this.isUpdatePending) return;
231
+ if (!this.hasUpdated) {
232
+ if (this.renderRoot ?? (this.renderRoot = this.createRenderRoot()), this._$Ep) {
233
+ for (const [o, r] of this._$Ep) this[o] = r;
234
+ this._$Ep = void 0;
235
+ }
236
+ const n = this.constructor.elementProperties;
237
+ if (n.size > 0) for (const [o, r] of n) r.wrapped !== !0 || this._$AL.has(o) || this[o] === void 0 || this.P(o, this[o], r);
238
+ }
239
+ let e = !1;
240
+ const t = this._$AL;
241
+ try {
242
+ e = this.shouldUpdate(t), e ? (this.willUpdate(t), (i = this._$EO) == null || i.forEach((n) => {
243
+ var o;
244
+ return (o = n.hostUpdate) == null ? void 0 : o.call(n);
245
+ }), this.update(t)) : this._$EU();
246
+ } catch (n) {
247
+ throw e = !1, this._$EU(), n;
248
+ }
249
+ e && this._$AE(t);
250
+ }
251
+ willUpdate(e) {
252
+ }
253
+ _$AE(e) {
254
+ var t;
255
+ (t = this._$EO) == null || t.forEach((i) => {
256
+ var n;
257
+ return (n = i.hostUpdated) == null ? void 0 : n.call(i);
258
+ }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(e)), this.updated(e);
259
+ }
260
+ _$EU() {
261
+ this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1;
262
+ }
263
+ get updateComplete() {
264
+ return this.getUpdateComplete();
265
+ }
266
+ getUpdateComplete() {
267
+ return this._$ES;
268
+ }
269
+ shouldUpdate(e) {
270
+ return !0;
271
+ }
272
+ update(e) {
273
+ this._$Ej && (this._$Ej = this._$Ej.forEach((t) => this._$EC(t, this[t]))), this._$EU();
274
+ }
275
+ updated(e) {
276
+ }
277
+ firstUpdated(e) {
278
+ }
279
+ }
280
+ p.elementStyles = [], p.shadowRootOptions = { mode: "open" }, p[u("elementProperties")] = /* @__PURE__ */ new Map(), p[u("finalized")] = /* @__PURE__ */ new Map(), v == null || v({ ReactiveElement: p }), (c.reactiveElementVersions ?? (c.reactiveElementVersions = [])).push("2.0.4");
281
+ /**
282
+ * @license
283
+ * Copyright 2017 Google LLC
284
+ * SPDX-License-Identifier: BSD-3-Clause
285
+ */
286
+ const N = { attribute: !0, type: String, converter: _, reflect: !1, hasChanged: b }, K = (s = N, e, t) => {
287
+ const { kind: i, metadata: n } = t;
288
+ let o = globalThis.litPropertyMetadata.get(n);
289
+ if (o === void 0 && globalThis.litPropertyMetadata.set(n, o = /* @__PURE__ */ new Map()), o.set(t.name, s), i === "accessor") {
290
+ const { name: r } = t;
291
+ return { set(a) {
292
+ const g = e.get.call(this);
293
+ e.set.call(this, a), this.requestUpdate(r, g, s);
294
+ }, init(a) {
295
+ return a !== void 0 && this.P(r, void 0, s), a;
296
+ } };
297
+ }
298
+ if (i === "setter") {
299
+ const { name: r } = t;
300
+ return function(a) {
301
+ const g = this[r];
302
+ e.call(this, a), this.requestUpdate(r, g, s);
303
+ };
304
+ }
305
+ throw Error("Unsupported decorator location: " + i);
306
+ };
307
+ function l(s) {
308
+ return (e, t) => typeof t == "object" ? K(s, e, t) : ((i, n, o) => {
309
+ const r = n.hasOwnProperty(o);
310
+ return n.constructor.createProperty(o, r ? { ...i, wrapped: !0 } : i), r ? Object.getOwnPropertyDescriptor(n, o) : void 0;
311
+ })(s, e, t);
312
+ }
313
+ /**
314
+ * @license
315
+ * Copyright 2017 Google LLC
316
+ * SPDX-License-Identifier: BSD-3-Clause
317
+ */
318
+ const J = (s, e, t) => (t.configurable = !0, t.enumerable = !0, Reflect.decorate && typeof e != "object" && Object.defineProperty(s, e, t), t);
319
+ /**
320
+ * @license
321
+ * Copyright 2017 Google LLC
322
+ * SPDX-License-Identifier: BSD-3-Clause
323
+ */
324
+ function W(s, e) {
325
+ return (t, i, n) => {
326
+ const o = (r) => {
327
+ var a;
328
+ return ((a = r.renderRoot) == null ? void 0 : a.querySelector(s)) ?? null;
329
+ };
330
+ return J(t, i, { get() {
331
+ return o(this);
332
+ } });
333
+ };
334
+ }
335
+ const O = R`
336
+ :host {
337
+ /* Anything that can be overridden should be defined here */
338
+
339
+ /* Global Accordion Styles */
340
+ --_nys-accordion-width: fit-content;
341
+ --_nys-accordion-radius: var(--nys-radius-md, 4px);
342
+ --_nys-accordion-padding: var(--nys-space-200, 16px)
343
+ var(--nys-space-250, 20px);
344
+ --_nys-accordion-width-focus: var(--nys-border-width-md, 2px);
345
+ --_nys-accordion-offset-focus: var(--nys-space-2px, 2px);
346
+ --_nys-accordion-color-focus: var(--nys-color-focus, #004dd1);
347
+ --_nys-accordion-gap: var(--nys-space-100, 8px);
348
+
349
+ /* Header & Text container */
350
+ --_nys-accordion-heading-background: var(--nys-color-neutral-50, #ededed);
351
+ --_nys-accordion-heading-active-background: var(
352
+ --nys-color-neutral-100,
353
+ #d0d0ce
354
+ );
355
+ --_nys-accordion-heading-gap: var(--nys-space-200, 16px);
356
+ --_nys-accordion-content-background: var(--nys-color-ink-reverse, #fff);
357
+ --_nys-accordion-content-padding: var(--nys-space-200, 16px)
358
+ var(--local-xx-spacing-205, 20px);
359
+
360
+ /* Typography */
361
+ --_nys-accordion-font-size: var(--nys-type-size-ui-xl, 20px);
362
+ --_nys-accordion-font-weight: var(--nys-font-weight-bold, 700);
363
+ --_nys-accordion-line-height: var(--nys-font-lineheight-ui-xl, 28px);
364
+ --_nys-accordion-line-letterspacing: var(
365
+ --nys-font-letterspacing-ui-xl,
366
+ 0.017px
367
+ );
368
+ --_nys-accordion-font-family: var(
369
+ --nys-font-family-ui,
370
+ var(
371
+ --nys-font-family-sans,
372
+ "Proxima Nova",
373
+ "Helvetica Neue",
374
+ "Helvetica",
375
+ "Arial",
376
+ sans-serif
377
+ )
378
+ );
379
+ }
380
+
381
+ /* CSS Resets */
382
+ ::slotted(p),
383
+ p {
384
+ margin: 0 !important;
385
+ }
386
+
387
+ .nys-accordionitem {
388
+ font-family: var(--_nys-accordion-font-family);
389
+ font-size: var(--_nys-accordion-font-size);
390
+ font-weight: var(--_nys-accordion-font-weight);
391
+ line-height: var(--_nys-accordion-line-height);
392
+ letter-spacing: var(--_nys-accordion-line-letterspacing);
393
+ display: flex;
394
+ }
395
+
396
+ .nys-accordionitem__heading {
397
+ all: unset;
398
+ flex: 1;
399
+ gap: var(--_nys-accordion-heading-gap);
400
+ display: flex;
401
+ padding: var(--_nys-accordion-padding);
402
+ align-items: center;
403
+ align-self: stretch;
404
+ border-radius: var(--_nys-accordion-radius);
405
+ background: var(--_nys-accordion-heading-background);
406
+ cursor: pointer;
407
+ transition: 0.05s all ease-in-out;
408
+ }
409
+
410
+ .nys-accordionitem__heading:hover {
411
+ border-radius: var(--_nys-accordion-radius);
412
+ background: var(--_nys-accordion-heading-active-background);
413
+ }
414
+
415
+ .nys-accordionitem__heading:focus-visible {
416
+ outline-offset: var(--_nys-accordion-offset-focus);
417
+ outline: solid var(--_nys-accordion-width-focus)
418
+ var(--_nys-accordion-color-focus);
419
+ }
420
+
421
+ .nys-accordionitem__heading .nys-accordionitem__heading-title {
422
+ flex: 1;
423
+ }
424
+
425
+ /*** Content layer ***/
426
+ .nys-accordionitem__content {
427
+ height: 0;
428
+ overflow: hidden;
429
+ transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
430
+ visibility: hidden;
431
+ }
432
+
433
+ .nys-accordionitem__content.expanded {
434
+ /* Accordion JS code takes care of setting the exact calculated height so we can open exact px height */
435
+ visibility: visible;
436
+ }
437
+
438
+ .nys-accordionitem__content-slot-container {
439
+ display: flex;
440
+ flex-direction: column;
441
+ align-items: flex-start;
442
+ gap: var(--_nys-accordion-gap);
443
+ align-self: stretch;
444
+ padding: var(--_nys-accordion-content-padding);
445
+ background: var(--_nys-accordion-content-background);
446
+ }
447
+
448
+ .nys-accordionitem__content-slot-container-text {
449
+ max-width: 528px;
450
+ }
451
+
452
+ /*** Expanded Styling ***/
453
+ .expand-icon {
454
+ transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
455
+ }
456
+ :host([expanded]) .expand-icon {
457
+ transform: rotate(180deg);
458
+ }
459
+
460
+ /*** Bordered Styling ***/
461
+ :host([bordered][expanded]) .nys-accordionitem__heading {
462
+ border-radius: var(--_nys-accordion-radius) var(--_nys-accordion-radius) 0 0;
463
+ }
464
+
465
+ :host([bordered]) .nys-accordionitem__content-slot-container {
466
+ border: var(--nys-border-width-md, 2px) solid
467
+ var(--nys-color-neutral-50, #ededed);
468
+ border-radius: 0 0 var(--_nys-accordion-radius) var(--_nys-accordion-radius);
469
+ }
470
+
471
+ /*** Accordion Wrapper ***/
472
+ .nys-accordion {
473
+ display: flex;
474
+ flex-direction: column;
475
+ gap: var(--_nys-accordion-gap);
476
+ }
477
+ `;
478
+ var G = Object.defineProperty, y = (s, e, t, i) => {
479
+ for (var n = void 0, o = s.length - 1, r; o >= 0; o--)
480
+ (r = s[o]) && (n = r(e, t, n) || n);
481
+ return n && G(e, t, n), n;
482
+ };
483
+ let V = 0;
484
+ const E = class E extends U {
485
+ /**************** Lifecycle Methods ****************/
486
+ constructor() {
487
+ super(), this.id = "", this.heading = "", this.expanded = !1, this.bordered = !1;
488
+ }
489
+ connectedCallback() {
490
+ super.connectedCallback(), this.id || (this.id = this._generateUniqueId());
491
+ }
492
+ updated(e) {
493
+ e.has("expanded") && this._updateHeight();
494
+ }
495
+ /******************** Functions ********************/
496
+ _generateUniqueId() {
497
+ return `nys-accordionitem-${Date.now()}-${V++}`;
498
+ }
499
+ _dispatchEvent() {
500
+ this.dispatchEvent(
501
+ new CustomEvent("nys-accordionitem-toggle", {
502
+ detail: { id: this.id, heading: this.heading, expanded: this.expanded },
503
+ bubbles: !0,
504
+ composed: !0
505
+ })
506
+ );
507
+ }
508
+ _handleExpand() {
509
+ this.expanded = !this.expanded, this._updateHeight(), this._dispatchEvent();
510
+ }
511
+ _handleKeydown(e) {
512
+ (e.key === " " || e.key === "Enter") && (e.preventDefault(), this._handleExpand());
513
+ }
514
+ _updateHeight() {
515
+ if (this._contentContainer)
516
+ if (this.expanded) {
517
+ const e = this._contentContainer.scrollHeight;
518
+ this._contentContainer.style.height = `${e}px`;
519
+ } else
520
+ this._contentContainer.style.height = "0", this._contentContainer.style.overflow = "hidden";
521
+ }
522
+ render() {
523
+ const e = `${this.id}-content`;
524
+ return A`<div id=${this.id} class="nys-accordionitem">
525
+ <button
526
+ class="nys-accordionitem__heading"
527
+ type="button"
528
+ @click=${this._handleExpand}
529
+ @keydown=${this._handleKeydown}
530
+ aria-expanded=${this.expanded ? "true" : "false"}
531
+ aria-controls=${e}
532
+ >
533
+ <p class="nys-accordionitem__heading-title">${this.heading}</p>
534
+ <nys-icon class="expand-icon" name="chevron_down" size="24"></nys-icon>
535
+ </div>
536
+ <div id=${e} class="nys-accordionitem__content ${this.expanded ? "expanded" : "collapsed"}" role="region">
537
+ <div class="nys-accordionitem__content-slot-container">
538
+ <div class="nys-accordionitem__content-slot-container-text">
539
+ <slot></slot>
540
+ </div>
541
+ </div>
542
+ </div>
543
+ </div>`;
544
+ }
545
+ };
546
+ E.styles = O;
547
+ let d = E;
548
+ y([
549
+ l({ type: String })
550
+ ], d.prototype, "id");
551
+ y([
552
+ l({ type: String })
553
+ ], d.prototype, "heading");
554
+ y([
555
+ l({ type: Boolean, reflect: !0 })
556
+ ], d.prototype, "expanded");
557
+ y([
558
+ l({ type: Boolean, reflect: !0 })
559
+ ], d.prototype, "bordered");
560
+ y([
561
+ W(".nys-accordionitem__content")
562
+ ], d.prototype, "_contentContainer");
563
+ customElements.get("nys-accordionitem") || customElements.define("nys-accordionitem", d);
564
+ var F = Object.defineProperty, $ = (s, e, t, i) => {
565
+ for (var n = void 0, o = s.length - 1, r; o >= 0; o--)
566
+ (r = s[o]) && (n = r(e, t, n) || n);
567
+ return n && F(e, t, n), n;
568
+ };
569
+ let Q = 0;
570
+ const S = class S extends U {
571
+ /**************** Lifecycle Methods ****************/
572
+ constructor() {
573
+ super(), this.id = "", this.singleSelect = !1, this.bordered = !1;
574
+ }
575
+ connectedCallback() {
576
+ super.connectedCallback(), this.id || (this.id = this._generateUniqueId());
577
+ }
578
+ updated(e) {
579
+ e.has("bordered") && this._applyBordered();
580
+ }
581
+ /******************** Functions ********************/
582
+ _generateUniqueId() {
583
+ return `nys-accordionitem-${Date.now()}-${Q++}`;
584
+ }
585
+ _getAccordions() {
586
+ var i;
587
+ const e = (i = this.shadowRoot) == null ? void 0 : i.querySelector("slot");
588
+ return ((e == null ? void 0 : e.assignedElements()) || []).filter(
589
+ (n) => n.tagName.toLowerCase() === "nys-accordionitem"
590
+ );
591
+ }
592
+ _onAccordionToggle(e) {
593
+ if (!this.singleSelect) return;
594
+ const t = e.detail.id;
595
+ e.detail.expanded && this._getAccordions().forEach((n) => {
596
+ n.id !== t && n.expanded && (n.expanded = !1);
597
+ });
598
+ }
599
+ _applyBordered() {
600
+ this._getAccordions().forEach((e) => {
601
+ e.bordered = this.bordered;
602
+ });
603
+ }
604
+ render() {
605
+ return A`<div
606
+ id=${this.id}
607
+ class="nys-accordion"
608
+ @nys-accordionitem-toggle=${this._onAccordionToggle}
609
+ >
610
+ <slot></slot>
611
+ </div>`;
612
+ }
613
+ };
614
+ S.styles = O;
615
+ let h = S;
616
+ $([
617
+ l({ type: String })
618
+ ], h.prototype, "id");
619
+ $([
620
+ l({ type: Boolean, reflect: !0 })
621
+ ], h.prototype, "singleSelect");
622
+ $([
623
+ l({ type: Boolean, reflect: !0 })
624
+ ], h.prototype, "bordered");
625
+ customElements.get("nys-accordion") || customElements.define("nys-accordion", h);
626
+ export {
627
+ h as NysAccordion,
628
+ d as NysAccordionItem
629
+ };
630
+ //# sourceMappingURL=nys-accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nys-accordion.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/base.js","../../../node_modules/@lit/reactive-element/decorators/query.js","../src/nys-accordion.styles.ts","../src/nys-accordionitem.ts","../src/nys-accordion.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","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import { css } from \"lit\";\n\nexport default css`\n :host {\n /* Anything that can be overridden should be defined here */\n\n /* Global Accordion Styles */\n --_nys-accordion-width: fit-content;\n --_nys-accordion-radius: var(--nys-radius-md, 4px);\n --_nys-accordion-padding: var(--nys-space-200, 16px)\n var(--nys-space-250, 20px);\n --_nys-accordion-width-focus: var(--nys-border-width-md, 2px);\n --_nys-accordion-offset-focus: var(--nys-space-2px, 2px);\n --_nys-accordion-color-focus: var(--nys-color-focus, #004dd1);\n --_nys-accordion-gap: var(--nys-space-100, 8px);\n\n /* Header & Text container */\n --_nys-accordion-heading-background: var(--nys-color-neutral-50, #ededed);\n --_nys-accordion-heading-active-background: var(\n --nys-color-neutral-100,\n #d0d0ce\n );\n --_nys-accordion-heading-gap: var(--nys-space-200, 16px);\n --_nys-accordion-content-background: var(--nys-color-ink-reverse, #fff);\n --_nys-accordion-content-padding: var(--nys-space-200, 16px)\n var(--local-xx-spacing-205, 20px);\n\n /* Typography */\n --_nys-accordion-font-size: var(--nys-type-size-ui-xl, 20px);\n --_nys-accordion-font-weight: var(--nys-font-weight-bold, 700);\n --_nys-accordion-line-height: var(--nys-font-lineheight-ui-xl, 28px);\n --_nys-accordion-line-letterspacing: var(\n --nys-font-letterspacing-ui-xl,\n 0.017px\n );\n --_nys-accordion-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 Resets */\n ::slotted(p),\n p {\n margin: 0 !important;\n }\n\n .nys-accordionitem {\n font-family: var(--_nys-accordion-font-family);\n font-size: var(--_nys-accordion-font-size);\n font-weight: var(--_nys-accordion-font-weight);\n line-height: var(--_nys-accordion-line-height);\n letter-spacing: var(--_nys-accordion-line-letterspacing);\n display: flex;\n }\n\n .nys-accordionitem__heading {\n all: unset;\n flex: 1;\n gap: var(--_nys-accordion-heading-gap);\n display: flex;\n padding: var(--_nys-accordion-padding);\n align-items: center;\n align-self: stretch;\n border-radius: var(--_nys-accordion-radius);\n background: var(--_nys-accordion-heading-background);\n cursor: pointer;\n transition: 0.05s all ease-in-out;\n }\n\n .nys-accordionitem__heading:hover {\n border-radius: var(--_nys-accordion-radius);\n background: var(--_nys-accordion-heading-active-background);\n }\n\n .nys-accordionitem__heading:focus-visible {\n outline-offset: var(--_nys-accordion-offset-focus);\n outline: solid var(--_nys-accordion-width-focus)\n var(--_nys-accordion-color-focus);\n }\n\n .nys-accordionitem__heading .nys-accordionitem__heading-title {\n flex: 1;\n }\n\n /*** Content layer ***/\n .nys-accordionitem__content {\n height: 0;\n overflow: hidden;\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n visibility: hidden;\n }\n\n .nys-accordionitem__content.expanded {\n /* Accordion JS code takes care of setting the exact calculated height so we can open exact px height */\n visibility: visible;\n }\n\n .nys-accordionitem__content-slot-container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--_nys-accordion-gap);\n align-self: stretch;\n padding: var(--_nys-accordion-content-padding);\n background: var(--_nys-accordion-content-background);\n }\n\n .nys-accordionitem__content-slot-container-text {\n max-width: 528px;\n }\n\n /*** Expanded Styling ***/\n .expand-icon {\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n }\n :host([expanded]) .expand-icon {\n transform: rotate(180deg);\n }\n\n /*** Bordered Styling ***/\n :host([bordered][expanded]) .nys-accordionitem__heading {\n border-radius: var(--_nys-accordion-radius) var(--_nys-accordion-radius) 0 0;\n }\n\n :host([bordered]) .nys-accordionitem__content-slot-container {\n border: var(--nys-border-width-md, 2px) solid\n var(--nys-color-neutral-50, #ededed);\n border-radius: 0 0 var(--_nys-accordion-radius) var(--_nys-accordion-radius);\n }\n\n /*** Accordion Wrapper ***/\n .nys-accordion {\n display: flex;\n flex-direction: column;\n gap: var(--_nys-accordion-gap);\n }\n`;\n","import { LitElement, html } from \"lit\";\nimport { property, query } from \"lit/decorators.js\";\nimport styles from \"./nys-accordion.styles\";\n\nlet accordionItemIdCounter = 0; // Counter for generating unique IDs\n\nexport class NysAccordionItem extends LitElement {\n @property({ type: String }) id = \"\";\n @property({ type: String }) heading = \"\";\n @property({ type: Boolean, reflect: true }) expanded = false;\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n static styles = styles;\n\n /**************** Lifecycle Methods ****************/\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has(\"expanded\")) {\n this._updateHeight();\n }\n }\n\n /******************** Functions ********************/\n private _generateUniqueId() {\n return `nys-accordionitem-${Date.now()}-${accordionItemIdCounter++}`;\n }\n\n private _dispatchEvent() {\n this.dispatchEvent(\n new CustomEvent(\"nys-accordionitem-toggle\", {\n detail: { id: this.id, heading: this.heading, expanded: this.expanded },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleExpand() {\n this.expanded = !this.expanded;\n this._updateHeight();\n this._dispatchEvent();\n }\n\n private _handleKeydown(e: KeyboardEvent) {\n if (e.key === \" \" || e.key === \"Enter\") {\n e.preventDefault(); // prevent page scroll on space\n this._handleExpand();\n }\n }\n\n // Call this after first render and whenever expanded changes\n @query(\".nys-accordionitem__content\") private _contentContainer!: HTMLElement;\n private _updateHeight() {\n if (!this._contentContainer) return;\n\n if (this.expanded) {\n // Slide down the content by setting a calculated max-height, depending on the panel's height on different screen sizes\n const slotHeight = this._contentContainer.scrollHeight;\n this._contentContainer.style.height = `${slotHeight}px`;\n } else {\n // Collapse\n this._contentContainer.style.height = \"0\";\n this._contentContainer.style.overflow = \"hidden\";\n }\n }\n\n render() {\n const contentId = `${this.id}-content`;\n\n return html`<div id=${this.id} class=\"nys-accordionitem\">\n <button\n class=\"nys-accordionitem__heading\"\n type=\"button\"\n @click=${this._handleExpand}\n @keydown=${this._handleKeydown}\n aria-expanded=${this.expanded ? \"true\" : \"false\"}\n aria-controls=${contentId}\n >\n <p class=\"nys-accordionitem__heading-title\">${this.heading}</p>\n <nys-icon class=\"expand-icon\" name=\"chevron_down\" size=\"24\"></nys-icon>\n </div>\n <div id=${contentId} class=\"nys-accordionitem__content ${this.expanded ? \"expanded\" : \"collapsed\"}\" role=\"region\">\n <div class=\"nys-accordionitem__content-slot-container\">\n <div class=\"nys-accordionitem__content-slot-container-text\">\n <slot></slot>\n </div>\n </div>\n </div>\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-accordionitem\")) {\n customElements.define(\"nys-accordionitem\", NysAccordionItem);\n}\n","import { LitElement, html } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport styles from \"./nys-accordion.styles\";\nimport \"./nys-accordionitem\";\n\nlet accordionIdCounter = 0; // Counter for generating unique IDs\n\n/**\n * The \"nys-accordion\" is the wrapper that groups individual accordion items within it.\n * The items within is called \"nys-accordionitem\"\n */\nexport class NysAccordion extends LitElement {\n @property({ type: String }) id = \"\";\n @property({ type: Boolean, reflect: true }) singleSelect = false;\n @property({ type: Boolean, reflect: true }) bordered = false;\n\n static styles = styles;\n\n /**************** Lifecycle Methods ****************/\n constructor() {\n super();\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // Generate a unique ID if not provided\n if (!this.id) {\n this.id = this._generateUniqueId();\n }\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has(\"bordered\")) {\n this._applyBordered();\n }\n }\n\n /******************** Functions ********************/\n private _generateUniqueId() {\n return `nys-accordionitem-${Date.now()}-${accordionIdCounter++}`;\n }\n\n private _getAccordions() {\n const slot = this.shadowRoot?.querySelector(\"slot\");\n const assigned = slot?.assignedElements() || [];\n\n return assigned.filter(\n (el) => el.tagName.toLowerCase() === \"nys-accordionitem\",\n );\n }\n\n private _onAccordionToggle(event: CustomEvent) {\n if (!this.singleSelect) return;\n\n const accordionId = event.detail.id;\n const accordionIsExpanded = event.detail.expanded;\n\n // All accordions that don't match the selected accordion's id is unexpanded.\n // If id match, it is up to the individual accordion to handle the expand logic\n if (accordionIsExpanded) {\n this._getAccordions().forEach((accordion: any) => {\n if (accordion.id !== accordionId && accordion.expanded) {\n accordion.expanded = false;\n }\n });\n }\n }\n\n private _applyBordered() {\n this._getAccordions().forEach((accordion: any) => {\n accordion.bordered = this.bordered;\n });\n }\n\n render() {\n return html`<div\n id=${this.id}\n class=\"nys-accordion\"\n @nys-accordionitem-toggle=${this._onAccordionToggle}\n >\n <slot></slot>\n </div>`;\n }\n}\n\nif (!customElements.get(\"nys-accordion\")) {\n customElements.define(\"nys-accordion\", NysAccordion);\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","accordionItemIdCounter","_NysAccordionItem","LitElement","changedProperties","slotHeight","contentId","html","NysAccordionItem","__decorateClass","property","query","accordionIdCounter","_NysAccordion","slot","el","event","accordionId","accordion","NysAccordion"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import { LitElement } from "lit";
2
+ export declare class NysAccordionItem extends LitElement {
3
+ id: string;
4
+ heading: string;
5
+ expanded: boolean;
6
+ bordered: boolean;
7
+ static styles: import("lit").CSSResult;
8
+ /**************** Lifecycle Methods ****************/
9
+ constructor();
10
+ connectedCallback(): void;
11
+ updated(changedProperties: Map<string, any>): void;
12
+ /******************** Functions ********************/
13
+ private _generateUniqueId;
14
+ private _dispatchEvent;
15
+ private _handleExpand;
16
+ private _handleKeydown;
17
+ private _contentContainer;
18
+ private _updateHeight;
19
+ render(): import("lit-html").TemplateResult<1>;
20
+ }
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@nysds/nys-accordion",
3
+ "version": "1.7.0",
4
+ "description": "The Accordion component from the NYS Design System.",
5
+ "module": "dist/nys-accordion.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/nys-accordion.js",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ },
13
+ "type": "module",
14
+ "files": [
15
+ "dist/"
16
+ ],
17
+ "scripts": {
18
+ "dev": "tsc --emitDeclarationOnly && vite",
19
+ "build": "tsc --emitDeclarationOnly && vite build",
20
+ "test": "vite build && wtr",
21
+ "build:watch": "tsc --emitDeclarationOnly && vite build --watch",
22
+ "test:watch": "vite build && wtr --watch"
23
+ },
24
+ "peerDependencies": {
25
+ "lit": "^3.2.1"
26
+ },
27
+ "dependencies": {
28
+ "@nysds/nys-icon": "^1.7.0"
29
+ },
30
+ "devDependencies": {
31
+ "lit": "^3.2.1",
32
+ "typescript": "^5.7.2",
33
+ "vite": "^6.3.4"
34
+ },
35
+ "keywords": [
36
+ "new-york-state",
37
+ "design-system",
38
+ "web-components",
39
+ "lit",
40
+ "nys",
41
+ "accordion"
42
+ ],
43
+ "author": "New York State Design System Team",
44
+ "license": "MIT"
45
+ }
46
+