dialkit 0.2.2 → 1.1.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 +135 -2
- package/dist/index.cjs +512 -176
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -8
- package/dist/index.d.ts +40 -8
- package/dist/index.js +484 -150
- package/dist/index.js.map +1 -1
- package/dist/solid/index.cjs +2612 -0
- package/dist/solid/index.cjs.map +1 -0
- package/dist/solid/index.d.cts +228 -0
- package/dist/solid/index.d.ts +228 -0
- package/dist/solid/index.js +2573 -0
- package/dist/solid/index.js.map +1 -0
- package/dist/store/index.cjs +450 -0
- package/dist/store/index.cjs.map +1 -0
- package/dist/store/index.d.cts +124 -0
- package/dist/store/index.d.ts +124 -0
- package/dist/store/index.js +425 -0
- package/dist/store/index.js.map +1 -0
- package/dist/styles.css +38 -1
- 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 +84 -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 +65 -0
- package/dist/svelte/components/DialRoot.svelte.d.ts +11 -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 +204 -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 +144 -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 +156 -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 +106 -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 +151 -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/Slider.svelte +345 -0
- package/dist/svelte/components/Slider.svelte.d.ts +13 -0
- package/dist/svelte/components/Slider.svelte.d.ts.map +1 -0
- package/dist/svelte/components/SpringControl.svelte +124 -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 +21 -0
- package/dist/svelte/components/Toggle.svelte.d.ts +9 -0
- package/dist/svelte/components/Toggle.svelte.d.ts.map +1 -0
- package/dist/svelte/components/TransitionControl.svelte +200 -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 +7 -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 +19 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +19 -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 +1097 -0
- package/package.json +56 -10
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dialkit
|
|
2
2
|
|
|
3
|
-
Real-time parameter tweaking for React
|
|
3
|
+
Real-time parameter tweaking for React, Solid, and Svelte.
|
|
4
4
|
|
|
5
5
|
## Quick Start
|
|
6
6
|
|
|
@@ -206,6 +206,7 @@ const p = useDialKit('Controls', {
|
|
|
206
206
|
```
|
|
207
207
|
|
|
208
208
|
Action buttons trigger callbacks without storing any value. The `label` defaults to the formatted key name (camelCase becomes Title Case). Multiple adjacent actions are grouped vertically.
|
|
209
|
+
Action buttons can be placed at the root or nested inside folders.
|
|
209
210
|
|
|
210
211
|
### Folder
|
|
211
212
|
|
|
@@ -233,6 +234,16 @@ shadow: {
|
|
|
233
234
|
}
|
|
234
235
|
```
|
|
235
236
|
|
|
237
|
+
DialKit also supports dynamic config updates. If your config shape, defaults, options, or labels change over time, the panel updates while preserving current values where paths still exist.
|
|
238
|
+
|
|
239
|
+
Dynamic configs work with both inline objects and memoized configs — no special consumer action needed:
|
|
240
|
+
|
|
241
|
+
```tsx
|
|
242
|
+
const values = useDialKit('Controls', {
|
|
243
|
+
style: { type: 'select', options: dynamicOptions },
|
|
244
|
+
});
|
|
245
|
+
```
|
|
246
|
+
|
|
236
247
|
---
|
|
237
248
|
|
|
238
249
|
## DialRoot
|
|
@@ -244,8 +255,37 @@ shadow: {
|
|
|
244
255
|
| Prop | Type | Default |
|
|
245
256
|
|------|------|---------|
|
|
246
257
|
| `position` | `'top-right' \| 'top-left' \| 'bottom-right' \| 'bottom-left'` | `'top-right'` |
|
|
258
|
+
| `defaultOpen` | `boolean` | `true` |
|
|
259
|
+
| `mode` | `'popover' \| 'inline'` | `'popover'` |
|
|
260
|
+
|
|
261
|
+
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
|
+
|
|
263
|
+
### Inline mode
|
|
264
|
+
|
|
265
|
+
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:
|
|
247
266
|
|
|
248
|
-
|
|
267
|
+
**React:**
|
|
268
|
+
```tsx
|
|
269
|
+
<aside style={{ width: 300, height: '100vh', overflow: 'hidden' }}>
|
|
270
|
+
<DialRoot mode="inline" />
|
|
271
|
+
</aside>
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Solid:**
|
|
275
|
+
```tsx
|
|
276
|
+
<aside style={{ width: '300px', height: '100vh', overflow: 'hidden' }}>
|
|
277
|
+
<DialRoot mode="inline" />
|
|
278
|
+
</aside>
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Svelte:**
|
|
282
|
+
```svelte
|
|
283
|
+
<aside style:width="300px" style:height="100vh" style:overflow="hidden">
|
|
284
|
+
<DialRoot mode="inline" />
|
|
285
|
+
</aside>
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
In inline mode, the `position` prop is ignored and the collapse-to-icon behavior is disabled.
|
|
249
289
|
|
|
250
290
|
---
|
|
251
291
|
|
|
@@ -316,6 +356,99 @@ function PhotoStack() {
|
|
|
316
356
|
|
|
317
357
|
---
|
|
318
358
|
|
|
359
|
+
## Solid
|
|
360
|
+
|
|
361
|
+
DialKit also works with Solid. Import from `dialkit/solid` instead of `dialkit` — the API mirrors the React version, with `createDialKit` replacing `useDialKit` and `DialRoot` as a Solid component.
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
npm install dialkit solid-js
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
```tsx
|
|
368
|
+
// App.tsx
|
|
369
|
+
import { DialRoot } from 'dialkit/solid';
|
|
370
|
+
import 'dialkit/styles.css';
|
|
371
|
+
|
|
372
|
+
export default function App() {
|
|
373
|
+
return (
|
|
374
|
+
<>
|
|
375
|
+
<MyComponent />
|
|
376
|
+
<DialRoot />
|
|
377
|
+
</>
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
```tsx
|
|
383
|
+
// component.tsx
|
|
384
|
+
import { createDialKit } from 'dialkit/solid';
|
|
385
|
+
|
|
386
|
+
function Card() {
|
|
387
|
+
const params = createDialKit('Card', {
|
|
388
|
+
blur: [24, 0, 100],
|
|
389
|
+
scale: 1.2,
|
|
390
|
+
color: '#ff5500',
|
|
391
|
+
visible: true,
|
|
392
|
+
});
|
|
393
|
+
|
|
394
|
+
return (
|
|
395
|
+
<div style={{
|
|
396
|
+
filter: `blur(${params().blur}px)`,
|
|
397
|
+
transform: `scale(${params().scale})`,
|
|
398
|
+
color: params().color,
|
|
399
|
+
opacity: params().visible ? 1 : 0,
|
|
400
|
+
}}>
|
|
401
|
+
...
|
|
402
|
+
</div>
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
`createDialKit` returns an accessor — call `params()` to read the current values. All control types, config shapes, and panel features (presets, copy, folders) work identically to the React version.
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## Svelte
|
|
412
|
+
|
|
413
|
+
DialKit works with Svelte 5 (≥5.8.0). Import from `dialkit/svelte` — no extra dependencies needed.
|
|
414
|
+
|
|
415
|
+
```bash
|
|
416
|
+
npm install dialkit
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
```svelte
|
|
420
|
+
<!-- +layout.svelte -->
|
|
421
|
+
<script>
|
|
422
|
+
import { DialRoot } from 'dialkit/svelte';
|
|
423
|
+
let { children } = $props();
|
|
424
|
+
</script>
|
|
425
|
+
|
|
426
|
+
{@render children()}
|
|
427
|
+
<DialRoot />
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
```svelte
|
|
431
|
+
<!-- Card.svelte -->
|
|
432
|
+
<script>
|
|
433
|
+
import { createDialKit } from 'dialkit/svelte';
|
|
434
|
+
|
|
435
|
+
const params = createDialKit('Card', {
|
|
436
|
+
blur: [24, 0, 100],
|
|
437
|
+
scale: 1.2,
|
|
438
|
+
color: '#ff5500',
|
|
439
|
+
visible: true
|
|
440
|
+
});
|
|
441
|
+
</script>
|
|
442
|
+
|
|
443
|
+
<div style:filter={`blur(${params.blur}px)`} style:color={params.color}>
|
|
444
|
+
...
|
|
445
|
+
</div>
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
`createDialKit` returns a reactive object — access values directly (e.g. `params.blur`). Styles are injected automatically by `DialRoot` (no CSS import needed). Cleanup is automatic when the component unmounts. All control types, presets, folders, and transitions match the React/Solid entries.
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
319
452
|
## Types
|
|
320
453
|
|
|
321
454
|
All config and value types are exported:
|