dialkit 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +171 -1
- package/dist/index.cjs +876 -337
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -6
- package/dist/index.d.ts +41 -6
- package/dist/index.js +878 -341
- package/dist/index.js.map +1 -1
- package/dist/solid/index.cjs +1011 -544
- package/dist/solid/index.cjs.map +1 -1
- package/dist/solid/index.d.cts +33 -3
- package/dist/solid/index.d.ts +33 -3
- package/dist/solid/index.js +864 -398
- package/dist/solid/index.js.map +1 -1
- package/dist/store/index.cjs +52 -12
- package/dist/store/index.cjs.map +1 -1
- package/dist/store/index.d.cts +25 -3
- package/dist/store/index.d.ts +25 -3
- package/dist/store/index.js +52 -12
- package/dist/store/index.js.map +1 -1
- package/dist/styles.css +256 -25
- package/dist/svelte/components/ControlRenderer.svelte +12 -0
- package/dist/svelte/components/ControlRenderer.svelte.d.ts.map +1 -1
- package/dist/svelte/components/DialRoot.svelte +22 -8
- package/dist/svelte/components/DialRoot.svelte.d.ts +3 -0
- package/dist/svelte/components/DialRoot.svelte.d.ts.map +1 -1
- package/dist/svelte/components/Folder.svelte +17 -8
- package/dist/svelte/components/Folder.svelte.d.ts.map +1 -1
- package/dist/svelte/components/Panel.svelte +14 -9
- package/dist/svelte/components/Panel.svelte.d.ts.map +1 -1
- package/dist/svelte/components/PresetManager.svelte +7 -6
- package/dist/svelte/components/PresetManager.svelte.d.ts.map +1 -1
- package/dist/svelte/components/SegmentedControl.svelte +30 -74
- package/dist/svelte/components/SegmentedControl.svelte.d.ts.map +1 -1
- package/dist/svelte/components/SelectControl.svelte +2 -1
- package/dist/svelte/components/SelectControl.svelte.d.ts.map +1 -1
- package/dist/svelte/components/ShortcutListener.svelte +265 -0
- package/dist/svelte/components/ShortcutListener.svelte.d.ts +13 -0
- package/dist/svelte/components/ShortcutListener.svelte.d.ts.map +1 -0
- package/dist/svelte/components/ShortcutsMenu.svelte +128 -0
- package/dist/svelte/components/ShortcutsMenu.svelte.d.ts +7 -0
- package/dist/svelte/components/ShortcutsMenu.svelte.d.ts.map +1 -0
- package/dist/svelte/components/Slider.svelte +16 -29
- package/dist/svelte/components/Slider.svelte.d.ts +3 -0
- package/dist/svelte/components/Slider.svelte.d.ts.map +1 -1
- package/dist/svelte/components/SpringControl.svelte +17 -15
- package/dist/svelte/components/SpringControl.svelte.d.ts.map +1 -1
- package/dist/svelte/components/Toggle.svelte +13 -2
- package/dist/svelte/components/Toggle.svelte.d.ts +3 -0
- package/dist/svelte/components/Toggle.svelte.d.ts.map +1 -1
- package/dist/svelte/components/TransitionControl.svelte +28 -25
- package/dist/svelte/components/TransitionControl.svelte.d.ts.map +1 -1
- package/dist/svelte/createDialKit.svelte.d.ts +2 -1
- package/dist/svelte/createDialKit.svelte.d.ts.map +1 -1
- package/dist/svelte/createDialKit.svelte.js +1 -1
- package/dist/svelte/index.d.ts +6 -2
- package/dist/svelte/index.d.ts.map +1 -1
- package/dist/svelte/index.js +4 -0
- package/dist/svelte/theme-css.d.ts +1 -1
- package/dist/svelte/theme-css.d.ts.map +1 -1
- package/dist/svelte/theme-css.js +257 -26
- package/dist/vue/index.cjs +3056 -0
- package/dist/vue/index.cjs.map +1 -0
- package/dist/vue/index.d.cts +675 -0
- package/dist/vue/index.d.ts +675 -0
- package/dist/vue/index.js +3014 -0
- package/dist/vue/index.js.map +1 -0
- package/package.json +24 -4
package/dist/solid/index.cjs
CHANGED
|
@@ -52,22 +52,22 @@ var DialStoreClass = class {
|
|
|
52
52
|
this.activePreset = /* @__PURE__ */ new Map();
|
|
53
53
|
this.baseValues = /* @__PURE__ */ new Map();
|
|
54
54
|
}
|
|
55
|
-
registerPanel(id, name, config) {
|
|
56
|
-
const controls = this.parseConfig(config, "");
|
|
55
|
+
registerPanel(id, name, config, shortcuts) {
|
|
56
|
+
const controls = this.parseConfig(config, "", shortcuts);
|
|
57
57
|
const values = this.flattenValues(config, "");
|
|
58
58
|
this.initTransitionModes(config, "", values);
|
|
59
|
-
this.panels.set(id, { id, name, controls, values });
|
|
59
|
+
this.panels.set(id, { id, name, controls, values, shortcuts: shortcuts ?? {} });
|
|
60
60
|
this.snapshots.set(id, { ...values });
|
|
61
61
|
this.baseValues.set(id, { ...values });
|
|
62
62
|
this.notifyGlobal();
|
|
63
63
|
}
|
|
64
|
-
updatePanel(id, name, config) {
|
|
64
|
+
updatePanel(id, name, config, shortcuts) {
|
|
65
65
|
const existing = this.panels.get(id);
|
|
66
66
|
if (!existing) {
|
|
67
|
-
this.registerPanel(id, name, config);
|
|
67
|
+
this.registerPanel(id, name, config, shortcuts);
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
const controls = this.parseConfig(config, "");
|
|
70
|
+
const controls = this.parseConfig(config, "", shortcuts);
|
|
71
71
|
const controlsByPath = this.mapControlsByPath(controls);
|
|
72
72
|
const defaultValues = this.flattenValues(config, "");
|
|
73
73
|
const nextValues = {};
|
|
@@ -89,7 +89,7 @@ var DialStoreClass = class {
|
|
|
89
89
|
nextValues[path] = mode;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
const nextPanel = { id, name, controls, values: nextValues };
|
|
92
|
+
const nextPanel = { id, name, controls, values: nextValues, shortcuts: shortcuts ?? existing.shortcuts };
|
|
93
93
|
this.panels.set(id, nextPanel);
|
|
94
94
|
this.snapshots.set(id, { ...nextValues });
|
|
95
95
|
const previousBaseValues = this.baseValues.get(id) ?? {};
|
|
@@ -247,6 +247,44 @@ var DialStoreClass = class {
|
|
|
247
247
|
this.activePreset.set(panelId, null);
|
|
248
248
|
this.notify(panelId);
|
|
249
249
|
}
|
|
250
|
+
resolveShortcutTarget(key, modifier) {
|
|
251
|
+
for (const panel of this.panels.values()) {
|
|
252
|
+
for (const [path, shortcut] of Object.entries(panel.shortcuts)) {
|
|
253
|
+
if (!shortcut.key) continue;
|
|
254
|
+
if (shortcut.key.toLowerCase() !== key.toLowerCase()) continue;
|
|
255
|
+
const scMod = shortcut.modifier ?? void 0;
|
|
256
|
+
if (scMod !== modifier) continue;
|
|
257
|
+
const control = this.findControlByPath(panel.controls, path);
|
|
258
|
+
if (control) {
|
|
259
|
+
return { panelId: panel.id, path, control };
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
resolveScrollOnlyTargets() {
|
|
266
|
+
const results = [];
|
|
267
|
+
for (const panel of this.panels.values()) {
|
|
268
|
+
for (const [path, shortcut] of Object.entries(panel.shortcuts)) {
|
|
269
|
+
if ((shortcut.interaction ?? "scroll") !== "scroll-only") continue;
|
|
270
|
+
const control = this.findControlByPath(panel.controls, path);
|
|
271
|
+
if (control) {
|
|
272
|
+
results.push({ panelId: panel.id, path, control, shortcut });
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return results;
|
|
277
|
+
}
|
|
278
|
+
findControlByPath(controls, path) {
|
|
279
|
+
for (const control of controls) {
|
|
280
|
+
if (control.path === path) return control;
|
|
281
|
+
if (control.type === "folder" && control.children) {
|
|
282
|
+
const found = this.findControlByPath(control.children, path);
|
|
283
|
+
if (found) return found;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return null;
|
|
287
|
+
}
|
|
250
288
|
notify(panelId) {
|
|
251
289
|
this.listeners.get(panelId)?.forEach((fn) => fn());
|
|
252
290
|
}
|
|
@@ -268,12 +306,13 @@ var DialStoreClass = class {
|
|
|
268
306
|
}
|
|
269
307
|
}
|
|
270
308
|
}
|
|
271
|
-
parseConfig(config, prefix) {
|
|
309
|
+
parseConfig(config, prefix, shortcuts) {
|
|
272
310
|
const controls = [];
|
|
273
311
|
for (const [key, value] of Object.entries(config)) {
|
|
274
312
|
if (key === "_collapsed") continue;
|
|
275
313
|
const path = prefix ? `${prefix}.${key}` : key;
|
|
276
314
|
const label = this.formatLabel(key);
|
|
315
|
+
const shortcut = shortcuts?.[path];
|
|
277
316
|
if (Array.isArray(value) && value.length <= 4 && typeof value[0] === "number") {
|
|
278
317
|
controls.push({
|
|
279
318
|
type: "slider",
|
|
@@ -281,13 +320,14 @@ var DialStoreClass = class {
|
|
|
281
320
|
label,
|
|
282
321
|
min: value[1],
|
|
283
322
|
max: value[2],
|
|
284
|
-
step: value[3] ?? this.inferStep(value[1], value[2])
|
|
323
|
+
step: value[3] ?? this.inferStep(value[1], value[2]),
|
|
324
|
+
shortcut
|
|
285
325
|
});
|
|
286
326
|
} else if (typeof value === "number") {
|
|
287
327
|
const { min, max, step } = this.inferRange(value);
|
|
288
|
-
controls.push({ type: "slider", path, label, min, max, step });
|
|
328
|
+
controls.push({ type: "slider", path, label, min, max, step, shortcut });
|
|
289
329
|
} else if (typeof value === "boolean") {
|
|
290
|
-
controls.push({ type: "toggle", path, label });
|
|
330
|
+
controls.push({ type: "toggle", path, label, shortcut });
|
|
291
331
|
} else if (this.isSpringConfig(value) || this.isEasingConfig(value)) {
|
|
292
332
|
controls.push({ type: "transition", path, label });
|
|
293
333
|
} else if (this.isActionConfig(value)) {
|
|
@@ -312,7 +352,7 @@ var DialStoreClass = class {
|
|
|
312
352
|
path,
|
|
313
353
|
label,
|
|
314
354
|
defaultOpen,
|
|
315
|
-
children: this.parseConfig(folderConfig, path)
|
|
355
|
+
children: this.parseConfig(folderConfig, path, shortcuts)
|
|
316
356
|
});
|
|
317
357
|
}
|
|
318
358
|
}
|
|
@@ -469,7 +509,7 @@ function createDialKit(name, config, options) {
|
|
|
469
509
|
DialStore.getValues(panelId)
|
|
470
510
|
);
|
|
471
511
|
(0, import_solid_js.onMount)(() => {
|
|
472
|
-
DialStore.registerPanel(panelId, name, config);
|
|
512
|
+
DialStore.registerPanel(panelId, name, config, options?.shortcuts);
|
|
473
513
|
setValues(DialStore.getValues(panelId));
|
|
474
514
|
const unsubValues = DialStore.subscribe(panelId, () => {
|
|
475
515
|
setValues(DialStore.getValues(panelId));
|
|
@@ -533,27 +573,377 @@ function getFirstOptionValue(options) {
|
|
|
533
573
|
}
|
|
534
574
|
|
|
535
575
|
// src/solid/components/DialRoot.tsx
|
|
576
|
+
var import_web84 = require("solid-js/web");
|
|
577
|
+
var import_web85 = require("solid-js/web");
|
|
578
|
+
var import_web86 = require("solid-js/web");
|
|
579
|
+
var import_web87 = require("solid-js/web");
|
|
580
|
+
var import_web88 = require("solid-js/web");
|
|
581
|
+
var import_web89 = require("solid-js/web");
|
|
582
|
+
var import_solid_js13 = require("solid-js");
|
|
583
|
+
var import_web90 = require("solid-js/web");
|
|
584
|
+
|
|
585
|
+
// src/solid/components/ShortcutListener.tsx
|
|
586
|
+
var import_web = require("solid-js/web");
|
|
587
|
+
var import_solid_js2 = require("solid-js");
|
|
588
|
+
|
|
589
|
+
// src/shortcut-utils.ts
|
|
590
|
+
function decimalsForStep(step) {
|
|
591
|
+
const s = step.toString();
|
|
592
|
+
const dot = s.indexOf(".");
|
|
593
|
+
return dot === -1 ? 0 : s.length - dot - 1;
|
|
594
|
+
}
|
|
595
|
+
function roundValue(val, step) {
|
|
596
|
+
const raw = Math.round(val / step) * step;
|
|
597
|
+
return parseFloat(raw.toFixed(decimalsForStep(step)));
|
|
598
|
+
}
|
|
599
|
+
function getEffectiveStep(control, shortcut) {
|
|
600
|
+
const min = control.min ?? 0;
|
|
601
|
+
const max = control.max ?? 1;
|
|
602
|
+
const range = max - min;
|
|
603
|
+
const mode = shortcut.mode ?? "normal";
|
|
604
|
+
return mode === "fine" ? range * 0.01 : mode === "coarse" ? range * 0.1 : control.step ?? 1;
|
|
605
|
+
}
|
|
606
|
+
function applySliderDelta(panelId, path, control, effectiveStep, direction) {
|
|
607
|
+
const currentValue = DialStore.getValue(panelId, path);
|
|
608
|
+
const min = control.min ?? 0;
|
|
609
|
+
const max = control.max ?? 1;
|
|
610
|
+
const newValue = Math.max(min, Math.min(max, currentValue + direction * effectiveStep));
|
|
611
|
+
DialStore.updateValue(panelId, path, roundValue(newValue, effectiveStep));
|
|
612
|
+
}
|
|
613
|
+
function snapToDecile(rawValue, min, max) {
|
|
614
|
+
const normalized = (rawValue - min) / (max - min);
|
|
615
|
+
const nearest = Math.round(normalized * 10) / 10;
|
|
616
|
+
if (Math.abs(normalized - nearest) <= 0.03125) {
|
|
617
|
+
return min + nearest * (max - min);
|
|
618
|
+
}
|
|
619
|
+
return rawValue;
|
|
620
|
+
}
|
|
621
|
+
function isInputFocused() {
|
|
622
|
+
const el = document.activeElement;
|
|
623
|
+
if (!el) return false;
|
|
624
|
+
const tag = el.tagName;
|
|
625
|
+
if (tag === "INPUT" || tag === "TEXTAREA") return true;
|
|
626
|
+
if (el.contentEditable === "true") return true;
|
|
627
|
+
return false;
|
|
628
|
+
}
|
|
629
|
+
function getActiveModifier(e) {
|
|
630
|
+
if (e.altKey) return "alt";
|
|
631
|
+
if (e.shiftKey) return "shift";
|
|
632
|
+
if (e.metaKey) return "meta";
|
|
633
|
+
return void 0;
|
|
634
|
+
}
|
|
635
|
+
function findControl(controls, path) {
|
|
636
|
+
for (const control of controls) {
|
|
637
|
+
if (control.path === path) return control;
|
|
638
|
+
if (control.type === "folder" && control.children) {
|
|
639
|
+
const found = findControl(control.children, path);
|
|
640
|
+
if (found) return found;
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
return null;
|
|
644
|
+
}
|
|
645
|
+
var DRAG_SENSITIVITY = 4;
|
|
646
|
+
function formatInteractionLabel(interaction) {
|
|
647
|
+
switch (interaction) {
|
|
648
|
+
case "drag":
|
|
649
|
+
return "Drag";
|
|
650
|
+
case "move":
|
|
651
|
+
return "Move";
|
|
652
|
+
case "scroll-only":
|
|
653
|
+
return "Scroll";
|
|
654
|
+
default:
|
|
655
|
+
return "Scroll";
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
function formatSliderShortcut(sc) {
|
|
659
|
+
const interaction = sc.interaction ?? "scroll";
|
|
660
|
+
const actionLabel = formatInteractionLabel(interaction);
|
|
661
|
+
if (!sc.key) return actionLabel;
|
|
662
|
+
const mod = formatModifier(sc.modifier);
|
|
663
|
+
return `${mod}${sc.key.toUpperCase()}+${actionLabel}`;
|
|
664
|
+
}
|
|
665
|
+
function formatToggleShortcut(sc) {
|
|
666
|
+
if (!sc.key) return "Press";
|
|
667
|
+
const mod = formatModifier(sc.modifier);
|
|
668
|
+
return `${mod}${sc.key.toUpperCase()}`;
|
|
669
|
+
}
|
|
670
|
+
function formatModifier(modifier) {
|
|
671
|
+
return modifier === "alt" ? "\u2325" : modifier === "shift" ? "\u21E7" : modifier === "meta" ? "\u2318" : "";
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
// src/solid/components/ShortcutListener.tsx
|
|
675
|
+
var defaultState = {
|
|
676
|
+
activePanelId: null,
|
|
677
|
+
activePath: null
|
|
678
|
+
};
|
|
679
|
+
var ShortcutContext = (0, import_solid_js2.createContext)(() => defaultState);
|
|
680
|
+
function useShortcutContext() {
|
|
681
|
+
return (0, import_solid_js2.useContext)(ShortcutContext);
|
|
682
|
+
}
|
|
683
|
+
function ShortcutListener(props) {
|
|
684
|
+
const [activeShortcut, setActiveShortcut] = (0, import_solid_js2.createSignal)(defaultState);
|
|
685
|
+
const activeKeys = /* @__PURE__ */ new Set();
|
|
686
|
+
let isDragging = false;
|
|
687
|
+
let lastMouseX = null;
|
|
688
|
+
let dragAccumulator = 0;
|
|
689
|
+
const resolveActiveTarget = (interaction) => {
|
|
690
|
+
for (const key of activeKeys) {
|
|
691
|
+
const panels = DialStore.getPanels();
|
|
692
|
+
for (const panel of panels) {
|
|
693
|
+
for (const [path, shortcut] of Object.entries(panel.shortcuts)) {
|
|
694
|
+
if (!shortcut.key) continue;
|
|
695
|
+
if (shortcut.key.toLowerCase() !== key) continue;
|
|
696
|
+
if ((shortcut.interaction ?? "scroll") !== interaction) continue;
|
|
697
|
+
const control = DialStore.getPanel(panel.id)?.controls ? findControl(panel.controls, path) : null;
|
|
698
|
+
if (control && control.type === "slider") {
|
|
699
|
+
return {
|
|
700
|
+
panelId: panel.id,
|
|
701
|
+
path,
|
|
702
|
+
control,
|
|
703
|
+
shortcut
|
|
704
|
+
};
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
return null;
|
|
710
|
+
};
|
|
711
|
+
(0, import_solid_js2.onMount)(() => {
|
|
712
|
+
const handleKeyDown = (e) => {
|
|
713
|
+
if (isInputFocused()) return;
|
|
714
|
+
const key = e.key.toLowerCase();
|
|
715
|
+
if (key === "arrowleft" || key === "arrowright" || key === "arrowup" || key === "arrowdown") {
|
|
716
|
+
if (activeKeys.size > 0) {
|
|
717
|
+
const target2 = resolveActiveTarget("scroll") || resolveActiveTarget("drag") || resolveActiveTarget("move");
|
|
718
|
+
if (target2 && target2.control.type === "slider") {
|
|
719
|
+
e.preventDefault();
|
|
720
|
+
const direction = key === "arrowright" || key === "arrowup" ? 1 : -1;
|
|
721
|
+
const effectiveStep = getEffectiveStep(target2.control, target2.shortcut);
|
|
722
|
+
applySliderDelta(target2.panelId, target2.path, target2.control, effectiveStep, direction);
|
|
723
|
+
return;
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
const wasAlreadyHeld = activeKeys.has(key);
|
|
728
|
+
activeKeys.add(key);
|
|
729
|
+
const modifier = getActiveModifier(e);
|
|
730
|
+
const target = DialStore.resolveShortcutTarget(key, modifier);
|
|
731
|
+
if (target) {
|
|
732
|
+
setActiveShortcut({
|
|
733
|
+
activePanelId: target.panelId,
|
|
734
|
+
activePath: target.path
|
|
735
|
+
});
|
|
736
|
+
if (!wasAlreadyHeld && target.control.type === "toggle") {
|
|
737
|
+
const currentValue = DialStore.getValue(target.panelId, target.path);
|
|
738
|
+
DialStore.updateValue(target.panelId, target.path, !currentValue);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
if (!wasAlreadyHeld) {
|
|
742
|
+
lastMouseX = null;
|
|
743
|
+
dragAccumulator = 0;
|
|
744
|
+
}
|
|
745
|
+
};
|
|
746
|
+
const handleKeyUp = (e) => {
|
|
747
|
+
const key = e.key.toLowerCase();
|
|
748
|
+
activeKeys.delete(key);
|
|
749
|
+
isDragging = false;
|
|
750
|
+
lastMouseX = null;
|
|
751
|
+
dragAccumulator = 0;
|
|
752
|
+
if (activeKeys.size === 0) {
|
|
753
|
+
setActiveShortcut({
|
|
754
|
+
activePanelId: null,
|
|
755
|
+
activePath: null
|
|
756
|
+
});
|
|
757
|
+
} else {
|
|
758
|
+
let found = false;
|
|
759
|
+
for (const remainingKey of activeKeys) {
|
|
760
|
+
const modifier = getActiveModifier(e);
|
|
761
|
+
const target = DialStore.resolveShortcutTarget(remainingKey, modifier);
|
|
762
|
+
if (target) {
|
|
763
|
+
setActiveShortcut({
|
|
764
|
+
activePanelId: target.panelId,
|
|
765
|
+
activePath: target.path
|
|
766
|
+
});
|
|
767
|
+
found = true;
|
|
768
|
+
break;
|
|
769
|
+
}
|
|
770
|
+
}
|
|
771
|
+
if (!found) {
|
|
772
|
+
setActiveShortcut({
|
|
773
|
+
activePanelId: null,
|
|
774
|
+
activePath: null
|
|
775
|
+
});
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
};
|
|
779
|
+
const handleWheel = (e) => {
|
|
780
|
+
if (isInputFocused()) return;
|
|
781
|
+
const modifier = getActiveModifier(e);
|
|
782
|
+
if (activeKeys.size > 0) {
|
|
783
|
+
for (const key of activeKeys) {
|
|
784
|
+
const target = DialStore.resolveShortcutTarget(key, modifier);
|
|
785
|
+
if (!target) continue;
|
|
786
|
+
const {
|
|
787
|
+
panelId,
|
|
788
|
+
path,
|
|
789
|
+
control
|
|
790
|
+
} = target;
|
|
791
|
+
const interaction = control.shortcut?.interaction ?? "scroll";
|
|
792
|
+
if (interaction !== "scroll" || control.type !== "slider") continue;
|
|
793
|
+
e.preventDefault();
|
|
794
|
+
const effectiveStep = getEffectiveStep(control, control.shortcut);
|
|
795
|
+
const direction = e.deltaY > 0 ? -1 : 1;
|
|
796
|
+
applySliderDelta(panelId, path, control, effectiveStep, direction);
|
|
797
|
+
return;
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
const scrollOnlyTargets = DialStore.resolveScrollOnlyTargets();
|
|
801
|
+
for (const {
|
|
802
|
+
panelId,
|
|
803
|
+
path,
|
|
804
|
+
control,
|
|
805
|
+
shortcut
|
|
806
|
+
} of scrollOnlyTargets) {
|
|
807
|
+
if (control.type !== "slider") continue;
|
|
808
|
+
e.preventDefault();
|
|
809
|
+
const effectiveStep = getEffectiveStep(control, shortcut);
|
|
810
|
+
const direction = e.deltaY > 0 ? -1 : 1;
|
|
811
|
+
applySliderDelta(panelId, path, control, effectiveStep, direction);
|
|
812
|
+
return;
|
|
813
|
+
}
|
|
814
|
+
};
|
|
815
|
+
const handleMouseDown = (e) => {
|
|
816
|
+
if (isInputFocused()) return;
|
|
817
|
+
if (activeKeys.size === 0) return;
|
|
818
|
+
const target = resolveActiveTarget("drag");
|
|
819
|
+
if (target) {
|
|
820
|
+
isDragging = true;
|
|
821
|
+
lastMouseX = e.clientX;
|
|
822
|
+
dragAccumulator = 0;
|
|
823
|
+
e.preventDefault();
|
|
824
|
+
}
|
|
825
|
+
};
|
|
826
|
+
const handleMouseUp = () => {
|
|
827
|
+
isDragging = false;
|
|
828
|
+
lastMouseX = null;
|
|
829
|
+
dragAccumulator = 0;
|
|
830
|
+
};
|
|
831
|
+
const handleMouseMove = (e) => {
|
|
832
|
+
if (isInputFocused()) return;
|
|
833
|
+
if (activeKeys.size === 0) return;
|
|
834
|
+
if (isDragging) {
|
|
835
|
+
const target = resolveActiveTarget("drag");
|
|
836
|
+
if (target && lastMouseX !== null) {
|
|
837
|
+
const deltaX = e.clientX - lastMouseX;
|
|
838
|
+
lastMouseX = e.clientX;
|
|
839
|
+
dragAccumulator += deltaX;
|
|
840
|
+
const effectiveStep = getEffectiveStep(target.control, target.shortcut);
|
|
841
|
+
const steps = Math.trunc(dragAccumulator / DRAG_SENSITIVITY);
|
|
842
|
+
if (steps !== 0) {
|
|
843
|
+
dragAccumulator -= steps * DRAG_SENSITIVITY;
|
|
844
|
+
applySliderDelta(target.panelId, target.path, target.control, effectiveStep, steps);
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
return;
|
|
848
|
+
}
|
|
849
|
+
const moveTarget = resolveActiveTarget("move");
|
|
850
|
+
if (moveTarget) {
|
|
851
|
+
if (lastMouseX === null) {
|
|
852
|
+
lastMouseX = e.clientX;
|
|
853
|
+
return;
|
|
854
|
+
}
|
|
855
|
+
const deltaX = e.clientX - lastMouseX;
|
|
856
|
+
lastMouseX = e.clientX;
|
|
857
|
+
dragAccumulator += deltaX;
|
|
858
|
+
const effectiveStep = getEffectiveStep(moveTarget.control, moveTarget.shortcut);
|
|
859
|
+
const steps = Math.trunc(dragAccumulator / DRAG_SENSITIVITY);
|
|
860
|
+
if (steps !== 0) {
|
|
861
|
+
dragAccumulator -= steps * DRAG_SENSITIVITY;
|
|
862
|
+
applySliderDelta(moveTarget.panelId, moveTarget.path, moveTarget.control, effectiveStep, steps);
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
};
|
|
866
|
+
const handleWindowBlur = () => {
|
|
867
|
+
activeKeys.clear();
|
|
868
|
+
isDragging = false;
|
|
869
|
+
lastMouseX = null;
|
|
870
|
+
dragAccumulator = 0;
|
|
871
|
+
setActiveShortcut({
|
|
872
|
+
activePanelId: null,
|
|
873
|
+
activePath: null
|
|
874
|
+
});
|
|
875
|
+
};
|
|
876
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
877
|
+
window.addEventListener("keyup", handleKeyUp);
|
|
878
|
+
window.addEventListener("wheel", handleWheel, {
|
|
879
|
+
passive: false
|
|
880
|
+
});
|
|
881
|
+
window.addEventListener("mousedown", handleMouseDown);
|
|
882
|
+
window.addEventListener("mouseup", handleMouseUp);
|
|
883
|
+
window.addEventListener("mousemove", handleMouseMove);
|
|
884
|
+
window.addEventListener("blur", handleWindowBlur);
|
|
885
|
+
(0, import_solid_js2.onCleanup)(() => {
|
|
886
|
+
window.removeEventListener("keydown", handleKeyDown);
|
|
887
|
+
window.removeEventListener("keyup", handleKeyUp);
|
|
888
|
+
window.removeEventListener("wheel", handleWheel);
|
|
889
|
+
window.removeEventListener("mousedown", handleMouseDown);
|
|
890
|
+
window.removeEventListener("mouseup", handleMouseUp);
|
|
891
|
+
window.removeEventListener("mousemove", handleMouseMove);
|
|
892
|
+
window.removeEventListener("blur", handleWindowBlur);
|
|
893
|
+
});
|
|
894
|
+
});
|
|
895
|
+
return (0, import_web.createComponent)(ShortcutContext.Provider, {
|
|
896
|
+
value: activeShortcut,
|
|
897
|
+
get children() {
|
|
898
|
+
return props.children;
|
|
899
|
+
}
|
|
900
|
+
});
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
// src/solid/components/Panel.tsx
|
|
904
|
+
var import_web76 = require("solid-js/web");
|
|
905
|
+
var import_web77 = require("solid-js/web");
|
|
536
906
|
var import_web78 = require("solid-js/web");
|
|
537
907
|
var import_web79 = require("solid-js/web");
|
|
538
908
|
var import_web80 = require("solid-js/web");
|
|
539
909
|
var import_web81 = require("solid-js/web");
|
|
540
910
|
var import_web82 = require("solid-js/web");
|
|
541
911
|
var import_web83 = require("solid-js/web");
|
|
542
|
-
var
|
|
543
|
-
var
|
|
912
|
+
var import_solid_js12 = require("solid-js");
|
|
913
|
+
var import_motion5 = require("motion");
|
|
544
914
|
|
|
545
|
-
// src/
|
|
546
|
-
var
|
|
547
|
-
var
|
|
548
|
-
var
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
var
|
|
915
|
+
// src/icons.ts
|
|
916
|
+
var ICON_CHEVRON = "M6 9.5L12 15.5L18 9.5";
|
|
917
|
+
var ICON_CHECK = "M5 12.75L10 19L19 5";
|
|
918
|
+
var ICON_CLIPBOARD = {
|
|
919
|
+
board: "M8 6C8 4.34315 9.34315 3 11 3H13C14.6569 3 16 4.34315 16 6V7H8V6Z",
|
|
920
|
+
sparkle: "M19.2405 16.1852L18.5436 14.3733C18.4571 14.1484 18.241 14 18 14C17.759 14 17.5429 14.1484 17.4564 14.3733L16.7595 16.1852C16.658 16.4493 16.4493 16.658 16.1852 16.7595L14.3733 17.4564C14.1484 17.5429 14 17.759 14 18C14 18.241 14.1484 18.4571 14.3733 18.5436L16.1852 19.2405C16.4493 19.342 16.658 19.5507 16.7595 19.8148L17.4564 21.6267C17.5429 21.8516 17.759 22 18 22C18.241 22 18.4571 21.8516 18.5436 21.6267L19.2405 19.8148C19.342 19.5507 19.5507 19.342 19.8148 19.2405L21.6267 18.5436C21.8516 18.4571 22 18.241 22 18C22 17.759 21.8516 17.5429 21.6267 17.4564L19.8148 16.7595C19.5507 16.658 19.342 16.4493 19.2405 16.1852Z",
|
|
921
|
+
body: "M16 5H17C18.6569 5 20 6.34315 20 8V11M8 5H7C5.34315 5 4 6.34315 4 8V18C4 19.6569 5.34315 21 7 21H12"
|
|
922
|
+
};
|
|
923
|
+
var ICON_ADD_PRESET = [
|
|
924
|
+
"M4 6H20",
|
|
925
|
+
"M4 12H10",
|
|
926
|
+
"M15 15L21 15",
|
|
927
|
+
"M18 12V18",
|
|
928
|
+
"M4 18H10"
|
|
929
|
+
];
|
|
930
|
+
var ICON_TRASH = [
|
|
931
|
+
"M5 6.5L5.80734 18.2064C5.91582 19.7794 7.22348 21 8.80023 21H15.1998C16.7765 21 18.0842 19.7794 18.1927 18.2064L19 6.5",
|
|
932
|
+
"M10 11V16",
|
|
933
|
+
"M14 11V16",
|
|
934
|
+
"M3.5 6H20.5",
|
|
935
|
+
"M8.07092 5.74621C8.42348 3.89745 10.0485 2.5 12 2.5C13.9515 2.5 15.5765 3.89745 15.9291 5.74621"
|
|
936
|
+
];
|
|
937
|
+
var ICON_PANEL = {
|
|
938
|
+
path: "M6.84766 11.75C6.78583 11.9899 6.75 12.2408 6.75 12.5C6.75 12.7592 6.78583 13.0101 6.84766 13.25H2C1.58579 13.25 1.25 12.9142 1.25 12.5C1.25 12.0858 1.58579 11.75 2 11.75H6.84766ZM14 11.75C14.4142 11.75 14.75 12.0858 14.75 12.5C14.75 12.9142 14.4142 13.25 14 13.25H12.6523C12.7142 13.0101 12.75 12.7592 12.75 12.5C12.75 12.2408 12.7142 11.9899 12.6523 11.75H14ZM3.09766 7.25C3.03583 7.48994 3 7.74075 3 8C3 8.25925 3.03583 8.51006 3.09766 8.75H2C1.58579 8.75 1.25 8.41421 1.25 8C1.25 7.58579 1.58579 7.25 2 7.25H3.09766ZM14 7.25C14.4142 7.25 14.75 7.58579 14.75 8C14.75 8.41421 14.4142 8.75 14 8.75H8.90234C8.96417 8.51006 9 8.25925 9 8C9 7.74075 8.96417 7.48994 8.90234 7.25H14ZM7.59766 2.75C7.53583 2.98994 7.5 3.24075 7.5 3.5C7.5 3.75925 7.53583 4.01006 7.59766 4.25H2C1.58579 4.25 1.25 3.91421 1.25 3.5C1.25 3.08579 1.58579 2.75 2 2.75H7.59766ZM14 2.75C14.4142 2.75 14.75 3.08579 14.75 3.5C14.75 3.91421 14.4142 4.25 14 4.25H13.4023C13.4642 4.01006 13.5 3.75925 13.5 3.5C13.5 3.24075 13.4642 2.98994 13.4023 2.75H14Z",
|
|
939
|
+
circles: [
|
|
940
|
+
{ cx: "6", cy: "8", r: "0.998596" },
|
|
941
|
+
{ cx: "10.4999", cy: "3.5", r: "0.998657" },
|
|
942
|
+
{ cx: "9.75015", cy: "12.5", r: "0.997986" }
|
|
943
|
+
]
|
|
944
|
+
};
|
|
554
945
|
|
|
555
946
|
// src/solid/components/Folder.tsx
|
|
556
|
-
var import_web = require("solid-js/web");
|
|
557
947
|
var import_web2 = require("solid-js/web");
|
|
558
948
|
var import_web3 = require("solid-js/web");
|
|
559
949
|
var import_web4 = require("solid-js/web");
|
|
@@ -563,22 +953,29 @@ var import_web7 = require("solid-js/web");
|
|
|
563
953
|
var import_web8 = require("solid-js/web");
|
|
564
954
|
var import_web9 = require("solid-js/web");
|
|
565
955
|
var import_web10 = require("solid-js/web");
|
|
566
|
-
var
|
|
956
|
+
var import_web11 = require("solid-js/web");
|
|
957
|
+
var import_solid_js3 = require("solid-js");
|
|
567
958
|
var import_motion = require("motion");
|
|
568
|
-
var _tmpl$ = /* @__PURE__ */ (0,
|
|
569
|
-
var _tmpl$2 = /* @__PURE__ */ (0,
|
|
570
|
-
var _tmpl$3 = /* @__PURE__ */ (0,
|
|
571
|
-
var _tmpl$4 = /* @__PURE__ */ (0,
|
|
572
|
-
var _tmpl$5 = /* @__PURE__ */ (0,
|
|
573
|
-
var _tmpl$6 = /* @__PURE__ */ (0,
|
|
574
|
-
var _tmpl$7 = /* @__PURE__ */ (0,
|
|
575
|
-
var _tmpl$8 = /* @__PURE__ */ (0,
|
|
576
|
-
var _tmpl$9 = /* @__PURE__ */ (0,
|
|
959
|
+
var _tmpl$ = /* @__PURE__ */ (0, import_web2.template)(`<div class=dialkit-panel-toolbar>`);
|
|
960
|
+
var _tmpl$2 = /* @__PURE__ */ (0, import_web2.template)(`<div class=dialkit-folder-content><div class=dialkit-folder-inner>`);
|
|
961
|
+
var _tmpl$3 = /* @__PURE__ */ (0, import_web2.template)(`<div><div><div class=dialkit-folder-header-top>`);
|
|
962
|
+
var _tmpl$4 = /* @__PURE__ */ (0, import_web2.template)(`<div class=dialkit-folder-title-row><span class="dialkit-folder-title dialkit-folder-title-root">`);
|
|
963
|
+
var _tmpl$5 = /* @__PURE__ */ (0, import_web2.template)(`<div class=dialkit-folder-title-row><span class=dialkit-folder-title>`);
|
|
964
|
+
var _tmpl$6 = /* @__PURE__ */ (0, import_web2.template)(`<svg class=dialkit-panel-icon viewBox="0 0 16 16"fill=none><path opacity=0.5 fill=currentColor></path><circle fill=currentColor stroke=currentColor stroke-width=1.25></circle><circle fill=currentColor stroke=currentColor stroke-width=1.25></circle><circle fill=currentColor stroke=currentColor stroke-width=1.25>`);
|
|
965
|
+
var _tmpl$7 = /* @__PURE__ */ (0, import_web2.template)(`<svg class=dialkit-folder-icon viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2.5 stroke-linecap=round stroke-linejoin=round><path>`);
|
|
966
|
+
var _tmpl$8 = /* @__PURE__ */ (0, import_web2.template)(`<div class="dialkit-panel-inner dialkit-panel-inline">`);
|
|
967
|
+
var _tmpl$9 = /* @__PURE__ */ (0, import_web2.template)(`<div class=dialkit-panel-inner>`);
|
|
577
968
|
function Folder(props) {
|
|
578
|
-
const [isOpen, setIsOpen] = (0,
|
|
579
|
-
const [isCollapsed, setIsCollapsed] = (0,
|
|
580
|
-
const [contentHeight, setContentHeight] = (0,
|
|
581
|
-
const [
|
|
969
|
+
const [isOpen, setIsOpen] = (0, import_solid_js3.createSignal)(props.defaultOpen ?? true);
|
|
970
|
+
const [isCollapsed, setIsCollapsed] = (0, import_solid_js3.createSignal)(!(props.defaultOpen ?? true));
|
|
971
|
+
const [contentHeight, setContentHeight] = (0, import_solid_js3.createSignal)(void 0);
|
|
972
|
+
const [windowHeight, setWindowHeight] = (0, import_solid_js3.createSignal)(typeof window !== "undefined" ? window.innerHeight : 800);
|
|
973
|
+
if (props.isRoot) {
|
|
974
|
+
const onResize = () => setWindowHeight(window.innerHeight);
|
|
975
|
+
window.addEventListener("resize", onResize);
|
|
976
|
+
(0, import_solid_js3.onCleanup)(() => window.removeEventListener("resize", onResize));
|
|
977
|
+
}
|
|
978
|
+
const [contentMounted, setContentMounted] = (0, import_solid_js3.createSignal)(props.defaultOpen ?? true);
|
|
582
979
|
let skipFirstAnim = props.defaultOpen ?? true;
|
|
583
980
|
let sectionContentRef;
|
|
584
981
|
let sectionAnim = null;
|
|
@@ -587,7 +984,7 @@ function Folder(props) {
|
|
|
587
984
|
let chevronInitialized = false;
|
|
588
985
|
let panelTapAnim = null;
|
|
589
986
|
let contentRef;
|
|
590
|
-
(0,
|
|
987
|
+
(0, import_solid_js3.createEffect)(() => {
|
|
591
988
|
if (!props.isRoot || !isOpen()) return;
|
|
592
989
|
const el = contentRef;
|
|
593
990
|
if (!el) return;
|
|
@@ -596,9 +993,9 @@ function Folder(props) {
|
|
|
596
993
|
setContentHeight((prev) => prev === h ? prev : h);
|
|
597
994
|
});
|
|
598
995
|
ro.observe(el);
|
|
599
|
-
(0,
|
|
996
|
+
(0, import_solid_js3.onCleanup)(() => ro.disconnect());
|
|
600
997
|
});
|
|
601
|
-
(0,
|
|
998
|
+
(0, import_solid_js3.createEffect)(() => {
|
|
602
999
|
if (props.isRoot || !folderChevronRef) return;
|
|
603
1000
|
const open = isOpen();
|
|
604
1001
|
chevronAnim?.stop();
|
|
@@ -614,7 +1011,7 @@ function Folder(props) {
|
|
|
614
1011
|
visualDuration: 0.35,
|
|
615
1012
|
bounce: 0.15
|
|
616
1013
|
});
|
|
617
|
-
(0,
|
|
1014
|
+
(0, import_solid_js3.onCleanup)(() => chevronAnim?.stop());
|
|
618
1015
|
});
|
|
619
1016
|
const handleToggle = () => {
|
|
620
1017
|
if (props.inline && props.isRoot) return;
|
|
@@ -670,58 +1067,87 @@ function Folder(props) {
|
|
|
670
1067
|
};
|
|
671
1068
|
const folderContent = () => (() => {
|
|
672
1069
|
var _el$ = _tmpl$3(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
|
|
673
|
-
(0,
|
|
1070
|
+
(0, import_web11.use)((el) => {
|
|
674
1071
|
if (props.isRoot) contentRef = el;
|
|
675
1072
|
}, _el$);
|
|
676
1073
|
_el$2.$$click = handleToggle;
|
|
677
|
-
(0,
|
|
678
|
-
var _c$ = (0,
|
|
679
|
-
return () => _c$() ? (0,
|
|
1074
|
+
(0, import_web9.insert)(_el$3, (() => {
|
|
1075
|
+
var _c$ = (0, import_web10.memo)(() => !!props.isRoot);
|
|
1076
|
+
return () => _c$() ? (0, import_web8.createComponent)(import_solid_js3.Show, {
|
|
680
1077
|
get when() {
|
|
681
1078
|
return isOpen();
|
|
682
1079
|
},
|
|
683
1080
|
get children() {
|
|
684
1081
|
var _el$7 = _tmpl$4(), _el$8 = _el$7.firstChild;
|
|
685
|
-
(0,
|
|
1082
|
+
(0, import_web9.insert)(_el$8, () => props.title);
|
|
686
1083
|
return _el$7;
|
|
687
1084
|
}
|
|
688
1085
|
}) : (() => {
|
|
689
1086
|
var _el$9 = _tmpl$5(), _el$0 = _el$9.firstChild;
|
|
690
|
-
(0,
|
|
1087
|
+
(0, import_web9.insert)(_el$0, () => props.title);
|
|
691
1088
|
return _el$9;
|
|
692
1089
|
})();
|
|
693
1090
|
})(), null);
|
|
694
|
-
(0,
|
|
695
|
-
var _c$2 = (0,
|
|
696
|
-
return () => _c$2() &&
|
|
1091
|
+
(0, import_web9.insert)(_el$3, (() => {
|
|
1092
|
+
var _c$2 = (0, import_web10.memo)(() => !!(props.isRoot && !props.inline));
|
|
1093
|
+
return () => _c$2() && (() => {
|
|
1094
|
+
var _el$1 = _tmpl$6(), _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling, _el$12 = _el$11.nextSibling, _el$13 = _el$12.nextSibling;
|
|
1095
|
+
(0, import_web7.effect)((_p$) => {
|
|
1096
|
+
var _v$3 = ICON_PANEL.path, _v$4 = ICON_PANEL.circles[0].cx, _v$5 = ICON_PANEL.circles[0].cy, _v$6 = ICON_PANEL.circles[0].r, _v$7 = ICON_PANEL.circles[1].cx, _v$8 = ICON_PANEL.circles[1].cy, _v$9 = ICON_PANEL.circles[1].r, _v$0 = ICON_PANEL.circles[2].cx, _v$1 = ICON_PANEL.circles[2].cy, _v$10 = ICON_PANEL.circles[2].r;
|
|
1097
|
+
_v$3 !== _p$.e && (0, import_web4.setAttribute)(_el$10, "d", _p$.e = _v$3);
|
|
1098
|
+
_v$4 !== _p$.t && (0, import_web4.setAttribute)(_el$11, "cx", _p$.t = _v$4);
|
|
1099
|
+
_v$5 !== _p$.a && (0, import_web4.setAttribute)(_el$11, "cy", _p$.a = _v$5);
|
|
1100
|
+
_v$6 !== _p$.o && (0, import_web4.setAttribute)(_el$11, "r", _p$.o = _v$6);
|
|
1101
|
+
_v$7 !== _p$.i && (0, import_web4.setAttribute)(_el$12, "cx", _p$.i = _v$7);
|
|
1102
|
+
_v$8 !== _p$.n && (0, import_web4.setAttribute)(_el$12, "cy", _p$.n = _v$8);
|
|
1103
|
+
_v$9 !== _p$.s && (0, import_web4.setAttribute)(_el$12, "r", _p$.s = _v$9);
|
|
1104
|
+
_v$0 !== _p$.h && (0, import_web4.setAttribute)(_el$13, "cx", _p$.h = _v$0);
|
|
1105
|
+
_v$1 !== _p$.r && (0, import_web4.setAttribute)(_el$13, "cy", _p$.r = _v$1);
|
|
1106
|
+
_v$10 !== _p$.d && (0, import_web4.setAttribute)(_el$13, "r", _p$.d = _v$10);
|
|
1107
|
+
return _p$;
|
|
1108
|
+
}, {
|
|
1109
|
+
e: void 0,
|
|
1110
|
+
t: void 0,
|
|
1111
|
+
a: void 0,
|
|
1112
|
+
o: void 0,
|
|
1113
|
+
i: void 0,
|
|
1114
|
+
n: void 0,
|
|
1115
|
+
s: void 0,
|
|
1116
|
+
h: void 0,
|
|
1117
|
+
r: void 0,
|
|
1118
|
+
d: void 0
|
|
1119
|
+
});
|
|
1120
|
+
return _el$1;
|
|
1121
|
+
})();
|
|
697
1122
|
})(), null);
|
|
698
|
-
(0,
|
|
699
|
-
var _c$3 = (0,
|
|
1123
|
+
(0, import_web9.insert)(_el$3, (() => {
|
|
1124
|
+
var _c$3 = (0, import_web10.memo)(() => !!!props.isRoot);
|
|
700
1125
|
return () => _c$3() && (() => {
|
|
701
|
-
var _el$
|
|
1126
|
+
var _el$14 = _tmpl$7(), _el$15 = _el$14.firstChild;
|
|
702
1127
|
var _ref$ = folderChevronRef;
|
|
703
|
-
typeof _ref$ === "function" ? (0,
|
|
704
|
-
|
|
1128
|
+
typeof _ref$ === "function" ? (0, import_web11.use)(_ref$, _el$14) : folderChevronRef = _el$14;
|
|
1129
|
+
(0, import_web4.setAttribute)(_el$15, "d", ICON_CHEVRON);
|
|
1130
|
+
return _el$14;
|
|
705
1131
|
})();
|
|
706
1132
|
})(), null);
|
|
707
|
-
(0,
|
|
1133
|
+
(0, import_web9.insert)(_el$2, (0, import_web8.createComponent)(import_solid_js3.Show, {
|
|
708
1134
|
get when() {
|
|
709
|
-
return (0,
|
|
1135
|
+
return (0, import_web10.memo)(() => !!(props.isRoot && props.toolbar))() && isOpen();
|
|
710
1136
|
},
|
|
711
1137
|
get children() {
|
|
712
1138
|
var _el$4 = _tmpl$();
|
|
713
1139
|
_el$4.$$click = (e) => e.stopPropagation();
|
|
714
|
-
(0,
|
|
1140
|
+
(0, import_web9.insert)(_el$4, () => props.toolbar);
|
|
715
1141
|
return _el$4;
|
|
716
1142
|
}
|
|
717
1143
|
}), null);
|
|
718
|
-
(0,
|
|
1144
|
+
(0, import_web9.insert)(_el$, (0, import_web8.createComponent)(import_solid_js3.Show, {
|
|
719
1145
|
get when() {
|
|
720
|
-
return (0,
|
|
1146
|
+
return (0, import_web10.memo)(() => !!props.isRoot)() ? isOpen() : contentMounted();
|
|
721
1147
|
},
|
|
722
1148
|
get children() {
|
|
723
1149
|
var _el$5 = _tmpl$2(), _el$6 = _el$5.firstChild;
|
|
724
|
-
(0,
|
|
1150
|
+
(0, import_web11.use)((el) => {
|
|
725
1151
|
if (props.isRoot) return;
|
|
726
1152
|
sectionContentRef = el;
|
|
727
1153
|
if (skipFirstAnim) {
|
|
@@ -743,17 +1169,17 @@ function Folder(props) {
|
|
|
743
1169
|
}
|
|
744
1170
|
});
|
|
745
1171
|
}, _el$5);
|
|
746
|
-
(0,
|
|
747
|
-
(0,
|
|
1172
|
+
(0, import_web9.insert)(_el$6, () => props.children);
|
|
1173
|
+
(0, import_web7.effect)((_$p) => (0, import_web6.style)(_el$5, !props.isRoot ? {
|
|
748
1174
|
"clip-path": "inset(0 -20px)"
|
|
749
1175
|
} : void 0, _$p));
|
|
750
1176
|
return _el$5;
|
|
751
1177
|
}
|
|
752
1178
|
}), null);
|
|
753
|
-
(0,
|
|
1179
|
+
(0, import_web7.effect)((_p$) => {
|
|
754
1180
|
var _v$ = `dialkit-folder ${props.isRoot ? "dialkit-folder-root" : ""}`, _v$2 = `dialkit-folder-header ${props.isRoot ? "dialkit-panel-header" : ""}`;
|
|
755
|
-
_v$ !== _p$.e && (0,
|
|
756
|
-
_v$2 !== _p$.t && (0,
|
|
1181
|
+
_v$ !== _p$.e && (0, import_web5.className)(_el$, _p$.e = _v$);
|
|
1182
|
+
_v$2 !== _p$.t && (0, import_web5.className)(_el$2, _p$.t = _v$2);
|
|
757
1183
|
return _p$;
|
|
758
1184
|
}, {
|
|
759
1185
|
e: void 0,
|
|
@@ -764,36 +1190,36 @@ function Folder(props) {
|
|
|
764
1190
|
if (props.isRoot) {
|
|
765
1191
|
if (props.inline) {
|
|
766
1192
|
return (() => {
|
|
767
|
-
var _el$
|
|
768
|
-
(0,
|
|
769
|
-
return _el$
|
|
1193
|
+
var _el$16 = _tmpl$8();
|
|
1194
|
+
(0, import_web9.insert)(_el$16, folderContent);
|
|
1195
|
+
return _el$16;
|
|
770
1196
|
})();
|
|
771
1197
|
}
|
|
772
1198
|
let panelRef;
|
|
773
1199
|
let rootPanelAnim = null;
|
|
774
1200
|
let rootPanelInitialized = false;
|
|
775
1201
|
let lastRootOpen = isOpen();
|
|
776
|
-
(0,
|
|
1202
|
+
(0, import_solid_js3.createEffect)(() => {
|
|
777
1203
|
if (!panelRef || isOpen()) return;
|
|
778
1204
|
const handler = (e) => {
|
|
779
1205
|
e.stopPropagation();
|
|
780
1206
|
handleToggle();
|
|
781
1207
|
};
|
|
782
1208
|
panelRef.addEventListener("click", handler);
|
|
783
|
-
(0,
|
|
1209
|
+
(0, import_solid_js3.onCleanup)(() => panelRef.removeEventListener("click", handler));
|
|
784
1210
|
});
|
|
785
|
-
(0,
|
|
1211
|
+
(0, import_solid_js3.createEffect)(() => {
|
|
786
1212
|
if (!panelRef) return;
|
|
787
1213
|
const open = isOpen();
|
|
788
|
-
const measuredOpenHeight = contentHeight() !== void 0 ? contentHeight() +
|
|
1214
|
+
const measuredOpenHeight = contentHeight() !== void 0 ? Math.min(contentHeight() + 10, windowHeight() - 32) : panelRef.getBoundingClientRect().height;
|
|
789
1215
|
const target = {
|
|
790
1216
|
width: open ? 280 : 42,
|
|
791
1217
|
height: open ? measuredOpenHeight : 42,
|
|
792
1218
|
borderRadius: open ? 14 : 21,
|
|
793
|
-
boxShadow: open ? "
|
|
1219
|
+
boxShadow: open ? "var(--dial-shadow)" : "var(--dial-shadow-collapsed)"
|
|
794
1220
|
};
|
|
795
1221
|
panelRef.style.cursor = open ? "" : "pointer";
|
|
796
|
-
panelRef.style.overflow = open ? "" : "hidden";
|
|
1222
|
+
panelRef.style.overflow = open ? "hidden auto" : "hidden";
|
|
797
1223
|
if (!rootPanelInitialized) {
|
|
798
1224
|
rootPanelInitialized = true;
|
|
799
1225
|
panelRef.style.width = `${target.width}px`;
|
|
@@ -820,13 +1246,13 @@ function Folder(props) {
|
|
|
820
1246
|
panelRef.style.height = `${target.height}px`;
|
|
821
1247
|
}
|
|
822
1248
|
});
|
|
823
|
-
(0,
|
|
1249
|
+
(0, import_solid_js3.onCleanup)(() => {
|
|
824
1250
|
rootPanelAnim?.stop();
|
|
825
1251
|
panelTapAnim?.stop();
|
|
826
1252
|
});
|
|
827
1253
|
return (() => {
|
|
828
|
-
var _el$
|
|
829
|
-
_el$
|
|
1254
|
+
var _el$17 = _tmpl$9();
|
|
1255
|
+
_el$17.addEventListener("pointerleave", () => {
|
|
830
1256
|
if (isOpen()) return;
|
|
831
1257
|
panelTapAnim?.stop();
|
|
832
1258
|
panelTapAnim = (0, import_motion.animate)(panelRef, {
|
|
@@ -837,7 +1263,7 @@ function Folder(props) {
|
|
|
837
1263
|
bounce: 0.3
|
|
838
1264
|
});
|
|
839
1265
|
});
|
|
840
|
-
_el$
|
|
1266
|
+
_el$17.addEventListener("pointercancel", () => {
|
|
841
1267
|
if (isOpen()) return;
|
|
842
1268
|
panelTapAnim?.stop();
|
|
843
1269
|
panelTapAnim = (0, import_motion.animate)(panelRef, {
|
|
@@ -848,7 +1274,7 @@ function Folder(props) {
|
|
|
848
1274
|
bounce: 0.3
|
|
849
1275
|
});
|
|
850
1276
|
});
|
|
851
|
-
_el$
|
|
1277
|
+
_el$17.$$pointerup = () => {
|
|
852
1278
|
if (isOpen()) return;
|
|
853
1279
|
panelTapAnim?.stop();
|
|
854
1280
|
panelTapAnim = (0, import_motion.animate)(panelRef, {
|
|
@@ -859,7 +1285,7 @@ function Folder(props) {
|
|
|
859
1285
|
bounce: 0.3
|
|
860
1286
|
});
|
|
861
1287
|
};
|
|
862
|
-
_el$
|
|
1288
|
+
_el$17.$$pointerdown = () => {
|
|
863
1289
|
if (isOpen()) return;
|
|
864
1290
|
document.activeElement?.blur?.();
|
|
865
1291
|
panelTapAnim?.stop();
|
|
@@ -872,18 +1298,17 @@ function Folder(props) {
|
|
|
872
1298
|
});
|
|
873
1299
|
};
|
|
874
1300
|
var _ref$2 = panelRef;
|
|
875
|
-
typeof _ref$2 === "function" ? (0,
|
|
876
|
-
(0,
|
|
877
|
-
(0,
|
|
878
|
-
return _el$
|
|
1301
|
+
typeof _ref$2 === "function" ? (0, import_web11.use)(_ref$2, _el$17) : panelRef = _el$17;
|
|
1302
|
+
(0, import_web9.insert)(_el$17, folderContent);
|
|
1303
|
+
(0, import_web7.effect)(() => (0, import_web4.setAttribute)(_el$17, "data-collapsed", String(isCollapsed())));
|
|
1304
|
+
return _el$17;
|
|
879
1305
|
})();
|
|
880
1306
|
}
|
|
881
1307
|
return folderContent();
|
|
882
1308
|
}
|
|
883
|
-
(0,
|
|
1309
|
+
(0, import_web3.delegateEvents)(["click", "pointerdown", "pointerup"]);
|
|
884
1310
|
|
|
885
1311
|
// src/solid/components/Slider.tsx
|
|
886
|
-
var import_web11 = require("solid-js/web");
|
|
887
1312
|
var import_web12 = require("solid-js/web");
|
|
888
1313
|
var import_web13 = require("solid-js/web");
|
|
889
1314
|
var import_web14 = require("solid-js/web");
|
|
@@ -891,33 +1316,18 @@ var import_web15 = require("solid-js/web");
|
|
|
891
1316
|
var import_web16 = require("solid-js/web");
|
|
892
1317
|
var import_web17 = require("solid-js/web");
|
|
893
1318
|
var import_web18 = require("solid-js/web");
|
|
894
|
-
var
|
|
1319
|
+
var import_web19 = require("solid-js/web");
|
|
1320
|
+
var import_web20 = require("solid-js/web");
|
|
1321
|
+
var import_solid_js4 = require("solid-js");
|
|
895
1322
|
var import_motion2 = require("motion");
|
|
896
|
-
var _tmpl$10 = /* @__PURE__ */ (0,
|
|
897
|
-
var _tmpl$22 = /* @__PURE__ */ (0,
|
|
898
|
-
var _tmpl$32 = /* @__PURE__ */ (0,
|
|
899
|
-
var _tmpl$42 = /* @__PURE__ */ (0,
|
|
1323
|
+
var _tmpl$10 = /* @__PURE__ */ (0, import_web12.template)(`<div class=dialkit-slider-hashmark>`);
|
|
1324
|
+
var _tmpl$22 = /* @__PURE__ */ (0, import_web12.template)(`<span>`);
|
|
1325
|
+
var _tmpl$32 = /* @__PURE__ */ (0, import_web12.template)(`<div class=dialkit-slider-wrapper><div><div class=dialkit-slider-hashmarks></div><div class=dialkit-slider-fill></div><div class=dialkit-slider-handle style="transform:translateY(-50%) scaleX(0.25) scaleY(1);opacity:0"></div><span class=dialkit-slider-label>`);
|
|
1326
|
+
var _tmpl$42 = /* @__PURE__ */ (0, import_web12.template)(`<input type=text class=dialkit-slider-input>`);
|
|
900
1327
|
var CLICK_THRESHOLD = 3;
|
|
901
1328
|
var DEAD_ZONE = 32;
|
|
902
1329
|
var MAX_CURSOR_RANGE = 200;
|
|
903
1330
|
var MAX_STRETCH = 8;
|
|
904
|
-
function decimalsForStep(step) {
|
|
905
|
-
const s = step.toString();
|
|
906
|
-
const dot = s.indexOf(".");
|
|
907
|
-
return dot === -1 ? 0 : s.length - dot - 1;
|
|
908
|
-
}
|
|
909
|
-
function roundValue(val, step) {
|
|
910
|
-
const raw = Math.round(val / step) * step;
|
|
911
|
-
return parseFloat(raw.toFixed(decimalsForStep(step)));
|
|
912
|
-
}
|
|
913
|
-
function snapToDecile(rawValue, min, max) {
|
|
914
|
-
const normalized = (rawValue - min) / (max - min);
|
|
915
|
-
const nearest = Math.round(normalized * 10) / 10;
|
|
916
|
-
if (Math.abs(normalized - nearest) <= 0.03125) {
|
|
917
|
-
return min + nearest * (max - min);
|
|
918
|
-
}
|
|
919
|
-
return rawValue;
|
|
920
|
-
}
|
|
921
1331
|
function Slider(props) {
|
|
922
1332
|
const min = () => props.min ?? 0;
|
|
923
1333
|
const max = () => props.max ?? 1;
|
|
@@ -929,13 +1339,13 @@ function Slider(props) {
|
|
|
929
1339
|
let labelRef;
|
|
930
1340
|
let valueSpanRef;
|
|
931
1341
|
let inputRef;
|
|
932
|
-
const [isInteracting, setIsInteracting] = (0,
|
|
933
|
-
const [isDragging, setIsDragging] = (0,
|
|
934
|
-
const [isHovered, setIsHovered] = (0,
|
|
935
|
-
const [isValueHovered, setIsValueHovered] = (0,
|
|
936
|
-
const [isValueEditable, setIsValueEditable] = (0,
|
|
937
|
-
const [showInput, setShowInput] = (0,
|
|
938
|
-
const [inputValue, setInputValue] = (0,
|
|
1342
|
+
const [isInteracting, setIsInteracting] = (0, import_solid_js4.createSignal)(false);
|
|
1343
|
+
const [isDragging, setIsDragging] = (0, import_solid_js4.createSignal)(false);
|
|
1344
|
+
const [isHovered, setIsHovered] = (0, import_solid_js4.createSignal)(false);
|
|
1345
|
+
const [isValueHovered, setIsValueHovered] = (0, import_solid_js4.createSignal)(false);
|
|
1346
|
+
const [isValueEditable, setIsValueEditable] = (0, import_solid_js4.createSignal)(false);
|
|
1347
|
+
const [showInput, setShowInput] = (0, import_solid_js4.createSignal)(false);
|
|
1348
|
+
const [inputValue, setInputValue] = (0, import_solid_js4.createSignal)("");
|
|
939
1349
|
const fillPercent = (0, import_motion2.motionValue)((props.value - min()) / (max() - min()) * 100);
|
|
940
1350
|
const rubberStretchPx = (0, import_motion2.motionValue)(0);
|
|
941
1351
|
const handleOpacityMv = (0, import_motion2.motionValue)(0);
|
|
@@ -955,7 +1365,7 @@ function Slider(props) {
|
|
|
955
1365
|
handleRef.style.opacity = String(handleOpacityMv.get());
|
|
956
1366
|
handleRef.style.transform = `translateY(-50%) scaleX(${handleScaleXMv.get()}) scaleY(${handleScaleYMv.get()})`;
|
|
957
1367
|
};
|
|
958
|
-
(0,
|
|
1368
|
+
(0, import_solid_js4.createEffect)(() => {
|
|
959
1369
|
if (!isInteracting() && !snapAnim) {
|
|
960
1370
|
fillPercent.jump((props.value - min()) / (max() - min()) * 100);
|
|
961
1371
|
}
|
|
@@ -1073,11 +1483,11 @@ function Slider(props) {
|
|
|
1073
1483
|
const handlePointerCancel = () => {
|
|
1074
1484
|
cancelInteraction();
|
|
1075
1485
|
};
|
|
1076
|
-
(0,
|
|
1486
|
+
(0, import_solid_js4.createEffect)(() => {
|
|
1077
1487
|
const hovered = isValueHovered();
|
|
1078
1488
|
const editing = showInput();
|
|
1079
1489
|
const editable = isValueEditable();
|
|
1080
|
-
(0,
|
|
1490
|
+
(0, import_solid_js4.onCleanup)(() => {
|
|
1081
1491
|
if (hoverTimeout) {
|
|
1082
1492
|
clearTimeout(hoverTimeout);
|
|
1083
1493
|
hoverTimeout = null;
|
|
@@ -1089,7 +1499,7 @@ function Slider(props) {
|
|
|
1089
1499
|
setIsValueEditable(false);
|
|
1090
1500
|
}
|
|
1091
1501
|
});
|
|
1092
|
-
(0,
|
|
1502
|
+
(0, import_solid_js4.onCleanup)(() => {
|
|
1093
1503
|
if (hoverTimeout) clearTimeout(hoverTimeout);
|
|
1094
1504
|
snapAnim?.stop();
|
|
1095
1505
|
rubberAnim?.stop();
|
|
@@ -1097,7 +1507,7 @@ function Slider(props) {
|
|
|
1097
1507
|
handleScaleXAnim?.stop();
|
|
1098
1508
|
handleScaleYAnim?.stop();
|
|
1099
1509
|
});
|
|
1100
|
-
(0,
|
|
1510
|
+
(0, import_solid_js4.onMount)(() => {
|
|
1101
1511
|
const unsubFill = fillPercent.on("change", applyFillStyles);
|
|
1102
1512
|
const unsubRubber = rubberStretchPx.on("change", applyRubberStyles);
|
|
1103
1513
|
const unsubHandleOpacity = handleOpacityMv.on("change", applyHandleVisualStyles);
|
|
@@ -1106,7 +1516,7 @@ function Slider(props) {
|
|
|
1106
1516
|
applyFillStyles(fillPercent.get());
|
|
1107
1517
|
applyRubberStyles(rubberStretchPx.get());
|
|
1108
1518
|
applyHandleVisualStyles();
|
|
1109
|
-
(0,
|
|
1519
|
+
(0, import_solid_js4.onCleanup)(() => {
|
|
1110
1520
|
unsubFill();
|
|
1111
1521
|
unsubRubber();
|
|
1112
1522
|
unsubHandleOpacity();
|
|
@@ -1114,7 +1524,7 @@ function Slider(props) {
|
|
|
1114
1524
|
unsubHandleScaleY();
|
|
1115
1525
|
});
|
|
1116
1526
|
});
|
|
1117
|
-
(0,
|
|
1527
|
+
(0, import_solid_js4.createEffect)(() => {
|
|
1118
1528
|
if (showInput() && inputRef) {
|
|
1119
1529
|
inputRef.focus();
|
|
1120
1530
|
inputRef.select();
|
|
@@ -1170,7 +1580,7 @@ function Slider(props) {
|
|
|
1170
1580
|
if (isDragging()) return 0.9;
|
|
1171
1581
|
return 0.5;
|
|
1172
1582
|
};
|
|
1173
|
-
(0,
|
|
1583
|
+
(0, import_solid_js4.createEffect)(() => {
|
|
1174
1584
|
const targetOpacity = handleOpacity();
|
|
1175
1585
|
const targetScaleX = isActive() ? 1 : 0.25;
|
|
1176
1586
|
const targetScaleY = isActive() && valueDodge() ? 0.75 : 1;
|
|
@@ -1191,7 +1601,6 @@ function Slider(props) {
|
|
|
1191
1601
|
bounce: 0.1
|
|
1192
1602
|
});
|
|
1193
1603
|
});
|
|
1194
|
-
const fillBackground = () => isActive() ? "rgba(255, 255, 255, 0.15)" : "rgba(255, 255, 255, 0.11)";
|
|
1195
1604
|
const discreteSteps = () => (max() - min()) / step();
|
|
1196
1605
|
const hashMarks = () => {
|
|
1197
1606
|
const ds = discreteSteps();
|
|
@@ -1202,7 +1611,7 @@ function Slider(props) {
|
|
|
1202
1611
|
const pct = (i + 1) * step() / (max() - min()) * 100;
|
|
1203
1612
|
return (() => {
|
|
1204
1613
|
var _el$ = _tmpl$10();
|
|
1205
|
-
(0,
|
|
1614
|
+
(0, import_web20.setStyleProperty)(_el$, "left", `${pct}%`);
|
|
1206
1615
|
return _el$;
|
|
1207
1616
|
})();
|
|
1208
1617
|
});
|
|
@@ -1213,15 +1622,15 @@ function Slider(props) {
|
|
|
1213
1622
|
const pct = (i + 1) * 10;
|
|
1214
1623
|
return (() => {
|
|
1215
1624
|
var _el$2 = _tmpl$10();
|
|
1216
|
-
(0,
|
|
1625
|
+
(0, import_web20.setStyleProperty)(_el$2, "left", `${pct}%`);
|
|
1217
1626
|
return _el$2;
|
|
1218
1627
|
})();
|
|
1219
1628
|
});
|
|
1220
1629
|
};
|
|
1221
1630
|
return (() => {
|
|
1222
|
-
var _el$3 = _tmpl$
|
|
1631
|
+
var _el$3 = _tmpl$32(), _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling;
|
|
1223
1632
|
var _ref$ = wrapperRef;
|
|
1224
|
-
typeof _ref$ === "function" ? (0,
|
|
1633
|
+
typeof _ref$ === "function" ? (0, import_web19.use)(_ref$, _el$3) : wrapperRef = _el$3;
|
|
1225
1634
|
_el$4.addEventListener("mouseleave", () => setIsHovered(false));
|
|
1226
1635
|
_el$4.addEventListener("mouseenter", () => setIsHovered(true));
|
|
1227
1636
|
_el$4.addEventListener("pointercancel", handlePointerCancel);
|
|
@@ -1229,188 +1638,184 @@ function Slider(props) {
|
|
|
1229
1638
|
_el$4.$$pointermove = handlePointerMove;
|
|
1230
1639
|
_el$4.$$pointerdown = handlePointerDown;
|
|
1231
1640
|
var _ref$2 = trackRef;
|
|
1232
|
-
typeof _ref$2 === "function" ? (0,
|
|
1233
|
-
(0,
|
|
1641
|
+
typeof _ref$2 === "function" ? (0, import_web19.use)(_ref$2, _el$4) : trackRef = _el$4;
|
|
1642
|
+
(0, import_web18.insert)(_el$5, hashMarks);
|
|
1234
1643
|
var _ref$3 = fillRef;
|
|
1235
|
-
typeof _ref$3 === "function" ? (0,
|
|
1644
|
+
typeof _ref$3 === "function" ? (0, import_web19.use)(_ref$3, _el$6) : fillRef = _el$6;
|
|
1236
1645
|
var _ref$4 = handleRef;
|
|
1237
|
-
typeof _ref$4 === "function" ? (0,
|
|
1646
|
+
typeof _ref$4 === "function" ? (0, import_web19.use)(_ref$4, _el$7) : handleRef = _el$7;
|
|
1238
1647
|
var _ref$5 = labelRef;
|
|
1239
|
-
typeof _ref$5 === "function" ? (0,
|
|
1240
|
-
(0,
|
|
1241
|
-
(0,
|
|
1242
|
-
|
|
1648
|
+
typeof _ref$5 === "function" ? (0, import_web19.use)(_ref$5, _el$8) : labelRef = _el$8;
|
|
1649
|
+
(0, import_web18.insert)(_el$8, () => props.label, null);
|
|
1650
|
+
(0, import_web18.insert)(_el$8, (0, import_web15.createComponent)(import_solid_js4.Show, {
|
|
1651
|
+
get when() {
|
|
1652
|
+
return props.shortcut;
|
|
1653
|
+
},
|
|
1654
|
+
get children() {
|
|
1655
|
+
var _el$9 = _tmpl$22();
|
|
1656
|
+
(0, import_web18.insert)(_el$9, () => formatSliderShortcut(props.shortcut));
|
|
1657
|
+
(0, import_web17.effect)(() => (0, import_web16.className)(_el$9, `dialkit-shortcut-pill${props.shortcutActive ? " dialkit-shortcut-pill-active" : ""}`));
|
|
1658
|
+
return _el$9;
|
|
1659
|
+
}
|
|
1660
|
+
}), null);
|
|
1661
|
+
(0, import_web18.insert)(_el$4, (() => {
|
|
1662
|
+
var _c$ = (0, import_web14.memo)(() => !!showInput());
|
|
1243
1663
|
return () => _c$() ? (() => {
|
|
1244
|
-
var _el$
|
|
1245
|
-
_el$
|
|
1246
|
-
_el$
|
|
1247
|
-
_el$
|
|
1248
|
-
_el$
|
|
1249
|
-
_el$
|
|
1664
|
+
var _el$0 = _tmpl$42();
|
|
1665
|
+
_el$0.$$mousedown = (e) => e.stopPropagation();
|
|
1666
|
+
_el$0.$$click = (e) => e.stopPropagation();
|
|
1667
|
+
_el$0.addEventListener("blur", handleInputSubmit);
|
|
1668
|
+
_el$0.$$keydown = handleInputKeyDown;
|
|
1669
|
+
_el$0.$$input = (e) => setInputValue(e.currentTarget.value);
|
|
1250
1670
|
var _ref$6 = inputRef;
|
|
1251
|
-
typeof _ref$6 === "function" ? (0,
|
|
1252
|
-
(0,
|
|
1253
|
-
return _el$
|
|
1671
|
+
typeof _ref$6 === "function" ? (0, import_web19.use)(_ref$6, _el$0) : inputRef = _el$0;
|
|
1672
|
+
(0, import_web17.effect)(() => _el$0.value = inputValue());
|
|
1673
|
+
return _el$0;
|
|
1254
1674
|
})() : (() => {
|
|
1255
|
-
var _el$
|
|
1256
|
-
_el$
|
|
1257
|
-
_el$
|
|
1258
|
-
_el$
|
|
1259
|
-
_el$
|
|
1675
|
+
var _el$1 = _tmpl$22();
|
|
1676
|
+
_el$1.$$mousedown = (e) => isValueEditable() && e.stopPropagation();
|
|
1677
|
+
_el$1.$$click = handleValueClick;
|
|
1678
|
+
_el$1.addEventListener("mouseleave", () => setIsValueHovered(false));
|
|
1679
|
+
_el$1.addEventListener("mouseenter", () => setIsValueHovered(true));
|
|
1260
1680
|
var _ref$7 = valueSpanRef;
|
|
1261
|
-
typeof _ref$7 === "function" ? (0,
|
|
1262
|
-
(0,
|
|
1263
|
-
(0,
|
|
1264
|
-
var _v$
|
|
1265
|
-
_v$
|
|
1266
|
-
_v$
|
|
1681
|
+
typeof _ref$7 === "function" ? (0, import_web19.use)(_ref$7, _el$1) : valueSpanRef = _el$1;
|
|
1682
|
+
(0, import_web18.insert)(_el$1, displayValue);
|
|
1683
|
+
(0, import_web17.effect)((_p$) => {
|
|
1684
|
+
var _v$4 = `dialkit-slider-value ${isValueEditable() ? "dialkit-slider-value-editable" : ""}`, _v$5 = isValueEditable() ? "text" : "default";
|
|
1685
|
+
_v$4 !== _p$.e && (0, import_web16.className)(_el$1, _p$.e = _v$4);
|
|
1686
|
+
_v$5 !== _p$.t && (0, import_web20.setStyleProperty)(_el$1, "cursor", _p$.t = _v$5);
|
|
1267
1687
|
return _p$;
|
|
1268
1688
|
}, {
|
|
1269
1689
|
e: void 0,
|
|
1270
1690
|
t: void 0
|
|
1271
1691
|
});
|
|
1272
|
-
return _el$
|
|
1692
|
+
return _el$1;
|
|
1273
1693
|
})();
|
|
1274
1694
|
})(), null);
|
|
1275
|
-
(0,
|
|
1276
|
-
var _v$ = `dialkit-slider ${isActive() ? "dialkit-slider-active" : ""}`, _v$2 =
|
|
1277
|
-
_v$ !== _p$.e && (0,
|
|
1278
|
-
_v$2 !== _p$.t && (0,
|
|
1279
|
-
_v$3 !== _p$.a && (0,
|
|
1280
|
-
_v$4 !== _p$.o && (0, import_web18.setStyleProperty)(_el$7, "left", _p$.o = _v$4);
|
|
1695
|
+
(0, import_web17.effect)((_p$) => {
|
|
1696
|
+
var _v$ = `dialkit-slider ${isActive() ? "dialkit-slider-active" : ""}`, _v$2 = `${fillPercent.get()}%`, _v$3 = `max(5px, calc(${fillPercent.get()}% - 9px))`;
|
|
1697
|
+
_v$ !== _p$.e && (0, import_web16.className)(_el$4, _p$.e = _v$);
|
|
1698
|
+
_v$2 !== _p$.t && (0, import_web20.setStyleProperty)(_el$6, "width", _p$.t = _v$2);
|
|
1699
|
+
_v$3 !== _p$.a && (0, import_web20.setStyleProperty)(_el$7, "left", _p$.a = _v$3);
|
|
1281
1700
|
return _p$;
|
|
1282
1701
|
}, {
|
|
1283
1702
|
e: void 0,
|
|
1284
1703
|
t: void 0,
|
|
1285
|
-
a: void 0
|
|
1286
|
-
o: void 0
|
|
1704
|
+
a: void 0
|
|
1287
1705
|
});
|
|
1288
1706
|
return _el$3;
|
|
1289
1707
|
})();
|
|
1290
1708
|
}
|
|
1291
|
-
(0,
|
|
1709
|
+
(0, import_web13.delegateEvents)(["pointerdown", "pointermove", "pointerup", "input", "keydown", "click", "mousedown"]);
|
|
1292
1710
|
|
|
1293
1711
|
// src/solid/components/Toggle.tsx
|
|
1294
|
-
var import_web27 = require("solid-js/web");
|
|
1295
|
-
var import_web28 = require("solid-js/web");
|
|
1296
1712
|
var import_web29 = require("solid-js/web");
|
|
1297
1713
|
var import_web30 = require("solid-js/web");
|
|
1714
|
+
var import_web31 = require("solid-js/web");
|
|
1715
|
+
var import_web32 = require("solid-js/web");
|
|
1716
|
+
var import_web33 = require("solid-js/web");
|
|
1717
|
+
var import_web34 = require("solid-js/web");
|
|
1718
|
+
var import_solid_js6 = require("solid-js");
|
|
1298
1719
|
|
|
1299
1720
|
// src/solid/components/SegmentedControl.tsx
|
|
1300
|
-
var import_web19 = require("solid-js/web");
|
|
1301
|
-
var import_web20 = require("solid-js/web");
|
|
1302
1721
|
var import_web21 = require("solid-js/web");
|
|
1303
1722
|
var import_web22 = require("solid-js/web");
|
|
1304
1723
|
var import_web23 = require("solid-js/web");
|
|
1305
1724
|
var import_web24 = require("solid-js/web");
|
|
1306
1725
|
var import_web25 = require("solid-js/web");
|
|
1307
1726
|
var import_web26 = require("solid-js/web");
|
|
1308
|
-
var
|
|
1309
|
-
var
|
|
1310
|
-
var
|
|
1311
|
-
var _tmpl$
|
|
1727
|
+
var import_web27 = require("solid-js/web");
|
|
1728
|
+
var import_web28 = require("solid-js/web");
|
|
1729
|
+
var import_solid_js5 = require("solid-js");
|
|
1730
|
+
var _tmpl$11 = /* @__PURE__ */ (0, import_web21.template)(`<div class=dialkit-segmented>`);
|
|
1731
|
+
var _tmpl$23 = /* @__PURE__ */ (0, import_web21.template)(`<div class=dialkit-segmented-pill>`);
|
|
1732
|
+
var _tmpl$33 = /* @__PURE__ */ (0, import_web21.template)(`<button class=dialkit-segmented-button>`);
|
|
1312
1733
|
function SegmentedControl(props) {
|
|
1313
1734
|
let containerRef;
|
|
1314
|
-
let pillRef;
|
|
1315
|
-
const buttonRefs = /* @__PURE__ */ new Map();
|
|
1316
|
-
const [pillReady, setPillReady] = (0, import_solid_js4.createSignal)(false);
|
|
1317
1735
|
let hasAnimated = false;
|
|
1318
|
-
|
|
1319
|
-
const
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
width: buttonRect.width
|
|
1327
|
-
};
|
|
1328
|
-
};
|
|
1329
|
-
const setPillImmediate = (left, width) => {
|
|
1330
|
-
if (!pillRef) return;
|
|
1331
|
-
pillRef.style.left = `${left}px`;
|
|
1332
|
-
pillRef.style.width = `${width}px`;
|
|
1333
|
-
};
|
|
1334
|
-
const updatePill = (shouldAnimate) => {
|
|
1335
|
-
const next = measurePill();
|
|
1336
|
-
if (!next) return;
|
|
1337
|
-
if (!pillReady()) {
|
|
1338
|
-
setPillImmediate(next.left, next.width);
|
|
1339
|
-
setPillReady(true);
|
|
1340
|
-
return;
|
|
1341
|
-
}
|
|
1342
|
-
if (!shouldAnimate || !hasAnimated) {
|
|
1343
|
-
pillAnim?.stop();
|
|
1344
|
-
pillAnim = null;
|
|
1345
|
-
setPillImmediate(next.left, next.width);
|
|
1346
|
-
return;
|
|
1347
|
-
}
|
|
1348
|
-
pillAnim?.stop();
|
|
1349
|
-
pillAnim = (0, import_motion3.animate)(pillRef, {
|
|
1350
|
-
left: next.left,
|
|
1351
|
-
width: next.width
|
|
1352
|
-
}, {
|
|
1353
|
-
type: "spring",
|
|
1354
|
-
visualDuration: 0.2,
|
|
1355
|
-
bounce: 0.15,
|
|
1356
|
-
onComplete: () => {
|
|
1357
|
-
pillAnim = null;
|
|
1358
|
-
}
|
|
1736
|
+
const [pillStyle, setPillStyle] = (0, import_solid_js5.createSignal)(null);
|
|
1737
|
+
const measure = () => {
|
|
1738
|
+
if (!containerRef) return;
|
|
1739
|
+
const activeButton = containerRef.querySelector('[data-active="true"]');
|
|
1740
|
+
if (!activeButton) return;
|
|
1741
|
+
setPillStyle({
|
|
1742
|
+
left: activeButton.offsetLeft,
|
|
1743
|
+
width: activeButton.offsetWidth
|
|
1359
1744
|
});
|
|
1360
1745
|
};
|
|
1361
|
-
(0,
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1746
|
+
(0, import_solid_js5.createEffect)(() => {
|
|
1747
|
+
void props.value;
|
|
1748
|
+
void props.options.length;
|
|
1749
|
+
measure();
|
|
1365
1750
|
});
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1751
|
+
const transition = () => {
|
|
1752
|
+
void props.value;
|
|
1753
|
+
if (!hasAnimated) {
|
|
1369
1754
|
hasAnimated = true;
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
(0, import_solid_js4.onCleanup)(() => {
|
|
1375
|
-
pillAnim?.stop();
|
|
1376
|
-
ro.disconnect();
|
|
1377
|
-
});
|
|
1378
|
-
});
|
|
1755
|
+
return "none";
|
|
1756
|
+
}
|
|
1757
|
+
return "left 0.2s cubic-bezier(0.25, 1, 0.5, 1), width 0.2s cubic-bezier(0.25, 1, 0.5, 1)";
|
|
1758
|
+
};
|
|
1379
1759
|
return (() => {
|
|
1380
|
-
var _el$ = _tmpl$11()
|
|
1760
|
+
var _el$ = _tmpl$11();
|
|
1381
1761
|
var _ref$ = containerRef;
|
|
1382
|
-
typeof _ref$ === "function" ? (0,
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1762
|
+
typeof _ref$ === "function" ? (0, import_web28.use)(_ref$, _el$) : containerRef = _el$;
|
|
1763
|
+
(0, import_web26.insert)(_el$, (0, import_web27.createComponent)(import_solid_js5.Show, {
|
|
1764
|
+
get when() {
|
|
1765
|
+
return pillStyle();
|
|
1766
|
+
},
|
|
1767
|
+
children: (style) => (() => {
|
|
1768
|
+
var _el$2 = _tmpl$23();
|
|
1769
|
+
(0, import_web25.effect)((_p$) => {
|
|
1770
|
+
var _v$ = `${style().left}px`, _v$2 = `${style().width}px`, _v$3 = transition();
|
|
1771
|
+
_v$ !== _p$.e && (0, import_web24.setStyleProperty)(_el$2, "left", _p$.e = _v$);
|
|
1772
|
+
_v$2 !== _p$.t && (0, import_web24.setStyleProperty)(_el$2, "width", _p$.t = _v$2);
|
|
1773
|
+
_v$3 !== _p$.a && (0, import_web24.setStyleProperty)(_el$2, "transition", _p$.a = _v$3);
|
|
1774
|
+
return _p$;
|
|
1775
|
+
}, {
|
|
1776
|
+
e: void 0,
|
|
1777
|
+
t: void 0,
|
|
1778
|
+
a: void 0
|
|
1779
|
+
});
|
|
1780
|
+
return _el$2;
|
|
1781
|
+
})()
|
|
1782
|
+
}), null);
|
|
1783
|
+
(0, import_web26.insert)(_el$, (0, import_web27.createComponent)(import_solid_js5.For, {
|
|
1386
1784
|
get each() {
|
|
1387
1785
|
return props.options;
|
|
1388
1786
|
},
|
|
1389
1787
|
children: (option) => (() => {
|
|
1390
|
-
var _el$3 = _tmpl$
|
|
1788
|
+
var _el$3 = _tmpl$33();
|
|
1391
1789
|
_el$3.$$click = () => props.onChange(option.value);
|
|
1392
|
-
(0, import_web26.
|
|
1393
|
-
|
|
1394
|
-
buttonRefs.set(option.value, el);
|
|
1395
|
-
}, _el$3);
|
|
1396
|
-
(0, import_web24.insert)(_el$3, () => option.label);
|
|
1397
|
-
(0, import_web23.effect)(() => (0, import_web21.setAttribute)(_el$3, "data-active", String(props.value === option.value)));
|
|
1790
|
+
(0, import_web26.insert)(_el$3, () => option.label);
|
|
1791
|
+
(0, import_web25.effect)(() => (0, import_web23.setAttribute)(_el$3, "data-active", String(props.value === option.value)));
|
|
1398
1792
|
return _el$3;
|
|
1399
1793
|
})()
|
|
1400
1794
|
}), null);
|
|
1401
|
-
(0, import_web23.effect)((_$p) => (0, import_web22.setStyleProperty)(_el$2, "visibility", pillReady() ? "visible" : "hidden"));
|
|
1402
1795
|
return _el$;
|
|
1403
1796
|
})();
|
|
1404
1797
|
}
|
|
1405
|
-
(0,
|
|
1798
|
+
(0, import_web22.delegateEvents)(["click"]);
|
|
1406
1799
|
|
|
1407
1800
|
// src/solid/components/Toggle.tsx
|
|
1408
|
-
var _tmpl$12 = /* @__PURE__ */ (0,
|
|
1801
|
+
var _tmpl$12 = /* @__PURE__ */ (0, import_web29.template)(`<span>`);
|
|
1802
|
+
var _tmpl$24 = /* @__PURE__ */ (0, import_web29.template)(`<div class=dialkit-labeled-control><span class=dialkit-labeled-control-label>`);
|
|
1409
1803
|
function Toggle(props) {
|
|
1410
1804
|
return (() => {
|
|
1411
|
-
var _el$ = _tmpl$
|
|
1412
|
-
(0,
|
|
1413
|
-
(0,
|
|
1805
|
+
var _el$ = _tmpl$24(), _el$2 = _el$.firstChild;
|
|
1806
|
+
(0, import_web34.insert)(_el$2, () => props.label, null);
|
|
1807
|
+
(0, import_web34.insert)(_el$2, (0, import_web31.createComponent)(import_solid_js6.Show, {
|
|
1808
|
+
get when() {
|
|
1809
|
+
return props.shortcut;
|
|
1810
|
+
},
|
|
1811
|
+
get children() {
|
|
1812
|
+
var _el$3 = _tmpl$12();
|
|
1813
|
+
(0, import_web34.insert)(_el$3, () => formatToggleShortcut(props.shortcut));
|
|
1814
|
+
(0, import_web33.effect)(() => (0, import_web32.className)(_el$3, `dialkit-shortcut-pill${props.shortcutActive ? " dialkit-shortcut-pill-active" : ""}`));
|
|
1815
|
+
return _el$3;
|
|
1816
|
+
}
|
|
1817
|
+
}), null);
|
|
1818
|
+
(0, import_web34.insert)(_el$, (0, import_web31.createComponent)(SegmentedControl, {
|
|
1414
1819
|
options: [{
|
|
1415
1820
|
value: "off",
|
|
1416
1821
|
label: "Off"
|
|
@@ -1428,20 +1833,20 @@ function Toggle(props) {
|
|
|
1428
1833
|
}
|
|
1429
1834
|
|
|
1430
1835
|
// src/solid/components/SpringControl.tsx
|
|
1836
|
+
var import_web39 = require("solid-js/web");
|
|
1837
|
+
var import_web40 = require("solid-js/web");
|
|
1838
|
+
var import_web41 = require("solid-js/web");
|
|
1839
|
+
var import_web42 = require("solid-js/web");
|
|
1840
|
+
var import_solid_js7 = require("solid-js");
|
|
1841
|
+
|
|
1842
|
+
// src/solid/components/SpringVisualization.tsx
|
|
1431
1843
|
var import_web35 = require("solid-js/web");
|
|
1432
1844
|
var import_web36 = require("solid-js/web");
|
|
1433
1845
|
var import_web37 = require("solid-js/web");
|
|
1434
1846
|
var import_web38 = require("solid-js/web");
|
|
1435
|
-
var
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
var import_web31 = require("solid-js/web");
|
|
1439
|
-
var import_web32 = require("solid-js/web");
|
|
1440
|
-
var import_web33 = require("solid-js/web");
|
|
1441
|
-
var import_web34 = require("solid-js/web");
|
|
1442
|
-
var _tmpl$13 = /* @__PURE__ */ (0, import_web31.template)(`<svg><line y1=0 y2=140 stroke="rgba(255, 255, 255, 0.08)"stroke-width=1></svg>`, false, true, false);
|
|
1443
|
-
var _tmpl$24 = /* @__PURE__ */ (0, import_web31.template)(`<svg><line x1=0 x2=256 stroke="rgba(255, 255, 255, 0.08)"stroke-width=1></svg>`, false, true, false);
|
|
1444
|
-
var _tmpl$33 = /* @__PURE__ */ (0, import_web31.template)(`<svg viewBox="0 0 256 140"class=dialkit-spring-viz><line x1=0 y1=70 x2=256 y2=70 stroke="rgba(255, 255, 255, 0.15)"stroke-width=1 stroke-dasharray=4,4></line><path fill=none stroke="rgba(255, 255, 255, 0.6)"stroke-width=2 stroke-linecap=round stroke-linejoin=round>`);
|
|
1847
|
+
var _tmpl$13 = /* @__PURE__ */ (0, import_web35.template)(`<svg><line y1=0 y2=140 stroke="rgba(255, 255, 255, 0.08)"stroke-width=1></svg>`, false, true, false);
|
|
1848
|
+
var _tmpl$25 = /* @__PURE__ */ (0, import_web35.template)(`<svg><line x1=0 x2=256 stroke="rgba(255, 255, 255, 0.08)"stroke-width=1></svg>`, false, true, false);
|
|
1849
|
+
var _tmpl$34 = /* @__PURE__ */ (0, import_web35.template)(`<svg viewBox="0 0 256 140"class=dialkit-spring-viz><line x1=0 y1=70 x2=256 y2=70 stroke="rgba(255, 255, 255, 0.15)"stroke-width=1 stroke-dasharray=4,4></line><path fill=none stroke="rgba(255, 255, 255, 0.6)"stroke-width=2 stroke-linecap=round stroke-linejoin=round>`);
|
|
1445
1850
|
function generateSpringCurve(stiffness, damping, mass, duration) {
|
|
1446
1851
|
const points = [];
|
|
1447
1852
|
const steps = 100;
|
|
@@ -1500,65 +1905,61 @@ function SpringVisualization(props) {
|
|
|
1500
1905
|
const y = height / 4 * i;
|
|
1501
1906
|
lines.push((() => {
|
|
1502
1907
|
var _el$ = _tmpl$13();
|
|
1503
|
-
(0,
|
|
1504
|
-
(0,
|
|
1908
|
+
(0, import_web38.setAttribute)(_el$, "x1", x);
|
|
1909
|
+
(0, import_web38.setAttribute)(_el$, "x2", x);
|
|
1505
1910
|
return _el$;
|
|
1506
1911
|
})(), (() => {
|
|
1507
|
-
var _el$2 = _tmpl$
|
|
1508
|
-
(0,
|
|
1509
|
-
(0,
|
|
1912
|
+
var _el$2 = _tmpl$25();
|
|
1913
|
+
(0, import_web38.setAttribute)(_el$2, "y1", y);
|
|
1914
|
+
(0, import_web38.setAttribute)(_el$2, "y2", y);
|
|
1510
1915
|
return _el$2;
|
|
1511
1916
|
})());
|
|
1512
1917
|
}
|
|
1513
1918
|
return lines;
|
|
1514
1919
|
};
|
|
1515
1920
|
return (() => {
|
|
1516
|
-
var _el$3 = _tmpl$
|
|
1517
|
-
(0,
|
|
1518
|
-
(0,
|
|
1921
|
+
var _el$3 = _tmpl$34(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
|
|
1922
|
+
(0, import_web37.insert)(_el$3, gridLines, _el$4);
|
|
1923
|
+
(0, import_web36.effect)(() => (0, import_web38.setAttribute)(_el$5, "d", params()));
|
|
1519
1924
|
return _el$3;
|
|
1520
1925
|
})();
|
|
1521
1926
|
}
|
|
1522
1927
|
|
|
1523
1928
|
// src/solid/components/SpringControl.tsx
|
|
1524
|
-
var _tmpl$14 = /* @__PURE__ */ (0,
|
|
1929
|
+
var _tmpl$14 = /* @__PURE__ */ (0, import_web39.template)(`<div style=display:flex;flex-direction:column;gap:6px><div class=dialkit-labeled-control><span class=dialkit-labeled-control-label>Type`);
|
|
1525
1930
|
function SpringControl(props) {
|
|
1526
|
-
const [mode, setMode] = (0,
|
|
1527
|
-
(0,
|
|
1931
|
+
const [mode, setMode] = (0, import_solid_js7.createSignal)(DialStore.getSpringMode(props.panelId, props.path));
|
|
1932
|
+
(0, import_solid_js7.onMount)(() => {
|
|
1528
1933
|
const unsub = DialStore.subscribe(props.panelId, () => {
|
|
1529
1934
|
setMode(DialStore.getSpringMode(props.panelId, props.path));
|
|
1530
1935
|
});
|
|
1531
|
-
(0,
|
|
1936
|
+
(0, import_solid_js7.onCleanup)(unsub);
|
|
1532
1937
|
});
|
|
1533
1938
|
const isSimpleMode = () => mode() === "simple";
|
|
1939
|
+
const cache = {
|
|
1940
|
+
simple: props.spring.visualDuration !== void 0 ? props.spring : {
|
|
1941
|
+
type: "spring",
|
|
1942
|
+
visualDuration: 0.3,
|
|
1943
|
+
bounce: 0.2
|
|
1944
|
+
},
|
|
1945
|
+
advanced: props.spring.stiffness !== void 0 ? props.spring : {
|
|
1946
|
+
type: "spring",
|
|
1947
|
+
stiffness: 200,
|
|
1948
|
+
damping: 25,
|
|
1949
|
+
mass: 1
|
|
1950
|
+
}
|
|
1951
|
+
};
|
|
1534
1952
|
const handleModeChange = (newMode) => {
|
|
1953
|
+
if (isSimpleMode()) {
|
|
1954
|
+
cache.simple = props.spring;
|
|
1955
|
+
} else {
|
|
1956
|
+
cache.advanced = props.spring;
|
|
1957
|
+
}
|
|
1535
1958
|
DialStore.updateSpringMode(props.panelId, props.path, newMode);
|
|
1536
1959
|
if (newMode === "simple") {
|
|
1537
|
-
|
|
1538
|
-
stiffness,
|
|
1539
|
-
damping,
|
|
1540
|
-
mass,
|
|
1541
|
-
...rest
|
|
1542
|
-
} = props.spring;
|
|
1543
|
-
props.onChange({
|
|
1544
|
-
...rest,
|
|
1545
|
-
type: "spring",
|
|
1546
|
-
visualDuration: props.spring.visualDuration ?? 0.3,
|
|
1547
|
-
bounce: props.spring.bounce ?? 0.2
|
|
1548
|
-
});
|
|
1960
|
+
props.onChange(cache.simple);
|
|
1549
1961
|
} else {
|
|
1550
|
-
|
|
1551
|
-
visualDuration,
|
|
1552
|
-
bounce,
|
|
1553
|
-
...rest
|
|
1554
|
-
} = props.spring;
|
|
1555
|
-
props.onChange({
|
|
1556
|
-
...rest,
|
|
1557
|
-
type: "spring",
|
|
1558
|
-
stiffness: props.spring.stiffness ?? 200,
|
|
1559
|
-
damping: props.spring.damping ?? 25,
|
|
1560
|
-
mass: props.spring.mass ?? 1
|
|
1561
|
-
});
|
|
1962
|
+
props.onChange(cache.advanced);
|
|
1562
1963
|
}
|
|
1563
1964
|
};
|
|
1564
1965
|
const handleUpdate = (key, value) => {
|
|
@@ -1585,14 +1986,14 @@ function SpringControl(props) {
|
|
|
1585
1986
|
});
|
|
1586
1987
|
}
|
|
1587
1988
|
};
|
|
1588
|
-
return (0,
|
|
1989
|
+
return (0, import_web42.createComponent)(Folder, {
|
|
1589
1990
|
get title() {
|
|
1590
1991
|
return props.label;
|
|
1591
1992
|
},
|
|
1592
1993
|
defaultOpen: true,
|
|
1593
1994
|
get children() {
|
|
1594
1995
|
var _el$ = _tmpl$14(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
|
|
1595
|
-
(0,
|
|
1996
|
+
(0, import_web41.insert)(_el$, (0, import_web42.createComponent)(SpringVisualization, {
|
|
1596
1997
|
get spring() {
|
|
1597
1998
|
return props.spring;
|
|
1598
1999
|
},
|
|
@@ -1600,7 +2001,7 @@ function SpringControl(props) {
|
|
|
1600
2001
|
return isSimpleMode();
|
|
1601
2002
|
}
|
|
1602
2003
|
}), _el$2);
|
|
1603
|
-
(0,
|
|
2004
|
+
(0, import_web41.insert)(_el$2, (0, import_web42.createComponent)(SegmentedControl, {
|
|
1604
2005
|
options: [{
|
|
1605
2006
|
value: "simple",
|
|
1606
2007
|
label: "Time"
|
|
@@ -1613,9 +2014,9 @@ function SpringControl(props) {
|
|
|
1613
2014
|
},
|
|
1614
2015
|
onChange: handleModeChange
|
|
1615
2016
|
}), null);
|
|
1616
|
-
(0,
|
|
1617
|
-
var _c$ = (0,
|
|
1618
|
-
return () => _c$() ? [(0,
|
|
2017
|
+
(0, import_web41.insert)(_el$, (() => {
|
|
2018
|
+
var _c$ = (0, import_web40.memo)(() => !!isSimpleMode());
|
|
2019
|
+
return () => _c$() ? [(0, import_web42.createComponent)(Slider, {
|
|
1619
2020
|
label: "Duration",
|
|
1620
2021
|
get value() {
|
|
1621
2022
|
return props.spring.visualDuration ?? 0.3;
|
|
@@ -1625,7 +2026,7 @@ function SpringControl(props) {
|
|
|
1625
2026
|
max: 1,
|
|
1626
2027
|
step: 0.05,
|
|
1627
2028
|
unit: "s"
|
|
1628
|
-
}), (0,
|
|
2029
|
+
}), (0, import_web42.createComponent)(Slider, {
|
|
1629
2030
|
label: "Bounce",
|
|
1630
2031
|
get value() {
|
|
1631
2032
|
return props.spring.bounce ?? 0.2;
|
|
@@ -1634,7 +2035,7 @@ function SpringControl(props) {
|
|
|
1634
2035
|
min: 0,
|
|
1635
2036
|
max: 1,
|
|
1636
2037
|
step: 0.05
|
|
1637
|
-
})] : [(0,
|
|
2038
|
+
})] : [(0, import_web42.createComponent)(Slider, {
|
|
1638
2039
|
label: "Stiffness",
|
|
1639
2040
|
get value() {
|
|
1640
2041
|
return props.spring.stiffness ?? 400;
|
|
@@ -1643,7 +2044,7 @@ function SpringControl(props) {
|
|
|
1643
2044
|
min: 1,
|
|
1644
2045
|
max: 1e3,
|
|
1645
2046
|
step: 10
|
|
1646
|
-
}), (0,
|
|
2047
|
+
}), (0, import_web42.createComponent)(Slider, {
|
|
1647
2048
|
label: "Damping",
|
|
1648
2049
|
get value() {
|
|
1649
2050
|
return props.spring.damping ?? 17;
|
|
@@ -1652,7 +2053,7 @@ function SpringControl(props) {
|
|
|
1652
2053
|
min: 1,
|
|
1653
2054
|
max: 100,
|
|
1654
2055
|
step: 1
|
|
1655
|
-
}), (0,
|
|
2056
|
+
}), (0, import_web42.createComponent)(Slider, {
|
|
1656
2057
|
label: "Mass",
|
|
1657
2058
|
get value() {
|
|
1658
2059
|
return props.spring.mass ?? 1;
|
|
@@ -1669,44 +2070,44 @@ function SpringControl(props) {
|
|
|
1669
2070
|
}
|
|
1670
2071
|
|
|
1671
2072
|
// src/solid/components/TextControl.tsx
|
|
1672
|
-
var import_web39 = require("solid-js/web");
|
|
1673
|
-
var import_web40 = require("solid-js/web");
|
|
1674
|
-
var import_web41 = require("solid-js/web");
|
|
1675
|
-
var import_web42 = require("solid-js/web");
|
|
1676
2073
|
var import_web43 = require("solid-js/web");
|
|
1677
|
-
var
|
|
1678
|
-
var
|
|
2074
|
+
var import_web44 = require("solid-js/web");
|
|
2075
|
+
var import_web45 = require("solid-js/web");
|
|
2076
|
+
var import_web46 = require("solid-js/web");
|
|
2077
|
+
var import_web47 = require("solid-js/web");
|
|
2078
|
+
var import_solid_js8 = require("solid-js");
|
|
2079
|
+
var _tmpl$15 = /* @__PURE__ */ (0, import_web43.template)(`<div class=dialkit-text-control><label class=dialkit-text-label></label><input type=text class=dialkit-text-input>`);
|
|
1679
2080
|
function TextControl(props) {
|
|
1680
|
-
const inputId = (0,
|
|
2081
|
+
const inputId = (0, import_solid_js8.createUniqueId)();
|
|
1681
2082
|
return (() => {
|
|
1682
2083
|
var _el$ = _tmpl$15(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
1683
|
-
(0,
|
|
1684
|
-
(0,
|
|
2084
|
+
(0, import_web47.setAttribute)(_el$2, "for", inputId);
|
|
2085
|
+
(0, import_web46.insert)(_el$2, () => props.label);
|
|
1685
2086
|
_el$3.$$input = (e) => props.onChange(e.currentTarget.value);
|
|
1686
|
-
(0,
|
|
1687
|
-
(0,
|
|
1688
|
-
(0,
|
|
2087
|
+
(0, import_web47.setAttribute)(_el$3, "id", inputId);
|
|
2088
|
+
(0, import_web45.effect)(() => (0, import_web47.setAttribute)(_el$3, "placeholder", props.placeholder));
|
|
2089
|
+
(0, import_web45.effect)(() => _el$3.value = props.value);
|
|
1689
2090
|
return _el$;
|
|
1690
2091
|
})();
|
|
1691
2092
|
}
|
|
1692
|
-
(0,
|
|
2093
|
+
(0, import_web44.delegateEvents)(["input"]);
|
|
1693
2094
|
|
|
1694
2095
|
// src/solid/components/SelectControl.tsx
|
|
1695
|
-
var import_web44 = require("solid-js/web");
|
|
1696
|
-
var import_web45 = require("solid-js/web");
|
|
1697
|
-
var import_web46 = require("solid-js/web");
|
|
1698
|
-
var import_web47 = require("solid-js/web");
|
|
1699
2096
|
var import_web48 = require("solid-js/web");
|
|
1700
2097
|
var import_web49 = require("solid-js/web");
|
|
1701
2098
|
var import_web50 = require("solid-js/web");
|
|
1702
2099
|
var import_web51 = require("solid-js/web");
|
|
1703
2100
|
var import_web52 = require("solid-js/web");
|
|
1704
|
-
var import_solid_js7 = require("solid-js");
|
|
1705
2101
|
var import_web53 = require("solid-js/web");
|
|
1706
|
-
var
|
|
1707
|
-
var
|
|
1708
|
-
var
|
|
1709
|
-
var
|
|
2102
|
+
var import_web54 = require("solid-js/web");
|
|
2103
|
+
var import_web55 = require("solid-js/web");
|
|
2104
|
+
var import_web56 = require("solid-js/web");
|
|
2105
|
+
var import_solid_js9 = require("solid-js");
|
|
2106
|
+
var import_web57 = require("solid-js/web");
|
|
2107
|
+
var import_motion3 = require("motion");
|
|
2108
|
+
var _tmpl$16 = /* @__PURE__ */ (0, import_web48.template)(`<div class=dialkit-select-dropdown>`);
|
|
2109
|
+
var _tmpl$26 = /* @__PURE__ */ (0, import_web48.template)(`<div class=dialkit-select-row><button class=dialkit-select-trigger><span class=dialkit-select-label></span><div class=dialkit-select-right><span class=dialkit-select-value></span><svg class=dialkit-select-chevron viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2.5 stroke-linecap=round stroke-linejoin=round><path>`);
|
|
2110
|
+
var _tmpl$35 = /* @__PURE__ */ (0, import_web48.template)(`<button class=dialkit-select-option>`);
|
|
1710
2111
|
function toTitleCase(s) {
|
|
1711
2112
|
return s.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
1712
2113
|
}
|
|
@@ -1717,10 +2118,10 @@ function normalizeOptions(options) {
|
|
|
1717
2118
|
} : opt);
|
|
1718
2119
|
}
|
|
1719
2120
|
function SelectControl(props) {
|
|
1720
|
-
const [isOpen, setIsOpen] = (0,
|
|
1721
|
-
const [mounted, setMounted] = (0,
|
|
1722
|
-
const [pos, setPos] = (0,
|
|
1723
|
-
const [portalTarget, setPortalTarget] = (0,
|
|
2121
|
+
const [isOpen, setIsOpen] = (0, import_solid_js9.createSignal)(false);
|
|
2122
|
+
const [mounted, setMounted] = (0, import_solid_js9.createSignal)(false);
|
|
2123
|
+
const [pos, setPos] = (0, import_solid_js9.createSignal)(null);
|
|
2124
|
+
const [portalTarget, setPortalTarget] = (0, import_solid_js9.createSignal)(null);
|
|
1724
2125
|
let triggerRef;
|
|
1725
2126
|
let dropdownRef;
|
|
1726
2127
|
let chevronRef;
|
|
@@ -1728,22 +2129,22 @@ function SelectControl(props) {
|
|
|
1728
2129
|
let chevronAnim = null;
|
|
1729
2130
|
const normalized = () => normalizeOptions(props.options);
|
|
1730
2131
|
const selectedOption = () => normalized().find((o) => o.value === props.value);
|
|
1731
|
-
(0,
|
|
2132
|
+
(0, import_solid_js9.onMount)(() => {
|
|
1732
2133
|
const root = triggerRef?.closest(".dialkit-root");
|
|
1733
2134
|
setPortalTarget(root ?? document.body);
|
|
1734
2135
|
if (chevronRef) {
|
|
1735
2136
|
chevronRef.style.transform = `rotate(${isOpen() ? 180 : 0}deg)`;
|
|
1736
2137
|
}
|
|
1737
|
-
(0,
|
|
2138
|
+
(0, import_solid_js9.onCleanup)(() => {
|
|
1738
2139
|
closeAnim?.stop();
|
|
1739
2140
|
chevronAnim?.stop();
|
|
1740
2141
|
});
|
|
1741
2142
|
});
|
|
1742
|
-
(0,
|
|
2143
|
+
(0, import_solid_js9.createEffect)(() => {
|
|
1743
2144
|
if (!chevronRef) return;
|
|
1744
2145
|
const open = isOpen();
|
|
1745
2146
|
chevronAnim?.stop();
|
|
1746
|
-
chevronAnim = (0,
|
|
2147
|
+
chevronAnim = (0, import_motion3.animate)(chevronRef, {
|
|
1747
2148
|
rotate: open ? 180 : 0
|
|
1748
2149
|
}, {
|
|
1749
2150
|
type: "spring",
|
|
@@ -1779,7 +2180,7 @@ function SelectControl(props) {
|
|
|
1779
2180
|
}
|
|
1780
2181
|
const above = pos()?.above ?? false;
|
|
1781
2182
|
closeAnim?.stop();
|
|
1782
|
-
closeAnim = (0,
|
|
2183
|
+
closeAnim = (0, import_motion3.animate)(dropdownRef, {
|
|
1783
2184
|
opacity: 0,
|
|
1784
2185
|
y: above ? 8 : -8,
|
|
1785
2186
|
scale: 0.95
|
|
@@ -1793,7 +2194,7 @@ function SelectControl(props) {
|
|
|
1793
2194
|
}
|
|
1794
2195
|
});
|
|
1795
2196
|
};
|
|
1796
|
-
(0,
|
|
2197
|
+
(0, import_solid_js9.createEffect)(() => {
|
|
1797
2198
|
if (!isOpen()) return;
|
|
1798
2199
|
const handleViewportChange = () => updatePos();
|
|
1799
2200
|
const handleClick = (e) => {
|
|
@@ -1806,7 +2207,7 @@ function SelectControl(props) {
|
|
|
1806
2207
|
document.addEventListener("mousedown", handleClick);
|
|
1807
2208
|
window.addEventListener("resize", handleViewportChange);
|
|
1808
2209
|
window.addEventListener("scroll", handleViewportChange, true);
|
|
1809
|
-
(0,
|
|
2210
|
+
(0, import_solid_js9.onCleanup)(() => {
|
|
1810
2211
|
document.removeEventListener("mousedown", handleClick);
|
|
1811
2212
|
window.removeEventListener("resize", handleViewportChange);
|
|
1812
2213
|
window.removeEventListener("scroll", handleViewportChange, true);
|
|
@@ -1829,34 +2230,35 @@ function SelectControl(props) {
|
|
|
1829
2230
|
};
|
|
1830
2231
|
};
|
|
1831
2232
|
return (() => {
|
|
1832
|
-
var _el$ = _tmpl$
|
|
2233
|
+
var _el$ = _tmpl$26(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$6.firstChild;
|
|
1833
2234
|
_el$2.$$click = () => isOpen() ? closeDropdown() : openDropdown();
|
|
1834
2235
|
var _ref$ = triggerRef;
|
|
1835
|
-
typeof _ref$ === "function" ? (0,
|
|
1836
|
-
(0,
|
|
1837
|
-
(0,
|
|
2236
|
+
typeof _ref$ === "function" ? (0, import_web56.use)(_ref$, _el$2) : triggerRef = _el$2;
|
|
2237
|
+
(0, import_web55.insert)(_el$3, () => props.label);
|
|
2238
|
+
(0, import_web55.insert)(_el$5, () => selectedOption()?.label ?? props.value);
|
|
1838
2239
|
var _ref$2 = chevronRef;
|
|
1839
|
-
typeof _ref$2 === "function" ? (0,
|
|
1840
|
-
(0,
|
|
2240
|
+
typeof _ref$2 === "function" ? (0, import_web56.use)(_ref$2, _el$6) : chevronRef = _el$6;
|
|
2241
|
+
(0, import_web53.setAttribute)(_el$7, "d", ICON_CHEVRON);
|
|
2242
|
+
(0, import_web55.insert)(_el$, (0, import_web52.createComponent)(import_solid_js9.Show, {
|
|
1841
2243
|
get when() {
|
|
1842
2244
|
return !!portalTarget();
|
|
1843
2245
|
},
|
|
1844
2246
|
get children() {
|
|
1845
|
-
return (0,
|
|
2247
|
+
return (0, import_web52.createComponent)(import_web57.Portal, {
|
|
1846
2248
|
get mount() {
|
|
1847
2249
|
return portalTarget();
|
|
1848
2250
|
},
|
|
1849
2251
|
get children() {
|
|
1850
|
-
return (0,
|
|
2252
|
+
return (0, import_web52.createComponent)(import_solid_js9.Show, {
|
|
1851
2253
|
get when() {
|
|
1852
|
-
return (0,
|
|
2254
|
+
return (0, import_web54.memo)(() => !!mounted())() && pos();
|
|
1853
2255
|
},
|
|
1854
2256
|
get children() {
|
|
1855
|
-
var _el$
|
|
1856
|
-
(0,
|
|
2257
|
+
var _el$8 = _tmpl$16();
|
|
2258
|
+
(0, import_web56.use)((el) => {
|
|
1857
2259
|
dropdownRef = el;
|
|
1858
2260
|
const above = pos()?.above ?? false;
|
|
1859
|
-
(0,
|
|
2261
|
+
(0, import_motion3.animate)(el, {
|
|
1860
2262
|
opacity: [0, 1],
|
|
1861
2263
|
y: [above ? 8 : -8, 0],
|
|
1862
2264
|
scale: [0.95, 1]
|
|
@@ -1865,60 +2267,60 @@ function SelectControl(props) {
|
|
|
1865
2267
|
visualDuration: 0.15,
|
|
1866
2268
|
bounce: 0
|
|
1867
2269
|
});
|
|
1868
|
-
}, _el$
|
|
1869
|
-
(0,
|
|
2270
|
+
}, _el$8);
|
|
2271
|
+
(0, import_web55.insert)(_el$8, (0, import_web52.createComponent)(import_solid_js9.For, {
|
|
1870
2272
|
get each() {
|
|
1871
2273
|
return normalized();
|
|
1872
2274
|
},
|
|
1873
2275
|
children: (option) => (() => {
|
|
1874
|
-
var _el$
|
|
1875
|
-
_el$
|
|
2276
|
+
var _el$9 = _tmpl$35();
|
|
2277
|
+
_el$9.$$click = () => {
|
|
1876
2278
|
props.onChange(option.value);
|
|
1877
2279
|
closeDropdown();
|
|
1878
2280
|
};
|
|
1879
|
-
(0,
|
|
1880
|
-
(0,
|
|
1881
|
-
return _el$
|
|
2281
|
+
(0, import_web55.insert)(_el$9, () => option.label);
|
|
2282
|
+
(0, import_web51.effect)(() => (0, import_web53.setAttribute)(_el$9, "data-selected", String(option.value === props.value)));
|
|
2283
|
+
return _el$9;
|
|
1882
2284
|
})()
|
|
1883
2285
|
}));
|
|
1884
|
-
(0,
|
|
1885
|
-
return _el$
|
|
2286
|
+
(0, import_web51.effect)((_$p) => (0, import_web50.style)(_el$8, dropdownStyle(), _$p));
|
|
2287
|
+
return _el$8;
|
|
1886
2288
|
}
|
|
1887
2289
|
});
|
|
1888
2290
|
}
|
|
1889
2291
|
});
|
|
1890
2292
|
}
|
|
1891
2293
|
}), null);
|
|
1892
|
-
(0,
|
|
2294
|
+
(0, import_web51.effect)(() => (0, import_web53.setAttribute)(_el$2, "data-open", String(isOpen())));
|
|
1893
2295
|
return _el$;
|
|
1894
2296
|
})();
|
|
1895
2297
|
}
|
|
1896
|
-
(0,
|
|
2298
|
+
(0, import_web49.delegateEvents)(["click"]);
|
|
1897
2299
|
|
|
1898
2300
|
// src/solid/components/ColorControl.tsx
|
|
1899
|
-
var import_web54 = require("solid-js/web");
|
|
1900
|
-
var import_web55 = require("solid-js/web");
|
|
1901
|
-
var import_web56 = require("solid-js/web");
|
|
1902
|
-
var import_web57 = require("solid-js/web");
|
|
1903
2301
|
var import_web58 = require("solid-js/web");
|
|
1904
2302
|
var import_web59 = require("solid-js/web");
|
|
1905
2303
|
var import_web60 = require("solid-js/web");
|
|
1906
2304
|
var import_web61 = require("solid-js/web");
|
|
1907
|
-
var
|
|
1908
|
-
var
|
|
1909
|
-
var
|
|
1910
|
-
var
|
|
2305
|
+
var import_web62 = require("solid-js/web");
|
|
2306
|
+
var import_web63 = require("solid-js/web");
|
|
2307
|
+
var import_web64 = require("solid-js/web");
|
|
2308
|
+
var import_web65 = require("solid-js/web");
|
|
2309
|
+
var import_solid_js10 = require("solid-js");
|
|
2310
|
+
var _tmpl$17 = /* @__PURE__ */ (0, import_web58.template)(`<input type=text class=dialkit-color-hex-input autofocus>`);
|
|
2311
|
+
var _tmpl$27 = /* @__PURE__ */ (0, import_web58.template)(`<div class=dialkit-color-control><label class=dialkit-color-label></label><div class=dialkit-color-inputs><button class=dialkit-color-swatch title="Pick color"></button><input type=color class=dialkit-color-picker-native>`);
|
|
2312
|
+
var _tmpl$36 = /* @__PURE__ */ (0, import_web58.template)(`<span class=dialkit-color-hex>`);
|
|
1911
2313
|
var HEX_COLOR_REGEX = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/;
|
|
1912
2314
|
function expandShorthandHex(hex) {
|
|
1913
2315
|
if (hex.length !== 4) return hex;
|
|
1914
2316
|
return `#${hex[1]}${hex[1]}${hex[2]}${hex[2]}${hex[3]}${hex[3]}`;
|
|
1915
2317
|
}
|
|
1916
2318
|
function ColorControl(props) {
|
|
1917
|
-
const [isEditing, setIsEditing] = (0,
|
|
1918
|
-
const [editValue, setEditValue] = (0,
|
|
1919
|
-
const textInputId = (0,
|
|
2319
|
+
const [isEditing, setIsEditing] = (0, import_solid_js10.createSignal)(false);
|
|
2320
|
+
const [editValue, setEditValue] = (0, import_solid_js10.createSignal)(props.value);
|
|
2321
|
+
const textInputId = (0, import_solid_js10.createUniqueId)();
|
|
1920
2322
|
let colorInputRef;
|
|
1921
|
-
(0,
|
|
2323
|
+
(0, import_solid_js10.createEffect)(() => {
|
|
1922
2324
|
if (!isEditing()) {
|
|
1923
2325
|
setEditValue(props.value);
|
|
1924
2326
|
}
|
|
@@ -1939,18 +2341,18 @@ function ColorControl(props) {
|
|
|
1939
2341
|
}
|
|
1940
2342
|
};
|
|
1941
2343
|
return (() => {
|
|
1942
|
-
var _el$ = _tmpl$
|
|
1943
|
-
(0,
|
|
1944
|
-
(0,
|
|
1945
|
-
(0,
|
|
2344
|
+
var _el$ = _tmpl$27(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$5 = _el$3.firstChild, _el$6 = _el$5.nextSibling;
|
|
2345
|
+
(0, import_web65.setAttribute)(_el$2, "for", textInputId);
|
|
2346
|
+
(0, import_web64.insert)(_el$2, () => props.label);
|
|
2347
|
+
(0, import_web64.insert)(_el$3, (0, import_web62.createComponent)(import_solid_js10.Show, {
|
|
1946
2348
|
get when() {
|
|
1947
2349
|
return isEditing();
|
|
1948
2350
|
},
|
|
1949
2351
|
get fallback() {
|
|
1950
2352
|
return (() => {
|
|
1951
|
-
var _el$7 = _tmpl$
|
|
2353
|
+
var _el$7 = _tmpl$36();
|
|
1952
2354
|
_el$7.$$click = () => setIsEditing(true);
|
|
1953
|
-
(0,
|
|
2355
|
+
(0, import_web64.insert)(_el$7, () => (props.value ?? "").toUpperCase());
|
|
1954
2356
|
return _el$7;
|
|
1955
2357
|
})();
|
|
1956
2358
|
},
|
|
@@ -1959,57 +2361,57 @@ function ColorControl(props) {
|
|
|
1959
2361
|
_el$4.$$keydown = handleKeyDown;
|
|
1960
2362
|
_el$4.addEventListener("blur", handleTextSubmit);
|
|
1961
2363
|
_el$4.$$input = (e) => setEditValue(e.currentTarget.value);
|
|
1962
|
-
(0,
|
|
1963
|
-
(0,
|
|
2364
|
+
(0, import_web65.setAttribute)(_el$4, "id", textInputId);
|
|
2365
|
+
(0, import_web63.effect)(() => _el$4.value = editValue());
|
|
1964
2366
|
return _el$4;
|
|
1965
2367
|
}
|
|
1966
2368
|
}), _el$5);
|
|
1967
2369
|
_el$5.$$click = () => colorInputRef?.click();
|
|
1968
2370
|
_el$6.$$input = (e) => props.onChange(e.currentTarget.value);
|
|
1969
2371
|
var _ref$ = colorInputRef;
|
|
1970
|
-
typeof _ref$ === "function" ? (0,
|
|
1971
|
-
(0,
|
|
2372
|
+
typeof _ref$ === "function" ? (0, import_web61.use)(_ref$, _el$6) : colorInputRef = _el$6;
|
|
2373
|
+
(0, import_web63.effect)((_p$) => {
|
|
1972
2374
|
var _v$ = props.value, _v$2 = `Pick color for ${props.label}`, _v$3 = `${props.label} color picker`;
|
|
1973
|
-
_v$ !== _p$.e && (0,
|
|
1974
|
-
_v$2 !== _p$.t && (0,
|
|
1975
|
-
_v$3 !== _p$.a && (0,
|
|
2375
|
+
_v$ !== _p$.e && (0, import_web60.setStyleProperty)(_el$5, "background-color", _p$.e = _v$);
|
|
2376
|
+
_v$2 !== _p$.t && (0, import_web65.setAttribute)(_el$5, "aria-label", _p$.t = _v$2);
|
|
2377
|
+
_v$3 !== _p$.a && (0, import_web65.setAttribute)(_el$6, "aria-label", _p$.a = _v$3);
|
|
1976
2378
|
return _p$;
|
|
1977
2379
|
}, {
|
|
1978
2380
|
e: void 0,
|
|
1979
2381
|
t: void 0,
|
|
1980
2382
|
a: void 0
|
|
1981
2383
|
});
|
|
1982
|
-
(0,
|
|
2384
|
+
(0, import_web63.effect)(() => _el$6.value = props.value.length === 4 ? expandShorthandHex(props.value) : props.value.slice(0, 7));
|
|
1983
2385
|
return _el$;
|
|
1984
2386
|
})();
|
|
1985
2387
|
}
|
|
1986
|
-
(0,
|
|
2388
|
+
(0, import_web59.delegateEvents)(["input", "keydown", "click"]);
|
|
1987
2389
|
|
|
1988
2390
|
// src/solid/components/PresetManager.tsx
|
|
1989
|
-
var import_web62 = require("solid-js/web");
|
|
1990
|
-
var import_web63 = require("solid-js/web");
|
|
1991
|
-
var import_web64 = require("solid-js/web");
|
|
1992
|
-
var import_web65 = require("solid-js/web");
|
|
1993
2391
|
var import_web66 = require("solid-js/web");
|
|
1994
2392
|
var import_web67 = require("solid-js/web");
|
|
1995
2393
|
var import_web68 = require("solid-js/web");
|
|
1996
2394
|
var import_web69 = require("solid-js/web");
|
|
1997
2395
|
var import_web70 = require("solid-js/web");
|
|
1998
|
-
var import_solid_js9 = require("solid-js");
|
|
1999
2396
|
var import_web71 = require("solid-js/web");
|
|
2000
|
-
var
|
|
2001
|
-
var
|
|
2002
|
-
var
|
|
2003
|
-
var
|
|
2397
|
+
var import_web72 = require("solid-js/web");
|
|
2398
|
+
var import_web73 = require("solid-js/web");
|
|
2399
|
+
var import_web74 = require("solid-js/web");
|
|
2400
|
+
var import_solid_js11 = require("solid-js");
|
|
2401
|
+
var import_web75 = require("solid-js/web");
|
|
2402
|
+
var import_motion4 = require("motion");
|
|
2403
|
+
var _tmpl$18 = /* @__PURE__ */ (0, import_web66.template)(`<div class="dialkit-root dialkit-preset-dropdown"style=position:fixed><div class=dialkit-preset-item><span class=dialkit-preset-name>Version 1`);
|
|
2404
|
+
var _tmpl$28 = /* @__PURE__ */ (0, import_web66.template)(`<div class=dialkit-preset-manager><button class=dialkit-preset-trigger><span class=dialkit-preset-label></span><svg class=dialkit-select-chevron viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2.5 stroke-linecap=round stroke-linejoin=round><path>`);
|
|
2405
|
+
var _tmpl$37 = /* @__PURE__ */ (0, import_web66.template)(`<div class=dialkit-preset-item><span class=dialkit-preset-name></span><button class=dialkit-preset-delete title="Delete preset"><svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path></path><path></path><path></path><path></path><path>`);
|
|
2004
2406
|
function PresetManager(props) {
|
|
2005
|
-
const [isOpen, setIsOpen] = (0,
|
|
2006
|
-
const [mounted, setMounted] = (0,
|
|
2007
|
-
const [pos, setPos] = (0,
|
|
2407
|
+
const [isOpen, setIsOpen] = (0, import_solid_js11.createSignal)(false);
|
|
2408
|
+
const [mounted, setMounted] = (0, import_solid_js11.createSignal)(false);
|
|
2409
|
+
const [pos, setPos] = (0, import_solid_js11.createSignal)({
|
|
2008
2410
|
top: 0,
|
|
2009
2411
|
left: 0,
|
|
2010
2412
|
width: 0
|
|
2011
2413
|
});
|
|
2012
|
-
const [portalTarget, setPortalTarget] = (0,
|
|
2414
|
+
const [portalTarget, setPortalTarget] = (0, import_solid_js11.createSignal)(null);
|
|
2013
2415
|
let triggerRef;
|
|
2014
2416
|
let dropdownRef;
|
|
2015
2417
|
let chevronRef;
|
|
@@ -2017,24 +2419,24 @@ function PresetManager(props) {
|
|
|
2017
2419
|
let chevronAnim = null;
|
|
2018
2420
|
const hasPresets = () => props.presets.length > 0;
|
|
2019
2421
|
const activePreset = () => props.presets.find((p) => p.id === props.activePresetId);
|
|
2020
|
-
(0,
|
|
2422
|
+
(0, import_solid_js11.onMount)(() => {
|
|
2021
2423
|
const root = triggerRef?.closest(".dialkit-root");
|
|
2022
2424
|
setPortalTarget(root ?? document.body);
|
|
2023
2425
|
if (chevronRef) {
|
|
2024
2426
|
chevronRef.style.transform = `rotate(${isOpen() ? 180 : 0}deg)`;
|
|
2025
2427
|
chevronRef.style.opacity = String(hasPresets() ? 0.6 : 0.25);
|
|
2026
2428
|
}
|
|
2027
|
-
(0,
|
|
2429
|
+
(0, import_solid_js11.onCleanup)(() => {
|
|
2028
2430
|
closeAnim?.stop();
|
|
2029
2431
|
chevronAnim?.stop();
|
|
2030
2432
|
});
|
|
2031
2433
|
});
|
|
2032
|
-
(0,
|
|
2434
|
+
(0, import_solid_js11.createEffect)(() => {
|
|
2033
2435
|
if (!chevronRef) return;
|
|
2034
2436
|
const open = isOpen();
|
|
2035
2437
|
const has = hasPresets();
|
|
2036
2438
|
chevronAnim?.stop();
|
|
2037
|
-
chevronAnim = (0,
|
|
2439
|
+
chevronAnim = (0, import_motion4.animate)(chevronRef, {
|
|
2038
2440
|
rotate: open ? 180 : 0,
|
|
2039
2441
|
opacity: has ? 0.6 : 0.25
|
|
2040
2442
|
}, {
|
|
@@ -2067,7 +2469,7 @@ function PresetManager(props) {
|
|
|
2067
2469
|
return;
|
|
2068
2470
|
}
|
|
2069
2471
|
closeAnim?.stop();
|
|
2070
|
-
closeAnim = (0,
|
|
2472
|
+
closeAnim = (0, import_motion4.animate)(dropdownRef, {
|
|
2071
2473
|
opacity: 0,
|
|
2072
2474
|
y: 4,
|
|
2073
2475
|
scale: 0.97
|
|
@@ -2085,7 +2487,7 @@ function PresetManager(props) {
|
|
|
2085
2487
|
if (isOpen()) closeDropdown();
|
|
2086
2488
|
else openDropdown();
|
|
2087
2489
|
};
|
|
2088
|
-
(0,
|
|
2490
|
+
(0, import_solid_js11.createEffect)(() => {
|
|
2089
2491
|
if (!isOpen()) return;
|
|
2090
2492
|
const handleViewportChange = () => updatePos();
|
|
2091
2493
|
const handler = (e) => {
|
|
@@ -2097,7 +2499,7 @@ function PresetManager(props) {
|
|
|
2097
2499
|
document.addEventListener("mousedown", handler);
|
|
2098
2500
|
window.addEventListener("resize", handleViewportChange);
|
|
2099
2501
|
window.addEventListener("scroll", handleViewportChange, true);
|
|
2100
|
-
(0,
|
|
2502
|
+
(0, import_solid_js11.onCleanup)(() => {
|
|
2101
2503
|
document.removeEventListener("mousedown", handler);
|
|
2102
2504
|
window.removeEventListener("resize", handleViewportChange);
|
|
2103
2505
|
window.removeEventListener("scroll", handleViewportChange, true);
|
|
@@ -2113,35 +2515,36 @@ function PresetManager(props) {
|
|
|
2113
2515
|
DialStore.deletePreset(props.panelId, presetId);
|
|
2114
2516
|
};
|
|
2115
2517
|
return (() => {
|
|
2116
|
-
var _el$ = _tmpl$
|
|
2518
|
+
var _el$ = _tmpl$28(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
|
|
2117
2519
|
_el$2.$$click = toggle;
|
|
2118
2520
|
var _ref$ = triggerRef;
|
|
2119
|
-
typeof _ref$ === "function" ? (0,
|
|
2120
|
-
(0,
|
|
2121
|
-
var _c$ = (0,
|
|
2521
|
+
typeof _ref$ === "function" ? (0, import_web74.use)(_ref$, _el$2) : triggerRef = _el$2;
|
|
2522
|
+
(0, import_web72.insert)(_el$3, (() => {
|
|
2523
|
+
var _c$ = (0, import_web73.memo)(() => !!activePreset());
|
|
2122
2524
|
return () => _c$() ? activePreset().name : "Version 1";
|
|
2123
2525
|
})());
|
|
2124
2526
|
var _ref$2 = chevronRef;
|
|
2125
|
-
typeof _ref$2 === "function" ? (0,
|
|
2126
|
-
(0,
|
|
2527
|
+
typeof _ref$2 === "function" ? (0, import_web74.use)(_ref$2, _el$4) : chevronRef = _el$4;
|
|
2528
|
+
(0, import_web71.setAttribute)(_el$5, "d", ICON_CHEVRON);
|
|
2529
|
+
(0, import_web72.insert)(_el$, (0, import_web70.createComponent)(import_solid_js11.Show, {
|
|
2127
2530
|
get when() {
|
|
2128
2531
|
return !!portalTarget();
|
|
2129
2532
|
},
|
|
2130
2533
|
get children() {
|
|
2131
|
-
return (0,
|
|
2534
|
+
return (0, import_web70.createComponent)(import_web75.Portal, {
|
|
2132
2535
|
get mount() {
|
|
2133
2536
|
return portalTarget();
|
|
2134
2537
|
},
|
|
2135
2538
|
get children() {
|
|
2136
|
-
return (0,
|
|
2539
|
+
return (0, import_web70.createComponent)(import_solid_js11.Show, {
|
|
2137
2540
|
get when() {
|
|
2138
2541
|
return mounted();
|
|
2139
2542
|
},
|
|
2140
2543
|
get children() {
|
|
2141
|
-
var _el$
|
|
2142
|
-
(0,
|
|
2544
|
+
var _el$6 = _tmpl$18(), _el$7 = _el$6.firstChild;
|
|
2545
|
+
(0, import_web74.use)((el) => {
|
|
2143
2546
|
dropdownRef = el;
|
|
2144
|
-
(0,
|
|
2547
|
+
(0, import_motion4.animate)(el, {
|
|
2145
2548
|
opacity: [0, 1],
|
|
2146
2549
|
y: [4, 0],
|
|
2147
2550
|
scale: [0.97, 1]
|
|
@@ -2150,27 +2553,43 @@ function PresetManager(props) {
|
|
|
2150
2553
|
visualDuration: 0.15,
|
|
2151
2554
|
bounce: 0
|
|
2152
2555
|
});
|
|
2153
|
-
}, _el$
|
|
2154
|
-
_el$
|
|
2155
|
-
(0,
|
|
2556
|
+
}, _el$6);
|
|
2557
|
+
_el$7.$$click = () => handleSelect(null);
|
|
2558
|
+
(0, import_web72.insert)(_el$6, (0, import_web70.createComponent)(import_solid_js11.For, {
|
|
2156
2559
|
get each() {
|
|
2157
2560
|
return props.presets;
|
|
2158
2561
|
},
|
|
2159
2562
|
children: (preset) => (() => {
|
|
2160
|
-
var _el$
|
|
2161
|
-
_el$
|
|
2162
|
-
(0,
|
|
2163
|
-
_el$
|
|
2164
|
-
(0,
|
|
2165
|
-
|
|
2563
|
+
var _el$8 = _tmpl$37(), _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling, _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling, _el$12 = _el$11.nextSibling, _el$13 = _el$12.nextSibling, _el$14 = _el$13.nextSibling;
|
|
2564
|
+
_el$8.$$click = () => handleSelect(preset.id);
|
|
2565
|
+
(0, import_web72.insert)(_el$9, () => preset.name);
|
|
2566
|
+
_el$0.$$click = (e) => handleDelete(e, preset.id);
|
|
2567
|
+
(0, import_web69.effect)((_p$) => {
|
|
2568
|
+
var _v$8 = String(preset.id === props.activePresetId), _v$9 = ICON_TRASH[0], _v$0 = ICON_TRASH[1], _v$1 = ICON_TRASH[2], _v$10 = ICON_TRASH[3], _v$11 = ICON_TRASH[4];
|
|
2569
|
+
_v$8 !== _p$.e && (0, import_web71.setAttribute)(_el$8, "data-active", _p$.e = _v$8);
|
|
2570
|
+
_v$9 !== _p$.t && (0, import_web71.setAttribute)(_el$10, "d", _p$.t = _v$9);
|
|
2571
|
+
_v$0 !== _p$.a && (0, import_web71.setAttribute)(_el$11, "d", _p$.a = _v$0);
|
|
2572
|
+
_v$1 !== _p$.o && (0, import_web71.setAttribute)(_el$12, "d", _p$.o = _v$1);
|
|
2573
|
+
_v$10 !== _p$.i && (0, import_web71.setAttribute)(_el$13, "d", _p$.i = _v$10);
|
|
2574
|
+
_v$11 !== _p$.n && (0, import_web71.setAttribute)(_el$14, "d", _p$.n = _v$11);
|
|
2575
|
+
return _p$;
|
|
2576
|
+
}, {
|
|
2577
|
+
e: void 0,
|
|
2578
|
+
t: void 0,
|
|
2579
|
+
a: void 0,
|
|
2580
|
+
o: void 0,
|
|
2581
|
+
i: void 0,
|
|
2582
|
+
n: void 0
|
|
2583
|
+
});
|
|
2584
|
+
return _el$8;
|
|
2166
2585
|
})()
|
|
2167
2586
|
}), null);
|
|
2168
|
-
(0,
|
|
2587
|
+
(0, import_web69.effect)((_p$) => {
|
|
2169
2588
|
var _v$ = `${pos().top}px`, _v$2 = `${pos().left}px`, _v$3 = `${pos().width}px`, _v$4 = String(!props.activePresetId);
|
|
2170
|
-
_v$ !== _p$.e && (0,
|
|
2171
|
-
_v$2 !== _p$.t && (0,
|
|
2172
|
-
_v$3 !== _p$.a && (0,
|
|
2173
|
-
_v$4 !== _p$.o && (0,
|
|
2589
|
+
_v$ !== _p$.e && (0, import_web68.setStyleProperty)(_el$6, "top", _p$.e = _v$);
|
|
2590
|
+
_v$2 !== _p$.t && (0, import_web68.setStyleProperty)(_el$6, "left", _p$.t = _v$2);
|
|
2591
|
+
_v$3 !== _p$.a && (0, import_web68.setStyleProperty)(_el$6, "min-width", _p$.a = _v$3);
|
|
2592
|
+
_v$4 !== _p$.o && (0, import_web71.setAttribute)(_el$7, "data-active", _p$.o = _v$4);
|
|
2174
2593
|
return _p$;
|
|
2175
2594
|
}, {
|
|
2176
2595
|
e: void 0,
|
|
@@ -2178,18 +2597,18 @@ function PresetManager(props) {
|
|
|
2178
2597
|
a: void 0,
|
|
2179
2598
|
o: void 0
|
|
2180
2599
|
});
|
|
2181
|
-
return _el$
|
|
2600
|
+
return _el$6;
|
|
2182
2601
|
}
|
|
2183
2602
|
});
|
|
2184
2603
|
}
|
|
2185
2604
|
});
|
|
2186
2605
|
}
|
|
2187
2606
|
}), null);
|
|
2188
|
-
(0,
|
|
2607
|
+
(0, import_web69.effect)((_p$) => {
|
|
2189
2608
|
var _v$5 = String(isOpen()), _v$6 = String(!!activePreset()), _v$7 = String(!hasPresets());
|
|
2190
|
-
_v$5 !== _p$.e && (0,
|
|
2191
|
-
_v$6 !== _p$.t && (0,
|
|
2192
|
-
_v$7 !== _p$.a && (0,
|
|
2609
|
+
_v$5 !== _p$.e && (0, import_web71.setAttribute)(_el$2, "data-open", _p$.e = _v$5);
|
|
2610
|
+
_v$6 !== _p$.t && (0, import_web71.setAttribute)(_el$2, "data-has-preset", _p$.t = _v$6);
|
|
2611
|
+
_v$7 !== _p$.a && (0, import_web71.setAttribute)(_el$2, "data-disabled", _p$.a = _v$7);
|
|
2193
2612
|
return _p$;
|
|
2194
2613
|
}, {
|
|
2195
2614
|
e: void 0,
|
|
@@ -2199,19 +2618,21 @@ function PresetManager(props) {
|
|
|
2199
2618
|
return _el$;
|
|
2200
2619
|
})();
|
|
2201
2620
|
}
|
|
2202
|
-
(0,
|
|
2621
|
+
(0, import_web67.delegateEvents)(["click"]);
|
|
2203
2622
|
|
|
2204
2623
|
// src/solid/components/Panel.tsx
|
|
2205
|
-
var _tmpl$19 = /* @__PURE__ */ (0,
|
|
2206
|
-
var _tmpl$
|
|
2207
|
-
var _tmpl$
|
|
2208
|
-
var _tmpl$43 = /* @__PURE__ */ (0,
|
|
2624
|
+
var _tmpl$19 = /* @__PURE__ */ (0, import_web76.template)(`<button class=dialkit-button>`);
|
|
2625
|
+
var _tmpl$29 = /* @__PURE__ */ (0, import_web76.template)(`<button class=dialkit-toolbar-add title="Add preset"><svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2.5 stroke-linecap=round stroke-linejoin=round><path></path><path></path><path></path><path></path><path>`);
|
|
2626
|
+
var _tmpl$38 = /* @__PURE__ */ (0, import_web76.template)(`<button class=dialkit-toolbar-copy title="Copy parameters"><span class=dialkit-toolbar-copy-icon-wrap><span class=dialkit-toolbar-copy-icon style=opacity:1;transform:scale(1);filter:blur(0px)><svg viewBox="0 0 24 24"fill=none width=16 height=16><path stroke=currentColor stroke-width=2 stroke-linejoin=round></path><path fill=currentColor></path><path stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round></path></svg></span><span class=dialkit-toolbar-copy-icon style=opacity:0;transform:scale(0.5);filter:blur(4px)><svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round width=16 height=16><path></path></svg></span></span>Copy`);
|
|
2627
|
+
var _tmpl$43 = /* @__PURE__ */ (0, import_web76.template)(`<div class=dialkit-panel-wrapper>`);
|
|
2209
2628
|
function Panel(props) {
|
|
2210
|
-
const [copied, setCopied] = (0,
|
|
2211
|
-
const [isPanelOpen, setIsPanelOpen] = (0,
|
|
2212
|
-
const
|
|
2213
|
-
const
|
|
2214
|
-
const [
|
|
2629
|
+
const [copied, setCopied] = (0, import_solid_js12.createSignal)(false);
|
|
2630
|
+
const [isPanelOpen, setIsPanelOpen] = (0, import_solid_js12.createSignal)(props.defaultOpen ?? true);
|
|
2631
|
+
const shortcutCtx = useShortcutContext();
|
|
2632
|
+
const hasShortcuts = () => Object.keys(props.panel.shortcuts).length > 0;
|
|
2633
|
+
const [values, setValues] = (0, import_solid_js12.createSignal)(DialStore.getValues(props.panel.id));
|
|
2634
|
+
const [presets, setPresets] = (0, import_solid_js12.createSignal)(DialStore.getPresets(props.panel.id));
|
|
2635
|
+
const [activePresetId, setActivePresetId] = (0, import_solid_js12.createSignal)(DialStore.getActivePresetId(props.panel.id));
|
|
2215
2636
|
let addButtonRef;
|
|
2216
2637
|
let copyButtonRef;
|
|
2217
2638
|
let copyClipboardIconRef;
|
|
@@ -2226,7 +2647,7 @@ function Panel(props) {
|
|
|
2226
2647
|
visualDuration: 0.15,
|
|
2227
2648
|
bounce: 0.3
|
|
2228
2649
|
};
|
|
2229
|
-
(0,
|
|
2650
|
+
(0, import_solid_js12.onMount)(() => {
|
|
2230
2651
|
const unsub = DialStore.subscribe(props.panel.id, () => {
|
|
2231
2652
|
setValues(DialStore.getValues(props.panel.id));
|
|
2232
2653
|
setPresets(DialStore.getPresets(props.panel.id));
|
|
@@ -2243,7 +2664,7 @@ function Panel(props) {
|
|
|
2243
2664
|
copyCheckIconRef.style.filter = "blur(4px)";
|
|
2244
2665
|
didInitCopyIcons = true;
|
|
2245
2666
|
}
|
|
2246
|
-
(0,
|
|
2667
|
+
(0, import_solid_js12.onCleanup)(unsub);
|
|
2247
2668
|
});
|
|
2248
2669
|
const handleAddPreset = () => {
|
|
2249
2670
|
const nextNum = presets().length + 2;
|
|
@@ -2262,7 +2683,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2262
2683
|
setCopied(true);
|
|
2263
2684
|
setTimeout(() => setCopied(false), 1500);
|
|
2264
2685
|
};
|
|
2265
|
-
(0,
|
|
2686
|
+
(0, import_solid_js12.createEffect)(() => {
|
|
2266
2687
|
const isCopied = copied();
|
|
2267
2688
|
if (!copyClipboardIconRef || !copyCheckIconRef) return;
|
|
2268
2689
|
copyClipboardAnim?.stop();
|
|
@@ -2273,18 +2694,18 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2273
2694
|
visualDuration: 0.3,
|
|
2274
2695
|
bounce: 0.2
|
|
2275
2696
|
};
|
|
2276
|
-
copyClipboardAnim = (0,
|
|
2697
|
+
copyClipboardAnim = (0, import_motion5.animate)(copyClipboardIconRef, {
|
|
2277
2698
|
opacity: isCopied ? 0 : 1,
|
|
2278
2699
|
scale: isCopied ? 0.5 : 1,
|
|
2279
2700
|
filter: isCopied ? "blur(4px)" : "blur(0px)"
|
|
2280
2701
|
}, transition);
|
|
2281
|
-
copyCheckAnim = (0,
|
|
2702
|
+
copyCheckAnim = (0, import_motion5.animate)(copyCheckIconRef, {
|
|
2282
2703
|
opacity: isCopied ? 1 : 0,
|
|
2283
2704
|
scale: isCopied ? 1 : 0.5,
|
|
2284
2705
|
filter: isCopied ? "blur(0px)" : "blur(4px)"
|
|
2285
2706
|
}, transition);
|
|
2286
2707
|
});
|
|
2287
|
-
(0,
|
|
2708
|
+
(0, import_solid_js12.onCleanup)(() => {
|
|
2288
2709
|
addTapAnim?.stop();
|
|
2289
2710
|
copyTapAnim?.stop();
|
|
2290
2711
|
copyClipboardAnim?.stop();
|
|
@@ -2293,28 +2714,28 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2293
2714
|
const handleAddTapStart = () => {
|
|
2294
2715
|
if (!addButtonRef) return;
|
|
2295
2716
|
addTapAnim?.stop();
|
|
2296
|
-
addTapAnim = (0,
|
|
2717
|
+
addTapAnim = (0, import_motion5.animate)(addButtonRef, {
|
|
2297
2718
|
scale: 0.9
|
|
2298
2719
|
}, tapTransition);
|
|
2299
2720
|
};
|
|
2300
2721
|
const handleAddTapEnd = () => {
|
|
2301
2722
|
if (!addButtonRef) return;
|
|
2302
2723
|
addTapAnim?.stop();
|
|
2303
|
-
addTapAnim = (0,
|
|
2724
|
+
addTapAnim = (0, import_motion5.animate)(addButtonRef, {
|
|
2304
2725
|
scale: 1
|
|
2305
2726
|
}, tapTransition);
|
|
2306
2727
|
};
|
|
2307
2728
|
const handleCopyTapStart = () => {
|
|
2308
2729
|
if (!copyButtonRef) return;
|
|
2309
2730
|
copyTapAnim?.stop();
|
|
2310
|
-
copyTapAnim = (0,
|
|
2731
|
+
copyTapAnim = (0, import_motion5.animate)(copyButtonRef, {
|
|
2311
2732
|
scale: 0.95
|
|
2312
2733
|
}, tapTransition);
|
|
2313
2734
|
};
|
|
2314
2735
|
const handleCopyTapEnd = () => {
|
|
2315
2736
|
if (!copyButtonRef) return;
|
|
2316
2737
|
copyTapAnim?.stop();
|
|
2317
|
-
copyTapAnim = (0,
|
|
2738
|
+
copyTapAnim = (0, import_motion5.animate)(copyButtonRef, {
|
|
2318
2739
|
scale: 1
|
|
2319
2740
|
}, tapTransition);
|
|
2320
2741
|
};
|
|
@@ -2322,7 +2743,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2322
2743
|
const value = () => values()[control.path];
|
|
2323
2744
|
switch (control.type) {
|
|
2324
2745
|
case "slider":
|
|
2325
|
-
return (0,
|
|
2746
|
+
return (0, import_web82.createComponent)(Slider, {
|
|
2326
2747
|
get label() {
|
|
2327
2748
|
return control.label;
|
|
2328
2749
|
},
|
|
@@ -2338,20 +2759,32 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2338
2759
|
},
|
|
2339
2760
|
get step() {
|
|
2340
2761
|
return control.step;
|
|
2762
|
+
},
|
|
2763
|
+
get shortcut() {
|
|
2764
|
+
return control.shortcut;
|
|
2765
|
+
},
|
|
2766
|
+
get shortcutActive() {
|
|
2767
|
+
return (0, import_web83.memo)(() => shortcutCtx().activePanelId === props.panel.id)() && shortcutCtx().activePath === control.path;
|
|
2341
2768
|
}
|
|
2342
2769
|
});
|
|
2343
2770
|
case "toggle":
|
|
2344
|
-
return (0,
|
|
2771
|
+
return (0, import_web82.createComponent)(Toggle, {
|
|
2345
2772
|
get label() {
|
|
2346
2773
|
return control.label;
|
|
2347
2774
|
},
|
|
2348
2775
|
get checked() {
|
|
2349
2776
|
return value();
|
|
2350
2777
|
},
|
|
2351
|
-
onChange: (v) => DialStore.updateValue(props.panel.id, control.path, v)
|
|
2778
|
+
onChange: (v) => DialStore.updateValue(props.panel.id, control.path, v),
|
|
2779
|
+
get shortcut() {
|
|
2780
|
+
return control.shortcut;
|
|
2781
|
+
},
|
|
2782
|
+
get shortcutActive() {
|
|
2783
|
+
return (0, import_web83.memo)(() => shortcutCtx().activePanelId === props.panel.id)() && shortcutCtx().activePath === control.path;
|
|
2784
|
+
}
|
|
2352
2785
|
});
|
|
2353
2786
|
case "spring":
|
|
2354
|
-
return (0,
|
|
2787
|
+
return (0, import_web82.createComponent)(SpringControl, {
|
|
2355
2788
|
get panelId() {
|
|
2356
2789
|
return props.panel.id;
|
|
2357
2790
|
},
|
|
@@ -2367,7 +2800,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2367
2800
|
onChange: (v) => DialStore.updateValue(props.panel.id, control.path, v)
|
|
2368
2801
|
});
|
|
2369
2802
|
case "folder":
|
|
2370
|
-
return (0,
|
|
2803
|
+
return (0, import_web82.createComponent)(Folder, {
|
|
2371
2804
|
get title() {
|
|
2372
2805
|
return control.label;
|
|
2373
2806
|
},
|
|
@@ -2375,16 +2808,16 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2375
2808
|
return control.defaultOpen ?? true;
|
|
2376
2809
|
},
|
|
2377
2810
|
get children() {
|
|
2378
|
-
return (0,
|
|
2811
|
+
return (0, import_web82.createComponent)(import_solid_js12.For, {
|
|
2379
2812
|
get each() {
|
|
2380
2813
|
return control.children ?? [];
|
|
2381
2814
|
},
|
|
2382
|
-
children: (child) => (0,
|
|
2815
|
+
children: (child) => (0, import_web83.memo)(() => renderControl(child))
|
|
2383
2816
|
});
|
|
2384
2817
|
}
|
|
2385
2818
|
});
|
|
2386
2819
|
case "text":
|
|
2387
|
-
return (0,
|
|
2820
|
+
return (0, import_web82.createComponent)(TextControl, {
|
|
2388
2821
|
get label() {
|
|
2389
2822
|
return control.label;
|
|
2390
2823
|
},
|
|
@@ -2397,7 +2830,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2397
2830
|
}
|
|
2398
2831
|
});
|
|
2399
2832
|
case "select":
|
|
2400
|
-
return (0,
|
|
2833
|
+
return (0, import_web82.createComponent)(SelectControl, {
|
|
2401
2834
|
get label() {
|
|
2402
2835
|
return control.label;
|
|
2403
2836
|
},
|
|
@@ -2410,7 +2843,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2410
2843
|
onChange: (v) => DialStore.updateValue(props.panel.id, control.path, v)
|
|
2411
2844
|
});
|
|
2412
2845
|
case "color":
|
|
2413
|
-
return (0,
|
|
2846
|
+
return (0, import_web82.createComponent)(ColorControl, {
|
|
2414
2847
|
get label() {
|
|
2415
2848
|
return control.label;
|
|
2416
2849
|
},
|
|
@@ -2424,29 +2857,44 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2424
2857
|
}
|
|
2425
2858
|
};
|
|
2426
2859
|
const renderControls = () => {
|
|
2427
|
-
return (0,
|
|
2860
|
+
return (0, import_web82.createComponent)(import_solid_js12.For, {
|
|
2428
2861
|
get each() {
|
|
2429
2862
|
return props.panel.controls;
|
|
2430
2863
|
},
|
|
2431
|
-
children: (control) => (0,
|
|
2864
|
+
children: (control) => (0, import_web83.memo)(() => (0, import_web83.memo)(() => control.type === "action")() ? (() => {
|
|
2432
2865
|
var _el$ = _tmpl$19();
|
|
2433
2866
|
_el$.$$click = () => DialStore.triggerAction(props.panel.id, control.path);
|
|
2434
|
-
(0,
|
|
2867
|
+
(0, import_web81.insert)(_el$, () => control.label);
|
|
2435
2868
|
return _el$;
|
|
2436
2869
|
})() : renderControl(control))
|
|
2437
2870
|
});
|
|
2438
2871
|
};
|
|
2439
2872
|
const toolbar = [(() => {
|
|
2440
|
-
var _el$2 = _tmpl$
|
|
2873
|
+
var _el$2 = _tmpl$29(), _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$7.nextSibling;
|
|
2441
2874
|
_el$2.addEventListener("pointerleave", handleAddTapEnd);
|
|
2442
2875
|
_el$2.addEventListener("pointercancel", handleAddTapEnd);
|
|
2443
2876
|
_el$2.$$pointerup = handleAddTapEnd;
|
|
2444
2877
|
_el$2.$$pointerdown = handleAddTapStart;
|
|
2445
2878
|
_el$2.$$click = handleAddPreset;
|
|
2446
2879
|
var _ref$ = addButtonRef;
|
|
2447
|
-
typeof _ref$ === "function" ? (0,
|
|
2880
|
+
typeof _ref$ === "function" ? (0, import_web80.use)(_ref$, _el$2) : addButtonRef = _el$2;
|
|
2881
|
+
(0, import_web79.effect)((_p$) => {
|
|
2882
|
+
var _v$ = ICON_ADD_PRESET[0], _v$2 = ICON_ADD_PRESET[1], _v$3 = ICON_ADD_PRESET[2], _v$4 = ICON_ADD_PRESET[3], _v$5 = ICON_ADD_PRESET[4];
|
|
2883
|
+
_v$ !== _p$.e && (0, import_web78.setAttribute)(_el$4, "d", _p$.e = _v$);
|
|
2884
|
+
_v$2 !== _p$.t && (0, import_web78.setAttribute)(_el$5, "d", _p$.t = _v$2);
|
|
2885
|
+
_v$3 !== _p$.a && (0, import_web78.setAttribute)(_el$6, "d", _p$.a = _v$3);
|
|
2886
|
+
_v$4 !== _p$.o && (0, import_web78.setAttribute)(_el$7, "d", _p$.o = _v$4);
|
|
2887
|
+
_v$5 !== _p$.i && (0, import_web78.setAttribute)(_el$8, "d", _p$.i = _v$5);
|
|
2888
|
+
return _p$;
|
|
2889
|
+
}, {
|
|
2890
|
+
e: void 0,
|
|
2891
|
+
t: void 0,
|
|
2892
|
+
a: void 0,
|
|
2893
|
+
o: void 0,
|
|
2894
|
+
i: void 0
|
|
2895
|
+
});
|
|
2448
2896
|
return _el$2;
|
|
2449
|
-
})(), (0,
|
|
2897
|
+
})(), (0, import_web82.createComponent)(PresetManager, {
|
|
2450
2898
|
get panelId() {
|
|
2451
2899
|
return props.panel.id;
|
|
2452
2900
|
},
|
|
@@ -2458,23 +2906,35 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2458
2906
|
},
|
|
2459
2907
|
onAdd: handleAddPreset
|
|
2460
2908
|
}), (() => {
|
|
2461
|
-
var _el$
|
|
2462
|
-
_el$
|
|
2463
|
-
_el$
|
|
2464
|
-
_el$
|
|
2465
|
-
_el$
|
|
2466
|
-
_el$
|
|
2909
|
+
var _el$9 = _tmpl$38(), _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$11 = _el$10.firstChild, _el$12 = _el$11.nextSibling, _el$13 = _el$12.nextSibling, _el$14 = _el$1.nextSibling, _el$15 = _el$14.firstChild, _el$16 = _el$15.firstChild;
|
|
2910
|
+
_el$9.addEventListener("pointerleave", handleCopyTapEnd);
|
|
2911
|
+
_el$9.addEventListener("pointercancel", handleCopyTapEnd);
|
|
2912
|
+
_el$9.$$pointerup = handleCopyTapEnd;
|
|
2913
|
+
_el$9.$$pointerdown = handleCopyTapStart;
|
|
2914
|
+
_el$9.$$click = handleCopy;
|
|
2467
2915
|
var _ref$2 = copyButtonRef;
|
|
2468
|
-
typeof _ref$2 === "function" ? (0,
|
|
2916
|
+
typeof _ref$2 === "function" ? (0, import_web80.use)(_ref$2, _el$9) : copyButtonRef = _el$9;
|
|
2469
2917
|
var _ref$3 = copyClipboardIconRef;
|
|
2470
|
-
typeof _ref$3 === "function" ? (0,
|
|
2918
|
+
typeof _ref$3 === "function" ? (0, import_web80.use)(_ref$3, _el$1) : copyClipboardIconRef = _el$1;
|
|
2471
2919
|
var _ref$4 = copyCheckIconRef;
|
|
2472
|
-
typeof _ref$4 === "function" ? (0,
|
|
2473
|
-
|
|
2920
|
+
typeof _ref$4 === "function" ? (0, import_web80.use)(_ref$4, _el$14) : copyCheckIconRef = _el$14;
|
|
2921
|
+
(0, import_web78.setAttribute)(_el$16, "d", ICON_CHECK);
|
|
2922
|
+
(0, import_web79.effect)((_p$) => {
|
|
2923
|
+
var _v$6 = ICON_CLIPBOARD.board, _v$7 = ICON_CLIPBOARD.sparkle, _v$8 = ICON_CLIPBOARD.body;
|
|
2924
|
+
_v$6 !== _p$.e && (0, import_web78.setAttribute)(_el$11, "d", _p$.e = _v$6);
|
|
2925
|
+
_v$7 !== _p$.t && (0, import_web78.setAttribute)(_el$12, "d", _p$.t = _v$7);
|
|
2926
|
+
_v$8 !== _p$.a && (0, import_web78.setAttribute)(_el$13, "d", _p$.a = _v$8);
|
|
2927
|
+
return _p$;
|
|
2928
|
+
}, {
|
|
2929
|
+
e: void 0,
|
|
2930
|
+
t: void 0,
|
|
2931
|
+
a: void 0
|
|
2932
|
+
});
|
|
2933
|
+
return _el$9;
|
|
2474
2934
|
})()];
|
|
2475
2935
|
return (() => {
|
|
2476
|
-
var _el$
|
|
2477
|
-
(0,
|
|
2936
|
+
var _el$17 = _tmpl$43();
|
|
2937
|
+
(0, import_web81.insert)(_el$17, (0, import_web82.createComponent)(Folder, {
|
|
2478
2938
|
get title() {
|
|
2479
2939
|
return props.panel.name;
|
|
2480
2940
|
},
|
|
@@ -2491,60 +2951,67 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2491
2951
|
return renderControls();
|
|
2492
2952
|
}
|
|
2493
2953
|
}));
|
|
2494
|
-
return _el$
|
|
2954
|
+
return _el$17;
|
|
2495
2955
|
})();
|
|
2496
2956
|
}
|
|
2497
|
-
(0,
|
|
2957
|
+
(0, import_web77.delegateEvents)(["click", "pointerdown", "pointerup"]);
|
|
2498
2958
|
|
|
2499
2959
|
// src/solid/components/DialRoot.tsx
|
|
2500
|
-
var
|
|
2960
|
+
var import_meta = {};
|
|
2961
|
+
var _tmpl$20 = /* @__PURE__ */ (0, import_web84.template)(`<div class=dialkit-root><div class=dialkit-panel>`);
|
|
2962
|
+
var isDevDefault = typeof process !== "undefined" && process?.env?.NODE_ENV ? process.env.NODE_ENV !== "production" : typeof import_meta !== "undefined" && import_meta.env?.MODE ? import_meta.env.MODE !== "production" : true;
|
|
2501
2963
|
function DialRoot(props) {
|
|
2502
|
-
|
|
2503
|
-
const [
|
|
2964
|
+
if ((props.productionEnabled ?? isDevDefault) === false) return null;
|
|
2965
|
+
const [panels, setPanels] = (0, import_solid_js13.createSignal)([]);
|
|
2966
|
+
const [mounted, setMounted] = (0, import_solid_js13.createSignal)(false);
|
|
2504
2967
|
const inline = () => (props.mode ?? "popover") === "inline";
|
|
2505
|
-
(0,
|
|
2968
|
+
(0, import_solid_js13.onMount)(() => {
|
|
2506
2969
|
setMounted(true);
|
|
2507
2970
|
setPanels(DialStore.getPanels());
|
|
2508
2971
|
const unsub = DialStore.subscribeGlobal(() => {
|
|
2509
2972
|
setPanels(DialStore.getPanels());
|
|
2510
2973
|
});
|
|
2511
|
-
(0,
|
|
2974
|
+
(0, import_solid_js13.onCleanup)(unsub);
|
|
2512
2975
|
});
|
|
2513
|
-
const content = () => ((
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
children: (panel) => (0, import_web83.createComponent)(Panel, {
|
|
2520
|
-
panel,
|
|
2521
|
-
get defaultOpen() {
|
|
2522
|
-
return inline() || (props.defaultOpen ?? true);
|
|
2976
|
+
const content = () => (0, import_web89.createComponent)(ShortcutListener, {
|
|
2977
|
+
get children() {
|
|
2978
|
+
var _el$ = _tmpl$20(), _el$2 = _el$.firstChild;
|
|
2979
|
+
(0, import_web88.insert)(_el$2, (0, import_web89.createComponent)(import_solid_js13.For, {
|
|
2980
|
+
get each() {
|
|
2981
|
+
return panels();
|
|
2523
2982
|
},
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2983
|
+
children: (panel) => (0, import_web89.createComponent)(Panel, {
|
|
2984
|
+
panel,
|
|
2985
|
+
get defaultOpen() {
|
|
2986
|
+
return inline() || (props.defaultOpen ?? true);
|
|
2987
|
+
},
|
|
2988
|
+
get inline() {
|
|
2989
|
+
return inline();
|
|
2990
|
+
}
|
|
2991
|
+
})
|
|
2992
|
+
}));
|
|
2993
|
+
(0, import_web87.effect)((_p$) => {
|
|
2994
|
+
var _v$ = props.mode ?? "popover", _v$2 = props.theme ?? "system", _v$3 = inline() ? void 0 : props.position ?? "top-right", _v$4 = props.mode ?? "popover";
|
|
2995
|
+
_v$ !== _p$.e && (0, import_web86.setAttribute)(_el$, "data-mode", _p$.e = _v$);
|
|
2996
|
+
_v$2 !== _p$.t && (0, import_web86.setAttribute)(_el$, "data-theme", _p$.t = _v$2);
|
|
2997
|
+
_v$3 !== _p$.a && (0, import_web86.setAttribute)(_el$2, "data-position", _p$.a = _v$3);
|
|
2998
|
+
_v$4 !== _p$.o && (0, import_web86.setAttribute)(_el$2, "data-mode", _p$.o = _v$4);
|
|
2999
|
+
return _p$;
|
|
3000
|
+
}, {
|
|
3001
|
+
e: void 0,
|
|
3002
|
+
t: void 0,
|
|
3003
|
+
a: void 0,
|
|
3004
|
+
o: void 0
|
|
3005
|
+
});
|
|
3006
|
+
return _el$;
|
|
3007
|
+
}
|
|
3008
|
+
});
|
|
3009
|
+
return (0, import_web89.createComponent)(import_solid_js13.Show, {
|
|
2543
3010
|
get when() {
|
|
2544
|
-
return (0,
|
|
3011
|
+
return (0, import_web85.memo)(() => !!(mounted() && typeof window !== "undefined"))() && panels().length > 0;
|
|
2545
3012
|
},
|
|
2546
3013
|
get children() {
|
|
2547
|
-
return (0,
|
|
3014
|
+
return (0, import_web89.createComponent)(import_solid_js13.Show, {
|
|
2548
3015
|
get when() {
|
|
2549
3016
|
return !inline();
|
|
2550
3017
|
},
|
|
@@ -2552,7 +3019,7 @@ function DialRoot(props) {
|
|
|
2552
3019
|
return content();
|
|
2553
3020
|
},
|
|
2554
3021
|
get children() {
|
|
2555
|
-
return (0,
|
|
3022
|
+
return (0, import_web89.createComponent)(import_web90.Portal, {
|
|
2556
3023
|
get mount() {
|
|
2557
3024
|
return document.body;
|
|
2558
3025
|
},
|
|
@@ -2567,32 +3034,32 @@ function DialRoot(props) {
|
|
|
2567
3034
|
}
|
|
2568
3035
|
|
|
2569
3036
|
// src/solid/components/ButtonGroup.tsx
|
|
2570
|
-
var
|
|
2571
|
-
var
|
|
2572
|
-
var
|
|
2573
|
-
var
|
|
2574
|
-
var
|
|
2575
|
-
var
|
|
2576
|
-
var _tmpl$21 = /* @__PURE__ */ (0,
|
|
2577
|
-
var _tmpl$
|
|
3037
|
+
var import_web91 = require("solid-js/web");
|
|
3038
|
+
var import_web92 = require("solid-js/web");
|
|
3039
|
+
var import_web93 = require("solid-js/web");
|
|
3040
|
+
var import_web94 = require("solid-js/web");
|
|
3041
|
+
var import_web95 = require("solid-js/web");
|
|
3042
|
+
var import_solid_js14 = require("solid-js");
|
|
3043
|
+
var _tmpl$21 = /* @__PURE__ */ (0, import_web91.template)(`<div class=dialkit-button-group>`);
|
|
3044
|
+
var _tmpl$210 = /* @__PURE__ */ (0, import_web91.template)(`<button class=dialkit-button>`);
|
|
2578
3045
|
function ButtonGroup(props) {
|
|
2579
3046
|
return (() => {
|
|
2580
3047
|
var _el$ = _tmpl$21();
|
|
2581
|
-
(0,
|
|
3048
|
+
(0, import_web94.insert)(_el$, (0, import_web95.createComponent)(import_solid_js14.For, {
|
|
2582
3049
|
get each() {
|
|
2583
3050
|
return props.buttons;
|
|
2584
3051
|
},
|
|
2585
3052
|
children: (button) => (() => {
|
|
2586
|
-
var _el$2 = _tmpl$
|
|
2587
|
-
(0,
|
|
2588
|
-
(0,
|
|
3053
|
+
var _el$2 = _tmpl$210();
|
|
3054
|
+
(0, import_web93.addEventListener)(_el$2, "click", button.onClick, true);
|
|
3055
|
+
(0, import_web94.insert)(_el$2, () => button.label);
|
|
2589
3056
|
return _el$2;
|
|
2590
3057
|
})()
|
|
2591
3058
|
}));
|
|
2592
3059
|
return _el$;
|
|
2593
3060
|
})();
|
|
2594
3061
|
}
|
|
2595
|
-
(0,
|
|
3062
|
+
(0, import_web92.delegateEvents)(["click"]);
|
|
2596
3063
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2597
3064
|
0 && (module.exports = {
|
|
2598
3065
|
ButtonGroup,
|