@node-projects/web-component-designer 0.2.17 → 0.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/elements/helper/getBoxQuads.js +91 -6
  2. package/dist/elements/helper/getBoxQuads.js.map +1 -1
  3. package/dist/elements/services/DefaultServiceBootstrap.js +3 -0
  4. package/dist/elements/services/DefaultServiceBootstrap.js.map +1 -1
  5. package/dist/elements/widgets/designerView/extensions/contextMenu/ToolWindowsContextMenu.d.ts +8 -0
  6. package/dist/elements/widgets/designerView/extensions/contextMenu/ToolWindowsContextMenu.js +54 -0
  7. package/dist/elements/widgets/designerView/extensions/contextMenu/ToolWindowsContextMenu.js.map +1 -0
  8. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.d.ts +1 -0
  9. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.js +19 -1
  10. package/dist/elements/widgets/designerView/extensions/svg/UnifiedGeometryExtension.js.map +1 -1
  11. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.js +7 -1
  12. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.js.map +1 -1
  13. package/dist/elements/widgets/designerView/tools/toolBar/popups/BorderRadiusEditorWindow.d.ts +82 -0
  14. package/dist/elements/widgets/designerView/tools/toolBar/popups/BorderRadiusEditorWindow.js +1260 -0
  15. package/dist/elements/widgets/designerView/tools/toolBar/popups/BorderRadiusEditorWindow.js.map +1 -0
  16. package/dist/elements/widgets/designerView/tools/toolBar/popups/BoxShadowEditorWindow.d.ts +38 -0
  17. package/dist/elements/widgets/designerView/tools/toolBar/popups/BoxShadowEditorWindow.js +518 -0
  18. package/dist/elements/widgets/designerView/tools/toolBar/popups/BoxShadowEditorWindow.js.map +1 -0
  19. package/dist/elements/widgets/designerView/tools/toolBar/popups/DraggableToolWindow.d.ts +39 -0
  20. package/dist/elements/widgets/designerView/tools/toolBar/popups/DraggableToolWindow.js +181 -0
  21. package/dist/elements/widgets/designerView/tools/toolBar/popups/DraggableToolWindow.js.map +1 -0
  22. package/dist/elements/widgets/designerView/tools/toolBar/popups/GradientEditorWindow.d.ts +53 -0
  23. package/dist/elements/widgets/designerView/tools/toolBar/popups/GradientEditorWindow.js +753 -0
  24. package/dist/elements/widgets/designerView/tools/toolBar/popups/GradientEditorWindow.js.map +1 -0
  25. package/dist/elements/widgets/designerView/tools/toolBar/popups/TextShadowEditorWindow.d.ts +36 -0
  26. package/dist/elements/widgets/designerView/tools/toolBar/popups/TextShadowEditorWindow.js +449 -0
  27. package/dist/elements/widgets/designerView/tools/toolBar/popups/TextShadowEditorWindow.js.map +1 -0
  28. package/dist/elements/widgets/designerView/tools/toolBar/popups/TransformToolPopup.d.ts +8 -6
  29. package/dist/elements/widgets/designerView/tools/toolBar/popups/TransformToolPopup.js +56 -72
  30. package/dist/elements/widgets/designerView/tools/toolBar/popups/TransformToolPopup.js.map +1 -1
  31. package/dist/index-min.js +544 -7
  32. package/dist/index-min.js.map +4 -4
  33. package/dist/index.d.ts +6 -0
  34. package/dist/index.js +6 -0
  35. package/dist/index.js.map +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BorderRadiusEditorWindow.js","sourceRoot":"","sources":["../../../../../../../src/elements/widgets/designerView/tools/toolBar/popups/BorderRadiusEditorWindow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { DraggableToolWindow } from './DraggableToolWindow.js';
