dialkit 1.0.0 → 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.
Files changed (85) hide show
  1. package/README.md +123 -2
  2. package/dist/index.cjs +42 -39
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +7 -5
  5. package/dist/index.d.ts +7 -5
  6. package/dist/index.js +42 -39
  7. package/dist/index.js.map +1 -1
  8. package/dist/solid/index.cjs +97 -54
  9. package/dist/solid/index.cjs.map +1 -1
  10. package/dist/solid/index.d.cts +4 -1
  11. package/dist/solid/index.d.ts +4 -1
  12. package/dist/solid/index.js +96 -53
  13. package/dist/solid/index.js.map +1 -1
  14. package/dist/store/index.cjs +450 -0
  15. package/dist/store/index.cjs.map +1 -0
  16. package/dist/store/index.d.cts +124 -0
  17. package/dist/store/index.d.ts +124 -0
  18. package/dist/store/index.js +425 -0
  19. package/dist/store/index.js.map +1 -0
  20. package/dist/styles.css +31 -0
  21. package/dist/svelte/Portal.svelte +30 -0
  22. package/dist/svelte/Portal.svelte.d.ts +9 -0
  23. package/dist/svelte/Portal.svelte.d.ts.map +1 -0
  24. package/dist/svelte/components/ButtonGroup.svelte +16 -0
  25. package/dist/svelte/components/ButtonGroup.svelte.d.ts +11 -0
  26. package/dist/svelte/components/ButtonGroup.svelte.d.ts.map +1 -0
  27. package/dist/svelte/components/ColorControl.svelte +81 -0
  28. package/dist/svelte/components/ColorControl.svelte.d.ts +9 -0
  29. package/dist/svelte/components/ColorControl.svelte.d.ts.map +1 -0
  30. package/dist/svelte/components/ControlRenderer.svelte +84 -0
  31. package/dist/svelte/components/ControlRenderer.svelte.d.ts +11 -0
  32. package/dist/svelte/components/ControlRenderer.svelte.d.ts.map +1 -0
  33. package/dist/svelte/components/DialRoot.svelte +65 -0
  34. package/dist/svelte/components/DialRoot.svelte.d.ts +11 -0
  35. package/dist/svelte/components/DialRoot.svelte.d.ts.map +1 -0
  36. package/dist/svelte/components/EasingVisualization.svelte +50 -0
  37. package/dist/svelte/components/EasingVisualization.svelte.d.ts +10 -0
  38. package/dist/svelte/components/EasingVisualization.svelte.d.ts.map +1 -0
  39. package/dist/svelte/components/Folder.svelte +204 -0
  40. package/dist/svelte/components/Folder.svelte.d.ts +14 -0
  41. package/dist/svelte/components/Folder.svelte.d.ts.map +1 -0
  42. package/dist/svelte/components/Panel.svelte +144 -0
  43. package/dist/svelte/components/Panel.svelte.d.ts +10 -0
  44. package/dist/svelte/components/Panel.svelte.d.ts.map +1 -0
  45. package/dist/svelte/components/PresetManager.svelte +156 -0
  46. package/dist/svelte/components/PresetManager.svelte.d.ts +10 -0
  47. package/dist/svelte/components/PresetManager.svelte.d.ts.map +1 -0
  48. package/dist/svelte/components/SegmentedControl.svelte +106 -0
  49. package/dist/svelte/components/SegmentedControl.svelte.d.ts +13 -0
  50. package/dist/svelte/components/SegmentedControl.svelte.d.ts.map +1 -0
  51. package/dist/svelte/components/SelectControl.svelte +151 -0
  52. package/dist/svelte/components/SelectControl.svelte.d.ts +14 -0
  53. package/dist/svelte/components/SelectControl.svelte.d.ts.map +1 -0
  54. package/dist/svelte/components/Slider.svelte +345 -0
  55. package/dist/svelte/components/Slider.svelte.d.ts +13 -0
  56. package/dist/svelte/components/Slider.svelte.d.ts.map +1 -0
  57. package/dist/svelte/components/SpringControl.svelte +124 -0
  58. package/dist/svelte/components/SpringControl.svelte.d.ts +12 -0
  59. package/dist/svelte/components/SpringControl.svelte.d.ts.map +1 -0
  60. package/dist/svelte/components/SpringVisualization.svelte +115 -0
  61. package/dist/svelte/components/SpringVisualization.svelte.d.ts +9 -0
  62. package/dist/svelte/components/SpringVisualization.svelte.d.ts.map +1 -0
  63. package/dist/svelte/components/TextControl.svelte +19 -0
  64. package/dist/svelte/components/TextControl.svelte.d.ts +10 -0
  65. package/dist/svelte/components/TextControl.svelte.d.ts.map +1 -0
  66. package/dist/svelte/components/Toggle.svelte +21 -0
  67. package/dist/svelte/components/Toggle.svelte.d.ts +9 -0
  68. package/dist/svelte/components/Toggle.svelte.d.ts.map +1 -0
  69. package/dist/svelte/components/TransitionControl.svelte +200 -0
  70. package/dist/svelte/components/TransitionControl.svelte.d.ts +12 -0
  71. package/dist/svelte/components/TransitionControl.svelte.d.ts.map +1 -0
  72. package/dist/svelte/components/transitions.d.ts +6 -0
  73. package/dist/svelte/components/transitions.d.ts.map +1 -0
  74. package/dist/svelte/components/transitions.js +14 -0
  75. package/dist/svelte/createDialKit.svelte.d.ts +7 -0
  76. package/dist/svelte/createDialKit.svelte.d.ts.map +1 -0
  77. package/dist/svelte/createDialKit.svelte.js +82 -0
  78. package/dist/svelte/index.d.ts +19 -0
  79. package/dist/svelte/index.d.ts.map +1 -0
  80. package/dist/svelte/index.js +19 -0
  81. package/dist/svelte/shims.d.ts +9 -0
  82. package/dist/svelte/theme-css.d.ts +2 -0
  83. package/dist/svelte/theme-css.d.ts.map +1 -0
  84. package/dist/svelte/theme-css.js +1097 -0
  85. package/package.json +29 -5
