dialkit 1.0.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 +293 -2
- package/dist/index.cjs +905 -363
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +46 -9
- package/dist/index.d.ts +46 -9
- package/dist/index.js +910 -370
- package/dist/index.js.map +1 -1
- package/dist/solid/index.cjs +1042 -532
- package/dist/solid/index.cjs.map +1 -1
- package/dist/solid/index.d.cts +36 -3
- package/dist/solid/index.d.ts +36 -3
- package/dist/solid/index.js +911 -402
- package/dist/solid/index.js.map +1 -1
- package/dist/store/index.cjs +490 -0
- package/dist/store/index.cjs.map +1 -0
- package/dist/store/index.d.cts +146 -0
- package/dist/store/index.d.ts +146 -0
- package/dist/store/index.js +465 -0
- package/dist/store/index.js.map +1 -0
- package/dist/styles.css +287 -25
- package/dist/svelte/Portal.svelte +30 -0
- package/dist/svelte/Portal.svelte.d.ts +9 -0
- package/dist/svelte/Portal.svelte.d.ts.map +1 -0
- package/dist/svelte/components/ButtonGroup.svelte +16 -0
- package/dist/svelte/components/ButtonGroup.svelte.d.ts +11 -0
- package/dist/svelte/components/ButtonGroup.svelte.d.ts.map +1 -0
- package/dist/svelte/components/ColorControl.svelte +81 -0
- package/dist/svelte/components/ColorControl.svelte.d.ts +9 -0
- package/dist/svelte/components/ColorControl.svelte.d.ts.map +1 -0
- package/dist/svelte/components/ControlRenderer.svelte +96 -0
- package/dist/svelte/components/ControlRenderer.svelte.d.ts +11 -0
- package/dist/svelte/components/ControlRenderer.svelte.d.ts.map +1 -0
- package/dist/svelte/components/DialRoot.svelte +79 -0
- package/dist/svelte/components/DialRoot.svelte.d.ts +14 -0
- package/dist/svelte/components/DialRoot.svelte.d.ts.map +1 -0
- package/dist/svelte/components/EasingVisualization.svelte +50 -0
- package/dist/svelte/components/EasingVisualization.svelte.d.ts +10 -0
- package/dist/svelte/components/EasingVisualization.svelte.d.ts.map +1 -0
- package/dist/svelte/components/Folder.svelte +213 -0
- package/dist/svelte/components/Folder.svelte.d.ts +14 -0
- package/dist/svelte/components/Folder.svelte.d.ts.map +1 -0
- package/dist/svelte/components/Panel.svelte +149 -0
- package/dist/svelte/components/Panel.svelte.d.ts +10 -0
- package/dist/svelte/components/Panel.svelte.d.ts.map +1 -0
- package/dist/svelte/components/PresetManager.svelte +157 -0
- package/dist/svelte/components/PresetManager.svelte.d.ts +10 -0
- package/dist/svelte/components/PresetManager.svelte.d.ts.map +1 -0
- package/dist/svelte/components/SegmentedControl.svelte +62 -0
- package/dist/svelte/components/SegmentedControl.svelte.d.ts +13 -0
- package/dist/svelte/components/SegmentedControl.svelte.d.ts.map +1 -0
- package/dist/svelte/components/SelectControl.svelte +152 -0
- package/dist/svelte/components/SelectControl.svelte.d.ts +14 -0
- package/dist/svelte/components/SelectControl.svelte.d.ts.map +1 -0
- 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 +332 -0
- package/dist/svelte/components/Slider.svelte.d.ts +16 -0
- package/dist/svelte/components/Slider.svelte.d.ts.map +1 -0
- package/dist/svelte/components/SpringControl.svelte +126 -0
- package/dist/svelte/components/SpringControl.svelte.d.ts +12 -0
- package/dist/svelte/components/SpringControl.svelte.d.ts.map +1 -0
- package/dist/svelte/components/SpringVisualization.svelte +115 -0
- package/dist/svelte/components/SpringVisualization.svelte.d.ts +9 -0
- package/dist/svelte/components/SpringVisualization.svelte.d.ts.map +1 -0
- package/dist/svelte/components/TextControl.svelte +19 -0
- package/dist/svelte/components/TextControl.svelte.d.ts +10 -0
- package/dist/svelte/components/TextControl.svelte.d.ts.map +1 -0
- package/dist/svelte/components/Toggle.svelte +32 -0
- package/dist/svelte/components/Toggle.svelte.d.ts +12 -0
- package/dist/svelte/components/Toggle.svelte.d.ts.map +1 -0
- package/dist/svelte/components/TransitionControl.svelte +203 -0
- package/dist/svelte/components/TransitionControl.svelte.d.ts +12 -0
- package/dist/svelte/components/TransitionControl.svelte.d.ts.map +1 -0
- package/dist/svelte/components/transitions.d.ts +6 -0
- package/dist/svelte/components/transitions.d.ts.map +1 -0
- package/dist/svelte/components/transitions.js +14 -0
- package/dist/svelte/createDialKit.svelte.d.ts +8 -0
- package/dist/svelte/createDialKit.svelte.d.ts.map +1 -0
- package/dist/svelte/createDialKit.svelte.js +82 -0
- package/dist/svelte/index.d.ts +23 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +23 -0
- package/dist/svelte/shims.d.ts +9 -0
- package/dist/svelte/theme-css.d.ts +2 -0
- package/dist/svelte/theme-css.d.ts.map +1 -0
- package/dist/svelte/theme-css.js +1328 -0
- 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 +50 -6
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,21 +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,
|
|
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>`);
|
|
576
968
|
function Folder(props) {
|
|
577
|
-
const [isOpen, setIsOpen] = (0,
|
|
578
|
-
const [isCollapsed, setIsCollapsed] = (0,
|
|
579
|
-
const [contentHeight, setContentHeight] = (0,
|
|
580
|
-
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);
|
|
581
979
|
let skipFirstAnim = props.defaultOpen ?? true;
|
|
582
980
|
let sectionContentRef;
|
|
583
981
|
let sectionAnim = null;
|
|
@@ -586,7 +984,7 @@ function Folder(props) {
|
|
|
586
984
|
let chevronInitialized = false;
|
|
587
985
|
let panelTapAnim = null;
|
|
588
986
|
let contentRef;
|
|
589
|
-
(0,
|
|
987
|
+
(0, import_solid_js3.createEffect)(() => {
|
|
590
988
|
if (!props.isRoot || !isOpen()) return;
|
|
591
989
|
const el = contentRef;
|
|
592
990
|
if (!el) return;
|
|
@@ -595,9 +993,9 @@ function Folder(props) {
|
|
|
595
993
|
setContentHeight((prev) => prev === h ? prev : h);
|
|
596
994
|
});
|
|
597
995
|
ro.observe(el);
|
|
598
|
-
(0,
|
|
996
|
+
(0, import_solid_js3.onCleanup)(() => ro.disconnect());
|
|
599
997
|
});
|
|
600
|
-
(0,
|
|
998
|
+
(0, import_solid_js3.createEffect)(() => {
|
|
601
999
|
if (props.isRoot || !folderChevronRef) return;
|
|
602
1000
|
const open = isOpen();
|
|
603
1001
|
chevronAnim?.stop();
|
|
@@ -613,9 +1011,10 @@ function Folder(props) {
|
|
|
613
1011
|
visualDuration: 0.35,
|
|
614
1012
|
bounce: 0.15
|
|
615
1013
|
});
|
|
616
|
-
(0,
|
|
1014
|
+
(0, import_solid_js3.onCleanup)(() => chevronAnim?.stop());
|
|
617
1015
|
});
|
|
618
1016
|
const handleToggle = () => {
|
|
1017
|
+
if (props.inline && props.isRoot) return;
|
|
619
1018
|
const next = !isOpen();
|
|
620
1019
|
setIsOpen(next);
|
|
621
1020
|
if (next) {
|
|
@@ -668,54 +1067,87 @@ function Folder(props) {
|
|
|
668
1067
|
};
|
|
669
1068
|
const folderContent = () => (() => {
|
|
670
1069
|
var _el$ = _tmpl$3(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
|
|
671
|
-
(0,
|
|
1070
|
+
(0, import_web11.use)((el) => {
|
|
672
1071
|
if (props.isRoot) contentRef = el;
|
|
673
1072
|
}, _el$);
|
|
674
1073
|
_el$2.$$click = handleToggle;
|
|
675
|
-
(0,
|
|
676
|
-
var _c$ = (0,
|
|
677
|
-
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, {
|
|
678
1077
|
get when() {
|
|
679
1078
|
return isOpen();
|
|
680
1079
|
},
|
|
681
1080
|
get children() {
|
|
682
1081
|
var _el$7 = _tmpl$4(), _el$8 = _el$7.firstChild;
|
|
683
|
-
(0,
|
|
1082
|
+
(0, import_web9.insert)(_el$8, () => props.title);
|
|
684
1083
|
return _el$7;
|
|
685
1084
|
}
|
|
686
1085
|
}) : (() => {
|
|
687
1086
|
var _el$9 = _tmpl$5(), _el$0 = _el$9.firstChild;
|
|
688
|
-
(0,
|
|
1087
|
+
(0, import_web9.insert)(_el$0, () => props.title);
|
|
689
1088
|
return _el$9;
|
|
690
1089
|
})();
|
|
691
1090
|
})(), null);
|
|
692
|
-
(0,
|
|
693
|
-
var _c$2 = (0,
|
|
694
|
-
return () => _c$2()
|
|
695
|
-
var _el$
|
|
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
|
+
})();
|
|
1122
|
+
})(), null);
|
|
1123
|
+
(0, import_web9.insert)(_el$3, (() => {
|
|
1124
|
+
var _c$3 = (0, import_web10.memo)(() => !!!props.isRoot);
|
|
1125
|
+
return () => _c$3() && (() => {
|
|
1126
|
+
var _el$14 = _tmpl$7(), _el$15 = _el$14.firstChild;
|
|
696
1127
|
var _ref$ = folderChevronRef;
|
|
697
|
-
typeof _ref$ === "function" ? (0,
|
|
698
|
-
|
|
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;
|
|
699
1131
|
})();
|
|
700
1132
|
})(), null);
|
|
701
|
-
(0,
|
|
1133
|
+
(0, import_web9.insert)(_el$2, (0, import_web8.createComponent)(import_solid_js3.Show, {
|
|
702
1134
|
get when() {
|
|
703
|
-
return (0,
|
|
1135
|
+
return (0, import_web10.memo)(() => !!(props.isRoot && props.toolbar))() && isOpen();
|
|
704
1136
|
},
|
|
705
1137
|
get children() {
|
|
706
1138
|
var _el$4 = _tmpl$();
|
|
707
1139
|
_el$4.$$click = (e) => e.stopPropagation();
|
|
708
|
-
(0,
|
|
1140
|
+
(0, import_web9.insert)(_el$4, () => props.toolbar);
|
|
709
1141
|
return _el$4;
|
|
710
1142
|
}
|
|
711
1143
|
}), null);
|
|
712
|
-
(0,
|
|
1144
|
+
(0, import_web9.insert)(_el$, (0, import_web8.createComponent)(import_solid_js3.Show, {
|
|
713
1145
|
get when() {
|
|
714
|
-
return (0,
|
|
1146
|
+
return (0, import_web10.memo)(() => !!props.isRoot)() ? isOpen() : contentMounted();
|
|
715
1147
|
},
|
|
716
1148
|
get children() {
|
|
717
1149
|
var _el$5 = _tmpl$2(), _el$6 = _el$5.firstChild;
|
|
718
|
-
(0,
|
|
1150
|
+
(0, import_web11.use)((el) => {
|
|
719
1151
|
if (props.isRoot) return;
|
|
720
1152
|
sectionContentRef = el;
|
|
721
1153
|
if (skipFirstAnim) {
|
|
@@ -737,17 +1169,17 @@ function Folder(props) {
|
|
|
737
1169
|
}
|
|
738
1170
|
});
|
|
739
1171
|
}, _el$5);
|
|
740
|
-
(0,
|
|
741
|
-
(0,
|
|
1172
|
+
(0, import_web9.insert)(_el$6, () => props.children);
|
|
1173
|
+
(0, import_web7.effect)((_$p) => (0, import_web6.style)(_el$5, !props.isRoot ? {
|
|
742
1174
|
"clip-path": "inset(0 -20px)"
|
|
743
1175
|
} : void 0, _$p));
|
|
744
1176
|
return _el$5;
|
|
745
1177
|
}
|
|
746
1178
|
}), null);
|
|
747
|
-
(0,
|
|
1179
|
+
(0, import_web7.effect)((_p$) => {
|
|
748
1180
|
var _v$ = `dialkit-folder ${props.isRoot ? "dialkit-folder-root" : ""}`, _v$2 = `dialkit-folder-header ${props.isRoot ? "dialkit-panel-header" : ""}`;
|
|
749
|
-
_v$ !== _p$.e && (0,
|
|
750
|
-
_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);
|
|
751
1183
|
return _p$;
|
|
752
1184
|
}, {
|
|
753
1185
|
e: void 0,
|
|
@@ -756,31 +1188,38 @@ function Folder(props) {
|
|
|
756
1188
|
return _el$;
|
|
757
1189
|
})();
|
|
758
1190
|
if (props.isRoot) {
|
|
1191
|
+
if (props.inline) {
|
|
1192
|
+
return (() => {
|
|
1193
|
+
var _el$16 = _tmpl$8();
|
|
1194
|
+
(0, import_web9.insert)(_el$16, folderContent);
|
|
1195
|
+
return _el$16;
|
|
1196
|
+
})();
|
|
1197
|
+
}
|
|
759
1198
|
let panelRef;
|
|
760
1199
|
let rootPanelAnim = null;
|
|
761
1200
|
let rootPanelInitialized = false;
|
|
762
1201
|
let lastRootOpen = isOpen();
|
|
763
|
-
(0,
|
|
1202
|
+
(0, import_solid_js3.createEffect)(() => {
|
|
764
1203
|
if (!panelRef || isOpen()) return;
|
|
765
1204
|
const handler = (e) => {
|
|
766
1205
|
e.stopPropagation();
|
|
767
1206
|
handleToggle();
|
|
768
1207
|
};
|
|
769
1208
|
panelRef.addEventListener("click", handler);
|
|
770
|
-
(0,
|
|
1209
|
+
(0, import_solid_js3.onCleanup)(() => panelRef.removeEventListener("click", handler));
|
|
771
1210
|
});
|
|
772
|
-
(0,
|
|
1211
|
+
(0, import_solid_js3.createEffect)(() => {
|
|
773
1212
|
if (!panelRef) return;
|
|
774
1213
|
const open = isOpen();
|
|
775
|
-
const measuredOpenHeight = contentHeight() !== void 0 ? contentHeight() +
|
|
1214
|
+
const measuredOpenHeight = contentHeight() !== void 0 ? Math.min(contentHeight() + 10, windowHeight() - 32) : panelRef.getBoundingClientRect().height;
|
|
776
1215
|
const target = {
|
|
777
1216
|
width: open ? 280 : 42,
|
|
778
1217
|
height: open ? measuredOpenHeight : 42,
|
|
779
1218
|
borderRadius: open ? 14 : 21,
|
|
780
|
-
boxShadow: open ? "
|
|
1219
|
+
boxShadow: open ? "var(--dial-shadow)" : "var(--dial-shadow-collapsed)"
|
|
781
1220
|
};
|
|
782
1221
|
panelRef.style.cursor = open ? "" : "pointer";
|
|
783
|
-
panelRef.style.overflow = open ? "" : "hidden";
|
|
1222
|
+
panelRef.style.overflow = open ? "hidden auto" : "hidden";
|
|
784
1223
|
if (!rootPanelInitialized) {
|
|
785
1224
|
rootPanelInitialized = true;
|
|
786
1225
|
panelRef.style.width = `${target.width}px`;
|
|
@@ -807,13 +1246,13 @@ function Folder(props) {
|
|
|
807
1246
|
panelRef.style.height = `${target.height}px`;
|
|
808
1247
|
}
|
|
809
1248
|
});
|
|
810
|
-
(0,
|
|
1249
|
+
(0, import_solid_js3.onCleanup)(() => {
|
|
811
1250
|
rootPanelAnim?.stop();
|
|
812
1251
|
panelTapAnim?.stop();
|
|
813
1252
|
});
|
|
814
1253
|
return (() => {
|
|
815
|
-
var _el$
|
|
816
|
-
_el$
|
|
1254
|
+
var _el$17 = _tmpl$9();
|
|
1255
|
+
_el$17.addEventListener("pointerleave", () => {
|
|
817
1256
|
if (isOpen()) return;
|
|
818
1257
|
panelTapAnim?.stop();
|
|
819
1258
|
panelTapAnim = (0, import_motion.animate)(panelRef, {
|
|
@@ -824,7 +1263,7 @@ function Folder(props) {
|
|
|
824
1263
|
bounce: 0.3
|
|
825
1264
|
});
|
|
826
1265
|
});
|
|
827
|
-
_el$
|
|
1266
|
+
_el$17.addEventListener("pointercancel", () => {
|
|
828
1267
|
if (isOpen()) return;
|
|
829
1268
|
panelTapAnim?.stop();
|
|
830
1269
|
panelTapAnim = (0, import_motion.animate)(panelRef, {
|
|
@@ -835,7 +1274,7 @@ function Folder(props) {
|
|
|
835
1274
|
bounce: 0.3
|
|
836
1275
|
});
|
|
837
1276
|
});
|
|
838
|
-
_el$
|
|
1277
|
+
_el$17.$$pointerup = () => {
|
|
839
1278
|
if (isOpen()) return;
|
|
840
1279
|
panelTapAnim?.stop();
|
|
841
1280
|
panelTapAnim = (0, import_motion.animate)(panelRef, {
|
|
@@ -846,7 +1285,7 @@ function Folder(props) {
|
|
|
846
1285
|
bounce: 0.3
|
|
847
1286
|
});
|
|
848
1287
|
};
|
|
849
|
-
_el$
|
|
1288
|
+
_el$17.$$pointerdown = () => {
|
|
850
1289
|
if (isOpen()) return;
|
|
851
1290
|
document.activeElement?.blur?.();
|
|
852
1291
|
panelTapAnim?.stop();
|
|
@@ -859,18 +1298,17 @@ function Folder(props) {
|
|
|
859
1298
|
});
|
|
860
1299
|
};
|
|
861
1300
|
var _ref$2 = panelRef;
|
|
862
|
-
typeof _ref$2 === "function" ? (0,
|
|
863
|
-
(0,
|
|
864
|
-
(0,
|
|
865
|
-
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;
|
|
866
1305
|
})();
|
|
867
1306
|
}
|
|
868
1307
|
return folderContent();
|
|
869
1308
|
}
|
|
870
|
-
(0,
|
|
1309
|
+
(0, import_web3.delegateEvents)(["click", "pointerdown", "pointerup"]);
|
|
871
1310
|
|
|
872
1311
|
// src/solid/components/Slider.tsx
|
|
873
|
-
var import_web11 = require("solid-js/web");
|
|
874
1312
|
var import_web12 = require("solid-js/web");
|
|
875
1313
|
var import_web13 = require("solid-js/web");
|
|
876
1314
|
var import_web14 = require("solid-js/web");
|
|
@@ -878,33 +1316,18 @@ var import_web15 = require("solid-js/web");
|
|
|
878
1316
|
var import_web16 = require("solid-js/web");
|
|
879
1317
|
var import_web17 = require("solid-js/web");
|
|
880
1318
|
var import_web18 = require("solid-js/web");
|
|
881
|
-
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");
|
|
882
1322
|
var import_motion2 = require("motion");
|
|
883
|
-
var _tmpl$
|
|
884
|
-
var _tmpl$22 = /* @__PURE__ */ (0,
|
|
885
|
-
var _tmpl$32 = /* @__PURE__ */ (0,
|
|
886
|
-
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>`);
|
|
887
1327
|
var CLICK_THRESHOLD = 3;
|
|
888
1328
|
var DEAD_ZONE = 32;
|
|
889
1329
|
var MAX_CURSOR_RANGE = 200;
|
|
890
1330
|
var MAX_STRETCH = 8;
|
|
891
|
-
function decimalsForStep(step) {
|
|
892
|
-
const s = step.toString();
|
|
893
|
-
const dot = s.indexOf(".");
|
|
894
|
-
return dot === -1 ? 0 : s.length - dot - 1;
|
|
895
|
-
}
|
|
896
|
-
function roundValue(val, step) {
|
|
897
|
-
const raw = Math.round(val / step) * step;
|
|
898
|
-
return parseFloat(raw.toFixed(decimalsForStep(step)));
|
|
899
|
-
}
|
|
900
|
-
function snapToDecile(rawValue, min, max) {
|
|
901
|
-
const normalized = (rawValue - min) / (max - min);
|
|
902
|
-
const nearest = Math.round(normalized * 10) / 10;
|
|
903
|
-
if (Math.abs(normalized - nearest) <= 0.03125) {
|
|
904
|
-
return min + nearest * (max - min);
|
|
905
|
-
}
|
|
906
|
-
return rawValue;
|
|
907
|
-
}
|
|
908
1331
|
function Slider(props) {
|
|
909
1332
|
const min = () => props.min ?? 0;
|
|
910
1333
|
const max = () => props.max ?? 1;
|
|
@@ -916,13 +1339,13 @@ function Slider(props) {
|
|
|
916
1339
|
let labelRef;
|
|
917
1340
|
let valueSpanRef;
|
|
918
1341
|
let inputRef;
|
|
919
|
-
const [isInteracting, setIsInteracting] = (0,
|
|
920
|
-
const [isDragging, setIsDragging] = (0,
|
|
921
|
-
const [isHovered, setIsHovered] = (0,
|
|
922
|
-
const [isValueHovered, setIsValueHovered] = (0,
|
|
923
|
-
const [isValueEditable, setIsValueEditable] = (0,
|
|
924
|
-
const [showInput, setShowInput] = (0,
|
|
925
|
-
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)("");
|
|
926
1349
|
const fillPercent = (0, import_motion2.motionValue)((props.value - min()) / (max() - min()) * 100);
|
|
927
1350
|
const rubberStretchPx = (0, import_motion2.motionValue)(0);
|
|
928
1351
|
const handleOpacityMv = (0, import_motion2.motionValue)(0);
|
|
@@ -942,7 +1365,7 @@ function Slider(props) {
|
|
|
942
1365
|
handleRef.style.opacity = String(handleOpacityMv.get());
|
|
943
1366
|
handleRef.style.transform = `translateY(-50%) scaleX(${handleScaleXMv.get()}) scaleY(${handleScaleYMv.get()})`;
|
|
944
1367
|
};
|
|
945
|
-
(0,
|
|
1368
|
+
(0, import_solid_js4.createEffect)(() => {
|
|
946
1369
|
if (!isInteracting() && !snapAnim) {
|
|
947
1370
|
fillPercent.jump((props.value - min()) / (max() - min()) * 100);
|
|
948
1371
|
}
|
|
@@ -1060,11 +1483,11 @@ function Slider(props) {
|
|
|
1060
1483
|
const handlePointerCancel = () => {
|
|
1061
1484
|
cancelInteraction();
|
|
1062
1485
|
};
|
|
1063
|
-
(0,
|
|
1486
|
+
(0, import_solid_js4.createEffect)(() => {
|
|
1064
1487
|
const hovered = isValueHovered();
|
|
1065
1488
|
const editing = showInput();
|
|
1066
1489
|
const editable = isValueEditable();
|
|
1067
|
-
(0,
|
|
1490
|
+
(0, import_solid_js4.onCleanup)(() => {
|
|
1068
1491
|
if (hoverTimeout) {
|
|
1069
1492
|
clearTimeout(hoverTimeout);
|
|
1070
1493
|
hoverTimeout = null;
|
|
@@ -1076,7 +1499,7 @@ function Slider(props) {
|
|
|
1076
1499
|
setIsValueEditable(false);
|
|
1077
1500
|
}
|
|
1078
1501
|
});
|
|
1079
|
-
(0,
|
|
1502
|
+
(0, import_solid_js4.onCleanup)(() => {
|
|
1080
1503
|
if (hoverTimeout) clearTimeout(hoverTimeout);
|
|
1081
1504
|
snapAnim?.stop();
|
|
1082
1505
|
rubberAnim?.stop();
|
|
@@ -1084,7 +1507,7 @@ function Slider(props) {
|
|
|
1084
1507
|
handleScaleXAnim?.stop();
|
|
1085
1508
|
handleScaleYAnim?.stop();
|
|
1086
1509
|
});
|
|
1087
|
-
(0,
|
|
1510
|
+
(0, import_solid_js4.onMount)(() => {
|
|
1088
1511
|
const unsubFill = fillPercent.on("change", applyFillStyles);
|
|
1089
1512
|
const unsubRubber = rubberStretchPx.on("change", applyRubberStyles);
|
|
1090
1513
|
const unsubHandleOpacity = handleOpacityMv.on("change", applyHandleVisualStyles);
|
|
@@ -1093,7 +1516,7 @@ function Slider(props) {
|
|
|
1093
1516
|
applyFillStyles(fillPercent.get());
|
|
1094
1517
|
applyRubberStyles(rubberStretchPx.get());
|
|
1095
1518
|
applyHandleVisualStyles();
|
|
1096
|
-
(0,
|
|
1519
|
+
(0, import_solid_js4.onCleanup)(() => {
|
|
1097
1520
|
unsubFill();
|
|
1098
1521
|
unsubRubber();
|
|
1099
1522
|
unsubHandleOpacity();
|
|
@@ -1101,7 +1524,7 @@ function Slider(props) {
|
|
|
1101
1524
|
unsubHandleScaleY();
|
|
1102
1525
|
});
|
|
1103
1526
|
});
|
|
1104
|
-
(0,
|
|
1527
|
+
(0, import_solid_js4.createEffect)(() => {
|
|
1105
1528
|
if (showInput() && inputRef) {
|
|
1106
1529
|
inputRef.focus();
|
|
1107
1530
|
inputRef.select();
|
|
@@ -1157,7 +1580,7 @@ function Slider(props) {
|
|
|
1157
1580
|
if (isDragging()) return 0.9;
|
|
1158
1581
|
return 0.5;
|
|
1159
1582
|
};
|
|
1160
|
-
(0,
|
|
1583
|
+
(0, import_solid_js4.createEffect)(() => {
|
|
1161
1584
|
const targetOpacity = handleOpacity();
|
|
1162
1585
|
const targetScaleX = isActive() ? 1 : 0.25;
|
|
1163
1586
|
const targetScaleY = isActive() && valueDodge() ? 0.75 : 1;
|
|
@@ -1178,7 +1601,6 @@ function Slider(props) {
|
|
|
1178
1601
|
bounce: 0.1
|
|
1179
1602
|
});
|
|
1180
1603
|
});
|
|
1181
|
-
const fillBackground = () => isActive() ? "rgba(255, 255, 255, 0.15)" : "rgba(255, 255, 255, 0.11)";
|
|
1182
1604
|
const discreteSteps = () => (max() - min()) / step();
|
|
1183
1605
|
const hashMarks = () => {
|
|
1184
1606
|
const ds = discreteSteps();
|
|
@@ -1188,8 +1610,8 @@ function Slider(props) {
|
|
|
1188
1610
|
}, (_, i) => {
|
|
1189
1611
|
const pct = (i + 1) * step() / (max() - min()) * 100;
|
|
1190
1612
|
return (() => {
|
|
1191
|
-
var _el$ = _tmpl$
|
|
1192
|
-
(0,
|
|
1613
|
+
var _el$ = _tmpl$10();
|
|
1614
|
+
(0, import_web20.setStyleProperty)(_el$, "left", `${pct}%`);
|
|
1193
1615
|
return _el$;
|
|
1194
1616
|
})();
|
|
1195
1617
|
});
|
|
@@ -1199,16 +1621,16 @@ function Slider(props) {
|
|
|
1199
1621
|
}, (_, i) => {
|
|
1200
1622
|
const pct = (i + 1) * 10;
|
|
1201
1623
|
return (() => {
|
|
1202
|
-
var _el$2 = _tmpl$
|
|
1203
|
-
(0,
|
|
1624
|
+
var _el$2 = _tmpl$10();
|
|
1625
|
+
(0, import_web20.setStyleProperty)(_el$2, "left", `${pct}%`);
|
|
1204
1626
|
return _el$2;
|
|
1205
1627
|
})();
|
|
1206
1628
|
});
|
|
1207
1629
|
};
|
|
1208
1630
|
return (() => {
|
|
1209
|
-
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;
|
|
1210
1632
|
var _ref$ = wrapperRef;
|
|
1211
|
-
typeof _ref$ === "function" ? (0,
|
|
1633
|
+
typeof _ref$ === "function" ? (0, import_web19.use)(_ref$, _el$3) : wrapperRef = _el$3;
|
|
1212
1634
|
_el$4.addEventListener("mouseleave", () => setIsHovered(false));
|
|
1213
1635
|
_el$4.addEventListener("mouseenter", () => setIsHovered(true));
|
|
1214
1636
|
_el$4.addEventListener("pointercancel", handlePointerCancel);
|
|
@@ -1216,188 +1638,184 @@ function Slider(props) {
|
|
|
1216
1638
|
_el$4.$$pointermove = handlePointerMove;
|
|
1217
1639
|
_el$4.$$pointerdown = handlePointerDown;
|
|
1218
1640
|
var _ref$2 = trackRef;
|
|
1219
|
-
typeof _ref$2 === "function" ? (0,
|
|
1220
|
-
(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);
|
|
1221
1643
|
var _ref$3 = fillRef;
|
|
1222
|
-
typeof _ref$3 === "function" ? (0,
|
|
1644
|
+
typeof _ref$3 === "function" ? (0, import_web19.use)(_ref$3, _el$6) : fillRef = _el$6;
|
|
1223
1645
|
var _ref$4 = handleRef;
|
|
1224
|
-
typeof _ref$4 === "function" ? (0,
|
|
1646
|
+
typeof _ref$4 === "function" ? (0, import_web19.use)(_ref$4, _el$7) : handleRef = _el$7;
|
|
1225
1647
|
var _ref$5 = labelRef;
|
|
1226
|
-
typeof _ref$5 === "function" ? (0,
|
|
1227
|
-
(0,
|
|
1228
|
-
(0,
|
|
1229
|
-
|
|
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());
|
|
1230
1663
|
return () => _c$() ? (() => {
|
|
1231
|
-
var _el$
|
|
1232
|
-
_el$
|
|
1233
|
-
_el$
|
|
1234
|
-
_el$
|
|
1235
|
-
_el$
|
|
1236
|
-
_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);
|
|
1237
1670
|
var _ref$6 = inputRef;
|
|
1238
|
-
typeof _ref$6 === "function" ? (0,
|
|
1239
|
-
(0,
|
|
1240
|
-
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;
|
|
1241
1674
|
})() : (() => {
|
|
1242
|
-
var _el$
|
|
1243
|
-
_el$
|
|
1244
|
-
_el$
|
|
1245
|
-
_el$
|
|
1246
|
-
_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));
|
|
1247
1680
|
var _ref$7 = valueSpanRef;
|
|
1248
|
-
typeof _ref$7 === "function" ? (0,
|
|
1249
|
-
(0,
|
|
1250
|
-
(0,
|
|
1251
|
-
var _v$
|
|
1252
|
-
_v$
|
|
1253
|
-
_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);
|
|
1254
1687
|
return _p$;
|
|
1255
1688
|
}, {
|
|
1256
1689
|
e: void 0,
|
|
1257
1690
|
t: void 0
|
|
1258
1691
|
});
|
|
1259
|
-
return _el$
|
|
1692
|
+
return _el$1;
|
|
1260
1693
|
})();
|
|
1261
1694
|
})(), null);
|
|
1262
|
-
(0,
|
|
1263
|
-
var _v$ = `dialkit-slider ${isActive() ? "dialkit-slider-active" : ""}`, _v$2 =
|
|
1264
|
-
_v$ !== _p$.e && (0,
|
|
1265
|
-
_v$2 !== _p$.t && (0,
|
|
1266
|
-
_v$3 !== _p$.a && (0,
|
|
1267
|
-
_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);
|
|
1268
1700
|
return _p$;
|
|
1269
1701
|
}, {
|
|
1270
1702
|
e: void 0,
|
|
1271
1703
|
t: void 0,
|
|
1272
|
-
a: void 0
|
|
1273
|
-
o: void 0
|
|
1704
|
+
a: void 0
|
|
1274
1705
|
});
|
|
1275
1706
|
return _el$3;
|
|
1276
1707
|
})();
|
|
1277
1708
|
}
|
|
1278
|
-
(0,
|
|
1709
|
+
(0, import_web13.delegateEvents)(["pointerdown", "pointermove", "pointerup", "input", "keydown", "click", "mousedown"]);
|
|
1279
1710
|
|
|
1280
1711
|
// src/solid/components/Toggle.tsx
|
|
1281
|
-
var import_web27 = require("solid-js/web");
|
|
1282
|
-
var import_web28 = require("solid-js/web");
|
|
1283
1712
|
var import_web29 = require("solid-js/web");
|
|
1284
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");
|
|
1285
1719
|
|
|
1286
1720
|
// src/solid/components/SegmentedControl.tsx
|
|
1287
|
-
var import_web19 = require("solid-js/web");
|
|
1288
|
-
var import_web20 = require("solid-js/web");
|
|
1289
1721
|
var import_web21 = require("solid-js/web");
|
|
1290
1722
|
var import_web22 = require("solid-js/web");
|
|
1291
1723
|
var import_web23 = require("solid-js/web");
|
|
1292
1724
|
var import_web24 = require("solid-js/web");
|
|
1293
1725
|
var import_web25 = require("solid-js/web");
|
|
1294
1726
|
var import_web26 = require("solid-js/web");
|
|
1295
|
-
var
|
|
1296
|
-
var
|
|
1297
|
-
var
|
|
1298
|
-
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>`);
|
|
1299
1733
|
function SegmentedControl(props) {
|
|
1300
1734
|
let containerRef;
|
|
1301
|
-
let pillRef;
|
|
1302
|
-
const buttonRefs = /* @__PURE__ */ new Map();
|
|
1303
|
-
const [pillReady, setPillReady] = (0, import_solid_js4.createSignal)(false);
|
|
1304
1735
|
let hasAnimated = false;
|
|
1305
|
-
|
|
1306
|
-
const
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
width: buttonRect.width
|
|
1314
|
-
};
|
|
1315
|
-
};
|
|
1316
|
-
const setPillImmediate = (left, width) => {
|
|
1317
|
-
if (!pillRef) return;
|
|
1318
|
-
pillRef.style.left = `${left}px`;
|
|
1319
|
-
pillRef.style.width = `${width}px`;
|
|
1320
|
-
};
|
|
1321
|
-
const updatePill = (shouldAnimate) => {
|
|
1322
|
-
const next = measurePill();
|
|
1323
|
-
if (!next) return;
|
|
1324
|
-
if (!pillReady()) {
|
|
1325
|
-
setPillImmediate(next.left, next.width);
|
|
1326
|
-
setPillReady(true);
|
|
1327
|
-
return;
|
|
1328
|
-
}
|
|
1329
|
-
if (!shouldAnimate || !hasAnimated) {
|
|
1330
|
-
pillAnim?.stop();
|
|
1331
|
-
pillAnim = null;
|
|
1332
|
-
setPillImmediate(next.left, next.width);
|
|
1333
|
-
return;
|
|
1334
|
-
}
|
|
1335
|
-
pillAnim?.stop();
|
|
1336
|
-
pillAnim = (0, import_motion3.animate)(pillRef, {
|
|
1337
|
-
left: next.left,
|
|
1338
|
-
width: next.width
|
|
1339
|
-
}, {
|
|
1340
|
-
type: "spring",
|
|
1341
|
-
visualDuration: 0.2,
|
|
1342
|
-
bounce: 0.15,
|
|
1343
|
-
onComplete: () => {
|
|
1344
|
-
pillAnim = null;
|
|
1345
|
-
}
|
|
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
|
|
1346
1744
|
});
|
|
1347
1745
|
};
|
|
1348
|
-
(0,
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1746
|
+
(0, import_solid_js5.createEffect)(() => {
|
|
1747
|
+
void props.value;
|
|
1748
|
+
void props.options.length;
|
|
1749
|
+
measure();
|
|
1352
1750
|
});
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1751
|
+
const transition = () => {
|
|
1752
|
+
void props.value;
|
|
1753
|
+
if (!hasAnimated) {
|
|
1356
1754
|
hasAnimated = true;
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
(0, import_solid_js4.onCleanup)(() => {
|
|
1362
|
-
pillAnim?.stop();
|
|
1363
|
-
ro.disconnect();
|
|
1364
|
-
});
|
|
1365
|
-
});
|
|
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
|
+
};
|
|
1366
1759
|
return (() => {
|
|
1367
|
-
var _el$ = _tmpl$
|
|
1760
|
+
var _el$ = _tmpl$11();
|
|
1368
1761
|
var _ref$ = containerRef;
|
|
1369
|
-
typeof _ref$ === "function" ? (0,
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
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, {
|
|
1373
1784
|
get each() {
|
|
1374
1785
|
return props.options;
|
|
1375
1786
|
},
|
|
1376
1787
|
children: (option) => (() => {
|
|
1377
|
-
var _el$3 = _tmpl$
|
|
1788
|
+
var _el$3 = _tmpl$33();
|
|
1378
1789
|
_el$3.$$click = () => props.onChange(option.value);
|
|
1379
|
-
(0, import_web26.
|
|
1380
|
-
|
|
1381
|
-
buttonRefs.set(option.value, el);
|
|
1382
|
-
}, _el$3);
|
|
1383
|
-
(0, import_web24.insert)(_el$3, () => option.label);
|
|
1384
|
-
(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)));
|
|
1385
1792
|
return _el$3;
|
|
1386
1793
|
})()
|
|
1387
1794
|
}), null);
|
|
1388
|
-
(0, import_web23.effect)((_$p) => (0, import_web22.setStyleProperty)(_el$2, "visibility", pillReady() ? "visible" : "hidden"));
|
|
1389
1795
|
return _el$;
|
|
1390
1796
|
})();
|
|
1391
1797
|
}
|
|
1392
|
-
(0,
|
|
1798
|
+
(0, import_web22.delegateEvents)(["click"]);
|
|
1393
1799
|
|
|
1394
1800
|
// src/solid/components/Toggle.tsx
|
|
1395
|
-
var _tmpl$
|
|
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>`);
|
|
1396
1803
|
function Toggle(props) {
|
|
1397
1804
|
return (() => {
|
|
1398
|
-
var _el$ = _tmpl$
|
|
1399
|
-
(0,
|
|
1400
|
-
(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, {
|
|
1401
1819
|
options: [{
|
|
1402
1820
|
value: "off",
|
|
1403
1821
|
label: "Off"
|
|
@@ -1415,20 +1833,20 @@ function Toggle(props) {
|
|
|
1415
1833
|
}
|
|
1416
1834
|
|
|
1417
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
|
|
1418
1843
|
var import_web35 = require("solid-js/web");
|
|
1419
1844
|
var import_web36 = require("solid-js/web");
|
|
1420
1845
|
var import_web37 = require("solid-js/web");
|
|
1421
1846
|
var import_web38 = require("solid-js/web");
|
|
1422
|
-
var
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
var import_web31 = require("solid-js/web");
|
|
1426
|
-
var import_web32 = require("solid-js/web");
|
|
1427
|
-
var import_web33 = require("solid-js/web");
|
|
1428
|
-
var import_web34 = require("solid-js/web");
|
|
1429
|
-
var _tmpl$12 = /* @__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);
|
|
1430
|
-
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);
|
|
1431
|
-
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>`);
|
|
1432
1850
|
function generateSpringCurve(stiffness, damping, mass, duration) {
|
|
1433
1851
|
const points = [];
|
|
1434
1852
|
const steps = 100;
|
|
@@ -1486,66 +1904,62 @@ function SpringVisualization(props) {
|
|
|
1486
1904
|
const x = width / 4 * i;
|
|
1487
1905
|
const y = height / 4 * i;
|
|
1488
1906
|
lines.push((() => {
|
|
1489
|
-
var _el$ = _tmpl$
|
|
1490
|
-
(0,
|
|
1491
|
-
(0,
|
|
1907
|
+
var _el$ = _tmpl$13();
|
|
1908
|
+
(0, import_web38.setAttribute)(_el$, "x1", x);
|
|
1909
|
+
(0, import_web38.setAttribute)(_el$, "x2", x);
|
|
1492
1910
|
return _el$;
|
|
1493
1911
|
})(), (() => {
|
|
1494
|
-
var _el$2 = _tmpl$
|
|
1495
|
-
(0,
|
|
1496
|
-
(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);
|
|
1497
1915
|
return _el$2;
|
|
1498
1916
|
})());
|
|
1499
1917
|
}
|
|
1500
1918
|
return lines;
|
|
1501
1919
|
};
|
|
1502
1920
|
return (() => {
|
|
1503
|
-
var _el$3 = _tmpl$
|
|
1504
|
-
(0,
|
|
1505
|
-
(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()));
|
|
1506
1924
|
return _el$3;
|
|
1507
1925
|
})();
|
|
1508
1926
|
}
|
|
1509
1927
|
|
|
1510
1928
|
// src/solid/components/SpringControl.tsx
|
|
1511
|
-
var _tmpl$
|
|
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`);
|
|
1512
1930
|
function SpringControl(props) {
|
|
1513
|
-
const [mode, setMode] = (0,
|
|
1514
|
-
(0,
|
|
1931
|
+
const [mode, setMode] = (0, import_solid_js7.createSignal)(DialStore.getSpringMode(props.panelId, props.path));
|
|
1932
|
+
(0, import_solid_js7.onMount)(() => {
|
|
1515
1933
|
const unsub = DialStore.subscribe(props.panelId, () => {
|
|
1516
1934
|
setMode(DialStore.getSpringMode(props.panelId, props.path));
|
|
1517
1935
|
});
|
|
1518
|
-
(0,
|
|
1936
|
+
(0, import_solid_js7.onCleanup)(unsub);
|
|
1519
1937
|
});
|
|
1520
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
|
+
};
|
|
1521
1952
|
const handleModeChange = (newMode) => {
|
|
1953
|
+
if (isSimpleMode()) {
|
|
1954
|
+
cache.simple = props.spring;
|
|
1955
|
+
} else {
|
|
1956
|
+
cache.advanced = props.spring;
|
|
1957
|
+
}
|
|
1522
1958
|
DialStore.updateSpringMode(props.panelId, props.path, newMode);
|
|
1523
1959
|
if (newMode === "simple") {
|
|
1524
|
-
|
|
1525
|
-
stiffness,
|
|
1526
|
-
damping,
|
|
1527
|
-
mass,
|
|
1528
|
-
...rest
|
|
1529
|
-
} = props.spring;
|
|
1530
|
-
props.onChange({
|
|
1531
|
-
...rest,
|
|
1532
|
-
type: "spring",
|
|
1533
|
-
visualDuration: props.spring.visualDuration ?? 0.3,
|
|
1534
|
-
bounce: props.spring.bounce ?? 0.2
|
|
1535
|
-
});
|
|
1960
|
+
props.onChange(cache.simple);
|
|
1536
1961
|
} else {
|
|
1537
|
-
|
|
1538
|
-
visualDuration,
|
|
1539
|
-
bounce,
|
|
1540
|
-
...rest
|
|
1541
|
-
} = props.spring;
|
|
1542
|
-
props.onChange({
|
|
1543
|
-
...rest,
|
|
1544
|
-
type: "spring",
|
|
1545
|
-
stiffness: props.spring.stiffness ?? 200,
|
|
1546
|
-
damping: props.spring.damping ?? 25,
|
|
1547
|
-
mass: props.spring.mass ?? 1
|
|
1548
|
-
});
|
|
1962
|
+
props.onChange(cache.advanced);
|
|
1549
1963
|
}
|
|
1550
1964
|
};
|
|
1551
1965
|
const handleUpdate = (key, value) => {
|
|
@@ -1572,14 +1986,14 @@ function SpringControl(props) {
|
|
|
1572
1986
|
});
|
|
1573
1987
|
}
|
|
1574
1988
|
};
|
|
1575
|
-
return (0,
|
|
1989
|
+
return (0, import_web42.createComponent)(Folder, {
|
|
1576
1990
|
get title() {
|
|
1577
1991
|
return props.label;
|
|
1578
1992
|
},
|
|
1579
1993
|
defaultOpen: true,
|
|
1580
1994
|
get children() {
|
|
1581
|
-
var _el$ = _tmpl$
|
|
1582
|
-
(0,
|
|
1995
|
+
var _el$ = _tmpl$14(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
|
|
1996
|
+
(0, import_web41.insert)(_el$, (0, import_web42.createComponent)(SpringVisualization, {
|
|
1583
1997
|
get spring() {
|
|
1584
1998
|
return props.spring;
|
|
1585
1999
|
},
|
|
@@ -1587,7 +2001,7 @@ function SpringControl(props) {
|
|
|
1587
2001
|
return isSimpleMode();
|
|
1588
2002
|
}
|
|
1589
2003
|
}), _el$2);
|
|
1590
|
-
(0,
|
|
2004
|
+
(0, import_web41.insert)(_el$2, (0, import_web42.createComponent)(SegmentedControl, {
|
|
1591
2005
|
options: [{
|
|
1592
2006
|
value: "simple",
|
|
1593
2007
|
label: "Time"
|
|
@@ -1600,9 +2014,9 @@ function SpringControl(props) {
|
|
|
1600
2014
|
},
|
|
1601
2015
|
onChange: handleModeChange
|
|
1602
2016
|
}), null);
|
|
1603
|
-
(0,
|
|
1604
|
-
var _c$ = (0,
|
|
1605
|
-
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, {
|
|
1606
2020
|
label: "Duration",
|
|
1607
2021
|
get value() {
|
|
1608
2022
|
return props.spring.visualDuration ?? 0.3;
|
|
@@ -1612,7 +2026,7 @@ function SpringControl(props) {
|
|
|
1612
2026
|
max: 1,
|
|
1613
2027
|
step: 0.05,
|
|
1614
2028
|
unit: "s"
|
|
1615
|
-
}), (0,
|
|
2029
|
+
}), (0, import_web42.createComponent)(Slider, {
|
|
1616
2030
|
label: "Bounce",
|
|
1617
2031
|
get value() {
|
|
1618
2032
|
return props.spring.bounce ?? 0.2;
|
|
@@ -1621,7 +2035,7 @@ function SpringControl(props) {
|
|
|
1621
2035
|
min: 0,
|
|
1622
2036
|
max: 1,
|
|
1623
2037
|
step: 0.05
|
|
1624
|
-
})] : [(0,
|
|
2038
|
+
})] : [(0, import_web42.createComponent)(Slider, {
|
|
1625
2039
|
label: "Stiffness",
|
|
1626
2040
|
get value() {
|
|
1627
2041
|
return props.spring.stiffness ?? 400;
|
|
@@ -1630,7 +2044,7 @@ function SpringControl(props) {
|
|
|
1630
2044
|
min: 1,
|
|
1631
2045
|
max: 1e3,
|
|
1632
2046
|
step: 10
|
|
1633
|
-
}), (0,
|
|
2047
|
+
}), (0, import_web42.createComponent)(Slider, {
|
|
1634
2048
|
label: "Damping",
|
|
1635
2049
|
get value() {
|
|
1636
2050
|
return props.spring.damping ?? 17;
|
|
@@ -1639,7 +2053,7 @@ function SpringControl(props) {
|
|
|
1639
2053
|
min: 1,
|
|
1640
2054
|
max: 100,
|
|
1641
2055
|
step: 1
|
|
1642
|
-
}), (0,
|
|
2056
|
+
}), (0, import_web42.createComponent)(Slider, {
|
|
1643
2057
|
label: "Mass",
|
|
1644
2058
|
get value() {
|
|
1645
2059
|
return props.spring.mass ?? 1;
|
|
@@ -1656,44 +2070,44 @@ function SpringControl(props) {
|
|
|
1656
2070
|
}
|
|
1657
2071
|
|
|
1658
2072
|
// src/solid/components/TextControl.tsx
|
|
1659
|
-
var import_web39 = require("solid-js/web");
|
|
1660
|
-
var import_web40 = require("solid-js/web");
|
|
1661
|
-
var import_web41 = require("solid-js/web");
|
|
1662
|
-
var import_web42 = require("solid-js/web");
|
|
1663
2073
|
var import_web43 = require("solid-js/web");
|
|
1664
|
-
var
|
|
1665
|
-
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>`);
|
|
1666
2080
|
function TextControl(props) {
|
|
1667
|
-
const inputId = (0,
|
|
2081
|
+
const inputId = (0, import_solid_js8.createUniqueId)();
|
|
1668
2082
|
return (() => {
|
|
1669
|
-
var _el$ = _tmpl$
|
|
1670
|
-
(0,
|
|
1671
|
-
(0,
|
|
2083
|
+
var _el$ = _tmpl$15(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
|
|
2084
|
+
(0, import_web47.setAttribute)(_el$2, "for", inputId);
|
|
2085
|
+
(0, import_web46.insert)(_el$2, () => props.label);
|
|
1672
2086
|
_el$3.$$input = (e) => props.onChange(e.currentTarget.value);
|
|
1673
|
-
(0,
|
|
1674
|
-
(0,
|
|
1675
|
-
(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);
|
|
1676
2090
|
return _el$;
|
|
1677
2091
|
})();
|
|
1678
2092
|
}
|
|
1679
|
-
(0,
|
|
2093
|
+
(0, import_web44.delegateEvents)(["input"]);
|
|
1680
2094
|
|
|
1681
2095
|
// src/solid/components/SelectControl.tsx
|
|
1682
|
-
var import_web44 = require("solid-js/web");
|
|
1683
|
-
var import_web45 = require("solid-js/web");
|
|
1684
|
-
var import_web46 = require("solid-js/web");
|
|
1685
|
-
var import_web47 = require("solid-js/web");
|
|
1686
2096
|
var import_web48 = require("solid-js/web");
|
|
1687
2097
|
var import_web49 = require("solid-js/web");
|
|
1688
2098
|
var import_web50 = require("solid-js/web");
|
|
1689
2099
|
var import_web51 = require("solid-js/web");
|
|
1690
2100
|
var import_web52 = require("solid-js/web");
|
|
1691
|
-
var import_solid_js7 = require("solid-js");
|
|
1692
2101
|
var import_web53 = require("solid-js/web");
|
|
1693
|
-
var
|
|
1694
|
-
var
|
|
1695
|
-
var
|
|
1696
|
-
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>`);
|
|
1697
2111
|
function toTitleCase(s) {
|
|
1698
2112
|
return s.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
1699
2113
|
}
|
|
@@ -1704,10 +2118,10 @@ function normalizeOptions(options) {
|
|
|
1704
2118
|
} : opt);
|
|
1705
2119
|
}
|
|
1706
2120
|
function SelectControl(props) {
|
|
1707
|
-
const [isOpen, setIsOpen] = (0,
|
|
1708
|
-
const [mounted, setMounted] = (0,
|
|
1709
|
-
const [pos, setPos] = (0,
|
|
1710
|
-
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);
|
|
1711
2125
|
let triggerRef;
|
|
1712
2126
|
let dropdownRef;
|
|
1713
2127
|
let chevronRef;
|
|
@@ -1715,22 +2129,22 @@ function SelectControl(props) {
|
|
|
1715
2129
|
let chevronAnim = null;
|
|
1716
2130
|
const normalized = () => normalizeOptions(props.options);
|
|
1717
2131
|
const selectedOption = () => normalized().find((o) => o.value === props.value);
|
|
1718
|
-
(0,
|
|
2132
|
+
(0, import_solid_js9.onMount)(() => {
|
|
1719
2133
|
const root = triggerRef?.closest(".dialkit-root");
|
|
1720
2134
|
setPortalTarget(root ?? document.body);
|
|
1721
2135
|
if (chevronRef) {
|
|
1722
2136
|
chevronRef.style.transform = `rotate(${isOpen() ? 180 : 0}deg)`;
|
|
1723
2137
|
}
|
|
1724
|
-
(0,
|
|
2138
|
+
(0, import_solid_js9.onCleanup)(() => {
|
|
1725
2139
|
closeAnim?.stop();
|
|
1726
2140
|
chevronAnim?.stop();
|
|
1727
2141
|
});
|
|
1728
2142
|
});
|
|
1729
|
-
(0,
|
|
2143
|
+
(0, import_solid_js9.createEffect)(() => {
|
|
1730
2144
|
if (!chevronRef) return;
|
|
1731
2145
|
const open = isOpen();
|
|
1732
2146
|
chevronAnim?.stop();
|
|
1733
|
-
chevronAnim = (0,
|
|
2147
|
+
chevronAnim = (0, import_motion3.animate)(chevronRef, {
|
|
1734
2148
|
rotate: open ? 180 : 0
|
|
1735
2149
|
}, {
|
|
1736
2150
|
type: "spring",
|
|
@@ -1766,7 +2180,7 @@ function SelectControl(props) {
|
|
|
1766
2180
|
}
|
|
1767
2181
|
const above = pos()?.above ?? false;
|
|
1768
2182
|
closeAnim?.stop();
|
|
1769
|
-
closeAnim = (0,
|
|
2183
|
+
closeAnim = (0, import_motion3.animate)(dropdownRef, {
|
|
1770
2184
|
opacity: 0,
|
|
1771
2185
|
y: above ? 8 : -8,
|
|
1772
2186
|
scale: 0.95
|
|
@@ -1780,7 +2194,7 @@ function SelectControl(props) {
|
|
|
1780
2194
|
}
|
|
1781
2195
|
});
|
|
1782
2196
|
};
|
|
1783
|
-
(0,
|
|
2197
|
+
(0, import_solid_js9.createEffect)(() => {
|
|
1784
2198
|
if (!isOpen()) return;
|
|
1785
2199
|
const handleViewportChange = () => updatePos();
|
|
1786
2200
|
const handleClick = (e) => {
|
|
@@ -1793,7 +2207,7 @@ function SelectControl(props) {
|
|
|
1793
2207
|
document.addEventListener("mousedown", handleClick);
|
|
1794
2208
|
window.addEventListener("resize", handleViewportChange);
|
|
1795
2209
|
window.addEventListener("scroll", handleViewportChange, true);
|
|
1796
|
-
(0,
|
|
2210
|
+
(0, import_solid_js9.onCleanup)(() => {
|
|
1797
2211
|
document.removeEventListener("mousedown", handleClick);
|
|
1798
2212
|
window.removeEventListener("resize", handleViewportChange);
|
|
1799
2213
|
window.removeEventListener("scroll", handleViewportChange, true);
|
|
@@ -1816,34 +2230,35 @@ function SelectControl(props) {
|
|
|
1816
2230
|
};
|
|
1817
2231
|
};
|
|
1818
2232
|
return (() => {
|
|
1819
|
-
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;
|
|
1820
2234
|
_el$2.$$click = () => isOpen() ? closeDropdown() : openDropdown();
|
|
1821
2235
|
var _ref$ = triggerRef;
|
|
1822
|
-
typeof _ref$ === "function" ? (0,
|
|
1823
|
-
(0,
|
|
1824
|
-
(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);
|
|
1825
2239
|
var _ref$2 = chevronRef;
|
|
1826
|
-
typeof _ref$2 === "function" ? (0,
|
|
1827
|
-
(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, {
|
|
1828
2243
|
get when() {
|
|
1829
2244
|
return !!portalTarget();
|
|
1830
2245
|
},
|
|
1831
2246
|
get children() {
|
|
1832
|
-
return (0,
|
|
2247
|
+
return (0, import_web52.createComponent)(import_web57.Portal, {
|
|
1833
2248
|
get mount() {
|
|
1834
2249
|
return portalTarget();
|
|
1835
2250
|
},
|
|
1836
2251
|
get children() {
|
|
1837
|
-
return (0,
|
|
2252
|
+
return (0, import_web52.createComponent)(import_solid_js9.Show, {
|
|
1838
2253
|
get when() {
|
|
1839
|
-
return (0,
|
|
2254
|
+
return (0, import_web54.memo)(() => !!mounted())() && pos();
|
|
1840
2255
|
},
|
|
1841
2256
|
get children() {
|
|
1842
|
-
var _el$
|
|
1843
|
-
(0,
|
|
2257
|
+
var _el$8 = _tmpl$16();
|
|
2258
|
+
(0, import_web56.use)((el) => {
|
|
1844
2259
|
dropdownRef = el;
|
|
1845
2260
|
const above = pos()?.above ?? false;
|
|
1846
|
-
(0,
|
|
2261
|
+
(0, import_motion3.animate)(el, {
|
|
1847
2262
|
opacity: [0, 1],
|
|
1848
2263
|
y: [above ? 8 : -8, 0],
|
|
1849
2264
|
scale: [0.95, 1]
|
|
@@ -1852,60 +2267,60 @@ function SelectControl(props) {
|
|
|
1852
2267
|
visualDuration: 0.15,
|
|
1853
2268
|
bounce: 0
|
|
1854
2269
|
});
|
|
1855
|
-
}, _el$
|
|
1856
|
-
(0,
|
|
2270
|
+
}, _el$8);
|
|
2271
|
+
(0, import_web55.insert)(_el$8, (0, import_web52.createComponent)(import_solid_js9.For, {
|
|
1857
2272
|
get each() {
|
|
1858
2273
|
return normalized();
|
|
1859
2274
|
},
|
|
1860
2275
|
children: (option) => (() => {
|
|
1861
|
-
var _el$
|
|
1862
|
-
_el$
|
|
2276
|
+
var _el$9 = _tmpl$35();
|
|
2277
|
+
_el$9.$$click = () => {
|
|
1863
2278
|
props.onChange(option.value);
|
|
1864
2279
|
closeDropdown();
|
|
1865
2280
|
};
|
|
1866
|
-
(0,
|
|
1867
|
-
(0,
|
|
1868
|
-
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;
|
|
1869
2284
|
})()
|
|
1870
2285
|
}));
|
|
1871
|
-
(0,
|
|
1872
|
-
return _el$
|
|
2286
|
+
(0, import_web51.effect)((_$p) => (0, import_web50.style)(_el$8, dropdownStyle(), _$p));
|
|
2287
|
+
return _el$8;
|
|
1873
2288
|
}
|
|
1874
2289
|
});
|
|
1875
2290
|
}
|
|
1876
2291
|
});
|
|
1877
2292
|
}
|
|
1878
2293
|
}), null);
|
|
1879
|
-
(0,
|
|
2294
|
+
(0, import_web51.effect)(() => (0, import_web53.setAttribute)(_el$2, "data-open", String(isOpen())));
|
|
1880
2295
|
return _el$;
|
|
1881
2296
|
})();
|
|
1882
2297
|
}
|
|
1883
|
-
(0,
|
|
2298
|
+
(0, import_web49.delegateEvents)(["click"]);
|
|
1884
2299
|
|
|
1885
2300
|
// src/solid/components/ColorControl.tsx
|
|
1886
|
-
var import_web54 = require("solid-js/web");
|
|
1887
|
-
var import_web55 = require("solid-js/web");
|
|
1888
|
-
var import_web56 = require("solid-js/web");
|
|
1889
|
-
var import_web57 = require("solid-js/web");
|
|
1890
2301
|
var import_web58 = require("solid-js/web");
|
|
1891
2302
|
var import_web59 = require("solid-js/web");
|
|
1892
2303
|
var import_web60 = require("solid-js/web");
|
|
1893
2304
|
var import_web61 = require("solid-js/web");
|
|
1894
|
-
var
|
|
1895
|
-
var
|
|
1896
|
-
var
|
|
1897
|
-
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>`);
|
|
1898
2313
|
var HEX_COLOR_REGEX = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/;
|
|
1899
2314
|
function expandShorthandHex(hex) {
|
|
1900
2315
|
if (hex.length !== 4) return hex;
|
|
1901
2316
|
return `#${hex[1]}${hex[1]}${hex[2]}${hex[2]}${hex[3]}${hex[3]}`;
|
|
1902
2317
|
}
|
|
1903
2318
|
function ColorControl(props) {
|
|
1904
|
-
const [isEditing, setIsEditing] = (0,
|
|
1905
|
-
const [editValue, setEditValue] = (0,
|
|
1906
|
-
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)();
|
|
1907
2322
|
let colorInputRef;
|
|
1908
|
-
(0,
|
|
2323
|
+
(0, import_solid_js10.createEffect)(() => {
|
|
1909
2324
|
if (!isEditing()) {
|
|
1910
2325
|
setEditValue(props.value);
|
|
1911
2326
|
}
|
|
@@ -1926,77 +2341,77 @@ function ColorControl(props) {
|
|
|
1926
2341
|
}
|
|
1927
2342
|
};
|
|
1928
2343
|
return (() => {
|
|
1929
|
-
var _el$ = _tmpl$
|
|
1930
|
-
(0,
|
|
1931
|
-
(0,
|
|
1932
|
-
(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, {
|
|
1933
2348
|
get when() {
|
|
1934
2349
|
return isEditing();
|
|
1935
2350
|
},
|
|
1936
2351
|
get fallback() {
|
|
1937
2352
|
return (() => {
|
|
1938
|
-
var _el$7 = _tmpl$
|
|
2353
|
+
var _el$7 = _tmpl$36();
|
|
1939
2354
|
_el$7.$$click = () => setIsEditing(true);
|
|
1940
|
-
(0,
|
|
2355
|
+
(0, import_web64.insert)(_el$7, () => (props.value ?? "").toUpperCase());
|
|
1941
2356
|
return _el$7;
|
|
1942
2357
|
})();
|
|
1943
2358
|
},
|
|
1944
2359
|
get children() {
|
|
1945
|
-
var _el$4 = _tmpl$
|
|
2360
|
+
var _el$4 = _tmpl$17();
|
|
1946
2361
|
_el$4.$$keydown = handleKeyDown;
|
|
1947
2362
|
_el$4.addEventListener("blur", handleTextSubmit);
|
|
1948
2363
|
_el$4.$$input = (e) => setEditValue(e.currentTarget.value);
|
|
1949
|
-
(0,
|
|
1950
|
-
(0,
|
|
2364
|
+
(0, import_web65.setAttribute)(_el$4, "id", textInputId);
|
|
2365
|
+
(0, import_web63.effect)(() => _el$4.value = editValue());
|
|
1951
2366
|
return _el$4;
|
|
1952
2367
|
}
|
|
1953
2368
|
}), _el$5);
|
|
1954
2369
|
_el$5.$$click = () => colorInputRef?.click();
|
|
1955
2370
|
_el$6.$$input = (e) => props.onChange(e.currentTarget.value);
|
|
1956
2371
|
var _ref$ = colorInputRef;
|
|
1957
|
-
typeof _ref$ === "function" ? (0,
|
|
1958
|
-
(0,
|
|
2372
|
+
typeof _ref$ === "function" ? (0, import_web61.use)(_ref$, _el$6) : colorInputRef = _el$6;
|
|
2373
|
+
(0, import_web63.effect)((_p$) => {
|
|
1959
2374
|
var _v$ = props.value, _v$2 = `Pick color for ${props.label}`, _v$3 = `${props.label} color picker`;
|
|
1960
|
-
_v$ !== _p$.e && (0,
|
|
1961
|
-
_v$2 !== _p$.t && (0,
|
|
1962
|
-
_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);
|
|
1963
2378
|
return _p$;
|
|
1964
2379
|
}, {
|
|
1965
2380
|
e: void 0,
|
|
1966
2381
|
t: void 0,
|
|
1967
2382
|
a: void 0
|
|
1968
2383
|
});
|
|
1969
|
-
(0,
|
|
2384
|
+
(0, import_web63.effect)(() => _el$6.value = props.value.length === 4 ? expandShorthandHex(props.value) : props.value.slice(0, 7));
|
|
1970
2385
|
return _el$;
|
|
1971
2386
|
})();
|
|
1972
2387
|
}
|
|
1973
|
-
(0,
|
|
2388
|
+
(0, import_web59.delegateEvents)(["input", "keydown", "click"]);
|
|
1974
2389
|
|
|
1975
2390
|
// src/solid/components/PresetManager.tsx
|
|
1976
|
-
var import_web62 = require("solid-js/web");
|
|
1977
|
-
var import_web63 = require("solid-js/web");
|
|
1978
|
-
var import_web64 = require("solid-js/web");
|
|
1979
|
-
var import_web65 = require("solid-js/web");
|
|
1980
2391
|
var import_web66 = require("solid-js/web");
|
|
1981
2392
|
var import_web67 = require("solid-js/web");
|
|
1982
2393
|
var import_web68 = require("solid-js/web");
|
|
1983
2394
|
var import_web69 = require("solid-js/web");
|
|
1984
2395
|
var import_web70 = require("solid-js/web");
|
|
1985
|
-
var import_solid_js9 = require("solid-js");
|
|
1986
2396
|
var import_web71 = require("solid-js/web");
|
|
1987
|
-
var
|
|
1988
|
-
var
|
|
1989
|
-
var
|
|
1990
|
-
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>`);
|
|
1991
2406
|
function PresetManager(props) {
|
|
1992
|
-
const [isOpen, setIsOpen] = (0,
|
|
1993
|
-
const [mounted, setMounted] = (0,
|
|
1994
|
-
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)({
|
|
1995
2410
|
top: 0,
|
|
1996
2411
|
left: 0,
|
|
1997
2412
|
width: 0
|
|
1998
2413
|
});
|
|
1999
|
-
const [portalTarget, setPortalTarget] = (0,
|
|
2414
|
+
const [portalTarget, setPortalTarget] = (0, import_solid_js11.createSignal)(null);
|
|
2000
2415
|
let triggerRef;
|
|
2001
2416
|
let dropdownRef;
|
|
2002
2417
|
let chevronRef;
|
|
@@ -2004,24 +2419,24 @@ function PresetManager(props) {
|
|
|
2004
2419
|
let chevronAnim = null;
|
|
2005
2420
|
const hasPresets = () => props.presets.length > 0;
|
|
2006
2421
|
const activePreset = () => props.presets.find((p) => p.id === props.activePresetId);
|
|
2007
|
-
(0,
|
|
2422
|
+
(0, import_solid_js11.onMount)(() => {
|
|
2008
2423
|
const root = triggerRef?.closest(".dialkit-root");
|
|
2009
2424
|
setPortalTarget(root ?? document.body);
|
|
2010
2425
|
if (chevronRef) {
|
|
2011
2426
|
chevronRef.style.transform = `rotate(${isOpen() ? 180 : 0}deg)`;
|
|
2012
2427
|
chevronRef.style.opacity = String(hasPresets() ? 0.6 : 0.25);
|
|
2013
2428
|
}
|
|
2014
|
-
(0,
|
|
2429
|
+
(0, import_solid_js11.onCleanup)(() => {
|
|
2015
2430
|
closeAnim?.stop();
|
|
2016
2431
|
chevronAnim?.stop();
|
|
2017
2432
|
});
|
|
2018
2433
|
});
|
|
2019
|
-
(0,
|
|
2434
|
+
(0, import_solid_js11.createEffect)(() => {
|
|
2020
2435
|
if (!chevronRef) return;
|
|
2021
2436
|
const open = isOpen();
|
|
2022
2437
|
const has = hasPresets();
|
|
2023
2438
|
chevronAnim?.stop();
|
|
2024
|
-
chevronAnim = (0,
|
|
2439
|
+
chevronAnim = (0, import_motion4.animate)(chevronRef, {
|
|
2025
2440
|
rotate: open ? 180 : 0,
|
|
2026
2441
|
opacity: has ? 0.6 : 0.25
|
|
2027
2442
|
}, {
|
|
@@ -2054,7 +2469,7 @@ function PresetManager(props) {
|
|
|
2054
2469
|
return;
|
|
2055
2470
|
}
|
|
2056
2471
|
closeAnim?.stop();
|
|
2057
|
-
closeAnim = (0,
|
|
2472
|
+
closeAnim = (0, import_motion4.animate)(dropdownRef, {
|
|
2058
2473
|
opacity: 0,
|
|
2059
2474
|
y: 4,
|
|
2060
2475
|
scale: 0.97
|
|
@@ -2072,7 +2487,7 @@ function PresetManager(props) {
|
|
|
2072
2487
|
if (isOpen()) closeDropdown();
|
|
2073
2488
|
else openDropdown();
|
|
2074
2489
|
};
|
|
2075
|
-
(0,
|
|
2490
|
+
(0, import_solid_js11.createEffect)(() => {
|
|
2076
2491
|
if (!isOpen()) return;
|
|
2077
2492
|
const handleViewportChange = () => updatePos();
|
|
2078
2493
|
const handler = (e) => {
|
|
@@ -2084,7 +2499,7 @@ function PresetManager(props) {
|
|
|
2084
2499
|
document.addEventListener("mousedown", handler);
|
|
2085
2500
|
window.addEventListener("resize", handleViewportChange);
|
|
2086
2501
|
window.addEventListener("scroll", handleViewportChange, true);
|
|
2087
|
-
(0,
|
|
2502
|
+
(0, import_solid_js11.onCleanup)(() => {
|
|
2088
2503
|
document.removeEventListener("mousedown", handler);
|
|
2089
2504
|
window.removeEventListener("resize", handleViewportChange);
|
|
2090
2505
|
window.removeEventListener("scroll", handleViewportChange, true);
|
|
@@ -2100,35 +2515,36 @@ function PresetManager(props) {
|
|
|
2100
2515
|
DialStore.deletePreset(props.panelId, presetId);
|
|
2101
2516
|
};
|
|
2102
2517
|
return (() => {
|
|
2103
|
-
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;
|
|
2104
2519
|
_el$2.$$click = toggle;
|
|
2105
2520
|
var _ref$ = triggerRef;
|
|
2106
|
-
typeof _ref$ === "function" ? (0,
|
|
2107
|
-
(0,
|
|
2108
|
-
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());
|
|
2109
2524
|
return () => _c$() ? activePreset().name : "Version 1";
|
|
2110
2525
|
})());
|
|
2111
2526
|
var _ref$2 = chevronRef;
|
|
2112
|
-
typeof _ref$2 === "function" ? (0,
|
|
2113
|
-
(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, {
|
|
2114
2530
|
get when() {
|
|
2115
2531
|
return !!portalTarget();
|
|
2116
2532
|
},
|
|
2117
2533
|
get children() {
|
|
2118
|
-
return (0,
|
|
2534
|
+
return (0, import_web70.createComponent)(import_web75.Portal, {
|
|
2119
2535
|
get mount() {
|
|
2120
2536
|
return portalTarget();
|
|
2121
2537
|
},
|
|
2122
2538
|
get children() {
|
|
2123
|
-
return (0,
|
|
2539
|
+
return (0, import_web70.createComponent)(import_solid_js11.Show, {
|
|
2124
2540
|
get when() {
|
|
2125
2541
|
return mounted();
|
|
2126
2542
|
},
|
|
2127
2543
|
get children() {
|
|
2128
|
-
var _el$
|
|
2129
|
-
(0,
|
|
2544
|
+
var _el$6 = _tmpl$18(), _el$7 = _el$6.firstChild;
|
|
2545
|
+
(0, import_web74.use)((el) => {
|
|
2130
2546
|
dropdownRef = el;
|
|
2131
|
-
(0,
|
|
2547
|
+
(0, import_motion4.animate)(el, {
|
|
2132
2548
|
opacity: [0, 1],
|
|
2133
2549
|
y: [4, 0],
|
|
2134
2550
|
scale: [0.97, 1]
|
|
@@ -2137,27 +2553,43 @@ function PresetManager(props) {
|
|
|
2137
2553
|
visualDuration: 0.15,
|
|
2138
2554
|
bounce: 0
|
|
2139
2555
|
});
|
|
2140
|
-
}, _el$
|
|
2141
|
-
_el$
|
|
2142
|
-
(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, {
|
|
2143
2559
|
get each() {
|
|
2144
2560
|
return props.presets;
|
|
2145
2561
|
},
|
|
2146
2562
|
children: (preset) => (() => {
|
|
2147
|
-
var _el$
|
|
2148
|
-
_el$
|
|
2149
|
-
(0,
|
|
2150
|
-
_el$
|
|
2151
|
-
(0,
|
|
2152
|
-
|
|
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;
|
|
2153
2585
|
})()
|
|
2154
2586
|
}), null);
|
|
2155
|
-
(0,
|
|
2587
|
+
(0, import_web69.effect)((_p$) => {
|
|
2156
2588
|
var _v$ = `${pos().top}px`, _v$2 = `${pos().left}px`, _v$3 = `${pos().width}px`, _v$4 = String(!props.activePresetId);
|
|
2157
|
-
_v$ !== _p$.e && (0,
|
|
2158
|
-
_v$2 !== _p$.t && (0,
|
|
2159
|
-
_v$3 !== _p$.a && (0,
|
|
2160
|
-
_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);
|
|
2161
2593
|
return _p$;
|
|
2162
2594
|
}, {
|
|
2163
2595
|
e: void 0,
|
|
@@ -2165,18 +2597,18 @@ function PresetManager(props) {
|
|
|
2165
2597
|
a: void 0,
|
|
2166
2598
|
o: void 0
|
|
2167
2599
|
});
|
|
2168
|
-
return _el$
|
|
2600
|
+
return _el$6;
|
|
2169
2601
|
}
|
|
2170
2602
|
});
|
|
2171
2603
|
}
|
|
2172
2604
|
});
|
|
2173
2605
|
}
|
|
2174
2606
|
}), null);
|
|
2175
|
-
(0,
|
|
2607
|
+
(0, import_web69.effect)((_p$) => {
|
|
2176
2608
|
var _v$5 = String(isOpen()), _v$6 = String(!!activePreset()), _v$7 = String(!hasPresets());
|
|
2177
|
-
_v$5 !== _p$.e && (0,
|
|
2178
|
-
_v$6 !== _p$.t && (0,
|
|
2179
|
-
_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);
|
|
2180
2612
|
return _p$;
|
|
2181
2613
|
}, {
|
|
2182
2614
|
e: void 0,
|
|
@@ -2186,19 +2618,21 @@ function PresetManager(props) {
|
|
|
2186
2618
|
return _el$;
|
|
2187
2619
|
})();
|
|
2188
2620
|
}
|
|
2189
|
-
(0,
|
|
2621
|
+
(0, import_web67.delegateEvents)(["click"]);
|
|
2190
2622
|
|
|
2191
2623
|
// src/solid/components/Panel.tsx
|
|
2192
|
-
var _tmpl$
|
|
2193
|
-
var _tmpl$
|
|
2194
|
-
var _tmpl$
|
|
2195
|
-
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>`);
|
|
2196
2628
|
function Panel(props) {
|
|
2197
|
-
const [copied, setCopied] = (0,
|
|
2198
|
-
const [isPanelOpen, setIsPanelOpen] = (0,
|
|
2199
|
-
const
|
|
2200
|
-
const
|
|
2201
|
-
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));
|
|
2202
2636
|
let addButtonRef;
|
|
2203
2637
|
let copyButtonRef;
|
|
2204
2638
|
let copyClipboardIconRef;
|
|
@@ -2213,7 +2647,7 @@ function Panel(props) {
|
|
|
2213
2647
|
visualDuration: 0.15,
|
|
2214
2648
|
bounce: 0.3
|
|
2215
2649
|
};
|
|
2216
|
-
(0,
|
|
2650
|
+
(0, import_solid_js12.onMount)(() => {
|
|
2217
2651
|
const unsub = DialStore.subscribe(props.panel.id, () => {
|
|
2218
2652
|
setValues(DialStore.getValues(props.panel.id));
|
|
2219
2653
|
setPresets(DialStore.getPresets(props.panel.id));
|
|
@@ -2230,7 +2664,7 @@ function Panel(props) {
|
|
|
2230
2664
|
copyCheckIconRef.style.filter = "blur(4px)";
|
|
2231
2665
|
didInitCopyIcons = true;
|
|
2232
2666
|
}
|
|
2233
|
-
(0,
|
|
2667
|
+
(0, import_solid_js12.onCleanup)(unsub);
|
|
2234
2668
|
});
|
|
2235
2669
|
const handleAddPreset = () => {
|
|
2236
2670
|
const nextNum = presets().length + 2;
|
|
@@ -2249,7 +2683,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2249
2683
|
setCopied(true);
|
|
2250
2684
|
setTimeout(() => setCopied(false), 1500);
|
|
2251
2685
|
};
|
|
2252
|
-
(0,
|
|
2686
|
+
(0, import_solid_js12.createEffect)(() => {
|
|
2253
2687
|
const isCopied = copied();
|
|
2254
2688
|
if (!copyClipboardIconRef || !copyCheckIconRef) return;
|
|
2255
2689
|
copyClipboardAnim?.stop();
|
|
@@ -2260,18 +2694,18 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2260
2694
|
visualDuration: 0.3,
|
|
2261
2695
|
bounce: 0.2
|
|
2262
2696
|
};
|
|
2263
|
-
copyClipboardAnim = (0,
|
|
2697
|
+
copyClipboardAnim = (0, import_motion5.animate)(copyClipboardIconRef, {
|
|
2264
2698
|
opacity: isCopied ? 0 : 1,
|
|
2265
2699
|
scale: isCopied ? 0.5 : 1,
|
|
2266
2700
|
filter: isCopied ? "blur(4px)" : "blur(0px)"
|
|
2267
2701
|
}, transition);
|
|
2268
|
-
copyCheckAnim = (0,
|
|
2702
|
+
copyCheckAnim = (0, import_motion5.animate)(copyCheckIconRef, {
|
|
2269
2703
|
opacity: isCopied ? 1 : 0,
|
|
2270
2704
|
scale: isCopied ? 1 : 0.5,
|
|
2271
2705
|
filter: isCopied ? "blur(0px)" : "blur(4px)"
|
|
2272
2706
|
}, transition);
|
|
2273
2707
|
});
|
|
2274
|
-
(0,
|
|
2708
|
+
(0, import_solid_js12.onCleanup)(() => {
|
|
2275
2709
|
addTapAnim?.stop();
|
|
2276
2710
|
copyTapAnim?.stop();
|
|
2277
2711
|
copyClipboardAnim?.stop();
|
|
@@ -2280,28 +2714,28 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2280
2714
|
const handleAddTapStart = () => {
|
|
2281
2715
|
if (!addButtonRef) return;
|
|
2282
2716
|
addTapAnim?.stop();
|
|
2283
|
-
addTapAnim = (0,
|
|
2717
|
+
addTapAnim = (0, import_motion5.animate)(addButtonRef, {
|
|
2284
2718
|
scale: 0.9
|
|
2285
2719
|
}, tapTransition);
|
|
2286
2720
|
};
|
|
2287
2721
|
const handleAddTapEnd = () => {
|
|
2288
2722
|
if (!addButtonRef) return;
|
|
2289
2723
|
addTapAnim?.stop();
|
|
2290
|
-
addTapAnim = (0,
|
|
2724
|
+
addTapAnim = (0, import_motion5.animate)(addButtonRef, {
|
|
2291
2725
|
scale: 1
|
|
2292
2726
|
}, tapTransition);
|
|
2293
2727
|
};
|
|
2294
2728
|
const handleCopyTapStart = () => {
|
|
2295
2729
|
if (!copyButtonRef) return;
|
|
2296
2730
|
copyTapAnim?.stop();
|
|
2297
|
-
copyTapAnim = (0,
|
|
2731
|
+
copyTapAnim = (0, import_motion5.animate)(copyButtonRef, {
|
|
2298
2732
|
scale: 0.95
|
|
2299
2733
|
}, tapTransition);
|
|
2300
2734
|
};
|
|
2301
2735
|
const handleCopyTapEnd = () => {
|
|
2302
2736
|
if (!copyButtonRef) return;
|
|
2303
2737
|
copyTapAnim?.stop();
|
|
2304
|
-
copyTapAnim = (0,
|
|
2738
|
+
copyTapAnim = (0, import_motion5.animate)(copyButtonRef, {
|
|
2305
2739
|
scale: 1
|
|
2306
2740
|
}, tapTransition);
|
|
2307
2741
|
};
|
|
@@ -2309,7 +2743,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2309
2743
|
const value = () => values()[control.path];
|
|
2310
2744
|
switch (control.type) {
|
|
2311
2745
|
case "slider":
|
|
2312
|
-
return (0,
|
|
2746
|
+
return (0, import_web82.createComponent)(Slider, {
|
|
2313
2747
|
get label() {
|
|
2314
2748
|
return control.label;
|
|
2315
2749
|
},
|
|
@@ -2325,20 +2759,32 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2325
2759
|
},
|
|
2326
2760
|
get step() {
|
|
2327
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;
|
|
2328
2768
|
}
|
|
2329
2769
|
});
|
|
2330
2770
|
case "toggle":
|
|
2331
|
-
return (0,
|
|
2771
|
+
return (0, import_web82.createComponent)(Toggle, {
|
|
2332
2772
|
get label() {
|
|
2333
2773
|
return control.label;
|
|
2334
2774
|
},
|
|
2335
2775
|
get checked() {
|
|
2336
2776
|
return value();
|
|
2337
2777
|
},
|
|
2338
|
-
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
|
+
}
|
|
2339
2785
|
});
|
|
2340
2786
|
case "spring":
|
|
2341
|
-
return (0,
|
|
2787
|
+
return (0, import_web82.createComponent)(SpringControl, {
|
|
2342
2788
|
get panelId() {
|
|
2343
2789
|
return props.panel.id;
|
|
2344
2790
|
},
|
|
@@ -2354,7 +2800,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2354
2800
|
onChange: (v) => DialStore.updateValue(props.panel.id, control.path, v)
|
|
2355
2801
|
});
|
|
2356
2802
|
case "folder":
|
|
2357
|
-
return (0,
|
|
2803
|
+
return (0, import_web82.createComponent)(Folder, {
|
|
2358
2804
|
get title() {
|
|
2359
2805
|
return control.label;
|
|
2360
2806
|
},
|
|
@@ -2362,16 +2808,16 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2362
2808
|
return control.defaultOpen ?? true;
|
|
2363
2809
|
},
|
|
2364
2810
|
get children() {
|
|
2365
|
-
return (0,
|
|
2811
|
+
return (0, import_web82.createComponent)(import_solid_js12.For, {
|
|
2366
2812
|
get each() {
|
|
2367
2813
|
return control.children ?? [];
|
|
2368
2814
|
},
|
|
2369
|
-
children: (child) => (0,
|
|
2815
|
+
children: (child) => (0, import_web83.memo)(() => renderControl(child))
|
|
2370
2816
|
});
|
|
2371
2817
|
}
|
|
2372
2818
|
});
|
|
2373
2819
|
case "text":
|
|
2374
|
-
return (0,
|
|
2820
|
+
return (0, import_web82.createComponent)(TextControl, {
|
|
2375
2821
|
get label() {
|
|
2376
2822
|
return control.label;
|
|
2377
2823
|
},
|
|
@@ -2384,7 +2830,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2384
2830
|
}
|
|
2385
2831
|
});
|
|
2386
2832
|
case "select":
|
|
2387
|
-
return (0,
|
|
2833
|
+
return (0, import_web82.createComponent)(SelectControl, {
|
|
2388
2834
|
get label() {
|
|
2389
2835
|
return control.label;
|
|
2390
2836
|
},
|
|
@@ -2397,7 +2843,7 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2397
2843
|
onChange: (v) => DialStore.updateValue(props.panel.id, control.path, v)
|
|
2398
2844
|
});
|
|
2399
2845
|
case "color":
|
|
2400
|
-
return (0,
|
|
2846
|
+
return (0, import_web82.createComponent)(ColorControl, {
|
|
2401
2847
|
get label() {
|
|
2402
2848
|
return control.label;
|
|
2403
2849
|
},
|
|
@@ -2411,29 +2857,44 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2411
2857
|
}
|
|
2412
2858
|
};
|
|
2413
2859
|
const renderControls = () => {
|
|
2414
|
-
return (0,
|
|
2860
|
+
return (0, import_web82.createComponent)(import_solid_js12.For, {
|
|
2415
2861
|
get each() {
|
|
2416
2862
|
return props.panel.controls;
|
|
2417
2863
|
},
|
|
2418
|
-
children: (control) => (0,
|
|
2419
|
-
var _el$ = _tmpl$
|
|
2864
|
+
children: (control) => (0, import_web83.memo)(() => (0, import_web83.memo)(() => control.type === "action")() ? (() => {
|
|
2865
|
+
var _el$ = _tmpl$19();
|
|
2420
2866
|
_el$.$$click = () => DialStore.triggerAction(props.panel.id, control.path);
|
|
2421
|
-
(0,
|
|
2867
|
+
(0, import_web81.insert)(_el$, () => control.label);
|
|
2422
2868
|
return _el$;
|
|
2423
2869
|
})() : renderControl(control))
|
|
2424
2870
|
});
|
|
2425
2871
|
};
|
|
2426
2872
|
const toolbar = [(() => {
|
|
2427
|
-
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;
|
|
2428
2874
|
_el$2.addEventListener("pointerleave", handleAddTapEnd);
|
|
2429
2875
|
_el$2.addEventListener("pointercancel", handleAddTapEnd);
|
|
2430
2876
|
_el$2.$$pointerup = handleAddTapEnd;
|
|
2431
2877
|
_el$2.$$pointerdown = handleAddTapStart;
|
|
2432
2878
|
_el$2.$$click = handleAddPreset;
|
|
2433
2879
|
var _ref$ = addButtonRef;
|
|
2434
|
-
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
|
+
});
|
|
2435
2896
|
return _el$2;
|
|
2436
|
-
})(), (0,
|
|
2897
|
+
})(), (0, import_web82.createComponent)(PresetManager, {
|
|
2437
2898
|
get panelId() {
|
|
2438
2899
|
return props.panel.id;
|
|
2439
2900
|
},
|
|
@@ -2445,23 +2906,35 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2445
2906
|
},
|
|
2446
2907
|
onAdd: handleAddPreset
|
|
2447
2908
|
}), (() => {
|
|
2448
|
-
var _el$
|
|
2449
|
-
_el$
|
|
2450
|
-
_el$
|
|
2451
|
-
_el$
|
|
2452
|
-
_el$
|
|
2453
|
-
_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;
|
|
2454
2915
|
var _ref$2 = copyButtonRef;
|
|
2455
|
-
typeof _ref$2 === "function" ? (0,
|
|
2916
|
+
typeof _ref$2 === "function" ? (0, import_web80.use)(_ref$2, _el$9) : copyButtonRef = _el$9;
|
|
2456
2917
|
var _ref$3 = copyClipboardIconRef;
|
|
2457
|
-
typeof _ref$3 === "function" ? (0,
|
|
2918
|
+
typeof _ref$3 === "function" ? (0, import_web80.use)(_ref$3, _el$1) : copyClipboardIconRef = _el$1;
|
|
2458
2919
|
var _ref$4 = copyCheckIconRef;
|
|
2459
|
-
typeof _ref$4 === "function" ? (0,
|
|
2460
|
-
|
|
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;
|
|
2461
2934
|
})()];
|
|
2462
2935
|
return (() => {
|
|
2463
|
-
var _el$
|
|
2464
|
-
(0,
|
|
2936
|
+
var _el$17 = _tmpl$43();
|
|
2937
|
+
(0, import_web81.insert)(_el$17, (0, import_web82.createComponent)(Folder, {
|
|
2465
2938
|
get title() {
|
|
2466
2939
|
return props.panel.name;
|
|
2467
2940
|
},
|
|
@@ -2469,54 +2942,91 @@ Apply these values as the new defaults in the createDialKit call.`;
|
|
|
2469
2942
|
return props.defaultOpen ?? true;
|
|
2470
2943
|
},
|
|
2471
2944
|
isRoot: true,
|
|
2945
|
+
get inline() {
|
|
2946
|
+
return props.inline ?? false;
|
|
2947
|
+
},
|
|
2472
2948
|
onOpenChange: setIsPanelOpen,
|
|
2473
2949
|
toolbar,
|
|
2474
2950
|
get children() {
|
|
2475
2951
|
return renderControls();
|
|
2476
2952
|
}
|
|
2477
2953
|
}));
|
|
2478
|
-
return _el$
|
|
2954
|
+
return _el$17;
|
|
2479
2955
|
})();
|
|
2480
2956
|
}
|
|
2481
|
-
(0,
|
|
2957
|
+
(0, import_web77.delegateEvents)(["click", "pointerdown", "pointerup"]);
|
|
2482
2958
|
|
|
2483
2959
|
// src/solid/components/DialRoot.tsx
|
|
2484
|
-
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;
|
|
2485
2963
|
function DialRoot(props) {
|
|
2486
|
-
|
|
2487
|
-
const [
|
|
2488
|
-
(0,
|
|
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);
|
|
2967
|
+
const inline = () => (props.mode ?? "popover") === "inline";
|
|
2968
|
+
(0, import_solid_js13.onMount)(() => {
|
|
2489
2969
|
setMounted(true);
|
|
2490
2970
|
setPanels(DialStore.getPanels());
|
|
2491
2971
|
const unsub = DialStore.subscribeGlobal(() => {
|
|
2492
2972
|
setPanels(DialStore.getPanels());
|
|
2493
2973
|
});
|
|
2494
|
-
(0,
|
|
2974
|
+
(0, import_solid_js13.onCleanup)(unsub);
|
|
2975
|
+
});
|
|
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();
|
|
2982
|
+
},
|
|
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
|
+
}
|
|
2495
3008
|
});
|
|
2496
|
-
return (0,
|
|
3009
|
+
return (0, import_web89.createComponent)(import_solid_js13.Show, {
|
|
2497
3010
|
get when() {
|
|
2498
|
-
return (0,
|
|
3011
|
+
return (0, import_web85.memo)(() => !!(mounted() && typeof window !== "undefined"))() && panels().length > 0;
|
|
2499
3012
|
},
|
|
2500
3013
|
get children() {
|
|
2501
|
-
return (0,
|
|
2502
|
-
get
|
|
2503
|
-
return
|
|
3014
|
+
return (0, import_web89.createComponent)(import_solid_js13.Show, {
|
|
3015
|
+
get when() {
|
|
3016
|
+
return !inline();
|
|
3017
|
+
},
|
|
3018
|
+
get fallback() {
|
|
3019
|
+
return content();
|
|
2504
3020
|
},
|
|
2505
3021
|
get children() {
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
return panels();
|
|
3022
|
+
return (0, import_web89.createComponent)(import_web90.Portal, {
|
|
3023
|
+
get mount() {
|
|
3024
|
+
return document.body;
|
|
2510
3025
|
},
|
|
2511
|
-
children
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
}
|
|
2516
|
-
})
|
|
2517
|
-
}));
|
|
2518
|
-
(0, import_web80.effect)(() => (0, import_web79.setAttribute)(_el$2, "data-position", props.position ?? "top-right"));
|
|
2519
|
-
return _el$;
|
|
3026
|
+
get children() {
|
|
3027
|
+
return content();
|
|
3028
|
+
}
|
|
3029
|
+
});
|
|
2520
3030
|
}
|
|
2521
3031
|
});
|
|
2522
3032
|
}
|
|
@@ -2524,32 +3034,32 @@ function DialRoot(props) {
|
|
|
2524
3034
|
}
|
|
2525
3035
|
|
|
2526
3036
|
// src/solid/components/ButtonGroup.tsx
|
|
2527
|
-
var
|
|
2528
|
-
var
|
|
2529
|
-
var
|
|
2530
|
-
var
|
|
2531
|
-
var
|
|
2532
|
-
var
|
|
2533
|
-
var _tmpl$
|
|
2534
|
-
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>`);
|
|
2535
3045
|
function ButtonGroup(props) {
|
|
2536
3046
|
return (() => {
|
|
2537
|
-
var _el$ = _tmpl$
|
|
2538
|
-
(0,
|
|
3047
|
+
var _el$ = _tmpl$21();
|
|
3048
|
+
(0, import_web94.insert)(_el$, (0, import_web95.createComponent)(import_solid_js14.For, {
|
|
2539
3049
|
get each() {
|
|
2540
3050
|
return props.buttons;
|
|
2541
3051
|
},
|
|
2542
3052
|
children: (button) => (() => {
|
|
2543
|
-
var _el$2 = _tmpl$
|
|
2544
|
-
(0,
|
|
2545
|
-
(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);
|
|
2546
3056
|
return _el$2;
|
|
2547
3057
|
})()
|
|
2548
3058
|
}));
|
|
2549
3059
|
return _el$;
|
|
2550
3060
|
})();
|
|
2551
3061
|
}
|
|
2552
|
-
(0,
|
|
3062
|
+
(0, import_web92.delegateEvents)(["click"]);
|
|
2553
3063
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2554
3064
|
0 && (module.exports = {
|
|
2555
3065
|
ButtonGroup,
|