dialkit 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +174 -2
- package/dist/icons.d.ts +19 -0
- package/dist/icons.js +39 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +876 -337
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -6
- package/dist/index.d.ts +41 -6
- package/dist/index.js +878 -341
- package/dist/index.js.map +1 -1
- package/dist/shortcut-utils.d.ts +39 -0
- package/dist/shortcut-utils.js +100 -0
- package/dist/shortcut-utils.js.map +1 -0
- package/dist/solid/index.cjs +1011 -544
- package/dist/solid/index.cjs.map +1 -1
- package/dist/solid/index.d.cts +33 -3
- package/dist/solid/index.d.ts +33 -3
- package/dist/solid/index.js +864 -398
- package/dist/solid/index.js.map +1 -1
- package/dist/store/index.cjs +52 -12
- package/dist/store/index.cjs.map +1 -1
- package/dist/store/index.d.cts +25 -3
- package/dist/store/index.d.ts +25 -3
- package/dist/store/index.js +52 -12
- package/dist/store/index.js.map +1 -1
- package/dist/styles.css +256 -25
- package/dist/svelte/components/ControlRenderer.svelte +12 -0
- package/dist/svelte/components/ControlRenderer.svelte.d.ts.map +1 -1
- package/dist/svelte/components/DialRoot.svelte +22 -8
- package/dist/svelte/components/DialRoot.svelte.d.ts +3 -0
- package/dist/svelte/components/DialRoot.svelte.d.ts.map +1 -1
- package/dist/svelte/components/Folder.svelte +17 -8
- package/dist/svelte/components/Folder.svelte.d.ts.map +1 -1
- package/dist/svelte/components/Panel.svelte +14 -9
- package/dist/svelte/components/Panel.svelte.d.ts.map +1 -1
- package/dist/svelte/components/PresetManager.svelte +7 -6
- package/dist/svelte/components/PresetManager.svelte.d.ts.map +1 -1
- package/dist/svelte/components/SegmentedControl.svelte +30 -74
- package/dist/svelte/components/SegmentedControl.svelte.d.ts.map +1 -1
- package/dist/svelte/components/SelectControl.svelte +2 -1
- package/dist/svelte/components/SelectControl.svelte.d.ts.map +1 -1
- package/dist/svelte/components/ShortcutListener.svelte +265 -0
- package/dist/svelte/components/ShortcutListener.svelte.d.ts +13 -0
- package/dist/svelte/components/ShortcutListener.svelte.d.ts.map +1 -0
- package/dist/svelte/components/ShortcutsMenu.svelte +128 -0
- package/dist/svelte/components/ShortcutsMenu.svelte.d.ts +7 -0
- package/dist/svelte/components/ShortcutsMenu.svelte.d.ts.map +1 -0
- package/dist/svelte/components/Slider.svelte +16 -29
- package/dist/svelte/components/Slider.svelte.d.ts +3 -0
- package/dist/svelte/components/Slider.svelte.d.ts.map +1 -1
- package/dist/svelte/components/SpringControl.svelte +17 -15
- package/dist/svelte/components/SpringControl.svelte.d.ts.map +1 -1
- package/dist/svelte/components/Toggle.svelte +13 -2
- package/dist/svelte/components/Toggle.svelte.d.ts +3 -0
- package/dist/svelte/components/Toggle.svelte.d.ts.map +1 -1
- package/dist/svelte/components/TransitionControl.svelte +28 -25
- package/dist/svelte/components/TransitionControl.svelte.d.ts.map +1 -1
- package/dist/svelte/createDialKit.svelte.d.ts +2 -1
- package/dist/svelte/createDialKit.svelte.d.ts.map +1 -1
- package/dist/svelte/createDialKit.svelte.js +1 -1
- package/dist/svelte/index.d.ts +6 -2
- package/dist/svelte/index.d.ts.map +1 -1
- package/dist/svelte/index.js +4 -0
- package/dist/svelte/theme-css.d.ts +1 -1
- package/dist/svelte/theme-css.d.ts.map +1 -1
- package/dist/svelte/theme-css.js +257 -26
- package/dist/vue/index.cjs +3056 -0
- package/dist/vue/index.cjs.map +1 -0
- package/dist/vue/index.d.cts +675 -0
- package/dist/vue/index.d.ts +675 -0
- package/dist/vue/index.js +3014 -0
- package/dist/vue/index.js.map +1 -0
- package/package.json +24 -4
package/README.md
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
# dialkit
|
|
1
|
+
# dialkit v1.2.0
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<img src="https://joshpuckett.me/images/dialkit.png" width="100%" />
|
|
4
|
+
|
|
5
|
+
Real-time parameter tweaking for React, Solid, Svelte, and Vue, created by Josh Puckett.
|
|
6
|
+
|
|
7
|
+
To learn more about how I use DialKit, and approach design in general, feel free to check out [Interface Craft](http://interfacecraft.dev/).
|
|
8
|
+
|
|
9
|
+
## Contributing
|
|
10
|
+
|
|
11
|
+
- **Open an issue first.** All pull requests should reference an existing issue. PRs without a corresponding issue will be closed.
|
|
12
|
+
- **Keep PRs small and focused.** Each pull request should address a single change — one bug fix, one feature, or one refactor. Avoid bundling unrelated changes together.
|
|
13
|
+
- **No unnecessary dependencies.** If your change can be accomplished without adding a new dependency, it should be. Any new dependency needs justification in the PR description.
|
|
4
14
|
|
|
5
15
|
## Quick Start
|
|
6
16
|
|
|
@@ -63,6 +73,7 @@ const params = useDialKit(name, config, options?)
|
|
|
63
73
|
| `name` | `string` | Panel title displayed in the UI |
|
|
64
74
|
| `config` | `DialConfig` | Parameter definitions (see Control Types below) |
|
|
65
75
|
| `options.onAction` | `(path: string) => void` | Callback when action buttons are clicked |
|
|
76
|
+
| `options.shortcuts` | `Record<string, ShortcutConfig>` | Keyboard shortcuts for controls (see [Keyboard Shortcuts](#keyboard-shortcuts)) |
|
|
66
77
|
|
|
67
78
|
Returns a fully typed object matching your config shape with live values. Updating a control in the UI immediately updates the returned values.
|
|
68
79
|
|
|
@@ -257,9 +268,20 @@ const values = useDialKit('Controls', {
|
|
|
257
268
|
| `position` | `'top-right' \| 'top-left' \| 'bottom-right' \| 'bottom-left'` | `'top-right'` |
|
|
258
269
|
| `defaultOpen` | `boolean` | `true` |
|
|
259
270
|
| `mode` | `'popover' \| 'inline'` | `'popover'` |
|
|
271
|
+
| `productionEnabled` | `boolean` | `false` in production, `true` otherwise |
|
|
260
272
|
|
|
261
273
|
Mount once at your app root. In the default `popover` mode, the panel renders via a portal on `document.body`. It collapses to a small icon button and expands to 280px wide on click.
|
|
262
274
|
|
|
275
|
+
DialKit is automatically hidden in production builds. To enable it in production, pass `productionEnabled`:
|
|
276
|
+
|
|
277
|
+
```tsx
|
|
278
|
+
<DialRoot productionEnabled />
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Draggable panel
|
|
282
|
+
|
|
283
|
+
In popover mode, the collapsed panel bubble can be dragged to any position on the screen. When you click to open the panel, it snaps to the nearest side — top-left if the bubble is on the left half of the screen, top-right if on the right half. When the panel is closed again, it returns to where you last dragged it.
|
|
284
|
+
|
|
263
285
|
### Inline mode
|
|
264
286
|
|
|
265
287
|
Use `mode="inline"` to render DialKit directly in your layout instead of as a floating popover. The panel fills its container and scrolls internally, which is useful for embedding in a sidebar or resizable panel. Inline mode works across all frameworks:
|
|
@@ -298,6 +320,88 @@ When the panel is open, the toolbar provides:
|
|
|
298
320
|
|
|
299
321
|
---
|
|
300
322
|
|
|
323
|
+
## Keyboard Shortcuts
|
|
324
|
+
|
|
325
|
+
Assign keyboard shortcuts to controls so you can adjust values without touching the panel. Pass a `shortcuts` map in the options object:
|
|
326
|
+
|
|
327
|
+
```tsx
|
|
328
|
+
const p = useDialKit('Card', {
|
|
329
|
+
blur: [24, 0, 100],
|
|
330
|
+
scale: 1.2,
|
|
331
|
+
opacity: [1, 0, 1],
|
|
332
|
+
borderRadius: [16, 0, 64],
|
|
333
|
+
darkMode: true,
|
|
334
|
+
shadow: {
|
|
335
|
+
blur: [10, 0, 50],
|
|
336
|
+
},
|
|
337
|
+
}, {
|
|
338
|
+
shortcuts: {
|
|
339
|
+
blur: { key: 'b', mode: 'fine' }, // B+Scroll
|
|
340
|
+
scale: { key: 's', interaction: 'drag', mode: 'coarse' }, // S+Drag
|
|
341
|
+
opacity: { key: 'o', interaction: 'move' }, // O+Move
|
|
342
|
+
borderRadius: { interaction: 'scroll-only' }, // Scroll (no key)
|
|
343
|
+
darkMode: { key: 'm' }, // press M
|
|
344
|
+
'shadow.blur': { key: 'd', mode: 'fine' }, // D+Scroll
|
|
345
|
+
},
|
|
346
|
+
});
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### ShortcutConfig
|
|
350
|
+
|
|
351
|
+
```tsx
|
|
352
|
+
type ShortcutConfig = {
|
|
353
|
+
key?: string; // trigger key (e.g. 'b', 's') — optional for scroll-only
|
|
354
|
+
modifier?: 'alt' | 'shift' | 'meta'; // optional modifier key
|
|
355
|
+
mode?: 'fine' | 'normal' | 'coarse'; // precision level (default: 'normal')
|
|
356
|
+
interaction?: 'scroll' | 'drag' | 'move' | 'scroll-only'; // input method (default: 'scroll')
|
|
357
|
+
};
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### Interaction types
|
|
361
|
+
|
|
362
|
+
| Interaction | Description | Example pill |
|
|
363
|
+
|-------------|-------------|-------------|
|
|
364
|
+
| `scroll` | Hold key + scroll wheel to adjust (default) | `B+Scroll` |
|
|
365
|
+
| `drag` | Hold key + click and drag horizontally | `S+Drag` |
|
|
366
|
+
| `move` | Hold key + move mouse (no click needed) | `O+Move` |
|
|
367
|
+
| `scroll-only` | Just scroll anywhere, no key needed | `Scroll` |
|
|
368
|
+
|
|
369
|
+
### Supported controls
|
|
370
|
+
|
|
371
|
+
| Control | Interactions | Description |
|
|
372
|
+
|---------|-------------|-------------|
|
|
373
|
+
| **Slider** | `scroll`, `drag`, `move`, `scroll-only` | Adjust value with chosen input method |
|
|
374
|
+
| **Toggle** | key press | Press the assigned key to flip on/off |
|
|
375
|
+
|
|
376
|
+
### Precision modes
|
|
377
|
+
|
|
378
|
+
For sliders, the `mode` controls how much each scroll tick or drag pixel changes the value:
|
|
379
|
+
|
|
380
|
+
| Mode | Step multiplier | Use case |
|
|
381
|
+
|------|----------------|----------|
|
|
382
|
+
| `fine` | step ÷ 10 | Precision tweaking |
|
|
383
|
+
| `normal` | step × 1 | Default behavior |
|
|
384
|
+
| `coarse` | step × 10 | Big sweeps |
|
|
385
|
+
|
|
386
|
+
### Nested paths
|
|
387
|
+
|
|
388
|
+
For controls inside folders, use dot notation:
|
|
389
|
+
|
|
390
|
+
```tsx
|
|
391
|
+
shortcuts: {
|
|
392
|
+
'shadow.blur': { key: 'd' },
|
|
393
|
+
'shadow.opacity': { key: 'a', interaction: 'drag', mode: 'fine' },
|
|
394
|
+
}
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### UI indicators
|
|
398
|
+
|
|
399
|
+
Each control with a shortcut displays a pill badge next to its label showing the key and interaction (e.g. `B+Scroll`, `S+Drag`, `O+Move`, `Scroll`). The pill highlights when the shortcut key is actively held.
|
|
400
|
+
|
|
401
|
+
Shortcuts are automatically disabled when a text input is focused.
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
301
405
|
## Full Example
|
|
302
406
|
|
|
303
407
|
```tsx
|
|
@@ -335,6 +439,11 @@ function PhotoStack() {
|
|
|
335
439
|
next: { type: 'action' },
|
|
336
440
|
previous: { type: 'action' },
|
|
337
441
|
}, {
|
|
442
|
+
shortcuts: {
|
|
443
|
+
'backPhoto.offsetX': { key: 'x', interaction: 'drag', mode: 'coarse' },
|
|
444
|
+
'backPhoto.scale': { key: 's', interaction: 'move', mode: 'fine' },
|
|
445
|
+
darkMode: { key: 'm' },
|
|
446
|
+
},
|
|
338
447
|
onAction: (action) => {
|
|
339
448
|
if (action === 'next') goNext();
|
|
340
449
|
if (action === 'previous') goPrevious();
|
|
@@ -449,6 +558,67 @@ npm install dialkit
|
|
|
449
558
|
|
|
450
559
|
---
|
|
451
560
|
|
|
561
|
+
## Vue
|
|
562
|
+
|
|
563
|
+
DialKit works with Vue 3 (≥3.3.0). Import from `dialkit/vue`.
|
|
564
|
+
|
|
565
|
+
```bash
|
|
566
|
+
npm install dialkit motion-v vue
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
```ts
|
|
570
|
+
// main.ts
|
|
571
|
+
import { createApp } from 'vue';
|
|
572
|
+
import { DialRoot } from 'dialkit/vue';
|
|
573
|
+
import 'dialkit/styles.css';
|
|
574
|
+
import App from './App.vue';
|
|
575
|
+
|
|
576
|
+
const app = createApp(App);
|
|
577
|
+
app.mount('#app');
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
```vue
|
|
581
|
+
<!-- App.vue -->
|
|
582
|
+
<script setup>
|
|
583
|
+
import { DialRoot } from 'dialkit/vue';
|
|
584
|
+
import Card from './Card.vue';
|
|
585
|
+
</script>
|
|
586
|
+
|
|
587
|
+
<template>
|
|
588
|
+
<Card />
|
|
589
|
+
<DialRoot />
|
|
590
|
+
</template>
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
```vue
|
|
594
|
+
<!-- Card.vue -->
|
|
595
|
+
<script setup>
|
|
596
|
+
import { useDialKit } from 'dialkit/vue';
|
|
597
|
+
|
|
598
|
+
const params = useDialKit('Card', {
|
|
599
|
+
blur: [24, 0, 100],
|
|
600
|
+
scale: 1.2,
|
|
601
|
+
color: '#ff5500',
|
|
602
|
+
visible: true,
|
|
603
|
+
});
|
|
604
|
+
</script>
|
|
605
|
+
|
|
606
|
+
<template>
|
|
607
|
+
<div :style="{
|
|
608
|
+
filter: `blur(${params.blur}px)`,
|
|
609
|
+
transform: `scale(${params.scale})`,
|
|
610
|
+
color: params.color,
|
|
611
|
+
opacity: params.visible ? 1 : 0,
|
|
612
|
+
}">
|
|
613
|
+
...
|
|
614
|
+
</div>
|
|
615
|
+
</template>
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
`useDialKit` returns a reactive object. All control types, presets, folders, keyboard shortcuts, and transitions work identically to the other frameworks.
|
|
619
|
+
|
|
620
|
+
---
|
|
621
|
+
|
|
452
622
|
## Types
|
|
453
623
|
|
|
454
624
|
All config and value types are exported:
|
|
@@ -460,6 +630,8 @@ import type {
|
|
|
460
630
|
SelectConfig,
|
|
461
631
|
ColorConfig,
|
|
462
632
|
TextConfig,
|
|
633
|
+
ShortcutConfig,
|
|
634
|
+
ShortcutMode,
|
|
463
635
|
DialConfig,
|
|
464
636
|
DialValue,
|
|
465
637
|
ResolvedValues,
|
package/dist/icons.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare const ICON_CHEVRON = "M6 9.5L12 15.5L18 9.5";
|
|
2
|
+
declare const ICON_CHECK = "M5 12.75L10 19L19 5";
|
|
3
|
+
declare const ICON_CLIPBOARD: {
|
|
4
|
+
board: string;
|
|
5
|
+
sparkle: string;
|
|
6
|
+
body: string;
|
|
7
|
+
};
|
|
8
|
+
declare const ICON_ADD_PRESET: string[];
|
|
9
|
+
declare const ICON_TRASH: string[];
|
|
10
|
+
declare const ICON_PANEL: {
|
|
11
|
+
path: string;
|
|
12
|
+
circles: {
|
|
13
|
+
cx: string;
|
|
14
|
+
cy: string;
|
|
15
|
+
r: string;
|
|
16
|
+
}[];
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { ICON_ADD_PRESET, ICON_CHECK, ICON_CHEVRON, ICON_CLIPBOARD, ICON_PANEL, ICON_TRASH };
|
package/dist/icons.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// src/icons.ts
|
|
2
|
+
var ICON_CHEVRON = "M6 9.5L12 15.5L18 9.5";
|
|
3
|
+
var ICON_CHECK = "M5 12.75L10 19L19 5";
|
|
4
|
+
var ICON_CLIPBOARD = {
|
|
5
|
+
board: "M8 6C8 4.34315 9.34315 3 11 3H13C14.6569 3 16 4.34315 16 6V7H8V6Z",
|
|
6
|
+
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",
|
|
7
|
+
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"
|
|
8
|
+
};
|
|
9
|
+
var ICON_ADD_PRESET = [
|
|
10
|
+
"M4 6H20",
|
|
11
|
+
"M4 12H10",
|
|
12
|
+
"M15 15L21 15",
|
|
13
|
+
"M18 12V18",
|
|
14
|
+
"M4 18H10"
|
|
15
|
+
];
|
|
16
|
+
var ICON_TRASH = [
|
|
17
|
+
"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",
|
|
18
|
+
"M10 11V16",
|
|
19
|
+
"M14 11V16",
|
|
20
|
+
"M3.5 6H20.5",
|
|
21
|
+
"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"
|
|
22
|
+
];
|
|
23
|
+
var ICON_PANEL = {
|
|
24
|
+
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",
|
|
25
|
+
circles: [
|
|
26
|
+
{ cx: "6", cy: "8", r: "0.998596" },
|
|
27
|
+
{ cx: "10.4999", cy: "3.5", r: "0.998657" },
|
|
28
|
+
{ cx: "9.75015", cy: "12.5", r: "0.997986" }
|
|
29
|
+
]
|
|
30
|
+
};
|
|
31
|
+
export {
|
|
32
|
+
ICON_ADD_PRESET,
|
|
33
|
+
ICON_CHECK,
|
|
34
|
+
ICON_CHEVRON,
|
|
35
|
+
ICON_CLIPBOARD,
|
|
36
|
+
ICON_PANEL,
|
|
37
|
+
ICON_TRASH
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons.ts"],"sourcesContent":["// Shared SVG icon geometry — single source of truth across all framework adapters.\n\nexport const ICON_CHEVRON = 'M6 9.5L12 15.5L18 9.5';\n\nexport const ICON_CHECK = 'M5 12.75L10 19L19 5';\n\nexport const ICON_CLIPBOARD = {\n board: 'M8 6C8 4.34315 9.34315 3 11 3H13C14.6569 3 16 4.34315 16 6V7H8V6Z',\n 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',\n 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',\n};\n\nexport const ICON_ADD_PRESET = [\n 'M4 6H20',\n 'M4 12H10',\n 'M15 15L21 15',\n 'M18 12V18',\n 'M4 18H10',\n];\n\nexport const ICON_TRASH = [\n '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',\n 'M10 11V16',\n 'M14 11V16',\n 'M3.5 6H20.5',\n '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',\n];\n\nexport const ICON_PANEL = {\n 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',\n circles: [\n { cx: '6', cy: '8', r: '0.998596' },\n { cx: '10.4999', cy: '3.5', r: '0.998657' },\n { cx: '9.75015', cy: '12.5', r: '0.997986' },\n ],\n};\n"],"mappings":";AAEO,IAAM,eAAe;AAErB,IAAM,aAAa;AAEnB,IAAM,iBAAiB;AAAA,EAC5B,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AACR;AAEO,IAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,IAAM,aAAa;AAAA,EACxB,MAAM;AAAA,EACN,SAAS;AAAA,IACP,EAAE,IAAI,KAAK,IAAI,KAAK,GAAG,WAAW;AAAA,IAClC,EAAE,IAAI,WAAW,IAAI,OAAO,GAAG,WAAW;AAAA,IAC1C,EAAE,IAAI,WAAW,IAAI,QAAQ,GAAG,WAAW;AAAA,EAC7C;AACF;","names":[]}
|