2
+ import { IDesignerCanvas } from '../../../IDesignerCanvas.js';
3
+ export declare class BoxShadowEditorWindow extends DraggableToolWindow {
4
+ private _designerCanvas;
5
+ private _layers;
6
+ private _selectedIndex;
7
+ private _layerList;
8
+ private _removeBtn;
9
+ private _insetCheck;
10
+ private _enabledCheck;
11
+ private _inputX;
12
+ private _inputY;
13
+ private _inputBlur;
14
+ private _inputSpread;
15
+ private _inputColor;
16
+ private _inputOpacity;
17
+ private _opacityVal;
18
+ private _previewBox;
19
+ private _cssOutput;
20
+ private _loadBtn;
21
+ private _copyBtn;
22
+ private _applyBtn;
23
+ protected get windowTitle(): string;
24
+ protected get windowContentStyle(): CSSStyleSheet;
25
+ protected get windowTemplate(): string;
26
+ constructor(designerCanvas?: IDesignerCanvas);
27
+ private _loadFromPrimarySelection;
28
+ private _currentLayer;
29
+ private _addLayer;
30
+ private _duplicateLayer;
31
+ private _removeLayer;
32
+ private _moveLayer;
33
+ private _renderList;
34
+ private _loadControls;
35
+ private _buildCss;
36
+ private _refresh;
37
+ private _applyToSelection;
38
+ }
@@ -0,0 +1,518 @@
1
+ import { css } from '@node-projects/base-custom-webcomponent';
2
+ import { DraggableToolWindow } from './DraggableToolWindow.js';
3
+ function defaultLayer() {
4
+ return { inset: false, offsetX: 5, offsetY: 5, blur: 10, spread: 0, color: '#000000', opacity: 50, enabled: true };
5
+ }
6
+ function rgbToHex(r, g, b) {
7
+ return '#' + [r, g, b].map(v => v.toString(16).padStart(2, '0')).join('');
8
+ }
9
+ /**
10
+ * Splits a box-shadow value string into individual shadow tokens,
11
+ * correctly ignoring commas inside color functions like rgba().
12
+ */
13
+ function splitShadowLayers(value) {
14
+ const layers = [];
15
+ let depth = 0;
16
+ let current = '';
17
+ for (let i = 0; i < value.length; i++) {
18
+ const ch = value[i];
19
+ if (ch === '(')
20
+ depth++;
21
+ else if (ch === ')')
22
+ depth--;
23
+ else if (ch === ',' && depth === 0) {
24
+ const trimmed = current.trim();
25
+ if (trimmed)
26
+ layers.push(trimmed);
27
+ current = '';
28
+ continue;
29
+ }
30
+ current += ch;
31
+ }
32
+ const trimmed = current.trim();
33
+ if (trimmed)
34
+ layers.push(trimmed);
35
+ return layers;
36
+ }
37
+ function parseCssBoxShadow(value) {
38
+ if (!value || value === 'none')
39
+ return [defaultLayer()];
40
+ const layers = [];
41
+ for (const token of splitShadowLayers(value)) {
42
+ const layer = parseOneShadowLayer(token.trim());
43
+ if (layer)
44
+ layers.push(layer);
45
+ }
46
+ return layers.length ? layers : [defaultLayer()];
47
+ }
48
+ function parseOneShadowLayer(token) {
49
+ // Extract color function first (rgb/rgba/hsl/hsla) to avoid its spaces confusing token split
50
+ let color = '#000000';
51
+ let opacity = 100;
52
+ let remaining = token;
53
+ const colorFnMatch = remaining.match(/(rgba?\([^)]+\)|hsla?\([^)]+\))/);
54
+ if (colorFnMatch) {
55
+ const fn = colorFnMatch[1];
56
+ remaining = remaining.replace(fn, '').trim();
57
+ const rgbaMatch = fn.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*([\d.]+))?\s*\)/);
58
+ if (rgbaMatch) {
59
+ color = rgbToHex(parseInt(rgbaMatch[1]), parseInt(rgbaMatch[2]), parseInt(rgbaMatch[3]));
60
+ opacity = rgbaMatch[4] != null ? Math.round(parseFloat(rgbaMatch[4]) * 100) : 100;
61
+ }
62
+ }
63
+ else {
64
+ // Try hex color
65
+ const hexMatch = remaining.match(/(#[0-9a-fA-F]{3,8})/);
66
+ if (hexMatch) {
67
+ color = hexMatch[1].length === 4
68
+ ? '#' + hexMatch[1].slice(1).split('').map(c => c + c).join('')
69
+ : hexMatch[1].slice(0, 7);
70
+ remaining = remaining.replace(hexMatch[1], '').trim();
71
+ }
72
+ }
73
+ // What remains: [inset] offsetX offsetY [blur] [spread]
74
+ const parts = remaining.split(/\s+/).filter(Boolean);
75
+ let inset = false;
76
+ const numbers = [];
77
+ for (const p of parts) {
78
+ if (p === 'inset') {
79
+ inset = true;
80
+ continue;
81
+ }
82
+ const n = parseFloat(p);
83
+ if (!isNaN(n))
84
+ numbers.push(n);
85
+ }
86
+ if (numbers.length < 2)
87
+ return null;
88
+ return {
89
+ inset,
90
+ offsetX: numbers[0] ?? 0,
91
+ offsetY: numbers[1] ?? 0,
92
+ blur: numbers[2] ?? 0,
93
+ spread: numbers[3] ?? 0,
94
+ color,
95
+ opacity,
96
+ enabled: true,
97
+ };
98
+ }
99
+ function layerToCss(l) {
100
+ const rgb = hexToRgb(l.color);
101
+ const a = (l.opacity / 100).toFixed(2);
102
+ return `${l.inset ? 'inset ' : ''}${l.offsetX}px ${l.offsetY}px ${l.blur}px ${l.spread}px rgba(${rgb},${a})`;
103
+ }
104
+ function hexToRgb(hex) {
105
+ const r = parseInt(hex.slice(1, 3), 16);
106
+ const g = parseInt(hex.slice(3, 5), 16);
107
+ const b = parseInt(hex.slice(5, 7), 16);
108
+ return `${r},${g},${b}`;
109
+ }
110
+ export class BoxShadowEditorWindow extends DraggableToolWindow {
111
+ _designerCanvas;
112
+ _layers = [defaultLayer()];
113
+ _selectedIndex = 0;
114
+ // List
115
+ _layerList;
116
+ _removeBtn;
117
+ // Controls
118
+ _insetCheck;
119
+ _enabledCheck;
120
+ _inputX;
121
+ _inputY;
122
+ _inputBlur;
123
+ _inputSpread;
124
+ _inputColor;
125
+ _inputOpacity;
126
+ _opacityVal;
127
+ // Preview
128
+ _previewBox;
129
+ // Output
130
+ _cssOutput;
131
+ _loadBtn;
132
+ _copyBtn;
133
+ _applyBtn;
134
+ get windowTitle() { return 'Box Shadow Editor'; }
135
+ get windowContentStyle() {
136
+ return css `
137
+ * { box-sizing: border-box; }
138
+ .bse-root {
139
+ display: flex;
140
+ flex-direction: column;
141
+ width: 380px;
142
+ color: #ddd;
143
+ font-family: sans-serif;
144
+ font-size: 12px;
145
+ padding: 8px;
146
+ gap: 8px;
147
+ background: #2c2c2c;
148
+ }
149
+ .preview-area {
150
+ display: flex;
151
+ align-items: center;
152
+ justify-content: center;
153
+ height: 110px;
154
+ background: repeating-conic-gradient(#444 0% 25%, #333 0% 50%) 0 0 / 16px 16px;
155
+ border-radius: 4px;
156
+ border: 1px solid #111;
157
+ }
158
+ .preview-box {
159
+ width: 70px;
160
+ height: 70px;
161
+ background: #fff;
162
+ border-radius: 4px;
163
+ }
164
+ .layers-row {
165
+ display: flex;
166
+ gap: 6px;
167
+ align-items: flex-start;
168
+ }
169
+ .layer-list {
170
+ list-style: none;
171
+ margin: 0;
172
+ padding: 0;
173
+ flex: 1;
174
+ min-height: 60px;
175
+ max-height: 100px;
176
+ overflow-y: auto;
177
+ background: #1e1e1e;
178
+ border: 1px solid #111;
179
+ border-radius: 3px;
180
+ }
181
+ .layer-list li {
182
+ padding: 4px 8px;
183
+ cursor: pointer;
184
+ display: flex;
185
+ align-items: center;
186
+ gap: 6px;
187
+ white-space: nowrap;
188
+ overflow: hidden;
189
+ text-overflow: ellipsis;
190
+ }
191
+ .layer-list li.selected {
192
+ background: #3a3a5a;
193
+ }
194
+ .layer-list li .swatch {
195
+ width: 12px;
196
+ height: 12px;
197
+ border-radius: 2px;
198
+ border: 1px solid #555;
199
+ flex-shrink: 0;
200
+ display: inline-block;
201
+ }
202
+ .layer-list li .disabled-label { opacity: 0.4; }
203
+ .layer-buttons {
204
+ display: flex;
205
+ flex-direction: column;
206
+ gap: 4px;
207
+ }
208
+ .layer-buttons button {
209
+ width: 24px;
210
+ height: 24px;
211
+ padding: 0;
212
+ font-size: 14px;
213
+ background: #444;
214
+ color: #ddd;
215
+ border: 1px solid #222;
216
+ border-radius: 3px;
217
+ cursor: pointer;
218
+ line-height: 1;
219
+ }
220
+ .layer-buttons button:hover { background: #666; }
221
+ .controls {
222
+ display: grid;
223
+ grid-template-columns: 90px 1fr 36px;
224
+ gap: 4px 6px;
225
+ align-items: center;
226
+ }
227
+ .controls label { color: #aaa; }
228
+ .controls input[type=range] { width: 100%; }
229
+ .controls input[type=number] {
230
+ width: 100%;
231
+ background: #1e1e1e;
232
+ border: 1px solid #444;
233
+ color: #ddd;
234
+ border-radius: 3px;
235
+ padding: 2px 4px;
236
+ }
237
+ .controls input[type=color] {
238
+ width: 100%;
239
+ height: 24px;
240
+ padding: 1px;
241
+ background: #1e1e1e;
242
+ border: 1px solid #444;
243
+ border-radius: 3px;
244
+ cursor: pointer;
245
+ }
246
+ .check-row {
247
+ display: flex;
248
+ gap: 14px;
249
+ align-items: center;
250
+ margin-bottom: 2px;
251
+ }
252
+ .check-row label {
253
+ display: flex;
254
+ align-items: center;
255
+ gap: 4px;
256
+ cursor: pointer;
257
+ user-select: none;
258
+ }
259
+ .css-out {
260
+ background: #1e1e1e;
261
+ border: 1px solid #333;
262
+ border-radius: 3px;
263
+ color: #7ec8e3;
264
+ font-family: monospace;
265
+ font-size: 11px;
266
+ padding: 6px;
267
+ resize: none;
268
+ width: 100%;
269
+ height: 48px;
270
+ }
271
+ .actions {
272
+ display: flex;
273
+ gap: 6px;
274
+ justify-content: flex-end;
275
+ }
276
+ .actions .load-btn { margin-right: auto; }
277
+ .actions button, .apply-btn {
278
+ padding: 4px 12px;
279
+ background: #3a3a3a;
280
+ color: #ddd;
281
+ border: 1px solid #555;
282
+ border-radius: 3px;
283
+ cursor: pointer;
284
+ font-size: 12px;
285
+ }
286
+ .actions button:hover, .apply-btn:hover { background: #555; }
287
+ .apply-btn {
288
+ background: #3a6a9a;
289
+ border-color: #2a5a8a;
290
+ }
291
+ .apply-btn:hover { background: #4a7aaa; }
292
+ .val-label { text-align: right; color: #888; }
293
+ `;
294
+ }
295
+ get windowTemplate() {
296
+ return `
297
+ <div class="bse-root">
298
+ <div class="preview-area">
299
+ <div class="preview-box" id="bse-preview"></div>
300
+ </div>
301
+
302
+ <div class="layers-row">
303
+ <ul class="layer-list" id="bse-layer-list"></ul>
304
+ <div class="layer-buttons">
305
+ <button id="bse-add-btn" title="Add layer">+</button>
306
+ <button id="bse-dup-btn" title="Duplicate layer">⧉</button>
307
+ <button id="bse-up-btn" title="Move up">↑</button>
308
+ <button id="bse-down-btn" title="Move down">↓</button>
309
+ <button id="bse-remove-btn" title="Remove layer">−</button>
310
+ </div>
311
+ </div>
312
+
313
+ <div class="check-row">
314
+ <label><input type="checkbox" id="bse-enabled"> Enabled</label>
315
+ <label><input type="checkbox" id="bse-inset"> Inset</label>
316
+ </div>
317
+
318
+ <div class="controls">
319
+ <label>Offset X</label>
320
+ <input type="range" id="bse-x" min="-100" max="100" step="1">
321
+ <span class="val-label" id="bse-x-val">0px</span>
322
+
323
+ <label>Offset Y</label>
324
+ <input type="range" id="bse-y" min="-100" max="100" step="1">
325
+ <span class="val-label" id="bse-y-val">0px</span>
326
+
327
+ <label>Blur</label>
328
+ <input type="range" id="bse-blur" min="0" max="200" step="1">
329
+ <span class="val-label" id="bse-blur-val">0px</span>
330
+
331
+ <label>Spread</label>
332
+ <input type="range" id="bse-spread" min="-50" max="100" step="1">
333
+ <span class="val-label" id="bse-spread-val">0px</span>
334
+
335
+ <label>Color</label>
336
+ <input type="color" id="bse-color" value="#000000">
337
+ <span></span>
338
+
339
+ <label>Opacity</label>
340
+ <input type="range" id="bse-opacity" min="0" max="100" step="1">
341
+ <span class="val-label" id="bse-opacity-val">100%</span>
342
+ </div>
343
+
344
+ <textarea class="css-out" id="bse-css-out"></textarea>
345
+
346
+ <div class="actions">
347
+ <button class="load-btn" id="bse-load-btn">Load</button>
348
+ <button id="bse-copy-btn">Copy CSS</button>
349
+ <button class="apply-btn" id="bse-apply-btn">Apply to selection</button>
350
+ </div>
351
+ </div>`;
352
+ }
353
+ constructor(designerCanvas) {
354
+ super();
355
+ this._designerCanvas = designerCanvas;
356
+ this._layerList = this._getDomElement('bse-layer-list');
357
+ this._removeBtn = this._getDomElement('bse-remove-btn');
358
+ this._insetCheck = this._getDomElement('bse-inset');
359
+ this._enabledCheck = this._getDomElement('bse-enabled');
360
+ this._inputX = this._getDomElement('bse-x');
361
+ this._inputY = this._getDomElement('bse-y');
362
+ this._inputBlur = this._getDomElement('bse-blur');
363
+ this._inputSpread = this._getDomElement('bse-spread');
364
+ this._inputColor = this._getDomElement('bse-color');
365
+ this._inputOpacity = this._getDomElement('bse-opacity');
366
+ this._opacityVal = this._getDomElement('bse-opacity-val');
367
+ this._previewBox = this._getDomElement('bse-preview');
368
+ this._cssOutput = this._getDomElement('bse-css-out');
369
+ this._loadBtn = this._getDomElement('bse-load-btn');
370
+ this._copyBtn = this._getDomElement('bse-copy-btn');
371
+ this._applyBtn = this._getDomElement('bse-apply-btn');
372
+ this._getDomElement('bse-add-btn').onclick = () => this._addLayer();
373
+ this._getDomElement('bse-dup-btn').onclick = () => this._duplicateLayer();
374
+ this._getDomElement('bse-up-btn').onclick = () => this._moveLayer(-1);
375
+ this._getDomElement('bse-down-btn').onclick = () => this._moveLayer(1);
376
+ this._removeBtn.onclick = () => this._removeLayer();
377
+ this._insetCheck.onchange = () => { this._currentLayer().inset = this._insetCheck.checked; this._refresh(); };
378
+ this._enabledCheck.onchange = () => { this._currentLayer().enabled = this._enabledCheck.checked; this._refresh(); };
379
+ for (const [input, key, valId] of [
380
+ [this._inputX, 'offsetX', 'bse-x-val'],
381
+ [this._inputY, 'offsetY', 'bse-y-val'],
382
+ [this._inputBlur, 'blur', 'bse-blur-val'],
383
+ [this._inputSpread, 'spread', 'bse-spread-val'],
384
+ ]) {
385
+ input.oninput = () => {
386
+ this._currentLayer()[key] = Number(input.value);
387
+ this._getDomElement(valId).textContent = input.value + 'px';
388
+ this._refresh();
389
+ };
390
+ }
391
+ this._inputColor.oninput = () => { this._currentLayer().color = this._inputColor.value; this._refresh(); };
392
+ this._inputOpacity.oninput = () => {
393
+ this._currentLayer().opacity = Number(this._inputOpacity.value);
394
+ this._opacityVal.textContent = this._inputOpacity.value + '%';
395
+ this._refresh();
396
+ };
397
+ this._copyBtn.onclick = () => {
398
+ navigator.clipboard?.writeText(this._cssOutput.value).catch(() => { });
399
+ };
400
+ this._applyBtn.onclick = () => this._applyToSelection();
401
+ this._loadBtn.onclick = () => {
402
+ this._loadFromPrimarySelection();
403
+ this._renderList();
404
+ this._loadControls();
405
+ this._refresh();
406
+ };
407
+ this._loadFromPrimarySelection();
408
+ this._renderList();
409
+ this._loadControls();
410
+ this._refresh();
411
+ }
412
+ _loadFromPrimarySelection() {
413
+ const primary = this._designerCanvas?.instanceServiceContainer?.selectionService?.primarySelection;
414
+ if (!primary)
415
+ return;
416
+ const existing = primary.getStyle('box-shadow');
417
+ if (existing) {
418
+ this._layers = parseCssBoxShadow(existing);
419
+ this._selectedIndex = 0;
420
+ }
421
+ }
422
+ _currentLayer() {
423
+ return this._layers[this._selectedIndex];
424
+ }
425
+ _addLayer() {
426
+ this._layers.push(defaultLayer());
427
+ this._selectedIndex = this._layers.length - 1;
428
+ this._renderList();
429
+ this._loadControls();
430
+ this._refresh();
431
+ }
432
+ _duplicateLayer() {
433
+ const clone = { ...this._currentLayer() };
434
+ this._layers.splice(this._selectedIndex + 1, 0, clone);
435
+ this._selectedIndex = this._selectedIndex + 1;
436
+ this._renderList();
437
+ this._loadControls();
438
+ this._refresh();
439
+ }
440
+ _removeLayer() {
441
+ if (this._layers.length <= 1)
442
+ return;
443
+ this._layers.splice(this._selectedIndex, 1);
444
+ this._selectedIndex = Math.min(this._selectedIndex, this._layers.length - 1);
445
+ this._renderList();
446
+ this._loadControls();
447
+ this._refresh();
448
+ }
449
+ _moveLayer(dir) {
450
+ const i = this._selectedIndex;
451
+ const j = i + dir;
452
+ if (j < 0 || j >= this._layers.length)
453
+ return;
454
+ [this._layers[i], this._layers[j]] = [this._layers[j], this._layers[i]];
455
+ this._selectedIndex = j;
456
+ this._renderList();
457
+ this._refresh();
458
+ }
459
+ _renderList() {
460
+ this._layerList.innerHTML = '';
461
+ this._layers.forEach((l, i) => {
462
+ const li = document.createElement('li');
463
+ if (i === this._selectedIndex)
464
+ li.classList.add('selected');
465
+ const swatch = document.createElement('span');
466
+ swatch.className = 'swatch';
467
+ swatch.style.background = l.color;
468
+ li.appendChild(swatch);
469
+ const lbl = document.createElement('span');
470
+ lbl.textContent = `${l.inset ? 'inset ' : ''}${l.offsetX}px ${l.offsetY}px ${l.blur}px ${l.spread}px`;
471
+ if (!l.enabled)
472
+ lbl.classList.add('disabled-label');
473
+ li.appendChild(lbl);
474
+ li.onclick = () => { this._selectedIndex = i; this._renderList(); this._loadControls(); };
475
+ this._layerList.appendChild(li);
476
+ });
477
+ }
478
+ _loadControls() {
479
+ const l = this._currentLayer();
480
+ this._insetCheck.checked = l.inset;
481
+ this._enabledCheck.checked = l.enabled;
482
+ this._inputX.value = String(l.offsetX);
483
+ this._getDomElement('bse-x-val').textContent = l.offsetX + 'px';
484
+ this._inputY.value = String(l.offsetY);
485
+ this._getDomElement('bse-y-val').textContent = l.offsetY + 'px';
486
+ this._inputBlur.value = String(l.blur);
487
+ this._getDomElement('bse-blur-val').textContent = l.blur + 'px';
488
+ this._inputSpread.value = String(l.spread);
489
+ this._getDomElement('bse-spread-val').textContent = l.spread + 'px';
490
+ this._inputColor.value = l.color;
491
+ this._inputOpacity.value = String(l.opacity);
492
+ this._opacityVal.textContent = l.opacity + '%';
493
+ }
494
+ _buildCss() {
495
+ return this._layers.filter(l => l.enabled).map(layerToCss).join(', ') || 'none';
496
+ }
497
+ _refresh() {
498
+ const cssVal = this._buildCss();
499
+ this._previewBox.style.boxShadow = cssVal;
500
+ this._cssOutput.value = `box-shadow: ${cssVal};`;
501
+ this._renderList();
502
+ }
503
+ _applyToSelection() {
504
+ if (!this._designerCanvas)
505
+ return;
506
+ const selection = this._designerCanvas.instanceServiceContainer.selectionService.selectedElements;
507
+ if (!selection?.length)
508
+ return;
509
+ const cssVal = this._buildCss();
510
+ const grp = selection[0].openGroup('Apply box-shadow');
511
+ for (const item of selection) {
512
+ item.setStyle('box-shadow', cssVal);
513
+ }
514
+ grp.commit();
515
+ }
516
+ }
517
+ customElements.define('node-projects-designer-box-shadow-editor', BoxShadowEditorWindow);
518
+ //# sourceMappingURL=BoxShadowEditorWindow.js.map