@cas-smartdesign/swatch-picker 3.0.1

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,394 @@
1
+ import { ElementBase as c } from "@cas-smartdesign/element-base";
2
+ import e from "@cas-smartdesign/design-tokens";
3
+ const i = `<style>
4
+ :host {
5
+ display: block;
6
+ outline: none;
7
+ contain: style;
8
+ }
9
+
10
+ .picker {
11
+ position: relative;
12
+ height: var(--sd-swatch-picker-icon-size, 24px);
13
+ width: var(--sd-swatch-picker-icon-size, 24px);
14
+ cursor: pointer;
15
+ }
16
+
17
+ .ripple {
18
+ width: calc(var(--sd-swatch-picker-icon-size, 24px) * 2);
19
+ height: calc(var(--sd-swatch-picker-icon-size, 24px) * 2);
20
+ border-radius: calc(var(--sd-swatch-picker-icon-size, 24px) * 1.5);
21
+ position: absolute;
22
+ left: calc(var(--sd-swatch-picker-icon-size, 24px) * -0.5);
23
+ top: calc(var(--sd-swatch-picker-icon-size, 24px) * -0.5);
24
+ opacity: 0;
25
+ background: grey;
26
+ }
27
+
28
+ :host(:focus) .ripple,
29
+ .ripple.active {
30
+ opacity: 0.2;
31
+ }
32
+
33
+ .color-palette {
34
+ position: fixed;
35
+ overflow: hidden;
36
+ display: flex;
37
+ flex-wrap: wrap;
38
+ flex-direction: column;
39
+ align-content: baseline;
40
+ transition:
41
+ transform 0.3s ease-out,
42
+ opacity 0.3s ease-out;
43
+ transform-origin: top left;
44
+ transform: scale(0.25, 0.14);
45
+ opacity: 0;
46
+ z-index: 1;
47
+ }
48
+
49
+ .color-palette:not(.opened) {
50
+ pointer-events: none;
51
+ }
52
+
53
+ .color-palette .col {
54
+ flex: 1;
55
+ }
56
+
57
+ .color:not(.active-color):hover {
58
+ transform: scale(1.3);
59
+ transition-duration: 200ms;
60
+ }
61
+
62
+ .active-color {
63
+ transform: scale(1.3);
64
+ box-shadow:
65
+ 0 2px 2px 0 rgba(0, 0, 0, 0.14),
66
+ 0 1px 5px 0 rgba(0, 0, 0, 0.12),
67
+ 0 3px 1px -2px rgba(0, 0, 0, 0.2);
68
+ }
69
+
70
+ .opened {
71
+ transform: scale(1, 1);
72
+ opacity: 1;
73
+ }
74
+
75
+ .icon {
76
+ width: 100%;
77
+ height: 100%;
78
+ }
79
+
80
+ .icon-container {
81
+ width: var(--sd-swatch-picker-icon-size, 24px);
82
+ height: var(--sd-swatch-picker-icon-size, 24px);
83
+ cursor: pointer;
84
+ }
85
+ </style>
86
+ <div class="picker">
87
+ <div class="ripple"></div>
88
+ <div class="icon-container">
89
+ <svg
90
+ class="icon"
91
+ viewBox="0 0 24 24"
92
+ version="1.1"
93
+ xmlns="http://www.w3.org/2000/svg"
94
+ xmlns:xlink="http://www.w3.org/1999/xlink">
95
+ <g>
96
+ <path
97
+ d="M16.56 8.94L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15c-.59.59-.59 1.54 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10L10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5z"></path>
98
+ <path fill-opacity=".36" d="M0 20h24v4H0z"></path>
99
+ </g>
100
+ </svg>
101
+ </div>
102
+ </div>
103
+ <div class="color-palette"></div>
104
+ `, a = [
105
+ e["color-base-red-50"],
106
+ e["color-base-red-100"],
107
+ e["color-base-red-150"],
108
+ e["color-base-red-200"],
109
+ e["color-base-red-300"],
110
+ e["color-base-red-400"],
111
+ e["color-base-red-500"],
112
+ e["color-base-red-600"],
113
+ e["color-base-red-700"],
114
+ e["color-base-red-800"],
115
+ e["color-base-red-900"],
116
+ e["color-base-orange-50"],
117
+ e["color-base-orange-100"],
118
+ e["color-base-orange-150"],
119
+ e["color-base-orange-200"],
120
+ e["color-base-orange-300"],
121
+ e["color-base-orange-400"],
122
+ e["color-base-orange-500"],
123
+ e["color-base-orange-600"],
124
+ e["color-base-orange-700"],
125
+ e["color-base-orange-800"],
126
+ e["color-base-orange-900"],
127
+ e["color-base-yellow-50"],
128
+ e["color-base-yellow-100"],
129
+ e["color-base-yellow-150"],
130
+ e["color-base-yellow-200"],
131
+ e["color-base-yellow-300"],
132
+ e["color-base-yellow-400"],
133
+ e["color-base-yellow-500"],
134
+ e["color-base-yellow-600"],
135
+ e["color-base-yellow-700"],
136
+ e["color-base-yellow-800"],
137
+ e["color-base-yellow-900"],
138
+ e["color-base-green-50"],
139
+ e["color-base-green-100"],
140
+ e["color-base-green-150"],
141
+ e["color-base-green-200"],
142
+ e["color-base-green-300"],
143
+ e["color-base-green-400"],
144
+ e["color-base-green-500"],
145
+ e["color-base-green-600"],
146
+ e["color-base-green-700"],
147
+ e["color-base-green-800"],
148
+ e["color-base-green-900"],
149
+ e["color-base-dark-green-50"],
150
+ e["color-base-dark-green-100"],
151
+ e["color-base-dark-green-150"],
152
+ e["color-base-dark-green-200"],
153
+ e["color-base-dark-green-300"],
154
+ e["color-base-dark-green-400"],
155
+ e["color-base-dark-green-500"],
156
+ e["color-base-dark-green-600"],
157
+ e["color-base-dark-green-700"],
158
+ e["color-base-dark-green-800"],
159
+ e["color-base-dark-green-900"],
160
+ e["color-base-cyan-50"],
161
+ e["color-base-cyan-100"],
162
+ e["color-base-cyan-150"],
163
+ e["color-base-cyan-200"],
164
+ e["color-base-cyan-300"],
165
+ e["color-base-cyan-400"],
166
+ e["color-base-cyan-500"],
167
+ e["color-base-cyan-600"],
168
+ e["color-base-cyan-700"],
169
+ e["color-base-cyan-800"],
170
+ e["color-base-cyan-900"],
171
+ e["color-base-blue-50"],
172
+ e["color-base-blue-100"],
173
+ e["color-base-blue-150"],
174
+ e["color-base-blue-200"],
175
+ e["color-base-blue-300"],
176
+ e["color-base-blue-400"],
177
+ e["color-base-blue-500"],
178
+ e["color-base-blue-600"],
179
+ e["color-base-blue-700"],
180
+ e["color-base-blue-800"],
181
+ e["color-base-blue-900"],
182
+ e["color-base-dark-blue-50"],
183
+ e["color-base-dark-blue-100"],
184
+ e["color-base-dark-blue-150"],
185
+ e["color-base-dark-blue-200"],
186
+ e["color-base-dark-blue-300"],
187
+ e["color-base-dark-blue-400"],
188
+ e["color-base-dark-blue-500"],
189
+ e["color-base-dark-blue-600"],
190
+ e["color-base-dark-blue-700"],
191
+ e["color-base-dark-blue-800"],
192
+ e["color-base-dark-blue-900"],
193
+ e["color-base-pink-50"],
194
+ e["color-base-pink-100"],
195
+ e["color-base-pink-150"],
196
+ e["color-base-pink-200"],
197
+ e["color-base-pink-300"],
198
+ e["color-base-pink-400"],
199
+ e["color-base-pink-500"],
200
+ e["color-base-pink-600"],
201
+ e["color-base-pink-700"],
202
+ e["color-base-pink-800"],
203
+ e["color-base-pink-900"],
204
+ e["color-base-purple-50"],
205
+ e["color-base-purple-100"],
206
+ e["color-base-purple-150"],
207
+ e["color-base-purple-200"],
208
+ e["color-base-purple-300"],
209
+ e["color-base-purple-400"],
210
+ e["color-base-purple-500"],
211
+ e["color-base-purple-600"],
212
+ e["color-base-purple-700"],
213
+ e["color-base-purple-800"],
214
+ e["color-base-purple-900"],
215
+ e["color-base-brown-50"],
216
+ e["color-base-brown-100"],
217
+ e["color-base-brown-150"],
218
+ e["color-base-brown-200"],
219
+ e["color-base-brown-300"],
220
+ e["color-base-brown-400"],
221
+ e["color-base-brown-500"],
222
+ e["color-base-brown-600"],
223
+ e["color-base-brown-700"],
224
+ e["color-base-brown-800"],
225
+ e["color-base-brown-900"],
226
+ e["color-base-grey-50"],
227
+ e["color-base-grey-100"],
228
+ e["color-base-grey-150"],
229
+ e["color-base-grey-200"],
230
+ e["color-base-grey-300"],
231
+ e["color-base-grey-400"],
232
+ e["color-base-grey-500"],
233
+ e["color-base-grey-600"],
234
+ e["color-base-grey-700"],
235
+ e["color-base-grey-800"],
236
+ e["color-base-grey-900"]
237
+ ], n = class n extends c {
238
+ constructor() {
239
+ super(...arguments), this.keyDownListener = (t) => {
240
+ if (t.defaultPrevented)
241
+ return;
242
+ let r = !0;
243
+ const l = this.colorList.indexOf(this.color);
244
+ switch (t.key) {
245
+ case "Esc":
246
+ case "Escape":
247
+ this.colorWhenOpen && (this.color = this.colorWhenOpen), this.close();
248
+ break;
249
+ case "Up":
250
+ case "ArrowUp":
251
+ l > 0 ? this.color = this.colorList[l - 1] : this.color = this.colorList[this.colorList.length - 1];
252
+ break;
253
+ case "Down":
254
+ case "ArrowDown":
255
+ l < this.colorList.length - 1 ? this.color = this.colorList[l + 1] : this.color = this.colorList[0];
256
+ break;
257
+ case "Left":
258
+ case "ArrowLeft": {
259
+ let o;
260
+ l === 0 ? o = this.colorList.length - 1 : (o = l - this.colorNumberInColumn, o < 0 && (o = this.colorList.length + o, o % this.colorNumberInColumn > 0 && o--)), this.color = this.colorList[o];
261
+ break;
262
+ }
263
+ case "Right":
264
+ case "ArrowRight": {
265
+ let o;
266
+ l === this.colorList.length - 1 ? o = 0 : (o = l + this.colorNumberInColumn, o >= this.colorList.length && (o = o - this.colorList.length, o < this.colorNumberInColumn && o++)), this.color = this.colorList[o];
267
+ break;
268
+ }
269
+ case "Enter":
270
+ this.close(), this.dispatchValueChange();
271
+ break;
272
+ default:
273
+ r = !1;
274
+ return;
275
+ }
276
+ r && t.preventDefault();
277
+ }, this.modalityListener = (t) => {
278
+ this.contains(t.target) || this.close();
279
+ }, this.scrollListener = () => {
280
+ this.restoreScrollPosition();
281
+ };
282
+ }
283
+ is() {
284
+ return n.ID;
285
+ }
286
+ get color() {
287
+ return this.getAttribute("color");
288
+ }
289
+ set color(t) {
290
+ if (t) {
291
+ if (this.setAttribute("color", t), this.shadowRoot) {
292
+ this.svg.style.fill = t;
293
+ const r = this.colorList.indexOf(t);
294
+ r >= 0 ? this.selectedColorElement = this.colorPalette.children[r] : this.selectedColorElement = null;
295
+ }
296
+ } else
297
+ this.removeAttribute("color"), this.svg.style.fill = "", this.selectedColorElement = null;
298
+ }
299
+ get colorList() {
300
+ return this._colorList || a;
301
+ }
302
+ set colorList(t) {
303
+ this._colorList = t, this.shadowRoot && this.updatePalette();
304
+ }
305
+ get columnCount() {
306
+ return Number(this.getAttribute("columncount")) || 12;
307
+ }
308
+ set columnCount(t) {
309
+ t ? this.setAttribute("columncount", `${t}`) : this.removeAttribute("columncount");
310
+ }
311
+ get disabled() {
312
+ return this.getAttribute("aria-disabled") == "true";
313
+ }
314
+ set disabled(t) {
315
+ this.setAttribute("aria-disabled", t.toString());
316
+ }
317
+ get colorSize() {
318
+ return Number(this.getAttribute("colorsize")) || 20;
319
+ }
320
+ set colorSize(t) {
321
+ t ? this.setAttribute("colorsize", `${t}`) : this.removeAttribute("colorsize");
322
+ }
323
+ template() {
324
+ const t = document.createElement("template");
325
+ return t.innerHTML = i, t;
326
+ }
327
+ static get observedAttributes() {
328
+ return ["colorsize", "columncount"];
329
+ }
330
+ connectedCallback() {
331
+ super.connectedCallback(), this.colorPalette || (this.colorPalette = this.shadowRoot.querySelector(".color-palette"), this.picker = this.shadowRoot.querySelector(".picker"), this.ripple = this.shadowRoot.querySelector(".ripple"), this.svg = this.shadowRoot.querySelector("svg"), this.color && (this.svg.style.fill = this.color), this.picker.addEventListener("pointerdown", (t) => {
332
+ t.stopPropagation(), this.colorPalette.classList.contains("opened") ? this.close() : (this.updatePalettePosition(), this.open());
333
+ }), this.addEventListener("keydown", (t) => {
334
+ t.key === "Enter" && (this.open(), t.preventDefault());
335
+ }), this.updatePalette()), this.hasAttribute("tabIndex") || (this.tabIndex = 0);
336
+ }
337
+ attributeChangedCallback() {
338
+ this.colorPalette && this.updatePalette();
339
+ }
340
+ updatePalette() {
341
+ for (; this.colorPalette.firstChild; )
342
+ this.colorPalette.removeChild(this.colorPalette.firstChild);
343
+ this.colorNumberInColumn = Math.ceil(this.colorList.length / this.columnCount), this.colorPalette.style.height = `${this.colorNumberInColumn * this.colorSize}px`, this.colorPalette.style.width = `${this.colorSize * this.columnCount}px`, this.colorPalette.appendChild(this.createColorPaletteFragment());
344
+ }
345
+ createColorPaletteFragment() {
346
+ const t = document.createDocumentFragment(), r = this.color;
347
+ for (const l of this.colorList) {
348
+ const o = document.createElement("div");
349
+ o.classList.add("color"), o.style.backgroundColor = l, o.style.width = `${this.colorSize}px`, o.style.height = `${this.colorSize}px`, o.addEventListener("pointerdown", () => {
350
+ this.color = l, this.close(), this.dispatchValueChange();
351
+ }), r === l && (this.selectedColorElement = o, this.selectedColorElement.classList.add("active-color")), t.appendChild(o);
352
+ }
353
+ return t;
354
+ }
355
+ get selectedColorElement() {
356
+ return this._selectedColorElement;
357
+ }
358
+ set selectedColorElement(t) {
359
+ this._selectedColorElement && this._selectedColorElement.classList.remove("active-color"), this._selectedColorElement = t, this._selectedColorElement && this._selectedColorElement.classList.add("active-color");
360
+ }
361
+ open() {
362
+ this.disabled || (this.colorPalette.classList.add("opened"), this.ripple.classList.add("active"), this.colorWhenOpen = this.color, this.saveScrollPosition(), window.addEventListener("keydown", this.keyDownListener, { capture: !0 }), window.addEventListener("pointerdown", this.modalityListener, { capture: !0 }), window.addEventListener("scroll", this.scrollListener, { capture: !0 }));
363
+ }
364
+ close() {
365
+ this.colorPalette.classList.remove("opened"), this.ripple.classList.remove("active"), window.removeEventListener("keydown", this.keyDownListener, { capture: !0 }), window.removeEventListener("pointerdown", this.modalityListener, { capture: !0 }), window.removeEventListener("scroll", this.scrollListener, { capture: !0 });
366
+ }
367
+ // This "lock" mechanism is based on Polymer's iron-overlay-behavior.
368
+ saveScrollPosition() {
369
+ document.scrollingElement ? (this._scrollTop = document.scrollingElement.scrollTop, this._scrollLeft = document.scrollingElement.scrollLeft) : (this._scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop), this._scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft));
370
+ }
371
+ restoreScrollPosition() {
372
+ document.scrollingElement ? (document.scrollingElement.scrollTop = this._scrollTop, document.scrollingElement.scrollLeft = this._scrollLeft) : (document.documentElement.scrollTop = document.body.scrollTop = this._scrollTop, document.documentElement.scrollLeft = document.body.scrollLeft = this._scrollLeft);
373
+ }
374
+ updatePalettePosition() {
375
+ const t = this.getBoundingClientRect();
376
+ t.left + this.colorPalette.offsetWidth > this.scrollingElementClientWidth ? this.colorPalette.style.left = `${this.scrollingElementClientWidth - this.colorPalette.offsetWidth}px` : this.colorPalette.style.left = `${t.left}px`, t.top + this.colorPalette.offsetHeight > this.scrollingElementClientHeight ? this.colorPalette.style.top = `${this.scrollingElementClientHeight - this.colorPalette.offsetHeight}px` : this.colorPalette.style.top = `${t.top}px`;
377
+ }
378
+ get scrollingElementClientHeight() {
379
+ return document.scrollingElement ? document.scrollingElement.clientHeight : Math.max(document.documentElement.clientHeight, document.body.clientHeight);
380
+ }
381
+ get scrollingElementClientWidth() {
382
+ return document.scrollingElement ? document.scrollingElement.clientWidth : Math.max(document.documentElement.clientWidth, document.body.clientWidth);
383
+ }
384
+ dispatchValueChange() {
385
+ this.dispatchEvent(new CustomEvent("value-change", { detail: this.color }));
386
+ }
387
+ };
388
+ n.ID = "sd-swatch-picker";
389
+ let s = n;
390
+ customElements.define(s.ID, s);
391
+ export {
392
+ s as SwatchPicker
393
+ };
394
+ //# sourceMappingURL=swatch-picker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swatch-picker.mjs","sources":["../swatch-picker.html?raw","../default-colors.ts","../swatch-picker.ts"],"sourcesContent":["export default \"<style>\\n\\t:host {\\n\\t\\tdisplay: block;\\n\\t\\toutline: none;\\n\\t\\tcontain: style;\\n\\t}\\n\\n\\t.picker {\\n\\t\\tposition: relative;\\n\\t\\theight: var(--sd-swatch-picker-icon-size, 24px);\\n\\t\\twidth: var(--sd-swatch-picker-icon-size, 24px);\\n\\t\\tcursor: pointer;\\n\\t}\\n\\n\\t.ripple {\\n\\t\\twidth: calc(var(--sd-swatch-picker-icon-size, 24px) * 2);\\n\\t\\theight: calc(var(--sd-swatch-picker-icon-size, 24px) * 2);\\n\\t\\tborder-radius: calc(var(--sd-swatch-picker-icon-size, 24px) * 1.5);\\n\\t\\tposition: absolute;\\n\\t\\tleft: calc(var(--sd-swatch-picker-icon-size, 24px) * -0.5);\\n\\t\\ttop: calc(var(--sd-swatch-picker-icon-size, 24px) * -0.5);\\n\\t\\topacity: 0;\\n\\t\\tbackground: grey;\\n\\t}\\n\\n\\t:host(:focus) .ripple,\\n\\t.ripple.active {\\n\\t\\topacity: 0.2;\\n\\t}\\n\\n\\t.color-palette {\\n\\t\\tposition: fixed;\\n\\t\\toverflow: hidden;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tflex-direction: column;\\n\\t\\talign-content: baseline;\\n\\t\\ttransition:\\n\\t\\t\\ttransform 0.3s ease-out,\\n\\t\\t\\topacity 0.3s ease-out;\\n\\t\\ttransform-origin: top left;\\n\\t\\ttransform: scale(0.25, 0.14);\\n\\t\\topacity: 0;\\n\\t\\tz-index: 1;\\n\\t}\\n\\n\\t.color-palette:not(.opened) {\\n\\t\\tpointer-events: none;\\n\\t}\\n\\n\\t.color-palette .col {\\n\\t\\tflex: 1;\\n\\t}\\n\\n\\t.color:not(.active-color):hover {\\n\\t\\ttransform: scale(1.3);\\n\\t\\ttransition-duration: 200ms;\\n\\t}\\n\\n\\t.active-color {\\n\\t\\ttransform: scale(1.3);\\n\\t\\tbox-shadow:\\n\\t\\t\\t0 2px 2px 0 rgba(0, 0, 0, 0.14),\\n\\t\\t\\t0 1px 5px 0 rgba(0, 0, 0, 0.12),\\n\\t\\t\\t0 3px 1px -2px rgba(0, 0, 0, 0.2);\\n\\t}\\n\\n\\t.opened {\\n\\t\\ttransform: scale(1, 1);\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t.icon {\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t.icon-container {\\n\\t\\twidth: var(--sd-swatch-picker-icon-size, 24px);\\n\\t\\theight: var(--sd-swatch-picker-icon-size, 24px);\\n\\t\\tcursor: pointer;\\n\\t}\\n</style>\\n<div class=\\\"picker\\\">\\n\\t<div class=\\\"ripple\\\"></div>\\n\\t<div class=\\\"icon-container\\\">\\n\\t\\t<svg\\n\\t\\t\\tclass=\\\"icon\\\"\\n\\t\\t\\tviewBox=\\\"0 0 24 24\\\"\\n\\t\\t\\tversion=\\\"1.1\\\"\\n\\t\\t\\txmlns=\\\"http://www.w3.org/2000/svg\\\"\\n\\t\\t\\txmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\">\\n\\t\\t\\t<g>\\n\\t\\t\\t\\t<path\\n\\t\\t\\t\\t\\td=\\\"M16.56 8.94L7.62 0 6.21 1.41l2.38 2.38-5.15 5.15c-.59.59-.59 1.54 0 2.12l5.5 5.5c.29.29.68.44 1.06.44s.77-.15 1.06-.44l5.5-5.5c.59-.58.59-1.53 0-2.12zM5.21 10L10 5.21 14.79 10H5.21zM19 11.5s-2 2.17-2 3.5c0 1.1.9 2 2 2s2-.9 2-2c0-1.33-2-3.5-2-3.5z\\\"></path>\\n\\t\\t\\t\\t<path fill-opacity=\\\".36\\\" d=\\\"M0 20h24v4H0z\\\"></path>\\n\\t\\t\\t</g>\\n\\t\\t</svg>\\n\\t</div>\\n</div>\\n<div class=\\\"color-palette\\\"></div>\\n\"","import { default as tokens } from \"@cas-smartdesign/design-tokens\";\n\nexport const defaultColors: string[] = [\n tokens[\"color-base-red-50\"],\n tokens[\"color-base-red-100\"],\n tokens[\"color-base-red-150\"],\n tokens[\"color-base-red-200\"],\n tokens[\"color-base-red-300\"],\n tokens[\"color-base-red-400\"],\n tokens[\"color-base-red-500\"],\n tokens[\"color-base-red-600\"],\n tokens[\"color-base-red-700\"],\n tokens[\"color-base-red-800\"],\n tokens[\"color-base-red-900\"],\n tokens[\"color-base-orange-50\"],\n tokens[\"color-base-orange-100\"],\n tokens[\"color-base-orange-150\"],\n tokens[\"color-base-orange-200\"],\n tokens[\"color-base-orange-300\"],\n tokens[\"color-base-orange-400\"],\n tokens[\"color-base-orange-500\"],\n tokens[\"color-base-orange-600\"],\n tokens[\"color-base-orange-700\"],\n tokens[\"color-base-orange-800\"],\n tokens[\"color-base-orange-900\"],\n tokens[\"color-base-yellow-50\"],\n tokens[\"color-base-yellow-100\"],\n tokens[\"color-base-yellow-150\"],\n tokens[\"color-base-yellow-200\"],\n tokens[\"color-base-yellow-300\"],\n tokens[\"color-base-yellow-400\"],\n tokens[\"color-base-yellow-500\"],\n tokens[\"color-base-yellow-600\"],\n tokens[\"color-base-yellow-700\"],\n tokens[\"color-base-yellow-800\"],\n tokens[\"color-base-yellow-900\"],\n tokens[\"color-base-green-50\"],\n tokens[\"color-base-green-100\"],\n tokens[\"color-base-green-150\"],\n tokens[\"color-base-green-200\"],\n tokens[\"color-base-green-300\"],\n tokens[\"color-base-green-400\"],\n tokens[\"color-base-green-500\"],\n tokens[\"color-base-green-600\"],\n tokens[\"color-base-green-700\"],\n tokens[\"color-base-green-800\"],\n tokens[\"color-base-green-900\"],\n tokens[\"color-base-dark-green-50\"],\n tokens[\"color-base-dark-green-100\"],\n tokens[\"color-base-dark-green-150\"],\n tokens[\"color-base-dark-green-200\"],\n tokens[\"color-base-dark-green-300\"],\n tokens[\"color-base-dark-green-400\"],\n tokens[\"color-base-dark-green-500\"],\n tokens[\"color-base-dark-green-600\"],\n tokens[\"color-base-dark-green-700\"],\n tokens[\"color-base-dark-green-800\"],\n tokens[\"color-base-dark-green-900\"],\n tokens[\"color-base-cyan-50\"],\n tokens[\"color-base-cyan-100\"],\n tokens[\"color-base-cyan-150\"],\n tokens[\"color-base-cyan-200\"],\n tokens[\"color-base-cyan-300\"],\n tokens[\"color-base-cyan-400\"],\n tokens[\"color-base-cyan-500\"],\n tokens[\"color-base-cyan-600\"],\n tokens[\"color-base-cyan-700\"],\n tokens[\"color-base-cyan-800\"],\n tokens[\"color-base-cyan-900\"],\n tokens[\"color-base-blue-50\"],\n tokens[\"color-base-blue-100\"],\n tokens[\"color-base-blue-150\"],\n tokens[\"color-base-blue-200\"],\n tokens[\"color-base-blue-300\"],\n tokens[\"color-base-blue-400\"],\n tokens[\"color-base-blue-500\"],\n tokens[\"color-base-blue-600\"],\n tokens[\"color-base-blue-700\"],\n tokens[\"color-base-blue-800\"],\n tokens[\"color-base-blue-900\"],\n tokens[\"color-base-dark-blue-50\"],\n tokens[\"color-base-dark-blue-100\"],\n tokens[\"color-base-dark-blue-150\"],\n tokens[\"color-base-dark-blue-200\"],\n tokens[\"color-base-dark-blue-300\"],\n tokens[\"color-base-dark-blue-400\"],\n tokens[\"color-base-dark-blue-500\"],\n tokens[\"color-base-dark-blue-600\"],\n tokens[\"color-base-dark-blue-700\"],\n tokens[\"color-base-dark-blue-800\"],\n tokens[\"color-base-dark-blue-900\"],\n tokens[\"color-base-pink-50\"],\n tokens[\"color-base-pink-100\"],\n tokens[\"color-base-pink-150\"],\n tokens[\"color-base-pink-200\"],\n tokens[\"color-base-pink-300\"],\n tokens[\"color-base-pink-400\"],\n tokens[\"color-base-pink-500\"],\n tokens[\"color-base-pink-600\"],\n tokens[\"color-base-pink-700\"],\n tokens[\"color-base-pink-800\"],\n tokens[\"color-base-pink-900\"],\n tokens[\"color-base-purple-50\"],\n tokens[\"color-base-purple-100\"],\n tokens[\"color-base-purple-150\"],\n tokens[\"color-base-purple-200\"],\n tokens[\"color-base-purple-300\"],\n tokens[\"color-base-purple-400\"],\n tokens[\"color-base-purple-500\"],\n tokens[\"color-base-purple-600\"],\n tokens[\"color-base-purple-700\"],\n tokens[\"color-base-purple-800\"],\n tokens[\"color-base-purple-900\"],\n tokens[\"color-base-brown-50\"],\n tokens[\"color-base-brown-100\"],\n tokens[\"color-base-brown-150\"],\n tokens[\"color-base-brown-200\"],\n tokens[\"color-base-brown-300\"],\n tokens[\"color-base-brown-400\"],\n tokens[\"color-base-brown-500\"],\n tokens[\"color-base-brown-600\"],\n tokens[\"color-base-brown-700\"],\n tokens[\"color-base-brown-800\"],\n tokens[\"color-base-brown-900\"],\n tokens[\"color-base-grey-50\"],\n tokens[\"color-base-grey-100\"],\n tokens[\"color-base-grey-150\"],\n tokens[\"color-base-grey-200\"],\n tokens[\"color-base-grey-300\"],\n tokens[\"color-base-grey-400\"],\n tokens[\"color-base-grey-500\"],\n tokens[\"color-base-grey-600\"],\n tokens[\"color-base-grey-700\"],\n tokens[\"color-base-grey-800\"],\n tokens[\"color-base-grey-900\"],\n];\n","import { ElementBase, CustomEventMap as ElementBaseEventMap } from \"@cas-smartdesign/element-base\";\n\nimport { default as htmlTemplate } from \"./swatch-picker.html?raw\";\nimport { defaultColors } from \"./default-colors\";\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [SwatchPicker.ID]: SwatchPicker;\n }\n}\n\nexport type IValueChangeEventDetail = string;\n\nexport interface CustomEventMap extends ElementBaseEventMap {\n \"value-change\": CustomEvent<IValueChangeEventDetail>;\n}\n\nexport interface Stage {\n addEventListener<K extends keyof CustomEventMap>(\n event: K,\n listener: ((this: this, ev: CustomEventMap[K]) => unknown) | null,\n options?: AddEventListenerOptions | boolean,\n ): void;\n addEventListener(\n type: string,\n callback: EventListenerOrEventListenerObject | null,\n options?: AddEventListenerOptions | boolean,\n ): void;\n removeEventListener<K extends keyof CustomEventMap>(\n type: K,\n listener: (this: this, ev: CustomEventMap[K]) => unknown,\n options?: boolean | EventListenerOptions,\n ): void;\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void;\n dispatchEvent<EventType extends CustomEventMap[keyof CustomEventMap]>(event: EventType): boolean;\n}\n\nexport class SwatchPicker extends ElementBase {\n public static readonly ID = \"sd-swatch-picker\";\n\n private picker: HTMLDivElement;\n private ripple: HTMLDivElement;\n private colorPalette: HTMLDivElement;\n private svg: SVGSVGElement;\n\n private colorWhenOpen: string;\n private colorNumberInColumn: number;\n private _selectedColorElement: HTMLDivElement;\n private _colorList: string[];\n private _scrollTop: number;\n private _scrollLeft: number;\n\n public is(): string {\n return SwatchPicker.ID;\n }\n\n public get color(): string {\n return this.getAttribute(\"color\");\n }\n\n public set color(color: string) {\n if (color) {\n this.setAttribute(\"color\", color);\n if (this.shadowRoot) {\n this.svg.style.fill = color;\n const currentIndex = this.colorList.indexOf(color);\n if (currentIndex >= 0) {\n this.selectedColorElement = this.colorPalette.children[currentIndex] as HTMLDivElement;\n } else {\n this.selectedColorElement = null;\n }\n }\n } else {\n this.removeAttribute(\"color\");\n this.svg.style.fill = \"\";\n this.selectedColorElement = null;\n }\n }\n\n public get colorList(): string[] {\n return this._colorList || defaultColors;\n }\n\n public set colorList(colors: string[]) {\n this._colorList = colors;\n if (this.shadowRoot) {\n this.updatePalette();\n }\n }\n\n public get columnCount(): number {\n return Number(this.getAttribute(\"columncount\")) || 12;\n }\n\n public set columnCount(columnCount: number) {\n if (columnCount) {\n this.setAttribute(\"columncount\", `${columnCount}`);\n } else {\n this.removeAttribute(\"columncount\");\n }\n }\n\n public get disabled(): boolean {\n return this.getAttribute(\"aria-disabled\") == \"true\";\n }\n\n public set disabled(disabled: boolean) {\n this.setAttribute(\"aria-disabled\", disabled.toString());\n }\n\n public get colorSize(): number {\n return Number(this.getAttribute(\"colorsize\")) || 20;\n }\n\n public set colorSize(colorSize: number) {\n if (colorSize) {\n this.setAttribute(\"colorsize\", `${colorSize}`);\n } else {\n this.removeAttribute(\"colorsize\");\n }\n }\n\n protected template(): HTMLTemplateElement {\n const template = document.createElement(\"template\");\n template.innerHTML = htmlTemplate;\n return template;\n }\n\n static get observedAttributes(): string[] {\n return [\"colorsize\", \"columncount\"];\n }\n\n public connectedCallback() {\n super.connectedCallback();\n if (!this.colorPalette) {\n this.colorPalette = this.shadowRoot.querySelector(\".color-palette\");\n this.picker = this.shadowRoot.querySelector(\".picker\");\n this.ripple = this.shadowRoot.querySelector(\".ripple\");\n this.svg = this.shadowRoot.querySelector(\"svg\");\n\n if (this.color) {\n this.svg.style.fill = this.color;\n }\n\n this.picker.addEventListener(\"pointerdown\", (event) => {\n event.stopPropagation();\n if (this.colorPalette.classList.contains(\"opened\")) {\n this.close();\n } else {\n this.updatePalettePosition();\n this.open();\n }\n });\n\n this.addEventListener(\"keydown\", (event: KeyboardEvent) => {\n if (event.key === \"Enter\") {\n this.open();\n event.preventDefault();\n }\n });\n\n this.updatePalette();\n }\n\n if (!this.hasAttribute(\"tabIndex\")) {\n this.tabIndex = 0;\n }\n }\n\n public attributeChangedCallback(): void {\n if (this.colorPalette) {\n this.updatePalette();\n }\n }\n\n private updatePalette(): void {\n while (this.colorPalette.firstChild) {\n this.colorPalette.removeChild(this.colorPalette.firstChild);\n }\n this.colorNumberInColumn = Math.ceil(this.colorList.length / this.columnCount);\n this.colorPalette.style.height = `${this.colorNumberInColumn * this.colorSize}px`;\n this.colorPalette.style.width = `${this.colorSize * this.columnCount}px`;\n\n this.colorPalette.appendChild(this.createColorPaletteFragment());\n }\n\n private createColorPaletteFragment(): DocumentFragment {\n const fragment: DocumentFragment = document.createDocumentFragment();\n const predefinedColor = this.color;\n for (const colorValue of this.colorList) {\n const colorElement = document.createElement(\"div\");\n colorElement.classList.add(\"color\");\n colorElement.style.backgroundColor = colorValue;\n colorElement.style.width = `${this.colorSize}px`;\n colorElement.style.height = `${this.colorSize}px`;\n colorElement.addEventListener(\"pointerdown\", () => {\n this.color = colorValue;\n this.close();\n this.dispatchValueChange();\n });\n if (predefinedColor === colorValue) {\n this.selectedColorElement = colorElement;\n this.selectedColorElement.classList.add(\"active-color\");\n }\n fragment.appendChild(colorElement);\n }\n return fragment;\n }\n\n private get selectedColorElement(): HTMLDivElement {\n return this._selectedColorElement;\n }\n\n private set selectedColorElement(selectedColorElement: HTMLDivElement) {\n if (this._selectedColorElement) {\n this._selectedColorElement.classList.remove(\"active-color\");\n }\n this._selectedColorElement = selectedColorElement;\n if (this._selectedColorElement) {\n this._selectedColorElement.classList.add(\"active-color\");\n }\n }\n\n private open() {\n if (this.disabled) {\n return;\n }\n this.colorPalette.classList.add(\"opened\");\n this.ripple.classList.add(\"active\");\n this.colorWhenOpen = this.color;\n\n this.saveScrollPosition();\n\n window.addEventListener(\"keydown\", this.keyDownListener, { capture: true });\n window.addEventListener(\"pointerdown\", this.modalityListener, { capture: true });\n window.addEventListener(\"scroll\", this.scrollListener, { capture: true });\n }\n\n private close() {\n this.colorPalette.classList.remove(\"opened\");\n this.ripple.classList.remove(\"active\");\n\n window.removeEventListener(\"keydown\", this.keyDownListener, { capture: true });\n window.removeEventListener(\"pointerdown\", this.modalityListener, { capture: true });\n window.removeEventListener(\"scroll\", this.scrollListener, { capture: true });\n }\n\n private keyDownListener = (event) => {\n if (event.defaultPrevented) {\n return;\n }\n let shouldPrevent = true;\n const currentIndex = this.colorList.indexOf(this.color);\n switch (event.key) {\n case \"Esc\":\n case \"Escape\":\n if (this.colorWhenOpen) {\n this.color = this.colorWhenOpen;\n }\n this.close();\n break;\n case \"Up\":\n case \"ArrowUp\":\n if (currentIndex > 0) {\n this.color = this.colorList[currentIndex - 1];\n } else {\n this.color = this.colorList[this.colorList.length - 1];\n }\n break;\n case \"Down\":\n case \"ArrowDown\":\n if (currentIndex < this.colorList.length - 1) {\n this.color = this.colorList[currentIndex + 1];\n } else {\n this.color = this.colorList[0];\n }\n break;\n case \"Left\":\n case \"ArrowLeft\": {\n let indexAfterLeftNavigation;\n if (currentIndex === 0) {\n indexAfterLeftNavigation = this.colorList.length - 1;\n } else {\n indexAfterLeftNavigation = currentIndex - this.colorNumberInColumn;\n if (indexAfterLeftNavigation < 0) {\n indexAfterLeftNavigation = this.colorList.length + indexAfterLeftNavigation;\n if (indexAfterLeftNavigation % this.colorNumberInColumn > 0) {\n indexAfterLeftNavigation--;\n }\n }\n }\n this.color = this.colorList[indexAfterLeftNavigation];\n break;\n }\n case \"Right\":\n case \"ArrowRight\": {\n let indexAfterRightNavigation;\n if (currentIndex === this.colorList.length - 1) {\n indexAfterRightNavigation = 0;\n } else {\n indexAfterRightNavigation = currentIndex + this.colorNumberInColumn;\n if (indexAfterRightNavigation >= this.colorList.length) {\n indexAfterRightNavigation = indexAfterRightNavigation - this.colorList.length;\n if (indexAfterRightNavigation < this.colorNumberInColumn) {\n indexAfterRightNavigation++;\n }\n }\n }\n this.color = this.colorList[indexAfterRightNavigation];\n break;\n }\n case \"Enter\":\n this.close();\n this.dispatchValueChange();\n break;\n default:\n shouldPrevent = false;\n return;\n }\n if (shouldPrevent) {\n event.preventDefault();\n }\n };\n\n private modalityListener = (event) => {\n if (!this.contains(event.target)) {\n this.close();\n }\n };\n\n private scrollListener = () => {\n this.restoreScrollPosition();\n };\n\n // This \"lock\" mechanism is based on Polymer's iron-overlay-behavior.\n private saveScrollPosition(): void {\n if (document.scrollingElement) {\n this._scrollTop = document.scrollingElement.scrollTop;\n this._scrollLeft = document.scrollingElement.scrollLeft;\n } else {\n // Since we don't know if is the body or html, get max.\n this._scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);\n this._scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);\n }\n }\n\n private restoreScrollPosition(): void {\n if (document.scrollingElement) {\n document.scrollingElement.scrollTop = this._scrollTop;\n document.scrollingElement.scrollLeft = this._scrollLeft;\n } else {\n // Since we don't know if is the body or html, set both.\n document.documentElement.scrollTop = document.body.scrollTop = this._scrollTop;\n document.documentElement.scrollLeft = document.body.scrollLeft = this._scrollLeft;\n }\n }\n\n private updatePalettePosition(): void {\n const rect = this.getBoundingClientRect();\n if (rect.left + this.colorPalette.offsetWidth > this.scrollingElementClientWidth) {\n this.colorPalette.style.left = `${this.scrollingElementClientWidth - this.colorPalette.offsetWidth}px`;\n } else {\n this.colorPalette.style.left = `${rect.left}px`;\n }\n if (rect.top + this.colorPalette.offsetHeight > this.scrollingElementClientHeight) {\n this.colorPalette.style.top = `${this.scrollingElementClientHeight - this.colorPalette.offsetHeight}px`;\n } else {\n this.colorPalette.style.top = `${rect.top}px`;\n }\n }\n\n private get scrollingElementClientHeight(): number {\n if (document.scrollingElement) {\n return document.scrollingElement.clientHeight;\n } else {\n return Math.max(document.documentElement.clientHeight, document.body.clientHeight);\n }\n }\n\n private get scrollingElementClientWidth(): number {\n if (document.scrollingElement) {\n return document.scrollingElement.clientWidth;\n } else {\n return Math.max(document.documentElement.clientWidth, document.body.clientWidth);\n }\n }\n\n private dispatchValueChange(): void {\n this.dispatchEvent(new CustomEvent<IValueChangeEventDetail>(\"value-change\", { detail: this.color }));\n }\n}\n\ncustomElements.define(SwatchPicker.ID, SwatchPicker);\n"],"names":["htmlTemplate","defaultColors","tokens","_SwatchPicker","ElementBase","event","shouldPrevent","currentIndex","indexAfterLeftNavigation","indexAfterRightNavigation","color","colors","columnCount","disabled","colorSize","template","fragment","predefinedColor","colorValue","colorElement","selectedColorElement","rect","SwatchPicker"],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ {
2
+ "@cypress/vite-dev-server@5.0.7": {
3
+ "licenses": "MIT",
4
+ "repository": "https://github.com/cypress-io/cypress",
5
+ "licenseUrl": "https://github.com/cypress-io/cypress/tree/develop/npm/vite-dev-server#readme"
6
+ },
7
+ "@rollup/plugin-node-resolve@15.2.3": {
8
+ "licenses": "MIT",
9
+ "repository": "https://github.com/rollup/plugins",
10
+ "licenseUrl": "https://github.com/rollup/plugins/raw/HEAD/LICENSE"
11
+ },
12
+ "@types/node@20.10.6": {
13
+ "licenses": "MIT",
14
+ "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
15
+ "licenseUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/raw/HEAD/LICENSE"
16
+ },
17
+ "@types/postcss-prefix-selector@1.16.3": {
18
+ "licenses": "MIT",
19
+ "repository": "https://github.com/DefinitelyTyped/DefinitelyTyped",
20
+ "licenseUrl": "https://github.com/DefinitelyTyped/DefinitelyTyped/raw/HEAD/LICENSE"
21
+ },
22
+ "@typescript-eslint/eslint-plugin@6.17.0": {
23
+ "licenses": "MIT",
24
+ "repository": "https://github.com/typescript-eslint/typescript-eslint",
25
+ "licenseUrl": "https://github.com/typescript-eslint/typescript-eslint/raw/HEAD/LICENSE"
26
+ },
27
+ "@typescript-eslint/parser@6.17.0": {
28
+ "licenses": "BSD-2-Clause",
29
+ "repository": "https://github.com/typescript-eslint/typescript-eslint",
30
+ "licenseUrl": "https://github.com/typescript-eslint/typescript-eslint/raw/HEAD/LICENSE"
31
+ },
32
+ "@vitest/coverage-v8@1.1.1": {
33
+ "licenses": "MIT",
34
+ "repository": "https://github.com/vitest-dev/vitest",
35
+ "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE"
36
+ },
37
+ "@vitest/ui@1.1.1": {
38
+ "licenses": "MIT",
39
+ "repository": "https://github.com/vitest-dev/vitest",
40
+ "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE"
41
+ },
42
+ "axe-core@4.8.3": {
43
+ "licenses": "MPL-2.0",
44
+ "repository": "https://github.com/dequelabs/axe-core",
45
+ "licenseUrl": "https://github.com/dequelabs/axe-core/raw/HEAD/LICENSE"
46
+ },
47
+ "cypress-axe@1.5.0": {
48
+ "licenses": "MIT",
49
+ "repository": "https://github.com/component-driven/cypress-axe",
50
+ "licenseUrl": "https://github.com/component-driven/cypress-axe/raw/HEAD/License.md"
51
+ },
52
+ "cypress-real-events@1.13.0": {
53
+ "licenses": "MIT",
54
+ "repository": "https://github.com/dmtrKovalenko/cypress-real-events",
55
+ "licenseUrl": "https://github.com/dmtrKovalenko/cypress-real-events"
56
+ },
57
+ "cypress@13.6.2": {
58
+ "licenses": "MIT",
59
+ "repository": "https://github.com/cypress-io/cypress",
60
+ "licenseUrl": "https://cypress.io"
61
+ },
62
+ "esbuild@0.19.11": {
63
+ "licenses": "MIT",
64
+ "repository": "https://github.com/evanw/esbuild",
65
+ "licenseUrl": "https://github.com/evanw/esbuild/raw/HEAD/LICENSE.md"
66
+ },
67
+ "eslint-config-google@0.14.0": {
68
+ "licenses": "Apache-2.0",
69
+ "repository": "https://github.com/google/eslint-config-google",
70
+ "licenseUrl": "https://github.com/google/eslint-config-google/raw/HEAD/LICENSE"
71
+ },
72
+ "eslint-config-prettier@9.1.0": {
73
+ "licenses": "MIT",
74
+ "repository": "https://github.com/prettier/eslint-config-prettier",
75
+ "licenseUrl": "https://github.com/prettier/eslint-config-prettier/raw/HEAD/LICENSE"
76
+ },
77
+ "eslint@8.56.0": {
78
+ "licenses": "MIT",
79
+ "repository": "https://github.com/eslint/eslint",
80
+ "licenseUrl": "https://github.com/eslint/eslint/raw/HEAD/LICENSE"
81
+ },
82
+ "github-markdown-css@5.5.0": {
83
+ "licenses": "MIT",
84
+ "repository": "https://github.com/sindresorhus/github-markdown-css",
85
+ "licenseUrl": "https://github.com/sindresorhus/github-markdown-css/raw/HEAD/license"
86
+ },
87
+ "highlight.js@11.9.0": {
88
+ "licenses": "BSD-3-Clause",
89
+ "repository": "https://github.com/highlightjs/highlight.js",
90
+ "licenseUrl": "https://github.com/highlightjs/highlight.js/raw/HEAD/LICENSE"
91
+ },
92
+ "junit-report-builder@3.1.0": {
93
+ "licenses": "MIT",
94
+ "repository": "https://github.com/davidparsson/junit-report-builder",
95
+ "licenseUrl": "https://github.com/davidparsson/junit-report-builder/raw/HEAD/LICENSE"
96
+ },
97
+ "lint-staged@15.2.0": {
98
+ "licenses": "MIT",
99
+ "repository": "https://github.com/okonet/lint-staged",
100
+ "licenseUrl": "https://github.com/okonet/lint-staged/raw/HEAD/LICENSE"
101
+ },
102
+ "marked@11.1.1": {
103
+ "licenses": "MIT",
104
+ "repository": "https://github.com/markedjs/marked",
105
+ "licenseUrl": "https://github.com/markedjs/marked/raw/HEAD/LICENSE.md"
106
+ },
107
+ "postcss-prefix-selector@1.16.0": {
108
+ "licenses": "MIT",
109
+ "repository": "https://github.com/RadValentin/postcss-prefix-selector",
110
+ "licenseUrl": "https://github.com/RadValentin/postcss-prefix-selector/raw/HEAD/LICENSE"
111
+ },
112
+ "postcss@8.4.32": {
113
+ "licenses": "MIT",
114
+ "repository": "https://github.com/postcss/postcss",
115
+ "licenseUrl": "https://github.com/postcss/postcss/raw/HEAD/LICENSE"
116
+ },
117
+ "prettier@3.1.1": {
118
+ "licenses": "MIT",
119
+ "repository": "https://github.com/prettier/prettier",
120
+ "licenseUrl": "https://github.com/prettier/prettier/raw/HEAD/LICENSE"
121
+ },
122
+ "resolve-pkg@2.0.0": {
123
+ "licenses": "MIT",
124
+ "repository": "https://github.com/sindresorhus/resolve-pkg",
125
+ "licenseUrl": "https://github.com/sindresorhus/resolve-pkg/raw/HEAD/license"
126
+ },
127
+ "sass@1.69.6": {
128
+ "licenses": "MIT",
129
+ "repository": "https://github.com/sass/dart-sass",
130
+ "licenseUrl": "https://github.com/sass/dart-sass/raw/HEAD/LICENSE"
131
+ },
132
+ "style-dictionary@3.9.1": {
133
+ "licenses": "Apache-2.0",
134
+ "repository": "https://github.com/amzn/style-dictionary",
135
+ "licenseUrl": "https://github.com/amzn/style-dictionary/raw/HEAD/LICENSE"
136
+ },
137
+ "stylelint-config-recommended-scss@14.0.0": {
138
+ "licenses": "MIT",
139
+ "repository": "https://github.com/stylelint-scss/stylelint-config-recommended-scss",
140
+ "licenseUrl": "https://github.com/stylelint-scss/stylelint-config-recommended-scss/raw/HEAD/LICENSE"
141
+ },
142
+ "stylelint-config-standard@36.0.0": {
143
+ "licenses": "MIT",
144
+ "repository": "https://github.com/stylelint/stylelint-config-standard",
145
+ "licenseUrl": "https://github.com/stylelint/stylelint-config-standard/raw/HEAD/LICENSE"
146
+ },
147
+ "stylelint-scss@6.0.0": {
148
+ "licenses": "MIT",
149
+ "repository": "https://github.com/stylelint-scss/stylelint-scss",
150
+ "licenseUrl": "https://github.com/stylelint-scss/stylelint-scss/raw/HEAD/LICENSE"
151
+ },
152
+ "stylelint@16.1.0": {
153
+ "licenses": "MIT",
154
+ "repository": "https://github.com/stylelint/stylelint",
155
+ "licenseUrl": "https://github.com/stylelint/stylelint/raw/HEAD/LICENSE"
156
+ },
157
+ "tsup@8.0.1": {
158
+ "licenses": "MIT",
159
+ "repository": "https://github.com/egoist/tsup",
160
+ "licenseUrl": "https://github.com/egoist/tsup/raw/HEAD/LICENSE"
161
+ },
162
+ "turbo@1.11.2": {
163
+ "licenses": "MPL-2.0",
164
+ "repository": "https://github.com/vercel/turbo",
165
+ "licenseUrl": "https://github.com/vercel/turbo/raw/HEAD/LICENSE"
166
+ },
167
+ "typescript@5.3.3": {
168
+ "licenses": "Apache-2.0",
169
+ "repository": "https://github.com/Microsoft/TypeScript",
170
+ "licenseUrl": "https://github.com/Microsoft/TypeScript/raw/HEAD/LICENSE.txt"
171
+ },
172
+ "vite-tsconfig-paths@4.2.3": {
173
+ "licenses": "MIT",
174
+ "repository": "https://github.com/aleclarson/vite-tsconfig-paths",
175
+ "licenseUrl": "https://github.com/aleclarson/vite-tsconfig-paths/raw/HEAD/LICENSE"
176
+ },
177
+ "vite@5.0.10": {
178
+ "licenses": "MIT",
179
+ "repository": "https://github.com/vitejs/vite",
180
+ "licenseUrl": "https://github.com/vitejs/vite/raw/HEAD/LICENSE.md"
181
+ },
182
+ "vitest@1.1.1": {
183
+ "licenses": "MIT",
184
+ "repository": "https://github.com/vitest-dev/vitest",
185
+ "licenseUrl": "https://github.com/vitest-dev/vitest/raw/HEAD/LICENSE.md"
186
+ },
187
+ "yargs@17.7.2": {
188
+ "licenses": "MIT",
189
+ "repository": "https://github.com/yargs/yargs",
190
+ "licenseUrl": "https://github.com/yargs/yargs/raw/HEAD/LICENSE"
191
+ }
192
+ }