@@ -130,9 +130,11 @@ interface CreateDialOptions {
130
130
  declare function createDialKit<T extends DialConfig>(name: string, config: T, options?: CreateDialOptions): Accessor<ResolvedValues<T>>;
131
131
 
132
132
  type DialPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
133
+ type DialMode = 'popover' | 'inline';
133
134
  interface DialRootProps {
134
135
  position?: DialPosition;
135
136
  defaultOpen?: boolean;
137
+ mode?: DialMode;
136
138
  }
137
139
  declare function DialRoot(props: DialRootProps): solid_js.JSX.Element;
138
140
 
@@ -159,6 +161,7 @@ interface FolderProps {
159
161
  children: JSX.Element;
160
162
  defaultOpen?: boolean;
161
163
  isRoot?: boolean;
164
+ inline?: boolean;
162
165
  onOpenChange?: (isOpen: boolean) => void;
163
166
  toolbar?: JSX.Element;
164
167
  }
@@ -222,4 +225,4 @@ interface PresetManagerProps {
222
225
  }
223
226
  declare function PresetManager(props: PresetManagerProps): solid_js.JSX.Element;
224
227
 
225
- export { type ActionConfig, ButtonGroup, type ColorConfig, ColorControl, type ControlMeta, type CreateDialOptions, type DialConfig, type DialPosition, DialRoot, DialStore, type DialValue, Folder, type PanelConfig, type Preset, PresetManager, type ResolvedValues, type SelectConfig, SelectControl, Slider, type SpringConfig, SpringControl, SpringVisualization, type TextConfig, TextControl, Toggle, createDialKit };
228
+ export { type ActionConfig, ButtonGroup, type ColorConfig, ColorControl, type ControlMeta, type CreateDialOptions, type DialConfig, type DialMode, type DialPosition, DialRoot, DialStore, type DialValue, Folder, type PanelConfig, type Preset, PresetManager, type ResolvedValues, type SelectConfig, SelectControl, Slider, type SpringConfig, SpringControl, SpringVisualization, type TextConfig, TextControl, Toggle, createDialKit };
@@ -130,9 +130,11 @@ interface CreateDialOptions {
130
130
  declare function createDialKit<T extends DialConfig>(name: string, config: T, options?: CreateDialOptions): Accessor<ResolvedValues<T>>;
131
131
 
132
132
  type DialPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
133
+ type DialMode = 'popover' | 'inline';
133
134
  interface DialRootProps {
134
135
  position?: DialPosition;
135
136
  defaultOpen?: boolean;
137
+ mode?: DialMode;
136
138
  }
137
139
  declare function DialRoot(props: DialRootProps): solid_js.JSX.Element;
138
140
 
@@ -159,6 +161,7 @@ interface FolderProps {
159
161
  children: JSX.Element;
160
162
  defaultOpen?: boolean;
161
163
  isRoot?: boolean;
164
+ inline?: boolean;
162
165
  onOpenChange?: (isOpen: boolean) => void;
163
166
  toolbar?: JSX.Element;
164
167
  }
@@ -222,4 +225,4 @@ interface PresetManagerProps {
222
225
  }
223
226
  declare function PresetManager(props: PresetManagerProps): solid_js.JSX.Element;
224
227
 
225
- export { type ActionConfig, ButtonGroup, type ColorConfig, ColorControl, type ControlMeta, type CreateDialOptions, type DialConfig, type DialPosition, DialRoot, DialStore, type DialValue, Folder, type PanelConfig, type Preset, PresetManager, type ResolvedValues, type SelectConfig, SelectControl, Slider, type SpringConfig, SpringControl, SpringVisualization, type TextConfig, TextControl, Toggle, createDialKit };
228
+ export { type ActionConfig, ButtonGroup, type ColorConfig, ColorControl, type ControlMeta, type CreateDialOptions, type DialConfig, type DialMode, type DialPosition, DialRoot, DialStore, type DialValue, Folder, type PanelConfig, type Preset, PresetManager, type ResolvedValues, type SelectConfig, SelectControl, Slider, type SpringConfig, SpringControl, SpringVisualization, type TextConfig, TextControl, Toggle, createDialKit };
@@ -496,11 +496,11 @@ function getFirstOptionValue(options) {
496
496
 
497
497
  // src/solid/components/DialRoot.tsx
498
498
  import { template as _$template12 } from "solid-js/web";
499
+ import { memo as _$memo8 } from "solid-js/web";
499
500
  import { setAttribute as _$setAttribute8 } from "solid-js/web";
500
501
  import { effect as _$effect9 } from "solid-js/web";
501
502
  import { insert as _$insert12 } from "solid-js/web";
502
503
  import { createComponent as _$createComponent9 } from "solid-js/web";
503
- import { memo as _$memo8 } from "solid-js/web";
504
504
  import { createSignal as createSignal10, onMount as onMount8, onCleanup as onCleanup9, Show as Show5, For as For5 } from "solid-js";
505
505
  import { Portal as Portal3 } from "solid-js/web";
506
506
 
@@ -534,7 +534,8 @@ var _tmpl$4 = /* @__PURE__ */ _$template(`<div class=dialkit-folder-title-row><s
534
534
  var _tmpl$5 = /* @__PURE__ */ _$template(`<div class=dialkit-folder-title-row><span class=dialkit-folder-title>`);
535
535
  var _tmpl$6 = /* @__PURE__ */ _$template(`<svg class=dialkit-panel-icon viewBox="0 0 16 16"fill=none><path opacity=0.5 d="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"fill=currentColor></path><circle cx=6 cy=8 r=0.998596 fill=currentColor stroke=currentColor stroke-width=1.25></circle><circle cx=10.4999 cy=3.5 r=0.998657 fill=currentColor stroke=currentColor stroke-width=1.25></circle><circle cx=9.75015 cy=12.5 r=0.997986 fill=currentColor stroke=currentColor stroke-width=1.25>`);
536
536
  var _tmpl$7 = /* @__PURE__ */ _$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 d="M6 9.5L12 15.5L18 9.5">`);
537
- var _tmpl$8 = /* @__PURE__ */ _$template(`<div class=dialkit-panel-inner>`);
537
+ var _tmpl$8 = /* @__PURE__ */ _$template(`<div class="dialkit-panel-inner dialkit-panel-inline">`);
538
+ var _tmpl$9 = /* @__PURE__ */ _$template(`<div class=dialkit-panel-inner>`);
538
539
  function Folder(props) {
539
540
  const [isOpen, setIsOpen] = createSignal2(props.defaultOpen ?? true);
540
541
  const [isCollapsed, setIsCollapsed] = createSignal2(!(props.defaultOpen ?? true));
@@ -578,6 +579,7 @@ function Folder(props) {
578
579
  onCleanup2(() => chevronAnim?.stop());
579
580
  });
580
581
  const handleToggle = () => {
582
+ if (props.inline && props.isRoot) return;
581
583
  const next = !isOpen();
582
584
  setIsOpen(next);
583
585
  if (next) {
@@ -652,8 +654,12 @@ function Folder(props) {
652
654
  })();
653
655
  })(), null);
654
656
  _$insert(_el$3, (() => {
655
- var _c$2 = _$memo(() => !!props.isRoot);
656
- return () => _c$2() ? _tmpl$6() : (() => {
657
+ var _c$2 = _$memo(() => !!(props.isRoot && !props.inline));
658
+ return () => _c$2() && _tmpl$6();
659
+ })(), null);
660
+ _$insert(_el$3, (() => {
661
+ var _c$3 = _$memo(() => !!!props.isRoot);
662
+ return () => _c$3() && (() => {
657
663
  var _el$10 = _tmpl$7();
658
664
  var _ref$ = folderChevronRef;
659
665
  typeof _ref$ === "function" ? _$use(_ref$, _el$10) : folderChevronRef = _el$10;
@@ -718,6 +724,13 @@ function Folder(props) {
718
724
  return _el$;
719
725
  })();
720
726
  if (props.isRoot) {
727
+ if (props.inline) {
728
+ return (() => {
729
+ var _el$11 = _tmpl$8();
730
+ _$insert(_el$11, folderContent);
731
+ return _el$11;
732
+ })();
733
+ }
721
734
  let panelRef;
722
735
  let rootPanelAnim = null;
723
736
  let rootPanelInitialized = false;
@@ -774,8 +787,8 @@ function Folder(props) {
774
787
  panelTapAnim?.stop();
775
788
  });
776
789
  return (() => {
777
- var _el$11 = _tmpl$8();
778
- _el$11.addEventListener("pointerleave", () => {
790
+ var _el$12 = _tmpl$9();
791
+ _el$12.addEventListener("pointerleave", () => {
779
792
  if (isOpen()) return;
780
793
  panelTapAnim?.stop();
781
794
  panelTapAnim = animate(panelRef, {
@@ -786,7 +799,7 @@ function Folder(props) {
786
799
  bounce: 0.3
787
800
  });
788
801
  });
789
- _el$11.addEventListener("pointercancel", () => {
802
+ _el$12.addEventListener("pointercancel", () => {
790
803
  if (isOpen()) return;
791
804
  panelTapAnim?.stop();
792
805
  panelTapAnim = animate(panelRef, {
@@ -797,7 +810,7 @@ function Folder(props) {
797
810
  bounce: 0.3
798
811
  });
799
812
  });
800
- _el$11.$$pointerup = () => {
813
+ _el$12.$$pointerup = () => {
801
814
  if (isOpen()) return;
802
815
  panelTapAnim?.stop();
803
816
  panelTapAnim = animate(panelRef, {
@@ -808,7 +821,7 @@ function Folder(props) {
808
821
  bounce: 0.3
809
822
  });
810
823
  };
811
- _el$11.$$pointerdown = () => {
824
+ _el$12.$$pointerdown = () => {
812
825
  if (isOpen()) return;
813
826
  document.activeElement?.blur?.();
814
827
  panelTapAnim?.stop();
@@ -821,10 +834,10 @@ function Folder(props) {
821
834
  });
822
835
  };
823
836
  var _ref$2 = panelRef;
824
- typeof _ref$2 === "function" ? _$use(_ref$2, _el$11) : panelRef = _el$11;
825
- _$insert(_el$11, folderContent);
826
- _$effect(() => _$setAttribute(_el$11, "data-collapsed", String(isCollapsed())));
827
- return _el$11;
837
+ typeof _ref$2 === "function" ? _$use(_ref$2, _el$12) : panelRef = _el$12;
838
+ _$insert(_el$12, folderContent);
839
+ _$effect(() => _$setAttribute(_el$12, "data-collapsed", String(isCollapsed())));
840
+ return _el$12;
828
841
  })();
829
842
  }
830
843
  return folderContent();
@@ -842,7 +855,7 @@ import { use as _$use2 } from "solid-js/web";
842
855
  import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
843
856
  import { createSignal as createSignal3, createEffect as createEffect2, onMount as onMount2, onCleanup as onCleanup3 } from "solid-js";
844
857
  import { animate as animate2, motionValue } from "motion";
845
- var _tmpl$9 = /* @__PURE__ */ _$template2(`<div class=dialkit-slider-hashmark>`);
858
+ var _tmpl$10 = /* @__PURE__ */ _$template2(`<div class=dialkit-slider-hashmark>`);
846
859
  var _tmpl$22 = /* @__PURE__ */ _$template2(`<div class=dialkit-slider-wrapper><div><div class=dialkit-slider-hashmarks></div><div class=dialkit-slider-fill style="transition:background 0.15s"></div><div class=dialkit-slider-handle style="transform:translateY(-50%) scaleX(0.25) scaleY(1);opacity:0;background:rgba(255, 255, 255, 0.9)"></div><span class=dialkit-slider-label>`);
847
860
  var _tmpl$32 = /* @__PURE__ */ _$template2(`<input type=text class=dialkit-slider-input>`);
848
861
  var _tmpl$42 = /* @__PURE__ */ _$template2(`<span>`);
@@ -1150,7 +1163,7 @@ function Slider(props) {
1150
1163
  }, (_, i) => {
1151
1164
  const pct = (i + 1) * step() / (max() - min()) * 100;
1152
1165
  return (() => {
1153
- var _el$ = _tmpl$9();
1166
+ var _el$ = _tmpl$10();
1154
1167
  _$setStyleProperty(_el$, "left", `${pct}%`);
1155
1168
  return _el$;
1156
1169
  })();
@@ -1161,7 +1174,7 @@ function Slider(props) {
1161
1174
  }, (_, i) => {
1162
1175
  const pct = (i + 1) * 10;
1163
1176
  return (() => {
1164
- var _el$2 = _tmpl$9();
1177
+ var _el$2 = _tmpl$10();
1165
1178
  _$setStyleProperty(_el$2, "left", `${pct}%`);
1166
1179
  return _el$2;
1167
1180
  })();
@@ -1256,7 +1269,7 @@ import { createComponent as _$createComponent2 } from "solid-js/web";
1256
1269
  import { use as _$use3 } from "solid-js/web";
1257
1270
  import { createSignal as createSignal4, createRenderEffect, onMount as onMount3, onCleanup as onCleanup4, For } from "solid-js";
1258
1271
  import { animate as animate3 } from "motion";
1259
- var _tmpl$10 = /* @__PURE__ */ _$template3(`<div class=dialkit-segmented><div class=dialkit-segmented-pill style=left:0px;width:0px>`);
1272
+ var _tmpl$11 = /* @__PURE__ */ _$template3(`<div class=dialkit-segmented><div class=dialkit-segmented-pill style=left:0px;width:0px>`);
1260
1273
  var _tmpl$23 = /* @__PURE__ */ _$template3(`<button class=dialkit-segmented-button>`);
1261
1274
  function SegmentedControl(props) {
1262
1275
  let containerRef;
@@ -1326,7 +1339,7 @@ function SegmentedControl(props) {
1326
1339
  });
1327
1340
  });
1328
1341
  return (() => {
1329
- var _el$ = _tmpl$10(), _el$2 = _el$.firstChild;
1342
+ var _el$ = _tmpl$11(), _el$2 = _el$.firstChild;
1330
1343
  var _ref$ = containerRef;
1331
1344
  typeof _ref$ === "function" ? _$use3(_ref$, _el$) : containerRef = _el$;
1332
1345
  var _ref$2 = pillRef;
@@ -1354,10 +1367,10 @@ function SegmentedControl(props) {
1354
1367
  _$delegateEvents3(["click"]);
1355
1368
 
1356
1369
  // src/solid/components/Toggle.tsx
1357
- var _tmpl$11 = /* @__PURE__ */ _$template4(`<div class=dialkit-labeled-control><span class=dialkit-labeled-control-label>`);
1370
+ var _tmpl$12 = /* @__PURE__ */ _$template4(`<div class=dialkit-labeled-control><span class=dialkit-labeled-control-label>`);
1358
1371
  function Toggle(props) {
1359
1372
  return (() => {
1360
- var _el$ = _tmpl$11(), _el$2 = _el$.firstChild;
1373
+ var _el$ = _tmpl$12(), _el$2 = _el$.firstChild;
1361
1374
  _$insert4(_el$2, () => props.label);
1362
1375
  _$insert4(_el$, _$createComponent3(SegmentedControl, {
1363
1376
  options: [{
@@ -1388,7 +1401,7 @@ import { template as _$template5 } from "solid-js/web";
1388
1401
  import { effect as _$effect4 } from "solid-js/web";
1389
1402
  import { insert as _$insert5 } from "solid-js/web";
1390
1403
  import { setAttribute as _$setAttribute3 } from "solid-js/web";
1391
- var _tmpl$12 = /* @__PURE__ */ _$template5(`<svg><line y1=0 y2=140 stroke="rgba(255, 255, 255, 0.08)"stroke-width=1></svg>`, false, true, false);
1404
+ var _tmpl$13 = /* @__PURE__ */ _$template5(`<svg><line y1=0 y2=140 stroke="rgba(255, 255, 255, 0.08)"stroke-width=1></svg>`, false, true, false);
1392
1405
  var _tmpl$24 = /* @__PURE__ */ _$template5(`<svg><line x1=0 x2=256 stroke="rgba(255, 255, 255, 0.08)"stroke-width=1></svg>`, false, true, false);
1393
1406
  var _tmpl$33 = /* @__PURE__ */ _$template5(`<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>`);
1394
1407
  function generateSpringCurve(stiffness, damping, mass, duration) {
@@ -1448,7 +1461,7 @@ function SpringVisualization(props) {
1448
1461
  const x = width / 4 * i;
1449
1462
  const y = height / 4 * i;
1450
1463
  lines.push((() => {
1451
- var _el$ = _tmpl$12();
1464
+ var _el$ = _tmpl$13();
1452
1465
  _$setAttribute3(_el$, "x1", x);
1453
1466
  _$setAttribute3(_el$, "x2", x);
1454
1467
  return _el$;
@@ -1470,7 +1483,7 @@ function SpringVisualization(props) {
1470
1483
  }
1471
1484
 
1472
1485
  // src/solid/components/SpringControl.tsx
1473
- var _tmpl$13 = /* @__PURE__ */ _$template6(`<div style=display:flex;flex-direction:column;gap:6px><div class=dialkit-labeled-control><span class=dialkit-labeled-control-label>Type`);
1486
+ var _tmpl$14 = /* @__PURE__ */ _$template6(`<div style=display:flex;flex-direction:column;gap:6px><div class=dialkit-labeled-control><span class=dialkit-labeled-control-label>Type`);
1474
1487
  function SpringControl(props) {
1475
1488
  const [mode, setMode] = createSignal5(DialStore.getSpringMode(props.panelId, props.path));
1476
1489
  onMount4(() => {
@@ -1540,7 +1553,7 @@ function SpringControl(props) {
1540
1553
  },
1541
1554
  defaultOpen: true,
1542
1555
  get children() {
1543
- var _el$ = _tmpl$13(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
1556
+ var _el$ = _tmpl$14(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
1544
1557
  _$insert6(_el$, _$createComponent4(SpringVisualization, {
1545
1558
  get spring() {
1546
1559
  return props.spring;
@@ -1624,11 +1637,11 @@ import { effect as _$effect5 } from "solid-js/web";
1624
1637
  import { insert as _$insert7 } from "solid-js/web";
1625
1638
  import { setAttribute as _$setAttribute4 } from "solid-js/web";
1626
1639
  import { createUniqueId as createUniqueId2 } from "solid-js";
1627
- var _tmpl$14 = /* @__PURE__ */ _$template7(`<div class=dialkit-text-control><label class=dialkit-text-label></label><input type=text class=dialkit-text-input>`);
1640
+ var _tmpl$15 = /* @__PURE__ */ _$template7(`<div class=dialkit-text-control><label class=dialkit-text-label></label><input type=text class=dialkit-text-input>`);
1628
1641
  function TextControl(props) {
1629
1642
  const inputId = createUniqueId2();
1630
1643
  return (() => {
1631
- var _el$ = _tmpl$14(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
1644
+ var _el$ = _tmpl$15(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
1632
1645
  _$setAttribute4(_el$2, "for", inputId);
1633
1646
  _$insert7(_el$2, () => props.label);
1634
1647
  _el$3.$$input = (e) => props.onChange(e.currentTarget.value);
@@ -1653,7 +1666,7 @@ import { use as _$use4 } from "solid-js/web";
1653
1666
  import { createSignal as createSignal6, createEffect as createEffect3, onMount as onMount5, onCleanup as onCleanup6, Show as Show2, For as For2 } from "solid-js";
1654
1667
  import { Portal } from "solid-js/web";
1655
1668
  import { animate as animate4 } from "motion";
1656
- var _tmpl$15 = /* @__PURE__ */ _$template8(`<div class=dialkit-select-dropdown>`);
1669
+ var _tmpl$16 = /* @__PURE__ */ _$template8(`<div class=dialkit-select-dropdown>`);
1657
1670
  var _tmpl$25 = /* @__PURE__ */ _$template8(`<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 d="M6 9.5L12 15.5L18 9.5">`);
1658
1671
  var _tmpl$34 = /* @__PURE__ */ _$template8(`<button class=dialkit-select-option>`);
1659
1672
  function toTitleCase(s) {
@@ -1801,7 +1814,7 @@ function SelectControl(props) {
1801
1814
  return _$memo5(() => !!mounted())() && pos();
1802
1815
  },
1803
1816
  get children() {
1804
- var _el$7 = _tmpl$15();
1817
+ var _el$7 = _tmpl$16();
1805
1818
  _$use4((el) => {
1806
1819
  dropdownRef = el;
1807
1820
  const above = pos()?.above ?? false;
@@ -1854,7 +1867,7 @@ import { effect as _$effect7 } from "solid-js/web";
1854
1867
  import { insert as _$insert9 } from "solid-js/web";
1855
1868
  import { setAttribute as _$setAttribute6 } from "solid-js/web";
1856
1869
  import { createSignal as createSignal7, createEffect as createEffect4, createUniqueId as createUniqueId3, Show as Show3 } from "solid-js";
1857
- var _tmpl$16 = /* @__PURE__ */ _$template9(`<input type=text class=dialkit-color-hex-input autofocus>`);
1870
+ var _tmpl$17 = /* @__PURE__ */ _$template9(`<input type=text class=dialkit-color-hex-input autofocus>`);
1858
1871
  var _tmpl$26 = /* @__PURE__ */ _$template9(`<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>`);
1859
1872
  var _tmpl$35 = /* @__PURE__ */ _$template9(`<span class=dialkit-color-hex>`);
1860
1873
  var HEX_COLOR_REGEX = /^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$/;
@@ -1904,7 +1917,7 @@ function ColorControl(props) {
1904
1917
  })();
1905
1918
  },
1906
1919
  get children() {
1907
- var _el$4 = _tmpl$16();
1920
+ var _el$4 = _tmpl$17();
1908
1921
  _el$4.$$keydown = handleKeyDown;
1909
1922
  _el$4.addEventListener("blur", handleTextSubmit);
1910
1923
  _el$4.$$input = (e) => setEditValue(e.currentTarget.value);
@@ -1947,7 +1960,7 @@ import { use as _$use6 } from "solid-js/web";
1947
1960
  import { createSignal as createSignal8, createEffect as createEffect5, onMount as onMount6, onCleanup as onCleanup7, Show as Show4, For as For3 } from "solid-js";
1948
1961
  import { Portal as Portal2 } from "solid-js/web";
1949
1962
  import { animate as animate5 } from "motion";
1950
- var _tmpl$17 = /* @__PURE__ */ _$template10(`<div class="dialkit-root dialkit-preset-dropdown"style=position:fixed><div class=dialkit-preset-item><span class=dialkit-preset-name>Version 1`);
1963
+ var _tmpl$18 = /* @__PURE__ */ _$template10(`<div class="dialkit-root dialkit-preset-dropdown"style=position:fixed><div class=dialkit-preset-item><span class=dialkit-preset-name>Version 1`);
1951
1964
  var _tmpl$27 = /* @__PURE__ */ _$template10(`<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 d="M6 9.5L12 15.5L18 9.5">`);
1952
1965
  var _tmpl$36 = /* @__PURE__ */ _$template10(`<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 d="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"></path><path d="M10 11V16"></path><path d="M14 11V16"></path><path d="M3.5 6H20.5"></path><path d="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">`);
1953
1966
  function PresetManager(props) {
@@ -2087,7 +2100,7 @@ function PresetManager(props) {
2087
2100
  return mounted();
2088
2101
  },
2089
2102
  get children() {
2090
- var _el$5 = _tmpl$17(), _el$6 = _el$5.firstChild;
2103
+ var _el$5 = _tmpl$18(), _el$6 = _el$5.firstChild;
2091
2104
  _$use6((el) => {
2092
2105
  dropdownRef = el;
2093
2106
  animate5(el, {
@@ -2151,7 +2164,7 @@ function PresetManager(props) {
2151
2164
  _$delegateEvents7(["click"]);
2152
2165
 
2153
2166
  // src/solid/components/Panel.tsx
2154
- var _tmpl$18 = /* @__PURE__ */ _$template11(`<button class=dialkit-button>`);
2167
+ var _tmpl$19 = /* @__PURE__ */ _$template11(`<button class=dialkit-button>`);
2155
2168
  var _tmpl$28 = /* @__PURE__ */ _$template11(`<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 d="M4 6H20"></path><path d="M4 12H10"></path><path d="M15 15L21 15"></path><path d="M18 12V18"></path><path d="M4 18H10">`);
2156
2169
  var _tmpl$37 = /* @__PURE__ */ _$template11(`<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 d="M8 6C8 4.34315 9.34315 3 11 3H13C14.6569 3 16 4.34315 16 6V7H8V6Z"stroke=currentColor stroke-width=2 stroke-linejoin=round></path><path d="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"fill=currentColor></path><path d="M16 5H17C18.6569 5 20 6.34315 20 8V11M8 5H7C5.34315 5 4 6.34315 4 8V18C4 19.6569 5.34315 21 7 21H12"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 d="M5 12.75L10 19L19 5"></path></svg></span></span>Copy`);
2157
2170
  var _tmpl$43 = /* @__PURE__ */ _$template11(`<div class=dialkit-panel-wrapper>`);
@@ -2378,7 +2391,7 @@ Apply these values as the new defaults in the createDialKit call.`;
2378
2391
  return props.panel.controls;
2379
2392
  },
2380
2393
  children: (control) => _$memo7(() => _$memo7(() => control.type === "action")() ? (() => {
2381
- var _el$ = _tmpl$18();
2394
+ var _el$ = _tmpl$19();
2382
2395
  _el$.$$click = () => DialStore.triggerAction(props.panel.id, control.path);
2383
2396
  _$insert11(_el$, () => control.label);
2384
2397
  return _el$;
@@ -2431,6 +2444,9 @@ Apply these values as the new defaults in the createDialKit call.`;
2431
2444
  return props.defaultOpen ?? true;
2432
2445
  },
2433
2446
  isRoot: true,
2447
+ get inline() {
2448
+ return props.inline ?? false;
2449
+ },
2434
2450
  onOpenChange: setIsPanelOpen,
2435
2451
  toolbar,
2436
2452
  get children() {
@@ -2443,10 +2459,11 @@ Apply these values as the new defaults in the createDialKit call.`;
2443
2459
  _$delegateEvents8(["click", "pointerdown", "pointerup"]);
2444
2460
 
2445
2461
  // src/solid/components/DialRoot.tsx
2446
- var _tmpl$19 = /* @__PURE__ */ _$template12(`<div class=dialkit-root><div class=dialkit-panel>`);
2462
+ var _tmpl$20 = /* @__PURE__ */ _$template12(`<div class=dialkit-root><div class=dialkit-panel>`);
2447
2463
  function DialRoot(props) {
2448
2464
  const [panels, setPanels] = createSignal10([]);
2449
2465
  const [mounted, setMounted] = createSignal10(false);
2466
+ const inline = () => (props.mode ?? "popover") === "inline";
2450
2467
  onMount8(() => {
2451
2468
  setMounted(true);
2452
2469
  setPanels(DialStore.getPanels());
@@ -2455,30 +2472,56 @@ function DialRoot(props) {
2455
2472
  });
2456
2473
  onCleanup9(unsub);
2457
2474
  });
2475
+ const content = () => (() => {
2476
+ var _el$ = _tmpl$20(), _el$2 = _el$.firstChild;
2477
+ _$insert12(_el$2, _$createComponent9(For5, {
2478
+ get each() {
2479
+ return panels();
2480
+ },
2481
+ children: (panel) => _$createComponent9(Panel, {
2482
+ panel,
2483
+ get defaultOpen() {
2484
+ return inline() || (props.defaultOpen ?? true);
2485
+ },
2486
+ get inline() {
2487
+ return inline();
2488
+ }
2489
+ })
2490
+ }));
2491
+ _$effect9((_p$) => {
2492
+ var _v$ = props.mode ?? "popover", _v$2 = inline() ? void 0 : props.position ?? "top-right", _v$3 = props.mode ?? "popover";
2493
+ _v$ !== _p$.e && _$setAttribute8(_el$, "data-mode", _p$.e = _v$);
2494
+ _v$2 !== _p$.t && _$setAttribute8(_el$2, "data-position", _p$.t = _v$2);
2495
+ _v$3 !== _p$.a && _$setAttribute8(_el$2, "data-mode", _p$.a = _v$3);
2496
+ return _p$;
2497
+ }, {
2498
+ e: void 0,
2499
+ t: void 0,
2500
+ a: void 0
2501
+ });
2502
+ return _el$;
2503
+ })();
2458
2504
  return _$createComponent9(Show5, {
2459
2505
  get when() {
2460
2506
  return _$memo8(() => !!(mounted() && typeof window !== "undefined"))() && panels().length > 0;
2461
2507
  },
2462
2508
  get children() {
2463
- return _$createComponent9(Portal3, {
2464
- get mount() {
2465
- return document.body;
2509
+ return _$createComponent9(Show5, {
2510
+ get when() {
2511
+ return !inline();
2512
+ },
2513
+ get fallback() {
2514
+ return content();
2466
2515
  },
2467
2516
  get children() {
2468
- var _el$ = _tmpl$19(), _el$2 = _el$.firstChild;
2469
- _$insert12(_el$2, _$createComponent9(For5, {
2470
- get each() {
2471
- return panels();
2517
+ return _$createComponent9(Portal3, {
2518
+ get mount() {
2519
+ return document.body;
2472
2520
  },
2473
- children: (panel) => _$createComponent9(Panel, {
2474
- panel,
2475
- get defaultOpen() {
2476
- return props.defaultOpen ?? true;
2477
- }
2478
- })
2479
- }));
2480
- _$effect9(() => _$setAttribute8(_el$2, "data-position", props.position ?? "top-right"));
2481
- return _el$;
2521
+ get children() {
2522
+ return content();
2523
+ }
2524
+ });
2482
2525
  }
2483
2526
  });
2484
2527
  }
@@ -2492,11 +2535,11 @@ import { addEventListener as _$addEventListener } from "solid-js/web";
2492
2535
  import { insert as _$insert13 } from "solid-js/web";
2493
2536
  import { createComponent as _$createComponent10 } from "solid-js/web";
2494
2537
  import { For as For6 } from "solid-js";
2495
- var _tmpl$20 = /* @__PURE__ */ _$template13(`<div class=dialkit-button-group>`);
2538
+ var _tmpl$21 = /* @__PURE__ */ _$template13(`<div class=dialkit-button-group>`);
2496
2539
  var _tmpl$29 = /* @__PURE__ */ _$template13(`<button class=dialkit-button>`);
2497
2540
  function ButtonGroup(props) {
2498
2541
  return (() => {
2499
- var _el$ = _tmpl$20();
2542
+ var _el$ = _tmpl$21();
2500
2543
  _$insert13(_el$, _$createComponent10(For6, {
2501
2544
  get each() {
2502
2545
  return props.buttons;